All functions:
  Elements:
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/fuzz_h1_parse.c:63,1
    - Dst: memcpy
      Src: /src/fuzz_h1_parse.c:66,1
    - Dst: h1m_init_res
      Src: /src/fuzz_h1_parse.c:74,1
    - Dst: h1m_init_req
      Src: /src/fuzz_h1_parse.c:76,1
    - Dst: h1_headers_to_hdr_list
      Src: /src/fuzz_h1_parse.c:79,1
    - Dst: free
      Src: /src/fuzz_h1_parse.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 85
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/fuzz_h1_parse.c
    functionUses: 0
    functionsReached:
    - malloc
    - h1m_init_req
    - memcpy
    - h1_headers_to_hdr_list
    - free
    - h1m_init_res
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - out
    - pfx
    - buf
    - baseaddr
    - len
    argTypes:
    - FILE*
    - char*
    - char*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: debug_hexdump
    functionSourceFile: /src/fuzz_hpack_decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void debug_hexdump(FILE *out, const char *pfx, const char *buf,\n
      \                  unsigned int baseaddr, int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/fuzz_hpack_decode.c:55,1
    - Dst: memcpy
      Src: /src/fuzz_hpack_decode.c:62,1
    - Dst: hpack_dht_alloc
      Src: /src/fuzz_hpack_decode.c:68,1
    - Dst: hpack_decode_frame
      Src: /src/fuzz_hpack_decode.c:72,1
    - Dst: free
      Src: /src/fuzz_hpack_decode.c:75,1
    - Dst: free
      Src: /src/fuzz_hpack_decode.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/fuzz_hpack_decode.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - hpack_decode_frame
    - free
    - hpack_dht_alloc
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_trash_buffers
      Src: /src/fuzz_cfg_parser.c:41,1
    - Dst: init_trash_buffers
      Src: /src/fuzz_cfg_parser.c:43,1
    - Dst: parse_cfg
      Src: /src/fuzz_cfg_parser.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 58
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/fuzz_cfg_parser.c
    functionUses: 0
    functionsReached:
    - parse_cfg
    - init_trash_buffers
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/fuzz_h1_htx.c:77,1
    - Dst: init_trash_buffers
      Src: /src/fuzz_h1_htx.c:84,1
    - Dst: init_trash_buffers
      Src: /src/fuzz_h1_htx.c:86,1
    - Dst: malloc
      Src: /src/fuzz_h1_htx.c:101,1
    - Dst: memcpy
      Src: /src/fuzz_h1_htx.c:104,1
    - Dst: b_make
      Src: /src/fuzz_h1_htx.c:107,1
    - Dst: memset
      Src: /src/fuzz_h1_htx.c:110,1
    - Dst: b_make
      Src: /src/fuzz_h1_htx.c:111,1
    - Dst: htx_from_buf
      Src: /src/fuzz_h1_htx.c:112,1
    - Dst: h1m_init_res
      Src: /src/fuzz_h1_htx.c:116,1
    - Dst: h1m_init_req
      Src: /src/fuzz_h1_htx.c:118,1
    - Dst: h1_parse_msg_hdrs
      Src: /src/fuzz_h1_htx.c:121,1
    - Dst: h1_parse_msg_data
      Src: /src/fuzz_h1_htx.c:128,1
    - Dst: h1_parse_msg_tlrs
      Src: /src/fuzz_h1_htx.c:133,1
    - Dst: free
      Src: /src/fuzz_h1_htx.c:137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 139
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/fuzz_h1_htx.c
    functionUses: 0
    functionsReached:
    - malloc
    - h1_parse_msg_hdrs
    - memset
    - memcpy
    - h1m_init_req
    - h1_parse_msg_data
    - h1_parse_msg_tlrs
    - free
    - init_trash_buffers
    - b_make
    - h1m_init_res
    - htx_from_buf
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: fuzz_consume_byte
    functionSourceFile: /src/fuzz_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fuzz_consume_byte(const uint8_t **data, size_t *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/fuzz_http.c:60,1
    - Dst: memcpy
      Src: /src/fuzz_http.c:63,1
    - Dst: ist2
      Src: /src/fuzz_http.c:66,1
    - Dst: http_uri_parser_init
      Src: /src/fuzz_http.c:67,1
    - Dst: http_parse_scheme
      Src: /src/fuzz_http.c:69,1
    - Dst: http_parse_authority
      Src: /src/fuzz_http.c:70,1
    - Dst: http_parse_path
      Src: /src/fuzz_http.c:71,1
    - Dst: http_uri_parser_init
      Src: /src/fuzz_http.c:74,1
    - Dst: http_parse_scheme
      Src: /src/fuzz_http.c:75,1
    - Dst: http_parse_authority
      Src: /src/fuzz_http.c:76,1
    - Dst: free
      Src: /src/fuzz_http.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: fuzz_uri_parsing
    functionSourceFile: /src/fuzz_http.c
    functionUses: 0
    functionsReached:
    - malloc
    - ist2
    - http_parse_scheme
    - memcpy
    - http_parse_authority
    - free
    - http_uri_parser_init
    - http_parse_path
    linkageType: ''
    returnType: void
    signature: void fuzz_uri_parsing(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/fuzz_http.c:83,1
    - Dst: memcpy
      Src: /src/fuzz_http.c:86,1
    - Dst: ist2
      Src: /src/fuzz_http.c:89,1
    - Dst: http_parse_cont_len_header
      Src: /src/fuzz_http.c:93,1
    - Dst: ist2
      Src: /src/fuzz_http.c:97,1
    - Dst: http_parse_cont_len_header
      Src: /src/fuzz_http.c:98,1
    - Dst: free
      Src: /src/fuzz_http.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: fuzz_content_length
    functionSourceFile: /src/fuzz_http.c
    functionUses: 0
    functionsReached:
    - malloc
    - ist2
    - http_parse_cont_len_header
    - memcpy
    - free
    linkageType: ''
    returnType: void
    signature: void fuzz_content_length(const uint8_t *data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/fuzz_http.c:109,1
    - Dst: memcpy
      Src: /src/fuzz_http.c:112,1
    - Dst: http_extract_cookie_value
      Src: /src/fuzz_http.c:121,1
    - Dst: memcpy
      Src: /src/fuzz_http.c:126,1
    - Dst: http_extract_cookie_value
      Src: /src/fuzz_http.c:129,1
    - Dst: http_extract_next_cookie_name
      Src: /src/fuzz_http.c:136,1
    - Dst: http_extract_next_cookie_name
      Src: /src/fuzz_http.c:137,1
    - Dst: free
      Src: /src/fuzz_http.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: fuzz_cookie_parsing
    functionSourceFile: /src/fuzz_http.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - http_extract_next_cookie_name
    - free
    - http_extract_cookie_value
    linkageType: ''
    returnType: void
    signature: void fuzz_cookie_parsing(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/fuzz_http.c:144,1
    - Dst: memcpy
      Src: /src/fuzz_http.c:147,1
    - Dst: ist2
      Src: /src/fuzz_http.c:150,1
    - Dst: http_parse_header
      Src: /src/fuzz_http.c:154,1
    - Dst: http_parse_stline
      Src: /src/fuzz_http.c:158,1
    - Dst: http_parse_status_val
      Src: /src/fuzz_http.c:162,1
    - Dst: http_header_match2
      Src: /src/fuzz_http.c:165,1
    - Dst: http_header_match2
      Src: /src/fuzz_http.c:166,1
    - Dst: http_find_hdr_value_end
      Src: /src/fuzz_http.c:169,1
    - Dst: free
      Src: /src/fuzz_http.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 172
    functionName: fuzz_header_parsing
    functionSourceFile: /src/fuzz_http.c
    functionUses: 0
    functionsReached:
    - malloc
    - ist2
    - memcpy
    - http_parse_header
    - http_header_match2
    - http_find_hdr_value_end
    - free
    - http_parse_stline
    - http_parse_status_val
    linkageType: ''
    returnType: void
    signature: void fuzz_header_parsing(const uint8_t *data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/fuzz_http.c:176,1
    - Dst: memcpy
      Src: /src/fuzz_http.c:179,1
    - Dst: ist2
      Src: /src/fuzz_http.c:182,1
    - Dst: http_get_host_port
      Src: /src/fuzz_http.c:185,1
    - Dst: http_is_default_port
      Src: /src/fuzz_http.c:188,1
    - Dst: http_is_default_port
      Src: /src/fuzz_http.c:189,1
    - Dst: ist
      Src: /src/fuzz_http.c:189,1
    - Dst: http_is_default_port
      Src: /src/fuzz_http.c:190,1
    - Dst: ist
      Src: /src/fuzz_http.c:190,1
    - Dst: http_validate_scheme
      Src: /src/fuzz_http.c:193,1
    - Dst: find_http_meth
      Src: /src/fuzz_http.c:196,1
    - Dst: http_get_status_idx
      Src: /src/fuzz_http.c:201,1
    - Dst: http_get_reason
      Src: /src/fuzz_http.c:202,1
    - Dst: http_parse_qvalue
      Src: /src/fuzz_http.c:207,1
    - Dst: ist2
      Src: /src/fuzz_http.c:212,1
    - Dst: ist2
      Src: /src/fuzz_http.c:213,1
    - Dst: http_compare_etags
      Src: /src/fuzz_http.c:214,1
    - Dst: http_trim_leading_spht
      Src: /src/fuzz_http.c:218,1
    - Dst: free
      Src: /src/fuzz_http.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 225
    functionName: fuzz_misc
    functionSourceFile: /src/fuzz_http.c
    functionUses: 0
    functionsReached:
    - malloc
    - ist2
    - ist
    - http_get_status_idx
    - http_compare_etags
    - memcpy
    - http_get_reason
    - http_trim_leading_spht
    - free
    - http_parse_qvalue
    - http_is_default_port
    - http_get_host_port
    - find_http_meth
    - http_validate_scheme
    linkageType: ''
    returnType: void
    signature: void fuzz_misc(const uint8_t *data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/fuzz_http.c:232,1
    - Dst: memcpy
      Src: /src/fuzz_http.c:235,1
    - Dst: http_find_next_url_param
      Src: /src/fuzz_http.c:248,1
    - Dst: memcpy
      Src: /src/fuzz_http.c:253,1
    - Dst: http_find_next_url_param
      Src: /src/fuzz_http.c:260,1
    - Dst: http_find_next_url_param
      Src: /src/fuzz_http.c:263,1
    - Dst: free
      Src: /src/fuzz_http.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 267
    functionName: fuzz_url_params
    functionSourceFile: /src/fuzz_http.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - http_find_next_url_param
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fuzz_url_params(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/fuzz_http.c:271,1
    - Dst: memcpy
      Src: /src/fuzz_http.c:274,1
    - Dst: http_find_cookie_value_end
      Src: /src/fuzz_http.c:277,1
    - Dst: free
      Src: /src/fuzz_http.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 280
    functionName: fuzz_cookie_value_end
    functionSourceFile: /src/fuzz_http.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - memcpy
    - http_find_cookie_value_end
    linkageType: ''
    returnType: void
    signature: void fuzz_cookie_value_end(const uint8_t *data, size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_consume_byte
      Src: /src/fuzz_http.c:287,1
    - Dst: fuzz_uri_parsing
      Src: /src/fuzz_http.c:291,1
    - Dst: fuzz_content_length
      Src: /src/fuzz_http.c:294,1
    - Dst: fuzz_cookie_parsing
      Src: /src/fuzz_http.c:297,1
    - Dst: fuzz_header_parsing
      Src: /src/fuzz_http.c:300,1
    - Dst: fuzz_misc
      Src: /src/fuzz_http.c:303,1
    - Dst: fuzz_url_params
      Src: /src/fuzz_http.c:306,1
    - Dst: fuzz_cookie_value_end
      Src: /src/fuzz_http.c:309,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 314
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/fuzz_http.c
    functionUses: 0
    functionsReached:
    - fuzz_cookie_parsing
    - fuzz_cookie_value_end
    - fuzz_consume_byte
    - fuzz_uri_parsing
    - fuzz_misc
    - fuzz_header_parsing
    - fuzz_url_params
    - fuzz_content_length
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_subr.c:56,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_subr.c:57,1
    - Dst: vct_issp
      Src: /src/VTest2/src/vtc_subr.c:59,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_subr.c:69,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_subr.c:72,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_subr.c:77,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_subr.c:78,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_subr.c:78,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - vl
    - arg
    argTypes:
    - struct vtclog*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 80
    functionName: vtc_hex_to_bin
    functionSourceFile: /src/VTest2/src/vtc_subr.c
    functionUses: 0
    functionsReached:
    - VSB_putc
    - vct_issp
    - vtc_fatal
    - VSB_finish
    - VSB_new_auto
    - AZ
    - AN
    linkageType: ''
    returnType: struct vsb
    signature: 'struct vsb *

      vtc_hex_to_bin(struct vtclog *vl, const char *arg)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:101,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:101,1
    - Dst: VRE_compile
      Src: /src/VTest2/src/vtc_subr.c:102,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_subr.c:104,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_subr.c:104,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_subr.c:105,1
    - Dst: VRE_error
      Src: /src/VTest2/src/vtc_subr.c:105,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_subr.c:106,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_subr.c:106,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_subr.c:107,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_subr.c:108,1
    - Dst: VRE_match
      Src: /src/VTest2/src/vtc_subr.c:111,1
    - Dst: VRE_free
      Src: /src/VTest2/src/vtc_subr.c:113,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:114,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:115,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:116,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:117,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:118,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:119,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:119,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:120,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:121,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:121,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:122,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:123,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:123,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:124,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:125,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:125,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:126,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:127,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:127,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:128,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:129,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_subr.c:129,1
    - Dst: VNUM
      Src: /src/VTest2/src/vtc_subr.c:134,1
    - Dst: VNUM
      Src: /src/VTest2/src/vtc_subr.c:135,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:136,1
    - Dst: isless
      Src: /src/VTest2/src/vtc_subr.c:137,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:138,1
    - Dst: isgreater
      Src: /src/VTest2/src/vtc_subr.c:139,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:140,1
    - Dst: islessequal
      Src: /src/VTest2/src/vtc_subr.c:141,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_subr.c:142,1
    - Dst: isgreaterequal
      Src: /src/VTest2/src/vtc_subr.c:143,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_subr.c:147,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_subr.c:151,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_subr.c:154,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 6
    argNames:
    - vl
    - olhs
    - lhs
    - cmp
    - orhs
    - rhs
    argTypes:
    - struct vtclog*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 156
    functionName: vtc_expect
    functionSourceFile: /src/VTest2/src/vtc_subr.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - VSB_finish
    - strcmp
    - vtc_fatal
    - VRE_free
    - strtoul
    - VRE_compile
    - isless
    - isgreater
    - islessequal
    - VSB_fini
    - isgreaterequal
    - VNUM
    - VSB_init
    - AZ
    - AN
    - VRE_error
    - VRE_match
    linkageType: ''
    returnType: void
    signature: "void vtc_expect(struct vtclog *vl,\n    const char *olhs, const char
      *lhs,\n    const char *cmp,\n    const char *orhs, const char *rhs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wait4
      Src: /src/VTest2/src/vtc_subr.c:174,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_subr.c:176,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_subr.c:177,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_subr.c:178,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_subr.c:179,1
    - Dst: WIFEXITED
      Src: /src/VTest2/src/vtc_subr.c:185,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_subr.c:186,1
    - Dst: WIFSIGNALED
      Src: /src/VTest2/src/vtc_subr.c:192,1
    - Dst: WCOREDUMP
      Src: /src/VTest2/src/vtc_subr.c:192,1
    - Dst: WTERMSIG
      Src: /src/VTest2/src/vtc_subr.c:193,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_subr.c:195,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_subr.c:197,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_subr.c:199,1
    - Dst: WIFSIGNALED
      Src: /src/VTest2/src/vtc_subr.c:200,1
    - Dst: WTERMSIG
      Src: /src/VTest2/src/vtc_subr.c:200,1
    - Dst: WCOREDUMP
      Src: /src/VTest2/src/vtc_subr.c:201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 5
    argNames:
    - vl
    - pid
    - expect_status
    - expect_signal
    - allow_core
    argTypes:
    - struct vtclog*
    - long
    - int
    - int
    - int
    assertStmts:
    - condition: (r == pid)
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/VTest2/src/vtc_subr.c
    constantsTouched: []
    func_position:
      end: 202
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 202
    functionName: vtc_wait4
    functionSourceFile: /src/VTest2/src/vtc_subr.c
    functionUses: 0
    functionsReached:
    - WIFSIGNALED
    - assert
    - wait4
    - vtc_log
    - strerror
    - vtc_fatal
    - WIFEXITED
    - WEXITSTATUS
    - WTERMSIG
    - WCOREDUMP
    linkageType: ''
    returnType: void
    signature: "void vtc_wait4(struct vtclog *vl, long pid,\n    int expect_status,
      int expect_signal, int allow_core)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/VTest2/src/vtc_subr.c:212,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_subr.c:215,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_subr.c:217,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_subr.c:219,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_subr.c:222,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_subr.c:224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - vl
    - fd
    - vsb
    argTypes:
    - struct vtclog*
    - int
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 229
    functionName: vtc_record
    functionSourceFile: /src/VTest2/src/vtc_subr.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strerror
    - vtc_dump
    - read
    - VSB_bcat
    linkageType: ''
    returnType: void
    signature: 'void *

      vtc_record(struct vtclog *vl, int fd, struct vsb *vsb)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/VTest2/src/vtc_varnish.c:110,1
    - Dst: pthread_self
      Src: /src/VTest2/src/vtc_varnish.c:110,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_varnish.c:116,1
    - Dst: poll
      Src: /src/VTest2/src/vtc_varnish.c:121,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_varnish.c:123,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_varnish.c:123,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_varnish.c:128,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct varnish*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 130
    functionName: varnish_fatal_cleanup
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - poll
    - memset
    - PTOK
    - pthread_self
    - VTIM_sleep
    - pthread_join
    - pthread_equal
    linkageType: ''
    returnType: void
    signature: void varnish_fatal_cleanup(const struct varnish *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: varnish_fatal
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: varnish_fatal(v, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_varnish.c:150,1
    - Dst: write
      Src: /src/VTest2/src/vtc_varnish.c:151,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_varnish.c:151,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_varnish.c:152,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:153,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_varnish.c:154,1
    - Dst: write
      Src: /src/VTest2/src/vtc_varnish.c:155,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:157,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_varnish.c:158,1
    - Dst: VCLI_ReadResult
      Src: /src/VTest2/src/vtc_varnish.c:160,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:162,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:164,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_varnish.c:165,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:169,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - v
    - cmd
    - repl
    argTypes:
    - struct varnish*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 171
    functionName: varnish_ask_cli
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VCLI_ReadResult
    - varnish_fatal
    - vtc_log
    - strerror
    - write
    - free
    - vtc_dump
    - strlen
    linkageType: ''
    returnType: enum VCLI_status_e
    signature: enum VCLI_status_e varnish_ask_cli(const struct varnish *v, const char
      *cmd, char **repl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:183,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:185,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:187,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:189,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:190,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:193,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_varnish.c:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct varnish*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 197
    functionName: wait_stopped
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - varnish_fatal
    - vtc_log
    - strcmp
    - free
    - VTIM_sleep
    - varnish_ask_cli
    linkageType: ''
    returnType: void
    signature: void wait_stopped(const struct varnish *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:209,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:210,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:212,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:214,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:215,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:217,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:218,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:220,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:222,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:224,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:227,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_varnish.c:229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct varnish*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 231
    functionName: wait_running
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - varnish_fatal
    - vtc_log
    - strcmp
    - free
    - VTIM_sleep
    - varnish_ask_cli
    linkageType: ''
    returnType: void
    signature: void wait_running(const struct varnish *v)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_varnish.c:251,1
    - Dst: VSL_New
      Src: /src/VTest2/src/vtc_varnish.c:253,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:254,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_varnish.c:263,1
    - Dst: VSM_Status
      Src: /src/VTest2/src/vtc_varnish.c:264,1
    - Dst: VSL_CursorVSM
      Src: /src/VTest2/src/vtc_varnish.c:265,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:267,1
    - Dst: VSL_Error
      Src: /src/VTest2/src/vtc_varnish.c:267,1
    - Dst: VSL_ResetError
      Src: /src/VTest2/src/vtc_varnish.c:268,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:272,1
    - Dst: VSL_Next
      Src: /src/VTest2/src/vtc_varnish.c:277,1
    - Dst: VSL_TAG
      Src: /src/VTest2/src/vtc_varnish.c:283,1
    - Dst: VSL_ID
      Src: /src/VTest2/src/vtc_varnish.c:284,1
    - Dst: VSL_LEN
      Src: /src/VTest2/src/vtc_varnish.c:288,1
    - Dst: VSL_CLIENT
      Src: /src/VTest2/src/vtc_varnish.c:289,1
    - Dst: VSL_BACKEND
      Src: /src/VTest2/src/vtc_varnish.c:290,1
    - Dst: VSL_CDATA
      Src: /src/VTest2/src/vtc_varnish.c:292,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_varnish.c:296,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_varnish.c:297,1
    - Dst: VSB_quote
      Src: /src/VTest2/src/vtc_varnish.c:298,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:299,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:299,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:301,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:303,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:305,1
    - Dst: VSM_Status
      Src: /src/VTest2/src/vtc_varnish.c:313,1
    - Dst: VSL_DeleteCursor
      Src: /src/VTest2/src/vtc_varnish.c:316,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_varnish.c:319,1
    - Dst: VSL_DeleteCursor
      Src: /src/VTest2/src/vtc_varnish.c:323,1
    - Dst: VSL_DeleteCursor
      Src: /src/VTest2/src/vtc_varnish.c:330,1
    - Dst: VSL_Delete
      Src: /src/VTest2/src/vtc_varnish.c:331,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:333,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 336
    functionName: varnishlog_thread
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - vtc_log
    - CAST_OBJ_NOTNULL
    - VSL_CDATA
    - AN
    - VSB_quote
    - VSB_destroy
    - VSB_new_auto
    - VSL_Delete
    - VTIM_sleep
    - VSL_Error
    - AZ
    - VSL_Next
    - VSB_clear
    - VSB_finish
    - VSL_CLIENT
    - VSL_LEN
    - VSM_Status
    - VSL_ID
    - VSL_ResetError
    - VSL_New
    - VSL_DeleteCursor
    - VSL_CursorVSM
    - VSL_TAG
    - VSL_BACKEND
    linkageType: ''
    returnType: void
    signature: 'void *

      varnishlog_thread(void *priv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_varnish.c:349,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:350,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_varnish.c:351,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_varnish.c:353,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_varnish.c:355,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:356,1
    - Dst: macro_expandf
      Src: /src/VTest2/src/vtc_varnish.c:358,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:359,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_varnish.c:360,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:360,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:361,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:362,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_varnish.c:364,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:365,1
    - Dst: system
      Src: /src/VTest2/src/vtc_varnish.c:365,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_varnish.c:367,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_varnish.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 373
    functionName: varnish_new
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - AZ
    - ALLOC_OBJ
    - REPLACE
    - VSB_destroy
    - system
    - VTAILQ_INSERT_TAIL
    - VSB_new_auto
    - bprintf
    - macro_expandf
    - strdup
    - AN
    - vtc_logopen
    linkageType: ''
    returnType: struct varnish
    signature: 'struct varnish *

      varnish_new(const char *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_varnish.c:383,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_varnish.c:384,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:385,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:386,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:387,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:388,1
    - Dst: VSC_Destroy
      Src: /src/VTest2/src/vtc_varnish.c:390,1
    - Dst: VSM_Destroy
      Src: /src/VTest2/src/vtc_varnish.c:392,1
    - Dst: VSM_Destroy
      Src: /src/VTest2/src/vtc_varnish.c:394,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_varnish.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct varnish*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 405
    functionName: varnish_delete
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - VSC_Destroy
    - VSM_Destroy
    - FREE_OBJ
    - free
    - VSB_destroy
    - vtc_logclose
    linkageType: ''
    returnType: void
    signature: void varnish_delete(struct varnish *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_varnish.c:416,1
    - Dst: vtc_record
      Src: /src/VTest2/src/vtc_varnish.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 418
    functionName: varnish_thread
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - vtc_record
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: 'void *

      varnish_thread(void *priv)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: VTCP_listen_on
      Src: /src/VTest2/src/vtc_varnish.c:438,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:440,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_varnish.c:441,1
    - Dst: VTCP_myname
      Src: /src/VTest2/src/vtc_varnish.c:442,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:444,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:444,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:445,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_varnish.c:446,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:447,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:448,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:449,1
    - Dst: macro_isdef
      Src: /src/VTest2/src/vtc_varnish.c:451,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_varnish.c:452,1
    - Dst: macro_cat
      Src: /src/VTest2/src/vtc_varnish.c:453,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:455,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:455,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:457,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:458,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:459,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:461,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:462,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:463,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:464,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:465,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:466,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:467,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:468,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:470,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:472,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:474,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:475,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:477,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:478,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:478,1
    - Dst: macro_isdef
      Src: /src/VTest2/src/vtc_varnish.c:479,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_varnish.c:480,1
    - Dst: macro_cat
      Src: /src/VTest2/src/vtc_varnish.c:481,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:483,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:483,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:484,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:484,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc_varnish.c:485,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:485,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:486,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:487,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:489,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:489,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:490,1
    - Dst: pipe
      Src: /src/VTest2/src/vtc_varnish.c:490,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:491,1
    - Dst: pipe
      Src: /src/VTest2/src/vtc_varnish.c:491,1
    - Dst: fork
      Src: /src/VTest2/src/vtc_varnish.c:492,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_varnish.c:493,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:495,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_varnish.c:495,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_varnish.c:496,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_varnish.c:496,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_varnish.c:497,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_varnish.c:497,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_varnish.c:498,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_varnish.c:499,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_varnish.c:500,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_varnish.c:501,1
    - Dst: VSUB_closefrom
      Src: /src/VTest2/src/vtc_varnish.c:502,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:503,1
    - Dst: execl
      Src: /src/VTest2/src/vtc_varnish.c:503,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:503,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_varnish.c:504,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:506,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_varnish.c:507,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_varnish.c:508,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_varnish.c:510,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_varnish.c:511,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:514,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:515,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_varnish.c:517,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_varnish.c:517,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_varnish.c:520,1
    - Dst: poll
      Src: /src/VTest2/src/vtc_varnish.c:527,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:528,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:531,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:533,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:535,1
    - Dst: accept
      Src: /src/VTest2/src/vtc_varnish.c:536,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_varnish.c:537,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:539,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:543,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_varnish.c:544,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:547,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:551,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_varnish.c:553,1
    - Dst: open
      Src: /src/VTest2/src/vtc_varnish.c:554,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_varnish.c:555,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_varnish.c:557,1
    - Dst: bstrcpy
      Src: /src/VTest2/src/vtc_varnish.c:558,1
    - Dst: VCLI_AuthResponse
      Src: /src/VTest2/src/vtc_varnish.c:559,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_varnish.c:560,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:561,1
    - Dst: strcat
      Src: /src/VTest2/src/vtc_varnish.c:563,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:565,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:569,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:570,1
    - Dst: VSM_New
      Src: /src/VTest2/src/vtc_varnish.c:572,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:573,1
    - Dst: VSC_New
      Src: /src/VTest2/src/vtc_varnish.c:574,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:575,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_varnish.c:576,1
    - Dst: VSM_Arg
      Src: /src/VTest2/src/vtc_varnish.c:576,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:577,1
    - Dst: VSM_Attach
      Src: /src/VTest2/src/vtc_varnish.c:577,1
    - Dst: VSM_New
      Src: /src/VTest2/src/vtc_varnish.c:579,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_varnish.c:580,1
    - Dst: VSM_Arg
      Src: /src/VTest2/src/vtc_varnish.c:580,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:581,1
    - Dst: VSM_Attach
      Src: /src/VTest2/src/vtc_varnish.c:581,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_varnish.c:583,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_varnish.c:583,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 132
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct varnish*
    assertStmts:
    - condition: (VSM_Arg(v->vsm_vsc, 'n', v->workdir) > 0)
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/VTest2/src/vtc_varnish.c
    - condition: (VSM_Arg(v->vsm_vsl, 'n', v->workdir) > 0)
      pos:
        line_end: 579
        line_start: 579
        source_file: /src/VTest2/src/vtc_varnish.c
    - condition: (sizeof lbuf >= CLI_AUTH_RESPONSE_LEN + 7)
      pos:
        line_end: 556
        line_start: 556
        source_file: /src/VTest2/src/vtc_varnish.c
    - condition: (dup2(v->fds[3], 1) == 1)
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/VTest2/src/vtc_varnish.c
    - condition: (v->pid >= 0)
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/VTest2/src/vtc_varnish.c
    - condition: (asock > 0)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/VTest2/src/vtc_varnish.c
    - condition: (v->cli_fd >= 0)
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/VTest2/src/vtc_varnish.c
    - condition: (dup2(1, 2) == 2)
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/VTest2/src/vtc_varnish.c
    - condition: (nfd >= 0)
      pos:
        line_end: 554
        line_start: 554
        source_file: /src/VTest2/src/vtc_varnish.c
    constantsTouched: []
    func_position:
      end: 584
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 584
    functionName: varnish_launch
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VCLI_AuthResponse
    - VSB_data
    - pthread_create
    - exit
    - vtc_log
    - execl
    - open
    - accept
    - VTCP_myname
    - VSB_cat
    - VTCP_listen_on
    - free
    - VSM_New
    - varnish_ask_cli
    - AN
    - macro_def
    - assert
    - varnish_fatal
    - pipe
    - VSB_destroy
    - VSB_new_auto
    - closefd
    - VSUB_closefrom
    - fork
    - poll
    - bstrcpy
    - VSM_Attach
    - bprintf
    - VSC_New
    - macro_isdef
    - VSB_finish
    - VSB_putc
    - memset
    - macro_expand
    - macro_cat
    - dup2
    - PTOK
    - strcat
    - VSB_printf
    - AZ
    - VSM_Arg
    linkageType: ''
    returnType: void
    signature: void varnish_launch(struct varnish *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 594
    functionName: VARNISH_LAUNCH
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VARNISH_LAUNCH(v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/VTest2/src/vtc_varnish.c:611,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:612,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc_varnish.c:615,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:616,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc_varnish.c:619,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:620,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:624,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:625,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:626,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_varnish.c:629,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc_varnish.c:632,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_varnish.c:633,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_varnish.c:635,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:639,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_varnish.c:640,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_varnish.c:641,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_varnish.c:642,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:646,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_varnish.c:649,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_varnish.c:650,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_varnish.c:651,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_varnish.c:652,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_varnish.c:653,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_varnish.c:654,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 2
    argNames:
    - v
    - la
    argTypes:
    - struct varnish*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 657
    functionName: varnish_listen
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strcmp
    - strchr
    - bprintf
    - AN
    - macro_def
    linkageType: ''
    returnType: void
    signature: void varnish_listen(const struct varnish *v, char *la)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VARNISH_LAUNCH
      Src: /src/VTest2/src/vtc_varnish.c:665,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:666,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:667,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:671,1
    - Dst: wait_running
      Src: /src/VTest2/src/vtc_varnish.c:672,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:673,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:675,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:679,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:681,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:683,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:687,1
    - Dst: varnish_listen
      Src: /src/VTest2/src/vtc_varnish.c:689,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:690,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_varnish.c:693,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct varnish*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 659
    functionDepth: 3
    functionLinenumber: 659
    functionLinenumberEnd: 694
    functionName: varnish_start
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - varnish_listen
    - varnish_fatal
    - vtc_log
    - free
    - wait_running
    - VTIM_sleep
    - varnish_ask_cli
    - VARNISH_LAUNCH
    linkageType: ''
    returnType: void
    signature: void varnish_start(struct varnish *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VARNISH_LAUNCH
      Src: /src/VTest2/src/vtc_varnish.c:704,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:705,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:706,1
    - Dst: wait_stopped
      Src: /src/VTest2/src/vtc_varnish.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct varnish*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 700
    functionDepth: 3
    functionLinenumber: 700
    functionLinenumberEnd: 708
    functionName: varnish_stop
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - wait_stopped
    - varnish_ask_cli
    - VARNISH_LAUNCH
    - vtc_log
    linkageType: ''
    returnType: void
    signature: void varnish_stop(struct varnish *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closefd
      Src: /src/VTest2/src/vtc_varnish.c:720,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_varnish.c:723,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:726,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_varnish.c:727,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_varnish.c:727,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_varnish.c:728,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_varnish.c:732,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_varnish.c:732,1
    - Dst: vtc_wait4
      Src: /src/VTest2/src/vtc_varnish.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct varnish*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 736
    functionName: varnish_cleanup
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - PTOK
    - closefd
    - pthread_join
    - AN
    - vtc_wait4
    linkageType: ''
    returnType: void
    signature: void varnish_cleanup(struct varnish *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:748,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:752,1
    - Dst: varnish_stop
      Src: /src/VTest2/src/vtc_varnish.c:756,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:758,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:759,1
    - Dst: varnish_cleanup
      Src: /src/VTest2/src/vtc_varnish.c:761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct varnish*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 742
    functionDepth: 4
    functionLinenumber: 742
    functionLinenumberEnd: 762
    functionName: varnish_wait
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - varnish_fatal
    - vtc_log
    - varnish_stop
    - varnish_ask_cli
    - varnish_cleanup
    linkageType: ''
    returnType: void
    signature: void varnish_wait(struct varnish *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VARNISH_LAUNCH
      Src: /src/VTest2/src/vtc_varnish.c:777,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:778,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:779,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:781,1
    - Dst: vjsn_parse
      Src: /src/VTest2/src/vtc_varnish.c:783,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:785,1
    - Dst: vjsn_delete
      Src: /src/VTest2/src/vtc_varnish.c:786,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - v
    - cli
    argTypes:
    - struct varnish*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 788
    functionName: varnish_cli_json
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - varnish_fatal
    - vtc_log
    - vjsn_parse
    - vjsn_delete
    - free
    - varnish_ask_cli
    - VARNISH_LAUNCH
    linkageType: ''
    returnType: void
    signature: void varnish_cli_json(struct varnish *v, const char *cli)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VARNISH_LAUNCH
      Src: /src/VTest2/src/vtc_varnish.c:804,1
    - Dst: VRE_compile
      Src: /src/VTest2/src/vtc_varnish.c:806,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:808,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_varnish.c:808,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:809,1
    - Dst: VRE_error
      Src: /src/VTest2/src/vtc_varnish.c:809,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:810,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:810,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_varnish.c:811,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:812,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:816,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:817,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:819,1
    - Dst: VRE_match
      Src: /src/VTest2/src/vtc_varnish.c:821,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:823,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_varnish.c:823,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:824,1
    - Dst: VRE_error
      Src: /src/VTest2/src/vtc_varnish.c:824,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:825,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:825,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_varnish.c:826,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:827,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:830,1
    - Dst: VRE_free
      Src: /src/VTest2/src/vtc_varnish.c:834,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:836,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - v
    - cli
    - exp
    - re
    - neg
    argTypes:
    - struct varnish*
    - char*
    - unsigned
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 837
    functionName: varnish_cli
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - varnish_fatal
    - vtc_log
    - VSB_finish
    - VARNISH_LAUNCH
    - VRE_free
    - free
    - VRE_compile
    - VSB_fini
    - varnish_ask_cli
    - VSB_init
    - AZ
    - AN
    - VRE_error
    - VRE_match
    linkageType: ''
    returnType: void
    signature: "void varnish_cli(struct varnish *v, const char *cli, unsigned exp,
      const char *re,\n    int neg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VARNISH_LAUNCH
      Src: /src/VTest2/src/vtc_varnish.c:849,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_varnish.c:850,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:851,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:853,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:855,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:855,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:857,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:857,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_varnish.c:859,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:860,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:861,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:861,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:862,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:862,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:865,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:866,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:868,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:869,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:871,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:872,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - v
    - vcl
    - fail
    - resp
    argTypes:
    - struct varnish*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 873
    functionName: varnish_vcl
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - varnish_fatal
    - vtc_log
    - VSB_finish
    - VARNISH_LAUNCH
    - VSB_destroy
    - VSB_new_auto
    - VSB_printf
    - varnish_ask_cli
    - VSB_clear
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void varnish_vcl(struct varnish *v, const char *vcl, int fail, char
      **resp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VARNISH_LAUNCH
      Src: /src/VTest2/src/vtc_varnish.c:885,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_varnish.c:886,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:887,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_varnish.c:889,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:890,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:892,1
    - Dst: cmd_server_gen_vcl
      Src: /src/VTest2/src/vtc_varnish.c:894,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:896,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:896,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:898,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:899,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:900,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:900,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:902,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:902,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:904,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:905,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:906,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_varnish.c:908,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:909,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:910,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:910,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:911,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:911,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_varnish.c:912,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:913,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - v
    - vcl
    argTypes:
    - struct varnish*
    - char*
    assertStmts:
    - condition: (u == CLIS_OK)
      pos:
        line_end: 911
        line_start: 911
        source_file: /src/VTest2/src/vtc_varnish.c
    constantsTouched: []
    func_position:
      end: 915
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 915
    functionName: varnish_vclbackend
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - varnish_fatal
    - assert
    - VSB_finish
    - VARNISH_LAUNCH
    - cmd_server_gen_vcl
    - VSB_destroy
    - VSB_new_auto
    - VSB_printf
    - varnish_ask_cli
    - VSB_clear
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void varnish_vclbackend(struct varnish *v, const char *vcl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:937,1
    - Dst: VSC_Value
      Src: /src/VTest2/src/vtc_varnish.c:939,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:941,1
    - Dst: fnmatch
      Src: /src/VTest2/src/vtc_varnish.c:942,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:946,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - priv
    - pt
    argTypes:
    - void*
    - struct VSC_point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 948
    functionName: do_stat_dump_cb
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - strcmp
    - vtc_log
    - fnmatch
    - VSC_Value
    linkageType: ''
    returnType: int
    signature: int do_stat_dump_cb(void *priv, const struct VSC_point * const pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VARNISH_LAUNCH
      Src: /src/VTest2/src/vtc_varnish.c:955,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_varnish.c:956,1
    - Dst: VSM_Status
      Src: /src/VTest2/src/vtc_varnish.c:959,1
    - Dst: VSC_Iter
      Src: /src/VTest2/src/vtc_varnish.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - v
    - arg
    argTypes:
    - struct varnish*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 961
    functionName: varnish_vsc
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VSC_Iter
    - VARNISH_LAUNCH
    - memset
    - VSM_Status
    linkageType: ''
    returnType: void
    signature: void varnish_vsc(struct varnish *v, const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/VTest2/src/vtc_varnish.c:982,1
    - Dst: fnmatch
      Src: /src/VTest2/src/vtc_varnish.c:983,1
    - Dst: fnmatch
      Src: /src/VTest2/src/vtc_varnish.c:987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pattern
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 988
    functionName: stat_match
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - fnmatch
    - strchr
    linkageType: ''
    returnType: int
    signature: int stat_match(const char *pattern, const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stat_match
      Src: /src/VTest2/src/vtc_varnish.c:998,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:999,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:999,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1000,1
    - Dst: VSC_Value
      Src: /src/VTest2/src/vtc_varnish.c:1001,1
    - Dst: stat_match
      Src: /src/VTest2/src/vtc_varnish.c:1008,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1009,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1009,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1010,1
    - Dst: VSC_Value
      Src: /src/VTest2/src/vtc_varnish.c:1011,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - priv
    - pt
    argTypes:
    - void*
    - struct VSC_point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1016
    functionName: do_expect_cb
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - strcmp
    - stat_match
    - AZ
    - AN
    - VSC_Value
    linkageType: ''
    returnType: int
    signature: int do_expect_cb(void *priv, const struct VSC_point * const pt)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: VARNISH_LAUNCH
      Src: /src/VTest2/src/vtc_varnish.c:1029,1
    - Dst: ZERO_OBJ
      Src: /src/VTest2/src/vtc_varnish.c:1030,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1035,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1037,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1038,1
    - Dst: strtoumax
      Src: /src/VTest2/src/vtc_varnish.c:1039,1
    - Dst: usleep
      Src: /src/VTest2/src/vtc_varnish.c:1048,1
    - Dst: VSM_Status
      Src: /src/VTest2/src/vtc_varnish.c:1049,1
    - Dst: VSC_Iter
      Src: /src/VTest2/src/vtc_varnish.c:1051,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1058,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1061,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1062,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1063,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1064,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1065,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1066,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1068,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1073,1
    - Dst: VSM_Error
      Src: /src/VTest2/src/vtc_varnish.c:1073,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:1077,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1080,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:1085,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1088,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 2
    argNames:
    - v
    - av
    argTypes:
    - struct varnish*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1091
    functionName: varnish_expect
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - ZERO_OBJ
    - varnish_fatal
    - VSM_Error
    - vtc_log
    - VARNISH_LAUNCH
    - strcmp
    - strtoumax
    - usleep
    - VSC_Iter
    - AZ
    - AN
    - VSM_Status
    linkageType: ''
    returnType: void
    signature: void varnish_expect(struct varnish *v, char * const *av)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VARNISH_LAUNCH
      Src: /src/VTest2/src/vtc_varnish.c:1098,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_varnish.c:1101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct varnish*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1102
    functionName: vsl_catchup
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VTIM_sleep
    - VARNISH_LAUNCH
    linkageType: ''
    returnType: void
    signature: void vsl_catchup(struct varnish *v)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_varnish.c:1243,1
    - Dst: varnish_wait
      Src: /src/VTest2/src/vtc_varnish.c:1245,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_varnish.c:1246,1
    - Dst: varnish_delete
      Src: /src/VTest2/src/vtc_varnish.c:1247,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1252,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1252,1
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_varnish.c:1255,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_varnish.c:1256,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1257,1
    - Dst: varnish_new
      Src: /src/VTest2/src/vtc_varnish.c:1260,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1267,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1268,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1269,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:1270,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:1271,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1277,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1278,1
    - Dst: varnish_cleanup
      Src: /src/VTest2/src/vtc_varnish.c:1279,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1282,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1283,1
    - Dst: varnish_cli
      Src: /src/VTest2/src/vtc_varnish.c:1284,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1288,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1289,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1290,1
    - Dst: varnish_cli
      Src: /src/VTest2/src/vtc_varnish.c:1291,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_varnish.c:1291,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1295,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1298,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1299,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1303,1
    - Dst: varnish_cli
      Src: /src/VTest2/src/vtc_varnish.c:1305,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1309,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1310,1
    - Dst: varnish_cli_json
      Src: /src/VTest2/src/vtc_varnish.c:1311,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1315,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1316,1
    - Dst: varnish_cli
      Src: /src/VTest2/src/vtc_varnish.c:1317,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1321,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1323,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1324,1
    - Dst: varnish_vcl
      Src: /src/VTest2/src/vtc_varnish.c:1325,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc_varnish.c:1326,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1327,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:1331,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:1334,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1338,1
    - Dst: varnish_expect
      Src: /src/VTest2/src/vtc_varnish.c:1340,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1344,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_varnish.c:1345,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1349,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1350,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1351,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_varnish.c:1352,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1356,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1357,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1358,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_varnish.c:1359,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1363,1
    - Dst: varnish_start
      Src: /src/VTest2/src/vtc_varnish.c:1364,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1367,1
    - Dst: varnish_stop
      Src: /src/VTest2/src/vtc_varnish.c:1368,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1371,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1372,1
    - Dst: strtod
      Src: /src/VTest2/src/vtc_varnish.c:1373,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1377,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1378,1
    - Dst: varnish_vcl
      Src: /src/VTest2/src/vtc_varnish.c:1379,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1383,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1384,1
    - Dst: varnish_vclbackend
      Src: /src/VTest2/src/vtc_varnish.c:1385,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1389,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1390,1
    - Dst: varnish_vsc
      Src: /src/VTest2/src/vtc_varnish.c:1391,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1395,1
    - Dst: wait_stopped
      Src: /src/VTest2/src/vtc_varnish.c:1396,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1399,1
    - Dst: wait_running
      Src: /src/VTest2/src/vtc_varnish.c:1400,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1403,1
    - Dst: varnish_wait
      Src: /src/VTest2/src/vtc_varnish.c:1404,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1407,1
    - Dst: vsl_catchup
      Src: /src/VTest2/src/vtc_varnish.c:1408,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1411,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 162
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1234
    functionDepth: 5
    functionLinenumber: 1234
    functionLinenumberEnd: 1413
    functionName: cmd_varnish
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - varnish_stop
    - REPLACE
    - free
    - varnish_new
    - atoi
    - VTAILQ_FOREACH_SAFE
    - AN
    - varnish_fatal
    - strcmp
    - varnish_vcl
    - wait_running
    - varnish_vclbackend
    - varnish_wait
    - strstr
    - strtod
    - VTC_CHECK_NAME
    - VTAILQ_FOREACH
    - varnish_delete
    - strtoul
    - varnish_expect
    - varnish_cleanup
    - VTAILQ_REMOVE
    - varnish_cli_json
    - vsl_catchup
    - varnish_cli
    - varnish_start
    - VSB_cat
    - varnish_vsc
    - AZ
    - wait_stopped
    linkageType: ''
    returnType: void
    signature: void cmd_varnish(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_sess.c:57,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:58,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_sess.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - vl
    - name
    argTypes:
    - struct vtclog*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: Sess_New
    functionSourceFile: /src/VTest2/src/vtc_sess.c
    functionUses: 0
    functionsReached:
    - AN
    - REPLACE
    - ALLOC_OBJ
    linkageType: ''
    returnType: struct vtc_sess
    signature: 'struct vtc_sess *

      Sess_New(struct vtclog *vl, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_sess.c:70,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_sess.c:71,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_sess.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vspp
    argTypes:
    - struct vtc_sess**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: Sess_Destroy
    functionSourceFile: /src/VTest2/src/vtc_sess.c
    functionUses: 0
    functionsReached:
    - FREE_OBJ
    - TAKE_OBJ_NOTNULL
    - REPLACE
    linkageType: ''
    returnType: void
    signature: void Sess_Destroy(struct vtc_sess **vspp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_sess.c:81,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:82,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:84,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_sess.c:85,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:86,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_sess.c:87,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_sess.c:90,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:91,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_sess.c:92,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_sess.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - vsp
    - avp
    argTypes:
    - struct vtc_sess*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 101
    functionName: Sess_GetOpt
    functionSourceFile: /src/VTest2/src/vtc_sess.c
    functionUses: 0
    functionsReached:
    - atoi
    - strcmp
    - AN
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: int
    signature: int Sess_GetOpt(struct vtc_sess *vsp, char * const **avp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_sess.c:108,1
    - Dst: http_process
      Src: /src/VTest2/src/vtc_sess.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - vl
    - vsp
    - spec
    - sock
    - sfd
    - addr
    argTypes:
    - struct vtclog*
    - struct vtc_sess*
    - char*
    - int*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: sess_process
    functionSourceFile: /src/VTest2/src/vtc_sess.c
    functionUses: 0
    functionsReached:
    - http_process
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: "void sess_process(struct vtclog *vl, struct vtc_sess *vsp,\n    const
      char *spec, int *sock, int *sfd, const char *addr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_sess.c:121,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_sess.c:123,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_sess.c:126,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_sess.c:127,1
    - Dst: pthread_cleanup_push
      Src: /src/VTest2/src/vtc_sess.c:128,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_sess.c:130,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_sess.c:131,1
    - Dst: struct thread_arg::conn_f
      Src: /src/VTest2/src/vtc_sess.c:135,1
    - Dst: sess_process
      Src: /src/VTest2/src/vtc_sess.c:136,1
    - Dst: struct thread_arg::disc_f
      Src: /src/VTest2/src/vtc_sess.c:139,1
    - Dst: struct thread_arg::disc_f
      Src: /src/VTest2/src/vtc_sess.c:142,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_sess.c:143,1
    - Dst: pthread_cleanup_pop
      Src: /src/VTest2/src/vtc_sess.c:144,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_sess.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts:
    - condition: (vsp->repeat > 0)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/VTest2/src/vtc_sess.c
    constantsTouched: []
    func_position:
      end: 147
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 147
    functionName: sess_thread
    functionSourceFile: /src/VTest2/src/vtc_sess.c
    functionUses: 0
    functionsReached:
    - struct thread_arg::conn_f
    - assert
    - CHECK_OBJ_NOTNULL
    - vtc_log
    - struct thread_arg::disc_f
    - FREE_OBJ
    - CAST_OBJ_NOTNULL
    - pthread_cleanup_pop
    - vtc_logclose
    - pthread_cleanup_push
    - sess_process
    - vtc_logopen
    linkageType: ''
    returnType: void
    signature: 'void *

      sess_thread(void *priv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:163,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_sess.c:164,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:165,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:166,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:167,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_sess.c:168,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:169,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_sess.c:178,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_sess.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 7
    argNames:
    - priv
    - vsp
    - conn
    - disc
    - listen_addr
    - asocket
    - spec
    argTypes:
    - void*
    - struct vtc_sess*
    - sess_conn_f*
    - sess_disc_f*
    - char*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 180
    functionName: Sess_Start_Thread
    functionSourceFile: /src/VTest2/src/vtc_sess.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - CHECK_OBJ_NOTNULL
    - ALLOC_OBJ
    - PTOK
    - AN
    linkageType: ''
    returnType: pthread_t
    signature: "pthread_t Sess_Start_Thread(\n    void *priv,\n    struct vtc_sess
      *vsp,\n    sess_conn_f *conn,\n    sess_disc_f *disc,\n    const char *listen_addr,\n
      \   int *asocket,\n    const char *spec\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_server.c:82,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_server.c:83,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_server.c:84,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_server.c:85,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_server.c:86,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_server.c:87,1
    - Dst: Sess_New
      Src: /src/VTest2/src/vtc_server.c:88,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_server.c:89,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_server.c:91,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:95,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_server.c:95,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_server.c:96,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:97,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_server.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - name
    - vl
    argTypes:
    - char*
    - struct vtclog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: server_new
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - VTC_CHECK_NAME
    - Sess_New
    - ALLOC_OBJ
    - REPLACE
    - VTAILQ_INSERT_TAIL
    - PTOK
    - bprintf
    - pthread_mutex_lock
    - AN
    - pthread_mutex_unlock
    - vtc_logopen
    linkageType: ''
    returnType: struct server
    signature: 'struct server *

      server_new(const char *name, struct vtclog *vl)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_server.c:109,1
    - Dst: Sess_Destroy
      Src: /src/VTest2/src/vtc_server.c:110,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_server.c:111,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_server.c:112,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_server.c:113,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_server.c:114,1
    - Dst: free
      Src: /src/VTest2/src/vtc_server.c:115,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_server.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: server_delete
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - Sess_Destroy
    - FREE_OBJ
    - free
    - macro_undef
    - vtc_logclose
    linkageType: ''
    returnType: void
    signature: void server_delete(struct server *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VUS_bind
      Src: /src/VTest2/src/vtc_server.c:136,1
    - Dst: listen
      Src: /src/VTest2/src/vtc_server.c:138,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_server.c:140,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_server.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - priv
    - uds
    argTypes:
    - void*
    - struct sockaddr_un*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 153
    functionName: uds_listen
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - listen
    - closefd
    - AN
    - VUS_bind
    linkageType: ''
    returnType: void
    signature: void uds_listen(void *priv, const struct sockaddr_un *uds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/VTest2/src/vtc_server.c:165,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_server.c:166,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_server.c:167,1
    - Dst: umask
      Src: /src/VTest2/src/vtc_server.c:172,1
    - Dst: VUS_resolver
      Src: /src/VTest2/src/vtc_server.c:173,1
    - Dst: umask
      Src: /src/VTest2/src/vtc_server.c:174,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_server.c:177,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_server.c:178,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_server.c:179,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_server.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - s
    - errp
    argTypes:
    - struct server*
    - char**
    assertStmts:
    - condition: (s->sock > 0)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/VTest2/src/vtc_server.c
    constantsTouched: []
    func_position:
      end: 181
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 181
    functionName: server_listen_uds
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - assert
    - strerror
    - umask
    - vtc_fatal
    - VUS_resolver
    - unlink
    - macro_def
    linkageType: ''
    returnType: void
    signature: void server_listen_uds(struct server *s, const char **errp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VTCP_listen_on
      Src: /src/VTest2/src/vtc_server.c:189,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_server.c:192,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/src/vtc_server.c:193,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_server.c:194,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_server.c:195,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_server.c:199,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_server.c:200,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_server.c:202,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_server.c:204,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_server.c:205,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_server.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - s
    - errp
    argTypes:
    - struct server*
    - char**
    assertStmts:
    - condition: (s->sock > 0)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/VTest2/src/vtc_server.c
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: server_listen_tcp
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - VTCP_name
    - assert
    - VSA_getsockname
    - VSA_Get_Proto
    - VTCP_listen_on
    - bprintf
    - AN
    - macro_def
    linkageType: ''
    returnType: void
    signature: void server_listen_tcp(struct server *s, const char **errp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_server.c:214,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_server.c:217,1
    - Dst: VUS_is
      Src: /src/VTest2/src/vtc_server.c:218,1
    - Dst: server_listen_uds
      Src: /src/VTest2/src/vtc_server.c:219,1
    - Dst: server_listen_tcp
      Src: /src/VTest2/src/vtc_server.c:221,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_server.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 226
    functionName: server_listen
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - VTCP_close
    - CHECK_OBJ_NOTNULL
    - server_listen_uds
    - vtc_fatal
    - server_listen_tcp
    - VUS_is
    linkageType: ''
    returnType: void
    signature: void server_listen(struct server *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_server.c:243,1
    - Dst: accept
      Src: /src/VTest2/src/vtc_server.c:247,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_server.c:249,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_server.c:249,1
    - Dst: VUS_is
      Src: /src/VTest2/src/vtc_server.c:250,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:251,1
    - Dst: VTCP_hisname
      Src: /src/VTest2/src/vtc_server.c:253,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - priv
    - vl
    argTypes:
    - void*
    - struct vtclog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 257
    functionName: server_conn
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strerror
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - accept
    - VTCP_hisname
    - VUS_is
    linkageType: ''
    returnType: int
    signature: int server_conn(void *priv, struct vtclog *vl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_server.c:265,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:266,1
    - Dst: shutdown
      Src: /src/VTest2/src/vtc_server.c:267,1
    - Dst: VTCP_Check
      Src: /src/VTest2/src/vtc_server.c:268,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_server.c:269,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_server.c:269,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_server.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - priv
    - vl
    - fdp
    argTypes:
    - void*
    - struct vtclog*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 271
    functionName: server_disc
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - VTCP_close
    - VTCP_Check
    - vtc_log
    - strerror
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - shutdown
    linkageType: ''
    returnType: void
    signature: void server_disc(void *priv, struct vtclog *vl, int *fdp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sess_Start_Thread
      Src: /src/VTest2/src/vtc_server.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 287
    functionName: server_start_thread
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - Sess_Start_Thread
    linkageType: ''
    returnType: void
    signature: void server_start_thread(struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_server.c:296,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:297,1
    - Dst: server_listen
      Src: /src/VTest2/src/vtc_server.c:298,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:299,1
    - Dst: server_start_thread
      Src: /src/VTest2/src/vtc_server.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 301
    functionName: server_start
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - server_listen
    - server_start_thread
    - vtc_log
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void server_start(struct server *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_server.c:313,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_server.c:314,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_server.c:316,1
    - Dst: pthread_cleanup_push
      Src: /src/VTest2/src/vtc_server.c:317,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:321,1
    - Dst: sess_process
      Src: /src/VTest2/src/vtc_server.c:322,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:323,1
    - Dst: shutdown
      Src: /src/VTest2/src/vtc_server.c:324,1
    - Dst: VTCP_Check
      Src: /src/VTest2/src/vtc_server.c:325,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_server.c:326,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_server.c:326,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_server.c:327,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:328,1
    - Dst: pthread_cleanup_pop
      Src: /src/VTest2/src/vtc_server.c:329,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_server.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts:
    - condition: (s->sock < 0)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/VTest2/src/vtc_server.c
    constantsTouched: []
    func_position:
      end: 332
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 332
    functionName: server_dispatch_wrk
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - pthread_cleanup_pop
    - VTCP_close
    - assert
    - vtc_log
    - VTCP_Check
    - strerror
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - shutdown
    - vtc_logclose
    - pthread_cleanup_push
    - sess_process
    - vtc_logopen
    linkageType: ''
    returnType: void
    signature: 'void *

      server_dispatch_wrk(void *priv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_server.c:346,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_server.c:347,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_server.c:349,1
    - Dst: pthread_cleanup_push
      Src: /src/VTest2/src/vtc_server.c:350,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:352,1
    - Dst: accept
      Src: /src/VTest2/src/vtc_server.c:357,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_server.c:359,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_server.c:359,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_server.c:360,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:361,1
    - Dst: server_new
      Src: /src/VTest2/src/vtc_server.c:362,1
    - Dst: bstrcpy
      Src: /src/VTest2/src/vtc_server.c:365,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:368,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_server.c:368,1
    - Dst: pthread_cleanup_pop
      Src: /src/VTest2/src/vtc_server.c:370,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_server.c:371,1
    - Dst: NEEDLESS
      Src: /src/VTest2/src/vtc_server.c:372,1
    - Dst: return
      Src: /src/VTest2/src/vtc_server.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts:
    - condition: (s->sock >= 0)
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/VTest2/src/vtc_server.c
    constantsTouched: []
    func_position:
      end: 373
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 373
    functionName: server_dispatch_thread
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - bstrcpy
    - assert
    - vtc_log
    - strerror
    - server_new
    - pthread_create
    - vtc_fatal
    - NEEDLESS
    - CAST_OBJ_NOTNULL
    - accept
    - PTOK
    - bprintf
    - pthread_cleanup_pop
    - vtc_logclose
    - pthread_cleanup_push
    - return
    - vtc_logopen
    linkageType: ''
    returnType: void
    signature: 'void *

      server_dispatch_thread(void *priv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_server.c:378,1
    - Dst: server_listen
      Src: /src/VTest2/src/vtc_server.c:379,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:380,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:382,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_server.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 383
    functionName: server_dispatch
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - PTOK
    - server_listen
    linkageType: ''
    returnType: void
    signature: void server_dispatch(struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_server.c:394,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:395,1
    - Dst: pthread_cancel
      Src: /src/VTest2/src/vtc_server.c:396,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:397,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_server.c:397,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_server.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 401
    functionName: server_break
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - VTCP_close
    - pthread_cancel
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - PTOK
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void server_break(struct server *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_server.c:412,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_server.c:413,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:414,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_server.c:414,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_server.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 420
    functionName: server_wait
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - PTOK
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void server_wait(struct server *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:431,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_server.c:431,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_server.c:432,1
    - Dst: VUS_is
      Src: /src/VTest2/src/vtc_server.c:436,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_server.c:437,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_server.c:441,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:445,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_server.c:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - vsb
    argTypes:
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 446
    functionName: cmd_server_gen_vcl
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - VTAILQ_FOREACH
    - pthread_mutex_lock
    - PTOK
    - VSB_printf
    - VUS_is
    linkageType: ''
    returnType: void
    signature: void cmd_server_gen_vcl(struct vsb *vsb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:458,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_server.c:458,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_server.c:459,1
    - Dst: VUS_is
      Src: /src/VTest2/src/vtc_server.c:460,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_server.c:461,1
    - Dst: INCOMPL
      Src: /src/VTest2/src/vtc_server.c:466,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_server.c:468,1
    - Dst: VUS_is
      Src: /src/VTest2/src/vtc_server.c:469,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_server.c:470,1
    - Dst: INCOMPL
      Src: /src/VTest2/src/vtc_server.c:476,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:478,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_server.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - vsb
    argTypes:
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 479
    functionName: cmd_server_gen_haproxy_conf
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - VTAILQ_FOREACH
    - pthread_mutex_lock
    - INCOMPL
    - PTOK
    - VSB_printf
    - VUS_is
    linkageType: ''
    returnType: void
    signature: void cmd_server_gen_haproxy_conf(struct vsb *vsb)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:496,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_server.c:496,1
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/src/vtc_server.c:497,1
    - Dst: CHECK_OBJ_ORNULL
      Src: /src/VTest2/src/vtc_server.c:498,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_server.c:500,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:501,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_server.c:501,1
    - Dst: pthread_cancel
      Src: /src/VTest2/src/vtc_server.c:505,1
    - Dst: server_wait
      Src: /src/VTest2/src/vtc_server.c:506,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_server.c:509,1
    - Dst: server_delete
      Src: /src/VTest2/src/vtc_server.c:510,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_server.c:515,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_server.c:515,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:518,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_server.c:518,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_server.c:519,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_server.c:520,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:522,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_server.c:522,1
    - Dst: server_new
      Src: /src/VTest2/src/vtc_server.c:524,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_server.c:525,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_server.c:531,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_server.c:533,1
    - Dst: server_wait
      Src: /src/VTest2/src/vtc_server.c:534,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_server.c:538,1
    - Dst: server_break
      Src: /src/VTest2/src/vtc_server.c:539,1
    - Dst: server_wait
      Src: /src/VTest2/src/vtc_server.c:548,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_server.c:550,1
    - Dst: Sess_GetOpt
      Src: /src/VTest2/src/vtc_server.c:552,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_server.c:555,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_server.c:557,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_server.c:558,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_server.c:562,1
    - Dst: server_start
      Src: /src/VTest2/src/vtc_server.c:563,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_server.c:566,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_server.c:567,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_server.c:568,1
    - Dst: server_dispatch
      Src: /src/VTest2/src/vtc_server.c:570,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_server.c:574,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 577
    functionName: cmd_server
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - VTCP_close
    - Sess_GetOpt
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - pthread_cancel
    - vtc_fatal
    - strcmp
    - server_delete
    - VTAILQ_FOREACH
    - server_dispatch
    - bprintf
    - server_wait
    - VTAILQ_REMOVE
    - server_new
    - server_start
    - CHECK_OBJ_NOTNULL
    - VTAILQ_FIRST
    - PTOK
    - CHECK_OBJ_ORNULL
    - AZ
    - server_break
    linkageType: ''
    returnType: void
    signature: void cmd_server(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_server.c:582,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc_server.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 583
    functionName: init_server
    functionSourceFile: /src/VTest2/src/vtc_server.c
    functionUses: 0
    functionsReached:
    - PTOK
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void init_server(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ITER_DONE
    functionSourceFile: /src/VTest2/src/vtc_h2_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITER_DONE(iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - priv
    - pos
    argTypes:
    - void*
    - teken_pos_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: term_cursor
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void term_cursor(void *priv, const teken_pos_t *pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:120,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:124,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - priv
    - pos
    - ch
    - at
    argTypes:
    - void*
    - teken_pos_t*
    - teken_char_t
    - teken_attr_t*
    assertStmts:
    - condition: (pos->tp_col < pp->ncol)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (pos->tp_row < pp->nlin)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/VTest2/src/vtc_process.c
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: term_putchar
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - CAST_OBJ_NOTNULL
    - assert
    linkageType: ''
    returnType: void
    signature: "void term_putchar(void *priv, const teken_pos_t *pos, teken_char_t
      ch,\n    const teken_attr_t *at)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: term_putchar
      Src: /src/VTest2/src/vtc_process.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - priv
    - r
    - c
    - a
    argTypes:
    - void*
    - teken_rect_t*
    - teken_char_t
    - teken_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 141
    functionName: term_fill
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - term_putchar
    linkageType: ''
    returnType: void
    signature: "void term_fill(void *priv, const teken_rect_t *r, teken_char_t c,\n
      \   const teken_attr_t *a)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:153,1
    - Dst: memmove
      Src: /src/VTest2/src/vtc_process.c:161,1
    - Dst: memmove
      Src: /src/VTest2/src/vtc_process.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - priv
    - r
    - p
    argTypes:
    - void*
    - teken_rect_t*
    - teken_pos_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 169
    functionName: term_copy
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - memmove
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void term_copy(void *priv, const teken_rect_t *r, const teken_pos_t
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:177,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_process.c:179,1
    - Dst: write
      Src: /src/VTest2/src/vtc_process.c:181,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:183,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_process.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - priv
    - p
    - l
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: term_respond
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - strerror
    - vtc_fatal
    - write
    - CAST_OBJ_NOTNULL
    - vtc_dump
    linkageType: ''
    returnType: void
    signature: void term_respond(void *priv, const void *p, size_t l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:193,1
    - Dst: term_resize
      Src: /src/VTest2/src/vtc_process.c:195,1
    - Dst: term_resize
      Src: /src/VTest2/src/vtc_process.c:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - priv
    - p
    - v
    argTypes:
    - void*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: term_param
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - CAST_OBJ_NOTNULL
    - term_resize
    linkageType: ''
    returnType: void
    signature: void term_param(void *priv, int p, unsigned int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_process.c:216,1
    - Dst: teken_get_cursor
      Src: /src/VTest2/src/vtc_process.c:217,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pp
    argTypes:
    - struct process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 220
    functionName: term_screen_dump
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - teken_get_cursor
    - vtc_log
    - vtc_dump
    linkageType: ''
    returnType: void
    signature: void term_screen_dump(const struct process *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/VTest2/src/vtc_process.c:229,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:230,1
    - Dst: calloc
      Src: /src/VTest2/src/vtc_process.c:232,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:233,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_process.c:234,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_process.c:244,1
    - Dst: free
      Src: /src/VTest2/src/vtc_process.c:247,1
    - Dst: free
      Src: /src/VTest2/src/vtc_process.c:248,1
    - Dst: teken_set_winsize
      Src: /src/VTest2/src/vtc_process.c:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - pp
    - lin
    - col
    argTypes:
    - struct process*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 257
    functionName: term_resize
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 1
    functionsReached:
    - memset
    - memcpy
    - calloc
    - free
    - teken_set_winsize
    - AN
    linkageType: ''
    returnType: void
    signature: void term_resize(struct process *pp, int lin, int col)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/VTest2/src/vtc_process.c:266,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_process.c:273,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:274,1
    - Dst: memcmp
      Src: /src/VTest2/src/vtc_process.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - pp
    - x
    - y
    - pat
    argTypes:
    - struct process*
    - int*
    - int
    - char*
    assertStmts:
    - condition: ((*x - 1) + (l - 1) < pp->ncol)
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/VTest2/src/vtc_process.c
    constantsTouched: []
    func_position:
      end: 279
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 279
    functionName: term_find_textline
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strstr
    - assert
    - strlen
    linkageType: ''
    returnType: int
    signature: int term_find_textline(const struct process *pp, int *x, int y, const
      char *pat)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: term_find_textline
      Src: /src/VTest2/src/vtc_process.c:288,1
    - Dst: term_find_textline
      Src: /src/VTest2/src/vtc_process.c:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - pp
    - x
    - y
    - pat
    argTypes:
    - struct process*
    - int*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 298
    functionName: term_find_text
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - term_find_textline
    linkageType: ''
    returnType: int
    signature: int term_find_text(const struct process *pp, int *x, int *y, const
      char *pat)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_process.c:307,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:309,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_process.c:310,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_process.c:312,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:314,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_process.c:315,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:317,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:318,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_process.c:318,1
    - Dst: term_find_text
      Src: /src/VTest2/src/vtc_process.c:319,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:322,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:325,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_process.c:325,1
    - Dst: usleep
      Src: /src/VTest2/src/vtc_process.c:326,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:327,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_process.c:327,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:331,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_process.c:331,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:332,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - pp
    - lin
    - col
    - pat
    argTypes:
    - struct process*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 333
    functionName: term_expect_text
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - term_find_text
    - vtc_log
    - vtc_fatal
    - strtoul
    - PTOK
    - usleep
    - pthread_mutex_lock
    - VTIM_sleep
    - pthread_mutex_unlock
    - strlen
    linkageType: ''
    returnType: void
    signature: "void term_expect_text(struct process *pp,\n    const char *lin, const
      char *col, const char *pat)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: teken_get_cursor
      Src: /src/VTest2/src/vtc_process.c:341,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_process.c:342,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:344,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_process.c:345,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_process.c:347,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:349,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:351,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:354,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 3
    argNames:
    - pp
    - lin
    - col
    argTypes:
    - struct process*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 356
    functionName: term_expect_cursor
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - teken_get_cursor
    - VTIM_sleep
    - vtc_fatal
    - strtoul
    linkageType: ''
    returnType: void
    signature: void term_expect_cursor(const struct process *pp, const char *lin,
      const char *col)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_process.c:369,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:370,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_process.c:372,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:374,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_process.c:375,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_process.c:377,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:379,1
    - Dst: VRE_compile
      Src: /src/VTest2/src/vtc_process.c:387,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:389,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_process.c:389,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:390,1
    - Dst: VRE_error
      Src: /src/VTest2/src/vtc_process.c:390,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:391,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_process.c:391,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_process.c:392,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:393,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:397,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_process.c:397,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_process.c:401,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_process.c:402,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:405,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_process.c:405,1
    - Dst: VRE_match
      Src: /src/VTest2/src/vtc_process.c:407,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_process.c:407,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:408,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:410,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:412,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_process.c:412,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_process.c:413,1
    - Dst: VRE_free
      Src: /src/VTest2/src/vtc_process.c:414,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - pp
    - lin
    - col
    - re
    argTypes:
    - struct process*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 415
    functionName: term_match_text
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - vtc_log
    - VRE_free
    - VSB_fini
    - pthread_mutex_lock
    - VSB_init
    - AN
    - vtc_fatal
    - VSB_destroy
    - VSB_new_auto
    - VTIM_sleep
    - VRE_error
    - VRE_match
    - VSB_bcat
    - strtoul
    - VSB_finish
    - VSB_putc
    - VRE_compile
    - PTOK
    - AZ
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: "void term_match_text(struct process *pp,\n    const char *lin, const
      char *col, const char *re)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - field
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 429
    functionName: PROCESS_EXPAND
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROCESS_EXPAND(field, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_get_sequence
      Src: /src/VTest2/src/vtc_process.c:439,1
    - Dst: teken_get_sequence
      Src: /src/VTest2/src/vtc_process.c:440,1
    - Dst: teken_256to8
      Src: /src/VTest2/src/vtc_process.c:441,1
    - Dst: teken_256to16
      Src: /src/VTest2/src/vtc_process.c:442,1
    - Dst: teken_get_defattr
      Src: /src/VTest2/src/vtc_process.c:443,1
    - Dst: teken_set_defattr
      Src: /src/VTest2/src/vtc_process.c:444,1
    - Dst: teken_get_curattr
      Src: /src/VTest2/src/vtc_process.c:445,1
    - Dst: teken_set_curattr
      Src: /src/VTest2/src/vtc_process.c:446,1
    - Dst: teken_get_winsize
      Src: /src/VTest2/src/vtc_process.c:447,1
    - Dst: teken_set_cursor
      Src: /src/VTest2/src/vtc_process.c:450,1
    - Dst: teken_get_defattr_cons25
      Src: /src/VTest2/src/vtc_process.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 452
    functionName: process_coverage
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - teken_get_curattr
    - teken_get_defattr_cons25
    - teken_256to16
    - teken_set_curattr
    - teken_set_cursor
    - teken_256to8
    - teken_set_defattr
    - teken_get_winsize
    - teken_get_sequence
    - teken_get_defattr
    linkageType: ''
    returnType: void
    signature: void process_coverage(struct process *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_process.c:461,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:462,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_process.c:463,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:464,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc_process.c:464,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_process.c:466,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:467,1
    - Dst: PROCESS_EXPAND
      Src: /src/VTest2/src/vtc_process.c:469,1
    - Dst: PROCESS_EXPAND
      Src: /src/VTest2/src/vtc_process.c:470,1
    - Dst: PROCESS_EXPAND
      Src: /src/VTest2/src/vtc_process.c:471,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_process.c:473,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:475,1
    - Dst: system
      Src: /src/VTest2/src/vtc_process.c:475,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_process.c:479,1
    - Dst: teken_init
      Src: /src/VTest2/src/vtc_process.c:480,1
    - Dst: term_resize
      Src: /src/VTest2/src/vtc_process.c:481,1
    - Dst: process_coverage
      Src: /src/VTest2/src/vtc_process.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 484
    functionName: process_new
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - process_coverage
    - ALLOC_OBJ
    - pthread_mutex_init
    - REPLACE
    - PROCESS_EXPAND
    - system
    - PTOK
    - VTAILQ_INSERT_TAIL
    - teken_init
    - bprintf
    - term_resize
    - AZ
    - AN
    - vtc_logopen
    linkageType: ''
    returnType: struct process
    signature: 'struct process *

      process_new(const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:497,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:498,1
    - Dst: pthread_mutex_destroy
      Src: /src/VTest2/src/vtc_process.c:498,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_process.c:499,1
    - Dst: free
      Src: /src/VTest2/src/vtc_process.c:500,1
    - Dst: free
      Src: /src/VTest2/src/vtc_process.c:501,1
    - Dst: free
      Src: /src/VTest2/src/vtc_process.c:502,1
    - Dst: free
      Src: /src/VTest2/src/vtc_process.c:503,1
    - Dst: free
      Src: /src/VTest2/src/vtc_process.c:506,1
    - Dst: free
      Src: /src/VTest2/src/vtc_process.c:507,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_process.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 517
    functionName: process_delete
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - CHECK_OBJ_NOTNULL
    - FREE_OBJ
    - free
    - PTOK
    - vtc_logclose
    linkageType: ''
    returnType: void
    signature: void process_delete(struct process *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:522,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_process.c:524,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_process.c:525,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_process.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 527
    functionName: process_undef
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - macro_undef
    linkageType: ''
    returnType: void
    signature: void process_undef(const struct process *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:538,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_process.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - priv
    - l
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 541
    functionName: process_vlu_func
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - CAST_OBJ_NOTNULL
    - vtc_dump
    linkageType: ''
    returnType: int
    signature: int process_vlu_func(void *priv, const char *l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:550,1
    - Dst: read
      Src: /src/VTest2/src/vtc_process.c:552,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:554,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:557,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_process.c:557,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:559,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_process.c:559,1
    - Dst: VLU_Feed
      Src: /src/VTest2/src/vtc_process.c:561,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_process.c:563,1
    - Dst: vtc_hexdump
      Src: /src/VTest2/src/vtc_process.c:565,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:566,1
    - Dst: write
      Src: /src/VTest2/src/vtc_process.c:566,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:567,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_process.c:567,1
    - Dst: teken_input
      Src: /src/VTest2/src/vtc_process.c:568,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:569,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_process.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - ev
    - what
    argTypes:
    - struct vev*
    - int
    assertStmts:
    - condition: (write(p->f_stdout, buf, i) == i)
      pos:
        line_end: 565
        line_start: 565
        source_file: /src/VTest2/src/vtc_process.c
    constantsTouched: []
    func_position:
      end: 571
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 571
    functionName: process_stdout
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - assert
    - vtc_log
    - vtc_hexdump
    - write
    - CAST_OBJ_NOTNULL
    - vtc_dump
    - PTOK
    - teken_input
    - read
    - pthread_mutex_lock
    - VLU_Feed
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void process_stdout(const struct vev *ev, int what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:580,1
    - Dst: read
      Src: /src/VTest2/src/vtc_process.c:582,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:584,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:587,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_process.c:587,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:589,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_process.c:589,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_process.c:590,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:591,1
    - Dst: write
      Src: /src/VTest2/src/vtc_process.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ev
    - what
    argTypes:
    - struct vev*
    - int
    assertStmts:
    - condition: (write(p->f_stderr, buf, i) == i)
      pos:
        line_end: 590
        line_start: 590
        source_file: /src/VTest2/src/vtc_process.c
    constantsTouched: []
    func_position:
      end: 593
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 593
    functionName: process_stderr
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - assert
    - vtc_log
    - write
    - CAST_OBJ_NOTNULL
    - vtc_dump
    - PTOK
    - read
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void process_stderr(const struct vev *ev, int what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VEV_Destroy
      Src: /src/VTest2/src/vtc_process.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 600
    functionName: process_cleanup
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - VEV_Destroy
    linkageType: ''
    returnType: void
    signature: void process_cleanup(void *priv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:610,1
    - Dst: open
      Src: /src/VTest2/src/vtc_process.c:612,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:613,1
    - Dst: open
      Src: /src/VTest2/src/vtc_process.c:614,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:615,1
    - Dst: VEV_New
      Src: /src/VTest2/src/vtc_process.c:617,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:618,1
    - Dst: pthread_cleanup_push
      Src: /src/VTest2/src/vtc_process.c:619,1
    - Dst: VEV_Alloc
      Src: /src/VTest2/src/vtc_process.c:621,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:622,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:627,1
    - Dst: VEV_Start
      Src: /src/VTest2/src/vtc_process.c:627,1
    - Dst: VEV_Alloc
      Src: /src/VTest2/src/vtc_process.c:629,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:630,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:635,1
    - Dst: VEV_Start
      Src: /src/VTest2/src/vtc_process.c:635,1
    - Dst: VLU_New
      Src: /src/VTest2/src/vtc_process.c:638,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:639,1
    - Dst: VLU_New
      Src: /src/VTest2/src/vtc_process.c:640,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:641,1
    - Dst: VEV_Once
      Src: /src/VTest2/src/vtc_process.c:645,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:649,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_process.c:650,1
    - Dst: vtc_wait4
      Src: /src/VTest2/src/vtc_process.c:652,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_process.c:654,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_process.c:655,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:657,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_process.c:657,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_process.c:660,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:663,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_process.c:663,1
    - Dst: pthread_cleanup_pop
      Src: /src/VTest2/src/vtc_process.c:665,1
    - Dst: VEV_Destroy
      Src: /src/VTest2/src/vtc_process.c:666,1
    - Dst: VLU_Destroy
      Src: /src/VTest2/src/vtc_process.c:668,1
    - Dst: VLU_Destroy
      Src: /src/VTest2/src/vtc_process.c:669,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts:
    - condition: (p->f_stdout >= 0)
      pos:
        line_end: 612
        line_start: 612
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (p->f_stderr >= 0)
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/VTest2/src/vtc_process.c
    constantsTouched: []
    func_position:
      end: 672
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 672
    functionName: process_thread
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - VEV_Once
    - VEV_Destroy
    - CAST_OBJ_NOTNULL
    - open
    - VLU_Destroy
    - pthread_mutex_lock
    - AN
    - assert
    - strerror
    - vtc_fatal
    - VLU_New
    - closefd
    - vtc_wait4
    - VEV_New
    - VEV_Alloc
    - pthread_cleanup_push
    - VEV_Start
    - macro_undef
    - PTOK
    - pthread_cleanup_pop
    - AZ
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: 'void *

      process_thread(void *priv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/VTest2/src/vtc_process.c:680,1
    - Dst: ioctl
      Src: /src/VTest2/src/vtc_process.c:683,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:685,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_process.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - fd
    argTypes:
    - struct process*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 686
    functionName: process_winsz
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - memset
    - ioctl
    - vtc_log
    - strerror
    linkageType: ''
    returnType: void
    signature: void process_winsz(struct process *p, int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: process_winsz
      Src: /src/VTest2/src/vtc_process.c:694,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_process.c:696,1
    - Dst: cfsetispeed
      Src: /src/VTest2/src/vtc_process.c:701,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:703,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_process.c:703,1
    - Dst: cfsetospeed
      Src: /src/VTest2/src/vtc_process.c:704,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:706,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_process.c:706,1
    - Dst: tcsetattr
      Src: /src/VTest2/src/vtc_process.c:713,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:715,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_process.c:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - p
    - fd
    argTypes:
    - struct process*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 716
    functionName: process_init_term
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - cfsetospeed
    - cfsetispeed
    - memset
    - vtc_log
    - strerror
    - tcsetattr
    - process_winsz
    linkageType: ''
    returnType: void
    signature: void process_init_term(struct process *p, int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:731,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:733,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:735,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc_process.c:737,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:738,1
    - Dst: posix_openpt
      Src: /src/VTest2/src/vtc_process.c:740,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:741,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:742,1
    - Dst: grantpt
      Src: /src/VTest2/src/vtc_process.c:742,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:743,1
    - Dst: unlockpt
      Src: /src/VTest2/src/vtc_process.c:743,1
    - Dst: ptsname
      Src: /src/VTest2/src/vtc_process.c:744,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:745,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:747,1
    - Dst: pipe
      Src: /src/VTest2/src/vtc_process.c:747,1
    - Dst: fork
      Src: /src/VTest2/src/vtc_process.c:749,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:750,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:752,1
    - Dst: setsid
      Src: /src/VTest2/src/vtc_process.c:752,1
    - Dst: getpid
      Src: /src/VTest2/src/vtc_process.c:752,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:753,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_process.c:753,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:754,1
    - Dst: close
      Src: /src/VTest2/src/vtc_process.c:754,1
    - Dst: open
      Src: /src/VTest2/src/vtc_process.c:755,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:756,1
    - Dst: ioctl
      Src: /src/VTest2/src/vtc_process.c:758,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:759,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_process.c:759,1
    - Dst: ioctl
      Src: /src/VTest2/src/vtc_process.c:760,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:761,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_process.c:761,1
    - Dst: ioctl
      Src: /src/VTest2/src/vtc_process.c:762,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:764,1
    - Dst: ioctl
      Src: /src/VTest2/src/vtc_process.c:764,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:766,1
    - Dst: close
      Src: /src/VTest2/src/vtc_process.c:766,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:767,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_process.c:767,1
    - Dst: VSUB_closefrom
      Src: /src/VTest2/src/vtc_process.c:768,1
    - Dst: process_init_term
      Src: /src/VTest2/src/vtc_process.c:769,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:771,1
    - Dst: setenv
      Src: /src/VTest2/src/vtc_process.c:771,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:772,1
    - Dst: unsetenv
      Src: /src/VTest2/src/vtc_process.c:772,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:774,1
    - Dst: write
      Src: /src/VTest2/src/vtc_process.c:774,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:775,1
    - Dst: execl
      Src: /src/VTest2/src/vtc_process.c:775,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_process.c:775,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_process.c:776,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:778,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_process.c:779,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:781,1
    - Dst: read
      Src: /src/VTest2/src/vtc_process.c:781,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_process.c:783,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_process.c:785,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_process.c:786,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_process.c:787,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_process.c:788,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:790,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_process.c:790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct process*
    assertStmts:
    - condition: (master >= 0)
      pos:
        line_end: 740
        line_start: 740
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (dup2(fd2[1], STDERR_FILENO) == STDERR_FILENO)
      pos:
        line_end: 752
        line_start: 752
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (read(fd2[0], &c, 1) == 1)
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (slave == STDIN_FILENO)
      pos:
        line_end: 755
        line_start: 755
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (setsid() == getpid())
      pos:
        line_end: 751
        line_start: 751
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (write(STDERR_FILENO, "+", 1) == 1)
      pos:
        line_end: 773
        line_start: 773
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (p->pid >= 0)
      pos:
        line_end: 749
        line_start: 749
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (dup2(slave, STDOUT_FILENO) == STDOUT_FILENO)
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/VTest2/src/vtc_process.c
    constantsTouched: []
    func_position:
      end: 791
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 791
    functionName: process_start
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - getpid
    - VSB_data
    - pthread_create
    - exit
    - vtc_log
    - execl
    - open
    - close
    - AN
    - macro_def
    - unlockpt
    - assert
    - strerror
    - vtc_fatal
    - process_init_term
    - unsetenv
    - pipe
    - VSB_destroy
    - grantpt
    - closefd
    - ptsname
    - VSUB_closefrom
    - fork
    - ioctl
    - write
    - read
    - CHECK_OBJ_NOTNULL
    - setenv
    - macro_expand
    - setsid
    - dup2
    - PTOK
    - posix_openpt
    - AZ
    linkageType: ''
    returnType: void
    signature: void process_start(struct process *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:803,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_process.c:803,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 808
    functionName: process_wait
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - PTOK
    - pthread_join
    - vtc_log
    linkageType: ''
    returnType: void
    signature: void process_wait(struct process *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_process.c:820,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:821,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:823,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_process.c:823,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:825,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_process.c:825,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:828,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:830,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:832,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:834,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:836,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_process.c:839,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:841,1
    - Dst: kill
      Src: /src/VTest2/src/vtc_process.c:845,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:846,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_process.c:847,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:849,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - p
    - sig
    argTypes:
    - struct process*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 850
    functionName: process_kill
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - strerror
    - vtc_log
    - vtc_fatal
    - strcmp
    - strtoul
    - PTOK
    - kill
    - pthread_mutex_lock
    - AN
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void process_kill(struct process *p, const char *sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:862,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_process.c:864,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:865,1
    - Dst: write
      Src: /src/VTest2/src/vtc_process.c:866,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:868,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_process.c:869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - text
    argTypes:
    - struct process*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 870
    functionName: process_write
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strerror
    - vtc_fatal
    - write
    - strlen
    linkageType: ''
    returnType: void
    signature: void process_write(const struct process *p, const char *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:878,1
    - Dst: vtc_hex_to_bin
      Src: /src/VTest2/src/vtc_process.c:880,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:881,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_process.c:881,1
    - Dst: vtc_hexdump
      Src: /src/VTest2/src/vtc_process.c:882,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_process.c:882,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_process.c:882,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:883,1
    - Dst: VSB_tofile
      Src: /src/VTest2/src/vtc_process.c:883,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_process.c:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - text
    argTypes:
    - struct process*
    - char*
    assertStmts:
    - condition: (VSB_len(vsb) >= 0)
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/VTest2/src/vtc_process.c
    constantsTouched: []
    func_position:
      end: 885
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 885
    functionName: process_write_hex
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - VSB_len
    - assert
    - vtc_hexdump
    - vtc_fatal
    - VSB_destroy
    - AZ
    - vtc_hex_to_bin
    - VSB_tofile
    linkageType: ''
    returnType: void
    signature: void process_write_hex(const struct process *p, const char *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:892,1
    - Dst: process_kill
      Src: /src/VTest2/src/vtc_process.c:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct process*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 895
    functionName: process_close
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - vtc_fatal
    - process_kill
    linkageType: ''
    returnType: void
    signature: void process_close(struct process *p)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_process.c:1043,1
    - Dst: process_kill
      Src: /src/VTest2/src/vtc_process.c:1045,1
    - Dst: sleep
      Src: /src/VTest2/src/vtc_process.c:1046,1
    - Dst: process_kill
      Src: /src/VTest2/src/vtc_process.c:1048,1
    - Dst: process_wait
      Src: /src/VTest2/src/vtc_process.c:1051,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_process.c:1052,1
    - Dst: process_undef
      Src: /src/VTest2/src/vtc_process.c:1053,1
    - Dst: process_delete
      Src: /src/VTest2/src/vtc_process.c:1054,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_process.c:1059,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1059,1
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_process.c:1062,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_process.c:1063,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1064,1
    - Dst: process_new
      Src: /src/VTest2/src/vtc_process.c:1067,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:1070,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_process.c:1070,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:1072,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_process.c:1072,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1078,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1082,1
    - Dst: process_close
      Src: /src/VTest2/src/vtc_process.c:1083,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1086,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:1088,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1093,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_process.c:1094,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1098,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_process.c:1099,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1103,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:1105,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1110,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1111,1
    - Dst: process_write
      Src: /src/VTest2/src/vtc_process.c:1112,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1113,1
    - Dst: process_write
      Src: /src/VTest2/src/vtc_process.c:1114,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1115,1
    - Dst: process_write
      Src: /src/VTest2/src/vtc_process.c:1116,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1117,1
    - Dst: process_write
      Src: /src/VTest2/src/vtc_process.c:1118,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:1120,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1123,1
    - Dst: process_kill
      Src: /src/VTest2/src/vtc_process.c:1124,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1128,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:1130,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1135,1
    - Dst: strtoumax
      Src: /src/VTest2/src/vtc_process.c:1136,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:1141,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_process.c:1141,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:1143,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_process.c:1143,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_process.c:1144,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_process.c:1145,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1149,1
    - Dst: process_start
      Src: /src/VTest2/src/vtc_process.c:1150,1
    - Dst: process_wait
      Src: /src/VTest2/src/vtc_process.c:1151,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1154,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1158,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:1159,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:1160,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:1161,1
    - Dst: term_expect_text
      Src: /src/VTest2/src/vtc_process.c:1162,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1166,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:1167,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:1168,1
    - Dst: term_expect_cursor
      Src: /src/VTest2/src/vtc_process.c:1169,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1173,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:1174,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:1175,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_process.c:1176,1
    - Dst: term_match_text
      Src: /src/VTest2/src/vtc_process.c:1177,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1181,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1182,1
    - Dst: term_screen_dump
      Src: /src/VTest2/src/vtc_process.c:1183,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1186,1
    - Dst: process_start
      Src: /src/VTest2/src/vtc_process.c:1187,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1190,1
    - Dst: process_kill
      Src: /src/VTest2/src/vtc_process.c:1191,1
    - Dst: sleep
      Src: /src/VTest2/src/vtc_process.c:1192,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1195,1
    - Dst: process_wait
      Src: /src/VTest2/src/vtc_process.c:1196,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1199,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_process.c:1200,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:1201,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_process.c:1202,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_process.c:1203,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:1205,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_process.c:1205,1
    - Dst: term_resize
      Src: /src/VTest2/src/vtc_process.c:1206,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_process.c:1207,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_process.c:1207,1
    - Dst: process_winsz
      Src: /src/VTest2/src/vtc_process.c:1208,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1211,1
    - Dst: process_write
      Src: /src/VTest2/src/vtc_process.c:1212,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1216,1
    - Dst: process_write_hex
      Src: /src/VTest2/src/vtc_process.c:1217,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_process.c:1221,1
    - Dst: process_write
      Src: /src/VTest2/src/vtc_process.c:1222,1
    - Dst: process_write
      Src: /src/VTest2/src/vtc_process.c:1223,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_process.c:1228,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_process.c:1229,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 182
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (col > 1)
      pos:
        line_end: 1202
        line_start: 1202
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (lin > 1)
      pos:
        line_end: 1200
        line_start: 1200
        source_file: /src/VTest2/src/vtc_process.c
    constantsTouched: []
    func_position:
      end: 1232
      start: 1031
    functionDepth: 4
    functionLinenumber: 1031
    functionLinenumberEnd: 1232
    functionName: cmd_process
    functionSourceFile: /src/VTest2/src/vtc_process.c
    functionUses: 0
    functionsReached:
    - process_delete
    - vtc_log
    - process_new
    - REPLACE
    - pthread_mutex_lock
    - process_write
    - atoi
    - VTAILQ_FOREACH_SAFE
    - AN
    - term_expect_cursor
    - assert
    - process_close
    - vtc_fatal
    - strcmp
    - sleep
    - process_start
    - VTIM_sleep
    - process_winsz
    - VTC_CHECK_NAME
    - process_kill
    - VTAILQ_FOREACH
    - strtoul
    - strtoumax
    - term_expect_text
    - VTAILQ_REMOVE
    - term_screen_dump
    - process_wait
    - process_write_hex
    - term_match_text
    - PTOK
    - process_undef
    - AZ
    - pthread_mutex_unlock
    - term_resize
    linkageType: ''
    returnType: void
    signature: void cmd_process(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: TP_SETBELLPD_PITCH
    functionSourceFile: /src/VTest2/src/teken.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TP_SETBELLPD_PITCH(pd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: TP_SETBELLPD_DURATION
    functionSourceFile: /src/VTest2/src/teken.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TP_SETBELLPD_DURATION(pd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_proxy.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - va
    - vb
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: pp2cmp
    functionSourceFile: /src/VTest2/src/vtc_proxy.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int pp2cmp(const void *va, const void *vb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/VTest2/src/vtc_proxy.c:102,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:103,1
    - Dst: strtok_r
      Src: /src/VTest2/src/vtc_proxy.c:105,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:106,1
    - Dst: vtc_hex_to_bin
      Src: /src/VTest2/src/vtc_proxy.c:109,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:110,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_proxy.c:111,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_proxy.c:112,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:113,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_proxy.c:113,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_proxy.c:114,1
    - Dst: bsearch
      Src: /src/VTest2/src/vtc_proxy.c:118,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_proxy.c:121,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_proxy.c:122,1
    - Dst: strtok_r
      Src: /src/VTest2/src/vtc_proxy.c:125,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_proxy.c:127,1
    - Dst: vtc_hex_to_bin
      Src: /src/VTest2/src/vtc_proxy.c:129,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_proxy.c:131,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:132,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_proxy.c:133,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_proxy.c:134,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_proxy.c:134,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:136,1
    - Dst: free
      Src: /src/VTest2/src/vtc_proxy.c:137,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_proxy.c:139,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:140,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:141,1
    - Dst: vbe16enc
      Src: /src/VTest2/src/vtc_proxy.c:143,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:144,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:145,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:146,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_proxy.c:146,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_proxy.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 3
    argNames:
    - vl
    - vsb
    - kva
    argTypes:
    - struct vtclog*
    - struct vsb*
    - char*
    assertStmts:
    - condition: (sizeof(le) == 2)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (sz <= UINT16_MAX)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (sz >= 0)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/VTest2/src/vtc_proxy.c
    constantsTouched: []
    func_position:
      end: 148
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 148
    functionName: vtc_proxy_tlv
    functionSourceFile: /src/VTest2/src/vtc_proxy.c
    functionUses: 0
    functionsReached:
    - strtok_r
    - VSB_putc
    - VSB_data
    - VSB_len
    - assert
    - vtc_fatal
    - VSB_finish
    - bsearch
    - VSB_bcat
    - free
    - vbe16enc
    - VSB_destroy
    - VSB_new_auto
    - VSB_cat
    - AZ
    - AN
    - vtc_hex_to_bin
    - strdup
    linkageType: ''
    returnType: void
    signature: void vtc_proxy_tlv(struct vtclog *vl, struct vsb *vsb, const char *kva)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VSA_Get_Sockaddr
      Src: /src/VTest2/src/vtc_proxy.c:158,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:159,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:160,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:161,1
    - Dst: VSA_Get_Sockaddr
      Src: /src/VTest2/src/vtc_proxy.c:163,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:164,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:165,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - vsb
    - proto
    - s
    argTypes:
    - struct vsb*
    - int
    - struct suckaddr*
    assertStmts:
    - condition: (sl >= sizeof(*sin6))
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (sl >= sizeof(*sin4))
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/VTest2/src/vtc_proxy.c
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: vpx_enc_addr
    functionSourceFile: /src/VTest2/src/vtc_proxy.c
    functionUses: 0
    functionsReached:
    - assert
    - AN
    - VSA_Get_Sockaddr
    - VSB_bcat
    linkageType: ''
    returnType: void
    signature: void vpx_enc_addr(struct vsb *vsb, int proto, const struct suckaddr
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vbe16enc
      Src: /src/VTest2/src/vtc_proxy.c:175,1
    - Dst: VSA_Port
      Src: /src/VTest2/src/vtc_proxy.c:175,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vsb
    - s
    argTypes:
    - struct vsb*
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: vpx_enc_port
    functionSourceFile: /src/VTest2/src/vtc_proxy.c
    functionUses: 0
    functionsReached:
    - VSA_Port
    - vbe16enc
    - VSB_bcat
    linkageType: ''
    returnType: void
    signature: void vpx_enc_port(struct vsb *vsb, const struct suckaddr *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:192,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:193,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:195,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_proxy.c:196,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:197,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_proxy.c:199,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:200,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_proxy.c:205,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:207,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:210,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_proxy.c:212,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_proxy.c:214,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_proxy.c:215,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_proxy.c:216,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_proxy.c:217,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:219,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_proxy.c:220,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_proxy.c:222,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_proxy.c:225,1
    - Dst: WRONG
      Src: /src/VTest2/src/vtc_proxy.c:228,1
    - Dst: vbe16enc
      Src: /src/VTest2/src/vtc_proxy.c:230,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:231,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:232,1
    - Dst: vpx_enc_addr
      Src: /src/VTest2/src/vtc_proxy.c:233,1
    - Dst: vpx_enc_addr
      Src: /src/VTest2/src/vtc_proxy.c:234,1
    - Dst: vpx_enc_port
      Src: /src/VTest2/src/vtc_proxy.c:235,1
    - Dst: vpx_enc_port
      Src: /src/VTest2/src/vtc_proxy.c:236,1
    - Dst: WRONG
      Src: /src/VTest2/src/vtc_proxy.c:238,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_proxy.c:240,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_proxy.c:240,1
    - Dst: VSB_tofile
      Src: /src/VTest2/src/vtc_proxy.c:241,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_proxy.c:242,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_proxy.c:244,1
    - Dst: VSB_tofile
      Src: /src/VTest2/src/vtc_proxy.c:248,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_proxy.c:249,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 5
    argNames:
    - fd
    - version
    - sac
    - sas
    - tlv
    argTypes:
    - int
    - int
    - struct suckaddr*
    - struct suckaddr*
    - struct vsb*
    assertStmts:
    - condition: (l <= UINT16_MAX - 0x24)
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (version == 1 || version == 2)
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (proto == PF_INET6 || proto == PF_INET)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (sizeof(le) == 2)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/VTest2/src/vtc_proxy.c
    constantsTouched: []
    func_position:
      end: 251
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 251
    functionName: vtc_send_proxy
    functionSourceFile: /src/VTest2/src/vtc_proxy.c
    functionUses: 0
    functionsReached:
    - VSB_putc
    - VTCP_name
    - VSB_printf
    - VSB_len
    - assert
    - vpx_enc_addr
    - VSB_tofile
    - VSB_finish
    - VSA_Get_Proto
    - vbe16enc
    - VSB_destroy
    - VSB_new_auto
    - WRONG
    - vpx_enc_port
    - VSB_cat
    - AZ
    - AN
    - VSB_bcat
    linkageType: ''
    returnType: int
    signature: "int vtc_send_proxy(int fd, int version, const struct suckaddr *sac,\n
      \   const struct suckaddr *sas, struct vsb *tlv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:64,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: vtc_vrnd_lock
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - PTOK
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void vtc_vrnd_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:70,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: vtc_vrnd_unlock
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - PTOK
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void vtc_vrnd_unlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:93,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:94,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc.c:95,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:96,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc.c:97,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:98,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc.c:99,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:100,1
    - Dst: VTAILQ_INSERT_HEAD
      Src: /src/VTest2/src/vtc.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - name
    - cmd
    - flags
    argTypes:
    - char*
    - cmd_f*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: add_cmd
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - strdup
    - AN
    - VTAILQ_INSERT_HEAD
    - ALLOC_OBJ
    linkageType: ''
    returnType: void
    signature: void add_cmd(const char *name, cmd_f *cmd, unsigned flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:112,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:113,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:114,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:115,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc.c:119,1
    - Dst: dlopen
      Src: /src/VTest2/src/vtc.c:120,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:122,1
    - Dst: dlerror
      Src: /src/VTest2/src/vtc.c:122,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:125,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:127,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:128,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:129,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 134
    functionName: find_cmd
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH
    - CHECK_OBJ_NOTNULL
    - vtc_log
    - dlerror
    - strcmp
    - dlopen
    - bprintf
    linkageType: ''
    returnType: struct cmds
    signature: 'struct cmds *

      find_cmd(const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: init_cmd_list
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_cmd_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: CMD_GLOBAL
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_GLOBAL(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: CMD_TOP
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_TOP(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:168,1
    - Dst: open
      Src: /src/VTest2/src/vtc.c:169,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc.c:171,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc.c:172,1
    - Dst: exit
      Src: /src/VTest2/src/vtc.c:173,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc.c:175,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc.c:177,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:178,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc.c:179,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:180,1
    - Dst: VTAILQ_INSERT_HEAD
      Src: /src/VTest2/src/vtc.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: add_extension
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - exit
    - strerror
    - ALLOC_OBJ
    - open
    - VTAILQ_INSERT_HEAD
    - fprintf
    - closefd
    - AN
    - strdup
    linkageType: ''
    returnType: void
    signature: void add_extension(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:189,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:190,1
    - Dst: dlopen
      Src: /src/VTest2/src/vtc.c:191,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:193,1
    - Dst: dlerror
      Src: /src/VTest2/src/vtc.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 199
    functionName: init_extensions
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH
    - dlerror
    - CHECK_OBJ_NOTNULL
    - vtc_log
    - dlopen
    linkageType: ''
    returnType: int
    signature: int init_extensions(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:224,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:225,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc.c:228,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:229,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc.c:230,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:231,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc.c:232,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:234,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:236,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:239,1
    - Dst: vbprintf
      Src: /src/VTest2/src/vtc.c:240,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc.c:241,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - name
    - func
    - fmt
    - ap
    argTypes:
    - char*
    - macro_f*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 245
    functionName: macro_def_int
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH
    - ALLOC_OBJ
    - strcmp
    - REPLACE
    - VTAILQ_INSERT_TAIL
    - vbprintf
    - AZ
    - AN
    linkageType: ''
    returnType: struct macro
    signature: 'struct macro *

      macro_def_int(const char *name, macro_f *func, const char *fmt, va_list ap)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/VTest2/src/vtc.c:258,1
    - Dst: macro_def_int
      Src: /src/VTest2/src/vtc.c:259,1
    - Dst: va_end
      Src: /src/VTest2/src/vtc.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - name
    - func
    - fmt
    argTypes:
    - char*
    - macro_f*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: extmacro_def
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - macro_def_int
    linkageType: ''
    returnType: void
    signature: void extmacro_def(const char *name, macro_f *func, const char *fmt,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:275,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:277,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:280,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:283,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 284
    functionName: init_macro
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - PTOK
    - VTAILQ_FOREACH
    - vtc_log
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void init_macro(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:294,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc.c:297,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:301,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc.c:301,1
    - Dst: va_start
      Src: /src/VTest2/src/vtc.c:302,1
    - Dst: macro_def_int
      Src: /src/VTest2/src/vtc.c:303,1
    - Dst: va_end
      Src: /src/VTest2/src/vtc.c:304,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:305,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:306,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - vl
    - instance
    - name
    - fmt
    argTypes:
    - struct vtclog*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 307
    functionName: macro_def
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 5
    functionsReached:
    - va_end
    - vtc_log
    - va_start
    - macro_def_int
    - PTOK
    - bprintf
    - pthread_mutex_lock
    - AN
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: "void macro_def(struct vtclog *vl, const char *instance, const char
      *name,\n    const char *fmt, ...)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bprintf
      Src: /src/VTest2/src/vtc.c:316,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:320,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc.c:320,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:321,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:322,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:326,1
    - Dst: CHECK_OBJ
      Src: /src/VTest2/src/vtc.c:327,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc.c:328,1
    - Dst: free
      Src: /src/VTest2/src/vtc.c:329,1
    - Dst: free
      Src: /src/VTest2/src/vtc.c:330,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc.c:331,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:333,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc.c:333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - vl
    - instance
    - name
    argTypes:
    - struct vtclog*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 334
    functionName: macro_undef
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 3
    functionsReached:
    - VTAILQ_FOREACH
    - vtc_log
    - strcmp
    - FREE_OBJ
    - free
    - PTOK
    - bprintf
    - pthread_mutex_lock
    - CHECK_OBJ
    - VTAILQ_REMOVE
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void macro_undef(struct vtclog *vl, const char *instance, const char
      *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bprintf
      Src: /src/VTest2/src/vtc.c:343,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:347,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc.c:347,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:348,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:349,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:351,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - instance
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 354
    functionName: macro_isdef
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 1
    functionsReached:
    - VTAILQ_FOREACH
    - strcmp
    - PTOK
    - bprintf
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: unsigned
    signature: unsigned macro_isdef(const char *instance, const char *name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:364,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:366,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:367,1
    - Dst: VAV_ParseTxt
      Src: /src/VTest2/src/vtc.c:369,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:370,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc.c:373,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:376,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:378,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc.c:378,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:379,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:380,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:381,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:386,1
    - Dst: struct macro*::func
      Src: /src/VTest2/src/vtc.c:387,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:389,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:391,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc.c:393,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:398,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc.c:398,1
    - Dst: VAV_Free
      Src: /src/VTest2/src/vtc.c:400,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc.c:403,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc.c:408,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc.c:410,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc.c:414,1
    - Dst: free
      Src: /src/VTest2/src/vtc.c:415,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - vl
    - vsb
    - b
    - e
    argTypes:
    - struct vtclog*
    - struct vsb*
    - char*
    - char*
    assertStmts:
    - condition: (argc >= 2)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/VTest2/src/vtc.c
    constantsTouched: []
    func_position:
      end: 416
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 416
    functionName: macro_cat
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 1
    functionsReached:
    - VTAILQ_FOREACH
    - VSB_printf
    - assert
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - strcmp
    - struct macro*::func
    - REPLACE
    - strchr
    - VAV_ParseTxt
    - VSB_cat
    - free
    - PTOK
    - VAV_Free
    - pthread_mutex_lock
    - AZ
    - AN
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void macro_cat(struct vtclog *vl, struct vsb *vsb, const char *b, const
      char *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc.c:424,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:425,1
    - Dst: va_start
      Src: /src/VTest2/src/vtc.c:426,1
    - Dst: VSB_vprintf
      Src: /src/VTest2/src/vtc.c:427,1
    - Dst: va_end
      Src: /src/VTest2/src/vtc.c:428,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:429,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc.c:429,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc.c:430,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc.c:430,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - vl
    - fmt
    argTypes:
    - struct vtclog*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 433
    functionName: macro_expandf
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 1
    functionsReached:
    - va_end
    - VSB_data
    - va_start
    - VSB_vprintf
    - VSB_finish
    - macro_expand
    - VSB_destroy
    - VSB_new_auto
    - AZ
    - AN
    linkageType: ''
    returnType: struct vsb
    signature: 'struct vsb *

      macro_expandf(struct vtclog *vl, const char *fmt, ...)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc.c:441,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:442,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc.c:444,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc.c:446,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc.c:449,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:450,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc.c:452,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:455,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:456,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:457,1
    - Dst: macro_cat
      Src: /src/VTest2/src/vtc.c:459,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:462,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc.c:462,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - vl
    - text
    argTypes:
    - struct vtclog*
    - char*
    assertStmts:
    - condition: (p[0] == '$')
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/VTest2/src/vtc.c
    - condition: (p[1] == '{')
      pos:
        line_end: 455
        line_start: 455
        source_file: /src/VTest2/src/vtc.c
    - condition: (q[0] == '}')
      pos:
        line_end: 456
        line_start: 456
        source_file: /src/VTest2/src/vtc.c
    constantsTouched: []
    func_position:
      end: 464
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 464
    functionName: macro_expand
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 3
    functionsReached:
    - assert
    - VSB_finish
    - strchr
    - macro_cat
    - VSB_new_auto
    - VSB_cat
    - strstr
    - AZ
    - AN
    - VSB_bcat
    linkageType: ''
    returnType: struct vsb
    signature: 'struct vsb *

      macro_expand(struct vtclog *vl, const char *text)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:487,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc.c:488,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:489,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:490,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:491,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:494,1
    - Dst: isspace
      Src: /src/VTest2/src/vtc.c:499,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:512,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:514,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:516,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:518,1
    - Dst: memset
      Src: /src/VTest2/src/vtc.c:521,1
    - Dst: memset
      Src: /src/VTest2/src/vtc.c:522,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:526,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:527,1
    - Dst: isspace
      Src: /src/VTest2/src/vtc.c:531,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:543,1
    - Dst: VAV_BackSlash
      Src: /src/VTest2/src/vtc.c:547,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc.c:551,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:554,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:571,1
    - Dst: isspace
      Src: /src/VTest2/src/vtc.c:575,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:581,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:582,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:585,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc.c:587,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc.c:588,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc.c:591,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:592,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:605,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc.c:606,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:608,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc.c:609,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:617,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:618,1
    - Dst: find_cmd
      Src: /src/VTest2/src/vtc.c:624,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc.c:631,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:633,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:634,1
    - Dst: struct cmds*::cmd
      Src: /src/VTest2/src/vtc.c:635,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 127
    argCount: 3
    argNames:
    - vl
    - priv
    - spec
    argTypes:
    - struct vtclog*
    - void*
    - char*
    assertStmts:
    - condition: (p < e)
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/VTest2/src/vtc.c
    - condition: (p <= e)
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/VTest2/src/vtc.c
    - condition: (p < e)
      pos:
        line_end: 526
        line_start: 526
        source_file: /src/VTest2/src/vtc.c
    - condition: (tn < MAX_TOKENS)
      pos:
        line_end: 525
        line_start: 525
        source_file: /src/VTest2/src/vtc.c
    - condition: (*p == '}')
      pos:
        line_end: 570
        line_start: 570
        source_file: /src/VTest2/src/vtc.c
    - condition: (tn < MAX_TOKENS)
      pos:
        line_end: 581
        line_start: 581
        source_file: /src/VTest2/src/vtc.c
    - condition: (*p != '\n')
      pos:
        line_end: 553
        line_start: 553
        source_file: /src/VTest2/src/vtc.c
    constantsTouched: []
    func_position:
      end: 637
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 637
    functionName: parse_string
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 1
    functionsReached:
    - isspace
    - parse_string
    - VSB_data
    - memset
    - assert
    - vtc_log
    - VAV_BackSlash
    - CHECK_OBJ_NOTNULL
    - find_cmd
    - vtc_fatal
    - strcmp
    - struct cmds*::cmd
    - macro_expand
    - strchr
    - strtoul
    - strstr
    - AN
    - strdup
    linkageType: ''
    returnType: void
    signature: void parse_string(struct vtclog *vl, void *priv, const char *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_cmd
      Src: /src/VTest2/src/vtc.c:648,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:649,1
    - Dst: struct cmds*::cmd
      Src: /src/VTest2/src/vtc.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 652
    functionName: reset_cmd
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - find_cmd
    - AN
    - struct cmds*::cmd
    linkageType: ''
    returnType: void
    signature: void reset_cmd(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset_cmd
      Src: /src/VTest2/src/vtc.c:660,1
    - Dst: reset_cmd
      Src: /src/VTest2/src/vtc.c:661,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:663,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:664,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:665,1
    - Dst: struct icmds*::cmd::cmd
      Src: /src/VTest2/src/vtc.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 672
    functionName: reset_cmds
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH
    - reset_cmd
    - struct icmds*::cmd::cmd
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void reset_cmds(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:685,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:691,1
    - Dst: reset_cmds
      Src: /src/VTest2/src/vtc.c:692,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:696,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:698,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 678
    functionDepth: 4
    functionLinenumber: 678
    functionLinenumberEnd: 703
    functionName: fail_out
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - reset_cmds
    - vtc_log
    linkageType: ''
    returnType: int
    signature: int fail_out(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:713,1
    - Dst: signal
      Src: /src/VTest2/src/vtc.c:715,1
    - Dst: VSUB_closefrom
      Src: /src/VTest2/src/vtc.c:717,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:719,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc.c:719,1
    - Dst: VRND_SeedAll
      Src: /src/VTest2/src/vtc.c:722,1
    - Dst: vtc_loginit
      Src: /src/VTest2/src/vtc.c:725,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc.c:726,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:727,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:729,1
    - Dst: init_cmd_list
      Src: /src/VTest2/src/vtc.c:731,1
    - Dst: init_extensions
      Src: /src/VTest2/src/vtc.c:732,1
    - Dst: fail_out
      Src: /src/VTest2/src/vtc.c:734,1
    - Dst: init_macro
      Src: /src/VTest2/src/vtc.c:736,1
    - Dst: init_server
      Src: /src/VTest2/src/vtc.c:737,1
    - Dst: init_syslog
      Src: /src/VTest2/src/vtc.c:738,1
    - Dst: init_tunnel
      Src: /src/VTest2/src/vtc.c:739,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc.c:741,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:742,1
    - Dst: macro_cat
      Src: /src/VTest2/src/vtc.c:744,1
    - Dst: strrchr
      Src: /src/VTest2/src/vtc.c:745,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc.c:747,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc.c:748,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc.c:750,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc.c:751,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:752,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc.c:752,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc.c:753,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc.c:753,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc.c:754,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:757,1
    - Dst: chdir
      Src: /src/VTest2/src/vtc.c:757,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc.c:758,1
    - Dst: strrchr
      Src: /src/VTest2/src/vtc.c:759,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:760,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:762,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc.c:763,1
    - Dst: fopen
      Src: /src/VTest2/src/vtc.c:766,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:767,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc.c:768,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:769,1
    - Dst: fclose
      Src: /src/VTest2/src/vtc.c:769,1
    - Dst: pthread_self
      Src: /src/VTest2/src/vtc.c:773,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc.c:774,1
    - Dst: fail_out
      Src: /src/VTest2/src/vtc.c:775,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 51
    argCount: 5
    argNames:
    - fn
    - script
    - tmpdir
    - logbuf
    - loglen
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 705
    functionDepth: 5
    functionLinenumber: 705
    functionLinenumberEnd: 776
    functionName: exec_file
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - init_cmd_list
    - VSB_data
    - vtc_log
    - chdir
    - pthread_mutex_init
    - init_syslog
    - signal
    - init_server
    - AN
    - macro_def
    - vtc_logopen
    - parse_string
    - vtc_loginit
    - VSB_destroy
    - VSB_new_auto
    - init_extensions
    - pthread_self
    - VSUB_closefrom
    - VRND_SeedAll
    - VSB_bcat
    - fail_out
    - VSB_len
    - fclose
    - strrchr
    - VSB_finish
    - VSB_putc
    - init_tunnel
    - init_macro
    - macro_cat
    - PTOK
    - fprintf
    - fopen
    - AZ
    linkageType: ''
    returnType: int
    signature: "int exec_file(const char *fn, const char *script, const char *tmpdir,\n
      \   char *logbuf, unsigned loglen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - col
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: teken_tab_isset
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int teken_tab_isset(const teken_t *t, unsigned int col)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - col
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: teken_tab_clear
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_tab_clear(teken_t *t, unsigned int col)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - col
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: teken_tab_set
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_tab_set(teken_t *t, unsigned int col)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/VTest2/src/teken_subr.h:82,1
    - Dst: teken_tab_set
      Src: /src/VTest2/src/teken_subr.h:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: teken_tab_default
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_tab_set
    - memset
    linkageType: ''
    returnType: void
    signature: void teken_tab_default(teken_t *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: teken_assert
      Src: /src/VTest2/src/teken_subr.h:94,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken_subr.h:95,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken_subr.h:96,1
    - Dst: teken_funcs_copy
      Src: /src/VTest2/src/teken_subr.h:110,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:121,1
    - Dst: teken_funcs_copy
      Src: /src/VTest2/src/teken_subr.h:134,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 2
    argNames:
    - t
    - amount
    argTypes:
    - teken_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 147
    functionName: teken_subr_do_scroll
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_copy
    - teken_assert
    - teken_funcs_fill
    linkageType: ''
    returnType: void
    signature: void teken_subr_do_scroll(const teken_t *t, int amount)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/VTest2/src/teken_subr.h:155,1
    - Dst: snprintf
      Src: /src/VTest2/src/teken_subr.h:160,1
    - Dst: strcpy
      Src: /src/VTest2/src/teken_subr.h:169,1
    - Dst: strcpy
      Src: /src/VTest2/src/teken_subr.h:172,1
    - Dst: strcpy
      Src: /src/VTest2/src/teken_subr.h:175,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - t
    - cmd
    - response
    argTypes:
    - teken_t*
    - unsigned int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 181
    functionName: teken_subr_do_cpr
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - strcpy
    - teken_printf
    - snprintf
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t teken_subr_do_cpr(const teken_t *t, unsigned int cmd, char
      response[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:193,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 199
    functionName: teken_subr_alignment_test
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    - teken_funcs_fill
    linkageType: ''
    returnType: void
    signature: void teken_subr_alignment_test(teken_t *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 223
    functionName: teken_subr_backspace
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_backspace(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_bell
      Src: /src/VTest2/src/teken_subr.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: teken_subr_bell
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_bell
    linkageType: ''
    returnType: void
    signature: void teken_subr_bell(const teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: teken_subr_carriage_return
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_carriage_return(teken_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: teken_subr_cursor_backward
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_cursor_backward(teken_t *t, unsigned int ncols)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: teken_tab_isset
      Src: /src/VTest2/src/teken_subr.h:265,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - t
    - ntabs
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 270
    functionName: teken_subr_cursor_backward_tabulation
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_tab_isset
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_cursor_backward_tabulation(teken_t *t, unsigned int
      ntabs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 282
    functionName: teken_subr_cursor_down
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_cursor_down(teken_t *t, unsigned int nrows)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: teken_subr_cursor_forward
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_cursor_forward(teken_t *t, unsigned int ncols)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: teken_tab_isset
      Src: /src/VTest2/src/teken_subr.h:308,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - t
    - ntabs
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 313
    functionName: teken_subr_cursor_forward_tabulation
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_tab_isset
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_cursor_forward_tabulation(teken_t *t, unsigned int
      ntabs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_cursor_down
      Src: /src/VTest2/src/teken_subr.h:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: teken_subr_cursor_next_line
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_cursor_down
    linkageType: ''
    returnType: void
    signature: void teken_subr_cursor_next_line(teken_t *t, unsigned int ncols)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - t
    - row
    - col
    argTypes:
    - teken_t*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 337
    functionName: teken_subr_cursor_position
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_cursor_position(teken_t *t, unsigned int row, unsigned
      int col)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_do_cpr
      Src: /src/VTest2/src/teken_subr.h:345,1
    - Dst: teken_funcs_respond
      Src: /src/VTest2/src/teken_subr.h:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 350
    functionName: teken_subr_cursor_position_report
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_do_cpr
    - teken_funcs_respond
    linkageType: ''
    returnType: void
    signature: void teken_subr_cursor_position_report(const teken_t *t, unsigned int
      cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_cursor_up
      Src: /src/VTest2/src/teken_subr.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: teken_subr_cursor_previous_line
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_cursor_up
    linkageType: ''
    returnType: void
    signature: void teken_subr_cursor_previous_line(teken_t *t, unsigned int ncols)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 370
    functionName: teken_subr_cursor_up
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 1
    functionsReached:
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_cursor_up(teken_t *t, unsigned int nrows)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - style
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 391
    functionName: teken_subr_set_cursor_style
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_set_cursor_style(teken_t *t, unsigned int style)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_copy
      Src: /src/VTest2/src/teken_subr.h:407,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 414
    functionName: teken_subr_delete_character
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_copy
    - teken_funcs_fill
    linkageType: ''
    returnType: void
    signature: void teken_subr_delete_character(const teken_t *t, unsigned int ncols)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_copy
      Src: /src/VTest2/src/teken_subr.h:439,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 446
    functionName: teken_subr_delete_line
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_copy
    - teken_funcs_fill
    linkageType: ''
    returnType: void
    signature: void teken_subr_delete_line(const teken_t *t, unsigned int nrows)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 454
    functionName: teken_subr_device_control_string
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_printf
    linkageType: ''
    returnType: void
    signature: void teken_subr_device_control_string(teken_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_do_cpr
      Src: /src/VTest2/src/teken_subr.h:462,1
    - Dst: teken_funcs_respond
      Src: /src/VTest2/src/teken_subr.h:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 467
    functionName: teken_subr_device_status_report
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_do_cpr
    - teken_funcs_respond
    linkageType: ''
    returnType: void
    signature: void teken_subr_device_status_report(const teken_t *t, unsigned int
      cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 475
    functionName: teken_subr_double_height_double_width_line_top
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_printf
    linkageType: ''
    returnType: void
    signature: void teken_subr_double_height_double_width_line_top(const teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 483
    functionName: teken_subr_double_height_double_width_line_bottom
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_printf
    linkageType: ''
    returnType: void
    signature: void teken_subr_double_height_double_width_line_bottom(const teken_t
      *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 499
    functionName: teken_subr_erase_character
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_fill
    linkageType: ''
    returnType: void
    signature: void teken_subr_erase_character(const teken_t *t, unsigned int ncols)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_erase_line
      Src: /src/VTest2/src/teken_subr.h:511,1
    - Dst: teken_subr_erase_line
      Src: /src/VTest2/src/teken_subr.h:524,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:534,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - t
    - mode
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 535
    functionName: teken_subr_erase_display
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_fill
    - teken_subr_erase_line
    linkageType: ''
    returnType: void
    signature: void teken_subr_erase_display(const teken_t *t, unsigned int mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - t
    - mode
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 561
    functionName: teken_subr_erase_line
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 1
    functionsReached:
    - teken_funcs_fill
    linkageType: ''
    returnType: void
    signature: void teken_subr_erase_line(const teken_t *t, unsigned int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: teken_subr_g0_scs_special_graphics
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_g0_scs_special_graphics(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: teken_subr_g0_scs_uk_national
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_g0_scs_uk_national(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: teken_subr_g0_scs_us_ascii
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_g0_scs_us_ascii(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: teken_subr_g1_scs_special_graphics
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_g1_scs_special_graphics(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 596
    functionName: teken_subr_g1_scs_uk_national
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_g1_scs_uk_national(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: teken_subr_g1_scs_us_ascii
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_g1_scs_us_ascii(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - t
    - col
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 615
    functionName: teken_subr_horizontal_position_absolute
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_horizontal_position_absolute(teken_t *t, unsigned int
      col)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_cursor_forward_tabulation
      Src: /src/VTest2/src/teken_subr.h:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 622
    functionName: teken_subr_horizontal_tab
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_cursor_forward_tabulation
    linkageType: ''
    returnType: void
    signature: void teken_subr_horizontal_tab(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_tab_set
      Src: /src/VTest2/src/teken_subr.h:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 629
    functionName: teken_subr_horizontal_tab_set
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_tab_set
    linkageType: ''
    returnType: void
    signature: void teken_subr_horizontal_tab_set(teken_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:638,1
    - Dst: teken_subr_do_scroll
      Src: /src/VTest2/src/teken_subr.h:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 642
    functionName: teken_subr_index
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    - teken_subr_do_scroll
    linkageType: ''
    returnType: void
    signature: void teken_subr_index(teken_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_copy
      Src: /src/VTest2/src/teken_subr.h:661,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 668
    functionName: teken_subr_insert_character
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_copy
    - teken_funcs_fill
    linkageType: ''
    returnType: void
    signature: void teken_subr_insert_character(const teken_t *t, unsigned int ncols)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_copy
      Src: /src/VTest2/src/teken_subr.h:693,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 700
    functionName: teken_subr_insert_line
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_copy
    - teken_funcs_fill
    linkageType: ''
    returnType: void
    signature: void teken_subr_insert_line(const teken_t *t, unsigned int nrows)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 707
    functionName: teken_subr_keypad_application_mode
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_param
    linkageType: ''
    returnType: void
    signature: void teken_subr_keypad_application_mode(const teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 714
    functionName: teken_subr_keypad_numeric_mode
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_param
    linkageType: ''
    returnType: void
    signature: void teken_subr_keypad_numeric_mode(const teken_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_do_scroll
      Src: /src/VTest2/src/teken_subr.h:723,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 729
    functionName: teken_subr_newline
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    - teken_subr_do_scroll
    linkageType: ''
    returnType: void
    signature: void teken_subr_newline(teken_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:743,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:749,1
    - Dst: teken_subr_newline
      Src: /src/VTest2/src/teken_subr.h:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 753
    functionName: teken_subr_newpage
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    - teken_subr_newline
    - teken_funcs_fill
    linkageType: ''
    returnType: void
    signature: void teken_subr_newpage(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_newline
      Src: /src/VTest2/src/teken_subr.h:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 755
    functionDepth: 3
    functionLinenumber: 755
    functionLinenumberEnd: 761
    functionName: teken_subr_next_line
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_newline
    linkageType: ''
    returnType: void
    signature: void teken_subr_next_line(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 769
    functionName: teken_subr_operating_system_command
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_printf
    linkageType: ''
    returnType: void
    signature: void teken_subr_operating_system_command(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_do_scroll
      Src: /src/VTest2/src/teken_subr.h:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 776
    functionName: teken_subr_pan_down
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_do_scroll
    linkageType: ''
    returnType: void
    signature: void teken_subr_pan_down(const teken_t *t, unsigned int nrows)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_do_scroll
      Src: /src/VTest2/src/teken_subr.h:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 783
    functionName: teken_subr_pan_up
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_do_scroll
    linkageType: ''
    returnType: void
    signature: void teken_subr_pan_up(const teken_t *t, unsigned int nrows)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_respond
      Src: /src/VTest2/src/teken_subr.h:792,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - request
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 796
    functionName: teken_subr_primary_device_attributes
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_respond
    - teken_printf
    linkageType: ''
    returnType: void
    signature: void teken_subr_primary_device_attributes(const teken_t *t, unsigned
      int request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_copy
      Src: /src/VTest2/src/teken_subr.h:815,1
    - Dst: teken_funcs_putchar
      Src: /src/VTest2/src/teken_subr.h:818,1
    - Dst: teken_funcs_putchar
      Src: /src/VTest2/src/teken_subr.h:829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - t
    - tp
    - c
    - width
    argTypes:
    - teken_t*
    - teken_pos_t*
    - teken_char_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 831
    functionName: teken_subr_do_putchar
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_copy
    - teken_funcs_putchar
    linkageType: ''
    returnType: void
    signature: "void teken_subr_do_putchar(teken_t *t, const teken_pos_t *tp, teken_char_t
      c,\n    int width)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: teken_scs_process
      Src: /src/VTest2/src/teken_subr.h:841,1
    - Dst: teken_scs_process
      Src: /src/VTest2/src/teken_subr.h:844,1
    - Dst: teken_wcwidth
      Src: /src/VTest2/src/teken_subr.h:845,1
    - Dst: teken_subr_do_putchar
      Src: /src/VTest2/src/teken_subr.h:852,1
    - Dst: teken_subr_do_scroll
      Src: /src/VTest2/src/teken_subr.h:858,1
    - Dst: teken_subr_do_scroll
      Src: /src/VTest2/src/teken_subr.h:881,1
    - Dst: teken_subr_do_putchar
      Src: /src/VTest2/src/teken_subr.h:892,1
    - Dst: teken_subr_do_putchar
      Src: /src/VTest2/src/teken_subr.h:899,1
    - Dst: teken_subr_do_putchar
      Src: /src/VTest2/src/teken_subr.h:906,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:917,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 918
    functionName: teken_subr_regular_character
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_do_putchar
    - teken_wcwidth
    - teken_subr_do_scroll
    - teken_funcs_cursor
    - teken_scs_process
    linkageType: ''
    returnType: void
    signature: void teken_subr_regular_character(teken_t *t, teken_char_t c)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:929,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:932,1
    - Dst: teken_subr_reset_to_initial_state
      Src: /src/VTest2/src/teken_subr.h:933,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:936,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:944,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:950,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:953,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:956,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:959,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:962,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:965,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:968,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 970
    functionName: teken_subr_reset_dec_mode
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_reset_to_initial_state
    - teken_funcs_cursor
    - teken_printf
    - teken_funcs_param
    linkageType: ''
    returnType: void
    signature: void teken_subr_reset_dec_mode(teken_t *t, unsigned int cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 983
    functionName: teken_subr_reset_mode
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_printf
    linkageType: ''
    returnType: void
    signature: void teken_subr_reset_mode(teken_t *t, unsigned int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 992
    functionName: teken_subr_do_resize
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_do_resize(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_save_cursor
      Src: /src/VTest2/src/teken_subr.h:1010,1
    - Dst: teken_tab_default
      Src: /src/VTest2/src/teken_subr.h:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1012
    functionName: teken_subr_do_reset
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_save_cursor
    - teken_tab_default
    linkageType: ''
    returnType: void
    signature: void teken_subr_do_reset(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_do_reset
      Src: /src/VTest2/src/teken_subr.h:1018,1
    - Dst: teken_subr_erase_display
      Src: /src/VTest2/src/teken_subr.h:1019,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:1020,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1014
    functionDepth: 3
    functionLinenumber: 1014
    functionLinenumberEnd: 1022
    functionName: teken_subr_reset_to_initial_state
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 1
    functionsReached:
    - teken_subr_do_reset
    - teken_funcs_cursor
    - teken_funcs_param
    - teken_subr_erase_display
    linkageType: ''
    returnType: void
    signature: void teken_subr_reset_to_initial_state(teken_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:1041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1042
    functionName: teken_subr_restore_cursor
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_restore_cursor(teken_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:1051,1
    - Dst: teken_subr_do_scroll
      Src: /src/VTest2/src/teken_subr.h:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1044
    functionDepth: 2
    functionLinenumber: 1044
    functionLinenumberEnd: 1055
    functionName: teken_subr_reverse_index
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    - teken_subr_do_scroll
    linkageType: ''
    returnType: void
    signature: void teken_subr_reverse_index(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1064
    functionName: teken_subr_save_cursor
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_save_cursor(teken_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_respond
      Src: /src/VTest2/src/teken_subr.h:1072,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - request
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1076
    functionName: teken_subr_secondary_device_attributes
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_respond
    - teken_printf
    linkageType: ''
    returnType: void
    signature: void teken_subr_secondary_device_attributes(const teken_t *t, unsigned
      int request)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1087,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:1090,1
    - Dst: teken_subr_reset_to_initial_state
      Src: /src/VTest2/src/teken_subr.h:1091,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1094,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:1102,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:1108,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:1111,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1114,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1117,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1120,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:1123,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1078
    functionDepth: 4
    functionLinenumber: 1078
    functionLinenumberEnd: 1128
    functionName: teken_subr_set_dec_mode
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_reset_to_initial_state
    - teken_funcs_cursor
    - teken_printf
    - teken_funcs_param
    linkageType: ''
    returnType: void
    signature: void teken_subr_set_dec_mode(teken_t *t, unsigned int cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1136,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1142
    functionName: teken_subr_set_mode
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_printf
    linkageType: ''
    returnType: void
    signature: void teken_subr_set_mode(teken_t *t, unsigned int cmd)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1246,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 97
    argCount: 3
    argNames:
    - t
    - ncmds
    - cmds
    argTypes:
    - teken_t*
    - unsigned int
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1249
    functionName: teken_subr_set_graphic_rendition
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_printf
    linkageType: ''
    returnType: void
    signature: "void teken_subr_set_graphic_rendition(teken_t *t, unsigned int ncmds,\n
      \   const unsigned int cmds[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:1279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - t
    - top
    - bottom
    argTypes:
    - teken_t*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1280
    functionName: teken_subr_set_top_and_bottom_margins
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: "void teken_subr_set_top_and_bottom_margins(teken_t *t, unsigned int
      top,\n    unsigned int bottom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1288
    functionName: teken_subr_single_height_double_width_line
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_printf
    linkageType: ''
    returnType: void
    signature: void teken_subr_single_height_double_width_line(const teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1296
    functionName: teken_subr_single_height_single_width_line
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_printf
    linkageType: ''
    returnType: void
    signature: void teken_subr_single_height_single_width_line(const teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1307
    functionName: teken_subr_string_terminator
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_string_terminator(const teken_t *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: teken_tab_clear
      Src: /src/VTest2/src/teken_subr.h:1315,1
    - Dst: memset
      Src: /src/VTest2/src/teken_subr.h:1318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1323
    functionName: teken_subr_tab_clear
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - memset
    - teken_tab_clear
    linkageType: ''
    returnType: void
    signature: void teken_subr_tab_clear(teken_t *t, unsigned int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - t
    - row
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1335
    functionName: teken_subr_vertical_position_absolute
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    linkageType: ''
    returnType: void
    signature: void teken_subr_vertical_position_absolute(teken_t *t, unsigned int
      row)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_regular_character
      Src: /src/VTest2/src/teken_subr.h:1346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - t
    - rpts
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1337
    functionDepth: 3
    functionLinenumber: 1337
    functionLinenumberEnd: 1347
    functionName: teken_subr_repeat_last_graphic_char
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_subr_regular_character
    linkageType: ''
    returnType: void
    signature: void teken_subr_repeat_last_graphic_char(teken_t *t, unsigned int rpts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: teken_assert
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: teken_assert(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_t*::t_funcs::tf_bell
      Src: /src/VTest2/src/teken.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: teken_funcs_bell
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached:
    - teken_t*::t_funcs::tf_bell
    linkageType: ''
    returnType: void
    signature: void teken_funcs_bell(const teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:80,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:81,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:83,1
    - Dst: teken_t*::t_funcs::tf_cursor
      Src: /src/VTest2/src/teken.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: teken_funcs_cursor
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 22
    functionsReached:
    - teken_assert
    - teken_t*::t_funcs::tf_cursor
    linkageType: ''
    returnType: void
    signature: void teken_funcs_cursor(const teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:92,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:93,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:95,1
    - Dst: teken_t*::t_funcs::tf_putchar
      Src: /src/VTest2/src/teken.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - t
    - p
    - c
    - a
    argTypes:
    - teken_t*
    - teken_pos_t*
    - teken_char_t
    - teken_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: teken_funcs_putchar
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached:
    - teken_t*::t_funcs::tf_putchar
    - teken_assert
    linkageType: ''
    returnType: void
    signature: "void teken_funcs_putchar(const teken_t *t, const teken_pos_t *p, teken_char_t
      c,\n    const teken_attr_t *a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:104,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:105,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:106,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:107,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:109,1
    - Dst: teken_t*::t_funcs::tf_fill
      Src: /src/VTest2/src/teken.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - t
    - r
    - c
    - a
    argTypes:
    - teken_t*
    - teken_rect_t*
    - teken_char_t
    - teken_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: teken_funcs_fill
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 10
    functionsReached:
    - teken_t*::t_funcs::tf_fill
    - teken_assert
    linkageType: ''
    returnType: void
    signature: "void teken_funcs_fill(const teken_t *t, const teken_rect_t *r,\n    const
      teken_char_t c, const teken_attr_t *a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:117,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:118,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:119,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:120,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:121,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:122,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:124,1
    - Dst: teken_t*::t_funcs::tf_copy
      Src: /src/VTest2/src/teken.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - t
    - r
    - p
    argTypes:
    - teken_t*
    - teken_rect_t*
    - teken_pos_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: teken_funcs_copy
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 6
    functionsReached:
    - teken_t*::t_funcs::tf_copy
    - teken_assert
    linkageType: ''
    returnType: void
    signature: void teken_funcs_copy(const teken_t *t, const teken_rect_t *r, const
      teken_pos_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_t*::t_funcs::tf_pre_input
      Src: /src/VTest2/src/teken.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: teken_funcs_pre_input
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached:
    - teken_t*::t_funcs::tf_pre_input
    linkageType: ''
    returnType: void
    signature: void teken_funcs_pre_input(const teken_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_t*::t_funcs::tf_post_input
      Src: /src/VTest2/src/teken.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: teken_funcs_post_input
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached:
    - teken_t*::t_funcs::tf_post_input
    linkageType: ''
    returnType: void
    signature: void teken_funcs_post_input(const teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:148,1
    - Dst: teken_t*::t_funcs::tf_param
      Src: /src/VTest2/src/teken.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - t
    - cmd
    - value
    argTypes:
    - teken_t*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: teken_funcs_param
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 5
    functionsReached:
    - teken_t*::t_funcs::tf_param
    - teken_assert
    linkageType: ''
    returnType: void
    signature: void teken_funcs_param(const teken_t *t, int cmd, unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:156,1
    - Dst: teken_t*::t_funcs::tf_respond
      Src: /src/VTest2/src/teken.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - t
    - buf
    - len
    argTypes:
    - teken_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: teken_funcs_respond
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 4
    functionsReached:
    - teken_assert
    - teken_t*::t_funcs::tf_respond
    linkageType: ''
    returnType: void
    signature: void teken_funcs_respond(const teken_t *t, const void *buf, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_do_reset
      Src: /src/VTest2/src/teken.c:182,1
    - Dst: teken_set_winsize
      Src: /src/VTest2/src/teken.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - t
    - tf
    - softc
    argTypes:
    - teken_t*
    - teken_funcs_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 185
    functionName: teken_init
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached:
    - teken_subr_do_reset
    - teken_set_winsize
    linkageType: ''
    returnType: void
    signature: void teken_init(teken_t *t, const teken_funcs_t *tf, void *softc)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_bell
      Src: /src/VTest2/src/teken.c:213,1
    - Dst: teken_subr_backspace
      Src: /src/VTest2/src/teken.c:216,1
    - Dst: teken_subr_newline
      Src: /src/VTest2/src/teken.c:220,1
    - Dst: teken_subr_newpage
      Src: /src/VTest2/src/teken.c:223,1
    - Dst: teken_t*::t_nextstate
      Src: /src/VTest2/src/teken.c:227,1
    - Dst: teken_t*::t_nextstate
      Src: /src/VTest2/src/teken.c:233,1
    - Dst: teken_subr_carriage_return
      Src: /src/VTest2/src/teken.c:238,1
    - Dst: teken_subr_horizontal_tab
      Src: /src/VTest2/src/teken.c:241,1
    - Dst: teken_t*::t_nextstate
      Src: /src/VTest2/src/teken.c:244,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:249,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:250,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:251,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:252,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:253,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:254,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:255,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:256,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:258,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 262
    functionName: teken_input_char
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached:
    - teken_t*::t_nextstate
    - teken_assert
    - teken_subr_horizontal_tab
    - teken_subr_newpage
    - teken_subr_backspace
    - teken_subr_bell
    - teken_subr_newline
    - teken_subr_carriage_return
    linkageType: ''
    returnType: void
    signature: void teken_input_char(teken_t *t, teken_char_t c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: teken_input_char
      Src: /src/VTest2/src/teken.c:274,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken.c:293,1
    - Dst: teken_input_char
      Src: /src/VTest2/src/teken.c:294,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 297
    functionName: teken_input_byte
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached:
    - teken_input_char
    - teken_printf
    linkageType: ''
    returnType: void
    signature: void teken_input_byte(teken_t *t, unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_pre_input
      Src: /src/VTest2/src/teken.c:304,1
    - Dst: teken_input_byte
      Src: /src/VTest2/src/teken.c:306,1
    - Dst: teken_funcs_post_input
      Src: /src/VTest2/src/teken.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - t
    - buf
    - len
    argTypes:
    - teken_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 6
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: teken_input
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached:
    - teken_input_byte
    - teken_funcs_post_input
    - teken_funcs_pre_input
    linkageType: ''
    returnType: void
    signature: void teken_input(teken_t *t, const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: teken_get_cursor
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: teken_pos_t
    signature: 'teken_pos_t *

      teken_get_cursor(const teken_t *t)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:322,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - teken_t*
    - teken_pos_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: teken_set_cursor
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached:
    - teken_assert
    linkageType: ''
    returnType: void
    signature: void teken_set_cursor(teken_t *t, const teken_pos_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: teken_get_curattr
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: teken_attr_t
    signature: 'teken_attr_t *

      teken_get_curattr(const teken_t *t)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - a
    argTypes:
    - teken_t*
    - teken_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: teken_set_curattr
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_set_curattr(teken_t *t, const teken_attr_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: teken_get_defattr
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: teken_attr_t
    signature: 'teken_attr_t *

      teken_get_defattr(const teken_t *t)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - a
    argTypes:
    - teken_t*
    - teken_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: teken_set_defattr
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_set_defattr(teken_t *t, const teken_attr_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: teken_get_winsize
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: teken_pos_t
    signature: 'teken_pos_t *

      teken_get_winsize(const teken_t *t)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tp_row::tp_row
      Src: /src/VTest2/src/teken.c:370,1
    - Dst: tp_row::tp_row
      Src: /src/VTest2/src/teken.c:372,1
    - Dst: tp_row::tp_row
      Src: /src/VTest2/src/teken.c:373,1
    - Dst: tp_col::tp_col
      Src: /src/VTest2/src/teken.c:374,1
    - Dst: tp_col::tp_col
      Src: /src/VTest2/src/teken.c:375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - t
    - new
    argTypes:
    - teken_t*
    - teken_pos_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 376
    functionName: teken_trim_cursor_pos
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached:
    - tp_col::tp_col
    - tp_row::tp_row
    linkageType: ''
    returnType: void
    signature: void teken_trim_cursor_pos(teken_t *t, const teken_pos_t *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_trim_cursor_pos
      Src: /src/VTest2/src/teken.c:382,1
    - Dst: teken_subr_do_reset
      Src: /src/VTest2/src/teken.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - teken_t*
    - teken_pos_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 385
    functionName: teken_set_winsize
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 2
    functionsReached:
    - teken_subr_do_reset
    - teken_trim_cursor_pos
    linkageType: ''
    returnType: void
    signature: void teken_set_winsize(teken_t *t, const teken_pos_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_trim_cursor_pos
      Src: /src/VTest2/src/teken.c:391,1
    - Dst: teken_subr_do_resize
      Src: /src/VTest2/src/teken.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - teken_t*
    - teken_pos_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 394
    functionName: teken_set_winsize_noreset
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached:
    - teken_subr_do_resize
    - teken_trim_cursor_pos
    linkageType: ''
    returnType: void
    signature: void teken_set_winsize_noreset(teken_t *t, const teken_pos_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: teken_set_8bit
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_set_8bit(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: teken_set_cons25
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_set_cons25(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - t
    - s
    argTypes:
    - teken_t*
    - teken_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 421
    functionName: teken_state_switch
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_state_switch(teken_t *t, teken_state_t *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:427,1
    - Dst: teken_state_switch
      Src: /src/VTest2/src/teken.c:455,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 473
    functionName: teken_state_numbers
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached:
    - teken_state_switch
    - teken_assert
    linkageType: ''
    returnType: int
    signature: int teken_state_numbers(teken_t *t, teken_char_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - teken_color_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 665
    functionName: teken_256to8
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: teken_color_t
    signature: teken_color_t teken_256to8(teken_color_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - teken_color_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 672
    functionName: teken_256to16
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: teken_color_t
    signature: teken_color_t teken_256to16(teken_color_t c)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - t
    - k
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 732
    functionName: teken_get_sequence
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      teken_get_sequence(const teken_t *t, unsigned int k)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:130,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:131,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_http2.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hpk_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: clean_headers
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void clean_headers(struct hpk_hdr *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hp
    - ','
    - av
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: ONLY_H2_CLIENT
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONLY_H2_CLIENT(hp, av)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hp
    - ','
    - av
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: ONLY_H2_SERVER
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONLY_H2_SERVER(hp, av)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:158,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:159,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:160,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http2.c:162,1
    - Dst: write
      Src: /src/VTest2/src/vtc_http2.c:163,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:165,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http2.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - hp
    - lvl
    - buf
    - s
    - pfx
    argTypes:
    - struct http*
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 167
    functionName: http_write
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - strerror
    - write
    - vtc_dump
    - AN
    linkageType: ''
    returnType: void
    signature: "void http_write(const struct http *hp, int lvl,\n    const char *buf,
      int s, const char *pfx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:175,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:176,1
    - Dst: poll
      Src: /src/VTest2/src/vtc_http2.c:182,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:186,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:190,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http2.c:192,1
    - Dst: read
      Src: /src/VTest2/src/vtc_http2.c:195,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:197,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:201,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http2.c:203,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:205,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http2.c:207,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - hp
    - buf
    - n
    argTypes:
    - struct http*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 214
    functionName: get_bytes
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - poll
    - CHECK_OBJ_NOTNULL
    - strerror
    - vtc_log
    - read
    - AN
    linkageType: ''
    returnType: int
    signature: int get_bytes(const struct http *hp, char *buf, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:255,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:256,1
    - Dst: vbe32dec
      Src: /src/VTest2/src/vtc_http2.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - f
    - buf
    argTypes:
    - struct frame*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 267
    functionName: readFrameHeader
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vbe32dec
    - AN
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void readFrameHeader(struct frame *f, const char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:272,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:273,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - f
    argTypes:
    - char*
    - struct frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 283
    functionName: writeFrameHeader
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - AN
    - vbe32enc
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void writeFrameHeader(char *buf, const struct frame *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - ty
    - ','
    - sz
    - ','
    - id
    - ','
    - fl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: INIT_FRAME
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_FRAME(f, ty, sz, id, fl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:300,1
    - Dst: CHECK_OBJ
      Src: /src/VTest2/src/vtc_http2.c:308,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:310,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:311,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_http2.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - fp
    - new
    argTypes:
    - struct frame**
    - struct frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 313
    functionName: replace_frame
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ
    - FREE_OBJ
    - AN
    - free
    linkageType: ''
    returnType: void
    signature: void replace_frame(struct frame **fp, struct frame *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - struct frame**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: clean_frame
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - replace_frame
    linkageType: ''
    returnType: void
    signature: void clean_frame(struct frame **fp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:329,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:331,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:332,1
    - Dst: writeFrameHeader
      Src: /src/VTest2/src/vtc_http2.c:334,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:336,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:348,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:348,1
    - Dst: write
      Src: /src/VTest2/src/vtc_http2.c:349,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:351,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http2.c:352,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:355,1
    - Dst: write
      Src: /src/VTest2/src/vtc_http2.c:356,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:358,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http2.c:360,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:363,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - sp
    - f
    - lock
    argTypes:
    - struct stream*
    - struct frame*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 364
    functionName: write_frame
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - strerror
    - write
    - PTOK
    - pthread_mutex_lock
    - writeFrameHeader
    - AN
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void write_frame(struct stream *sp, const struct frame *f, const unsigned
      lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_http2.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 379
    functionName: exclusive_stream_dependency
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void exclusive_stream_dependency(const struct stream *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:385,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:388,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:391,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:394,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:397,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:399,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 18
    argCount: 3
    argNames:
    - flags
    - type
    - vl
    argTypes:
    - uint8_t
    - uint8_t
    - struct vtclog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 400
    functionName: explain_flags
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    linkageType: ''
    returnType: void
    signature: void explain_flags(uint8_t flags, uint8_t type, struct vtclog *vl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:409,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:410,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:411,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:416,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:425,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:434,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:435,1
    - Dst: realloc
      Src: /src/VTest2/src/vtc_http2.c:439,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:440,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_http2.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 444
    functionName: parse_data
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - memcpy
    - CAST_OBJ_NOTNULL
    - realloc
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void parse_data(struct stream *s, struct frame *f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:453,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:454,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_http2.c:456,1
    - Dst: HPK_NewIter
      Src: /src/VTest2/src/vtc_http2.c:459,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_http2.c:459,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_http2.c:459,1
    - Dst: HPK_DecHdr
      Src: /src/VTest2/src/vtc_http2.c:465,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:468,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:476,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:479,1
    - Dst: HPK_FreeIter
      Src: /src/VTest2/src/vtc_http2.c:483,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - hp
    - h
    - vsb
    argTypes:
    - struct http*
    - struct hpk_hdr*
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 484
    functionName: decode_hdr
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - VSB_len
    - HPK_FreeIter
    - CHECK_OBJ_NOTNULL
    - vtc_log
    - CAST_OBJ_NOTNULL
    - HPK_NewIter
    - HPK_DecHdr
    linkageType: ''
    returnType: void
    signature: void decode_hdr(struct http *hp, struct hpk_hdr *h, const struct vsb
      *vsb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:496,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:497,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:498,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:499,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:504,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:513,1
    - Dst: vbe32dec
      Src: /src/VTest2/src/vtc_http2.c:518,1
    - Dst: exclusive_stream_dependency
      Src: /src/VTest2/src/vtc_http2.c:524,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:526,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:527,1
    - Dst: vbe32dec
      Src: /src/VTest2/src/vtc_http2.c:530,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:534,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_http2.c:534,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - s
    - f
    - vsb
    argTypes:
    - struct stream*
    - struct frame*
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 535
    functionName: parse_hdr
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - exclusive_stream_dependency
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - CAST_OBJ_NOTNULL
    - vbe32dec
    - AZ
    - VSB_bcat
    linkageType: ''
    returnType: void
    signature: void parse_hdr(struct stream *s, struct frame *f, struct vsb *vsb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:544,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:545,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:546,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:549,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:552,1
    - Dst: vbe32dec
      Src: /src/VTest2/src/vtc_http2.c:554,1
    - Dst: exclusive_stream_dependency
      Src: /src/VTest2/src/vtc_http2.c:560,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:567,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 569
    functionName: parse_prio
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - exclusive_stream_dependency
    - CHECK_OBJ_NOTNULL
    - vtc_log
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - vbe32dec
    - AN
    linkageType: ''
    returnType: void
    signature: void parse_prio(struct stream *s, struct frame *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:577,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:578,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:579,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:582,1
    - Dst: vbe32dec
      Src: /src/VTest2/src/vtc_http2.c:584,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:587,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 594
    functionName: parse_rst
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - vbe32dec
    linkageType: ''
    returnType: void
    signature: void parse_rst(const struct stream *s, struct frame *f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:604,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:605,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:606,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:609,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:613,1
    - Dst: vbe16dec
      Src: /src/VTest2/src/vtc_http2.c:620,1
    - Dst: vbe32dec
      Src: /src/VTest2/src/vtc_http2.c:622,1
    - Dst: HPK_ResizeTbl
      Src: /src/VTest2/src/vtc_http2.c:631,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:632,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct frame*
    assertStmts:
    - condition: (r == hpk_done)
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/VTest2/src/vtc_http2.c
    constantsTouched: []
    func_position:
      end: 638
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 638
    functionName: parse_settings
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - assert
    - CHECK_OBJ_NOTNULL
    - vtc_log
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - vbe16dec
    - vbe32dec
    - HPK_ResizeTbl
    linkageType: ''
    returnType: void
    signature: void parse_settings(const struct stream *s, struct frame *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:644,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:645,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:646,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:648,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_http2.c:650,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 655
    functionName: parse_ping
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - memcpy
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void parse_ping(const struct stream *s, struct frame *f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:663,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:664,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:665,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:668,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:671,1
    - Dst: vbe32dec
      Src: /src/VTest2/src/vtc_http2.c:674,1
    - Dst: vbe32dec
      Src: /src/VTest2/src/vtc_http2.c:675,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http2.c:685,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:686,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_http2.c:689,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:692,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:693,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:695,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 696
    functionName: parse_goaway
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - malloc
    - CHECK_OBJ_NOTNULL
    - memcpy
    - vtc_log
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - vbe32dec
    - AN
    linkageType: ''
    returnType: void
    signature: void parse_goaway(const struct stream *s, struct frame *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:703,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:704,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:705,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:708,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:710,1
    - Dst: vbe32dec
      Src: /src/VTest2/src/vtc_http2.c:713,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 717
    functionName: parse_winup
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - vbe32dec
    linkageType: ''
    returnType: void
    signature: void parse_winup(const struct stream *s, struct frame *f)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:732,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:734,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:734,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:737,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:739,1
    - Dst: pthread_cond_wait
      Src: /src/VTest2/src/vtc_http2.c:739,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:742,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:742,1
    - Dst: get_bytes
      Src: /src/VTest2/src/vtc_http2.c:744,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:745,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:745,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_http2.c:746,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:747,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_http2.c:747,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:748,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:748,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:749,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_http2.c:753,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:754,1
    - Dst: readFrameHeader
      Src: /src/VTest2/src/vtc_http2.c:755,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:757,1
    - Dst: explain_flags
      Src: /src/VTest2/src/vtc_http2.c:762,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http2.c:765,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:766,1
    - Dst: get_bytes
      Src: /src/VTest2/src/vtc_http2.c:768,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:769,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:769,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_http2.c:770,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:771,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_http2.c:771,1
    - Dst: clean_frame
      Src: /src/VTest2/src/vtc_http2.c:772,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:773,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:773,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:774,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:781,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:781,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_http2.c:784,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:788,1
    - Dst: pthread_cond_wait
      Src: /src/VTest2/src/vtc_http2.c:788,1
    - Dst: clean_frame
      Src: /src/VTest2/src/vtc_http2.c:790,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:791,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:791,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:795,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:795,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:797,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:800,1
    - Dst: parse_data
      Src: /src/VTest2/src/vtc_http2.c:806,1
    - Dst: clean_headers
      Src: /src/VTest2/src/vtc_http2.c:818,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:820,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_http2.c:821,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:824,1
    - Dst: parse_hdr
      Src: /src/VTest2/src/vtc_http2.c:826,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:829,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_http2.c:829,1
    - Dst: decode_hdr
      Src: /src/VTest2/src/vtc_http2.c:830,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_http2.c:831,1
    - Dst: parse_prio
      Src: /src/VTest2/src/vtc_http2.c:836,1
    - Dst: parse_rst
      Src: /src/VTest2/src/vtc_http2.c:839,1
    - Dst: parse_settings
      Src: /src/VTest2/src/vtc_http2.c:842,1
    - Dst: parse_ping
      Src: /src/VTest2/src/vtc_http2.c:845,1
    - Dst: parse_goaway
      Src: /src/VTest2/src/vtc_http2.c:848,1
    - Dst: parse_winup
      Src: /src/VTest2/src/vtc_http2.c:851,1
    - Dst: WRONG
      Src: /src/VTest2/src/vtc_http2.c:854,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:857,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:857,1
    - Dst: VTAILQ_INSERT_HEAD
      Src: /src/VTest2/src/vtc_http2.c:858,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:860,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:863,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_http2.c:863,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:867,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:867,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_http2.c:869,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 118
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts:
    - condition: (hp->wf >= 0)
      pos:
        line_end: 736
        line_start: 736
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (hp->wf > 0)
      pos:
        line_end: 859
        line_start: 859
        source_file: /src/VTest2/src/vtc_http2.c
    constantsTouched: []
    func_position:
      end: 871
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 871
    functionName: receive_frame
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - clean_headers
    - vtc_log
    - CAST_OBJ_NOTNULL
    - parse_goaway
    - readFrameHeader
    - pthread_mutex_lock
    - AN
    - assert
    - explain_flags
    - ALLOC_OBJ
    - vtc_fatal
    - parse_settings
    - VSB_destroy
    - VSB_new_auto
    - WRONG
    - decode_hdr
    - parse_hdr
    - malloc
    - VTAILQ_FOREACH
    - parse_rst
    - parse_data
    - parse_prio
    - VTAILQ_INSERT_HEAD
    - get_bytes
    - pthread_cond_wait
    - VSB_finish
    - parse_winup
    - parse_ping
    - clean_frame
    - PTOK
    - pthread_cond_signal
    - AZ
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: 'void *

      receive_frame(void *priv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - n
    - ','
    - ss
    - ','
    - p
    - ','
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 880
    functionName: STRTOU32
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRTOU32(n, ss, p, v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - n
    - ','
    - sp
    - ','
    - p
    - ','
    - v
    - ','
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 890
    functionName: STRTOU32_CHECK
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRTOU32_CHECK(n, sp, p, v, c, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: CHECK_LAST_FRAME
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_LAST_FRAME(TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - U
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 904
    functionName: RETURN_SETTING
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_SETTING(U)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - U
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 916
    functionName: RETURN_SETTING_BOOL
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_SETTING_BOOL(U)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 922
    functionName: RETURN_BUFFED
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_BUFFED(val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:926,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:928,1
    - Dst: strncasecmp
      Src: /src/VTest2/src/vtc_http2.c:930,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - h
    - k
    argTypes:
    - struct hpk_hdr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 935
    functionName: find_header
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - AN
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      find_header(const struct hpk_hdr *h, const char *k)'
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:955,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:956,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:957,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:958,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:968,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:969,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:972,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:973,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:974,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:982,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:983,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:984,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:997,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:998,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:999,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1001,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1002,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1003,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1006,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1007,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1008,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1015,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1016,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1017,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1054,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1055,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1057,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1058,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1061,1
    - Dst: RETURN_SETTING
      Src: /src/VTest2/src/vtc_http2.c:1061,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1062,1
    - Dst: RETURN_SETTING_BOOL
      Src: /src/VTest2/src/vtc_http2.c:1062,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1063,1
    - Dst: RETURN_SETTING
      Src: /src/VTest2/src/vtc_http2.c:1063,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1064,1
    - Dst: RETURN_SETTING
      Src: /src/VTest2/src/vtc_http2.c:1064,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1065,1
    - Dst: RETURN_SETTING
      Src: /src/VTest2/src/vtc_http2.c:1065,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1066,1
    - Dst: RETURN_SETTING
      Src: /src/VTest2/src/vtc_http2.c:1066,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1067,1
    - Dst: RETURN_SETTING_BOOL
      Src: /src/VTest2/src/vtc_http2.c:1067,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1068,1
    - Dst: RETURN_SETTING_BOOL
      Src: /src/VTest2/src/vtc_http2.c:1068,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1069,1
    - Dst: RETURN_SETTING
      Src: /src/VTest2/src/vtc_http2.c:1069,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1076,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1077,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1078,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1091,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1093,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1095,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1096,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1097,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1098,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1099,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1120,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1123,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1124,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1125,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1125,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1126,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1126,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1127,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1127,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1128,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1132,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1135,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1154,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1155,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1159,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1160,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1164,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1166,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1171,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1173,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1197,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1197,1
    - Dst: sscanf
      Src: /src/VTest2/src/vtc_http2.c:1204,1
    - Dst: HPK_GetHdr
      Src: /src/VTest2/src/vtc_http2.c:1206,1
    - Dst: sscanf
      Src: /src/VTest2/src/vtc_http2.c:1209,1
    - Dst: HPK_GetHdr
      Src: /src/VTest2/src/vtc_http2.c:1211,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1214,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1215,1
    - Dst: HPK_GetTblSize
      Src: /src/VTest2/src/vtc_http2.c:1215,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1216,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1217,1
    - Dst: HPK_GetTblMaxSize
      Src: /src/VTest2/src/vtc_http2.c:1217,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1218,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1219,1
    - Dst: HPK_GetTblLength
      Src: /src/VTest2/src/vtc_http2.c:1219,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1250,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1250,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1258,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1260,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1261,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1262,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1263,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1264,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1265,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1266,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1267,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1268,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1269,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1270,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1271,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1272,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1273,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 167
    argCount: 3
    argNames:
    - s
    - spec
    - buf
    argTypes:
    - struct stream*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 1281
    functionName: cmd_var_resolve
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - RETURN_SETTING
    - RETURN_SETTING_BOOL
    - HPK_GetTblMaxSize
    - CHECK_OBJ_NOTNULL
    - HPK_GetTblLength
    - CHECK_LAST_FRAME
    - strcmp
    - vtc_fatal
    - HPK_GetHdr
    - RETURN_BUFFED
    - strncmp
    - sscanf
    - find_header
    - HPK_GetTblSize
    - AN
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_var_resolve(const struct stream *s, const char *spec, char *buf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - U
    - ','
    - v
    - ','
    - sc
    - ','
    - g
    - ','
    - r
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1279
    functionName: H2_ERROR
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H2_ERROR(U,v,sc,g,r,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1299,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1300,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1301,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1302,1
    - Dst: vtc_hex_to_bin
      Src: /src/VTest2/src/vtc_http2.c:1303,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1304,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_http2.c:1304,1
    - Dst: vtc_hexdump
      Src: /src/VTest2/src/vtc_http2.c:1305,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_http2.c:1305,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_http2.c:1305,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:1306,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:1306,1
    - Dst: http_write
      Src: /src/VTest2/src/vtc_http2.c:1307,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_http2.c:1307,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_http2.c:1307,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:1308,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:1308,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_http2.c:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (VSB_len(vsb) >= 0)
      pos:
        line_end: 1303
        line_start: 1303
        source_file: /src/VTest2/src/vtc_http2.c
    constantsTouched: []
    func_position:
      end: 1310
      start: 1291
    functionDepth: 2
    functionLinenumber: 1291
    functionLinenumberEnd: 1310
    functionName: cmd_sendhex
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - VSB_data
    - VSB_len
    - assert
    - vtc_hexdump
    - CAST_OBJ_NOTNULL
    - http_write
    - VSB_destroy
    - PTOK
    - pthread_mutex_lock
    - AZ
    - AN
    - vtc_hex_to_bin
    linkageType: ''
    returnType: void
    signature: void cmd_sendhex(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hdr
    - ','
    - k
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1322
    functionName: ENC
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENC(hdr, k, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - av
    - ','
    - field
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1335
    functionName: STR_ENC
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR_ENC(av, field, str)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1463,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1464,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http2.c:1465,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1466,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1468,1
    - Dst: ONLY_H2_CLIENT
      Src: /src/VTest2/src/vtc_http2.c:1469,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1475,1
    - Dst: ONLY_H2_SERVER
      Src: /src/VTest2/src/vtc_http2.c:1476,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1480,1
    - Dst: ONLY_H2_SERVER
      Src: /src/VTest2/src/vtc_http2.c:1481,1
    - Dst: HPK_NewIter
      Src: /src/VTest2/src/vtc_http2.c:1490,1
    - Dst: HPK_NewIter
      Src: /src/VTest2/src/vtc_http2.c:1492,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_http2.c:1497,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1499,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1505,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1505,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1506,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1510,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1511,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1511,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1512,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1516,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1516,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1517,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1517,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1518,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1522,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1523,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1523,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1524,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1528,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1530,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1531,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1534,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1536,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1537,1
    - Dst: HPK_EncHdr
      Src: /src/VTest2/src/vtc_http2.c:1537,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1539,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1541,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1542,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1543,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1545,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1548,1
    - Dst: STR_ENC
      Src: /src/VTest2/src/vtc_http2.c:1553,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1554,1
    - Dst: HPK_EncHdr
      Src: /src/VTest2/src/vtc_http2.c:1554,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1556,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1558,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1559,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1560,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1562,1
    - Dst: STR_ENC
      Src: /src/VTest2/src/vtc_http2.c:1565,1
    - Dst: STR_ENC
      Src: /src/VTest2/src/vtc_http2.c:1566,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1567,1
    - Dst: HPK_EncHdr
      Src: /src/VTest2/src/vtc_http2.c:1567,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1569,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1572,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1575,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1575,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1576,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:1577,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1579,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1579,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1580,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1582,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_http2.c:1583,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1585,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1585,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1586,1
    - Dst: synth_body
      Src: /src/VTest2/src/vtc_http2.c:1588,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1590,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1590,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1591,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1592,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_http2.c:1593,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1594,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1595,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1599,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1600,1
    - Dst: VFIL_readfile
      Src: /src/VTest2/src/vtc_http2.c:1601,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1602,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1603,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1608,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1609,1
    - Dst: synth_body
      Src: /src/VTest2/src/vtc_http2.c:1610,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1611,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1615,1
    - Dst: vtc_gzip_cmd
      Src: /src/VTest2/src/vtc_http2.c:1616,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1621,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1625,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1626,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1629,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1633,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1634,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1644,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_http2.c:1646,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1649,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1650,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1651,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1652,1
    - Dst: gethpk_iterLen
      Src: /src/VTest2/src/vtc_http2.c:1654,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1659,1
    - Dst: memmove
      Src: /src/VTest2/src/vtc_http2.c:1660,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:1661,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:1665,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:1666,1
    - Dst: exclusive_stream_dependency
      Src: /src/VTest2/src/vtc_http2.c:1668,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1671,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1672,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1674,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1674,1
    - Dst: memmove
      Src: /src/VTest2/src/vtc_http2.c:1675,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1676,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_http2.c:1678,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1678,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1679,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1680,1
    - Dst: HPK_FreeIter
      Src: /src/VTest2/src/vtc_http2.c:1685,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:1686,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1687,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1692,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:1695,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1696,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 231
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (HPK_EncHdr(iter, &hdr) != hpk_err)
      pos:
        line_end: 1553
        line_start: 1553
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (len < INT_MAX)
      pos:
        line_end: 1602
        line_start: 1602
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (HPK_EncHdr(iter, &hdr) != hpk_err)
      pos:
        line_end: 1536
        line_start: 1536
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (f.size + 5 < BUF_SIZE)
      pos:
        line_end: 1658
        line_start: 1658
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (f.size + strlen(pad) < BUF_SIZE)
      pos:
        line_end: 1673
        line_start: 1673
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (HPK_EncHdr(iter, &hdr) != hpk_err)
      pos:
        line_end: 1566
        line_start: 1566
        source_file: /src/VTest2/src/vtc_http2.c
    constantsTouched: []
    func_position:
      end: 1697
      start: 1440
    functionDepth: 3
    functionLinenumber: 1440
    functionLinenumberEnd: 1697
    functionName: cmd_tx11obj
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - HPK_EncHdr
    - vtc_log
    - CAST_OBJ_NOTNULL
    - REPLACE
    - free
    - write_frame
    - ENC
    - AN
    - VFIL_readfile
    - assert
    - vtc_fatal
    - strcmp
    - STR_ENC
    - vtc_gzip_cmd
    - malloc
    - synth_body
    - memmove
    - vbe32enc
    - memcpy
    - AV_IS
    - INIT_FRAME
    - exclusive_stream_dependency
    - memset
    - HPK_FreeIter
    - ONLY_H2_SERVER
    - strncmp
    - strlen
    - gethpk_iterLen
    - STRTOU32_CHECK
    - ONLY_H2_CLIENT
    - AZ
    - HPK_NewIter
    - CMD_IS
    - strdup
    linkageType: ''
    returnType: void
    signature: void cmd_tx11obj(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1495
    functionName: AV_IS
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AV_IS(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1495
    functionDepth: 0
    functionLinenumber: 1495
    functionLinenumberEnd: 1496
    functionName: CMD_IS
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_IS(str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1729,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1731,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1734,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1735,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_http2.c:1737,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1738,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1739,1
    - Dst: synth_body
      Src: /src/VTest2/src/vtc_http2.c:1741,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1742,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1743,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1745,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_http2.c:1746,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1747,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1748,1
    - Dst: synth_body
      Src: /src/VTest2/src/vtc_http2.c:1750,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1751,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1757,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_http2.c:1760,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1764,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1765,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http2.c:1766,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1766,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1766,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1767,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1768,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_http2.c:1770,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1770,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1771,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_http2.c:1772,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1772,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1773,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1776,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:1779,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1780,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1781,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1782,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1720
    functionDepth: 3
    functionLinenumber: 1720
    functionLinenumberEnd: 1783
    functionName: cmd_txdata
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - malloc
    - synth_body
    - memcpy
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - free
    - INIT_FRAME
    - strlen
    - write_frame
    - AZ
    - AN
    - strdup
    linkageType: ''
    returnType: void
    signature: void cmd_txdata(CMD_ARGS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1803,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1805,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1808,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1811,1
    - Dst: STRTOU32
      Src: /src/VTest2/src/vtc_http2.c:1818,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1823,1
    - Dst: htonl
      Src: /src/VTest2/src/vtc_http2.c:1825,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:1827,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1795
    functionDepth: 3
    functionLinenumber: 1795
    functionLinenumberEnd: 1828
    functionName: cmd_txrst
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - STRTOU32
    - INIT_FRAME
    - write_frame
    - htonl
    linkageType: ''
    returnType: void
    signature: void cmd_txrst(CMD_ARGS)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1856,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1858,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1862,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1863,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1864,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1866,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1867,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1872,1
    - Dst: exclusive_stream_dependency
      Src: /src/VTest2/src/vtc_http2.c:1877,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:1879,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:1881,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1845
    functionDepth: 3
    functionLinenumber: 1845
    functionLinenumberEnd: 1882
    functionName: cmd_txprio
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - exclusive_stream_dependency
    - vbe32enc
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - INIT_FRAME
    - STRTOU32_CHECK
    - write_frame
    linkageType: ''
    returnType: void
    signature: void cmd_txprio(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1892
    functionName: PUT
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT(val, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - av
    - ','
    - vl
    - ','
    - name
    - ','
    - val
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1893
    functionDepth: 0
    functionLinenumber: 1893
    functionLinenumberEnd: 1898
    functionName: PUT_KV
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_KV(av, vl, name, val, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - av
    - ','
    - vl
    - ','
    - name
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1899
    functionDepth: 0
    functionLinenumber: 1899
    functionLinenumberEnd: 1911
    functionName: PUT_BOOL
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_BOOL(av, vl, name, code)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1964,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1965,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_http2.c:1967,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1968,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:1971,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:1971,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1973,1
    - Dst: PUT_BOOL
      Src: /src/VTest2/src/vtc_http2.c:1974,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1975,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1976,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1977,1
    - Dst: HPK_ResizeTbl
      Src: /src/VTest2/src/vtc_http2.c:1977,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1979,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1980,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1981,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1982,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_http2.c:1983,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1987,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1988,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1989,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1990,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1991,1
    - Dst: PUT_BOOL
      Src: /src/VTest2/src/vtc_http2.c:1992,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1993,1
    - Dst: PUT_BOOL
      Src: /src/VTest2/src/vtc_http2.c:1994,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1995,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1996,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1997,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_http2.c:2000,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2002,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:2003,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:2004,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2006,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2012,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2014,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:2015,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2016,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2016,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (HPK_ResizeTbl(s->hp->decctx, val) != hpk_err)
      pos:
        line_end: 1976
        line_start: 1976
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (u <= 0xffff)
      pos:
        line_end: 2002
        line_start: 2002
        source_file: /src/VTest2/src/vtc_http2.c
    constantsTouched: []
    func_position:
      end: 2017
      start: 1951
    functionDepth: 3
    functionLinenumber: 1951
    functionLinenumberEnd: 2017
    functionName: cmd_txsettings
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - VTAILQ_FOREACH
    - memset
    - assert
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - strtoul
    - strncmp
    - PTOK
    - INIT_FRAME
    - HPK_ResizeTbl
    - pthread_mutex_lock
    - PUT_BOOL
    - write_frame
    - AN
    - PUT_KV
    linkageType: ''
    returnType: void
    signature: void cmd_txsettings(CMD_ARGS)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/VTest2/src/vtc_http2.c:2036,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2037,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:2038,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2041,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2044,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:2045,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2046,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2048,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2054,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:2057,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2029
    functionDepth: 3
    functionLinenumber: 2029
    functionLinenumberEnd: 2058
    functionName: cmd_txping
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - memset
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - INIT_FRAME
    - write_frame
    - strlen
    linkageType: ''
    returnType: void
    signature: void cmd_txping(CMD_ARGS)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2087,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:2089,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2092,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2095,1
    - Dst: STRTOU32
      Src: /src/VTest2/src/vtc_http2.c:2101,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2102,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:2103,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2104,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2107,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:2108,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http2.c:2109,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2110,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_http2.c:2111,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2116,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http2.c:2119,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2120,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:2122,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:2123,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:2124,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:2125,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2078
    functionDepth: 3
    functionLinenumber: 2078
    functionLinenumberEnd: 2126
    functionName: cmd_txgoaway
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - malloc
    - vbe32enc
    - memcpy
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - free
    - STRTOU32
    - INIT_FRAME
    - STRTOU32_CHECK
    - write_frame
    - AN
    - strlen
    linkageType: ''
    returnType: void
    signature: void cmd_txgoaway(CMD_ARGS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2146,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2147,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_http2.c:2148,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2150,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2151,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:2153,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2157,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:2158,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2162,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2164,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:2164,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2168,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2168,1
    - Dst: htonl
      Src: /src/VTest2/src/vtc_http2.c:2170,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:2172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2136
    functionDepth: 3
    functionLinenumber: 2136
    functionLinenumberEnd: 2173
    functionName: cmd_txwinup
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - memset
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - PTOK
    - INIT_FRAME
    - pthread_mutex_lock
    - STRTOU32_CHECK
    - write_frame
    - htonl
    - AN
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void cmd_txwinup(CMD_ARGS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2180,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2182,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:2182,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_http2.c:2183,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:2184,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2187,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_http2.c:2187,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2188,1
    - Dst: pthread_cond_wait
      Src: /src/VTest2/src/vtc_http2.c:2188,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_http2.c:2190,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2191,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2191,1
    - Dst: clean_frame
      Src: /src/VTest2/src/vtc_http2.c:2194,1
    - Dst: VTAILQ_LAST
      Src: /src/VTest2/src/vtc_http2.c:2195,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2196,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_http2.c:2197,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2198,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts:
    - condition: (s->hp->wf >= 0)
      pos:
        line_end: 2183
        line_start: 2183
        source_file: /src/VTest2/src/vtc_http2.c
    constantsTouched: []
    func_position:
      end: 2200
      start: 2175
    functionDepth: 3
    functionLinenumber: 2175
    functionLinenumberEnd: 2200
    functionName: rxstuff
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - assert
    - CHECK_OBJ_NOTNULL
    - VTAILQ_LAST
    - clean_frame
    - PTOK
    - VTAILQ_EMPTY
    - pthread_mutex_lock
    - pthread_cond_signal
    - pthread_cond_wait
    - VTAILQ_REMOVE
    - pthread_mutex_unlock
    linkageType: ''
    returnType: struct frame
    signature: 'struct frame *

      rxstuff(struct stream *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rt
    - ','
    - wt
    - ','
    - rcv
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2202
    functionDepth: 0
    functionLinenumber: 2202
    functionLinenumberEnd: 2211
    functionName: CHKFRAME
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHKFRAME(rt, wt, rcv, func)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2235,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2238,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:2239,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2241,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2243,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2249,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2252,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2252,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2256,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2224
    functionDepth: 4
    functionLinenumber: 2224
    functionLinenumberEnd: 2260
    functionName: cmd_rxhdrs
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - replace_frame
    - CHKFRAME
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - STRTOU32_CHECK
    - rxstuff
    linkageType: ''
    returnType: void
    signature: void cmd_rxhdrs(CMD_ARGS)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2273,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2276,1
    - Dst: STRTOU32
      Src: /src/VTest2/src/vtc_http2.c:2277,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2279,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2281,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2286,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2289,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2289,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2293,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2295,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2262
    functionDepth: 4
    functionLinenumber: 2262
    functionLinenumberEnd: 2296
    functionName: cmd_rxcont
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - replace_frame
    - CHKFRAME
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - STRTOU32
    - rxstuff
    linkageType: ''
    returnType: void
    signature: void cmd_rxcont(CMD_ARGS)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2323,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2326,1
    - Dst: STRTOU32
      Src: /src/VTest2/src/vtc_http2.c:2328,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2330,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2332,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2337,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2340,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2340,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2344,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2346,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2312
    functionDepth: 4
    functionLinenumber: 2312
    functionLinenumberEnd: 2347
    functionName: cmd_rxdata
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - replace_frame
    - CHKFRAME
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - STRTOU32
    - rxstuff
    linkageType: ''
    returnType: void
    signature: void cmd_rxdata(CMD_ARGS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2368,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2370,1
    - Dst: ONLY_H2_SERVER
      Src: /src/VTest2/src/vtc_http2.c:2371,1
    - Dst: ONLY_H2_CLIENT
      Src: /src/VTest2/src/vtc_http2.c:2373,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2376,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2376,1
    - Dst: CHECK_OBJ_ORNULL
      Src: /src/VTest2/src/vtc_http2.c:2377,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2383,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2388,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2388,1
    - Dst: CHECK_OBJ_ORNULL
      Src: /src/VTest2/src/vtc_http2.c:2389,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2393,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2397,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2397,1
    - Dst: CHECK_OBJ_ORNULL
      Src: /src/VTest2/src/vtc_http2.c:2398,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2402,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2360
    functionDepth: 4
    functionLinenumber: 2360
    functionLinenumberEnd: 2406
    functionName: cmd_rxmsg
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - replace_frame
    - CHKFRAME
    - strcmp
    - CAST_OBJ_NOTNULL
    - ONLY_H2_SERVER
    - CHECK_OBJ_ORNULL
    - ONLY_H2_CLIENT
    - rxstuff
    linkageType: ''
    returnType: void
    signature: void cmd_rxmsg(CMD_ARGS)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2431,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2434,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:2435,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2437,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2439,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2445,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2448,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2452,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2420
    functionDepth: 4
    functionLinenumber: 2420
    functionLinenumberEnd: 2456
    functionName: cmd_rxpush
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - CHKFRAME
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - STRTOU32_CHECK
    - rxstuff
    linkageType: ''
    returnType: void
    signature: void cmd_rxpush(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2468,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2469,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2470,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2462
    functionDepth: 4
    functionLinenumber: 2462
    functionLinenumberEnd: 2475
    functionName: cmd_rxwinup
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - CAST_OBJ_NOTNULL
    - rxstuff
    - CHKFRAME
    linkageType: ''
    returnType: void
    signature: void cmd_rxwinup(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2489,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2490,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2491,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2492,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2493,1
    - Dst: isnan
      Src: /src/VTest2/src/vtc_http2.c:2494,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_http2.c:2496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2481
    functionDepth: 4
    functionLinenumber: 2481
    functionLinenumberEnd: 2500
    functionName: cmd_rxsettings
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH
    - isnan
    - CHKFRAME
    - CAST_OBJ_NOTNULL
    - rxstuff
    linkageType: ''
    returnType: void
    signature: void cmd_rxsettings(CMD_ARGS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2510,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:2512,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2515,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2505
    functionDepth: 4
    functionLinenumber: 2505
    functionLinenumberEnd: 2523
    functionName: cmd_rxprio
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - rxstuff
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - vtc_log
    linkageType: ''
    returnType: void
    signature: void cmd_rxprio (CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lctype
    - ','
    - upctype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2525
    functionDepth: 0
    functionLinenumber: 2525
    functionLinenumberEnd: 2541
    functionName: RXFUNC
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RXFUNC(lctype, upctype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2571,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2572,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2574
      start: 2564
    functionDepth: 4
    functionLinenumber: 2564
    functionLinenumberEnd: 2574
    functionName: cmd_rxframe
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - rxstuff
    linkageType: ''
    returnType: void
    signature: void cmd_rxframe(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2586,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2588,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2590,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2590,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2593,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2594,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2595,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2596,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2597,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:2597,1
    - Dst: cmd_var_resolve
      Src: /src/VTest2/src/vtc_http2.c:2598,1
    - Dst: cmd_var_resolve
      Src: /src/VTest2/src/vtc_http2.c:2600,1
    - Dst: vtc_expect
      Src: /src/VTest2/src/vtc_http2.c:2601,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2602,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2576
    functionDepth: 2
    functionLinenumber: 2576
    functionLinenumberEnd: 2603
    functionName: cmd_expect
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - strcmp
    - CAST_OBJ_NOTNULL
    - vtc_expect
    - PTOK
    - cmd_var_resolve
    - pthread_mutex_lock
    - AZ
    - AN
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void cmd_expect(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2618,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2620,1
    - Dst: vtc_gunzip
      Src: /src/VTest2/src/vtc_http2.c:2622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2609
    functionDepth: 1
    functionLinenumber: 2609
    functionLinenumberEnd: 2623
    functionName: cmd_gunzip
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_gunzip
    - CAST_OBJ_NOTNULL
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void cmd_gunzip(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2636,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2637,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2638,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2639,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2640,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2640,1
    - Dst: VFIL_writefile
      Src: /src/VTest2/src/vtc_http2.c:2641,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2642,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http2.c:2643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2644
      start: 2630
    functionDepth: 1
    functionLinenumber: 2630
    functionLinenumberEnd: 2644
    functionName: cmd_write_body
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - VFIL_writefile
    - strerror
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_write_body(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2691,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_http2.c:2692,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:2693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2695
      start: 2686
    functionDepth: 4
    functionLinenumber: 2686
    functionLinenumberEnd: 2695
    functionName: stream_thread
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - parse_string
    - CAST_OBJ_NOTNULL
    - vtc_log
    linkageType: ''
    returnType: void
    signature: 'void *

      stream_thread(void *priv)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2706,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_http2.c:2708,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_http2.c:2710,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_http2.c:2714,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2715,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2716,1
    - Dst: pthread_cond_init
      Src: /src/VTest2/src/vtc_http2.c:2716,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_http2.c:2717,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2718,1
    - Dst: VTAILQ_INIT
      Src: /src/VTest2/src/vtc_http2.c:2719,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_http2.c:2722,1
    - Dst: vtc_log_set_cmd
      Src: /src/VTest2/src/vtc_http2.c:2723,1
    - Dst: STRTOU32
      Src: /src/VTest2/src/vtc_http2.c:2728,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2730,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2733,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2738,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:2738,1
    - Dst: VTAILQ_INSERT_HEAD
      Src: /src/VTest2/src/vtc_http2.c:2739,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2740,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - name
    - h
    argTypes:
    - char*
    - struct http*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2700
    functionDepth: 1
    functionLinenumber: 2700
    functionLinenumberEnd: 2742
    functionName: stream_new
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - VTAILQ_INIT
    - ALLOC_OBJ
    - CHECK_OBJ_NOTNULL
    - vtc_log_set_cmd
    - vtc_fatal
    - strcmp
    - REPLACE
    - STRTOU32
    - pthread_cond_init
    - PTOK
    - VTAILQ_INSERT_HEAD
    - bprintf
    - pthread_mutex_lock
    - AN
    - pthread_mutex_unlock
    - vtc_logopen
    linkageType: ''
    returnType: struct stream
    signature: 'struct stream *

      stream_new(const char *name, struct http *h)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2753,1
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_http2.c:2755,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_http2.c:2756,1
    - Dst: clean_frame
      Src: /src/VTest2/src/vtc_http2.c:2757,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_http2.c:2759,1
    - Dst: clean_headers
      Src: /src/VTest2/src/vtc_http2.c:2760,1
    - Dst: clean_headers
      Src: /src/VTest2/src/vtc_http2.c:2761,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2762,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:2763,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:2764,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:2765,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_http2.c:2766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2748
    functionDepth: 3
    functionLinenumber: 2748
    functionLinenumberEnd: 2767
    functionName: stream_delete
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - clean_headers
    - AZ
    - CHECK_OBJ_NOTNULL
    - FREE_OBJ
    - clean_frame
    - free
    - vtc_logclose
    - VTAILQ_FOREACH_SAFE
    - VTAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void stream_delete(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2776,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:2777,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2778,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_http2.c:2778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2773
    functionDepth: 1
    functionLinenumber: 2773
    functionLinenumberEnd: 2780
    functionName: stream_start
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - PTOK
    - vtc_log
    - pthread_create
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void stream_start(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2791,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:2792,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2793,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_http2.c:2793,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2795,1
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_http2.c:2798,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_http2.c:2799,1
    - Dst: clean_frame
      Src: /src/VTest2/src/vtc_http2.c:2800,1
    - Dst: clean_frame
      Src: /src/VTest2/src/vtc_http2.c:2802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2785
    functionDepth: 3
    functionLinenumber: 2785
    functionLinenumberEnd: 2805
    functionName: stream_wait
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - VTAILQ_FOREACH_SAFE
    - vtc_fatal
    - clean_frame
    - PTOK
    - pthread_join
    - VTAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void stream_wait(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream_start
      Src: /src/VTest2/src/vtc_http2.c:2814,1
    - Dst: stream_wait
      Src: /src/VTest2/src/vtc_http2.c:2815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2816
      start: 2811
    functionDepth: 4
    functionLinenumber: 2811
    functionLinenumberEnd: 2816
    functionName: stream_run
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - stream_start
    - stream_wait
    linkageType: ''
    returnType: void
    signature: void stream_run(struct stream *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2877,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2879,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2879,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_http2.c:2882,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2883,1
    - Dst: stream_new
      Src: /src/VTest2/src/vtc_http2.c:2886,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2893,1
    - Dst: stream_wait
      Src: /src/VTest2/src/vtc_http2.c:2894,1
    - Dst: stream_wait
      Src: /src/VTest2/src/vtc_http2.c:2900,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2902,1
    - Dst: stream_start
      Src: /src/VTest2/src/vtc_http2.c:2903,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2906,1
    - Dst: stream_run
      Src: /src/VTest2/src/vtc_http2.c:2907,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2911,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_http2.c:2912,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2870
    functionDepth: 5
    functionLinenumber: 2870
    functionLinenumberEnd: 2914
    functionName: cmd_stream
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - stream_wait
    - VTAILQ_FOREACH
    - stream_run
    - stream_new
    - stream_start
    - strcmp
    - CAST_OBJ_NOTNULL
    - vtc_fatal
    - REPLACE
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_stream(CMD_ARGS)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2938,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2957,1
    - Dst: HPK_ResizeTbl
      Src: /src/VTest2/src/vtc_http2.c:2958,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2960,1
    - Dst: HPK_ResizeTbl
      Src: /src/VTest2/src/vtc_http2.c:2961,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2964,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:2967,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - hp
    - s
    argTypes:
    - struct http*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2970
      start: 2916
    functionDepth: 1
    functionLinenumber: 2916
    functionLinenumberEnd: 2970
    functionName: b64_settings
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_fatal
    - vtc_log
    - AN
    - HPK_ResizeTbl
    linkageType: ''
    returnType: void
    signature: void b64_settings(struct http *hp, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2975,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2976,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc_http2.c:2976,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2977,1
    - Dst: pthread_cond_init
      Src: /src/VTest2/src/vtc_http2.c:2977,1
    - Dst: VTAILQ_INIT
      Src: /src/VTest2/src/vtc_http2.c:2978,1
    - Dst: HPK_NewCtx
      Src: /src/VTest2/src/vtc_http2.c:2985,1
    - Dst: HPK_NewCtx
      Src: /src/VTest2/src/vtc_http2.c:2986,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2987,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_http2.c:2987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - hp
    argTypes:
    - struct http*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2988
      start: 2972
    functionDepth: 1
    functionLinenumber: 2972
    functionLinenumberEnd: 2988
    functionName: start_h2
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - CHECK_OBJ_NOTNULL
    - pthread_mutex_init
    - pthread_cond_init
    - PTOK
    - HPK_NewCtx
    - VTAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void start_h2(struct http *hp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2995,1
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_http2.c:2996,1
    - Dst: stream_wait
      Src: /src/VTest2/src/vtc_http2.c:2998,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2999,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:2999,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_http2.c:3000,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:3001,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:3001,1
    - Dst: stream_delete
      Src: /src/VTest2/src/vtc_http2.c:3002,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:3005,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:3005,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:3007,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_http2.c:3007,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:3008,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:3008,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:3009,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_http2.c:3009,1
    - Dst: HPK_FreeCtx
      Src: /src/VTest2/src/vtc_http2.c:3011,1
    - Dst: HPK_FreeCtx
      Src: /src/VTest2/src/vtc_http2.c:3012,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:3014,1
    - Dst: pthread_mutex_destroy
      Src: /src/VTest2/src/vtc_http2.c:3014,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:3015,1
    - Dst: pthread_cond_destroy
      Src: /src/VTest2/src/vtc_http2.c:3015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - hp
    argTypes:
    - struct http*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3016
      start: 2990
    functionDepth: 4
    functionLinenumber: 2990
    functionLinenumberEnd: 3016
    functionName: stop_h2
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - stream_delete
    - CHECK_OBJ_NOTNULL
    - VTAILQ_FOREACH_SAFE
    - pthread_join
    - PTOK
    - HPK_FreeCtx
    - pthread_cond_destroy
    - pthread_mutex_lock
    - pthread_cond_signal
    - stream_wait
    - VTAILQ_REMOVE
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void stop_h2(struct http *hp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/src/vtc_misc.c:80,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:80,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:82,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_misc.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: cmd_vtest
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - AZ
    - strcmp
    - vtc_log
    linkageType: ''
    returnType: void
    signature: void cmd_vtest(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/src/vtc_misc.c:101,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:101,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:103,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_misc.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: cmd_varnishtest
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - AZ
    - strcmp
    - vtc_log
    linkageType: ''
    returnType: void
    signature: void cmd_varnishtest(CMD_ARGS)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_misc.c:157,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_misc.c:158,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_misc.c:159,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_misc.c:160,1
    - Dst: VRE_compile
      Src: /src/VTest2/src/vtc_misc.c:162,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_misc.c:164,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_misc.c:164,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_misc.c:165,1
    - Dst: VRE_error
      Src: /src/VTest2/src/vtc_misc.c:165,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_misc.c:166,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_misc.c:166,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_misc.c:167,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:168,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_misc.c:173,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_misc.c:174,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_misc.c:175,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_misc.c:175,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_misc.c:176,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_misc.c:176,1
    - Dst: popen
      Src: /src/VTest2/src/vtc_misc.c:177,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_misc.c:177,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:179,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_misc.c:179,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_misc.c:180,1
    - Dst: getc
      Src: /src/VTest2/src/vtc_misc.c:182,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_misc.c:184,1
    - Dst: pclose
      Src: /src/VTest2/src/vtc_misc.c:186,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_misc.c:187,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_misc.c:187,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_misc.c:188,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_misc.c:188,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_misc.c:188,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:189,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_misc.c:189,1
    - Dst: WIFSIGNALED
      Src: /src/VTest2/src/vtc_misc.c:190,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:191,1
    - Dst: WTERMSIG
      Src: /src/VTest2/src/vtc_misc.c:191,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_misc.c:193,1
    - Dst: WIFSIGNALED
      Src: /src/VTest2/src/vtc_misc.c:193,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:194,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_misc.c:195,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:196,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_misc.c:197,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc_misc.c:200,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_misc.c:200,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:201,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:204,1
    - Dst: VRE_match
      Src: /src/VTest2/src/vtc_misc.c:206,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_misc.c:206,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_misc.c:206,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:207,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:209,1
    - Dst: VRE_free
      Src: /src/VTest2/src/vtc_misc.c:210,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_misc.c:212,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 5
    argNames:
    - vl
    - ok
    - cmd
    - expect
    - re
    argTypes:
    - struct vtclog*
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 213
    functionName: cmd_shell_engine
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - vtc_log
    - VRE_free
    - VSB_fini
    - VSB_init
    - AN
    - strerror
    - vtc_fatal
    - VSB_destroy
    - VSB_new_auto
    - WTERMSIG
    - strstr
    - popen
    - VRE_error
    - VRE_match
    - WIFSIGNALED
    - VSB_len
    - VSB_clear
    - VSB_finish
    - getc
    - VSB_putc
    - pclose
    - VRE_compile
    - vtc_dump
    - WEXITSTATUS
    - VSB_printf
    - AZ
    linkageType: ''
    returnType: void
    signature: "void cmd_shell_engine(struct vtclog *vl, int ok, const char *cmd,\n
      \   const char *expect, const char *re)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:229,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:231,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_misc.c:233,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:234,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:236,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:240,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:242,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_misc.c:250,1
    - Dst: cmd_shell_engine
      Src: /src/VTest2/src/vtc_misc.c:251,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 252
    functionName: cmd_shell
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - vtc_fatal
    - strcmp
    - cmd_shell_engine
    - atoi
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_shell(CMD_ARGS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:275,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:280,1
    - Dst: fopen
      Src: /src/VTest2/src/vtc_misc.c:281,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:283,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_misc.c:283,1
    - Dst: fputs
      Src: /src/VTest2/src/vtc_misc.c:285,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_misc.c:286,1
    - Dst: fclose
      Src: /src/VTest2/src/vtc_misc.c:286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 287
    functionName: cmd_filewrite
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - fputs
    - fclose
    - strerror
    - vtc_fatal
    - strcmp
    - fopen
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_filewrite(CMD_ARGS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_misc.c:313,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_misc.c:314,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:317,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_misc.c:320,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:323,1
    - Dst: setenv
      Src: /src/VTest2/src/vtc_misc.c:324,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:326,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_misc.c:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 328
    functionName: cmd_setenv
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strerror
    - setenv
    - vtc_fatal
    - strcmp
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_setenv(CMD_ARGS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_misc.c:345,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_misc.c:346,1
    - Dst: VNUM
      Src: /src/VTest2/src/vtc_misc.c:347,1
    - Dst: isnan
      Src: /src/VTest2/src/vtc_misc.c:348,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:349,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:350,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_misc.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 352
    functionName: cmd_delay
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - isnan
    - vtc_log
    - vtc_fatal
    - VNUM
    - VTIM_sleep
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_delay(CMD_ARGS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:374,1
    - Dst: VFIL_readfile
      Src: /src/VTest2/src/vtc_misc.c:377,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:379,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_misc.c:380,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:381,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_misc.c:382,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:383,1
    - Dst: free
      Src: /src/VTest2/src/vtc_misc.c:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 386
    functionName: cmd_include
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - parse_string
    - VFIL_readfile
    - vtc_log
    - strerror
    - vtc_fatal
    - free
    linkageType: ''
    returnType: void
    signature: void cmd_include(CMD_ARGS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VSS_ResolveOne
      Src: /src/VTest2/src/vtc_misc.c:400,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_misc.c:404,1
    - Dst: VSA_free
      Src: /src/VTest2/src/vtc_misc.c:405,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:406,1
    - Dst: VSS_ResolveOne
      Src: /src/VTest2/src/vtc_misc.c:409,1
    - Dst: VSA_free
      Src: /src/VTest2/src/vtc_misc.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 415
    functionName: dns_works
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - VSA_free
    - VTCP_name
    - strcmp
    - VSS_ResolveOne
    linkageType: ''
    returnType: int
    signature: int dns_works(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VSS_ResolveOne
      Src: /src/VTest2/src/vtc_misc.c:427,1
    - Dst: VTCP_bind
      Src: /src/VTest2/src/vtc_misc.c:430,1
    - Dst: VSA_free
      Src: /src/VTest2/src/vtc_misc.c:431,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_misc.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - target
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 437
    functionName: ipvx_works
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - VSA_free
    - VTCP_close
    - VSS_ResolveOne
    - VTCP_bind
    linkageType: ''
    returnType: int
    signature: int ipvx_works(const char *target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: personality
      Src: /src/VTest2/src/vtc_misc.c:447,1
    - Dst: personality
      Src: /src/VTest2/src/vtc_misc.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 451
    functionName: addr_no_randomize_works
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - personality
    linkageType: ''
    returnType: int
    signature: int addr_no_randomize_works(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VUS_bind
      Src: /src/VTest2/src/vtc_misc.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - priv
    - uds
    argTypes:
    - void*
    - struct sockaddr_un*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: uds_socket
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - VUS_bind
    linkageType: ''
    returnType: int
    signature: int uds_socket(void *priv, const struct sockaddr_un *uds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VUS_resolver
      Src: /src/VTest2/src/vtc_misc.c:467,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_misc.c:470,1
    - Dst: close
      Src: /src/VTest2/src/vtc_misc.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 472
    functionName: abstract_uds_works
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - close
    - AZ
    - VUS_resolver
    linkageType: ''
    returnType: int
    signature: int abstract_uds_works(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:625,1
    - Dst: ipvx_works
      Src: /src/VTest2/src/vtc_misc.c:625,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:626,1
    - Dst: ipvx_works
      Src: /src/VTest2/src/vtc_misc.c:626,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:627,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:628,1
    - Dst: addr_no_randomize_works
      Src: /src/VTest2/src/vtc_misc.c:628,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:629,1
    - Dst: dns_works
      Src: /src/VTest2/src/vtc_misc.c:629,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:630,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:631,1
    - Dst: geteuid
      Src: /src/VTest2/src/vtc_misc.c:631,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:632,1
    - Dst: getpwnam
      Src: /src/VTest2/src/vtc_misc.c:632,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:633,1
    - Dst: getpwnam
      Src: /src/VTest2/src/vtc_misc.c:633,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:634,1
    - Dst: getpwnam
      Src: /src/VTest2/src/vtc_misc.c:634,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:635,1
    - Dst: getgrnam
      Src: /src/VTest2/src/vtc_misc.c:635,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:636,1
    - Dst: getgrnam
      Src: /src/VTest2/src/vtc_misc.c:636,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:637,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:638,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:639,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:640,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:641,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:642,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:643,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:644,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:645,1
    - Dst: abstract_uds_works
      Src: /src/VTest2/src/vtc_misc.c:645,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:647,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:650,1
    - Dst: getpwnam
      Src: /src/VTest2/src/vtc_misc.c:652,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:656,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:659,1
    - Dst: getgrnam
      Src: /src/VTest2/src/vtc_misc.c:661,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:665,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:670,1
    - Dst: system
      Src: /src/VTest2/src/vtc_misc.c:671,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_misc.c:672,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:674,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:677,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:682,1
    - Dst: find_cmd
      Src: /src/VTest2/src/vtc_misc.c:683,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:687,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:694,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:697,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 701
    functionName: cmd_feature
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - addr_no_randomize_works
    - vtc_log
    - find_cmd
    - vtc_fatal
    - dns_works
    - strcmp
    - WEXITSTATUS
    - geteuid
    - abstract_uds_works
    - getgrnam
    - FEATURE
    - ipvx_works
    - getpwnam
    - system
    linkageType: ''
    returnType: void
    signature: void cmd_feature(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nm
    - ','
    - tst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 612
    functionName: FEATURE
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FEATURE(nm, tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: CMD_GLOBAL
    functionSourceFile: /src/VTest2/src/vtc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_GLOBAL(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: CMD_TOP
    functionSourceFile: /src/VTest2/src/vtc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_TOP(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: teken_scs_process
    functionSourceFile: /src/VTest2/src/teken_scs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: teken_char_t
    signature: teken_char_t teken_scs_process(const teken_t *t, teken_char_t c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: teken_scs_special_graphics
    functionSourceFile: /src/VTest2/src/teken_scs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: teken_char_t
    signature: teken_char_t teken_scs_special_graphics(const teken_t *t, teken_char_t
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: teken_scs_uk_national
    functionSourceFile: /src/VTest2/src/teken_scs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: teken_char_t
    signature: teken_char_t teken_scs_uk_national(const teken_t *t, teken_char_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: teken_scs_us_ascii
    functionSourceFile: /src/VTest2/src/teken_scs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: teken_char_t
    signature: teken_char_t teken_scs_us_ascii(const teken_t *t, teken_char_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_vsm.c:62,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_vsm.c:63,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_vsm.c:64,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_vsm.c:65,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_vsm.c:66,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_vsm.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: vsm_new
    functionSourceFile: /src/VTest2/src/vtc_vsm.c
    functionUses: 0
    functionsReached:
    - ALLOC_OBJ
    - REPLACE
    - VTAILQ_INSERT_TAIL
    - AN
    - vtc_logopen
    linkageType: ''
    returnType: struct vtc_vsm
    signature: 'struct vtc_vsm *

      vsm_new(const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_vsm.c:76,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_vsm.c:78,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_vsm.c:79,1
    - Dst: VSM_Destroy
      Src: /src/VTest2/src/vtc_vsm.c:80,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_vsm.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct vtc_vsm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: vsm_detach
    functionSourceFile: /src/VTest2/src/vtc_vsm.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - VSM_Destroy
    - AZ
    linkageType: ''
    returnType: void
    signature: void vsm_detach(struct vtc_vsm *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_vsm.c:89,1
    - Dst: vsm_detach
      Src: /src/VTest2/src/vtc_vsm.c:91,1
    - Dst: macro_expandf
      Src: /src/VTest2/src/vtc_vsm.c:93,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_vsm.c:95,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_vsm.c:96,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_vsm.c:96,1
    - Dst: VSM_New
      Src: /src/VTest2/src/vtc_vsm.c:98,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_vsm.c:99,1
    - Dst: VSM_Arg
      Src: /src/VTest2/src/vtc_vsm.c:101,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_vsm.c:101,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_vsm.c:102,1
    - Dst: VSM_Error
      Src: /src/VTest2/src/vtc_vsm.c:102,1
    - Dst: VSM_Attach
      Src: /src/VTest2/src/vtc_vsm.c:103,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_vsm.c:104,1
    - Dst: VSM_Error
      Src: /src/VTest2/src/vtc_vsm.c:104,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_vsm.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct vtc_vsm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 107
    functionName: vsm_attach
    functionSourceFile: /src/VTest2/src/vtc_vsm.c
    functionUses: 0
    functionsReached:
    - vsm_detach
    - VSB_data
    - VSM_Error
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - VSB_destroy
    - VSM_New
    - VSM_Attach
    - macro_expandf
    - AN
    - VSM_Arg
    linkageType: ''
    returnType: void
    signature: void vsm_attach(struct vtc_vsm *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_vsm.c:113,1
    - Dst: vsm_detach
      Src: /src/VTest2/src/vtc_vsm.c:115,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_vsm.c:116,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_vsm.c:117,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_vsm.c:118,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_vsm.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct vtc_vsm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: vsm_delete
    functionSourceFile: /src/VTest2/src/vtc_vsm.c
    functionUses: 0
    functionsReached:
    - vsm_detach
    - CHECK_OBJ_NOTNULL
    - FREE_OBJ
    - REPLACE
    - vtc_logclose
    linkageType: ''
    returnType: void
    signature: void vsm_delete(struct vtc_vsm *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: STATUS_BITS
    functionSourceFile: /src/VTest2/src/vtc_vsm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATUS_BITS()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_vsm.c:139,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_vsm.c:141,1
    - Dst: vsm_attach
      Src: /src/VTest2/src/vtc_vsm.c:144,1
    - Dst: VAV_Parse
      Src: /src/VTest2/src/vtc_vsm.c:146,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_vsm.c:147,1
    - Dst: STATUS_BITS
      Src: /src/VTest2/src/vtc_vsm.c:156,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_vsm.c:158,1
    - Dst: VAV_Free
      Src: /src/VTest2/src/vtc_vsm.c:160,1
    - Dst: VSM_Status
      Src: /src/VTest2/src/vtc_vsm.c:163,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_vsm.c:164,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_vsm.c:165,1
    - Dst: STATUS_BITS
      Src: /src/VTest2/src/vtc_vsm.c:174,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_vsm.c:178,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_vsm.c:183,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_vsm.c:183,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_vsm.c:184,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_vsm.c:185,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_vsm.c:188,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_vsm.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - m
    - exp
    argTypes:
    - struct vtc_vsm*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 190
    functionName: vsm_expect_status
    functionSourceFile: /src/VTest2/src/vtc_vsm.c
    functionUses: 0
    functionsReached:
    - VAV_Parse
    - VSB_data
    - CHECK_OBJ_NOTNULL
    - vtc_log
    - vsm_attach
    - vtc_fatal
    - VSB_finish
    - VSB_destroy
    - STATUS_BITS
    - VSB_new_auto
    - VAV_Free
    - AZ
    - AN
    - VSM_Status
    linkageType: ''
    returnType: void
    signature: void vsm_expect_status(struct vtc_vsm *m, const char *exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: STATUS_BIT
    functionSourceFile: /src/VTest2/src/vtc_vsm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATUS_BIT(b, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: STATUS_BIT
    functionSourceFile: /src/VTest2/src/vtc_vsm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATUS_BIT(b, s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_vsm.c:244,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_vsm.c:245,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_vsm.c:246,1
    - Dst: vsm_delete
      Src: /src/VTest2/src/vtc_vsm.c:247,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_vsm.c:252,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_vsm.c:252,1
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_vsm.c:255,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_vsm.c:256,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_vsm.c:257,1
    - Dst: vsm_new
      Src: /src/VTest2/src/vtc_vsm.c:262,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_vsm.c:263,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_vsm.c:270,1
    - Dst: vsm_attach
      Src: /src/VTest2/src/vtc_vsm.c:271,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_vsm.c:274,1
    - Dst: vsm_detach
      Src: /src/VTest2/src/vtc_vsm.c:275,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_vsm.c:278,1
    - Dst: vsm_expect_status
      Src: /src/VTest2/src/vtc_vsm.c:279,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_vsm.c:283,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_vsm.c:285,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_vsm.c:286,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_vsm.c:290,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 292
    functionName: cmd_vsm
    functionSourceFile: /src/VTest2/src/vtc_vsm.c
    functionUses: 0
    functionsReached:
    - vsm_detach
    - VTAILQ_FOREACH
    - CHECK_OBJ_NOTNULL
    - VTAILQ_FOREACH_SAFE
    - vsm_attach
    - vsm_expect_status
    - strcmp
    - vtc_fatal
    - vsm_delete
    - REPLACE
    - vsm_new
    - AN
    - AZ
    - VTAILQ_REMOVE
    - VTC_CHECK_NAME
    linkageType: ''
    returnType: void
    signature: void cmd_vsm(CMD_ARGS)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ucs
    - table
    - max
    argTypes:
    - teken_char_t
    - struct interval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: bisearch
    functionSourceFile: /src/VTest2/src/teken_wcwidth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bisearch(teken_char_t ucs, const struct interval *table, int max)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bisearch
      Src: /src/VTest2/src/teken_wcwidth.h:105,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 8
    argCount: 1
    argNames:
    - ucs
    argTypes:
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 126
    functionName: teken_wcwidth
    functionSourceFile: /src/VTest2/src/teken_wcwidth.h
    functionUses: 1
    functionsReached:
    - bisearch
    linkageType: ''
    returnType: int
    signature: int teken_wcwidth(teken_char_t ucs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clz
      Src: /src/VTest2/src/teken_wcwidth.h:154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - bytes
    - nbytes
    argTypes:
    - uint8_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 180
    functionName: teken_utf8_bytes_to_codepoint
    functionSourceFile: /src/VTest2/src/teken_wcwidth.h
    functionUses: 0
    functionsReached:
    - __builtin_clz
    linkageType: ''
    returnType: teken_char_t
    signature: teken_char_t teken_utf8_bytes_to_codepoint(uint8_t bytes[4], int nbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:240,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_logexp.c:241,1
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/src/vtc_logexp.c:242,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:243,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_logexp.c:244,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_logexp.c:245,1
    - Dst: VRE_free
      Src: /src/VTest2/src/vtc_logexp.c:247,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_logexp.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - le
    argTypes:
    - struct logexp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: logexp_delete_tests
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - VRE_free
    - FREE_OBJ
    - VTAILQ_FIRST
    - VSB_destroy
    - VTAILQ_EMPTY
    - VTAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void logexp_delete_tests(struct logexp *le)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:255,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:256,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:257,1
    - Dst: VSL_Delete
      Src: /src/VTest2/src/vtc_logexp.c:258,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:259,1
    - Dst: logexp_delete_tests
      Src: /src/VTest2/src/vtc_logexp.c:260,1
    - Dst: free
      Src: /src/VTest2/src/vtc_logexp.c:261,1
    - Dst: free
      Src: /src/VTest2/src/vtc_logexp.c:262,1
    - Dst: free
      Src: /src/VTest2/src/vtc_logexp.c:263,1
    - Dst: VSM_Destroy
      Src: /src/VTest2/src/vtc_logexp.c:264,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_logexp.c:265,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_logexp.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - le
    argTypes:
    - struct logexp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 267
    functionName: logexp_delete
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - logexp_delete_tests
    - VSM_Destroy
    - FREE_OBJ
    - free
    - VSL_Delete
    - vtc_logclose
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void logexp_delete(struct logexp *le)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_logexp.c:275,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:276,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_logexp.c:277,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_logexp.c:278,1
    - Dst: vtc_log_set_cmd
      Src: /src/VTest2/src/vtc_logexp.c:279,1
    - Dst: VTAILQ_INIT
      Src: /src/VTest2/src/vtc_logexp.c:280,1
    - Dst: VSM_New
      Src: /src/VTest2/src/vtc_logexp.c:284,1
    - Dst: VSL_New
      Src: /src/VTest2/src/vtc_logexp.c:285,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:286,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:287,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_logexp.c:289,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_logexp.c:291,1
    - Dst: macro_expandf
      Src: /src/VTest2/src/vtc_logexp.c:293,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:295,1
    - Dst: VSM_Arg
      Src: /src/VTest2/src/vtc_logexp.c:296,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_logexp.c:296,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:297,1
    - Dst: VSM_Error
      Src: /src/VTest2/src/vtc_logexp.c:298,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_logexp.c:299,1
    - Dst: VSM_Attach
      Src: /src/VTest2/src/vtc_logexp.c:300,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:301,1
    - Dst: VSM_Error
      Src: /src/VTest2/src/vtc_logexp.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - name
    - varg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 303
    functionName: logexp_new
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - VSM_Error
    - VTAILQ_INIT
    - ALLOC_OBJ
    - vtc_log_set_cmd
    - vtc_fatal
    - REPLACE
    - VTAILQ_INSERT_TAIL
    - VSM_New
    - VSL_New
    - VSB_destroy
    - VSM_Attach
    - macro_expandf
    - AN
    - VSM_Arg
    - vtc_logopen
    linkageType: ''
    returnType: struct logexp
    signature: 'struct logexp *

      logexp_new(const char *name, const char *varg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_logexp.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct tests_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: logexp_clean
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void logexp_clean(const struct tests_head *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_logexp.c:318,1
    - Dst: VTAILQ_NEXT
      Src: /src/VTest2/src/vtc_logexp.c:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - test
    argTypes:
    - struct logexp_test*
    assertStmts:
    - condition: (test->skip_max == LE_ALT)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/VTest2/src/vtc_logexp.c
    constantsTouched: []
    func_position:
      end: 328
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 328
    functionName: logexp_alt
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - VTAILQ_NEXT
    - assert
    linkageType: ''
    returnType: struct logexp_test
    signature: 'struct logexp_test *

      logexp_alt(struct logexp_test *test)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:333,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:342,1
    - Dst: VTAILQ_NEXT
      Src: /src/VTest2/src/vtc_logexp.c:343,1
    - Dst: logexp_clean
      Src: /src/VTest2/src/vtc_logexp.c:345,1
    - Dst: VTAILQ_INIT
      Src: /src/VTest2/src/vtc_logexp.c:346,1
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/src/vtc_logexp.c:347,1
    - Dst: CHECK_OBJ
      Src: /src/VTest2/src/vtc_logexp.c:353,1
    - Dst: logexp_next
      Src: /src/VTest2/src/vtc_logexp.c:357,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_logexp.c:360,1
    - Dst: VTAILQ_INIT
      Src: /src/VTest2/src/vtc_logexp.c:361,1
    - Dst: logexp_next
      Src: /src/VTest2/src/vtc_logexp.c:362,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_logexp.c:365,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_logexp.c:365,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_logexp.c:366,1
    - Dst: logexp_next
      Src: /src/VTest2/src/vtc_logexp.c:367,1
    - Dst: abort
      Src: /src/VTest2/src/vtc_logexp.c:370,1
    - Dst: NEEDLESS
      Src: /src/VTest2/src/vtc_logexp.c:371,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_logexp.c:373,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_logexp.c:373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - le
    argTypes:
    - struct logexp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 375
    functionName: logexp_next
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 1
    functionsReached:
    - VSB_data
    - CHECK_OBJ_NOTNULL
    - vtc_log
    - VTAILQ_NEXT
    - VTAILQ_FIRST
    - logexp_clean
    - logexp_next
    - abort
    - VTAILQ_INSERT_TAIL
    - NEEDLESS
    - CHECK_OBJ
    - VTAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void logexp_next(struct logexp *le)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:390,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:391,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_logexp.c:392,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_logexp.c:393,1
    - Dst: VRE_match
      Src: /src/VTest2/src/vtc_logexp.c:414,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_logexp.c:449,1
    - Dst: logexp_alt
      Src: /src/VTest2/src/vtc_logexp.c:459,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_logexp.c:462,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_logexp.c:462,1
    - Dst: logexp_match
      Src: /src/VTest2/src/vtc_logexp.c:463,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 69
    argCount: 7
    argNames:
    - le
    - test
    - data
    - vxid
    - tag
    - type
    - len
    argTypes:
    - struct logexp*
    - struct logexp_test*
    - char*
    - int64_t
    - int
    - int
    - int
    assertStmts:
    - condition: (test->skip_max != LE_SEEN)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/VTest2/src/vtc_logexp.c
    - condition: (test->skip_max != LE_CLEAR)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/VTest2/src/vtc_logexp.c
    constantsTouched: []
    func_position:
      end: 468
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 468
    functionName: logexp_match
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 1
    functionsReached:
    - VSB_data
    - assert
    - vtc_log
    - logexp_match
    - logexp_alt
    - AN
    - VRE_match
    linkageType: ''
    returnType: enum le_match_e
    signature: "enum le_match_e logexp_match(const struct logexp *le, struct logexp_test
      *test,\n    const char *data, int64_t vxid, int tag, int type, int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/src/vtc_logexp.c:477,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_logexp.c:480,1
    - Dst: logexp_match
      Src: /src/VTest2/src/vtc_logexp.c:481,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_logexp.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - le
    - data
    - vxid
    - tag
    - type
    - len
    argTypes:
    - struct logexp*
    - char*
    - int64_t
    - int
    - int
    - int
    assertStmts:
    - condition: (r == LEM_FAIL)
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/VTest2/src/vtc_logexp.c
    constantsTouched: []
    func_position:
      end: 487
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 487
    functionName: logexp_failchk
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - logexp_match
    - VTAILQ_FOREACH
    - VTAILQ_FIRST
    - assert
    linkageType: ''
    returnType: enum le_match_e
    signature: "enum le_match_e logexp_failchk(const struct logexp *le,\n    const
      char *data, int64_t vxid, int tag, int type, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/src/vtc_logexp.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - le
    argTypes:
    - struct logexp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: logexp_done
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FIRST
    linkageType: ''
    returnType: int
    signature: int logexp_done(const struct logexp *le)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:507,1
    - Dst: VSL_Next
      Src: /src/VTest2/src/vtc_logexp.c:510,1
    - Dst: VSL_Match
      Src: /src/VTest2/src/vtc_logexp.c:511,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:514,1
    - Dst: VSL_TAG
      Src: /src/VTest2/src/vtc_logexp.c:515,1
    - Dst: VSL_ID
      Src: /src/VTest2/src/vtc_logexp.c:520,1
    - Dst: VSL_CDATA
      Src: /src/VTest2/src/vtc_logexp.c:521,1
    - Dst: VSL_LEN
      Src: /src/VTest2/src/vtc_logexp.c:522,1
    - Dst: VSL_CLIENT
      Src: /src/VTest2/src/vtc_logexp.c:523,1
    - Dst: VSL_BACKEND
      Src: /src/VTest2/src/vtc_logexp.c:524,1
    - Dst: logexp_failchk
      Src: /src/VTest2/src/vtc_logexp.c:526,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_logexp.c:530,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:534,1
    - Dst: logexp_match
      Src: /src/VTest2/src/vtc_logexp.c:536,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_logexp.c:544,1
    - Dst: logexp_next
      Src: /src/VTest2/src/vtc_logexp.c:548,1
    - Dst: logexp_done
      Src: /src/VTest2/src/vtc_logexp.c:549,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - vsl
    - pt
    - priv
    argTypes:
    - struct VSL_data*
    - struct VSL_transaction*[]
    - void*
    assertStmts:
    - condition: (r == LEM_OK)
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/VTest2/src/vtc_logexp.c
    - condition: (r == LEM_OK)
      pos:
        line_end: 529
        line_start: 529
        source_file: /src/VTest2/src/vtc_logexp.c
    constantsTouched: []
    func_position:
      end: 554
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 554
    functionName: logexp_dispatch
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - logexp_failchk
    - assert
    - CHECK_OBJ_NOTNULL
    - VSL_Next
    - CAST_OBJ_NOTNULL
    - VSL_Match
    - VSL_ID
    - logexp_next
    - logexp_done
    - VSL_CLIENT
    - VSL_CDATA
    - logexp_match
    - VSL_TAG
    - AN
    - VSL_LEN
    - VSL_BACKEND
    linkageType: ''
    returnType: void
    signature: "void logexp_dispatch(struct VSL_data *vsl, struct VSL_transaction
      * const pt[],\n    void *priv)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:562,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:563,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:564,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:565,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:567,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_logexp.c:568,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_logexp.c:570,1
    - Dst: logexp_next
      Src: /src/VTest2/src/vtc_logexp.c:571,1
    - Dst: logexp_done
      Src: /src/VTest2/src/vtc_logexp.c:572,1
    - Dst: VSLQ_Dispatch
      Src: /src/VTest2/src/vtc_logexp.c:573,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_logexp.c:575,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:579,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:581,1
    - Dst: logexp_done
      Src: /src/VTest2/src/vtc_logexp.c:582,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_logexp.c:583,1
    - Dst: logexp_done
      Src: /src/VTest2/src/vtc_logexp.c:585,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:586,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_logexp.c:587,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 590
    functionName: logexp_thread
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - logexp_next
    - logexp_done
    - VSLQ_Dispatch
    - VTIM_sleep
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: 'void *

      logexp_thread(void *priv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:596,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:597,1
    - Dst: VSLQ_Delete
      Src: /src/VTest2/src/vtc_logexp.c:599,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - le
    argTypes:
    - struct logexp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 601
    functionName: logexp_close
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - AZ
    - AN
    - CHECK_OBJ_NOTNULL
    - VSLQ_Delete
    linkageType: ''
    returnType: void
    signature: void logexp_close(struct logexp *le)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:608,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:609,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:610,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:612,1
    - Dst: VSM_Status
      Src: /src/VTest2/src/vtc_logexp.c:613,1
    - Dst: VSL_CursorVSM
      Src: /src/VTest2/src/vtc_logexp.c:614,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:617,1
    - Dst: VSL_Error
      Src: /src/VTest2/src/vtc_logexp.c:617,1
    - Dst: VSLQ_New
      Src: /src/VTest2/src/vtc_logexp.c:618,1
    - Dst: VSL_DeleteCursor
      Src: /src/VTest2/src/vtc_logexp.c:620,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:621,1
    - Dst: VSL_Error
      Src: /src/VTest2/src/vtc_logexp.c:621,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:623,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_logexp.c:629,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_logexp.c:629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - le
    argTypes:
    - struct logexp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 630
    functionName: logexp_start
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - VSL_Error
    - pthread_create
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - VSLQ_New
    - PTOK
    - VSL_DeleteCursor
    - VSL_CursorVSM
    - AZ
    - AN
    - VSM_Status
    linkageType: ''
    returnType: void
    signature: void logexp_start(struct logexp *le)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:637,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_logexp.c:638,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_logexp.c:639,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_logexp.c:639,1
    - Dst: logexp_close
      Src: /src/VTest2/src/vtc_logexp.c:640,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - le
    argTypes:
    - struct logexp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 644
    functionName: logexp_wait
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - logexp_close
    - vtc_fatal
    - PTOK
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void logexp_wait(struct logexp *le)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:659,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:661,1
    - Dst: strtoll
      Src: /src/VTest2/src/vtc_logexp.c:664,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:666,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:668,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:670,1
    - Dst: VSL_Name2Tag
      Src: /src/VTest2/src/vtc_logexp.c:673,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_logexp.c:673,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:675,1
    - Dst: VRE_compile
      Src: /src/VTest2/src/vtc_logexp.c:679,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:681,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_logexp.c:681,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:682,1
    - Dst: VRE_error
      Src: /src/VTest2/src/vtc_logexp.c:682,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:683,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_logexp.c:683,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_logexp.c:684,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:685,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_logexp.c:690,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:691,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_logexp.c:692,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:693,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:694,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_logexp.c:694,1
    - Dst: VSB_quote
      Src: /src/VTest2/src/vtc_logexp.c:696,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:697,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_logexp.c:697,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_logexp.c:702,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - le
    - vl
    - skip_max
    - av
    argTypes:
    - struct logexp*
    - struct vtclog*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 703
    functionName: cmd_logexp_common
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - VSB_quote
    - ALLOC_OBJ
    - vtc_fatal
    - strcmp
    - VSL_Name2Tag
    - VSB_finish
    - VRE_compile
    - strtoll
    - VTAILQ_INSERT_TAIL
    - VSB_fini
    - VSB_new_auto
    - VSB_printf
    - VSB_init
    - AZ
    - AN
    - VRE_error
    - strlen
    linkageType: ''
    returnType: void
    signature: "void cmd_logexp_common(struct logexp *le, struct vtclog *vl,\n    int
      skip_max, char * const *av)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:712,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:714,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:717,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:719,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:721,1
    - Dst: strtol
      Src: /src/VTest2/src/vtc_logexp.c:724,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:726,1
    - Dst: cmd_logexp_common
      Src: /src/VTest2/src/vtc_logexp.c:728,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 729
    functionName: cmd_logexp_expect
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - cmd_logexp_common
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - strtol
    linkageType: ''
    returnType: void
    signature: void cmd_logexp_expect(CMD_ARGS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:737,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:740,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:742,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_logexp.c:743,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:744,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_logexp.c:746,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_logexp.c:747,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:748,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_logexp.c:748,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:750,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_logexp.c:750,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_logexp.c:752,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:756,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:757,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:760,1
    - Dst: cmd_logexp_common
      Src: /src/VTest2/src/vtc_logexp.c:762,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 763
    functionName: cmd_logexp_fail
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - cmd_logexp_common
    - ALLOC_OBJ
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - VSB_finish
    - VTAILQ_INSERT_TAIL
    - VSB_new_auto
    - VSB_printf
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_logexp_fail(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:772,1
    - Dst: cmd_logexp_common
      Src: /src/VTest2/src/vtc_logexp.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 775
    functionName: cmd_logexp_abort
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - cmd_logexp_common
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void cmd_logexp_abort(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:780,1
    - Dst: logexp_delete_tests
      Src: /src/VTest2/src/vtc_logexp.c:782,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_logexp.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - le
    - spec
    argTypes:
    - struct logexp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 777
    functionDepth: 4
    functionLinenumber: 777
    functionLinenumberEnd: 785
    functionName: logexp_spec
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - parse_string
    - logexp_delete_tests
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void logexp_spec(struct logexp *le, const char *spec)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_logexp.c:797,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_logexp.c:798,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_logexp.c:799,1
    - Dst: pthread_cancel
      Src: /src/VTest2/src/vtc_logexp.c:801,1
    - Dst: logexp_wait
      Src: /src/VTest2/src/vtc_logexp.c:802,1
    - Dst: logexp_delete
      Src: /src/VTest2/src/vtc_logexp.c:804,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:809,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:809,1
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_logexp.c:812,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_logexp.c:813,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:814,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:818,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:819,1
    - Dst: logexp_new
      Src: /src/VTest2/src/vtc_logexp.c:820,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:828,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:830,1
    - Dst: logexp_wait
      Src: /src/VTest2/src/vtc_logexp.c:832,1
    - Dst: logexp_wait
      Src: /src/VTest2/src/vtc_logexp.c:841,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_logexp.c:842,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:844,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:845,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:846,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:850,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:852,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_logexp.c:853,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:857,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:859,1
    - Dst: VSLQ_Name2Grouping
      Src: /src/VTest2/src/vtc_logexp.c:860,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_logexp.c:860,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:862,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:868,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:870,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_logexp.c:871,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:875,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:879,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:883,1
    - Dst: logexp_start
      Src: /src/VTest2/src/vtc_logexp.c:884,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_logexp.c:887,1
    - Dst: logexp_start
      Src: /src/VTest2/src/vtc_logexp.c:888,1
    - Dst: logexp_wait
      Src: /src/VTest2/src/vtc_logexp.c:889,1
    - Dst: VSL_Arg
      Src: /src/VTest2/src/vtc_logexp.c:894,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:898,1
    - Dst: VSL_Error
      Src: /src/VTest2/src/vtc_logexp.c:898,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_logexp.c:900,1
    - Dst: logexp_spec
      Src: /src/VTest2/src/vtc_logexp.c:902,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 787
    functionDepth: 5
    functionLinenumber: 787
    functionLinenumberEnd: 904
    functionName: cmd_logexpect
    functionSourceFile: /src/VTest2/src/vtc_logexp.c
    functionUses: 0
    functionsReached:
    - REPLACE
    - atoi
    - logexp_delete
    - VTAILQ_FOREACH_SAFE
    - pthread_cancel
    - vtc_fatal
    - strcmp
    - VSL_Arg
    - logexp_spec
    - logexp_wait
    - VTC_CHECK_NAME
    - VSL_Error
    - VTAILQ_FOREACH
    - logexp_start
    - logexp_new
    - VTAILQ_REMOVE
    - CHECK_OBJ_NOTNULL
    - VSLQ_Name2Grouping
    - AZ
    - strlen
    linkageType: ''
    returnType: void
    signature: void cmd_logexpect(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_log.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vl
    - cmds
    argTypes:
    - struct vtclog*
    - struct cmds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: vtc_log_set_cmd
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 2
    functionsReached:
    - AN
    linkageType: ''
    returnType: void
    signature: void vtc_log_set_cmd(struct vtclog *vl, const struct cmds *cmds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: GET_VL
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_VL(vl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: REL_VL
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REL_VL(vl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/VTest2/src/vtc_log.c:86,1
    - Dst: vbprintf
      Src: /src/VTest2/src/vtc_log.c:87,1
    - Dst: va_end
      Src: /src/VTest2/src/vtc_log.c:88,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_log.c:90,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_log.c:91,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_log.c:92,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_log.c:93,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_log.c:94,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc_log.c:94,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_log.c:95,1
    - Dst: pthread_setspecific
      Src: /src/VTest2/src/vtc_log.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 97
    functionName: vtc_logopen
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 10
    functionsReached:
    - va_end
    - pthread_setspecific
    - ALLOC_OBJ
    - va_start
    - pthread_mutex_init
    - REPLACE
    - PTOK
    - VSB_new_auto
    - vbprintf
    - AN
    linkageType: ''
    returnType: struct vtclog
    signature: 'struct vtclog *

      vtc_logopen(const char *fmt, ...)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_log.c:104,1
    - Dst: pthread_getspecific
      Src: /src/VTest2/src/vtc_log.c:105,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_log.c:106,1
    - Dst: pthread_setspecific
      Src: /src/VTest2/src/vtc_log.c:106,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_log.c:107,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_log.c:108,1
    - Dst: pthread_mutex_destroy
      Src: /src/VTest2/src/vtc_log.c:108,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_log.c:109,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_log.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: vtc_logclose
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 9
    functionsReached:
    - pthread_mutex_destroy
    - pthread_getspecific
    - pthread_setspecific
    - FREE_OBJ
    - CAST_OBJ_NOTNULL
    - REPLACE
    - VSB_destroy
    - PTOK
    linkageType: ''
    returnType: void
    signature: void vtc_logclose(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/VTest2/src/vtc_log.c:118,1
    - Dst: pthread_self
      Src: /src/VTest2/src/vtc_log.c:118,1
    - Dst: pthread_exit
      Src: /src/VTest2/src/vtc_log.c:119,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_log.c:121,1
    - Dst: fail_out
      Src: /src/VTest2/src/vtc_log.c:121,1
    - Dst: WRONG
      Src: /src/VTest2/src/vtc_log.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: v_noreturn_::vtc_logfail
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 0
    functionsReached:
    - fail_out
    - exit
    - pthread_exit
    - WRONG
    - pthread_self
    - pthread_equal
    linkageType: ''
    returnType: void
    signature: 'void v_noreturn_

      vtc_logfail(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_log.c:140,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_log.c:141,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_log.c:142,1
    - Dst: VSB_vprintf
      Src: /src/VTest2/src/vtc_log.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - vl
    - lvl
    - fmt
    - ap
    argTypes:
    - struct vtclog*
    - int
    - char*
    - va_list
    assertStmts:
    - condition: (lvl < (int)NLEAD)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/VTest2/src/vtc_log.c
    - condition: (lvl >= 0)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/VTest2/src/vtc_log.c
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: vtc_leadinv
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 0
    functionsReached:
    - VSB_vprintf
    - assert
    - VSB_printf
    linkageType: ''
    returnType: void
    signature: void vtc_leadinv(const struct vtclog *vl, int lvl, const char *fmt,
      va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/VTest2/src/vtc_log.c:153,1
    - Dst: vtc_leadinv
      Src: /src/VTest2/src/vtc_log.c:154,1
    - Dst: va_end
      Src: /src/VTest2/src/vtc_log.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - vl
    - lvl
    - fmt
    argTypes:
    - struct vtclog*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: vtc_leadin
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - vtc_leadinv
    linkageType: ''
    returnType: void
    signature: void vtc_leadin(const struct vtclog *vl, int lvl, const char *fmt,
      ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_log.c:166,1
    - Dst: round
      Src: /src/VTest2/src/vtc_log.c:169,1
    - Dst: VTIM_mono
      Src: /src/VTest2/src/vtc_log.c:169,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_log.c:170,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_log.c:170,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_log.c:172,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_log.c:173,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_log.c:179,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_log.c:180,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_log.c:180,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_log.c:184,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_log.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - vl
    argTypes:
    - struct vtclog*
    assertStmts:
    - condition: (vtclog_left > 25)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/VTest2/src/vtc_log.c
    - condition: (vtclog_left > l)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/VTest2/src/vtc_log.c
    constantsTouched: []
    func_position:
      end: 185
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 185
    functionName: vtc_log_emit
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 0
    functionsReached:
    - round
    - pthread_mutex_unlock
    - VSB_data
    - VSB_len
    - assert
    - memcpy
    - PTOK
    - pthread_mutex_lock
    - VTIM_mono
    - snprintf
    linkageType: ''
    returnType: void
    signature: void vtc_log_emit(const struct vtclog *vl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_VL
      Src: /src/VTest2/src/vtc_log.c:191,1
    - Dst: va_start
      Src: /src/VTest2/src/vtc_log.c:193,1
    - Dst: vtc_leadinv
      Src: /src/VTest2/src/vtc_log.c:194,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_log.c:195,1
    - Dst: va_end
      Src: /src/VTest2/src/vtc_log.c:196,1
    - Dst: REL_VL
      Src: /src/VTest2/src/vtc_log.c:197,1
    - Dst: vtc_logfail
      Src: /src/VTest2/src/vtc_log.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - vl
    - fmt
    argTypes:
    - struct vtclog*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: vtc_fatal
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 71
    functionsReached:
    - VSB_putc
    - va_end
    - va_start
    - vtc_logfail
    - REL_VL
    - GET_VL
    - vtc_leadinv
    linkageType: ''
    returnType: void
    signature: void vtc_fatal(struct vtclog *vl, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_VL
      Src: /src/VTest2/src/vtc_log.c:206,1
    - Dst: va_start
      Src: /src/VTest2/src/vtc_log.c:208,1
    - Dst: vtc_leadinv
      Src: /src/VTest2/src/vtc_log.c:210,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_log.c:211,1
    - Dst: va_end
      Src: /src/VTest2/src/vtc_log.c:213,1
    - Dst: REL_VL
      Src: /src/VTest2/src/vtc_log.c:214,1
    - Dst: vtc_logfail
      Src: /src/VTest2/src/vtc_log.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - vl
    - lvl
    - fmt
    argTypes:
    - struct vtclog*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 218
    functionName: vtc_log
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 81
    functionsReached:
    - VSB_putc
    - va_end
    - va_start
    - vtc_logfail
    - REL_VL
    - GET_VL
    - vtc_leadinv
    linkageType: ''
    returnType: void
    signature: void vtc_log(struct vtclog *vl, int lvl, const char *fmt, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_log.c:232,1
    - Dst: GET_VL
      Src: /src/VTest2/src/vtc_log.c:233,1
    - Dst: vtc_leadin
      Src: /src/VTest2/src/vtc_log.c:235,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_log.c:237,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_log.c:240,1
    - Dst: VSB_quote_pfx
      Src: /src/VTest2/src/vtc_log.c:243,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_log.c:246,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_log.c:248,1
    - Dst: REL_VL
      Src: /src/VTest2/src/vtc_log.c:251,1
    - Dst: vtc_logfail
      Src: /src/VTest2/src/vtc_log.c:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - vl
    - lvl
    - pfx
    - str
    - len
    argTypes:
    - struct vtclog*
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 254
    functionName: vtc_dump
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 9
    functionsReached:
    - VSB_putc
    - vtc_leadin
    - vtc_logfail
    - VSB_quote_pfx
    - REL_VL
    - GET_VL
    - bprintf
    - VSB_printf
    - AN
    - strlen
    linkageType: ''
    returnType: void
    signature: void vtc_dump(struct vtclog *vl, int lvl, const char *pfx, const char
      *str, int len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_log.c:268,1
    - Dst: GET_VL
      Src: /src/VTest2/src/vtc_log.c:269,1
    - Dst: vtc_leadin
      Src: /src/VTest2/src/vtc_log.c:271,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_log.c:275,1
    - Dst: vtc_leadin
      Src: /src/VTest2/src/vtc_log.c:279,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_log.c:282,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_log.c:284,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_log.c:290,1
    - Dst: REL_VL
      Src: /src/VTest2/src/vtc_log.c:291,1
    - Dst: vtc_logfail
      Src: /src/VTest2/src/vtc_log.c:293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - vl
    - lvl
    - pfx
    - ptr
    - len
    argTypes:
    - struct vtclog*
    - int
    - char*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 294
    functionName: vtc_hexdump
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 3
    functionsReached:
    - vtc_leadin
    - vtc_logfail
    - VSB_cat
    - REL_VL
    - GET_VL
    - VSB_printf
    - AN
    linkageType: ''
    returnType: void
    signature: "void vtc_hexdump(struct vtclog *vl, int lvl, const char *pfx,\n    const
      void *ptr, unsigned len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VBT_dump
      Src: /src/VTest2/src/vtc_log.c:308,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_log.c:309,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_log.c:310,1
    - Dst: pthread_getspecific
      Src: /src/VTest2/src/vtc_log.c:313,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_log.c:315,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_log.c:319,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_log.c:321,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_log.c:325,1
    - Dst: abort
      Src: /src/VTest2/src/vtc_log.c:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - func
    - file
    - line
    - cond
    - why
    argTypes:
    - char*
    - char*
    - int
    - char*
    - enum vas_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 328
    functionName: v_noreturn_::vtc_log_VAS_Fail
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 0
    functionsReached:
    - pthread_getspecific
    - VBT_dump
    - strerror
    - vtc_fatal
    - abort
    - bprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void v_noreturn_\nvtc_log_VAS_Fail(const char *func, const char *file,
      int line,\n    const char *cond, enum vas_e why)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTIM_mono
      Src: /src/VTest2/src/vtc_log.c:337,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_log.c:340,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc_log.c:340,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_log.c:341,1
    - Dst: pthread_key_create
      Src: /src/VTest2/src/vtc_log.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - buflen
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 342
    functionName: vtc_loginit
    functionSourceFile: /src/VTest2/src/vtc_log.c
    functionUses: 1
    functionsReached:
    - VTIM_mono
    - PTOK
    - pthread_key_create
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void vtc_loginit(char *buf, unsigned buflen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/VTest2/src/vtc_client.c:83,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_client.c:84,1
    - Dst: strtok_r
      Src: /src/VTest2/src/vtc_client.c:87,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_client.c:88,1
    - Dst: VSS_ResolveOne
      Src: /src/VTest2/src/vtc_client.c:89,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_client.c:91,1
    - Dst: strtok_r
      Src: /src/VTest2/src/vtc_client.c:93,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_client.c:94,1
    - Dst: VSS_ResolveOne
      Src: /src/VTest2/src/vtc_client.c:95,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_client.c:97,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_client.c:99,1
    - Dst: strtok_r
      Src: /src/VTest2/src/vtc_client.c:100,1
    - Dst: vtc_proxy_tlv
      Src: /src/VTest2/src/vtc_client.c:101,1
    - Dst: free
      Src: /src/VTest2/src/vtc_client.c:103,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_client.c:105,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_client.c:105,1
    - Dst: vtc_send_proxy
      Src: /src/VTest2/src/vtc_client.c:106,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_client.c:107,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_client.c:107,1
    - Dst: VSA_free
      Src: /src/VTest2/src/vtc_client.c:108,1
    - Dst: VSA_free
      Src: /src/VTest2/src/vtc_client.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - vl
    - fd
    - version
    - speca
    argTypes:
    - struct vtclog*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 110
    functionName: client_proxy
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - strtok_r
    - VSS_ResolveOne
    - strerror
    - vtc_fatal
    - VSB_finish
    - vtc_send_proxy
    - free
    - VSB_new_auto
    - VSA_free
    - vtc_proxy_tlv
    - AZ
    - AN
    - strdup
    linkageType: ''
    returnType: void
    signature: void client_proxy(struct vtclog *vl, int fd, int version, const char
      *speca)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_client.c:123,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_client.c:124,1
    - Dst: VTCP_open
      Src: /src/VTest2/src/vtc_client.c:125,1
    - Dst: VTCP_myname
      Src: /src/VTest2/src/vtc_client.c:128,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_client.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - vl
    - addr
    - tmo
    - errp
    argTypes:
    - struct vtclog*
    - char*
    - double
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 132
    functionName: client_tcp_connect
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - VTCP_myname
    - AN
    - VTCP_open
    - vtc_log
    linkageType: ''
    returnType: int
    signature: "int client_tcp_connect(struct vtclog *vl, const char *addr, double
      tmo,\n\t\t   const char **errp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VUS_socklen
      Src: /src/VTest2/src/vtc_client.c:143,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_client.c:145,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_client.c:146,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_client.c:148,1
    - Dst: socket
      Src: /src/VTest2/src/vtc_client.c:151,1
    - Dst: VTCP_nonblocking
      Src: /src/VTest2/src/vtc_client.c:155,1
    - Dst: connect
      Src: /src/VTest2/src/vtc_client.c:156,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_client.c:160,1
    - Dst: poll
      Src: /src/VTest2/src/vtc_client.c:167,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_client.c:170,1
    - Dst: VTCP_connected
      Src: /src/VTest2/src/vtc_client.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - priv
    - uds
    argTypes:
    - void*
    - struct sockaddr_un*
    assertStmts:
    - condition: (*p > 0.)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/VTest2/src/vtc_client.c
    constantsTouched: []
    func_position:
      end: 176
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 176
    functionName: uds_open
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - poll
    - assert
    - VUS_socklen
    - VTCP_nonblocking
    - connect
    - socket
    - closefd
    - VTCP_connected
    - AN
    linkageType: ''
    returnType: void
    signature: void uds_open(void *priv, const struct sockaddr_un *uds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_client.c:184,1
    - Dst: VUS_resolver
      Src: /src/VTest2/src/vtc_client.c:187,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_client.c:189,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_client.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - vl
    - path
    - tmo
    - errp
    argTypes:
    - struct vtclog*
    - char*
    - double
    - char**
    assertStmts:
    - condition: (tmo >= 0)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/VTest2/src/vtc_client.c
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: client_uds_connect
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - VUS_resolver
    - assert
    - vtc_log
    - strerror
    linkageType: ''
    returnType: int
    signature: "int client_uds_connect(struct vtclog *vl, const char *path, double
      tmo,\n\t\t   const char **errp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_client.c:202,1
    - Dst: VUS_is
      Src: /src/VTest2/src/vtc_client.c:203,1
    - Dst: client_uds_connect
      Src: /src/VTest2/src/vtc_client.c:204,1
    - Dst: client_tcp_connect
      Src: /src/VTest2/src/vtc_client.c:206,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_client.c:208,1
    - Dst: VTCP_blocking
      Src: /src/VTest2/src/vtc_client.c:211,1
    - Dst: client_proxy
      Src: /src/VTest2/src/vtc_client.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - vl
    - c
    argTypes:
    - struct vtclog*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 215
    functionName: client_connect
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - vtc_fatal
    - VTCP_blocking
    - client_uds_connect
    - client_proxy
    - VUS_is
    - client_tcp_connect
    linkageType: ''
    returnType: int
    signature: int client_connect(struct vtclog *vl, struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_client.c:226,1
    - Dst: client_connect
      Src: /src/VTest2/src/vtc_client.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - priv
    - vl
    argTypes:
    - void*
    - struct vtclog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: client_conn
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - client_connect
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: int
    signature: int client_conn(void *priv, struct vtclog *vl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_client.c:234,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_client.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - priv
    - vl
    - fdp
    argTypes:
    - void*
    - struct vtclog*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: client_disc
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - VTCP_close
    - vtc_log
    linkageType: ''
    returnType: void
    signature: void client_disc(void *priv, struct vtclog *vl, int *fdp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_client.c:247,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_client.c:248,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_client.c:249,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_client.c:250,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_client.c:251,1
    - Dst: Sess_New
      Src: /src/VTest2/src/vtc_client.c:252,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_client.c:253,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_client.c:255,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_client.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 258
    functionName: client_new
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - Sess_New
    - ALLOC_OBJ
    - REPLACE
    - VTAILQ_INSERT_TAIL
    - bprintf
    - AN
    - vtc_logopen
    linkageType: ''
    returnType: struct client
    signature: 'struct client *

      client_new(const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_client.c:268,1
    - Dst: Sess_Destroy
      Src: /src/VTest2/src/vtc_client.c:269,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_client.c:270,1
    - Dst: free
      Src: /src/VTest2/src/vtc_client.c:271,1
    - Dst: free
      Src: /src/VTest2/src/vtc_client.c:272,1
    - Dst: free
      Src: /src/VTest2/src/vtc_client.c:273,1
    - Dst: free
      Src: /src/VTest2/src/vtc_client.c:274,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_client.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: client_delete
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - Sess_Destroy
    - FREE_OBJ
    - free
    - vtc_logclose
    linkageType: ''
    returnType: void
    signature: void client_delete(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_client.c:288,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_client.c:289,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc_client.c:291,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_client.c:292,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_client.c:293,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_client.c:293,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_client.c:294,1
    - Dst: Sess_Start_Thread
      Src: /src/VTest2/src/vtc_client.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 304
    functionName: client_start
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - REPLACE
    - macro_expand
    - VSB_destroy
    - Sess_Start_Thread
    - AN
    linkageType: ''
    returnType: void
    signature: void client_start(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_client.c:315,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_client.c:316,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_client.c:317,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_client.c:317,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_client.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 322
    functionName: client_wait
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - PTOK
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void client_wait(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: client_start
      Src: /src/VTest2/src/vtc_client.c:332,1
    - Dst: client_wait
      Src: /src/VTest2/src/vtc_client.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: client_run
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - client_wait
    - client_start
    linkageType: ''
    returnType: void
    signature: void client_run(struct client *c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_client.c:350,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_client.c:351,1
    - Dst: client_wait
      Src: /src/VTest2/src/vtc_client.c:353,1
    - Dst: client_delete
      Src: /src/VTest2/src/vtc_client.c:354,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_client.c:359,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_client.c:359,1
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_client.c:362,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_client.c:363,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_client.c:364,1
    - Dst: client_new
      Src: /src/VTest2/src/vtc_client.c:367,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_client.c:374,1
    - Dst: client_wait
      Src: /src/VTest2/src/vtc_client.c:375,1
    - Dst: client_wait
      Src: /src/VTest2/src/vtc_client.c:381,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_client.c:383,1
    - Dst: Sess_GetOpt
      Src: /src/VTest2/src/vtc_client.c:384,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_client.c:387,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_client.c:388,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_client.c:392,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_client.c:393,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_client.c:398,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_client.c:399,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_client.c:404,1
    - Dst: client_start
      Src: /src/VTest2/src/vtc_client.c:405,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_client.c:408,1
    - Dst: client_run
      Src: /src/VTest2/src/vtc_client.c:409,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_client.c:413,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_client.c:414,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 341
    functionDepth: 5
    functionLinenumber: 341
    functionLinenumberEnd: 416
    functionName: cmd_client
    functionSourceFile: /src/VTest2/src/vtc_client.c
    functionUses: 0
    functionsReached:
    - AZ
    - client_wait
    - VTAILQ_FOREACH
    - client_run
    - vtc_fatal
    - strcmp
    - Sess_GetOpt
    - REPLACE
    - client_start
    - client_delete
    - client_new
    - bprintf
    - VTAILQ_FOREACH_SAFE
    - VTAILQ_REMOVE
    - VTC_CHECK_NAME
    linkageType: ''
    returnType: void
    signature: void cmd_client(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/VTest2/src/vtc_haproxy.c:142,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:143,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_haproxy.c:144,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_haproxy.c:145,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:146,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:147,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_haproxy.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - h
    - name
    - value
    argTypes:
    - struct haproxy*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: haproxy_add_envar
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - malloc
    - AN
    - VTAILQ_INSERT_TAIL
    - strdup
    linkageType: ''
    returnType: void
    signature: "void haproxy_add_envar(struct haproxy *h,\n                  const
      char *name, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_haproxy.c:155,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_haproxy.c:156,1
    - Dst: free
      Src: /src/VTest2/src/vtc_haproxy.c:157,1
    - Dst: free
      Src: /src/VTest2/src/vtc_haproxy.c:158,1
    - Dst: free
      Src: /src/VTest2/src/vtc_haproxy.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: haproxy_delete_envars
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH_SAFE
    - VTAILQ_REMOVE
    - free
    linkageType: ''
    returnType: void
    signature: void haproxy_delete_envars(struct haproxy *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_haproxy.c:168,1
    - Dst: setenv
      Src: /src/VTest2/src/vtc_haproxy.c:169,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:170,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_haproxy.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: haproxy_build_env
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - vtc_fatal
    - setenv
    - VTAILQ_FOREACH
    - strerror
    linkageType: ''
    returnType: void
    signature: void haproxy_build_env(const struct haproxy *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:186,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:187,1
    - Dst: VTCP_open
      Src: /src/VTest2/src/vtc_haproxy.c:188,1
    - Dst: VTCP_myname
      Src: /src/VTest2/src/vtc_haproxy.c:191,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - vl
    - addr
    - tmo
    - errp
    argTypes:
    - struct vtclog*
    - char*
    - vtim_dur
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: haproxy_cli_tcp_connect
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - VTCP_myname
    - AN
    - VTCP_open
    - vtc_log
    linkageType: ''
    returnType: int
    signature: "int haproxy_cli_tcp_connect(struct vtclog *vl, const char *addr, vtim_dur
      tmo,\n    const char **errp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_haproxy.c:212,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:213,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:213,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:214,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:215,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_haproxy.c:217,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:218,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:219,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:219,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:220,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:220,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:221,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_haproxy.c:221,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc_haproxy.c:227,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:228,1
    - Dst: haproxy_cli_tcp_connect
      Src: /src/VTest2/src/vtc_haproxy.c:229,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:230,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:232,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:233,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:234,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_haproxy.c:237,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:237,1
    - Dst: VSB_tofile
      Src: /src/VTest2/src/vtc_haproxy.c:239,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:240,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_haproxy.c:241,1
    - Dst: shutdown
      Src: /src/VTest2/src/vtc_haproxy.c:245,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:246,1
    - Dst: VTCP_Check
      Src: /src/VTest2/src/vtc_haproxy.c:247,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:248,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_haproxy.c:248,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 251
    functionName: cmd_haproxy_cli_send
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - VTCP_Check
    - haproxy_cli_tcp_connect
    - strerror
    - vtc_log
    - VSB_finish
    - strcmp
    - CAST_OBJ_NOTNULL
    - macro_expand
    - vtc_fatal
    - vtc_dump
    - VSB_destroy
    - shutdown
    - VSB_new_auto
    - VSB_cat
    - AZ
    - AN
    - VSB_tofile
    linkageType: ''
    returnType: void
    signature: void cmd_haproxy_cli_send(CMD_ARGS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VTCP_set_read_timeout
      Src: /src/VTest2/src/vtc_haproxy.c:264,1
    - Dst: recv
      Src: /src/VTest2/src/vtc_haproxy.c:266,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:271,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_haproxy.c:273,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:278,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:282,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:283,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_haproxy.c:284,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_haproxy.c:293,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct haproxy_cli*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 294
    functionName: haproxy_cli_recv
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - VTCP_close
    - VTCP_set_read_timeout
    - vtc_log
    - strerror
    - recv
    - vtc_fatal
    - vtc_dump
    linkageType: ''
    returnType: void
    signature: void haproxy_cli_recv(struct haproxy_cli *hc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_haproxy.c:313,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:314,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:314,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:319,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:320,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:321,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:323,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:323,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:323,1
    - Dst: haproxy_cli_recv
      Src: /src/VTest2/src/vtc_haproxy.c:325,1
    - Dst: VRE_compile
      Src: /src/VTest2/src/vtc_haproxy.c:327,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:329,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_haproxy.c:329,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:330,1
    - Dst: VRE_error
      Src: /src/VTest2/src/vtc_haproxy.c:330,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:331,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_haproxy.c:331,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_haproxy.c:332,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:333,1
    - Dst: VRE_match
      Src: /src/VTest2/src/vtc_haproxy.c:337,1
    - Dst: VRE_free
      Src: /src/VTest2/src/vtc_haproxy.c:339,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:343,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!strcmp(cmp, "~") || !strcmp(cmp, "!~"))
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/VTest2/src/vtc_haproxy.c
    constantsTouched: []
    func_position:
      end: 346
      start: 304
    functionDepth: 5
    functionLinenumber: 304
    functionLinenumberEnd: 346
    functionName: cmd_haproxy_cli_expect
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - assert
    - vtc_log
    - VSB_finish
    - strcmp
    - CAST_OBJ_NOTNULL
    - vtc_fatal
    - VRE_free
    - VRE_compile
    - haproxy_cli_recv
    - VSB_fini
    - VSB_init
    - AZ
    - AN
    - VRE_error
    - VRE_match
    linkageType: ''
    returnType: void
    signature: void cmd_haproxy_cli_expect(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_haproxy.c:368,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:369,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc_haproxy.c:371,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:372,1
    - Dst: haproxy_cli_tcp_connect
      Src: /src/VTest2/src/vtc_haproxy.c:374,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:374,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:376,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:377,1
    - Dst: VTCP_blocking
      Src: /src/VTest2/src/vtc_haproxy.c:378,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_haproxy.c:380,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:381,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 384
    functionName: haproxy_cli_thread
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - parse_string
    - VSB_data
    - haproxy_cli_tcp_connect
    - vtc_log
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - macro_expand
    - VSB_destroy
    - VTCP_blocking
    - AN
    linkageType: ''
    returnType: void
    signature: 'void *

      haproxy_cli_thread(void *priv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_haproxy.c:395,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:396,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_haproxy.c:397,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_haproxy.c:397,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:399,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_haproxy.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct haproxy_cli*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: haproxy_cli_wait
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - REPLACE
    - PTOK
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void haproxy_cli_wait(struct haproxy_cli *hc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_haproxy.c:412,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:413,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_haproxy.c:414,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_haproxy.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct haproxy_cli*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 417
    functionName: haproxy_cli_start
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - PTOK
    - vtc_log
    - pthread_create
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void haproxy_cli_start(struct haproxy_cli *hc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: haproxy_cli_start
      Src: /src/VTest2/src/vtc_haproxy.c:426,1
    - Dst: haproxy_cli_wait
      Src: /src/VTest2/src/vtc_haproxy.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct haproxy_cli*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 4
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: haproxy_cli_run
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - haproxy_cli_start
    - haproxy_cli_wait
    linkageType: ''
    returnType: void
    signature: void haproxy_cli_run(struct haproxy_cli *hc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:442,1
    - Dst: VTIM_mono
      Src: /src/VTest2/src/vtc_haproxy.c:443,1
    - Dst: VTIM_mono
      Src: /src/VTest2/src/vtc_haproxy.c:443,1
    - Dst: VPF_Read
      Src: /src/VTest2/src/vtc_haproxy.c:447,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:448,1
    - Dst: usleep
      Src: /src/VTest2/src/vtc_haproxy.c:450,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:455,1
    - Dst: usleep
      Src: /src/VTest2/src/vtc_haproxy.c:458,1
    - Dst: kill
      Src: /src/VTest2/src/vtc_haproxy.c:462,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:463,1
    - Dst: usleep
      Src: /src/VTest2/src/vtc_haproxy.c:465,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:471,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:475,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 477
    functionName: haproxy_wait_pidfile
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - VPF_Read
    - vtc_fatal
    - kill
    - bprintf
    - usleep
    - VTIM_mono
    linkageType: ''
    returnType: void
    signature: void haproxy_wait_pidfile(struct haproxy *h)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:492,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:493,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_haproxy.c:495,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:496,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_haproxy.c:498,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:499,1
    - Dst: socket
      Src: /src/VTest2/src/vtc_haproxy.c:502,1
    - Dst: unlink
      Src: /src/VTest2/src/vtc_haproxy.c:508,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_haproxy.c:510,1
    - Dst: bind
      Src: /src/VTest2/src/vtc_haproxy.c:514,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_haproxy.c:516,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:522,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:523,1
    - Dst: setenv
      Src: /src/VTest2/src/vtc_haproxy.c:524,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:525,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:529,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts:
    - condition: (sd_path[0] == '/')
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/VTest2/src/vtc_haproxy.c
    - condition: (h->sd_sock > 0)
      pos:
        line_end: 521
        line_start: 521
        source_file: /src/VTest2/src/vtc_haproxy.c
    - condition: (ret == 0)
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/VTest2/src/vtc_haproxy.c
    constantsTouched: []
    func_position:
      end: 530
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 530
    functionName: haproxy_bind_sdnotify
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - vtc_log
    - vtc_fatal
    - setenv
    - unlink
    - bind
    - bprintf
    - socket
    - closefd
    - strlen
    linkageType: ''
    returnType: void
    signature: void haproxy_bind_sdnotify(struct haproxy *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:543,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_haproxy.c:546,1
    - Dst: poll
      Src: /src/VTest2/src/vtc_haproxy.c:550,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:551,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:553,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:555,1
    - Dst: recv
      Src: /src/VTest2/src/vtc_haproxy.c:557,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc_haproxy.c:560,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:564,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 567
    functionName: haproxy_wait_sdnotify_ready
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - poll
    - memset
    - vtc_log
    - recv
    - vtc_fatal
    - strstr
    linkageType: ''
    returnType: void
    signature: void haproxy_wait_sdnotify_ready(struct haproxy *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_haproxy.c:577,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:578,1
    - Dst: vtc_log_set_cmd
      Src: /src/VTest2/src/vtc_haproxy.c:581,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:583,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_haproxy.c:586,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:587,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_haproxy.c:588,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 592
    functionName: haproxy_cli_new
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - malloc
    - ALLOC_OBJ
    - vtc_log_set_cmd
    - bprintf
    - AN
    linkageType: ''
    returnType: struct haproxy_cli
    signature: 'struct haproxy_cli *

      haproxy_cli_new(struct haproxy *h)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_haproxy.c:600,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:601,1
    - Dst: vtc_log_set_cmd
      Src: /src/VTest2/src/vtc_haproxy.c:604,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:606,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_haproxy.c:609,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:610,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_haproxy.c:611,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 615
    functionName: haproxy_mcli_new
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - malloc
    - ALLOC_OBJ
    - vtc_log_set_cmd
    - bprintf
    - AN
    linkageType: ''
    returnType: struct haproxy_cli
    signature: 'struct haproxy_cli *

      haproxy_mcli_new(struct haproxy *h)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VTCP_listen_on
      Src: /src/VTest2/src/vtc_haproxy.c:627,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:629,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:631,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/src/vtc_haproxy.c:632,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:633,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_haproxy.c:635,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:636,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_haproxy.c:637,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:638,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:640,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:641,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts:
    - condition: (sock > 0)
      pos:
        line_end: 630
        line_start: 630
        source_file: /src/VTest2/src/vtc_haproxy.c
    constantsTouched: []
    func_position:
      end: 645
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 645
    functionName: haproxy_create_mcli
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - VTCP_name
    - assert
    - vtc_fatal
    - VSA_getsockname
    - VSA_Get_Proto
    - VTCP_listen_on
    - bprintf
    - AN
    - macro_def
    linkageType: ''
    returnType: int
    signature: int haproxy_create_mcli(struct haproxy *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_haproxy.c:650,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_haproxy.c:651,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_haproxy.c:652,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_haproxy.c:653,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_haproxy.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct haproxy_cli*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 655
    functionName: haproxy_cli_delete
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - FREE_OBJ
    - REPLACE
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void haproxy_cli_delete(struct haproxy_cli *hc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_haproxy.c:674,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:675,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_haproxy.c:676,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_haproxy.c:678,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_haproxy.c:679,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:681,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:682,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_haproxy.c:685,1
    - Dst: vtc_log_set_cmd
      Src: /src/VTest2/src/vtc_haproxy.c:686,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:687,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_haproxy.c:689,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:693,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc_haproxy.c:694,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:695,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_haproxy.c:696,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:696,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:697,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:698,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:700,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_haproxy.c:701,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:702,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:704,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_haproxy.c:705,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:706,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:711,1
    - Dst: VTCP_listen_on
      Src: /src/VTest2/src/vtc_haproxy.c:712,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:714,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:716,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/src/vtc_haproxy.c:717,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:718,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_haproxy.c:719,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_haproxy.c:720,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:721,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:723,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:724,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:725,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_haproxy.c:726,1
    - Dst: haproxy_cli_new
      Src: /src/VTest2/src/vtc_haproxy.c:728,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:729,1
    - Dst: haproxy_mcli_new
      Src: /src/VTest2/src/vtc_haproxy.c:731,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:732,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:734,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:735,1
    - Dst: system
      Src: /src/VTest2/src/vtc_haproxy.c:735,1
    - Dst: VTAILQ_INIT
      Src: /src/VTest2/src/vtc_haproxy.c:739,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_haproxy.c:740,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts:
    - condition: (closed_sock > 0)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/VTest2/src/vtc_haproxy.c
    constantsTouched: []
    func_position:
      end: 743
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 743
    functionName: haproxy_new
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - VTCP_close
    - REPLACE
    - VSA_Get_Proto
    - VTCP_listen_on
    - AN
    - macro_def
    - vtc_logopen
    - system
    - assert
    - ALLOC_OBJ
    - vtc_log_set_cmd
    - vtc_fatal
    - VSB_destroy
    - VSB_new_auto
    - VTAILQ_INIT
    - haproxy_mcli_new
    - VSA_getsockname
    - VTAILQ_INSERT_TAIL
    - getenv
    - bprintf
    - VTCP_name
    - macro_expand
    - haproxy_cli_new
    - VSB_cat
    - AZ
    - strdup
    linkageType: ''
    returnType: struct haproxy
    signature: 'struct haproxy *

      haproxy_new(const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_haproxy.c:754,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_haproxy.c:755,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:758,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:759,1
    - Dst: system
      Src: /src/VTest2/src/vtc_haproxy.c:759,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_haproxy.c:763,1
    - Dst: free
      Src: /src/VTest2/src/vtc_haproxy.c:765,1
    - Dst: free
      Src: /src/VTest2/src/vtc_haproxy.c:766,1
    - Dst: free
      Src: /src/VTest2/src/vtc_haproxy.c:767,1
    - Dst: free
      Src: /src/VTest2/src/vtc_haproxy.c:768,1
    - Dst: free
      Src: /src/VTest2/src/vtc_haproxy.c:769,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:770,1
    - Dst: haproxy_cli_delete
      Src: /src/VTest2/src/vtc_haproxy.c:771,1
    - Dst: haproxy_cli_delete
      Src: /src/VTest2/src/vtc_haproxy.c:772,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_haproxy.c:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 776
    functionName: haproxy_delete
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - haproxy_cli_delete
    - FREE_OBJ
    - free
    - VSB_destroy
    - bprintf
    - vtc_logclose
    - closefd
    - AZ
    - system
    linkageType: ''
    returnType: void
    signature: void haproxy_delete(struct haproxy *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_haproxy.c:787,1
    - Dst: vtc_record
      Src: /src/VTest2/src/vtc_haproxy.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 791
    functionName: haproxy_thread
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - vtc_record
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: 'void *

      haproxy_thread(void *priv)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:804,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:806,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_haproxy.c:806,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:807,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_haproxy.c:810,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:811,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_haproxy.c:813,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:815,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:817,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:819,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:823,1
    - Dst: haproxy_bind_sdnotify
      Src: /src/VTest2/src/vtc_haproxy.c:824,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:826,1
    - Dst: haproxy_create_mcli
      Src: /src/VTest2/src/vtc_haproxy.c:830,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_haproxy.c:831,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_haproxy.c:835,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:835,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_haproxy.c:837,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:840,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_haproxy.c:841,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:842,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_haproxy.c:843,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:846,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_haproxy.c:846,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_haproxy.c:847,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:847,1
    - Dst: haproxy_write_conf
      Src: /src/VTest2/src/vtc_haproxy.c:857,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:859,1
    - Dst: pipe
      Src: /src/VTest2/src/vtc_haproxy.c:859,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:860,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:861,1
    - Dst: pipe
      Src: /src/VTest2/src/vtc_haproxy.c:861,1
    - Dst: fork
      Src: /src/VTest2/src/vtc_haproxy.c:862,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:863,1
    - Dst: haproxy_build_env
      Src: /src/VTest2/src/vtc_haproxy.c:865,1
    - Dst: haproxy_delete_envars
      Src: /src/VTest2/src/vtc_haproxy.c:866,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:867,1
    - Dst: chdir
      Src: /src/VTest2/src/vtc_haproxy.c:867,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:868,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_haproxy.c:868,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:869,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_haproxy.c:869,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:870,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_haproxy.c:870,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_haproxy.c:871,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_haproxy.c:872,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_haproxy.c:873,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_haproxy.c:874,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:875,1
    - Dst: execl
      Src: /src/VTest2/src/vtc_haproxy.c:875,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:875,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_haproxy.c:876,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:878,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:880,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:881,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:882,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_haproxy.c:884,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_haproxy.c:885,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_haproxy.c:889,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_haproxy.c:889,1
    - Dst: haproxy_wait_pidfile
      Src: /src/VTest2/src/vtc_haproxy.c:892,1
    - Dst: haproxy_wait_sdnotify_ready
      Src: /src/VTest2/src/vtc_haproxy.c:895,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts:
    - condition: (h->pid >= 0)
      pos:
        line_end: 862
        line_start: 862
        source_file: /src/VTest2/src/vtc_haproxy.c
    - condition: (dup2(1, 2) == 2)
      pos:
        line_end: 869
        line_start: 869
        source_file: /src/VTest2/src/vtc_haproxy.c
    - condition: (dup2(h->fds[3], 1) == 1)
      pos:
        line_end: 868
        line_start: 868
        source_file: /src/VTest2/src/vtc_haproxy.c
    constantsTouched: []
    func_position:
      end: 896
      start: 798
    functionDepth: 4
    functionLinenumber: 798
    functionLinenumberEnd: 896
    functionName: haproxy_start
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - pthread_create
    - exit
    - vtc_log
    - chdir
    - execl
    - haproxy_write_conf
    - haproxy_wait_pidfile
    - AN
    - macro_def
    - haproxy_build_env
    - assert
    - pipe
    - VSB_destroy
    - VSB_new_auto
    - closefd
    - haproxy_wait_sdnotify_ready
    - fork
    - VSB_printf
    - haproxy_create_mcli
    - bprintf
    - VSB_finish
    - haproxy_delete_envars
    - vtc_dump
    - dup2
    - haproxy_bind_sdnotify
    - PTOK
    - VSB_cat
    - AZ
    - strdup
    linkageType: ''
    returnType: void
    signature: void haproxy_start(struct haproxy *h)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:909,1
    - Dst: haproxy_start
      Src: /src/VTest2/src/vtc_haproxy.c:912,1
    - Dst: haproxy_cli_run
      Src: /src/VTest2/src/vtc_haproxy.c:915,1
    - Dst: haproxy_cli_run
      Src: /src/VTest2/src/vtc_haproxy.c:918,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_haproxy.c:920,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:924,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:926,1
    - Dst: kill
      Src: /src/VTest2/src/vtc_haproxy.c:928,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:933,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_haproxy.c:934,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_haproxy.c:936,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_haproxy.c:947,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_haproxy.c:947,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:948,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_haproxy.c:949,1
    - Dst: vtc_wait4
      Src: /src/VTest2/src/vtc_haproxy.c:951,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts:
    - condition: (h->pid > 0)
      pos:
        line_end: 925
        line_start: 925
        source_file: /src/VTest2/src/vtc_haproxy.c
    constantsTouched: []
    func_position:
      end: 955
      start: 903
    functionDepth: 5
    functionLinenumber: 903
    functionLinenumberEnd: 955
    functionName: haproxy_wait
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - AZ
    - assert
    - vtc_log
    - strerror
    - PTOK
    - kill
    - closefd
    - VTIM_sleep
    - haproxy_start
    - pthread_join
    - haproxy_cli_run
    - vtc_wait4
    linkageType: ''
    returnType: void
    signature: void haproxy_wait(struct haproxy *h)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/VTest2/src/vtc_haproxy.c:972,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_haproxy.c:974,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:979,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc_haproxy.c:990,1
    - Dst: memcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1002,1
    - Dst: memcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1006,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1010,1
    - Dst: VUDP_bind_on
      Src: /src/VTest2/src/vtc_haproxy.c:1020,1
    - Dst: VTCP_listen_on
      Src: /src/VTest2/src/vtc_haproxy.c:1023,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:1026,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:1028,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/src/vtc_haproxy.c:1029,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1030,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_haproxy.c:1032,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:1033,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_haproxy.c:1034,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:1035,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:1037,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:1038,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:1039,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:1041,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:1042,1
    - Dst: haproxy_add_envar
      Src: /src/VTest2/src/vtc_haproxy.c:1044,1
    - Dst: free
      Src: /src/VTest2/src/vtc_haproxy.c:1047,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 2
    argNames:
    - h
    - vsb_data
    argTypes:
    - struct haproxy*
    - char*
    assertStmts:
    - condition: (sock > 0)
      pos:
        line_end: 1027
        line_start: 1027
        source_file: /src/VTest2/src/vtc_haproxy.c
    constantsTouched: []
    func_position:
      end: 1049
      start: 968
    functionDepth: 3
    functionLinenumber: 968
    functionLinenumberEnd: 1049
    functionName: haproxy_build_backends
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - memcmp
    - VTCP_name
    - assert
    - vtc_log
    - haproxy_add_envar
    - VUDP_bind_on
    - strcmp
    - vtc_fatal
    - VSA_getsockname
    - VSA_Get_Proto
    - free
    - VTCP_listen_on
    - getenv
    - bprintf
    - strstr
    - AN
    - macro_def
    - strdup
    linkageType: ''
    returnType: int
    signature: int haproxy_build_backends(struct haproxy *h, const char *vsb_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_haproxy.c:1055,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1056,1
    - Dst: haproxy_start
      Src: /src/VTest2/src/vtc_haproxy.c:1058,1
    - Dst: haproxy_wait
      Src: /src/VTest2/src/vtc_haproxy.c:1059,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1060,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_haproxy.c:1060,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc_haproxy.c:1061,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1061,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:1062,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:1063,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - h
    - expect
    argTypes:
    - struct haproxy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1051
    functionDepth: 6
    functionLinenumber: 1051
    functionLinenumberEnd: 1065
    functionName: haproxy_check_conf
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - vtc_log
    - strstr
    - haproxy_wait
    - VSB_finish
    - vtc_fatal
    - VSB_destroy
    - VSB_new_auto
    - haproxy_start
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void haproxy_check_conf(struct haproxy *h, const char *expect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_haproxy.c:1076,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1077,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_haproxy.c:1079,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1080,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_haproxy.c:1082,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:1084,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1085,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:1085,1
    - Dst: cmd_server_gen_haproxy_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1088,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1090,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_haproxy.c:1090,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1092,1
    - Dst: haproxy_build_backends
      Src: /src/VTest2/src/vtc_haproxy.c:1092,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1092,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc_haproxy.c:1094,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1094,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1095,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:1097,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - h
    - cfg
    - auto_be
    argTypes:
    - struct haproxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1071
    functionDepth: 4
    functionLinenumber: 1071
    functionLinenumberEnd: 1099
    functionName: haproxy_store_conf
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - VSB_printf
    - VSB_data
    - haproxy_build_backends
    - VSB_finish
    - macro_expand
    - VSB_destroy
    - VSB_new_auto
    - VSB_cat
    - AZ
    - AN
    - cmd_server_gen_haproxy_conf
    linkageType: ''
    returnType: void
    signature: void haproxy_store_conf(struct haproxy *h, const char *cfg, int auto_be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc_haproxy.c:1106,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1106,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1107,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:1108,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_haproxy.c:1108,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_haproxy.c:1110,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1110,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_haproxy.c:1110,1
    - Dst: VFIL_writefile
      Src: /src/VTest2/src/vtc_haproxy.c:1111,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1112,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_haproxy.c:1112,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:1113,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_haproxy.c:1115,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:1117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts:
    - condition: (VSB_len(vsb) >= 0)
      pos:
        line_end: 1107
        line_start: 1107
        source_file: /src/VTest2/src/vtc_haproxy.c
    constantsTouched: []
    func_position:
      end: 1118
      start: 1101
    functionDepth: 4
    functionLinenumber: 1101
    functionLinenumberEnd: 1118
    functionName: haproxy_write_conf
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 1
    functionsReached:
    - VSB_data
    - VSB_len
    - assert
    - VFIL_writefile
    - strerror
    - vtc_fatal
    - macro_expand
    - vtc_dump
    - VSB_destroy
    - AN
    linkageType: ''
    returnType: void
    signature: void haproxy_write_conf(struct haproxy *h)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_haproxy.c:1195,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:1196,1
    - Dst: haproxy_wait
      Src: /src/VTest2/src/vtc_haproxy.c:1200,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_haproxy.c:1201,1
    - Dst: haproxy_delete
      Src: /src/VTest2/src/vtc_haproxy.c:1202,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1207,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1207,1
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_haproxy.c:1210,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_haproxy.c:1211,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1212,1
    - Dst: haproxy_new
      Src: /src/VTest2/src/vtc_haproxy.c:1215,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1222,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1223,1
    - Dst: haproxy_store_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1224,1
    - Dst: haproxy_check_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1226,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1230,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1231,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1232,1
    - Dst: haproxy_store_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1233,1
    - Dst: haproxy_check_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1235,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1240,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1244,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1248,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1252,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1256,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1257,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1258,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:1259,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:1260,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1265,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_haproxy.c:1266,1
    - Dst: haproxy_cli_run
      Src: /src/VTest2/src/vtc_haproxy.c:1268,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1273,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_haproxy.c:1274,1
    - Dst: haproxy_cli_run
      Src: /src/VTest2/src/vtc_haproxy.c:1276,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1281,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1282,1
    - Dst: haproxy_store_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1283,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1287,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1288,1
    - Dst: haproxy_store_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1289,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1294,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_haproxy.c:1295,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1299,1
    - Dst: haproxy_start
      Src: /src/VTest2/src/vtc_haproxy.c:1300,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1303,1
    - Dst: haproxy_wait
      Src: /src/VTest2/src/vtc_haproxy.c:1304,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:1307,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1186
    functionDepth: 7
    functionLinenumber: 1186
    functionLinenumberEnd: 1309
    functionName: cmd_haproxy
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - REPLACE
    - VTAILQ_FOREACH_SAFE
    - AN
    - haproxy_store_conf
    - haproxy_check_conf
    - haproxy_wait
    - strcmp
    - vtc_fatal
    - haproxy_delete
    - VTC_CHECK_NAME
    - VTAILQ_FOREACH
    - strtoul
    - haproxy_new
    - VTAILQ_REMOVE
    - haproxy_cli_run
    - VSB_cat
    - haproxy_start
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_haproxy(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr_compat.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: teken_subr_cons25_set_border
    functionSourceFile: /src/VTest2/src/teken_subr_compat.h
    functionUses: 0
    functionsReached:
    - teken_funcs_param
    linkageType: ''
    returnType: void
    signature: void teken_subr_cons25_set_border(const teken_t *t, unsigned int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr_compat.h:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - t
    - ncmds
    - cmds
    argTypes:
    - teken_t*
    - unsigned int
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: teken_subr_cons25_set_global_cursor_shape
    functionSourceFile: /src/VTest2/src/teken_subr_compat.h
    functionUses: 0
    functionsReached:
    - teken_funcs_param
    linkageType: ''
    returnType: void
    signature: "void teken_subr_cons25_set_global_cursor_shape(const teken_t *t, unsigned
      int ncmds,\n    const unsigned int cmds[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr_compat.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - type
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: teken_subr_cons25_set_local_cursor_type
    functionSourceFile: /src/VTest2/src/teken_subr_compat.h
    functionUses: 0
    functionsReached:
    - teken_funcs_param
    linkageType: ''
    returnType: void
    signature: void teken_subr_cons25_set_local_cursor_type(const teken_t *t, unsigned
      int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: teken_subr_cons25_set_default_background
    functionSourceFile: /src/VTest2/src/teken_subr_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_cons25_set_default_background(teken_t *t, unsigned
      int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: teken_subr_cons25_set_default_foreground
    functionSourceFile: /src/VTest2/src/teken_subr_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_cons25_set_default_foreground(teken_t *t, unsigned
      int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teken_256to8
      Src: /src/VTest2/src/teken_subr_compat.h:90,1
    - Dst: teken_256to8
      Src: /src/VTest2/src/teken_subr_compat.h:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - t
    - fg
    - bg
    argTypes:
    - teken_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: teken_get_defattr_cons25
    functionSourceFile: /src/VTest2/src/teken_subr_compat.h
    functionUses: 1
    functionsReached:
    - teken_256to8
    linkageType: ''
    returnType: void
    signature: void teken_get_defattr_cons25(const teken_t *t, int *fg, int *bg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr_compat.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - vt
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: teken_subr_cons25_switch_virtual_terminal
    functionSourceFile: /src/VTest2/src/teken_subr_compat.h
    functionUses: 0
    functionsReached:
    - teken_funcs_param
    linkageType: ''
    returnType: void
    signature: void teken_subr_cons25_switch_virtual_terminal(const teken_t *t, unsigned
      int vt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr_compat.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - pitch
    - duration
    argTypes:
    - teken_t*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: teken_subr_cons25_set_bell_pitch_duration
    functionSourceFile: /src/VTest2/src/teken_subr_compat.h
    functionUses: 0
    functionsReached:
    - teken_funcs_param
    linkageType: ''
    returnType: void
    signature: "void teken_subr_cons25_set_bell_pitch_duration(const teken_t *t, unsigned
      int pitch,\n    unsigned int duration)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr_compat.h:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - t
    - cmd
    - param
    argTypes:
    - teken_t*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: teken_subr_cons25_set_graphic_rendition
    functionSourceFile: /src/VTest2/src/teken_subr_compat.h
    functionUses: 0
    functionsReached:
    - teken_printf
    linkageType: ''
    returnType: void
    signature: "void teken_subr_cons25_set_graphic_rendition(teken_t *t, unsigned
      int cmd,\n    unsigned int param)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - t
    - mode
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: teken_subr_cons25_set_terminal_mode
    functionSourceFile: /src/VTest2/src/teken_subr_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teken_subr_cons25_set_terminal_mode(teken_t *t, unsigned int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_funcs_respond
      Src: /src/VTest2/src/teken_subr_compat.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: teken_subr_vt52_decid
    functionSourceFile: /src/VTest2/src/teken_subr_compat.h
    functionUses: 0
    functionsReached:
    - teken_funcs_respond
    linkageType: ''
    returnType: void
    signature: void teken_subr_vt52_decid(teken_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:164,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:164,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:166,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tunnel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: tunnel_is_open
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - PTOK
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: unsigned
    signature: unsigned tunnel_is_open(struct tunnel *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_tunnel.c:184,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_tunnel.c:185,1
    - Dst: tunnel_is_open
      Src: /src/VTest2/src/vtc_tunnel.c:187,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:188,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:190,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:190,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:192,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:192,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:193,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:195,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:197,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_tunnel.c:197,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:198,1
    - Dst: pthread_cond_wait
      Src: /src/VTest2/src/vtc_tunnel.c:198,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:199,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (t->state == TUNNEL_RUNNING)
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/VTest2/src/vtc_tunnel.c
    constantsTouched: []
    func_position:
      end: 200
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 200
    functionName: cmd_tunnel_pause
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - assert
    - pthread_cond_wait
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - PTOK
    - pthread_mutex_lock
    - pthread_cond_signal
    - tunnel_is_open
    - AZ
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void cmd_tunnel_pause(CMD_ARGS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_tunnel.c:218,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_tunnel.c:219,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_tunnel.c:220,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_tunnel.c:222,1
    - Dst: tunnel_is_open
      Src: /src/VTest2/src/vtc_tunnel.c:224,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:225,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:227,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:227,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:229,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:229,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:230,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:232,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_tunnel.c:233,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_tunnel.c:234,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_tunnel.c:235,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:239,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_tunnel.c:239,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:240,1
    - Dst: pthread_cond_wait
      Src: /src/VTest2/src/vtc_tunnel.c:240,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:241,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (t->state == TUNNEL_PAUSED)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/VTest2/src/vtc_tunnel.c
    constantsTouched: []
    func_position:
      end: 242
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 242
    functionName: cmd_tunnel_send
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - pthread_cond_signal
    - assert
    - pthread_cond_wait
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - PTOK
    - pthread_mutex_lock
    - atoi
    - tunnel_is_open
    - AZ
    - AN
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void cmd_tunnel_send(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_tunnel_send
      Src: /src/VTest2/src/vtc_tunnel.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: cmd_tunnel_recv
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - cmd_tunnel_send
    linkageType: ''
    returnType: void
    signature: void cmd_tunnel_recv(CMD_ARGS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_tunnel.c:275,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_tunnel.c:276,1
    - Dst: tunnel_is_open
      Src: /src/VTest2/src/vtc_tunnel.c:278,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:279,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:281,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:281,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:283,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:283,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:284,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:286,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:288,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_tunnel.c:288,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:289,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (t->state == TUNNEL_PAUSED)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/VTest2/src/vtc_tunnel.c
    constantsTouched: []
    func_position:
      end: 290
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 290
    functionName: cmd_tunnel_resume
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - assert
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - PTOK
    - pthread_mutex_lock
    - pthread_cond_signal
    - tunnel_is_open
    - AZ
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void cmd_tunnel_resume(CMD_ARGS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:314,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:318,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:318,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_tunnel.c:319,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:322,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:322,1
    - Dst: read
      Src: /src/VTest2/src/vtc_tunnel.c:330,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:332,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_tunnel.c:332,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:334,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:334,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:336,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:336,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - t
    - vl
    - pfd
    - lane
    argTypes:
    - struct tunnel*
    - struct vtclog*
    - struct pollfd*
    - struct tunnel_lane*
    assertStmts:
    - condition: (pfd->fd == *lane->rfd)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/VTest2/src/vtc_tunnel.c
    constantsTouched: []
    func_position:
      end: 337
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 337
    functionName: tunnel_read
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - assert
    - strerror
    - vtc_fatal
    - PTOK
    - read
    - pthread_mutex_lock
    - AZ
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: "void tunnel_read(struct tunnel *t, struct vtclog *vl, const struct
      pollfd *pfd,\n    struct tunnel_lane *lane)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_tunnel.c:350,1
    - Dst: write
      Src: /src/VTest2/src/vtc_tunnel.c:352,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:354,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_tunnel.c:354,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:359,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:359,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:361,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:362,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:366,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - t
    - vl
    - lane
    - action
    argTypes:
    - struct tunnel*
    - struct vtclog*
    - struct tunnel_lane*
    - char*
    assertStmts:
    - condition: (lane->buf_len >= 0)
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/VTest2/src/vtc_tunnel.c
    - condition: (lane->wrk_len >= (size_t)lane->buf_len)
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/VTest2/src/vtc_tunnel.c
    constantsTouched: []
    func_position:
      end: 367
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 367
    functionName: tunnel_write
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - assert
    - vtc_log
    - strerror
    - vtc_fatal
    - write
    - PTOK
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: "void tunnel_write(struct tunnel *t, struct vtclog *vl, struct tunnel_lane
      *lane,\n    const char *action)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_tunnel.c:378,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_tunnel.c:380,1
    - Dst: pthread_cleanup_push
      Src: /src/VTest2/src/vtc_tunnel.c:381,1
    - Dst: tunnel_is_open
      Src: /src/VTest2/src/vtc_tunnel.c:383,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:384,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:384,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:387,1
    - Dst: pthread_cond_wait
      Src: /src/VTest2/src/vtc_tunnel.c:387,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:389,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:389,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:394,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_tunnel.c:396,1
    - Dst: poll
      Src: /src/VTest2/src/vtc_tunnel.c:401,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:403,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_tunnel.c:403,1
    - Dst: tunnel_read
      Src: /src/VTest2/src/vtc_tunnel.c:405,1
    - Dst: tunnel_read
      Src: /src/VTest2/src/vtc_tunnel.c:406,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:408,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:408,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_tunnel.c:411,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_tunnel.c:412,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:413,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_tunnel.c:413,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:414,1
    - Dst: pthread_cond_wait
      Src: /src/VTest2/src/vtc_tunnel.c:414,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:416,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:416,1
    - Dst: tunnel_write
      Src: /src/VTest2/src/vtc_tunnel.c:421,1
    - Dst: tunnel_write
      Src: /src/VTest2/src/vtc_tunnel.c:422,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:425,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:425,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:427,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_tunnel.c:427,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:428,1
    - Dst: pthread_cond_wait
      Src: /src/VTest2/src/vtc_tunnel.c:428,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:430,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:430,1
    - Dst: pthread_cleanup_pop
      Src: /src/VTest2/src/vtc_tunnel.c:432,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_tunnel.c:433,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts:
    - condition: (state < TUNNEL_POLL_DONE)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/VTest2/src/vtc_tunnel.c
    constantsTouched: []
    func_position:
      end: 436
      start: 369
    functionDepth: 4
    functionLinenumber: 369
    functionLinenumberEnd: 436
    functionName: tunnel_poll_thread
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - CAST_OBJ_NOTNULL
    - pthread_mutex_lock
    - vtc_logopen
    - assert
    - strerror
    - vtc_fatal
    - poll
    - tunnel_read
    - vtc_logclose
    - pthread_cond_wait
    - tunnel_is_open
    - pthread_cleanup_push
    - memset
    - PTOK
    - tunnel_write
    - pthread_cleanup_pop
    - pthread_cond_signal
    - AZ
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: 'void *

      tunnel_poll_thread(void *priv)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_tunnel.c:449,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:450,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:451,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:452,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:453,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_tunnel.c:455,1
    - Dst: accept
      Src: /src/VTest2/src/vtc_tunnel.c:456,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:458,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_tunnel.c:458,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_tunnel.c:459,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc_tunnel.c:461,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_tunnel.c:462,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_tunnel.c:463,1
    - Dst: VTCP_open
      Src: /src/VTest2/src/vtc_tunnel.c:465,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:467,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_tunnel.c:468,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_tunnel.c:469,1
    - Dst: VTCP_blocking
      Src: /src/VTest2/src/vtc_tunnel.c:471,1
    - Dst: VTCP_blocking
      Src: /src/VTest2/src/vtc_tunnel.c:472,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:474,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:474,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:486,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_tunnel.c:486,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:487,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 2
    argNames:
    - t
    - vl
    argTypes:
    - struct tunnel*
    - struct vtclog*
    assertStmts:
    - condition: (t->csock < 0)
      pos:
        line_end: 451
        line_start: 451
        source_file: /src/VTest2/src/vtc_tunnel.c
    - condition: (t->state == TUNNEL_ACCEPT)
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/VTest2/src/vtc_tunnel.c
    - condition: (t->lsock >= 0)
      pos:
        line_end: 449
        line_start: 449
        source_file: /src/VTest2/src/vtc_tunnel.c
    - condition: (t->asock < 0)
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/VTest2/src/vtc_tunnel.c
    constantsTouched: []
    func_position:
      end: 488
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 488
    functionName: tunnel_accept
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - VSB_data
    - assert
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - strerror
    - vtc_fatal
    - accept
    - macro_expand
    - VSB_destroy
    - VTCP_blocking
    - PTOK
    - pthread_mutex_lock
    - pthread_cond_signal
    - AN
    - VTCP_open
    linkageType: ''
    returnType: void
    signature: void tunnel_accept(struct tunnel *t, struct vtclog *vl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_tunnel.c:497,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_tunnel.c:498,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_tunnel.c:500,1
    - Dst: vtc_log_set_cmd
      Src: /src/VTest2/src/vtc_tunnel.c:501,1
    - Dst: pthread_cleanup_push
      Src: /src/VTest2/src/vtc_tunnel.c:502,1
    - Dst: tunnel_accept
      Src: /src/VTest2/src/vtc_tunnel.c:504,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_tunnel.c:505,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:507,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:507,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:509,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:509,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_tunnel.c:512,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:514,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:514,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:516,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_tunnel.c:516,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:517,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:517,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_tunnel.c:519,1
    - Dst: pthread_cleanup_pop
      Src: /src/VTest2/src/vtc_tunnel.c:520,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_tunnel.c:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 490
    functionDepth: 4
    functionLinenumber: 490
    functionLinenumberEnd: 523
    functionName: tunnel_spec_thread
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - parse_string
    - pthread_cleanup_pop
    - vtc_log
    - tunnel_accept
    - vtc_log_set_cmd
    - vtc_logclose
    - CAST_OBJ_NOTNULL
    - PTOK
    - pthread_mutex_lock
    - pthread_cond_signal
    - pthread_cleanup_push
    - AN
    - pthread_mutex_unlock
    - vtc_logopen
    linkageType: ''
    returnType: void
    signature: 'void *

      tunnel_spec_thread(void *priv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_tunnel.c:534,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_tunnel.c:535,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_tunnel.c:536,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_tunnel.c:537,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_tunnel.c:538,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_tunnel.c:541,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_tunnel.c:542,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:550,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc_tunnel.c:550,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:551,1
    - Dst: pthread_cond_init
      Src: /src/VTest2/src/vtc_tunnel.c:551,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:552,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:552,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_tunnel.c:553,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:554,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 556
    functionName: tunnel_new
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - ALLOC_OBJ
    - pthread_mutex_init
    - REPLACE
    - VTAILQ_INSERT_TAIL
    - pthread_cond_init
    - PTOK
    - bprintf
    - pthread_mutex_lock
    - AN
    - pthread_mutex_unlock
    - vtc_logopen
    linkageType: ''
    returnType: struct tunnel
    signature: 'struct tunnel *

      tunnel_new(const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_tunnel.c:562,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:563,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:564,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_tunnel.c:566,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_tunnel.c:567,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_tunnel.c:568,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_tunnel.c:569,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_tunnel.c:570,1
    - Dst: pthread_mutex_destroy
      Src: /src/VTest2/src/vtc_tunnel.c:571,1
    - Dst: pthread_cond_destroy
      Src: /src/VTest2/src/vtc_tunnel.c:572,1
    - Dst: free
      Src: /src/VTest2/src/vtc_tunnel.c:573,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_tunnel.c:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tunnel*
    assertStmts:
    - condition: (t->csock < 0)
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/VTest2/src/vtc_tunnel.c
    - condition: (t->asock < 0)
      pos:
        line_end: 562
        line_start: 562
        source_file: /src/VTest2/src/vtc_tunnel.c
    constantsTouched: []
    func_position:
      end: 575
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 575
    functionName: tunnel_delete
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - VTCP_close
    - assert
    - CHECK_OBJ_NOTNULL
    - FREE_OBJ
    - free
    - macro_undef
    - pthread_cond_destroy
    - vtc_logclose
    linkageType: ''
    returnType: void
    signature: void tunnel_delete(struct tunnel *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_tunnel.c:589,1
    - Dst: VTCP_listen_on
      Src: /src/VTest2/src/vtc_tunnel.c:590,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:592,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:595,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/src/vtc_tunnel.c:596,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_tunnel.c:597,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_tunnel.c:598,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_tunnel.c:601,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_tunnel.c:602,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_tunnel.c:604,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_tunnel.c:606,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_tunnel.c:607,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_tunnel.c:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tunnel*
    assertStmts:
    - condition: (t->lsock > 0)
      pos:
        line_end: 594
        line_start: 594
        source_file: /src/VTest2/src/vtc_tunnel.c
    constantsTouched: []
    func_position:
      end: 609
      start: 581
    functionDepth: 3
    functionLinenumber: 581
    functionLinenumberEnd: 609
    functionName: tunnel_listen
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - VTCP_name
    - VTCP_close
    - assert
    - vtc_fatal
    - VSA_getsockname
    - VSA_Get_Proto
    - VTCP_listen_on
    - bprintf
    - AN
    - macro_def
    linkageType: ''
    returnType: void
    signature: void tunnel_listen(struct tunnel *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_tunnel.c:619,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_tunnel.c:620,1
    - Dst: tunnel_listen
      Src: /src/VTest2/src/vtc_tunnel.c:621,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_tunnel.c:622,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:623,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:629,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_tunnel.c:629,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:630,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_tunnel.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tunnel*
    assertStmts:
    - condition: (t->state == TUNNEL_STOPPED)
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/VTest2/src/vtc_tunnel.c
    constantsTouched: []
    func_position:
      end: 631
      start: 615
    functionDepth: 4
    functionLinenumber: 615
    functionLinenumberEnd: 631
    functionName: tunnel_start
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - tunnel_listen
    - pthread_create
    - assert
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - PTOK
    linkageType: ''
    returnType: void
    signature: void tunnel_start(struct tunnel *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_tunnel.c:637,1
    - Dst: tunnel_start
      Src: /src/VTest2/src/vtc_tunnel.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tunnel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 633
    functionDepth: 5
    functionLinenumber: 633
    functionLinenumberEnd: 640
    functionName: tunnel_start_pause
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - tunnel_start
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void tunnel_start_pause(struct tunnel *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_tunnel.c:651,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_tunnel.c:652,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:654,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_tunnel.c:654,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:656,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_tunnel.c:656,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:658,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:660,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_tunnel.c:660,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:662,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_tunnel.c:665,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_tunnel.c:667,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tunnel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 671
    functionName: tunnel_wait
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - VTCP_close
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - PTOK
    - pthread_cond_signal
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void tunnel_wait(struct tunnel *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:683,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:683,1
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/src/vtc_tunnel.c:684,1
    - Dst: CHECK_OBJ_ORNULL
      Src: /src/VTest2/src/vtc_tunnel.c:685,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_tunnel.c:687,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:688,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:688,1
    - Dst: tunnel_wait
      Src: /src/VTest2/src/vtc_tunnel.c:693,1
    - Dst: tunnel_delete
      Src: /src/VTest2/src/vtc_tunnel.c:694,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 677
    functionDepth: 4
    functionLinenumber: 677
    functionLinenumberEnd: 696
    functionName: tunnel_reset
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - tunnel_wait
    - VTAILQ_FIRST
    - PTOK
    - CHECK_OBJ_ORNULL
    - tunnel_delete
    - pthread_mutex_lock
    - VTAILQ_REMOVE
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void tunnel_reset(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tunnel_reset
      Src: /src/VTest2/src/vtc_tunnel.c:711,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_tunnel.c:715,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_tunnel.c:715,1
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_tunnel.c:718,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:720,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_tunnel.c:720,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_tunnel.c:721,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_tunnel.c:722,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:724,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_tunnel.c:724,1
    - Dst: tunnel_new
      Src: /src/VTest2/src/vtc_tunnel.c:726,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_tunnel.c:727,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_tunnel.c:733,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:735,1
    - Dst: tunnel_wait
      Src: /src/VTest2/src/vtc_tunnel.c:736,1
    - Dst: tunnel_wait
      Src: /src/VTest2/src/vtc_tunnel.c:742,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_tunnel.c:744,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_tunnel.c:745,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_tunnel.c:746,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_tunnel.c:750,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_tunnel.c:751,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_tunnel.c:755,1
    - Dst: tunnel_start
      Src: /src/VTest2/src/vtc_tunnel.c:756,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_tunnel.c:759,1
    - Dst: tunnel_start_pause
      Src: /src/VTest2/src/vtc_tunnel.c:760,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_tunnel.c:764,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (t->state == TUNNEL_STOPPED)
      pos:
        line_end: 743
        line_start: 743
        source_file: /src/VTest2/src/vtc_tunnel.c
    constantsTouched: []
    func_position:
      end: 767
      start: 702
    functionDepth: 6
    functionLinenumber: 702
    functionLinenumberEnd: 767
    functionName: cmd_tunnel
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 0
    functionsReached:
    - tunnel_reset
    - VTAILQ_FOREACH
    - tunnel_wait
    - assert
    - CHECK_OBJ_NOTNULL
    - tunnel_start_pause
    - vtc_fatal
    - strcmp
    - tunnel_start
    - tunnel_new
    - PTOK
    - bprintf
    - pthread_mutex_lock
    - AZ
    - pthread_mutex_unlock
    - VTC_CHECK_NAME
    linkageType: ''
    returnType: void
    signature: void cmd_tunnel(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_tunnel.c:773,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc_tunnel.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 774
    functionName: init_tunnel
    functionSourceFile: /src/VTest2/src/vtc_tunnel.c
    functionUses: 1
    functionsReached:
    - PTOK
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void init_tunnel(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - vl
    - ','
    - nm
    - ','
    - type
    - ','
    - chr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: VTC_CHECK_NAME
    functionSourceFile: /src/VTest2/src/vtest_api.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTC_CHECK_NAME(vl, nm, type, chr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - k
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: STAT_HDRS
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAT_HDRS(i, k, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/VTest2/src/vtc_h2_tbl.c:85,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_tbl.c:86,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_tbl.c:87,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_tbl.c:88,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_tbl.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - buf
    - size
    argTypes:
    - struct hpk_ctx*
    - void*
    - int
    assertStmts:
    - condition: (iter)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/VTest2/src/vtc_h2_tbl.c
    - condition: (ctx)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/VTest2/src/vtc_h2_tbl.c
    - condition: (size)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/VTest2/src/vtc_h2_tbl.c
    - condition: (buf)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/VTest2/src/vtc_h2_tbl.c
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: HPK_NewIter
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 2
    functionsReached:
    - malloc
    - assert
    linkageType: ''
    returnType: struct hpk_iter
    signature: 'struct hpk_iter *

      HPK_NewIter(struct hpk_ctx *ctx, void *buf, int size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/VTest2/src/vtc_h2_tbl.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct hpk_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: HPK_FreeIter
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void HPK_FreeIter(struct hpk_iter *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_tbl.c:106,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_h2_tbl.c:106,1
    - Dst: VTAILQ_LAST
      Src: /src/VTest2/src/vtc_h2_tbl.c:107,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_h2_tbl.c:108,1
    - Dst: free
      Src: /src/VTest2/src/vtc_h2_tbl.c:110,1
    - Dst: free
      Src: /src/VTest2/src/vtc_h2_tbl.c:111,1
    - Dst: free
      Src: /src/VTest2/src/vtc_h2_tbl.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct hpk_ctx*
    assertStmts:
    - condition: (!VTAILQ_EMPTY(&ctx->dyntbl))
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/VTest2/src/vtc_h2_tbl.c
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: pop_header
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 0
    functionsReached:
    - assert
    - VTAILQ_LAST
    - free
    - VTAILQ_EMPTY
    - VTAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void pop_header(struct hpk_ctx *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_tbl.c:122,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_tbl.c:123,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_tbl.c:131,1
    - Dst: HPK_GetHdr
      Src: /src/VTest2/src/vtc_h2_tbl.c:132,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_tbl.c:133,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_h2_tbl.c:137,1
    - Dst: pop_header
      Src: /src/VTest2/src/vtc_h2_tbl.c:138,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_h2_tbl.c:140,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_tbl.c:141,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_h2_tbl.c:146,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_tbl.c:147,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_h2_tbl.c:148,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_tbl.c:151,1
    - Dst: HPK_GetHdr
      Src: /src/VTest2/src/vtc_h2_tbl.c:152,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_tbl.c:153,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_h2_tbl.c:156,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_tbl.c:157,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_h2_tbl.c:158,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_h2_tbl.c:163,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_tbl.c:164,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_h2_tbl.c:165,1
    - Dst: VTAILQ_INSERT_HEAD
      Src: /src/VTest2/src/vtc_h2_tbl.c:167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 2
    argNames:
    - ctx
    - oh
    argTypes:
    - struct hpk_ctx*
    - struct hpk_hdr*
    assertStmts:
    - condition: (ctx->size <= ctx->maxsize)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/VTest2/src/vtc_h2_tbl.c
    constantsTouched: []
    func_position:
      end: 171
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 171
    functionName: push_header
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 0
    functionsReached:
    - malloc
    - assert
    - memcpy
    - HPK_GetHdr
    - pop_header
    - VTAILQ_INSERT_HEAD
    - VTAILQ_EMPTY
    - AN
    linkageType: ''
    returnType: void
    signature: void push_header (struct hpk_ctx *ctx, const struct hpk_hdr *oh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_h2_tbl.c:177,1
    - Dst: pop_header
      Src: /src/VTest2/src/vtc_h2_tbl.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - num
    argTypes:
    - struct hpk_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: HPK_ResizeTbl
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 3
    functionsReached:
    - pop_header
    - VTAILQ_EMPTY
    linkageType: ''
    returnType: enum hpk_result
    signature: enum hpk_result HPK_ResizeTbl(struct hpk_ctx *ctx, uint32_t num)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_tbl.c:186,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_h2_tbl.c:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - idx
    - key
    argTypes:
    - struct hpk_ctx*
    - uint32_t
    - int
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/VTest2/src/vtc_h2_tbl.c
    constantsTouched: []
    func_position:
      end: 207
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 207
    functionName: tbl_get_field
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH
    - assert
    linkageType: ''
    returnType: struct hpk_txt
    signature: 'struct hpk_txt *

      tbl_get_field(const struct hpk_ctx *ctx, uint32_t idx, int key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tbl_get_field
      Src: /src/VTest2/src/vtc_h2_tbl.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - struct hpk_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: tbl_get_key
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 0
    functionsReached:
    - tbl_get_field
    linkageType: ''
    returnType: struct hpk_txt
    signature: 'struct hpk_txt *

      tbl_get_key(const struct hpk_ctx *ctx, uint32_t idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tbl_get_field
      Src: /src/VTest2/src/vtc_h2_tbl.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - struct hpk_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: tbl_get_value
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 0
    functionsReached:
    - tbl_get_field
    linkageType: ''
    returnType: struct hpk_txt
    signature: 'struct hpk_txt *

      tbl_get_value(const struct hpk_ctx *ctx, uint32_t idx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_tbl.c:226,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_h2_tbl.c:233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - struct hpk_ctx*
    - uint32_t
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/VTest2/src/vtc_h2_tbl.c
    constantsTouched: []
    func_position:
      end: 241
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 241
    functionName: HPK_GetHdr
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 2
    functionsReached:
    - VTAILQ_FOREACH
    - assert
    linkageType: ''
    returnType: struct hpk_hdr
    signature: 'struct hpk_hdr *

      HPK_GetHdr(const struct hpk_ctx *ctx, uint32_t idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct hpk_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: HPK_GetTblSize
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t HPK_GetTblSize(const struct hpk_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct hpk_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: HPK_GetTblMaxSize
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t HPK_GetTblMaxSize(const struct hpk_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_h2_tbl.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct hpk_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 263
    functionName: HPK_GetTblLength
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 1
    functionsReached:
    - VTAILQ_FOREACH
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t HPK_GetTblLength(const struct hpk_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/VTest2/src/vtc_h2_tbl.c:271,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_h2_tbl.c:272,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_h2_tbl.c:273,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_h2_tbl.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct hpk_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 277
    functionName: dump_dyn_tbl
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_dyn_tbl(const struct hpk_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/VTest2/src/vtc_h2_tbl.c:283,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_tbl.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - maxsize
    argTypes:
    - uint32_t
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/VTest2/src/vtc_h2_tbl.c
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: HPK_NewCtx
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 1
    functionsReached:
    - calloc
    - assert
    linkageType: ''
    returnType: struct hpk_ctx
    signature: 'struct hpk_ctx *

      HPK_NewCtx(uint32_t maxsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_h2_tbl.c:295,1
    - Dst: pop_header
      Src: /src/VTest2/src/vtc_h2_tbl.c:296,1
    - Dst: free
      Src: /src/VTest2/src/vtc_h2_tbl.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct hpk_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: HPK_FreeCtx
    functionSourceFile: /src/VTest2/src/vtc_h2_tbl.c
    functionUses: 1
    functionsReached:
    - pop_header
    - free
    - VTAILQ_EMPTY
    linkageType: ''
    returnType: void
    signature: void HPK_FreeCtx(struct hpk_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_gzip.c:49,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_gzip.c:52,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_gzip.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - vl
    - vz
    argTypes:
    - struct vtclog*
    - z_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: vtc_report_gz_bits
    functionSourceFile: /src/VTest2/src/vtc_gzip.c
    functionUses: 0
    functionsReached:
    - vtc_log
    linkageType: ''
    returnType: void
    signature: void vtc_report_gz_bits(struct vtclog *vl, const z_stream *vz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_gzip.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sz
    argTypes:
    - ssize_t
    assertStmts:
    - condition: (sz >= 0)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/VTest2/src/vtc_gzip.c
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: APOS
    functionSourceFile: /src/VTest2/src/vtc_gzip.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t APOS(ssize_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/VTest2/src/vtc_gzip.c:80,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_gzip.c:81,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_gzip.c:82,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_gzip.c:84,1
    - Dst: APOS
      Src: /src/VTest2/src/vtc_gzip.c:85,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_gzip.c:85,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_gzip.c:87,1
    - Dst: inflateInit2
      Src: /src/VTest2/src/vtc_gzip.c:87,1
    - Dst: inflate
      Src: /src/VTest2/src/vtc_gzip.c:92,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_gzip.c:94,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_gzip.c:97,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_gzip.c:100,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_gzip.c:101,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_gzip.c:101,1
    - Dst: vtc_report_gz_bits
      Src: /src/VTest2/src/vtc_gzip.c:103,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_gzip.c:105,1
    - Dst: inflateEnd
      Src: /src/VTest2/src/vtc_gzip.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - vl
    - fatal
    - vin
    argTypes:
    - struct vtclog*
    - int
    - struct vsb*
    assertStmts:
    - condition: (Z_OK == inflateInit2(&vz, 31))
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/VTest2/src/vtc_gzip.c
    - condition: (Z_OK == inflateEnd(&vz))
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/VTest2/src/vtc_gzip.c
    constantsTouched: []
    func_position:
      end: 107
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 107
    functionName: vtc_gunzip_vsb
    functionSourceFile: /src/VTest2/src/vtc_gzip.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - memset
    - APOS
    - VSB_len
    - assert
    - vtc_log
    - AZ
    - VSB_finish
    - vtc_report_gz_bits
    - VSB_new_auto
    - inflateInit2
    - inflateEnd
    - inflate
    - AN
    - VSB_bcat
    linkageType: ''
    returnType: struct vsb
    signature: 'struct vsb *

      vtc_gunzip_vsb(struct vtclog *vl, int fatal, const struct vsb *vin)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_gzip.c:114,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_gzip.c:116,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_gzip.c:119,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_gzip.c:120,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_gzip.c:121,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_gzip.c:122,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_gzip.c:122,1
    - Dst: vtc_gunzip_vsb
      Src: /src/VTest2/src/vtc_gzip.c:123,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_gzip.c:124,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_gzip.c:126,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_gzip.c:126,1
    - Dst: APOS
      Src: /src/VTest2/src/vtc_gzip.c:126,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_gzip.c:126,1
    - Dst: APOS
      Src: /src/VTest2/src/vtc_gzip.c:127,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_gzip.c:127,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_gzip.c:128,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_gzip.c:129,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_gzip.c:130,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_gzip.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - hp
    - body
    - bodylen
    argTypes:
    - struct http*
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 132
    functionName: vtc_gunzip
    functionSourceFile: /src/VTest2/src/vtc_gzip.c
    functionUses: 1
    functionsReached:
    - VSB_data
    - VSB_len
    - APOS
    - vtc_log
    - memcpy
    - vtc_gunzip_vsb
    - VSB_finish
    - vtc_dump
    - VSB_destroy
    - VSB_new_auto
    - bprintf
    - AZ
    - AN
    - VSB_bcat
    linkageType: ''
    returnType: void
    signature: void vtc_gunzip(struct http *hp, char *body, long *bodylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRUST_ME
      Src: /src/VTest2/src/vtc_gzip.c:144,1
    - Dst: APOS
      Src: /src/VTest2/src/vtc_gzip.c:145,1
    - Dst: deflate
      Src: /src/VTest2/src/vtc_gzip.c:149,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_gzip.c:151,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_gzip.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - vz
    - vout
    - in
    - inlen
    - flush
    argTypes:
    - z_stream*
    - struct vsb*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 159
    functionName: vtc_gzip_chunk
    functionSourceFile: /src/VTest2/src/vtc_gzip.c
    functionUses: 0
    functionsReached:
    - APOS
    - deflate
    - AZ
    - TRUST_ME
    - VSB_bcat
    linkageType: ''
    returnType: int
    signature: int vtc_gzip_chunk(z_stream *vz, struct vsb *vout, const char *in,
      size_t inlen, int flush)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/VTest2/src/vtc_gzip.c:166,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_gzip.c:169,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_gzip.c:170,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_gzip.c:171,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_gzip.c:173,1
    - Dst: deflateInit2
      Src: /src/VTest2/src/vtc_gzip.c:173,1
    - Dst: vtc_gzip_chunk
      Src: /src/VTest2/src/vtc_gzip.c:178,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_gzip.c:180,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_gzip.c:183,1
    - Dst: vtc_gzip_chunk
      Src: /src/VTest2/src/vtc_gzip.c:189,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_gzip.c:191,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_gzip.c:194,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_gzip.c:196,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_gzip.c:196,1
    - Dst: vtc_report_gz_bits
      Src: /src/VTest2/src/vtc_gzip.c:199,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_gzip.c:203,1
    - Dst: deflateEnd
      Src: /src/VTest2/src/vtc_gzip.c:203,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_gzip.c:207,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_gzip.c:211,1
    - Dst: APOS
      Src: /src/VTest2/src/vtc_gzip.c:211,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_gzip.c:211,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_gzip.c:212,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_gzip.c:213,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_gzip.c:213,1
    - Dst: APOS
      Src: /src/VTest2/src/vtc_gzip.c:213,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_gzip.c:213,1
    - Dst: APOS
      Src: /src/VTest2/src/vtc_gzip.c:214,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_gzip.c:214,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_gzip.c:215,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_gzip.c:216,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_gzip.c:217,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_gzip.c:218,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 5
    argNames:
    - hp
    - input
    - body
    - bodylen
    - fragment
    argTypes:
    - struct http*
    - char*
    - char**
    - long*
    - int
    assertStmts:
    - condition: "(Z_OK == deflateInit2(&vz,\n\t    hp->gziplevel, Z_DEFLATED, 31,
        9, Z_DEFAULT_STRATEGY))"
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/VTest2/src/vtc_gzip.c
    - condition: (Z_OK == deflateEnd(&vz))
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/VTest2/src/vtc_gzip.c
    constantsTouched: []
    func_position:
      end: 219
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 219
    functionName: vtc_gzip
    functionSourceFile: /src/VTest2/src/vtc_gzip.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - vtc_log
    - AN
    - deflateInit2
    - assert
    - APOS
    - VSB_destroy
    - VSB_new_auto
    - malloc
    - VSB_len
    - memcpy
    - bprintf
    - VSB_finish
    - deflateEnd
    - memset
    - vtc_gzip_chunk
    - vtc_dump
    - vtc_report_gz_bits
    - AZ
    - strlen
    linkageType: ''
    returnType: void
    signature: void vtc_gzip(struct http *hp, const char *input, char **body, long
      *bodylen, int fragment)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_gzip.c:226,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_gzip.c:227,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_gzip.c:228,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_gzip.c:229,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_gzip.c:231,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_gzip.c:232,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_gzip.c:235,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_gzip.c:236,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_gzip.c:239,1
    - Dst: free
      Src: /src/VTest2/src/vtc_gzip.c:241,1
    - Dst: vtc_gzip
      Src: /src/VTest2/src/vtc_gzip.c:243,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_gzip.c:244,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_gzip.c:247,1
    - Dst: free
      Src: /src/VTest2/src/vtc_gzip.c:249,1
    - Dst: synth_body
      Src: /src/VTest2/src/vtc_gzip.c:251,1
    - Dst: vtc_gzip
      Src: /src/VTest2/src/vtc_gzip.c:252,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_gzip.c:253,1
    - Dst: free
      Src: /src/VTest2/src/vtc_gzip.c:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - hp
    - av
    - body
    - bodylen
    argTypes:
    - struct http*
    - char**
    - char**
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 258
    functionName: vtc_gzip_cmd
    functionSourceFile: /src/VTest2/src/vtc_gzip.c
    functionUses: 1
    functionsReached:
    - synth_body
    - strcmp
    - strtoul
    - free
    - AN
    - vtc_gzip
    linkageType: ''
    returnType: int
    signature: int vtc_gzip_cmd(struct http *hp, char * const *av, char **body, long
      *bodylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: CMD_SYSLOG
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_SYSLOG(nm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:107,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - vl
    - lvl
    argTypes:
    - struct vtclog*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: get_syslog_level
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - vtc_fatal
    - strcmp
    linkageType: ''
    returnType: int
    signature: int get_syslog_level(struct vtclog *vl, const char *lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_syslog.c:121,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_syslog.c:122,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_syslog.c:123,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_syslog.c:124,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_syslog.c:125,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_syslog.c:126,1
    - Dst: vtc_log_set_cmd
      Src: /src/VTest2/src/vtc_syslog.c:127,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_syslog.c:129,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_syslog.c:135,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_syslog.c:136,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_syslog.c:139,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_syslog.c:140,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_syslog.c:142,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_syslog.c:142,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_syslog.c:143,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_syslog.c:144,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_syslog.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - name
    - vl
    argTypes:
    - char*
    - struct vtclog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 146
    functionName: syslog_new
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - malloc
    - VTC_CHECK_NAME
    - ALLOC_OBJ
    - vtc_log_set_cmd
    - REPLACE
    - VTAILQ_INSERT_TAIL
    - PTOK
    - bprintf
    - pthread_mutex_lock
    - AN
    - pthread_mutex_unlock
    - vtc_logopen
    linkageType: ''
    returnType: struct syslog_srv
    signature: 'struct syslog_srv *

      syslog_new(const char *name, struct vtclog *vl)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_syslog.c:156,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_syslog.c:157,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_syslog.c:158,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_syslog.c:159,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_syslog.c:160,1
    - Dst: free
      Src: /src/VTest2/src/vtc_syslog.c:161,1
    - Dst: free
      Src: /src/VTest2/src/vtc_syslog.c:162,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_syslog.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct syslog_srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 165
    functionName: syslog_delete
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - FREE_OBJ
    - free
    - macro_undef
    - vtc_logclose
    linkageType: ''
    returnType: void
    signature: void syslog_delete(struct syslog_srv *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VTCP_set_read_timeout
      Src: /src/VTest2/src/vtc_syslog.c:177,1
    - Dst: recv
      Src: /src/VTest2/src/vtc_syslog.c:179,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:184,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_syslog.c:186,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:189,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_syslog.c:194,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:198,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc_syslog.c:199,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:201,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_syslog.c:203,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:205,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - s
    - lvl
    argTypes:
    - struct syslog_srv*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 210
    functionName: syslog_rx
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - VTCP_set_read_timeout
    - strerror
    - recv
    - vtc_fatal
    - strtoul
    - strchr
    - vtc_dump
    linkageType: ''
    returnType: void
    signature: void syslog_rx(const struct syslog_srv *s, int lvl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_syslog.c:225,1
    - Dst: VUDP_close
      Src: /src/VTest2/src/vtc_syslog.c:228,1
    - Dst: VUDP_bind_on
      Src: /src/VTest2/src/vtc_syslog.c:229,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:231,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_syslog.c:234,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/src/vtc_syslog.c:235,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_syslog.c:236,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_syslog.c:237,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_syslog.c:238,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_syslog.c:239,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_syslog.c:240,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_syslog.c:241,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_syslog.c:243,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_syslog.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct syslog_srv*
    assertStmts:
    - condition: (s->sock > 0)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/VTest2/src/vtc_syslog.c
    constantsTouched: []
    func_position:
      end: 246
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 246
    functionName: syslog_bind
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - VTCP_name
    - assert
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - VUDP_bind_on
    - VSA_getsockname
    - VSA_Get_Proto
    - bprintf
    - VUDP_close
    - AN
    - macro_def
    linkageType: ''
    returnType: void
    signature: void syslog_bind(struct syslog_srv *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_syslog.c:258,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_syslog.c:259,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:259,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_syslog.c:264,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_syslog.c:265,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_syslog.c:266,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_syslog.c:268,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:268,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:268,1
    - Dst: VRE_compile
      Src: /src/VTest2/src/vtc_syslog.c:270,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_syslog.c:272,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_syslog.c:272,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_syslog.c:273,1
    - Dst: VRE_error
      Src: /src/VTest2/src/vtc_syslog.c:273,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_syslog.c:274,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_syslog.c:274,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_syslog.c:275,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:276,1
    - Dst: VRE_match
      Src: /src/VTest2/src/vtc_syslog.c:280,1
    - Dst: VRE_free
      Src: /src/VTest2/src/vtc_syslog.c:282,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:286,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_syslog.c:288,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!strcmp(cmp, "~") || !strcmp(cmp, "!~"))
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/VTest2/src/vtc_syslog.c
    constantsTouched: []
    func_position:
      end: 289
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 289
    functionName: cmd_syslog_expect
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - assert
    - vtc_log
    - VSB_finish
    - strcmp
    - CAST_OBJ_NOTNULL
    - vtc_fatal
    - VRE_free
    - VRE_compile
    - VSB_fini
    - VSB_init
    - AZ
    - AN
    - VRE_error
    - VRE_match
    linkageType: ''
    returnType: void
    signature: void cmd_syslog_expect(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_syslog.c:297,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_syslog.c:299,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:299,1
    - Dst: get_syslog_level
      Src: /src/VTest2/src/vtc_syslog.c:304,1
    - Dst: syslog_rx
      Src: /src/VTest2/src/vtc_syslog.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 292
    functionDepth: 5
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: cmd_syslog_recv
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - syslog_rx
    - strcmp
    - CAST_OBJ_NOTNULL
    - get_syslog_level
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_syslog_recv(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_syslog.c:319,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_syslog.c:320,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_syslog.c:322,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_syslog.c:325,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_syslog.c:326,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_syslog.c:327,1
    - Dst: VUDP_close
      Src: /src/VTest2/src/vtc_syslog.c:329,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_syslog.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts:
    - condition: (s->sock >= 0)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/VTest2/src/vtc_syslog.c
    constantsTouched: []
    func_position:
      end: 332
      start: 313
    functionDepth: 4
    functionLinenumber: 313
    functionLinenumberEnd: 332
    functionName: syslog_thread
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - parse_string
    - assert
    - vtc_log
    - CAST_OBJ_NOTNULL
    - VUDP_close
    linkageType: ''
    returnType: void
    signature: 'void *

      syslog_thread(void *priv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_syslog.c:341,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_syslog.c:342,1
    - Dst: syslog_bind
      Src: /src/VTest2/src/vtc_syslog.c:344,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_syslog.c:345,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_syslog.c:347,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_syslog.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct syslog_srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 348
    functionName: syslog_start
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - syslog_bind
    - PTOK
    linkageType: ''
    returnType: void
    signature: void syslog_start(struct syslog_srv *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_syslog.c:359,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_syslog.c:360,1
    - Dst: pthread_cancel
      Src: /src/VTest2/src/vtc_syslog.c:361,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_syslog.c:362,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_syslog.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct syslog_srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 365
    functionName: syslog_stop
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - pthread_cancel
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - PTOK
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void syslog_stop(struct syslog_srv *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_syslog.c:376,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_syslog.c:377,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_syslog.c:378,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_syslog.c:378,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct syslog_srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 384
    functionName: syslog_wait
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - PTOK
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void syslog_wait(struct syslog_srv *s)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_syslog.c:433,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_syslog.c:433,1
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/src/vtc_syslog.c:434,1
    - Dst: CHECK_OBJ_ORNULL
      Src: /src/VTest2/src/vtc_syslog.c:435,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_syslog.c:437,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_syslog.c:438,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_syslog.c:438,1
    - Dst: pthread_cancel
      Src: /src/VTest2/src/vtc_syslog.c:441,1
    - Dst: syslog_wait
      Src: /src/VTest2/src/vtc_syslog.c:442,1
    - Dst: VUDP_close
      Src: /src/VTest2/src/vtc_syslog.c:445,1
    - Dst: syslog_delete
      Src: /src/VTest2/src/vtc_syslog.c:446,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_syslog.c:452,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:452,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_syslog.c:455,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_syslog.c:455,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_syslog.c:456,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:457,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_syslog.c:459,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_syslog.c:459,1
    - Dst: syslog_new
      Src: /src/VTest2/src/vtc_syslog.c:461,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_syslog.c:462,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:468,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:470,1
    - Dst: syslog_wait
      Src: /src/VTest2/src/vtc_syslog.c:471,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:475,1
    - Dst: syslog_stop
      Src: /src/VTest2/src/vtc_syslog.c:476,1
    - Dst: syslog_wait
      Src: /src/VTest2/src/vtc_syslog.c:486,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_syslog.c:488,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:489,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_syslog.c:490,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_syslog.c:491,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:495,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_syslog.c:496,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_syslog.c:497,1
    - Dst: syslog_bind
      Src: /src/VTest2/src/vtc_syslog.c:499,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:502,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_syslog.c:503,1
    - Dst: get_syslog_level
      Src: /src/VTest2/src/vtc_syslog.c:504,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_syslog.c:508,1
    - Dst: syslog_start
      Src: /src/VTest2/src/vtc_syslog.c:509,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_syslog.c:513,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 424
    functionDepth: 5
    functionLinenumber: 424
    functionLinenumberEnd: 516
    functionName: cmd_syslog
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 0
    functionsReached:
    - syslog_bind
    - pthread_mutex_lock
    - atoi
    - syslog_wait
    - VUDP_close
    - AN
    - pthread_cancel
    - vtc_fatal
    - strcmp
    - syslog_delete
    - VTAILQ_FOREACH
    - syslog_stop
    - bprintf
    - VTAILQ_REMOVE
    - syslog_new
    - CHECK_OBJ_NOTNULL
    - VTAILQ_FIRST
    - PTOK
    - CHECK_OBJ_ORNULL
    - get_syslog_level
    - syslog_start
    - AZ
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void cmd_syslog(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_syslog.c:521,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc_syslog.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: init_syslog
    functionSourceFile: /src/VTest2/src/vtc_syslog.c
    functionUses: 1
    functionsReached:
    - PTOK
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void init_syslog(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_barrier.c:80,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_barrier.c:81,1
    - Dst: pthread_equal
      Src: /src/VTest2/src/vtc_barrier.c:82,1
    - Dst: pthread_self
      Src: /src/VTest2/src/vtc_barrier.c:82,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:83,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_barrier.c:85,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:87,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc_barrier.c:87,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:88,1
    - Dst: pthread_cond_init
      Src: /src/VTest2/src/vtc_barrier.c:88,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_barrier.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - name
    - vl
    argTypes:
    - char*
    - struct vtclog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: barrier_new
    functionSourceFile: /src/VTest2/src/vtc_barrier.c
    functionUses: 0
    functionsReached:
    - ALLOC_OBJ
    - vtc_fatal
    - pthread_mutex_init
    - REPLACE
    - VTAILQ_INSERT_TAIL
    - pthread_cond_init
    - PTOK
    - pthread_self
    - AN
    - pthread_equal
    linkageType: ''
    returnType: struct barrier
    signature: 'struct barrier *

      barrier_new(const char *name, struct vtclog *vl)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:105,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_barrier.c:108,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_barrier.c:109,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_barrier.c:110,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - av
    - vl
    argTypes:
    - struct barrier*
    - char*
    - struct vtclog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: barrier_expect
    functionSourceFile: /src/VTest2/src/vtc_barrier.c
    functionUses: 0
    functionsReached:
    - vtc_fatal
    - AZ
    - strtoul
    linkageType: ''
    returnType: void
    signature: void barrier_expect(struct barrier *b, const char *av, struct vtclog
      *vl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_barrier.c:123,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:124,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_barrier.c:124,1
    - Dst: barrier_expect
      Src: /src/VTest2/src/vtc_barrier.c:125,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:127,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_barrier.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - b
    - av
    - vl
    argTypes:
    - struct barrier*
    - char*
    - struct vtclog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: barrier_cond
    functionSourceFile: /src/VTest2/src/vtc_barrier.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - barrier_expect
    - PTOK
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void barrier_cond(struct barrier *b, const char *av, struct vtclog
      *vl)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_barrier.c:143,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_barrier.c:144,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:146,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_barrier.c:146,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_barrier.c:148,1
    - Dst: pthread_cleanup_push
      Src: /src/VTest2/src/vtc_barrier.c:149,1
    - Dst: VTCP_listen_on
      Src: /src/VTest2/src/vtc_barrier.c:151,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:153,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_barrier.c:153,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:154,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_barrier.c:154,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:155,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_barrier.c:156,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_barrier.c:158,1
    - Dst: VTCP_nonblocking
      Src: /src/VTest2/src/vtc_barrier.c:159,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/src/vtc_barrier.c:160,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_barrier.c:161,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_barrier.c:162,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_barrier.c:164,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_barrier.c:165,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_barrier.c:166,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_barrier.c:167,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_barrier.c:169,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:171,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_barrier.c:171,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:172,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_barrier.c:172,1
    - Dst: calloc
      Src: /src/VTest2/src/vtc_barrier.c:174,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_barrier.c:175,1
    - Dst: poll
      Src: /src/VTest2/src/vtc_barrier.c:181,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_barrier.c:187,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:188,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_barrier.c:190,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_barrier.c:192,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_barrier.c:193,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:195,1
    - Dst: accept
      Src: /src/VTest2/src/vtc_barrier.c:200,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_barrier.c:202,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:203,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_barrier.c:205,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_barrier.c:214,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_barrier.c:219,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_barrier.c:221,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_barrier.c:232,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:234,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_barrier.c:238,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_barrier.c:239,1
    - Dst: macro_undef
      Src: /src/VTest2/src/vtc_barrier.c:240,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_barrier.c:241,1
    - Dst: free
      Src: /src/VTest2/src/vtc_barrier.c:242,1
    - Dst: pthread_cleanup_pop
      Src: /src/VTest2/src/vtc_barrier.c:243,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_barrier.c:244,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts:
    - condition: (sock > 0)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/VTest2/src/vtc_barrier.c
    - condition: (b->type == BARRIER_SOCK)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/VTest2/src/vtc_barrier.c
    - condition: (i == 1)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/VTest2/src/vtc_barrier.c
    - condition: (b->waiters <= b->expected)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/VTest2/src/vtc_barrier.c
    constantsTouched: []
    func_position:
      end: 246
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 246
    functionName: barrier_sock_thread
    functionSourceFile: /src/VTest2/src/vtc_barrier.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CAST_OBJ_NOTNULL
    - accept
    - VSA_Get_Proto
    - free
    - VTCP_listen_on
    - pthread_mutex_lock
    - AN
    - macro_def
    - vtc_logopen
    - assert
    - strerror
    - vtc_fatal
    - closefd
    - poll
    - calloc
    - VSA_getsockname
    - vtc_logclose
    - pthread_cleanup_push
    - VTCP_name
    - macro_undef
    - PTOK
    - VTCP_nonblocking
    - pthread_cleanup_pop
    - pthread_cond_signal
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: 'void *

      barrier_sock_thread(void *priv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_barrier.c:252,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:253,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_barrier.c:253,1
    - Dst: barrier_expect
      Src: /src/VTest2/src/vtc_barrier.c:254,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:260,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_barrier.c:260,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:261,1
    - Dst: pthread_cond_wait
      Src: /src/VTest2/src/vtc_barrier.c:261,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:262,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_barrier.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - b
    - av
    - vl
    argTypes:
    - struct barrier*
    - char*
    - struct vtclog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 263
    functionName: barrier_sock
    functionSourceFile: /src/VTest2/src/vtc_barrier.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - CHECK_OBJ_NOTNULL
    - barrier_expect
    - PTOK
    - pthread_mutex_lock
    - pthread_cond_wait
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void barrier_sock(struct barrier *b, const char *av, struct vtclog
      *vl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_barrier.c:271,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:273,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_barrier.c:273,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:276,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_barrier.c:276,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:279,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:283,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:286,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_barrier.c:286,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:288,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_barrier.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - b
    - vl
    argTypes:
    - struct barrier*
    - struct vtclog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 289
    functionName: barrier_cyclic
    functionSourceFile: /src/VTest2/src/vtc_barrier.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - PTOK
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void barrier_cyclic(struct barrier *b, struct vtclog *vl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_barrier.c:301,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_barrier.c:302,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:304,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_barrier.c:304,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_barrier.c:306,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:314,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_barrier.c:314,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:317,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:321,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_barrier.c:321,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_barrier.c:323,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:327,1
    - Dst: pthread_cond_broadcast
      Src: /src/VTest2/src/vtc_barrier.c:327,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_barrier.c:329,1
    - Dst: VTIM_timespec
      Src: /src/VTest2/src/vtc_barrier.c:332,1
    - Dst: VTIM_real
      Src: /src/VTest2/src/vtc_barrier.c:332,1
    - Dst: pthread_cond_timedwait
      Src: /src/VTest2/src/vtc_barrier.c:333,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_barrier.c:334,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:338,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_barrier.c:338,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - b
    - vl
    argTypes:
    - struct barrier*
    - struct vtclog*
    assertStmts:
    - condition: (r == 0 || r == ETIMEDOUT)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/VTest2/src/vtc_barrier.c
    - condition: (w <= b->expected)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/VTest2/src/vtc_barrier.c
    - condition: (b->type == BARRIER_COND)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/VTest2/src/vtc_barrier.c
    constantsTouched: []
    func_position:
      end: 339
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 339
    functionName: barrier_cond_sync
    functionSourceFile: /src/VTest2/src/vtc_barrier.c
    functionUses: 0
    functionsReached:
    - pthread_cond_broadcast
    - assert
    - CHECK_OBJ_NOTNULL
    - vtc_log
    - vtc_fatal
    - pthread_cond_timedwait
    - PTOK
    - VTIM_timespec
    - pthread_mutex_lock
    - VTIM_real
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void barrier_cond_sync(struct barrier *b, struct vtclog *vl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_barrier.c:350,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_barrier.c:351,1
    - Dst: macro_expandf
      Src: /src/VTest2/src/vtc_barrier.c:353,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_barrier.c:354,1
    - Dst: VTCP_open
      Src: /src/VTest2/src/vtc_barrier.c:356,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_barrier.c:356,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:358,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_barrier.c:361,1
    - Dst: read
      Src: /src/VTest2/src/vtc_barrier.c:363,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_barrier.c:365,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:368,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_barrier.c:369,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - b
    - vl
    argTypes:
    - struct barrier*
    - struct vtclog*
    assertStmts:
    - condition: (b->type == BARRIER_SOCK)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/VTest2/src/vtc_barrier.c
    constantsTouched: []
    func_position:
      end: 373
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 373
    functionName: barrier_sock_sync
    functionSourceFile: /src/VTest2/src/vtc_barrier.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - assert
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - strerror
    - vtc_fatal
    - VSB_destroy
    - read
    - closefd
    - macro_expandf
    - VTCP_open
    linkageType: ''
    returnType: void
    signature: void barrier_sock_sync(const struct barrier *b, struct vtclog *vl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_barrier.c:379,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:383,1
    - Dst: barrier_cond_sync
      Src: /src/VTest2/src/vtc_barrier.c:387,1
    - Dst: barrier_sock_sync
      Src: /src/VTest2/src/vtc_barrier.c:390,1
    - Dst: WRONG
      Src: /src/VTest2/src/vtc_barrier.c:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - b
    - vl
    argTypes:
    - struct barrier*
    - struct vtclog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 395
    functionName: barrier_sync
    functionSourceFile: /src/VTest2/src/vtc_barrier.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - vtc_fatal
    - barrier_sock_sync
    - barrier_cond_sync
    - WRONG
    linkageType: ''
    returnType: void
    signature: void barrier_sync(struct barrier *b, struct vtclog *vl)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_barrier.c:454,1
    - Dst: pthread_mutex_trylock
      Src: /src/VTest2/src/vtc_barrier.c:455,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_barrier.c:456,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:461,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_barrier.c:461,1
    - Dst: WRONG
      Src: /src/VTest2/src/vtc_barrier.c:464,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_barrier.c:467,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_barrier.c:467,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_barrier.c:472,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_barrier.c:472,1
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_barrier.c:475,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_barrier.c:476,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_barrier.c:477,1
    - Dst: barrier_new
      Src: /src/VTest2/src/vtc_barrier.c:480,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_barrier.c:484,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_barrier.c:486,1
    - Dst: barrier_cond
      Src: /src/VTest2/src/vtc_barrier.c:487,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_barrier.c:490,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_barrier.c:492,1
    - Dst: barrier_sock
      Src: /src/VTest2/src/vtc_barrier.c:493,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_barrier.c:496,1
    - Dst: barrier_sync
      Src: /src/VTest2/src/vtc_barrier.c:497,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_barrier.c:500,1
    - Dst: barrier_cyclic
      Src: /src/VTest2/src/vtc_barrier.c:501,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_barrier.c:504,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (r == 0 || r == EBUSY)
      pos:
        line_end: 455
        line_start: 455
        source_file: /src/VTest2/src/vtc_barrier.c
    constantsTouched: []
    func_position:
      end: 506
      start: 444
    functionDepth: 5
    functionLinenumber: 444
    functionLinenumberEnd: 506
    functionName: cmd_barrier
    functionSourceFile: /src/VTest2/src/vtc_barrier.c
    functionUses: 0
    functionsReached:
    - barrier_sock
    - pthread_mutex_unlock
    - AZ
    - VTAILQ_FOREACH
    - assert
    - pthread_join
    - strcmp
    - barrier_new
    - barrier_cond
    - barrier_sync
    - vtc_fatal
    - PTOK
    - barrier_cyclic
    - WRONG
    - VTAILQ_FOREACH_SAFE
    - AN
    - pthread_mutex_trylock
    - VTC_CHECK_NAME
    linkageType: ''
    returnType: void
    signature: void cmd_barrier(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MACRO
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: TDARGS
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TDARGS(MACRO)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: TDVAR
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TDVAR(name, dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/src/vtc_main.c:148,1
    - Dst: CHECK_OBJ_ORNULL
      Src: /src/VTest2/src/vtc_main.c:149,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_main.c:151,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_main.c:152,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_main.c:154,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:155,1
    - Dst: mmap
      Src: /src/VTest2/src/vtc_main.c:157,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:159,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_main.c:160,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:161,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_main.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (bp->buf != MAP_FAILED)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 165
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 165
    functionName: get_buf
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - ALLOC_OBJ
    - mmap
    - VTAILQ_FIRST
    - AN
    - CHECK_OBJ_ORNULL
    - VSB_new_auto
    - VSB_clear
    - VTAILQ_REMOVE
    linkageType: ''
    returnType: struct buf
    signature: 'struct buf *

      get_buf(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_main.c:170,1
    - Dst: VTAILQ_INSERT_HEAD
      Src: /src/VTest2/src/vtc_main.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bp
    argTypes:
    - struct buf**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: rel_buf
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - VTAILQ_INSERT_HEAD
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void rel_buf(struct buf **bp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/VTest2/src/vtc_main.c:187,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 194
    functionName: parse_D_opt
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - extmacro_def
    - strchr
    linkageType: ''
    returnType: int
    signature: int parse_D_opt(char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:203,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:205,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:207,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:208,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:209,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:210,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:211,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:212,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:213,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:214,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:215,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:216,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:217,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:218,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:219,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 221
    functionName: v_noreturn_::usage
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: 'void v_noreturn_

      usage(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:235,1
    - Dst: memcmp
      Src: /src/VTest2/src/vtc_main.c:235,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:235,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:237,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:238,1
    - Dst: write
      Src: /src/VTest2/src/vtc_main.c:238,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:238,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:238,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:241,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:242,1
    - Dst: system
      Src: /src/VTest2/src/vtc_main.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    assertStmts:
    - condition: (write(cleaner_fd, buf, strlen(buf)) == strlen(buf))
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 243
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 243
    functionName: cleaner_do
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - memcmp
    - assert
    - write
    - system
    - bprintf
    - AZ
    - strlen
    linkageType: ''
    returnType: void
    signature: void cleaner_do(const char *dirname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:253,1
    - Dst: pipe
      Src: /src/VTest2/src/vtc_main.c:253,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:254,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:255,1
    - Dst: fork
      Src: /src/VTest2/src/vtc_main.c:256,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:257,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_main.c:259,1
    - Dst: nice
      Src: /src/VTest2/src/vtc_main.c:260,1
    - Dst: setbuf
      Src: /src/VTest2/src/vtc_main.c:261,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:262,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_main.c:262,1
    - Dst: fgets
      Src: /src/VTest2/src/vtc_main.c:263,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:264,1
    - Dst: memcmp
      Src: /src/VTest2/src/vtc_main.c:264,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:264,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:265,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:266,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:267,1
    - Dst: fork
      Src: /src/VTest2/src/vtc_main.c:271,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:272,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:274,1
    - Dst: execlp
      Src: /src/VTest2/src/vtc_main.c:274,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:276,1
    - Dst: waitpid
      Src: /src/VTest2/src/vtc_main.c:276,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:277,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:279,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_main.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (p[1] > STDERR_FILENO)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (pp >= 0)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (q > buf)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (q[-1] == '\n')
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (p[0] > STDERR_FILENO)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (cleaner_pid >= 0)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (waitpid(pp, &st, 0) == pp)
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 283
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 283
    functionName: cleaner_setup
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - fork
    - memcmp
    - assert
    - nice
    - exit
    - waitpid
    - pipe
    - dup2
    - setbuf
    - closefd
    - execlp
    - AZ
    - fgets
    - strlen
    linkageType: ''
    returnType: void
    signature: void cleaner_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closefd
      Src: /src/VTest2/src/vtc_main.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: cleaner_neuter
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - closefd
    linkageType: ''
    returnType: void
    signature: void cleaner_neuter(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closefd
      Src: /src/VTest2/src/vtc_main.c:298,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:299,1
    - Dst: waitpid
      Src: /src/VTest2/src/vtc_main.c:299,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (waitpid(cleaner_pid, &st, 0) == cleaner_pid)
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: cleaner_finish
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - closefd
    - AZ
    - assert
    - waitpid
    linkageType: ''
    returnType: void
    signature: void cleaner_finish(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_main.c:331,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_main.c:332,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:337,1
    - Dst: kill
      Src: /src/VTest2/src/vtc_main.c:337,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:339,1
    - Dst: read
      Src: /src/VTest2/src/vtc_main.c:343,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_main.c:345,1
    - Dst: wait4
      Src: /src/VTest2/src/vtc_main.c:349,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:350,1
    - Dst: VTIM_mono
      Src: /src/VTest2/src/vtc_main.c:351,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:352,1
    - Dst: close
      Src: /src/VTest2/src/vtc_main.c:352,1
    - Dst: WTERMSIG
      Src: /src/VTest2/src/vtc_main.c:354,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_main.c:356,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:358,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:358,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_main.c:360,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:361,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc_main.c:362,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_main.c:364,1
    - Dst: VSB_quote_pfx
      Src: /src/VTest2/src/vtc_main.c:365,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_main.c:366,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:367,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:367,1
    - Dst: rel_buf
      Src: /src/VTest2/src/vtc_main.c:368,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:371,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_main.c:371,1
    - Dst: cleaner_do
      Src: /src/VTest2/src/vtc_main.c:381,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:383,1
    - Dst: fopen
      Src: /src/VTest2/src/vtc_main.c:384,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:385,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:386,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_main.c:386,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:387,1
    - Dst: fclose
      Src: /src/VTest2/src/vtc_main.c:387,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:389,1
    - Dst: fopen
      Src: /src/VTest2/src/vtc_main.c:392,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:393,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:394,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_main.c:394,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:395,1
    - Dst: fclose
      Src: /src/VTest2/src/vtc_main.c:395,1
    - Dst: fopen
      Src: /src/VTest2/src/vtc_main.c:398,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:399,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:401,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:402,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:403,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:405,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:406,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:407,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:409,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:410,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:411,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:413,1
    - Dst: fclose
      Src: /src/VTest2/src/vtc_main.c:413,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:416,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:421,1
    - Dst: WIFSIGNALED
      Src: /src/VTest2/src/vtc_main.c:423,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:424,1
    - Dst: WTERMSIG
      Src: /src/VTest2/src/vtc_main.c:424,1
    - Dst: WIFEXITED
      Src: /src/VTest2/src/vtc_main.c:425,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:426,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_main.c:426,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:429,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:432,1
    - Dst: VEV_Stop
      Src: /src/VTest2/src/vtc_main.c:438,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:439,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:443,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_main.c:444,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_main.c:446,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 103
    argCount: 2
    argNames:
    - ve
    - what
    argTypes:
    - struct vev*
    - int
    assertStmts:
    - condition: (what & (VEV__RD | VEV__HUP))
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (px == jp->child)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 450
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 450
    functionName: tst_cb
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - exit
    - CAST_OBJ_NOTNULL
    - printf
    - free
    - WIFEXITED
    - close
    - AN
    - assert
    - cleaner_do
    - strchr
    - VEV_Stop
    - WTERMSIG
    - fopen
    - VSB_bcat
    - WIFSIGNALED
    - wait4
    - fclose
    - FREE_OBJ
    - read
    - bprintf
    - VSB_clear
    - VSB_finish
    - VSB_putc
    - CHECK_OBJ_NOTNULL
    - rel_buf
    - VSB_quote_pfx
    - WEXITSTATUS
    - kill
    - fprintf
    - VSB_cat
    - VTIM_mono
    - AZ
    linkageType: ''
    returnType: int
    signature: int tst_cb(const struct vev *ve, int what)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_main.c:465,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:466,1
    - Dst: get_buf
      Src: /src/VTest2/src/vtc_main.c:468,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:470,1
    - Dst: getpid
      Src: /src/VTest2/src/vtc_main.c:470,1
    - Dst: random
      Src: /src/VTest2/src/vtc_main.c:471,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:472,1
    - Dst: mkdir
      Src: /src/VTest2/src/vtc_main.c:472,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:474,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:476,1
    - Dst: setenv
      Src: /src/VTest2/src/vtc_main.c:476,1
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/src/vtc_main.c:478,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_main.c:479,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:480,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_main.c:482,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_main.c:484,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_main.c:487,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:489,1
    - Dst: pipe
      Src: /src/VTest2/src/vtc_main.c:489,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:490,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:491,1
    - Dst: VTIM_mono
      Src: /src/VTest2/src/vtc_main.c:492,1
    - Dst: fork
      Src: /src/VTest2/src/vtc_main.c:493,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:494,1
    - Dst: cleaner_neuter
      Src: /src/VTest2/src/vtc_main.c:496,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:497,1
    - Dst: setpgid
      Src: /src/VTest2/src/vtc_main.c:497,1
    - Dst: getpid
      Src: /src/VTest2/src/vtc_main.c:497,1
    - Dst: VFIL_null_fd
      Src: /src/VTest2/src/vtc_main.c:498,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:499,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_main.c:499,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:500,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_main.c:500,1
    - Dst: exec_file
      Src: /src/VTest2/src/vtc_main.c:501,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:503,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_main.c:505,1
    - Dst: VEV_Alloc
      Src: /src/VTest2/src/vtc_main.c:507,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:508,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:513,1
    - Dst: VEV_Start
      Src: /src/VTest2/src/vtc_main.c:513,1
    - Dst: VEV_Alloc
      Src: /src/VTest2/src/vtc_main.c:515,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:516,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:521,1
    - Dst: VEV_Start
      Src: /src/VTest2/src/vtc_main.c:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (jp->child >= 0)
      pos:
        line_end: 493
        line_start: 493
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (dup2(p[1], STDOUT_FILENO) == STDOUT_FILENO)
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (dup2(p[1], STDERR_FILENO) == STDERR_FILENO)
      pos:
        line_end: 499
        line_start: 499
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (p[0] > STDERR_FILENO)
      pos:
        line_end: 489
        line_start: 489
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (p[1] > STDERR_FILENO)
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 522
      start: 456
    functionDepth: 6
    functionLinenumber: 456
    functionLinenumberEnd: 522
    functionName: start_test
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - getpid
    - cleaner_neuter
    - exit
    - REPLACE
    - AN
    - random
    - assert
    - ALLOC_OBJ
    - VFIL_null_fd
    - mkdir
    - pipe
    - closefd
    - fork
    - VEV_Alloc
    - exec_file
    - VTAILQ_INSERT_TAIL
    - bprintf
    - VTAILQ_REMOVE
    - setpgid
    - VEV_Start
    - CHECK_OBJ_NOTNULL
    - setenv
    - VTAILQ_FIRST
    - dup2
    - get_buf
    - VTIM_mono
    - AZ
    linkageType: ''
    returnType: void
    signature: void start_test(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:541,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:542,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:543,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc_main.c:545,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:549,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc_main.c:553,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:555,1
    - Dst: memchr
      Src: /src/VTest2/src/vtc_main.c:559,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:561,1
    - Dst: strndup
      Src: /src/VTest2/src/vtc_main.c:564,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - makefile
    - top_var
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (*top_var == '\n')
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 567
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 567
    functionName: top_dir
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - strndup
    - assert
    - strchr
    - fprintf
    - strstr
    - memchr
    - AN
    linkageType: ''
    returnType: char
    signature: 'char *

      top_dir(const char *makefile, const char *top_var)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:581,1
    - Dst: opendir
      Src: /src/VTest2/src/vtc_main.c:582,1
    - Dst: XXXAN
      Src: /src/VTest2/src/vtc_main.c:583,1
    - Dst: readdir
      Src: /src/VTest2/src/vtc_main.c:585,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_main.c:588,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:588,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:590,1
    - Dst: stat
      Src: /src/VTest2/src/vtc_main.c:591,1
    - Dst: S_ISDIR
      Src: /src/VTest2/src/vtc_main.c:591,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:592,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:593,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:594,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:597,1
    - Dst: closedir
      Src: /src/VTest2/src/vtc_main.c:597,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 5
    argNames:
    - topdir
    - subdir
    - pfx
    - sfx
    - vsb
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 598
    functionName: build_path
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - readdir
    - stat
    - opendir
    - S_ISDIR
    - closedir
    - strncmp
    - bprintf
    - VSB_cat
    - AZ
    - XXXAN
    - strlen
    linkageType: ''
    returnType: void
    signature: "void build_path(const char *topdir, const char *subdir,\n    const
      char *pfx, const char *sfx, struct vsb *vsb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_main.c:611,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:612,1
    - Dst: VFIL_readfile
      Src: /src/VTest2/src/vtc_main.c:614,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:616,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:617,1
    - Dst: top_dir
      Src: /src/VTest2/src/vtc_main.c:620,1
    - Dst: top_dir
      Src: /src/VTest2/src/vtc_main.c:621,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:622,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:624,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:625,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:626,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:628,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:629,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_main.c:634,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:635,1
    - Dst: build_path
      Src: /src/VTest2/src/vtc_main.c:637,1
    - Dst: build_path
      Src: /src/VTest2/src/vtc_main.c:641,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_main.c:645,1
    - Dst: build_path
      Src: /src/VTest2/src/vtc_main.c:646,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_main.c:648,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:648,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:649,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:649,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:650,1
    - Dst: putenv
      Src: /src/VTest2/src/vtc_main.c:650,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:650,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_main.c:650,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_main.c:656,1
    - Dst: build_path
      Src: /src/VTest2/src/vtc_main.c:657,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:658,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:658,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:659,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_main.c:659,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:660,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:662,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:663,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_main.c:664,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:669,1
    - Dst: putenv
      Src: /src/VTest2/src/vtc_main.c:669,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:669,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 600
    functionDepth: 3
    functionLinenumber: 600
    functionLinenumberEnd: 670
    functionName: i_mode
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - exit
    - free
    - VSB_cat
    - AN
    - VFIL_readfile
    - VSB_destroy
    - VSB_new_auto
    - build_path
    - getenv
    - VSB_clear
    - VSB_finish
    - extmacro_def
    - VSB_putc
    - putenv
    - top_dir
    - VSB_printf
    - fprintf
    - AZ
    - strdup
    linkageType: ''
    returnType: void
    signature: void i_mode(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VSS_ResolveOne
      Src: /src/VTest2/src/vtc_main.c:691,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:692,1
    - Dst: VTCP_bind
      Src: /src/VTest2/src/vtc_main.c:693,1
    - Dst: VSA_free
      Src: /src/VTest2/src/vtc_main.c:695,1
    - Dst: VSS_ResolveFirst
      Src: /src/VTest2/src/vtc_main.c:696,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:697,1
    - Dst: VTCP_bind
      Src: /src/VTest2/src/vtc_main.c:698,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:700,1
    - Dst: VTCP_myname
      Src: /src/VTest2/src/vtc_main.c:701,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:702,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:703,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:704,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_main.c:712,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_main.c:716,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:717,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:719,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_main.c:722,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:723,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:725,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:726,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:728,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:729,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:730,1
    - Dst: VSA_free
      Src: /src/VTest2/src/vtc_main.c:731,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (bad_backend_fd >= 0)
      pos:
        line_end: 699
        line_start: 699
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 742
      start: 676
    functionDepth: 3
    functionLinenumber: 676
    functionLinenumberEnd: 742
    functionName: ip_magic
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - VTCP_close
    - VSS_ResolveFirst
    - VSS_ResolveOne
    - assert
    - extmacro_def
    - VTCP_myname
    - VSA_Get_Proto
    - free
    - bprintf
    - VSA_free
    - AN
    - VTCP_bind
    - strdup
    linkageType: ''
    returnType: void
    signature: void ip_magic(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:754,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:755,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:756,1
    - Dst: VTIM_real
      Src: /src/VTest2/src/vtc_main.c:763,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_main.c:764,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:765,1
    - Dst: VTIM_format
      Src: /src/VTest2/src/vtc_main.c:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - argc
    - argv
    - err
    argTypes:
    - int
    - char**
    - char**
    assertStmts:
    - condition: (argc >= 2)
      pos:
        line_end: 753
        line_start: 753
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 768
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 768
    functionName: macro_func_date
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - malloc
    - assert
    - VTIM_format
    - AN
    - VTIM_real
    linkageType: ''
    returnType: void
    signature: void macro_func_date(int argc, char *const *argv, const char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SF_Parse_Integer
      Src: /src/VTest2/src/vtc_main.c:785,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:795,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_main.c:796,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:797,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:798,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_main.c:798,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:800,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:800,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:803,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:803,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_main.c:804,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - argc
    - argv
    - err
    argTypes:
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 806
    functionName: macro_func_string_repeat
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - malloc
    - VSB_finish
    - SF_Parse_Integer
    - VSB_fini
    - VSB_cat
    - VSB_init
    - AZ
    - AN
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      macro_func_string_repeat(int argc, char *const *argv, const char **err)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:812,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:813,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:814,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_main.c:821,1
    - Dst: macro_func_string_repeat
      Src: /src/VTest2/src/vtc_main.c:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - argc
    - argv
    - err
    argTypes:
    - int
    - char**
    - char**
    assertStmts:
    - condition: (argc >= 2)
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 826
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 826
    functionName: macro_func_string
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - strcmp
    - AN
    - assert
    - macro_func_string_repeat
    linkageType: ''
    returnType: char
    signature: 'char *

      macro_func_string(int argc, char *const *argv, const char **err)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VFIL_readfile
      Src: /src/VTest2/src/vtc_main.c:838,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:840,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_main.c:841,1
    - Dst: vct_islws
      Src: /src/VTest2/src/vtc_main.c:845,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc_main.c:849,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:855,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:856,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_main.c:860,1
    - Dst: isspace
      Src: /src/VTest2/src/vtc_main.c:860,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_main.c:861,1
    - Dst: isspace
      Src: /src/VTest2/src/vtc_main.c:861,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:862,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:865,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_main.c:869,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:870,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_main.c:875,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 877
    functionName: read_file
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - isspace
    - VFIL_readfile
    - strerror
    - ALLOC_OBJ
    - vct_islws
    - strchr
    - free
    - strncmp
    - VTAILQ_INSERT_TAIL
    - fprintf
    - AN
    linkageType: ''
    returnType: int
    signature: int read_file(const char *fn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TDARGS
      Src: /src/VTest2/src/vtc_main.c:899,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_main.c:901,1
    - Dst: add_extension
      Src: /src/VTest2/src/vtc_main.c:902,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_main.c:907,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_main.c:913,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_main.c:919,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:920,1
    - Dst: usage
      Src: /src/VTest2/src/vtc_main.c:921,1
    - Dst: read_file
      Src: /src/VTest2/src/vtc_main.c:923,1
    - Dst: usage
      Src: /src/VTest2/src/vtc_main.c:924,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 928
    functionName: automake_test_driver_arguments
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - strcmp
    - add_extension
    - read_file
    - fprintf
    - TDARGS
    - usage
    linkageType: ''
    returnType: void
    signature: void automake_test_driver_arguments(int argc, char *const *argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 899
    functionName: TDSAVE
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TDSAVE(name, dst)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/VTest2/src/vtc_main.c:940,1
    - Dst: VNUM_2bytes
      Src: /src/VTest2/src/vtc_main.c:943,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:944,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:946,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:949,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:951,1
    - Dst: parse_D_opt
      Src: /src/VTest2/src/vtc_main.c:959,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:960,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:962,1
    - Dst: add_extension
      Src: /src/VTest2/src/vtc_main.c:966,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_main.c:972,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_main.c:984,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:987,1
    - Dst: VSB_quote
      Src: /src/VTest2/src/vtc_main.c:988,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_main.c:995,1
    - Dst: usage
      Src: /src/VTest2/src/vtc_main.c:1002,1
    - Dst: usage
      Src: /src/VTest2/src/vtc_main.c:1009,1
    - Dst: read_file
      Src: /src/VTest2/src/vtc_main.c:1012,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:1015,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 73
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 934
    functionDepth: 4
    functionLinenumber: 934
    functionLinenumberEnd: 1017
    functionName: usual_arguments
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - usage
    - exit
    - VSB_quote
    - strtoul
    - VSB_cat
    - parse_D_opt
    - add_extension
    - getopt
    - fprintf
    - read_file
    - VNUM_2bytes
    linkageType: ''
    returnType: void
    signature: void usual_arguments(int argc, char *const *argv)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/VTest2/src/vtc_main.c:1031,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:1037,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:1038,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:1038,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:1040,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:1043,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:1046,1
    - Dst: getcwd
      Src: /src/VTest2/src/vtc_main.c:1049,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:1050,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:1052,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:1053,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_main.c:1057,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:1058,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:1059,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:1061,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_main.c:1063,1
    - Dst: VRND_SeedAll
      Src: /src/VTest2/src/vtc_main.c:1065,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_main.c:1066,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:1067,1
    - Dst: setbuf
      Src: /src/VTest2/src/vtc_main.c:1068,1
    - Dst: setbuf
      Src: /src/VTest2/src/vtc_main.c:1069,1
    - Dst: usage
      Src: /src/VTest2/src/vtc_main.c:1072,1
    - Dst: automake_test_driver_arguments
      Src: /src/VTest2/src/vtc_main.c:1075,1
    - Dst: usual_arguments
      Src: /src/VTest2/src/vtc_main.c:1077,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:1080,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:1080,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:1082,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:1083,1
    - Dst: isatty
      Src: /src/VTest2/src/vtc_main.c:1084,1
    - Dst: fileno
      Src: /src/VTest2/src/vtc_main.c:1084,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_main.c:1085,1
    - Dst: ip_magic
      Src: /src/VTest2/src/vtc_main.c:1089,1
    - Dst: i_mode
      Src: /src/VTest2/src/vtc_main.c:1092,1
    - Dst: VEV_New
      Src: /src/VTest2/src/vtc_main.c:1094,1
    - Dst: cleaner_setup
      Src: /src/VTest2/src/vtc_main.c:1097,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_main.c:1100,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_main.c:1101,1
    - Dst: start_test
      Src: /src/VTest2/src/vtc_main.c:1102,1
    - Dst: usleep
      Src: /src/VTest2/src/vtc_main.c:1106,1
    - Dst: random
      Src: /src/VTest2/src/vtc_main.c:1106,1
    - Dst: VEV_Once
      Src: /src/VTest2/src/vtc_main.c:1110,1
    - Dst: cleaner_finish
      Src: /src/VTest2/src/vtc_main.c:1112,1
    - Dst: close
      Src: /src/VTest2/src/vtc_main.c:1113,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:1117,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1023
    functionDepth: 7
    functionLinenumber: 1023
    functionLinenumberEnd: 1125
    functionName: main
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - VEV_Once
    - start_test
    - usual_arguments
    - ip_magic
    - atoi
    - i_mode
    - AN
    - close
    - random
    - cleaner_finish
    - strcmp
    - isatty
    - VSB_new_auto
    - VTAILQ_EMPTY
    - fileno
    - VRND_SeedAll
    - getcwd
    - VEV_New
    - strrchr
    - getenv
    - automake_test_driver_arguments
    - cleaner_setup
    - VSB_finish
    - extmacro_def
    - usleep
    - setbuf
    - fprintf
    - AZ
    - usage
    - strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char * const *argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pack
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: MASK
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK(pack, n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MASK
      Src: /src/VTest2/src/vtc_h2_hpack.c:74,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:76,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:89,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:90,1
    - Dst: MASK
      Src: /src/VTest2/src/vtc_h2_hpack.c:91,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:93,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:98,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:100,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - str
    - nm
    - iter
    - ilen
    argTypes:
    - char*
    - int
    - struct hpk_iter*
    - int
    assertStmts:
    - condition: (tbl)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (tbl->msk)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (tbl == &tbl_0)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (sym->csm <= tbl->msk)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (sym->csm <= 8)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (sym->csm <= pl)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    constantsTouched: []
    func_position:
      end: 110
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 110
    functionName: huff_decode
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 0
    functionsReached:
    - assert
    - MASK
    linkageType: ''
    returnType: int
    signature: int huff_decode(char *str, int nm, struct hpk_iter *iter, int ilen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:121,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - iter
    - str
    - len
    argTypes:
    - struct hpk_iter*
    - char*
    - int
    assertStmts:
    - condition: (iter->buf < iter->end)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (pl < 8)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    constantsTouched: []
    func_position:
      end: 153
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 153
    functionName: huff_encode
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: enum hpk_result
    signature: enum hpk_result huff_encode(struct hpk_iter *iter, const char *str,
      int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - str
    - ilen
    - huff
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: huff_simulate
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int huff_simulate(const char *str, int ilen, int huff)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:173,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:174,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:175,1
    - Dst: ITER_DONE
      Src: /src/VTest2/src/vtc_h2_hpack.c:181,1
    - Dst: ITER_DONE
      Src: /src/VTest2/src/vtc_h2_hpack.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - result
    - iter
    - prefix
    argTypes:
    - uint32_t*
    - struct hpk_iter*
    - uint8_t
    assertStmts:
    - condition: (iter->buf < iter->end)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (prefix <= 8)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (prefix)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    constantsTouched: []
    func_position:
      end: 197
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 197
    functionName: num_decode
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 0
    functionsReached:
    - ITER_DONE
    - assert
    linkageType: ''
    returnType: enum hpk_result
    signature: enum hpk_result num_decode(uint32_t *result, struct hpk_iter *iter,
      uint8_t prefix)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:202,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:203,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:204,1
    - Dst: ITER_DONE
      Src: /src/VTest2/src/vtc_h2_hpack.c:211,1
    - Dst: ITER_DONE
      Src: /src/VTest2/src/vtc_h2_hpack.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - iter
    - prefix
    - num
    argTypes:
    - struct hpk_iter*
    - uint8_t
    - uint32_t
    assertStmts:
    - condition: (prefix)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (prefix <= 8)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (iter->buf < iter->end)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    constantsTouched: []
    func_position:
      end: 227
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 227
    functionName: num_encode
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 0
    functionsReached:
    - ITER_DONE
    - assert
    linkageType: ''
    returnType: enum hpk_result
    signature: enum hpk_result num_encode(struct hpk_iter *iter, uint8_t prefix, uint32_t
      num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: huff_simulate
      Src: /src/VTest2/src/vtc_h2_hpack.c:232,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:233,1
    - Dst: num_encode
      Src: /src/VTest2/src/vtc_h2_hpack.c:239,1
    - Dst: huff_encode
      Src: /src/VTest2/src/vtc_h2_hpack.c:246,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_h2_hpack.c:248,1
    - Dst: ITER_DONE
      Src: /src/VTest2/src/vtc_h2_hpack.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - iter
    - t
    argTypes:
    - struct hpk_iter*
    - struct hpk_txt*
    assertStmts:
    - condition: (iter->buf < iter->end)
      pos:
        line_end: 232
        line_start: 232
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    constantsTouched: []
    func_position:
      end: 252
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 252
    functionName: str_encode
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 0
    functionsReached:
    - huff_simulate
    - assert
    - memcpy
    - num_encode
    - huff_encode
    - ITER_DONE
    linkageType: ''
    returnType: enum hpk_result
    signature: enum hpk_result str_encode(struct hpk_iter *iter, const struct hpk_txt
      *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:260,1
    - Dst: num_decode
      Src: /src/VTest2/src/vtc_h2_hpack.c:263,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:265,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_h2_hpack.c:269,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_hpack.c:270,1
    - Dst: huff_decode
      Src: /src/VTest2/src/vtc_h2_hpack.c:271,1
    - Dst: free
      Src: /src/VTest2/src/vtc_h2_hpack.c:273,1
    - Dst: realloc
      Src: /src/VTest2/src/vtc_h2_hpack.c:278,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_hpack.c:279,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_h2_hpack.c:282,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_hpack.c:283,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_h2_hpack.c:284,1
    - Dst: ITER_DONE
      Src: /src/VTest2/src/vtc_h2_hpack.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - iter
    - t
    argTypes:
    - struct hpk_iter*
    - struct hpk_txt*
    assertStmts:
    - condition: (iter->buf < iter->end)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (iter->buf < iter->end)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    constantsTouched: []
    func_position:
      end: 292
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 292
    functionName: str_decode
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 0
    functionsReached:
    - malloc
    - ITER_DONE
    - assert
    - memcpy
    - free
    - num_decode
    - realloc
    - AN
    - huff_decode
    linkageType: ''
    returnType: enum hpk_result
    signature: enum hpk_result str_decode(struct hpk_iter *iter, struct hpk_txt *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/VTest2/src/vtc_h2_hpack.c:298,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_h2_hpack.c:299,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_h2_hpack.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - struct hpk_txt*
    - struct hpk_txt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: txtcpy
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 0
    functionsReached:
    - malloc
    - AN
    - memcpy
    linkageType: ''
    returnType: void
    signature: void txtcpy(struct hpk_txt *to, const struct hpk_txt *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct hpk_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: gethpk_iterLen
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gethpk_iterLen(const struct hpk_iter *iter)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:317,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:318,1
    - Dst: num_decode
      Src: /src/VTest2/src/vtc_h2_hpack.c:322,1
    - Dst: tbl_get_key
      Src: /src/VTest2/src/vtc_h2_hpack.c:326,1
    - Dst: txtcpy
      Src: /src/VTest2/src/vtc_h2_hpack.c:329,1
    - Dst: tbl_get_value
      Src: /src/VTest2/src/vtc_h2_hpack.c:331,1
    - Dst: free
      Src: /src/VTest2/src/vtc_h2_hpack.c:333,1
    - Dst: txtcpy
      Src: /src/VTest2/src/vtc_h2_hpack.c:337,1
    - Dst: num_decode
      Src: /src/VTest2/src/vtc_h2_hpack.c:366,1
    - Dst: HPK_ResizeTbl
      Src: /src/VTest2/src/vtc_h2_hpack.c:368,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:373,1
    - Dst: num_decode
      Src: /src/VTest2/src/vtc_h2_hpack.c:374,1
    - Dst: tbl_get_key
      Src: /src/VTest2/src/vtc_h2_hpack.c:379,1
    - Dst: txtcpy
      Src: /src/VTest2/src/vtc_h2_hpack.c:382,1
    - Dst: str_decode
      Src: /src/VTest2/src/vtc_h2_hpack.c:384,1
    - Dst: free
      Src: /src/VTest2/src/vtc_h2_hpack.c:385,1
    - Dst: str_decode
      Src: /src/VTest2/src/vtc_h2_hpack.c:390,1
    - Dst: free
      Src: /src/VTest2/src/vtc_h2_hpack.c:391,1
    - Dst: push_header
      Src: /src/VTest2/src/vtc_h2_hpack.c:396,1
    - Dst: ITER_DONE
      Src: /src/VTest2/src/vtc_h2_hpack.c:397,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 2
    argNames:
    - iter
    - header
    argTypes:
    - struct hpk_iter*
    - struct hpk_hdr*
    assertStmts:
    - condition: (pref)
      pos:
        line_end: 372
        line_start: 372
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (iter)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    - condition: (iter->buf < iter->end)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    constantsTouched: []
    func_position:
      end: 398
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 398
    functionName: HPK_DecHdr
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 1
    functionsReached:
    - tbl_get_value
    - tbl_get_key
    - assert
    - push_header
    - txtcpy
    - free
    - num_decode
    - HPK_ResizeTbl
    - str_decode
    - ITER_DONE
    linkageType: ''
    returnType: enum hpk_result
    signature: enum hpk_result HPK_DecHdr(struct hpk_iter *iter, struct hpk_hdr *header)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_h2_hpack.c:409,1
    - Dst: num_encode
      Src: /src/VTest2/src/vtc_h2_hpack.c:409,1
    - Dst: ITER_DONE
      Src: /src/VTest2/src/vtc_h2_hpack.c:410,1
    - Dst: INCOMPL
      Src: /src/VTest2/src/vtc_h2_hpack.c:425,1
    - Dst: num_encode
      Src: /src/VTest2/src/vtc_h2_hpack.c:428,1
    - Dst: str_encode
      Src: /src/VTest2/src/vtc_h2_hpack.c:432,1
    - Dst: str_encode
      Src: /src/VTest2/src/vtc_h2_hpack.c:435,1
    - Dst: push_header
      Src: /src/VTest2/src/vtc_h2_hpack.c:439,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - iter
    - h
    argTypes:
    - struct hpk_iter*
    - struct hpk_hdr*
    assertStmts:
    - condition: (num_encode(iter, 7, h->i) != hpk_err)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    constantsTouched: []
    func_position:
      end: 442
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 442
    functionName: HPK_EncHdr
    functionSourceFile: /src/VTest2/src/vtc_h2_hpack.c
    functionUses: 1
    functionsReached:
    - assert
    - push_header
    - INCOMPL
    - num_encode
    - str_encode
    - ITER_DONE
    linkageType: ''
    returnType: enum hpk_result
    signature: enum hpk_result HPK_EncHdr(struct hpk_iter *iter, const struct hpk_hdr
      *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hp
    - ','
    - av
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: ONLY_CLIENT
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONLY_CLIENT(hp, av)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hp
    - ','
    - av
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: ONLY_SERVER
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONLY_SERVER(hp, av)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:192,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_http.c:193,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:194,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http.c:195,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:196,1
    - Dst: VRND_RandomTestable
      Src: /src/VTest2/src/vtc_http.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - len
    - rnd
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (i > 0)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/VTest2/src/vtc_http.c
    constantsTouched: []
    func_position:
      end: 216
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 216
    functionName: synth_body
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 3
    functionsReached:
    - malloc
    - assert
    - strtoul
    - VRND_RandomTestable
    - AN
    linkageType: ''
    returnType: char
    signature: 'char *

      synth_body(const char *len, int rnd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:226,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_http.c:226,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http.c:227,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_http.c:227,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_http.c:227,1
    - Dst: VSB_tofile
      Src: /src/VTest2/src/vtc_http.c:228,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:229,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - hp
    - lvl
    - pfx
    argTypes:
    - struct http*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 231
    functionName: http_write
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 1
    functionsReached:
    - AZ
    - VSB_len
    - VSB_data
    - vtc_log
    - strerror
    - vtc_dump
    - VSB_finish
    - VSB_tofile
    linkageType: ''
    returnType: void
    signature: void http_write(const struct http *hp, int lvl, const char *pfx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:243,1
    - Dst: strncasecmp
      Src: /src/VTest2/src/vtc_http.c:246,1
    - Dst: vct_issp
      Src: /src/VTest2/src/vtc_http.c:248,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - hh
    - hdr
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 253
    functionName: http_find_header
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - vct_issp
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      http_find_header(char * const *hh, const char *hdr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:264,1
    - Dst: strncasecmp
      Src: /src/VTest2/src/vtc_http.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - hh
    - hdr
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 272
    functionName: http_count_header
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int http_count_header(char * const *hh, const char *hdr)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:315,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:317,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:319,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:321,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:323,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:325,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:327,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:329,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:331,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:333,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:335,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:337,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:339,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:341,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http.c:343,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http.c:346,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:349,1
    - Dst: http_find_header
      Src: /src/VTest2/src/vtc_http.c:356,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 2
    argNames:
    - hp
    - spec
    argTypes:
    - struct http*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 358
    functionName: cmd_var_resolve
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 1
    functionsReached:
    - http_find_header
    - strcmp
    - strncmp
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_var_resolve(struct http *hp, char *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:369,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:370,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:370,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:373,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:374,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:375,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:376,1
    - Dst: cmd_var_resolve
      Src: /src/VTest2/src/vtc_http.c:377,1
    - Dst: cmd_var_resolve
      Src: /src/VTest2/src/vtc_http.c:379,1
    - Dst: vtc_expect
      Src: /src/VTest2/src/vtc_http.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 382
    functionName: cmd_http_expect
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CAST_OBJ_NOTNULL
    - vtc_expect
    - cmd_var_resolve
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_http_expect(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:399,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:400,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:400,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:402,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:405,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 412
    functionName: cmd_http_expect_pattern
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_expect_pattern(CMD_ARGS)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:425,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_http.c:427,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_http.c:430,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:437,1
    - Dst: vct_islws
      Src: /src/VTest2/src/vtc_http.c:442,1
    - Dst: vct_islws
      Src: /src/VTest2/src/vtc_http.c:445,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:447,1
    - Dst: vct_iscrlf
      Src: /src/VTest2/src/vtc_http.c:447,1
    - Dst: vct_issp
      Src: /src/VTest2/src/vtc_http.c:451,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:453,1
    - Dst: vct_iscrlf
      Src: /src/VTest2/src/vtc_http.c:453,1
    - Dst: vct_islws
      Src: /src/VTest2/src/vtc_http.c:455,1
    - Dst: vct_iscrlf
      Src: /src/VTest2/src/vtc_http.c:457,1
    - Dst: vct_skipcrlf
      Src: /src/VTest2/src/vtc_http.c:460,1
    - Dst: vct_issp
      Src: /src/VTest2/src/vtc_http.c:465,1
    - Dst: vct_iscrlf
      Src: /src/VTest2/src/vtc_http.c:468,1
    - Dst: vct_skipcrlf
      Src: /src/VTest2/src/vtc_http.c:471,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:474,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:477,1
    - Dst: vct_iscrlf
      Src: /src/VTest2/src/vtc_http.c:478,1
    - Dst: vct_iscrlf
      Src: /src/VTest2/src/vtc_http.c:481,1
    - Dst: vct_skipcrlf
      Src: /src/VTest2/src/vtc_http.c:487,1
    - Dst: vct_skipcrlf
      Src: /src/VTest2/src/vtc_http.c:490,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:491,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_http.c:494,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http.c:495,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 2
    argNames:
    - hp
    - req
    argTypes:
    - struct http*
    - int
    assertStmts:
    - condition: (n == 3)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/VTest2/src/vtc_http.c
    - condition: (n < MAX_HDR)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/VTest2/src/vtc_http.c
    - condition: (*p == '\0')
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/VTest2/src/vtc_http.c
    constantsTouched: []
    func_position:
      end: 497
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 497
    functionName: http_splitheader
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - memset
    - vct_issp
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - assert
    - vct_islws
    - vtc_dump
    - bprintf
    - AZ
    - vct_iscrlf
    - vct_skipcrlf
    linkageType: ''
    returnType: void
    signature: void http_splitheader(struct http *hp, int req)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/VTest2/src/vtc_http.c:514,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:518,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:524,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:526,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:529,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:530,1
    - Dst: read
      Src: /src/VTest2/src/vtc_http.c:531,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:533,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:539,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:541,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:545,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:547,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - hp
    - n
    - eof
    argTypes:
    - struct http*
    - int
    - int
    assertStmts:
    - condition: (i > 0)
      pos:
        line_end: 528
        line_start: 528
        source_file: /src/VTest2/src/vtc_http.c
    - condition: (hp->rx_p + n < hp->rx_e)
      pos:
        line_end: 529
        line_start: 529
        source_file: /src/VTest2/src/vtc_http.c
    constantsTouched: []
    func_position:
      end: 555
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 555
    functionName: http_rxchar
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - poll
    - assert
    - vtc_log
    - strerror
    - read
    linkageType: ''
    returnType: int
    signature: int http_rxchar(struct http *hp, int n, int eof)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: http_rxchar
      Src: /src/VTest2/src/vtc_http.c:565,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http.c:568,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_http.c:569,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_http.c:570,1
    - Dst: vct_islws
      Src: /src/VTest2/src/vtc_http.c:571,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:572,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:576,1
    - Dst: vct_islws
      Src: /src/VTest2/src/vtc_http.c:576,1
    - Dst: http_rxchar
      Src: /src/VTest2/src/vtc_http.c:579,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http.c:581,1
    - Dst: http_rxchar
      Src: /src/VTest2/src/vtc_http.c:584,1
    - Dst: vct_iscrlf
      Src: /src/VTest2/src/vtc_http.c:586,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:587,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - hp
    argTypes:
    - struct http*
    assertStmts:
    - condition: (*q == '\0' || vct_islws(*q))
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/VTest2/src/vtc_http.c
    constantsTouched: []
    func_position:
      end: 593
      start: 557
    functionDepth: 4
    functionLinenumber: 557
    functionLinenumberEnd: 593
    functionName: http_rxchunk
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - assert
    - vtc_log
    - vct_islws
    - strtoul
    - vtc_dump
    - http_rxchar
    - bprintf
    - vct_iscrlf
    linkageType: ''
    returnType: int
    signature: int http_rxchunk(struct http *hp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/VTest2/src/vtc_http.c:609,1
    - Dst: http_find_header
      Src: /src/VTest2/src/vtc_http.c:610,1
    - Dst: strcasecmp
      Src: /src/VTest2/src/vtc_http.c:611,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:613,1
    - Dst: http_rxchunk
      Src: /src/VTest2/src/vtc_http.c:617,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_http.c:624,1
    - Dst: http_rxchar
      Src: /src/VTest2/src/vtc_http.c:629,1
    - Dst: http_rxchar
      Src: /src/VTest2/src/vtc_http.c:636,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http.c:648,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_http.c:651,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - hp
    - hh
    - body
    - max
    argTypes:
    - struct http*
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 601
    functionDepth: 5
    functionLinenumber: 601
    functionLinenumberEnd: 652
    functionName: http_swallow_body
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - http_find_header
    - strtoul
    - strcasecmp
    - vtc_dump
    - http_rxchar
    - bprintf
    - http_rxchunk
    linkageType: ''
    returnType: void
    signature: void http_swallow_body(struct http *hp, char * const *hh, int body,
      int max)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:665,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_http.c:669,1
    - Dst: http_rxchar
      Src: /src/VTest2/src/vtc_http.c:672,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http.c:687,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:688,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:690,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - hp
    argTypes:
    - struct http*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 658
    functionDepth: 4
    functionLinenumber: 658
    functionLinenumberEnd: 693
    functionName: http_rxhdr
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CHECK_OBJ_NOTNULL
    - vtc_dump
    - http_rxchar
    - bprintf
    linkageType: ''
    returnType: void
    signature: void http_rxhdr(struct http *hp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:709,1
    - Dst: ONLY_CLIENT
      Src: /src/VTest2/src/vtc_http.c:710,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:711,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:711,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:715,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:718,1
    - Dst: http_rxhdr
      Src: /src/VTest2/src/vtc_http.c:720,1
    - Dst: http_splitheader
      Src: /src/VTest2/src/vtc_http.c:721,1
    - Dst: http_count_header
      Src: /src/VTest2/src/vtc_http.c:722,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:723,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:731,1
    - Dst: http_swallow_body
      Src: /src/VTest2/src/vtc_http.c:732,1
    - Dst: http_swallow_body
      Src: /src/VTest2/src/vtc_http.c:734,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:735,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 702
    functionDepth: 6
    functionLinenumber: 702
    functionLinenumberEnd: 736
    functionName: cmd_http_rxresp
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - http_rxhdr
    - http_swallow_body
    - vtc_log
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - http_count_header
    - http_splitheader
    - ONLY_CLIENT
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_rxresp(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:750,1
    - Dst: ONLY_CLIENT
      Src: /src/VTest2/src/vtc_http.c:751,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:752,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:752,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:756,1
    - Dst: http_rxhdr
      Src: /src/VTest2/src/vtc_http.c:757,1
    - Dst: http_splitheader
      Src: /src/VTest2/src/vtc_http.c:758,1
    - Dst: http_count_header
      Src: /src/VTest2/src/vtc_http.c:759,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 744
    functionDepth: 5
    functionLinenumber: 744
    functionLinenumberEnd: 762
    functionName: cmd_http_rxresphdrs
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - http_rxhdr
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - http_count_header
    - http_splitheader
    - ONLY_CLIENT
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_rxresphdrs(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:777,1
    - Dst: vtc_gunzip
      Src: /src/VTest2/src/vtc_http.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 769
    functionDepth: 6
    functionLinenumber: 769
    functionLinenumberEnd: 779
    functionName: cmd_http_gunzip
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - vtc_gunzip
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void cmd_http_gunzip(CMD_ARGS)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:799,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:801,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:803,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:805,1
    - Dst: strncasecmp
      Src: /src/VTest2/src/vtc_http.c:806,1
    - Dst: strncasecmp
      Src: /src/VTest2/src/vtc_http.c:807,1
    - Dst: strncasecmp
      Src: /src/VTest2/src/vtc_http.c:809,1
    - Dst: strncasecmp
      Src: /src/VTest2/src/vtc_http.c:811,1
    - Dst: strncasecmp
      Src: /src/VTest2/src/vtc_http.c:813,1
    - Dst: strncasecmp
      Src: /src/VTest2/src/vtc_http.c:815,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:817,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:819,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:820,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_http.c:821,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_http.c:823,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:824,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:830,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:831,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_http.c:832,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:834,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:836,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:847,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:848,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http.c:849,1
    - Dst: VFIL_readfile
      Src: /src/VTest2/src/vtc_http.c:850,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:851,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:852,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:855,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:856,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http.c:857,1
    - Dst: synth_body
      Src: /src/VTest2/src/vtc_http.c:858,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:859,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http.c:861,1
    - Dst: vtc_gzip_cmd
      Src: /src/VTest2/src/vtc_http.c:862,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:867,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_http.c:872,1
    - Dst: macro_cat
      Src: /src/VTest2/src/vtc_http.c:873,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_http.c:874,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_http.c:877,1
    - Dst: macro_cat
      Src: /src/VTest2/src/vtc_http.c:878,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_http.c:879,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:882,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:884,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:886,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_http.c:887,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_http.c:889,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http.c:890,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (body == nullbody)
      pos:
        line_end: 830
        line_start: 830
        source_file: /src/VTest2/src/vtc_http.c
    - condition: (body == nullbody)
      pos:
        line_end: 847
        line_start: 847
        source_file: /src/VTest2/src/vtc_http.c
    - condition: (len < INT_MAX)
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/VTest2/src/vtc_http.c
    - condition: (body == nullbody)
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/VTest2/src/vtc_http.c
    constantsTouched: []
    func_position:
      end: 893
      start: 785
    functionDepth: 6
    functionLinenumber: 785
    functionLinenumberEnd: 893
    functionName: http_tx_parse_args
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - VSB_putc
    - synth_body
    - VFIL_readfile
    - assert
    - strcmp
    - REPLACE
    - free
    - strncmp
    - VSB_cat
    - AN
    - macro_cat
    - VSB_bcat
    - VSB_printf
    - atoi
    - strncasecmp
    - vtc_gzip_cmd
    - strlen
    linkageType: ''
    returnType: char
    signature: "char * const *\nhttp_tx_parse_args(char * const *av, struct vtclog
      *vl, struct http *hp,\n    char *body, unsigned nohost, unsigned nodate, unsigned
      noserver, unsigned nouseragent)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:995,1
    - Dst: ONLY_SERVER
      Src: /src/VTest2/src/vtc_http.c:996,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:997,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:997,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_http.c:1000,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1003,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1006,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1009,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1013,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:1020,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_http.c:1023,1
    - Dst: http_tx_parse_args
      Src: /src/VTest2/src/vtc_http.c:1025,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1027,1
    - Dst: http_write
      Src: /src/VTest2/src/vtc_http.c:1029,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 984
    functionDepth: 7
    functionLinenumber: 984
    functionLinenumberEnd: 1030
    functionName: cmd_http_txresp
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - VSB_printf
    - http_tx_parse_args
    - vtc_fatal
    - ONLY_SERVER
    - CAST_OBJ_NOTNULL
    - strcmp
    - REPLACE
    - http_write
    - VSB_clear
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_txresp(CMD_ARGS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1038,1
    - Dst: ONLY_SERVER
      Src: /src/VTest2/src/vtc_http.c:1039,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1040,1
    - Dst: http_find_header
      Src: /src/VTest2/src/vtc_http.c:1042,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1043,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1044,1
    - Dst: http_find_header
      Src: /src/VTest2/src/vtc_http.c:1046,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1047,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1048,1
    - Dst: http_find_header
      Src: /src/VTest2/src/vtc_http.c:1051,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1053,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_http.c:1055,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_http.c:1061,1
    - Dst: b64_settings
      Src: /src/VTest2/src/vtc_http.c:1072,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1032
    functionDepth: 4
    functionLinenumber: 1032
    functionLinenumberEnd: 1074
    functionName: cmd_http_upgrade
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - parse_string
    - http_find_header
    - ONLY_SERVER
    - CAST_OBJ_NOTNULL
    - strcmp
    - vtc_fatal
    - b64_settings
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_http_upgrade(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1090,1
    - Dst: ONLY_SERVER
      Src: /src/VTest2/src/vtc_http.c:1091,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1092,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1092,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1096,1
    - Dst: http_rxhdr
      Src: /src/VTest2/src/vtc_http.c:1097,1
    - Dst: http_splitheader
      Src: /src/VTest2/src/vtc_http.c:1098,1
    - Dst: http_count_header
      Src: /src/VTest2/src/vtc_http.c:1099,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1100,1
    - Dst: http_swallow_body
      Src: /src/VTest2/src/vtc_http.c:1101,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1085
    functionDepth: 6
    functionLinenumber: 1085
    functionLinenumberEnd: 1103
    functionName: cmd_http_rxreq
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - http_rxhdr
    - http_swallow_body
    - vtc_log
    - vtc_fatal
    - ONLY_SERVER
    - CAST_OBJ_NOTNULL
    - strcmp
    - http_count_header
    - http_splitheader
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_rxreq(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1117,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1118,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1118,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1122,1
    - Dst: http_rxhdr
      Src: /src/VTest2/src/vtc_http.c:1123,1
    - Dst: http_splitheader
      Src: /src/VTest2/src/vtc_http.c:1124,1
    - Dst: http_count_header
      Src: /src/VTest2/src/vtc_http.c:1125,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1111
    functionDepth: 5
    functionLinenumber: 1111
    functionLinenumberEnd: 1127
    functionName: cmd_http_rxreqhdrs
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - http_rxhdr
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - http_count_header
    - http_splitheader
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_rxreqhdrs(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1141,1
    - Dst: ONLY_SERVER
      Src: /src/VTest2/src/vtc_http.c:1142,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1143,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1143,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1147,1
    - Dst: http_swallow_body
      Src: /src/VTest2/src/vtc_http.c:1148,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1135
    functionDepth: 6
    functionLinenumber: 1135
    functionLinenumberEnd: 1150
    functionName: cmd_http_rxreqbody
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - http_swallow_body
    - vtc_log
    - vtc_fatal
    - ONLY_SERVER
    - CAST_OBJ_NOTNULL
    - strcmp
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_rxreqbody(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1167,1
    - Dst: ONLY_CLIENT
      Src: /src/VTest2/src/vtc_http.c:1168,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1169,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1169,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1173,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_http.c:1174,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1177,1
    - Dst: http_swallow_body
      Src: /src/VTest2/src/vtc_http.c:1180,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1160
    functionDepth: 6
    functionLinenumber: 1160
    functionLinenumberEnd: 1182
    functionName: cmd_http_rxrespbody
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - http_swallow_body
    - vtc_log
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - atoi
    - ONLY_CLIENT
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_rxrespbody(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1197,1
    - Dst: ONLY_CLIENT
      Src: /src/VTest2/src/vtc_http.c:1198,1
    - Dst: http_rxchunk
      Src: /src/VTest2/src/vtc_http.c:1200,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_http.c:1204,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1190
    functionDepth: 5
    functionLinenumber: 1190
    functionLinenumberEnd: 1207
    functionName: cmd_http_rxchunk
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CAST_OBJ_NOTNULL
    - bprintf
    - ONLY_CLIENT
    - http_rxchunk
    linkageType: ''
    returnType: void
    signature: void cmd_http_rxchunk(CMD_ARGS)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1225,1
    - Dst: ONLY_CLIENT
      Src: /src/VTest2/src/vtc_http.c:1226,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1227,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1227,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_http.c:1230,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1234,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1237,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1240,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1241,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1243,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1245,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1248,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:1253,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:1256,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1260,1
    - Dst: http_tx_parse_args
      Src: /src/VTest2/src/vtc_http.c:1261,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1263,1
    - Dst: http_write
      Src: /src/VTest2/src/vtc_http.c:1264,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_http.c:1267,1
    - Dst: b64_settings
      Src: /src/VTest2/src/vtc_http.c:1274,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_http.c:1275,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1213
    functionDepth: 7
    functionLinenumber: 1213
    functionLinenumberEnd: 1285
    functionName: cmd_http_txreq
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - parse_string
    - VSB_printf
    - http_tx_parse_args
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - http_write
    - b64_settings
    - VSB_clear
    - ONLY_CLIENT
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_txreq(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1301,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1302,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1303,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_http.c:1304,1
    - Dst: read
      Src: /src/VTest2/src/vtc_http.c:1306,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http.c:1308,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1310,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:1311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1293
    functionDepth: 4
    functionLinenumber: 1293
    functionLinenumberEnd: 1314
    functionName: cmd_http_recv
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strerror
    - CAST_OBJ_NOTNULL
    - strtoul
    - vtc_dump
    - read
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_http_recv(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1329,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1330,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1331,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http.c:1332,1
    - Dst: write
      Src: /src/VTest2/src/vtc_http.c:1333,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:1333,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:1334,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1335,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1322
    functionDepth: 4
    functionLinenumber: 1322
    functionLinenumberEnd: 1337
    functionName: cmd_http_send
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strerror
    - write
    - CAST_OBJ_NOTNULL
    - vtc_dump
    - AZ
    - AN
    - strlen
    linkageType: ''
    returnType: void
    signature: void cmd_http_send(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1352,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1353,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1354,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1355,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_http.c:1356,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http.c:1357,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:1358,1
    - Dst: write
      Src: /src/VTest2/src/vtc_http.c:1360,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1362,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:1364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1345
    functionDepth: 4
    functionLinenumber: 1345
    functionLinenumberEnd: 1366
    functionName: cmd_http_send_n
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strerror
    - write
    - CAST_OBJ_NOTNULL
    - strtoul
    - vtc_dump
    - AZ
    - AN
    - strlen
    linkageType: ''
    returnType: void
    signature: void cmd_http_send_n(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1381,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1382,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1383,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http.c:1384,1
    - Dst: send
      Src: /src/VTest2/src/vtc_http.c:1385,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:1385,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:1386,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1387,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:1388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1374
    functionDepth: 4
    functionLinenumber: 1374
    functionLinenumberEnd: 1389
    functionName: cmd_http_send_urgent
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strerror
    - CAST_OBJ_NOTNULL
    - send
    - vtc_dump
    - AZ
    - AN
    - strlen
    linkageType: ''
    returnType: void
    signature: void cmd_http_send_urgent(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1406,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1407,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1408,1
    - Dst: vtc_hex_to_bin
      Src: /src/VTest2/src/vtc_http.c:1409,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:1410,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_http.c:1410,1
    - Dst: vtc_hexdump
      Src: /src/VTest2/src/vtc_http.c:1411,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_http.c:1411,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_http.c:1411,1
    - Dst: VSB_tofile
      Src: /src/VTest2/src/vtc_http.c:1412,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1413,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:1414,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_http.c:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (VSB_len(vsb) >= 0)
      pos:
        line_end: 1409
        line_start: 1409
        source_file: /src/VTest2/src/vtc_http.c
    constantsTouched: []
    func_position:
      end: 1416
      start: 1399
    functionDepth: 4
    functionLinenumber: 1399
    functionLinenumberEnd: 1416
    functionName: cmd_http_sendhex
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - VSB_data
    - VSB_len
    - assert
    - vtc_log
    - strerror
    - vtc_hexdump
    - CAST_OBJ_NOTNULL
    - VSB_destroy
    - AZ
    - AN
    - vtc_hex_to_bin
    - VSB_tofile
    linkageType: ''
    returnType: void
    signature: void cmd_http_sendhex(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1430,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1431,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1432,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_http.c:1433,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:1434,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:1435,1
    - Dst: http_write
      Src: /src/VTest2/src/vtc_http.c:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1437
    functionName: cmd_http_chunked
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - CAST_OBJ_NOTNULL
    - http_write
    - VSB_printf
    - VSB_clear
    - AZ
    - AN
    - strlen
    linkageType: ''
    returnType: void
    signature: void cmd_http_chunked(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1455,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1456,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1457,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_http.c:1458,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_http.c:1460,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:1463,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:1468,1
    - Dst: vmin_t
      Src: /src/VTest2/src/vtc_http.c:1470,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_http.c:1471,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_http.c:1473,1
    - Dst: http_write
      Src: /src/VTest2/src/vtc_http.c:1475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1476
    functionName: cmd_http_chunkedlen
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - VSB_printf
    - CAST_OBJ_NOTNULL
    - http_write
    - vmin_t
    - VSB_clear
    - atoi
    - AZ
    - AN
    - VSB_bcat
    linkageType: ''
    returnType: void
    signature: void cmd_http_chunkedlen(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1492,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1493,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1494,1
    - Dst: VNUM
      Src: /src/VTest2/src/vtc_http.c:1495,1
    - Dst: isnan
      Src: /src/VTest2/src/vtc_http.c:1496,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1485
    functionDepth: 3
    functionLinenumber: 1485
    functionLinenumberEnd: 1499
    functionName: cmd_http_timeout
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - isnan
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - VNUM
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_http_timeout(CMD_ARGS)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1515,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1516,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1518,1
    - Dst: stop_h2
      Src: /src/VTest2/src/vtc_http.c:1520,1
    - Dst: poll
      Src: /src/VTest2/src/vtc_http.c:1525,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1529,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1531,1
    - Dst: read
      Src: /src/VTest2/src/vtc_http.c:1534,1
    - Dst: VTCP_Check
      Src: /src/VTest2/src/vtc_http.c:1535,1
    - Dst: vct_islws
      Src: /src/VTest2/src/vtc_http.c:1537,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1539,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1542,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1506
    functionDepth: 5
    functionLinenumber: 1506
    functionLinenumberEnd: 1543
    functionName: cmd_http_expect_close
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - stop_h2
    - poll
    - VTCP_Check
    - vtc_log
    - vct_islws
    - CAST_OBJ_NOTNULL
    - read
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_expect_close(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1557,1
    - Dst: ONLY_SERVER
      Src: /src/VTest2/src/vtc_http.c:1558,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1559,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:1560,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:1561,1
    - Dst: stop_h2
      Src: /src/VTest2/src/vtc_http.c:1563,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_http.c:1564,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (hp->sfd != NULL)
      pos:
        line_end: 1559
        line_start: 1559
        source_file: /src/VTest2/src/vtc_http.c
    - condition: (*hp->sfd >= 0)
      pos:
        line_end: 1560
        line_start: 1560
        source_file: /src/VTest2/src/vtc_http.c
    constantsTouched: []
    func_position:
      end: 1566
      start: 1551
    functionDepth: 5
    functionLinenumber: 1551
    functionLinenumberEnd: 1566
    functionName: cmd_http_close
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - stop_h2
    - VTCP_close
    - assert
    - vtc_log
    - ONLY_SERVER
    - CAST_OBJ_NOTNULL
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_close(CMD_ARGS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1580,1
    - Dst: ONLY_SERVER
      Src: /src/VTest2/src/vtc_http.c:1581,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1582,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:1583,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:1584,1
    - Dst: stop_h2
      Src: /src/VTest2/src/vtc_http.c:1586,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_http.c:1588,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1589,1
    - Dst: accept
      Src: /src/VTest2/src/vtc_http.c:1590,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1592,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:1592,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (hp->sfd != NULL)
      pos:
        line_end: 1582
        line_start: 1582
        source_file: /src/VTest2/src/vtc_http.c
    - condition: (*hp->sfd >= 0)
      pos:
        line_end: 1583
        line_start: 1583
        source_file: /src/VTest2/src/vtc_http.c
    constantsTouched: []
    func_position:
      end: 1594
      start: 1574
    functionDepth: 5
    functionLinenumber: 1574
    functionLinenumberEnd: 1594
    functionName: cmd_http_accept
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - stop_h2
    - VTCP_close
    - assert
    - vtc_log
    - strerror
    - ONLY_SERVER
    - CAST_OBJ_NOTNULL
    - accept
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_accept(CMD_ARGS)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1624,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1625,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1625,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1629,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1632,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1635,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1644,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1646,1
    - Dst: shutdown
      Src: /src/VTest2/src/vtc_http.c:1647,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1650,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1655,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:1657,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1660,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1610
    functionDepth: 3
    functionLinenumber: 1610
    functionLinenumberEnd: 1664
    functionName: cmd_http_shutdown
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strerror
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - shutdown
    - AZ
    linkageType: ''
    returnType: void
    signature: void cmd_http_shutdown(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1676,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1679,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1680,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:1683,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!strcmp(av[0], "non_fatal"))
      pos:
        line_end: 1682
        line_start: 1682
        source_file: /src/VTest2/src/vtc_http.c
    constantsTouched: []
    func_position:
      end: 1686
      start: 1672
    functionDepth: 1
    functionLinenumber: 1672
    functionLinenumberEnd: 1686
    functionName: cmd_http_fatal
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - assert
    - AZ
    - CAST_OBJ_NOTNULL
    - strcmp
    linkageType: ''
    returnType: void
    signature: void cmd_http_fatal(CMD_ARGS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1708,1
    - Dst: ONLY_CLIENT
      Src: /src/VTest2/src/vtc_http.c:1709,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_http.c:1711,1
    - Dst: write
      Src: /src/VTest2/src/vtc_http.c:1713,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1715,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:1716,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_http.c:1717,1
    - Dst: write
      Src: /src/VTest2/src/vtc_http.c:1718,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1720,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:1721,1
    - Dst: start_h2
      Src: /src/VTest2/src/vtc_http.c:1723,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1702
    functionDepth: 4
    functionLinenumber: 1702
    functionLinenumberEnd: 1725
    functionName: cmd_http_txpri
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strerror
    - start_h2
    - write
    - CAST_OBJ_NOTNULL
    - vtc_dump
    - VTIM_sleep
    - ONLY_CLIENT
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_http_txpri(CMD_ARGS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1738,1
    - Dst: ONLY_SERVER
      Src: /src/VTest2/src/vtc_http.c:1739,1
    - Dst: http_rxchar
      Src: /src/VTest2/src/vtc_http.c:1742,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1743,1
    - Dst: memcmp
      Src: /src/VTest2/src/vtc_http.c:1744,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1745,1
    - Dst: start_h2
      Src: /src/VTest2/src/vtc_http.c:1746,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1733
    functionDepth: 4
    functionLinenumber: 1733
    functionLinenumberEnd: 1748
    functionName: cmd_http_rxpri
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - memcmp
    - start_h2
    - vtc_fatal
    - ONLY_SERVER
    - CAST_OBJ_NOTNULL
    - http_rxchar
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_http_rxpri(CMD_ARGS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1762,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1765,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1767,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1770,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_http.c:1771,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1773,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:1775,1
    - Dst: HPK_ResizeTbl
      Src: /src/VTest2/src/vtc_http.c:1775,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1778,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (HPK_ResizeTbl(hp->decctx, n) != hpk_err)
      pos:
        line_end: 1774
        line_start: 1774
        source_file: /src/VTest2/src/vtc_http.c
    constantsTouched: []
    func_position:
      end: 1780
      start: 1756
    functionDepth: 3
    functionLinenumber: 1756
    functionLinenumberEnd: 1780
    functionName: cmd_http_settings
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - assert
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - strtoul
    - HPK_ResizeTbl
    linkageType: ''
    returnType: void
    signature: void cmd_http_settings(CMD_ARGS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1786,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1788,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_http.c:1790,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_http.c:1792,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_http.c:1793,1
    - Dst: cmd_stream
      Src: /src/VTest2/src/vtc_http.c:1803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1782
    functionDepth: 6
    functionLinenumber: 1782
    functionLinenumberEnd: 1804
    functionName: cmd_http_stream
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - parse_string
    - CAST_OBJ_NOTNULL
    - vtc_log
    - cmd_stream
    linkageType: ''
    returnType: void
    signature: void cmd_http_stream(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1820,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1821,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1822,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1823,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1824,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http.c:1824,1
    - Dst: VFIL_writefile
      Src: /src/VTest2/src/vtc_http.c:1825,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http.c:1826,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http.c:1827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1814
    functionDepth: 3
    functionLinenumber: 1814
    functionLinenumberEnd: 1828
    functionName: cmd_http_write_body
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - VFIL_writefile
    - strerror
    - vtc_fatal
    - strcmp
    - CAST_OBJ_NOTNULL
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void cmd_http_write_body(CMD_ARGS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1892,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_http.c:1895,1
    - Dst: stop_h2
      Src: /src/VTest2/src/vtc_http.c:1897,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_http.c:1898,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http.c:1899,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http.c:1900,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http.c:1901,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http.c:1902,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_http.c:1903,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1887
    functionDepth: 5
    functionLinenumber: 1887
    functionLinenumberEnd: 1904
    functionName: http_process_cleanup
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - stop_h2
    - VTCP_close
    - FREE_OBJ
    - CAST_OBJ_NOTNULL
    - free
    - VSB_destroy
    linkageType: ''
    returnType: void
    signature: void http_process_cleanup(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_http.c:1915,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1916,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1927,1
    - Dst: getsockopt
      Src: /src/VTest2/src/vtc_http.c:1927,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1928,1
    - Dst: setsockopt
      Src: /src/VTest2/src/vtc_http.c:1928,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1929,1
    - Dst: getsockopt
      Src: /src/VTest2/src/vtc_http.c:1929,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1931,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http.c:1936,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1937,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_http.c:1942,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1943,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http.c:1947,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1948,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http.c:1950,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1951,1
    - Dst: vtc_log_set_cmd
      Src: /src/VTest2/src/vtc_http.c:1954,1
    - Dst: VTCP_hisname
      Src: /src/VTest2/src/vtc_http.c:1959,1
    - Dst: strcpy
      Src: /src/VTest2/src/vtc_http.c:1963,1
    - Dst: strcpy
      Src: /src/VTest2/src/vtc_http.c:1964,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_http.c:1965,1
    - Dst: pthread_cleanup_push
      Src: /src/VTest2/src/vtc_http.c:1973,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_http.c:1974,1
    - Dst: pthread_cleanup_pop
      Src: /src/VTest2/src/vtc_http.c:1975,1
    - Dst: http_process_cleanup
      Src: /src/VTest2/src/vtc_http.c:1976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 7
    argNames:
    - vl
    - vsp
    - spec
    - sock
    - sfd
    - addr
    - rcvbuf
    argTypes:
    - struct vtclog*
    - struct vtc_sess*
    - char*
    - int*
    - int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1906
    functionDepth: 6
    functionLinenumber: 1906
    functionLinenumberEnd: 1977
    functionName: http_process
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 1
    functionsReached:
    - malloc
    - strcpy
    - pthread_cleanup_push
    - parse_string
    - vtc_log
    - ALLOC_OBJ
    - VTCP_hisname
    - vtc_log_set_cmd
    - setsockopt
    - getsockopt
    - VSB_new_auto
    - http_process_cleanup
    - pthread_cleanup_pop
    - AZ
    - AN
    - strdup
    linkageType: ''
    returnType: void
    signature: "void http_process(struct vtclog *vl, struct vtc_sess *vsp, const char
      *spec,\n    int *sock, int *sfd, const char *addr, int rcvbuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/VTest2/src/vtc_http.c:2014,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http.c:2019,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc_http.c:2019,1
    - Dst: VRND_RandomTestable
      Src: /src/VTest2/src/vtc_http.c:2020,1
    - Dst: TRUST_ME
      Src: /src/VTest2/src/vtc_http.c:2021,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:2022,1
    - Dst: TRUST_ME
      Src: /src/VTest2/src/vtc_http.c:2023,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:2025,1
    - Dst: deflateInit2
      Src: /src/VTest2/src/vtc_http.c:2025,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:2027,1
    - Dst: deflate
      Src: /src/VTest2/src/vtc_http.c:2027,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:2029,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_http.c:2030,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http.c:2031,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http.c:2033,1
    - Dst: deflateEnd
      Src: /src/VTest2/src/vtc_http.c:2033,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_http.c:2037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(Z_OK == deflateInit2(&vz,\n\t\t\t    9, Z_DEFLATED, 31, 9, Z_DEFAULT_STRATEGY))"
      pos:
        line_end: 2025
        line_start: 2024
        source_file: /src/VTest2/src/vtc_http.c
    - condition: (Z_STREAM_END == deflate(&vz, Z_FINISH))
      pos:
        line_end: 2026
        line_start: 2026
        source_file: /src/VTest2/src/vtc_http.c
    - condition: (Z_OK == deflateEnd(&vz))
      pos:
        line_end: 2032
        line_start: 2032
        source_file: /src/VTest2/src/vtc_http.c
    constantsTouched: []
    func_position:
      end: 2038
      start: 2001
    functionDepth: 1
    functionLinenumber: 2001
    functionLinenumberEnd: 2038
    functionName: xxx
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - deflateInit2
    - memset
    - assert
    - VRND_RandomTestable
    - strchr
    - printf
    - deflate
    - deflateEnd
    - TRUST_ME
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void xxx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vfil.c:63,1
    - Dst: open
      Src: /src/VTest2/lib/vfil.c:64,1
    - Dst: assert
      Src: /src/VTest2/lib/vfil.c:65,1
    - Dst: assert
      Src: /src/VTest2/lib/vfil.c:66,1
    - Dst: dup2
      Src: /src/VTest2/lib/vfil.c:66,1
    - Dst: closefd
      Src: /src/VTest2/lib/vfil.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - target
    argTypes:
    - int
    assertStmts:
    - condition: (target >= 0)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/VTest2/lib/vfil.c
    - condition: (fd >= 0)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/VTest2/lib/vfil.c
    - condition: (dup2(fd, target) == target)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/VTest2/lib/vfil.c
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: VFIL_null_fd
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 1
    functionsReached:
    - closefd
    - dup2
    - open
    - assert
    linkageType: ''
    returnType: void
    signature: void VFIL_null_fd(int target)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/lib/vfil.c:77,1
    - Dst: fstat
      Src: /src/VTest2/lib/vfil.c:77,1
    - Dst: S_ISREG
      Src: /src/VTest2/lib/vfil.c:78,1
    - Dst: malloc
      Src: /src/VTest2/lib/vfil.c:80,1
    - Dst: assert
      Src: /src/VTest2/lib/vfil.c:81,1
    - Dst: read
      Src: /src/VTest2/lib/vfil.c:82,1
    - Dst: free
      Src: /src/VTest2/lib/vfil.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - fd
    - sz
    argTypes:
    - int
    - ssize_t*
    assertStmts:
    - condition: (f != NULL)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/VTest2/lib/vfil.c
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: vfil_readfd
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 0
    functionsReached:
    - malloc
    - assert
    - free
    - S_ISREG
    - read
    - fstat
    - AZ
    linkageType: ''
    returnType: char
    signature: 'char *

      vfil_readfd(int fd, ssize_t *sz)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/VTest2/lib/vfil.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - buf
    - sz
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: vfil_writefd
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int vfil_writefd(int fd, const char *buf, size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bprintf
      Src: /src/VTest2/lib/vfil.c:118,1
    - Dst: open
      Src: /src/VTest2/lib/vfil.c:123,1
    - Dst: open
      Src: /src/VTest2/lib/vfil.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - pfx
    - fn
    - flags
    - mode
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: vfil_openfile
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 0
    functionsReached:
    - open
    - bprintf
    linkageType: ''
    returnType: int
    signature: int vfil_openfile(const char *pfx, const char *fn, int flags, int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vfil_openfile
      Src: /src/VTest2/lib/vfil.c:134,1
    - Dst: vfil_readfd
      Src: /src/VTest2/lib/vfil.c:137,1
    - Dst: closefd
      Src: /src/VTest2/lib/vfil.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pfx
    - fn
    - sz
    argTypes:
    - char*
    - char*
    - ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: VFIL_readfile
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 5
    functionsReached:
    - closefd
    - vfil_openfile
    - vfil_readfd
    linkageType: ''
    returnType: char
    signature: 'char *

      VFIL_readfile(const char *pfx, const char *fn, ssize_t *sz)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vfil_openfile
      Src: /src/VTest2/lib/vfil.c:150,1
    - Dst: vfil_writefd
      Src: /src/VTest2/lib/vfil.c:153,1
    - Dst: closefd
      Src: /src/VTest2/lib/vfil.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - pfx
    - fn
    - buf
    - sz
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 158
    functionName: VFIL_writefile
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 3
    functionsReached:
    - closefd
    - vfil_openfile
    - vfil_writefd
    linkageType: ''
    returnType: int
    signature: int VFIL_writefile(const char *pfx, const char *fn, const char *buf,
      size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/VTest2/lib/vfil.c:165,1
    - Dst: assert
      Src: /src/VTest2/lib/vfil.c:166,1
    - Dst: fcntl
      Src: /src/VTest2/lib/vfil.c:168,1
    - Dst: assert
      Src: /src/VTest2/lib/vfil.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts:
    - condition: (i != -1)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/VTest2/lib/vfil.c
    - condition: (i != -1)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/VTest2/lib/vfil.c
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: VFIL_nonblocking
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 0
    functionsReached:
    - fcntl
    - assert
    linkageType: ''
    returnType: int
    signature: int VFIL_nonblocking(int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fstatvfs
      Src: /src/VTest2/lib/vfil.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - fd
    - pbs
    - psize
    - pspace
    argTypes:
    - int
    - unsigned*
    - uintmax_t*
    - uintmax_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 198
    functionName: VFIL_fsinfo
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 0
    functionsReached:
    - fstatvfs
    linkageType: ''
    returnType: int
    signature: int VFIL_fsinfo(int fd, unsigned *pbs, uintmax_t *psize, uintmax_t
      *pspace)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ftruncate
      Src: /src/VTest2/lib/vfil.c:219,1
    - Dst: fstat
      Src: /src/VTest2/lib/vfil.c:221,1
    - Dst: VFIL_fsinfo
      Src: /src/VTest2/lib/vfil.c:223,1
    - Dst: fstatfs
      Src: /src/VTest2/lib/vfil.c:242,1
    - Dst: fallocate
      Src: /src/VTest2/lib/vfil.c:243,1
    - Dst: calloc
      Src: /src/VTest2/lib/vfil.c:259,1
    - Dst: AN
      Src: /src/VTest2/lib/vfil.c:260,1
    - Dst: assert
      Src: /src/VTest2/lib/vfil.c:261,1
    - Dst: lseek
      Src: /src/VTest2/lib/vfil.c:261,1
    - Dst: write
      Src: /src/VTest2/lib/vfil.c:266,1
    - Dst: assert
      Src: /src/VTest2/lib/vfil.c:272,1
    - Dst: lseek
      Src: /src/VTest2/lib/vfil.c:272,1
    - Dst: free
      Src: /src/VTest2/lib/vfil.c:273,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - fd
    - size
    - insist
    argTypes:
    - int
    - uintmax_t
    - int
    assertStmts:
    - condition: (lseek(fd, 0, SEEK_SET) == 0)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/VTest2/lib/vfil.c
    - condition: (lseek(fd, 0, SEEK_SET) == 0)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/VTest2/lib/vfil.c
    constantsTouched: []
    func_position:
      end: 275
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 275
    functionName: VFIL_allocate
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 0
    functionsReached:
    - assert
    - calloc
    - fstatfs
    - write
    - free
    - VFIL_fsinfo
    - AN
    - fallocate
    - fstat
    - lseek
    - ftruncate
    linkageType: ''
    returnType: int
    signature: int VFIL_allocate(int fd, uintmax_t size, int insist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vfil.c:302,1
    - Dst: AN
      Src: /src/VTest2/lib/vfil.c:303,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/lib/vfil.c:307,1
    - Dst: AN
      Src: /src/VTest2/lib/vfil.c:308,1
    - Dst: VTAILQ_INIT
      Src: /src/VTest2/lib/vfil.c:309,1
    - Dst: REPLACE
      Src: /src/VTest2/lib/vfil.c:312,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/lib/vfil.c:313,1
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/lib/vfil.c:314,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vfil.c:315,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/lib/vfil.c:316,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vfil.c:317,1
    - Dst: strchr
      Src: /src/VTest2/lib/vfil.c:320,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/lib/vfil.c:323,1
    - Dst: AN
      Src: /src/VTest2/lib/vfil.c:324,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/lib/vfil.c:326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - pp
    - path
    argTypes:
    - struct vfil_path**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 328
    functionName: VFIL_setpath
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 0
    functionsReached:
    - VTAILQ_REMOVE
    - VTAILQ_INIT
    - ALLOC_OBJ
    - CHECK_OBJ_NOTNULL
    - FREE_OBJ
    - VTAILQ_FIRST
    - REPLACE
    - strchr
    - VTAILQ_INSERT_TAIL
    - VTAILQ_EMPTY
    - AN
    linkageType: ''
    returnType: void
    signature: void VFIL_setpath(struct vfil_path **pp, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vfil.c:335,1
    - Dst: AN
      Src: /src/VTest2/lib/vfil.c:336,1
    - Dst: VFIL_readfile
      Src: /src/VTest2/lib/vfil.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - priv
    - fn
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 344
    functionName: vfil_path_openfile
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 0
    functionsReached:
    - VFIL_readfile
    - AN
    linkageType: ''
    returnType: int
    signature: int vfil_path_openfile(void *priv, const char *fn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vfil.c:354,1
    - Dst: AN
      Src: /src/VTest2/lib/vfil.c:355,1
    - Dst: AN
      Src: /src/VTest2/lib/vfil.c:360,1
    - Dst: func
      Src: /src/VTest2/lib/vfil.c:364,1
    - Dst: REPLACE
      Src: /src/VTest2/lib/vfil.c:366,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/lib/vfil.c:369,1
    - Dst: AN
      Src: /src/VTest2/lib/vfil.c:370,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/lib/vfil.c:371,1
    - Dst: VSB_clear
      Src: /src/VTest2/lib/vfil.c:372,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vfil.c:373,1
    - Dst: AZ
      Src: /src/VTest2/lib/vfil.c:374,1
    - Dst: VSB_finish
      Src: /src/VTest2/lib/vfil.c:374,1
    - Dst: access
      Src: /src/VTest2/lib/vfil.c:375,1
    - Dst: VSB_data
      Src: /src/VTest2/lib/vfil.c:375,1
    - Dst: func
      Src: /src/VTest2/lib/vfil.c:377,1
    - Dst: VSB_data
      Src: /src/VTest2/lib/vfil.c:377,1
    - Dst: strdup
      Src: /src/VTest2/lib/vfil.c:380,1
    - Dst: VSB_data
      Src: /src/VTest2/lib/vfil.c:380,1
    - Dst: AN
      Src: /src/VTest2/lib/vfil.c:381,1
    - Dst: VSB_destroy
      Src: /src/VTest2/lib/vfil.c:382,1
    - Dst: VSB_destroy
      Src: /src/VTest2/lib/vfil.c:387,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 5
    argNames:
    - vp
    - func
    - priv
    - fni
    - fno
    argTypes:
    - struct vfil_path*
    - vfil_path_func_f*
    - void*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 389
    functionName: VFIL_searchpath
    functionSourceFile: /src/VTest2/lib/vfil.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH
    - VSB_printf
    - access
    - CHECK_OBJ_NOTNULL
    - VSB_data
    - VSB_finish
    - REPLACE
    - VSB_destroy
    - VSB_new_auto
    - VSB_clear
    - func
    - AZ
    - AN
    - strdup
    linkageType: ''
    returnType: int
    signature: "int VFIL_searchpath(const struct vfil_path *vp, vfil_path_func_f *func,
      void *priv,\n    const char *fni, char **fno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: VSLIST_HEAD_INITIALIZER
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: VSLIST_EMPTY
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: VSLIST_FIRST
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: VSLIST_FOREACH
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: VSLIST_FOREACH_FROM
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: VSLIST_FOREACH_SAFE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: VSLIST_FOREACH_FROM_SAFE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: VSLIST_FOREACH_PREVPTR
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: VSLIST_INIT
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: VSLIST_INSERT_AFTER
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: VSLIST_INSERT_HEAD
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: VSLIST_NEXT
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 189
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 189
    functionName: VSLIST_REMOVE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: VSLIST_REMOVE_AFTER
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: VSLIST_REMOVE_HEAD
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 204
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: VSLIST_SWAP
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSLIST_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: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: VSTAILQ_HEAD
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: VSTAILQ_HEAD_INITIALIZER
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 232
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: VSTAILQ_CONCAT
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: VSTAILQ_EMPTY
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: VSTAILQ_FIRST
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: VSTAILQ_FOREACH
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: VSTAILQ_FOREACH_FROM
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: VSTAILQ_FOREACH_SAFE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 256
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: VSTAILQ_FOREACH_FROM_SAFE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: VSTAILQ_INIT
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 267
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: VSTAILQ_INSERT_AFTER
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: VSTAILQ_INSERT_HEAD
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 279
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: VSTAILQ_INSERT_TAIL
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: VSTAILQ_LAST
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: VSTAILQ_NEXT
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 298
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 298
    functionName: VSTAILQ_REMOVE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: VSTAILQ_REMOVE_AFTER
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 310
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: VSTAILQ_REMOVE_HEAD
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 323
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 323
    functionName: VSTAILQ_SWAP
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSTAILQ_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: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: VLIST_HEAD_INITIALIZER
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: VLIST_ENTRY
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: VLIST_EMPTY
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: VLIST_FIRST
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: VLIST_FOREACH
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: VLIST_FOREACH_FROM
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: VLIST_FOREACH_SAFE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: VLIST_FOREACH_FROM_SAFE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: 374
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 374
    functionName: VLIST_INIT
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: 382
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 382
    functionName: VLIST_INSERT_AFTER
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: 389
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 389
    functionName: VLIST_INSERT_BEFORE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: 396
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 396
    functionName: VLIST_INSERT_HEAD
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: 398
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 398
    functionName: VLIST_NEXT
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: VLIST_PREV
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: 411
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 411
    functionName: VLIST_REMOVE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: 421
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 421
    functionName: VLIST_SWAP
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLIST_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: 427
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: VTAILQ_HEAD
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 434
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 434
    functionName: VTAILQ_HEAD_INITIALIZER
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 437
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 437
    functionName: VTAILQ_ENTRY
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_ENTRY(type)
  - 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: 454
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 454
    functionName: VTAILQ_CONCAT
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: VTAILQ_EMPTY
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: VTAILQ_FIRST
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 463
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: VTAILQ_FOREACH
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 468
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: VTAILQ_FOREACH_FROM
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 473
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 473
    functionName: VTAILQ_FOREACH_SAFE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 478
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: VTAILQ_FOREACH_FROM_SAFE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 483
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 483
    functionName: VTAILQ_FOREACH_REVERSE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 488
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 488
    functionName: VTAILQ_FOREACH_REVERSE_FROM
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 493
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: VTAILQ_FOREACH_REVERSE_SAFE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 498
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: VTAILQ_FOREACH_REVERSE_FROM_SAFE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 503
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: VTAILQ_INIT
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 514
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 514
    functionName: VTAILQ_INSERT_AFTER
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 521
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 521
    functionName: VTAILQ_INSERT_BEFORE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 531
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 531
    functionName: VTAILQ_INSERT_HEAD
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 538
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 538
    functionName: VTAILQ_INSERT_TAIL
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 541
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 541
    functionName: VTAILQ_LAST
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_LAST(head, headname)
  - 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: 543
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 543
    functionName: VTAILQ_NEXT
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 546
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 546
    functionName: VTAILQ_PREV
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_PREV(elm, headname, 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: 558
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 558
    functionName: VTAILQ_REMOVE
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_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: 575
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 575
    functionName: VTAILQ_SWAP
    functionSourceFile: /src/VTest2/lib/vqueue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTAILQ_SWAP(head1, head2, type, field)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vsa.c:206,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vsa.c:211,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vsa.c:216,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vsa.c:223,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vsa.c:225,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - sua
    argTypes:
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 238
    functionName: vsa_normalize
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memcpy
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void vsa_normalize(struct suckaddr *sua)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vsa.c:243,1
    - Dst: VSA_BuildFAP
      Src: /src/VTest2/lib/vsa.c:243,1
    - Dst: AN
      Src: /src/VTest2/lib/vsa.c:244,1
    - Dst: VSA_BuildFAP
      Src: /src/VTest2/lib/vsa.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: VSA_Init
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - AN
    - VSA_BuildFAP
    linkageType: ''
    returnType: void
    signature: void VSA_Init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vsa.c:256,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vsa.c:259,1
    - Dst: assert
      Src: /src/VTest2/lib/vsa.c:263,1
    - Dst: assert
      Src: /src/VTest2/lib/vsa.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - sua
    - dst
    argTypes:
    - struct suckaddr*
    - unsigned char**
    assertStmts:
    - condition: (sua->u.sa.sa_family == sua->u.sa4.sin_family)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/VTest2/lib/vsa.c
    - condition: (sua->u.sa.sa_family == sua->u.sa6.sin6_family)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/VTest2/lib/vsa.c
    constantsTouched: []
    func_position:
      end: 274
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 274
    functionName: VSA_GetPtr
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - AN
    - assert
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: int
    signature: int VSA_GetPtr(const struct suckaddr *sua, const unsigned char ** dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - sa
    argTypes:
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 294
    functionName: sua_len
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t sua_len(const struct sockaddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSA_Build
      Src: /src/VTest2/lib/vsa.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - sal
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: VSA_Malloc
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - VSA_Build
    linkageType: ''
    returnType: struct suckaddr
    signature: 'struct suckaddr *

      VSA_Malloc(const void *s, unsigned  sal)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/VTest2/lib/vsa.c:326,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:331,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:336,1
    - Dst: VSA_Build
      Src: /src/VTest2/lib/vsa.c:338,1
    - Dst: memset
      Src: /src/VTest2/lib/vsa.c:340,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:345,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:350,1
    - Dst: VSA_Build
      Src: /src/VTest2/lib/vsa.c:352,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 6
    argNames:
    - d
    - fam
    - a
    - al
    - p
    - pl
    argTypes:
    - void*
    - sa_family_t
    - void*
    - unsigned
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 359
    functionName: VSA_BuildFAP
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 1
    functionsReached:
    - VSA_Build
    - memset
    - memcpy
    linkageType: ''
    returnType: struct suckaddr
    signature: "struct suckaddr *\nVSA_BuildFAP(void *d, sa_family_t fam, const void
      *a, unsigned al,\n\t    const void *p, unsigned pl)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vsa.c:368,1
    - Dst: sua_len
      Src: /src/VTest2/lib/vsa.c:369,1
    - Dst: malloc
      Src: /src/VTest2/lib/vsa.c:374,1
    - Dst: AN
      Src: /src/VTest2/lib/vsa.c:375,1
    - Dst: INIT_OBJ
      Src: /src/VTest2/lib/vsa.c:380,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:383,1
    - Dst: assert
      Src: /src/VTest2/lib/vsa.c:384,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:387,1
    - Dst: assert
      Src: /src/VTest2/lib/vsa.c:388,1
    - Dst: WRONG
      Src: /src/VTest2/lib/vsa.c:391,1
    - Dst: vsa_normalize
      Src: /src/VTest2/lib/vsa.c:396,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - d
    - s
    - sal
    argTypes:
    - void*
    - void*
    - unsigned
    assertStmts:
    - condition: (sua->u.sa.sa_family == PF_INET)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/VTest2/lib/vsa.c
    - condition: (sua->u.sa.sa_family == PF_INET6)
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/VTest2/lib/vsa.c
    constantsTouched: []
    func_position:
      end: 398
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 398
    functionName: VSA_Build
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 2
    functionsReached:
    - malloc
    - INIT_OBJ
    - assert
    - memcpy
    - sua_len
    - WRONG
    - vsa_normalize
    - AN
    linkageType: ''
    returnType: struct suckaddr
    signature: 'struct suckaddr *

      VSA_Build(void *d, const void *s, unsigned sal)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vsa.c:405,1
    - Dst: AN
      Src: /src/VTest2/lib/vsa.c:406,1
    - Dst: sua_len
      Src: /src/VTest2/lib/vsa.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sua
    - slp
    argTypes:
    - struct suckaddr*
    - socklen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 412
    functionName: VSA_Get_Sockaddr
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 1
    functionsReached:
    - sua_len
    - AN
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: 'void *

      VSA_Get_Sockaddr(const struct suckaddr *sua, socklen_t *slp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vsa.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sua
    argTypes:
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: VSA_Get_Proto
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 9
    functionsReached:
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: int
    signature: int VSA_Get_Proto(const struct suckaddr *sua)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VALID_OBJ
      Src: /src/VTest2/lib/vsa.c:425,1
    - Dst: sua_len
      Src: /src/VTest2/lib/vsa.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sua
    argTypes:
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: VSA_Sane
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - sua_len
    - VALID_OBJ
    linkageType: ''
    returnType: int
    signature: int VSA_Sane(const struct suckaddr *sua)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vsa.c:432,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vsa.c:433,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vsa.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sua1
    - sua2
    argTypes:
    - struct suckaddr*
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: VSA_Compare
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - memcmp
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: int
    signature: int VSA_Compare(const struct suckaddr *sua1, const struct suckaddr
      *sua2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vsa.c:441,1
    - Dst: VSA_Sane
      Src: /src/VTest2/lib/vsa.c:441,1
    - Dst: assert
      Src: /src/VTest2/lib/vsa.c:442,1
    - Dst: VSA_Sane
      Src: /src/VTest2/lib/vsa.c:442,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vsa.c:449,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vsa.c:452,1
    - Dst: WRONG
      Src: /src/VTest2/lib/vsa.c:455,1
    - Dst: NEEDLESS
      Src: /src/VTest2/lib/vsa.c:457,1
    - Dst: return
      Src: /src/VTest2/lib/vsa.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - sua1
    - sua2
    argTypes:
    - struct suckaddr*
    - struct suckaddr*
    assertStmts:
    - condition: (VSA_Sane(sua1))
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/VTest2/lib/vsa.c
    - condition: (VSA_Sane(sua2))
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/VTest2/lib/vsa.c
    constantsTouched: []
    func_position:
      end: 458
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 458
    functionName: VSA_Compare_IP
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - memcmp
    - assert
    - VSA_Sane
    - NEEDLESS
    - WRONG
    - return
    linkageType: ''
    returnType: int
    signature: int VSA_Compare_IP(const struct suckaddr *sua1, const struct suckaddr
      *sua2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vsa.c:465,1
    - Dst: VSA_Sane
      Src: /src/VTest2/lib/vsa.c:465,1
    - Dst: calloc
      Src: /src/VTest2/lib/vsa.c:466,1
    - Dst: XXXAN
      Src: /src/VTest2/lib/vsa.c:467,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sua
    argTypes:
    - struct suckaddr*
    assertStmts:
    - condition: (VSA_Sane(sua))
      pos:
        line_end: 464
        line_start: 464
        source_file: /src/VTest2/lib/vsa.c
    constantsTouched: []
    func_position:
      end: 470
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 470
    functionName: VSA_Clone
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - calloc
    - VSA_Sane
    - XXXAN
    linkageType: ''
    returnType: struct suckaddr
    signature: 'struct suckaddr *

      VSA_Clone(const struct suckaddr *sua)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vsa.c:476,1
    - Dst: ntohs
      Src: /src/VTest2/lib/vsa.c:479,1
    - Dst: ntohs
      Src: /src/VTest2/lib/vsa.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - sua
    argTypes:
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 485
    functionName: VSA_Port
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 1
    functionsReached:
    - ntohs
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: unsigned
    signature: unsigned VSA_Port(const struct suckaddr *sua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - which
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 511
    functionName: VSA_getname
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSA_getname(which)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OBJ_NOTNULL
      Src: /src/VTest2/lib/vsa.c:521,1
    - Dst: free
      Src: /src/VTest2/lib/vsa.c:522,1
    - Dst: TRUST_ME
      Src: /src/VTest2/lib/vsa.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vsap
    argTypes:
    - struct suckaddr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 523
    functionName: VSA_free
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 4
    functionsReached:
    - TAKE_OBJ_NOTNULL
    - TRUST_ME
    - free
    linkageType: ''
    returnType: void
    signature: void VSA_free(const struct suckaddr **vsap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: assert
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 118
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: assert
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 118
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: xxxassert
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xxxassert(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - foo
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: AZ
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 115
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AZ(foo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - foo
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: AN
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 158
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AN(foo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - foo
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: XXXAZ
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXXAZ(foo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - foo
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: XXXAN
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXXAN(foo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - foo
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: diagnostic
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: diagnostic(foo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: WRONG
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRONG(expl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - call
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: _PTOK
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PTOK(call, var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - call
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: PTOK
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 83
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTOK(call)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: INCOMPL
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INCOMPL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: __has_extension
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_extension(x)
  - 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: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: v_static_assert
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: v_static_assert(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: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: v_static_assert
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: v_static_assert(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: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: __v_static_assert
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __v_static_assert(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: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: ___v_static_assert
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___v_static_assert(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vas.h:145,1
    - Dst: AN
      Src: /src/VTest2/lib/vas.h:146,1
    - Dst: assert
      Src: /src/VTest2/lib/vas.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - b
    - e
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (b <= e)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/VTest2/lib/vas.h
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: pdiff
    functionSourceFile: /src/VTest2/lib/vas.h
    functionUses: 0
    functionsReached:
    - AN
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t pdiff(const void *b, const void *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: bprintf
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bprintf(buf, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - fmt
    - ','
    - ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: vbprintf
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vbprintf(buf, fmt, 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: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: bstrcpy
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bstrcpy(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: closefd
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: closefd(fdp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: __has_feature
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_feature(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: __GNUC_PREREQ__
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __GNUC_PREREQ__(maj, min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: __GNUC_PREREQ__
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __GNUC_PREREQ__(maj, min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: v_printflike_
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: v_printflike_(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: v_gcov_flush
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: v_gcov_flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: v_gcov_flush
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: v_gcov_flush()
  - 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: v_gcov_flush
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: v_gcov_flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: v_gcov_flush
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: v_gcov_flush()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: PAOK
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAOK(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: PRNDDN
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRNDDN(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: PRNDUP
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRNDUP(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: TRUST_ME
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUST_ME(ptr)
  - 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: PWR2
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PWR2(x)
  - 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: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: RDN2
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDN2(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: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: RUP2
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUP2(x, y)
  - 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: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: VINDIRECT
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VINDIRECT(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: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: VCOMBINE
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VCOMBINE(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: VUNIQ_NAME
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VUNIQ_NAME(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: VUNIQ_NAME
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VUNIQ_NAME(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: typeof
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: typeof(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - op
    - ','
    - ta
    - ','
    - tb
    - ','
    - a
    - ','
    - b
    - ','
    - _va
    - ','
    - _vb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: _vtake
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _vtake(op, ta, tb, a, b, _va, _vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - n
    - ','
    - ta
    - ','
    - tb
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: vtake
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vtake(n, ta, tb, 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: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: vmin
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmin(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: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: vmax
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmax(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: vmin_t
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmin_t(type, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: vmax_t
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmax_t(type, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - l
    - ','
    - u
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: vlimit
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlimit(a, l, u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - a
    - ','
    - l
    - ','
    - u
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: vlimit_t
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlimit_t(type, a, l, u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: vcountof
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcountof(arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - varname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: v_statevariable_
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: v_statevariable_(varname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: NEEDLESS
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDLESS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: NEEDLESS
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDLESS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: v_used_
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: v_used_(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: v_counted_by_
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: v_counted_by_(field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: Tcheck
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tcheck(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: Tlen
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tlen(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: Tstreq
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tstreq(t, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: Tforeach
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tforeach(c, t)
  - 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: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: LIKELY
    functionSourceFile: /src/VTest2/lib/vdef.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: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: UNLIKELY
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: __DEQUALIFY
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DEQUALIFY(type, var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - s
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: __containerof
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __containerof(x, s, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - s
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: __containerof
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __containerof(x, s, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: __has_builtin
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_builtin(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: vstrcmp
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vstrcmp(s1, s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: vstrcmp
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vstrcmp(s1, s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: vstrlen
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vstrlen(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: vstrlen
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vstrlen(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: vmemcmp
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmemcmp(s1, s2, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: vmemcmp
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmemcmp(s1, s2, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - evb
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: DBG
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG(evb, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/lib/vev.c:104,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/lib/vev.c:105,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - priv
    - a
    - u
    argTypes:
    - void*
    - void*
    - unsigned
    assertStmts:
    - condition: (u < evb->lpfd)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/VTest2/lib/vev.c
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: vev_bh_update
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 0
    functionsReached:
    - CAST_OBJ_NOTNULL
    - assert
    linkageType: ''
    returnType: void
    signature: void vev_bh_update(void *priv, void *a, unsigned u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/lib/vev.c:122,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/lib/vev.c:123,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/lib/vev.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - priv
    - a
    - b
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: vev_bh_cmp
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 0
    functionsReached:
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void vev_bh_cmp(void *priv, const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/VTest2/lib/vev.c:145,1
    - Dst: AN
      Src: /src/VTest2/lib/vev.c:146,1
    - Dst: realloc
      Src: /src/VTest2/lib/vev.c:147,1
    - Dst: AN
      Src: /src/VTest2/lib/vev.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - evb
    argTypes:
    - struct vev_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 150
    functionName: vev_get_pfd
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 0
    functionsReached:
    - AN
    - realloc
    linkageType: ''
    returnType: int
    signature: int vev_get_pfd(struct vev_root *evb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/VTest2/lib/vev.c:162,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vev.c:167,1
    - Dst: free
      Src: /src/VTest2/lib/vev.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: vev_get_sig
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 0
    functionsReached:
    - calloc
    - free
    - memcpy
    linkageType: ''
    returnType: int
    signature: int vev_get_sig(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:184,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:185,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vev.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - sig
    - siginfo
    - ctx
    argTypes:
    - int
    - siginfo_t*
    - void*
    assertStmts:
    - condition: (sig < vev_nsig)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/VTest2/lib/vev.c
    - condition: (vev_sigs != NULL)
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/VTest2/lib/vev.c
    constantsTouched: []
    func_position:
      end: 193
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 193
    functionName: vev_sigaction
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: void vev_sigaction(int sig, siginfo_t *siginfo, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/VTest2/lib/vev.c:202,1
    - Dst: vev_get_pfd
      Src: /src/VTest2/lib/vev.c:206,1
    - Dst: free
      Src: /src/VTest2/lib/vev.c:207,1
    - Dst: VBH_new
      Src: /src/VTest2/lib/vev.c:211,1
    - Dst: pthread_self
      Src: /src/VTest2/lib/vev.c:212,1
    - Dst: fopen
      Src: /src/VTest2/lib/vev.c:214,1
    - Dst: AN
      Src: /src/VTest2/lib/vev.c:215,1
    - Dst: setbuf
      Src: /src/VTest2/lib/vev.c:216,1
    - Dst: DBG
      Src: /src/VTest2/lib/vev.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 220
    functionName: VEV_New
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 2
    functionsReached:
    - DBG
    - calloc
    - free
    - VBH_new
    - vev_get_pfd
    - fopen
    - pthread_self
    - AN
    - setbuf
    linkageType: ''
    returnType: struct vev_root
    signature: 'struct vev_root *

      VEV_New(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OBJ_NOTNULL
      Src: /src/VTest2/lib/vev.c:230,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:231,1
    - Dst: pthread_equal
      Src: /src/VTest2/lib/vev.c:231,1
    - Dst: pthread_self
      Src: /src/VTest2/lib/vev.c:231,1
    - Dst: VBH_root
      Src: /src/VTest2/lib/vev.c:232,1
    - Dst: VEV_Stop
      Src: /src/VTest2/lib/vev.c:233,1
    - Dst: free
      Src: /src/VTest2/lib/vev.c:234,1
    - Dst: VBH_destroy
      Src: /src/VTest2/lib/vev.c:236,1
    - Dst: free
      Src: /src/VTest2/lib/vev.c:237,1
    - Dst: free
      Src: /src/VTest2/lib/vev.c:238,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vev.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - evbp
    argTypes:
    - struct vev_root**
    assertStmts:
    - condition: (pthread_equal(evb->thread, pthread_self()))
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/VTest2/lib/vev.c
    constantsTouched: []
    func_position:
      end: 240
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 240
    functionName: VEV_Destroy
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 2
    functionsReached:
    - assert
    - VBH_root
    - FREE_OBJ
    - free
    - VEV_Stop
    - pthread_self
    - VBH_destroy
    - TAKE_OBJ_NOTNULL
    - pthread_equal
    linkageType: ''
    returnType: void
    signature: void VEV_Destroy(struct vev_root **evbp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/VTest2/lib/vev.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: VEV_Alloc
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 2
    functionsReached:
    - calloc
    linkageType: ''
    returnType: struct vev
    signature: 'struct vev *

      VEV_Alloc(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vev.c:263,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:264,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:265,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:266,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:267,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:268,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:269,1
    - Dst: pthread_equal
      Src: /src/VTest2/lib/vev.c:269,1
    - Dst: pthread_self
      Src: /src/VTest2/lib/vev.c:269,1
    - Dst: DBG
      Src: /src/VTest2/lib/vev.c:270,1
    - Dst: vev_get_pfd
      Src: /src/VTest2/lib/vev.c:272,1
    - Dst: vev_get_sig
      Src: /src/VTest2/lib/vev.c:276,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:279,1
    - Dst: AZ
      Src: /src/VTest2/lib/vev.c:283,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vev.c:295,1
    - Dst: VBH_insert
      Src: /src/VTest2/lib/vev.c:300,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:301,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:307,1
    - Dst: AZ
      Src: /src/VTest2/lib/vev.c:308,1
    - Dst: sigaction
      Src: /src/VTest2/lib/vev.c:308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 2
    argNames:
    - evb
    - e
    argTypes:
    - struct vev_root*
    - struct vev*
    assertStmts:
    - condition: (e->magic != VEV_MAGIC)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/VTest2/lib/vev.c
    - condition: (pthread_equal(evb->thread, pthread_self()))
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/VTest2/lib/vev.c
    - condition: (e->fd < 0)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/VTest2/lib/vev.c
    - condition: (e->timeout >= 0.0)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/VTest2/lib/vev.c
    - condition: (e->callback != NULL)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/VTest2/lib/vev.c
    - condition: (e->__binheap_idx != VBH_NOIDX)
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/VTest2/lib/vev.c
    - condition: (e->fd < 0 || e->fd_flags)
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/VTest2/lib/vev.c
    - condition: (e->sig >= 0)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/VTest2/lib/vev.c
    - condition: (es != NULL)
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/VTest2/lib/vev.c
    constantsTouched: []
    func_position:
      end: 312
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 312
    functionName: VEV_Start
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 2
    functionsReached:
    - DBG
    - assert
    - CHECK_OBJ_NOTNULL
    - sigaction
    - VBH_insert
    - VTIM_mono
    - vev_get_sig
    - vev_get_pfd
    - pthread_self
    - AZ
    - pthread_equal
    linkageType: ''
    returnType: int
    signature: int VEV_Start(struct vev_root *evb, struct vev *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vev.c:321,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vev.c:322,1
    - Dst: DBG
      Src: /src/VTest2/lib/vev.c:323,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:324,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:325,1
    - Dst: pthread_equal
      Src: /src/VTest2/lib/vev.c:325,1
    - Dst: pthread_self
      Src: /src/VTest2/lib/vev.c:325,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:326,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:328,1
    - Dst: VBH_delete
      Src: /src/VTest2/lib/vev.c:330,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:331,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:335,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:341,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:343,1
    - Dst: AZ
      Src: /src/VTest2/lib/vev.c:348,1
    - Dst: sigaction
      Src: /src/VTest2/lib/vev.c:348,1
    - Dst: FINI_OBJ
      Src: /src/VTest2/lib/vev.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - evb
    - e
    argTypes:
    - struct vev_root*
    - struct vev*
    assertStmts:
    - condition: (pthread_equal(evb->thread, pthread_self()))
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/VTest2/lib/vev.c
    - condition: (evb == e->__vevb)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/VTest2/lib/vev.c
    - condition: (evb->pev[e->__binheap_idx] == e)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/VTest2/lib/vev.c
    - condition: (e->__binheap_idx != VBH_NOIDX)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/VTest2/lib/vev.c
    - condition: (evb->n_fd_events > 0)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/VTest2/lib/vev.c
    - condition: (e->__binheap_idx == VBH_NOIDX)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/VTest2/lib/vev.c
    - condition: (e->sig < vev_nsig)
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/VTest2/lib/vev.c
    - condition: (es->vev == e)
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/VTest2/lib/vev.c
    constantsTouched: []
    func_position:
      end: 354
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 354
    functionName: VEV_Stop
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 2
    functionsReached:
    - DBG
    - assert
    - CHECK_OBJ_NOTNULL
    - FINI_OBJ
    - sigaction
    - VBH_delete
    - pthread_self
    - AZ
    - pthread_equal
    linkageType: ''
    returnType: void
    signature: void VEV_Stop(struct vev_root *evb, struct vev *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vev.c:363,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:364,1
    - Dst: pthread_equal
      Src: /src/VTest2/lib/vev.c:364,1
    - Dst: pthread_self
      Src: /src/VTest2/lib/vev.c:364,1
    - Dst: VEV_Once
      Src: /src/VTest2/lib/vev.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - evb
    argTypes:
    - struct vev_root*
    assertStmts:
    - condition: (pthread_equal(evb->thread, pthread_self()))
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/VTest2/lib/vev.c
    constantsTouched: []
    func_position:
      end: 369
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 369
    functionName: VEV_Loop
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 0
    functionsReached:
    - VEV_Once
    - assert
    - CHECK_OBJ_NOTNULL
    - pthread_self
    - pthread_equal
    linkageType: ''
    returnType: int
    signature: int VEV_Loop(struct vev_root *evb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct vev*::callback
      Src: /src/VTest2/lib/vev.c:379,1
    - Dst: VEV_Stop
      Src: /src/VTest2/lib/vev.c:381,1
    - Dst: free
      Src: /src/VTest2/lib/vev.c:382,1
    - Dst: VBH_delete
      Src: /src/VTest2/lib/vev.c:385,1
    - Dst: VBH_insert
      Src: /src/VTest2/lib/vev.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - evb
    - e
    - t
    argTypes:
    - struct vev_root*
    - struct vev*
    - vtim_mono
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 389
    functionName: vev_sched_timeout
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 0
    functionsReached:
    - free
    - VBH_insert
    - VEV_Stop
    - VBH_delete
    - struct vev*::callback
    linkageType: ''
    returnType: int
    signature: int vev_sched_timeout(struct vev_root *evb, struct vev *e, vtim_mono
      t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:405,1
    - Dst: struct vev*::callback
      Src: /src/VTest2/lib/vev.c:406,1
    - Dst: memset
      Src: /src/VTest2/lib/vev.c:409,1
    - Dst: VEV_Stop
      Src: /src/VTest2/lib/vev.c:412,1
    - Dst: free
      Src: /src/VTest2/lib/vev.c:413,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - evb
    argTypes:
    - struct vev_root*
    assertStmts:
    - condition: (e != NULL)
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/VTest2/lib/vev.c
    constantsTouched: []
    func_position:
      end: 419
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 419
    functionName: vev_sched_signal
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - free
    - VEV_Stop
    - struct vev*::callback
    linkageType: ''
    returnType: int
    signature: int vev_sched_signal(struct vev_root *evb)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vev.c:430,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:431,1
    - Dst: pthread_equal
      Src: /src/VTest2/lib/vev.c:431,1
    - Dst: pthread_self
      Src: /src/VTest2/lib/vev.c:431,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:432,1
    - Dst: vev_sched_signal
      Src: /src/VTest2/lib/vev.c:435,1
    - Dst: VBH_root
      Src: /src/VTest2/lib/vev.c:438,1
    - Dst: CHECK_OBJ
      Src: /src/VTest2/lib/vev.c:440,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:441,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vev.c:442,1
    - Dst: vev_sched_timeout
      Src: /src/VTest2/lib/vev.c:444,1
    - Dst: poll
      Src: /src/VTest2/lib/vev.c:454,1
    - Dst: vev_sched_signal
      Src: /src/VTest2/lib/vev.c:456,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:461,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vev.c:462,1
    - Dst: vev_sched_timeout
      Src: /src/VTest2/lib/vev.c:464,1
    - Dst: AZ
      Src: /src/VTest2/lib/vev.c:467,1
    - Dst: AZ
      Src: /src/VTest2/lib/vev.c:469,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:474,1
    - Dst: DBG
      Src: /src/VTest2/lib/vev.c:476,1
    - Dst: DBG
      Src: /src/VTest2/lib/vev.c:483,1
    - Dst: struct vev*::callback
      Src: /src/VTest2/lib/vev.c:485,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:487,1
    - Dst: VEV_Stop
      Src: /src/VTest2/lib/vev.c:491,1
    - Dst: free
      Src: /src/VTest2/lib/vev.c:492,1
    - Dst: assert
      Src: /src/VTest2/lib/vev.c:497,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 1
    argNames:
    - evb
    argTypes:
    - struct vev_root*
    assertStmts:
    - condition: (evb->n_fd_events == i)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/VTest2/lib/vev.c
    - condition: (progress > 0)
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/VTest2/lib/vev.c
    - condition: (pthread_equal(evb->thread, pthread_self()))
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/VTest2/lib/vev.c
    - condition: (e != NULL)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/VTest2/lib/vev.c
    - condition: (evb->n_fd_events > 0)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/VTest2/lib/vev.c
    - condition: (evb->lpfd < evb->npfd)
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/VTest2/lib/vev.c
    - condition: (e->__binheap_idx == VBH_NOIDX + 1)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/VTest2/lib/vev.c
    constantsTouched: []
    func_position:
      end: 501
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 501
    functionName: VEV_Once
    functionSourceFile: /src/VTest2/lib/vev.c
    functionUses: 3
    functionsReached:
    - DBG
    - vev_sched_signal
    - poll
    - assert
    - CHECK_OBJ_NOTNULL
    - VBH_root
    - free
    - VTIM_mono
    - vev_sched_timeout
    - VEV_Stop
    - pthread_self
    - CHECK_OBJ
    - AZ
    - struct vev*::callback
    - pthread_equal
    linkageType: ''
    returnType: int
    signature: int VEV_Once(struct vev_root *evb)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 76
    functionName: VUDP_Check
    functionSourceFile: /src/VTest2/lib/vudp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VUDP_Check(int a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/VTest2/lib/vudp.c:88,1
    - Dst: assert
      Src: /src/VTest2/lib/vudp.c:90,1
    - Dst: VUDP_Check
      Src: /src/VTest2/lib/vudp.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - int*
    assertStmts:
    - condition: (VUDP_Check(i))
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/VTest2/lib/vudp.c
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: VUDP_close
    functionSourceFile: /src/VTest2/lib/vudp.c
    functionUses: 3
    functionsReached:
    - VUDP_Check
    - close
    - assert
    linkageType: ''
    returnType: void
    signature: void VUDP_close(int *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/lib/vudp.c:116,1
    - Dst: socket
      Src: /src/VTest2/lib/vudp.c:117,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vudp.c:128,1
    - Dst: closefd
      Src: /src/VTest2/lib/vudp.c:132,1
    - Dst: VSA_Get_Sockaddr
      Src: /src/VTest2/lib/vudp.c:137,1
    - Dst: bind
      Src: /src/VTest2/lib/vudp.c:138,1
    - Dst: closefd
      Src: /src/VTest2/lib/vudp.c:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - sa
    - errp
    argTypes:
    - struct suckaddr*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 147
    functionName: VUDP_bind
    functionSourceFile: /src/VTest2/lib/vudp.c
    functionUses: 0
    functionsReached:
    - setsockopt
    - VSA_Get_Proto
    - bind
    - VSA_Get_Sockaddr
    - socket
    - closefd
    linkageType: ''
    returnType: int
    signature: int VUDP_bind(const struct suckaddr *sa, const char **errp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VUDP_bind
      Src: /src/VTest2/lib/vudp.c:155,1
    - Dst: AN
      Src: /src/VTest2/lib/vudp.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - priv
    - sa
    argTypes:
    - void*
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 162
    functionName: vudp_lo_cb
    functionSourceFile: /src/VTest2/lib/vudp.c
    functionUses: 0
    functionsReached:
    - VUDP_bind
    - AN
    linkageType: ''
    returnType: void
    signature: void vudp_lo_cb(void *priv, const struct suckaddr *sa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VSS_resolver_socktype
      Src: /src/VTest2/lib/vudp.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - addr
    - def_port
    - errp
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 177
    functionName: VUDP_bind_on
    functionSourceFile: /src/VTest2/lib/vudp.c
    functionUses: 2
    functionsReached:
    - VSS_resolver_socktype
    linkageType: ''
    returnType: int
    signature: int VUDP_bind_on(const char *addr, const char *def_port, const char
      **errp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: VUS_is
    functionSourceFile: /src/VTest2/lib/vus.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VUS_is(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mach_absolute_time
      Src: /src/VTest2/lib/vtim.c:110,1
    - Dst: AZ
      Src: /src/VTest2/lib/vtim.c:112,1
    - Dst: mach_timebase_info
      Src: /src/VTest2/lib/vtim.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: mach_time_init
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - mach_timebase_info
    - mach_absolute_time
    - AZ
    linkageType: ''
    returnType: void
    signature: void mach_time_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mach_time_init
      Src: /src/VTest2/lib/vtim.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: init
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 22
    functionsReached:
    - mach_time_init
    linkageType: ''
    returnType: void
    signature: void init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gethrtime
      Src: /src/VTest2/lib/vtim.c:134,1
    - Dst: AZ
      Src: /src/VTest2/lib/vtim.c:138,1
    - Dst: clock_gettime
      Src: /src/VTest2/lib/vtim.c:138,1
    - Dst: ts_vtim
      Src: /src/VTest2/lib/vtim.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: VTIM_mono
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 7
    functionsReached:
    - AZ
    - clock_gettime
    - ts_vtim
    - gethrtime
    linkageType: ''
    returnType: vtim_mono
    signature: vtim_mono VTIM_mono(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/lib/vtim.c:149,1
    - Dst: clock_gettime
      Src: /src/VTest2/lib/vtim.c:149,1
    - Dst: ts_vtim
      Src: /src/VTest2/lib/vtim.c:150,1
    - Dst: AZ
      Src: /src/VTest2/lib/vtim.c:154,1
    - Dst: gettimeofday
      Src: /src/VTest2/lib/vtim.c:154,1
    - Dst: tv_vtim
      Src: /src/VTest2/lib/vtim.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 157
    functionName: VTIM_real
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 2
    functionsReached:
    - tv_vtim
    - gettimeofday
    - clock_gettime
    - ts_vtim
    - AZ
    linkageType: ''
    returnType: vtim_real
    signature: vtim_real VTIM_real(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vtim.c:165,1
    - Dst: gmtime_r
      Src: /src/VTest2/lib/vtim.c:172,1
    - Dst: AN
      Src: /src/VTest2/lib/vtim.c:175,1
    - Dst: snprintf
      Src: /src/VTest2/lib/vtim.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - vtim_real
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 180
    functionName: VTIM_format
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 1
    functionsReached:
    - AN
    - gmtime_r
    - snprintf
    linkageType: ''
    returnType: void
    signature: void VTIM_format(vtim_real t, char p[VTIM_FORMAT_SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: FAIL
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: FAIL
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mult
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: DIGIT
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIGIT(mult, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - chr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: MUSTBE
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUSTBE(chr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: WEEKDAY
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEEKDAY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: MONTH
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MONTH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 245
    functionName: TIMESTAMP
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIMESTAMP()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/VTest2/lib/vtim.c:255,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:262,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:263,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:264,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:265,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:266,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:267,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:268,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:269,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:270,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:271,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:272,1
    - Dst: TIMESTAMP
      Src: /src/VTest2/lib/vtim.c:273,1
    - Dst: WEEKDAY
      Src: /src/VTest2/lib/vtim.c:275,1
    - Dst: assert
      Src: /src/VTest2/lib/vtim.c:276,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:280,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:282,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:284,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:285,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:287,1
    - Dst: MONTH
      Src: /src/VTest2/lib/vtim.c:288,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:289,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:290,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:291,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:292,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:293,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:294,1
    - Dst: TIMESTAMP
      Src: /src/VTest2/lib/vtim.c:295,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:296,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:297,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:298,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:299,1
    - Dst: MONTH
      Src: /src/VTest2/lib/vtim.c:303,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:304,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:306,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:309,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:310,1
    - Dst: TIMESTAMP
      Src: /src/VTest2/lib/vtim.c:311,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:312,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:313,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:314,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:315,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:316,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vtim.c:317,1
    - Dst: strlen
      Src: /src/VTest2/lib/vtim.c:318,1
    - Dst: strlen
      Src: /src/VTest2/lib/vtim.c:320,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:321,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:322,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:323,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:324,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:325,1
    - Dst: MONTH
      Src: /src/VTest2/lib/vtim.c:326,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:327,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:328,1
    - Dst: DIGIT
      Src: /src/VTest2/lib/vtim.c:329,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:333,1
    - Dst: TIMESTAMP
      Src: /src/VTest2/lib/vtim.c:334,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:335,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:336,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:337,1
    - Dst: MUSTBE
      Src: /src/VTest2/lib/vtim.c:338,1
    - Dst: FAIL
      Src: /src/VTest2/lib/vtim.c:340,1
    - Dst: FAIL
      Src: /src/VTest2/lib/vtim.c:347,1
    - Dst: FAIL
      Src: /src/VTest2/lib/vtim.c:350,1
    - Dst: FAIL
      Src: /src/VTest2/lib/vtim.c:352,1
    - Dst: FAIL
      Src: /src/VTest2/lib/vtim.c:354,1
    - Dst: FAIL
      Src: /src/VTest2/lib/vtim.c:356,1
    - Dst: FAIL
      Src: /src/VTest2/lib/vtim.c:358,1
    - Dst: FAIL
      Src: /src/VTest2/lib/vtim.c:360,1
    - Dst: FAIL
      Src: /src/VTest2/lib/vtim.c:366,1
    - Dst: FAIL
      Src: /src/VTest2/lib/vtim.c:394,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 117
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts:
    - condition: (weekday >= 0 && weekday <= 6)
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/VTest2/lib/vtim.c
    constantsTouched: []
    func_position:
      end: 401
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 401
    functionName: VTIM_parse
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - memcmp
    - assert
    - WEEKDAY
    - DIGIT
    - MUSTBE
    - TIMESTAMP
    - FAIL
    - MONTH
    - strlen
    linkageType: ''
    returnType: vtim_real
    signature: vtim_real VTIM_parse(const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTIM_timespec
      Src: /src/VTest2/lib/vtim.c:408,1
    - Dst: nanosleep
      Src: /src/VTest2/lib/vtim.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - vtim_dur
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 411
    functionName: VTIM_sleep
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 14
    functionsReached:
    - nanosleep
    - VTIM_timespec
    linkageType: ''
    returnType: void
    signature: void VTIM_sleep(vtim_dur t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/lib/vtim.c:423,1
    - Dst: isnan
      Src: /src/VTest2/lib/vtim.c:423,1
    - Dst: trunc
      Src: /src/VTest2/lib/vtim.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - vtim_dur
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: VTIM_timeval
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - AZ
    - trunc
    - isnan
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval VTIM_timeval(vtim_dur t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/lib/vtim.c:434,1
    - Dst: isnan
      Src: /src/VTest2/lib/vtim.c:434,1
    - Dst: trunc
      Src: /src/VTest2/lib/vtim.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - vtim_dur
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 438
    functionName: VTIM_timespec
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 2
    functionsReached:
    - AZ
    - trunc
    - isnan
    linkageType: ''
    returnType: struct timespec
    signature: struct timespec VTIM_timespec(vtim_dur t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTIM_timeval
      Src: /src/VTest2/lib/vtim.c:444,1
    - Dst: isinf
      Src: /src/VTest2/lib/vtim.c:444,1
    - Dst: vmax
      Src: /src/VTest2/lib/vtim.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - vtim_dur
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: VTIM_timeval_sock
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - vmax
    - VTIM_timeval
    - isinf
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval VTIM_timeval_sock(vtim_dur t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isinf
      Src: /src/VTest2/lib/vtim.c:451,1
    - Dst: assert
      Src: /src/VTest2/lib/vtim.c:453,1
    - Dst: isnan
      Src: /src/VTest2/lib/vtim.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tmo
    argTypes:
    - vtim_dur
    assertStmts:
    - condition: (!isnan(tmo))
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/VTest2/lib/vtim.c
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: VTIM_poll_tmo
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - isnan
    - assert
    - isinf
    linkageType: ''
    returnType: int
    signature: int VTIM_poll_tmo(vtim_dur tmo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTIM_parse
      Src: /src/VTest2/lib/vtim.c:469,1
    - Dst: VTIM_format
      Src: /src/VTest2/lib/vtim.c:470,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:471,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:473,1
    - Dst: exit
      Src: /src/VTest2/lib/vtim.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - good
    argTypes:
    - char*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 477
    functionName: tst
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - VTIM_parse
    - exit
    - VTIM_format
    - printf
    linkageType: ''
    returnType: void
    signature: void tst(const char *s, time_t good)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:490,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:493,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - name
    - begin
    - end
    - ref
    argTypes:
    - char*
    - double
    - double
    - vtim_dur
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 502
    functionName: tst_delta_check
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int tst_delta_check(const char *name, double begin, double end, vtim_dur
      ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTIM_real
      Src: /src/VTest2/lib/vtim.c:512,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:513,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/lib/vtim.c:514,1
    - Dst: VTIM_real
      Src: /src/VTest2/lib/vtim.c:515,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:516,1
    - Dst: tst_delta_check
      Src: /src/VTest2/lib/vtim.c:518,1
    - Dst: tst_delta_check
      Src: /src/VTest2/lib/vtim.c:519,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:522,1
    - Dst: exit
      Src: /src/VTest2/lib/vtim.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 525
    functionName: tst_delta
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    - VTIM_mono
    - VTIM_sleep
    - tst_delta_check
    - VTIM_real
    linkageType: ''
    returnType: void
    signature: void tst_delta(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:539,1
    - Dst: VTIM_real
      Src: /src/VTest2/lib/vtim.c:541,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:542,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:543,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:547,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:549,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:550,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:551,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:555,1
    - Dst: snprintf
      Src: /src/VTest2/lib/vtim.c:557,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:560,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:561,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:565,1
    - Dst: snprintf
      Src: /src/VTest2/lib/vtim.c:567,1
    - Dst: floor
      Src: /src/VTest2/lib/vtim.c:568,1
    - Dst: floor
      Src: /src/VTest2/lib/vtim.c:569,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:572,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 575
    functionName: bench
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - floor
    - printf
    - VTIM_mono
    - VTIM_real
    - snprintf
    linkageType: ''
    returnType: void
    signature: void bench(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTIM_parse
      Src: /src/VTest2/lib/vtim.c:583,1
    - Dst: VTIM_format
      Src: /src/VTest2/lib/vtim.c:585,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:586,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:587,1
    - Dst: exit
      Src: /src/VTest2/lib/vtim.c:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - t
    - s
    argTypes:
    - time_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 590
    functionName: parse_check
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - VTIM_parse
    - exit
    - VTIM_format
    - printf
    linkageType: ''
    returnType: void
    signature: void parse_check(time_t t, const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/lib/vtim.c:607,1
    - Dst: setenv
      Src: /src/VTest2/lib/vtim.c:607,1
    - Dst: bench
      Src: /src/VTest2/lib/vtim.c:609,1
    - Dst: gmtime_r
      Src: /src/VTest2/lib/vtim.c:614,1
    - Dst: strftime
      Src: /src/VTest2/lib/vtim.c:615,1
    - Dst: VTIM_format
      Src: /src/VTest2/lib/vtim.c:616,1
    - Dst: strcmp
      Src: /src/VTest2/lib/vtim.c:617,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:618,1
    - Dst: exit
      Src: /src/VTest2/lib/vtim.c:620,1
    - Dst: parse_check
      Src: /src/VTest2/lib/vtim.c:622,1
    - Dst: strftime
      Src: /src/VTest2/lib/vtim.c:624,1
    - Dst: parse_check
      Src: /src/VTest2/lib/vtim.c:625,1
    - Dst: strftime
      Src: /src/VTest2/lib/vtim.c:627,1
    - Dst: parse_check
      Src: /src/VTest2/lib/vtim.c:628,1
    - Dst: strftime
      Src: /src/VTest2/lib/vtim.c:631,1
    - Dst: parse_check
      Src: /src/VTest2/lib/vtim.c:632,1
    - Dst: tst
      Src: /src/VTest2/lib/vtim.c:637,1
    - Dst: tst
      Src: /src/VTest2/lib/vtim.c:638,1
    - Dst: tst
      Src: /src/VTest2/lib/vtim.c:639,1
    - Dst: tst
      Src: /src/VTest2/lib/vtim.c:641,1
    - Dst: tst_delta
      Src: /src/VTest2/lib/vtim.c:643,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 646
    functionName: main
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - tst
    - exit
    - strftime
    - VTIM_format
    - setenv
    - bench
    - strcmp
    - printf
    - tst_delta
    - parse_check
    - AZ
    - gmtime_r
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/VTest2/lib/vas.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: VAS_errtxt
    functionSourceFile: /src/VTest2/lib/vas.c
    functionUses: 0
    functionsReached:
    - strerror
    linkageType: ''
    returnType: char
    signature: 'char *

      VAS_errtxt(int e)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/VTest2/lib/vas.c:70,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vas.c:75,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vas.c:79,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vas.c:83,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vas.c:89,1
    - Dst: strerror
      Src: /src/VTest2/lib/vas.c:90,1
    - Dst: VBT_dump
      Src: /src/VTest2/lib/vas.c:93,1
    - Dst: bprintf
      Src: /src/VTest2/lib/vas.c:94,1
    - Dst: strerror
      Src: /src/VTest2/lib/vas.c:95,1
    - Dst: syslog
      Src: /src/VTest2/lib/vas.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - func
    - file
    - line
    - cond
    - kind
    argTypes:
    - char*
    - char*
    - int
    - char*
    - enum vas_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 99
    functionName: vas_default
    functionSourceFile: /src/VTest2/lib/vas.c
    functionUses: 0
    functionsReached:
    - VBT_dump
    - strerror
    - syslog
    - bprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void vas_default(const char *func, const char *file, int line,\n    const
      char *cond, enum vas_e kind)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VAS_Fail_Func
      Src: /src/VTest2/lib/vas.c:107,1
    - Dst: vas_default
      Src: /src/VTest2/lib/vas.c:109,1
    - Dst: abort
      Src: /src/VTest2/lib/vas.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - func
    - file
    - line
    - cond
    - kind
    argTypes:
    - char*
    - char*
    - int
    - char*
    - enum vas_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: v_noreturn_::VAS_Fail
    functionSourceFile: /src/VTest2/lib/vas.c
    functionUses: 0
    functionsReached:
    - vas_default
    - abort
    - VAS_Fail_Func
    linkageType: ''
    returnType: void
    signature: "void v_noreturn_\nVAS_Fail(const char *func, const char *file, int
      line,\n    const char *cond, enum vas_e kind)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vsub.c:66,1
    - Dst: closefrom
      Src: /src/VTest2/lib/vsub.c:69,1
    - Dst: close_range
      Src: /src/VTest2/lib/vsub.c:73,1
    - Dst: bprintf
      Src: /src/VTest2/lib/vsub.c:82,1
    - Dst: getpid
      Src: /src/VTest2/lib/vsub.c:82,1
    - Dst: opendir
      Src: /src/VTest2/lib/vsub.c:83,1
    - Dst: readdir
      Src: /src/VTest2/lib/vsub.c:86,1
    - Dst: strtoul
      Src: /src/VTest2/lib/vsub.c:89,1
    - Dst: dirfd
      Src: /src/VTest2/lib/vsub.c:90,1
    - Dst: close
      Src: /src/VTest2/lib/vsub.c:92,1
    - Dst: AZ
      Src: /src/VTest2/lib/vsub.c:94,1
    - Dst: closedir
      Src: /src/VTest2/lib/vsub.c:94,1
    - Dst: sysconf
      Src: /src/VTest2/lib/vsub.c:97,1
    - Dst: assert
      Src: /src/VTest2/lib/vsub.c:98,1
    - Dst: close
      Src: /src/VTest2/lib/vsub.c:100,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts:
    - condition: (fd >= 0)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/VTest2/lib/vsub.c
    - condition: (i > 0)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/VTest2/lib/vsub.c
    constantsTouched: []
    func_position:
      end: 103
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 103
    functionName: VSUB_closefrom
    functionSourceFile: /src/VTest2/lib/vsub.c
    functionUses: 3
    functionsReached:
    - getpid
    - readdir
    - assert
    - closefrom
    - opendir
    - strtoul
    - closedir
    - close_range
    - dirfd
    - bprintf
    - sysconf
    - AZ
    - close
    linkageType: ''
    returnType: void
    signature: void VSUB_closefrom(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:112,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - priv
    - str
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: vsub_vlu
    functionSourceFile: /src/VTest2/lib/vsub.c
    functionUses: 0
    functionsReached:
    - VSB_printf
    linkageType: ''
    returnType: int
    signature: int vsub_vlu(void *priv, const char *str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/VTest2/lib/vsub.c:132,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:133,1
    - Dst: strerror
      Src: /src/VTest2/lib/vsub.c:134,1
    - Dst: assert
      Src: /src/VTest2/lib/vsub.c:137,1
    - Dst: assert
      Src: /src/VTest2/lib/vsub.c:138,1
    - Dst: fork
      Src: /src/VTest2/lib/vsub.c:139,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:140,1
    - Dst: strerror
      Src: /src/VTest2/lib/vsub.c:141,1
    - Dst: closefd
      Src: /src/VTest2/lib/vsub.c:142,1
    - Dst: closefd
      Src: /src/VTest2/lib/vsub.c:143,1
    - Dst: VFIL_null_fd
      Src: /src/VTest2/lib/vsub.c:147,1
    - Dst: assert
      Src: /src/VTest2/lib/vsub.c:148,1
    - Dst: dup2
      Src: /src/VTest2/lib/vsub.c:148,1
    - Dst: assert
      Src: /src/VTest2/lib/vsub.c:149,1
    - Dst: dup2
      Src: /src/VTest2/lib/vsub.c:149,1
    - Dst: VSUB_closefrom
      Src: /src/VTest2/lib/vsub.c:151,1
    - Dst: func
      Src: /src/VTest2/lib/vsub.c:152,1
    - Dst: _exit
      Src: /src/VTest2/lib/vsub.c:158,1
    - Dst: closefd
      Src: /src/VTest2/lib/vsub.c:160,1
    - Dst: VLU_File
      Src: /src/VTest2/lib/vsub.c:161,1
    - Dst: closefd
      Src: /src/VTest2/lib/vsub.c:162,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:164,1
    - Dst: waitpid
      Src: /src/VTest2/lib/vsub.c:167,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:169,1
    - Dst: strerror
      Src: /src/VTest2/lib/vsub.c:170,1
    - Dst: WIFEXITED
      Src: /src/VTest2/lib/vsub.c:174,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/lib/vsub.c:174,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:176,1
    - Dst: WIFEXITED
      Src: /src/VTest2/lib/vsub.c:177,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/lib/vsub.c:178,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:179,1
    - Dst: WIFSIGNALED
      Src: /src/VTest2/lib/vsub.c:181,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:183,1
    - Dst: WTERMSIG
      Src: /src/VTest2/lib/vsub.c:183,1
    - Dst: WCOREDUMP
      Src: /src/VTest2/lib/vsub.c:185,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsub.c:186,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsub.c:187,1
    - Dst: assert
      Src: /src/VTest2/lib/vsub.c:188,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 5
    argNames:
    - sb
    - func
    - priv
    - name
    - maxlines
    argTypes:
    - struct vsb*
    - vsub_func_f*
    - void*
    - char*
    - int
    assertStmts:
    - condition: (dup2(p[1], STDOUT_FILENO) == STDOUT_FILENO)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/VTest2/lib/vsub.c
    - condition: (dup2(p[1], STDERR_FILENO) == STDERR_FILENO)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/VTest2/lib/vsub.c
    - condition: (rv != -1)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/VTest2/lib/vsub.c
    - condition: (p[0] > STDERR_FILENO)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/VTest2/lib/vsub.c
    - condition: (p[1] > STDERR_FILENO)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/VTest2/lib/vsub.c
    constantsTouched: []
    func_position:
      end: 192
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 192
    functionName: VSUB_run
    functionSourceFile: /src/VTest2/lib/vsub.c
    functionUses: 0
    functionsReached:
    - WIFEXITED
    - assert
    - strerror
    - VFIL_null_fd
    - pipe
    - func
    - WTERMSIG
    - closefd
    - VSUB_closefrom
    - fork
    - WIFSIGNALED
    - VSB_printf
    - _exit
    - WCOREDUMP
    - VLU_File
    - waitpid
    - dup2
    - WEXITSTATUS
    - VSB_cat
    linkageType: ''
    returnType: unsigned
    signature: "unsigned VSUB_run(struct vsb *sb, vsub_func_f *func, void *priv, const
      char *name,\n    int maxlines)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/VTest2/lib/vss.c:75,1
    - Dst: strchr
      Src: /src/VTest2/lib/vss.c:89,1
    - Dst: strchr
      Src: /src/VTest2/lib/vss.c:91,1
    - Dst: strchr
      Src: /src/VTest2/lib/vss.c:94,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - str
    - addr
    - port
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 102
    functionName: vss_parse
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      vss_parse(char *str, char **addr, char **port)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vss_parse
      Src: /src/VTest2/lib/vss.c:112,1
    - Dst: strtoul
      Src: /src/VTest2/lib/vss.c:118,1
    - Dst: strchr
      Src: /src/VTest2/lib/vss.c:121,1
    - Dst: strtoul
      Src: /src/VTest2/lib/vss.c:123,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 5
    argNames:
    - str
    - addr
    - port
    - lo
    - hi
    argTypes:
    - char*
    - char**
    - char**
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 138
    functionName: vss_parse_range
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 0
    functionsReached:
    - vss_parse
    - strtoul
    - strchr
    linkageType: ''
    returnType: char
    signature: "char *\nvss_parse_range(char *str, char **addr, char **port, unsigned
      long *lo,\n    unsigned long *hi)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:148,1
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:149,1
    - Dst: AZ
      Src: /src/VTest2/lib/vss.c:150,1
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:151,1
    - Dst: memset
      Src: /src/VTest2/lib/vss.c:154,1
    - Dst: strdup
      Src: /src/VTest2/lib/vss.c:159,1
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:160,1
    - Dst: vss_parse
      Src: /src/VTest2/lib/vss.c:161,1
    - Dst: free
      Src: /src/VTest2/lib/vss.c:163,1
    - Dst: getaddrinfo
      Src: /src/VTest2/lib/vss.c:168,1
    - Dst: free
      Src: /src/VTest2/lib/vss.c:169,1
    - Dst: VAS_errtxt
      Src: /src/VTest2/lib/vss.c:172,1
    - Dst: gai_strerror
      Src: /src/VTest2/lib/vss.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 7
    argNames:
    - addr
    - def_port
    - family
    - socktype
    - flags
    - res
    - errp
    argTypes:
    - char*
    - char*
    - int
    - int
    - int
    - struct addrinfo**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 177
    functionName: vss_resolve
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 0
    functionsReached:
    - memset
    - VAS_errtxt
    - getaddrinfo
    - free
    - gai_strerror
    - vss_parse
    - AZ
    - AN
    - strdup
    linkageType: ''
    returnType: int
    signature: "int vss_resolve(const char *addr, const char *def_port, int family,
      int socktype,\n    int flags, struct addrinfo **res, const char **errp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:183,1
    - Dst: VSA_Malloc
      Src: /src/VTest2/lib/vss.c:185,1
    - Dst: VSA_Build
      Src: /src/VTest2/lib/vss.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - ai
    argTypes:
    - void*
    - struct addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: vss_alloc_suckaddr
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 0
    functionsReached:
    - VSA_Malloc
    - AN
    - VSA_Build
    linkageType: ''
    returnType: struct suckaddr
    signature: 'struct suckaddr *

      vss_alloc_suckaddr(void *dst, const struct addrinfo *ai)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:205,1
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:206,1
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:207,1
    - Dst: vss_resolve
      Src: /src/VTest2/lib/vss.c:209,1
    - Dst: VSA_Malloc
      Src: /src/VTest2/lib/vss.c:215,1
    - Dst: func
      Src: /src/VTest2/lib/vss.c:217,1
    - Dst: VSA_free
      Src: /src/VTest2/lib/vss.c:218,1
    - Dst: freeaddrinfo
      Src: /src/VTest2/lib/vss.c:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - addr
    - def_port
    - func
    - priv
    - errp
    - socktype
    argTypes:
    - char*
    - char*
    - vss_resolved_f*
    - void*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 225
    functionName: VSS_resolver_socktype
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 1
    functionsReached:
    - freeaddrinfo
    - vss_resolve
    - VSA_Malloc
    - VSA_free
    - func
    - AN
    linkageType: ''
    returnType: int
    signature: "int VSS_resolver_socktype(const char *addr, const char *def_port,\n
      \   vss_resolved_f *func, void *priv, const char **errp, int socktype)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSS_resolver_socktype
      Src: /src/VTest2/lib/vss.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - addr
    - def_port
    - func
    - priv
    - errp
    argTypes:
    - char*
    - char*
    - vss_resolved_f*
    - void*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: VSS_resolver
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 0
    functionsReached:
    - VSS_resolver_socktype
    linkageType: ''
    returnType: int
    signature: "int VSS_resolver(const char *addr, const char *def_port, vss_resolved_f
      *func,\n    void *priv, const char **errp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:243,1
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:244,1
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:245,1
    - Dst: strdup
      Src: /src/VTest2/lib/vss.c:247,1
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:248,1
    - Dst: vss_parse_range
      Src: /src/VTest2/lib/vss.c:249,1
    - Dst: free
      Src: /src/VTest2/lib/vss.c:251,1
    - Dst: free
      Src: /src/VTest2/lib/vss.c:257,1
    - Dst: VSS_resolver
      Src: /src/VTest2/lib/vss.c:258,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vss.c:262,1
    - Dst: sprintf
      Src: /src/VTest2/lib/vss.c:269,1
    - Dst: VSS_resolver
      Src: /src/VTest2/lib/vss.c:270,1
    - Dst: free
      Src: /src/VTest2/lib/vss.c:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - addr
    - def_port
    - func
    - priv
    - errp
    argTypes:
    - char*
    - char*
    - vss_resolved_f*
    - void*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 274
    functionName: VSS_resolver_range
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 0
    functionsReached:
    - memcpy
    - free
    - sprintf
    - vss_parse_range
    - VSS_resolver
    - AN
    - strdup
    linkageType: ''
    returnType: int
    signature: "int VSS_resolver_range(const char *addr, const char *def_port, vss_resolved_f
      *func,\n    void *priv, const char **errp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:285,1
    - Dst: vss_resolve
      Src: /src/VTest2/lib/vss.c:286,1
    - Dst: AZ
      Src: /src/VTest2/lib/vss.c:288,1
    - Dst: vss_alloc_suckaddr
      Src: /src/VTest2/lib/vss.c:289,1
    - Dst: freeaddrinfo
      Src: /src/VTest2/lib/vss.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - dst
    - addr
    - def_port
    - family
    - socktype
    - flags
    argTypes:
    - void*
    - char*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 276
    functionDepth: 4
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: VSS_ResolveOne
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 4
    functionsReached:
    - vss_alloc_suckaddr
    - freeaddrinfo
    - vss_resolve
    - AZ
    - AN
    linkageType: ''
    returnType: struct suckaddr
    signature: "struct suckaddr *\nVSS_ResolveOne(void *dst, const char *addr, const
      char *def_port,\n    int family, int socktype, int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vss.c:305,1
    - Dst: vss_resolve
      Src: /src/VTest2/lib/vss.c:306,1
    - Dst: AZ
      Src: /src/VTest2/lib/vss.c:308,1
    - Dst: vss_alloc_suckaddr
      Src: /src/VTest2/lib/vss.c:311,1
    - Dst: freeaddrinfo
      Src: /src/VTest2/lib/vss.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - dst
    - addr
    - def_port
    - family
    - socktype
    - flags
    argTypes:
    - void*
    - char*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 318
    functionName: VSS_ResolveFirst
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 1
    functionsReached:
    - vss_alloc_suckaddr
    - freeaddrinfo
    - vss_resolve
    - AZ
    - AN
    linkageType: ''
    returnType: struct suckaddr
    signature: "struct suckaddr *\nVSS_ResolveFirst(void *dst, const char *addr, const
      char *def_port,\n    int family, int socktype, int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/VTest2/lib/vpf.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - pfh
    argTypes:
    - struct vpf_fh*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 72
    functionName: vpf_verify
    functionSourceFile: /src/VTest2/lib/vpf.c
    functionUses: 0
    functionsReached:
    - fstat
    linkageType: ''
    returnType: int
    signature: int vpf_verify(const struct vpf_fh *pfh)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/VTest2/lib/vpf.c:80,1
    - Dst: read
      Src: /src/VTest2/lib/vpf.c:84,1
    - Dst: closefd
      Src: /src/VTest2/lib/vpf.c:86,1
    - Dst: strtol
      Src: /src/VTest2/lib/vpf.c:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - path
    - pidptr
    argTypes:
    - char*
    - pid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 100
    functionName: VPF_Read
    functionSourceFile: /src/VTest2/lib/vpf.c
    functionUses: 1
    functionsReached:
    - closefd
    - read
    - open
    - strtol
    linkageType: ''
    returnType: int
    signature: int VPF_Read(const char *path, pid_t *pidptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VFL_Open
      Src: /src/VTest2/lib/vpf.c:115,1
    - Dst: VPF_Read
      Src: /src/VTest2/lib/vpf.c:119,1
    - Dst: AZ
      Src: /src/VTest2/lib/vpf.c:130,1
    - Dst: fstat
      Src: /src/VTest2/lib/vpf.c:130,1
    - Dst: malloc
      Src: /src/VTest2/lib/vpf.c:132,1
    - Dst: AN
      Src: /src/VTest2/lib/vpf.c:133,1
    - Dst: strdup
      Src: /src/VTest2/lib/vpf.c:134,1
    - Dst: AN
      Src: /src/VTest2/lib/vpf.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - path
    - mode
    - pidptr
    argTypes:
    - char*
    - mode_t
    - pid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 142
    functionName: VPF_Open
    functionSourceFile: /src/VTest2/lib/vpf.c
    functionUses: 0
    functionsReached:
    - malloc
    - VPF_Read
    - VFL_Open
    - fstat
    - AZ
    - AN
    - strdup
    linkageType: ''
    returnType: struct vpf_fh
    signature: 'struct vpf_fh *

      VPF_Open(const char *path, mode_t mode, pid_t *pidptr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vpf_verify
      Src: /src/VTest2/lib/vpf.c:153,1
    - Dst: AZ
      Src: /src/VTest2/lib/vpf.c:159,1
    - Dst: ftruncate
      Src: /src/VTest2/lib/vpf.c:159,1
    - Dst: bprintf
      Src: /src/VTest2/lib/vpf.c:161,1
    - Dst: getpid
      Src: /src/VTest2/lib/vpf.c:161,1
    - Dst: assert
      Src: /src/VTest2/lib/vpf.c:162,1
    - Dst: pwrite
      Src: /src/VTest2/lib/vpf.c:162,1
    - Dst: strlen
      Src: /src/VTest2/lib/vpf.c:162,1
    - Dst: strlen
      Src: /src/VTest2/lib/vpf.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pfh
    argTypes:
    - struct vpf_fh*
    assertStmts:
    - condition: "(pwrite(pfh->pf_fd, pidstr, strlen(pidstr), 0) ==\n\t    (ssize_t)strlen(pidstr))"
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/VTest2/lib/vpf.c
    constantsTouched: []
    func_position:
      end: 164
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 164
    functionName: VPF_Write
    functionSourceFile: /src/VTest2/lib/vpf.c
    functionUses: 0
    functionsReached:
    - getpid
    - assert
    - pwrite
    - strlen
    - bprintf
    - AZ
    - ftruncate
    - vpf_verify
    linkageType: ''
    returnType: void
    signature: void VPF_Write(const struct vpf_fh *pfh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vpf_verify
      Src: /src/VTest2/lib/vpf.c:169,1
    - Dst: unlink
      Src: /src/VTest2/lib/vpf.c:170,1
    - Dst: closefd
      Src: /src/VTest2/lib/vpf.c:171,1
    - Dst: free
      Src: /src/VTest2/lib/vpf.c:173,1
    - Dst: free
      Src: /src/VTest2/lib/vpf.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pfh
    argTypes:
    - struct vpf_fh*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: VPF_Remove
    functionSourceFile: /src/VTest2/lib/vpf.c
    functionUses: 0
    functionsReached:
    - closefd
    - free
    - unlink
    - vpf_verify
    linkageType: ''
    returnType: void
    signature: void VPF_Remove(struct vpf_fh *pfh)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: good_rand
    functionSourceFile: /src/VTest2/lib/vrnd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t good_rand(uint32_t ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: vrnd_RandomTestable
    functionSourceFile: /src/VTest2/lib/vrnd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long vrnd_RandomTestable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: good_rand
      Src: /src/VTest2/lib/vrnd.c:137,1
    - Dst: vrnd_RandomTestable
      Src: /src/VTest2/lib/vrnd.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: VRND_SeedTestable
    functionSourceFile: /src/VTest2/lib/vrnd.c
    functionUses: 0
    functionsReached:
    - good_rand
    - vrnd_RandomTestable
    linkageType: ''
    returnType: void
    signature: void VRND_SeedTestable(unsigned int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vrnd.c:150,1
    - Dst: VRND_Lock
      Src: /src/VTest2/lib/vrnd.c:151,1
    - Dst: vrnd_RandomTestable
      Src: /src/VTest2/lib/vrnd.c:152,1
    - Dst: AN
      Src: /src/VTest2/lib/vrnd.c:153,1
    - Dst: VRND_Unlock
      Src: /src/VTest2/lib/vrnd.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: VRND_RandomTestable
    functionSourceFile: /src/VTest2/lib/vrnd.c
    functionUses: 2
    functionsReached:
    - VRND_Unlock
    - AN
    - vrnd_RandomTestable
    - VRND_Lock
    linkageType: ''
    returnType: long
    signature: long VRND_RandomTestable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldexp
      Src: /src/VTest2/lib/vrnd.c:162,1
    - Dst: VRND_RandomTestable
      Src: /src/VTest2/lib/vrnd.c:162,1
    - Dst: ldexp
      Src: /src/VTest2/lib/vrnd.c:163,1
    - Dst: VRND_RandomTestable
      Src: /src/VTest2/lib/vrnd.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: VRND_RandomTestableDouble
    functionSourceFile: /src/VTest2/lib/vrnd.c
    functionUses: 0
    functionsReached:
    - VRND_RandomTestable
    - ldexp
    linkageType: ''
    returnType: double
    signature: double VRND_RandomTestableDouble(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vrnd.c:174,1
    - Dst: open
      Src: /src/VTest2/lib/vrnd.c:175,1
    - Dst: read
      Src: /src/VTest2/lib/vrnd.c:179,1
    - Dst: closefd
      Src: /src/VTest2/lib/vrnd.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 187
    functionName: VRND_RandomCrypto
    functionSourceFile: /src/VTest2/lib/vrnd.c
    functionUses: 0
    functionsReached:
    - closefd
    - read
    - AN
    - open
    linkageType: ''
    returnType: int
    signature: int VRND_RandomCrypto(void *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/lib/vrnd.c:194,1
    - Dst: VRND_RandomCrypto
      Src: /src/VTest2/lib/vrnd.c:194,1
    - Dst: srandom
      Src: /src/VTest2/lib/vrnd.c:195,1
    - Dst: AZ
      Src: /src/VTest2/lib/vrnd.c:196,1
    - Dst: VRND_RandomCrypto
      Src: /src/VTest2/lib/vrnd.c:196,1
    - Dst: VRND_SeedTestable
      Src: /src/VTest2/lib/vrnd.c:197,1
    - Dst: AZ
      Src: /src/VTest2/lib/vrnd.c:198,1
    - Dst: VRND_RandomCrypto
      Src: /src/VTest2/lib/vrnd.c:198,1
    - Dst: srand48
      Src: /src/VTest2/lib/vrnd.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: VRND_SeedAll
    functionSourceFile: /src/VTest2/lib/vrnd.c
    functionUses: 2
    functionsReached:
    - VRND_RandomCrypto
    - srandom
    - srand48
    - AZ
    - VRND_SeedTestable
    linkageType: ''
    returnType: void
    signature: void VRND_SeedAll(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/VTest2/lib/vfl.c:65,1
    - Dst: openat
      Src: /src/VTest2/lib/vfl.c:76,1
    - Dst: flock
      Src: /src/VTest2/lib/vfl.c:79,1
    - Dst: close
      Src: /src/VTest2/lib/vfl.c:82,1
    - Dst: fstatat
      Src: /src/VTest2/lib/vfl.c:86,1
    - Dst: close
      Src: /src/VTest2/lib/vfl.c:88,1
    - Dst: fstat
      Src: /src/VTest2/lib/vfl.c:91,1
    - Dst: close
      Src: /src/VTest2/lib/vfl.c:94,1
    - Dst: close
      Src: /src/VTest2/lib/vfl.c:101,1
    - Dst: ftruncate
      Src: /src/VTest2/lib/vfl.c:104,1
    - Dst: close
      Src: /src/VTest2/lib/vfl.c:107,1
    - Dst: fcntl
      Src: /src/VTest2/lib/vfl.c:116,1
    - Dst: close
      Src: /src/VTest2/lib/vfl.c:118,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 4
    argNames:
    - dirfd
    - path
    - flags
    - ap
    argTypes:
    - int
    - char*
    - int
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 125
    functionName: vflopenat
    functionSourceFile: /src/VTest2/lib/vfl.c
    functionUses: 0
    functionsReached:
    - fstatat
    - ftruncate
    - fcntl
    - openat
    - flock
    - fstat
    - close
    - va_arg
    linkageType: ''
    returnType: int
    signature: int vflopenat(int dirfd, const char *path, int flags, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/VTest2/lib/vfl.c:133,1
    - Dst: vflopenat
      Src: /src/VTest2/lib/vfl.c:134,1
    - Dst: va_end
      Src: /src/VTest2/lib/vfl.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - path
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: VFL_Open
    functionSourceFile: /src/VTest2/lib/vfl.c
    functionUses: 1
    functionsReached:
    - vflopenat
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: int VFL_Open(const char *path, int flags, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vus.c:47,1
    - Dst: AN
      Src: /src/VTest2/lib/vus.c:48,1
    - Dst: assert
      Src: /src/VTest2/lib/vus.c:49,1
    - Dst: VUS_is
      Src: /src/VTest2/lib/vus.c:49,1
    - Dst: strlen
      Src: /src/VTest2/lib/vus.c:54,1
    - Dst: strcmp
      Src: /src/VTest2/lib/vus.c:60,1
    - Dst: memset
      Src: /src/VTest2/lib/vus.c:67,1
    - Dst: bprintf
      Src: /src/VTest2/lib/vus.c:69,1
    - Dst: bprintf
      Src: /src/VTest2/lib/vus.c:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - uds
    - path
    - err
    argTypes:
    - struct sockaddr_un*
    - char*
    - char**
    assertStmts:
    - condition: (VUS_is(path))
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/VTest2/lib/vus.c
    constantsTouched: []
    func_position:
      end: 74
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 74
    functionName: sun_init
    functionSourceFile: /src/VTest2/lib/vus.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - strcmp
    - bprintf
    - AN
    - VUS_is
    - strlen
    linkageType: ''
    returnType: int
    signature: int sun_init(struct sockaddr_un *uds, const char *path, const char
      **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vus.c:83,1
    - Dst: sun_init
      Src: /src/VTest2/lib/vus.c:85,1
    - Dst: assert
      Src: /src/VTest2/lib/vus.c:89,1
    - Dst: func
      Src: /src/VTest2/lib/vus.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - path
    - func
    - priv
    - err
    argTypes:
    - char*
    - vus_resolved_f*
    - void*
    - char**
    assertStmts:
    - condition: (uds.sun_path[1] != '\0')
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/VTest2/lib/vus.c
    constantsTouched: []
    func_position:
      end: 94
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 94
    functionName: VUS_resolver
    functionSourceFile: /src/VTest2/lib/vus.c
    functionUses: 3
    functionsReached:
    - sun_init
    - AN
    - assert
    - func
    linkageType: ''
    returnType: int
    signature: "int VUS_resolver(const char *path, vus_resolved_f *func, void *priv,\n\t
      \    const char **err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VUS_socklen
      Src: /src/VTest2/lib/vus.c:102,1
    - Dst: socket
      Src: /src/VTest2/lib/vus.c:107,1
    - Dst: unlink
      Src: /src/VTest2/lib/vus.c:114,1
    - Dst: closefd
      Src: /src/VTest2/lib/vus.c:118,1
    - Dst: bind
      Src: /src/VTest2/lib/vus.c:123,1
    - Dst: closefd
      Src: /src/VTest2/lib/vus.c:127,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - uds
    - errp
    argTypes:
    - struct sockaddr_un*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 132
    functionName: VUS_bind
    functionSourceFile: /src/VTest2/lib/vus.c
    functionUses: 2
    functionsReached:
    - VUS_socklen
    - unlink
    - bind
    - socket
    - closefd
    linkageType: ''
    returnType: int
    signature: int VUS_bind(const struct sockaddr_un *uds, const char **errp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sun_init
      Src: /src/VTest2/lib/vus.c:144,1
    - Dst: assert
      Src: /src/VTest2/lib/vus.c:148,1
    - Dst: VUS_socklen
      Src: /src/VTest2/lib/vus.c:150,1
    - Dst: AN
      Src: /src/VTest2/lib/vus.c:152,1
    - Dst: socket
      Src: /src/VTest2/lib/vus.c:154,1
    - Dst: VTCP_nonblocking
      Src: /src/VTest2/lib/vus.c:160,1
    - Dst: connect
      Src: /src/VTest2/lib/vus.c:162,1
    - Dst: VTCP_blocking
      Src: /src/VTest2/lib/vus.c:164,1
    - Dst: closefd
      Src: /src/VTest2/lib/vus.c:168,1
    - Dst: assert
      Src: /src/VTest2/lib/vus.c:180,1
    - Dst: poll
      Src: /src/VTest2/lib/vus.c:185,1
    - Dst: closefd
      Src: /src/VTest2/lib/vus.c:189,1
    - Dst: VTCP_connected
      Src: /src/VTest2/lib/vus.c:194,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - path
    - msec
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (uds.sun_path[1] != '\0')
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/VTest2/lib/vus.c
    - condition: (msec > 0)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/VTest2/lib/vus.c
    constantsTouched: []
    func_position:
      end: 195
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 195
    functionName: VUS_connect
    functionSourceFile: /src/VTest2/lib/vus.c
    functionUses: 0
    functionsReached:
    - poll
    - assert
    - VUS_socklen
    - VTCP_blocking
    - VTCP_nonblocking
    - connect
    - socket
    - sun_init
    - closefd
    - VTCP_connected
    - AN
    linkageType: ''
    returnType: int
    signature: int VUS_connect(const char *path, int msec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/VTest2/lib/vus.c:205,1
    - Dst: assert
      Src: /src/VTest2/lib/vus.c:206,1
    - Dst: assert
      Src: /src/VTest2/lib/vus.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - uds
    argTypes:
    - struct sockaddr_un*
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/VTest2/lib/vus.c
    - condition: (sl <= sizeof(*uds))
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/VTest2/lib/vus.c
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: VUS_socklen
    functionSourceFile: /src/VTest2/lib/vus.c
    functionUses: 3
    functionsReached:
    - assert
    - strchr
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t VUS_socklen(const struct sockaddr_un *uds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: pcre2_set_depth_limit
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pcre2_set_depth_limit(r, d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:78,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:79,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:80,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/lib/vre.c:85,1
    - Dst: pcre2_compile
      Src: /src/VTest2/lib/vre.c:90,1
    - Dst: VRE_free
      Src: /src/VTest2/lib/vre.c:94,1
    - Dst: pcre2_match_context_create
      Src: /src/VTest2/lib/vre.c:97,1
    - Dst: VRE_free
      Src: /src/VTest2/lib/vre.c:100,1
    - Dst: pcre2_jit_compile
      Src: /src/VTest2/lib/vre.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 5
    argNames:
    - pattern
    - options
    - errptr
    - erroffset
    - jit
    argTypes:
    - char*
    - unsigned
    - int*
    - int*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 110
    functionName: VRE_compile
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 7
    functionsReached:
    - pcre2_match_context_create
    - ALLOC_OBJ
    - VRE_free
    - pcre2_jit_compile
    - AN
    - pcre2_compile
    linkageType: ''
    returnType: vre_t
    signature: "vre_t *\nVRE_compile(const char *pattern, unsigned options,\n    int
      *errptr, int *erroffset, unsigned jit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vre.c:118,1
    - Dst: pcre2_get_error_message
      Src: /src/VTest2/lib/vre.c:119,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vre.c:121,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vre.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - vsb
    - err
    argTypes:
    - struct vsb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: VRE_error
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 7
    functionsReached:
    - pcre2_get_error_message
    - VSB_cat
    - CHECK_OBJ_NOTNULL
    - VSB_printf
    linkageType: ''
    returnType: int
    signature: int VRE_error(struct vsb *vsb, int err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vre.c:136,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:138,1
    - Dst: TRUST_ME
      Src: /src/VTest2/lib/vre.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - code
    argTypes:
    - vre_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: VRE_unpack
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - AZ
    - TRUST_ME
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: pcre2_code
    signature: 'pcre2_code *

      VRE_unpack(const vre_t *code)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vre.c:148,1
    - Dst: assert
      Src: /src/VTest2/lib/vre.c:153,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:156,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:157,1
    - Dst: pcre2_set_match_limit
      Src: /src/VTest2/lib/vre.c:157,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:158,1
    - Dst: pcre2_set_depth_limit
      Src: /src/VTest2/lib/vre.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - code
    - lim
    argTypes:
    - vre_t*
    - struct vre_limits*
    assertStmts:
    - condition: (code->re != VRE_PACKED_RE)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/VTest2/lib/vre.c
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: vre_limit
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - pcre2_set_depth_limit
    - assert
    - CHECK_OBJ_NOTNULL
    - pcre2_set_match_limit
    - AZ
    - AN
    linkageType: ''
    returnType: void
    signature: void vre_limit(const vre_t *code, const volatile struct vre_limits
      *lim)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vre.c:167,1
    - Dst: VRE_unpack
      Src: /src/VTest2/lib/vre.c:168,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:169,1
    - Dst: pcre2_pattern_info
      Src: /src/VTest2/lib/vre.c:169,1
    - Dst: malloc
      Src: /src/VTest2/lib/vre.c:171,1
    - Dst: INIT_OBJ
      Src: /src/VTest2/lib/vre.c:175,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vre.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - code
    - sz
    argTypes:
    - vre_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 180
    functionName: VRE_export
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - malloc
    - INIT_OBJ
    - pcre2_pattern_info
    - CHECK_OBJ_NOTNULL
    - VRE_unpack
    - memcpy
    - AZ
    linkageType: ''
    returnType: vre_t
    signature: 'vre_t *

      VRE_export(const vre_t *code, size_t *sz)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VRE_unpack
      Src: /src/VTest2/lib/vre.c:193,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/VTest2/lib/vre.c:199,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:200,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/VTest2/lib/vre.c:203,1
    - Dst: pcre2_get_ovector_count
      Src: /src/VTest2/lib/vre.c:204,1
    - Dst: pcre2_match
      Src: /src/VTest2/lib/vre.c:208,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:212,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:213,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/VTest2/lib/vre.c:214,1
    - Dst: vmin_t
      Src: /src/VTest2/lib/vre.c:215,1
    - Dst: pcre2_get_ovector_count
      Src: /src/VTest2/lib/vre.c:215,1
    - Dst: pcre2_match_data_free
      Src: /src/VTest2/lib/vre.c:233,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 8
    argNames:
    - code
    - subject
    - length
    - offset
    - options
    - groups
    - count
    - datap
    argTypes:
    - vre_t*
    - char*
    - size_t
    - size_t
    - int
    - txt*
    - size_t*
    - pcre2_match_data**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 235
    functionName: vre_capture
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - pcre2_match
    - pcre2_get_ovector_count
    - VRE_unpack
    - vmin_t
    - pcre2_match_data_free
    - pcre2_match_data_create_from_pattern
    - pcre2_get_ovector_pointer
    - AN
    linkageType: ''
    returnType: int
    signature: "int vre_capture(const vre_t *code, const char *subject, size_t length,\n
      \   size_t offset, int options, txt *groups, size_t *count,\n    pcre2_match_data
      **datap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vre.c:242,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:243,1
    - Dst: vre_limit
      Src: /src/VTest2/lib/vre.c:247,1
    - Dst: vre_capture
      Src: /src/VTest2/lib/vre.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - code
    - subject
    - length
    - options
    - lim
    argTypes:
    - vre_t*
    - char*
    - size_t
    - int
    - struct vre_limits*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 250
    functionName: VRE_match
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 7
    functionsReached:
    - vre_capture
    - vre_limit
    - AN
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: int
    signature: "int VRE_match(const vre_t *code, const char *subject, size_t length,\n
      \   int options, const volatile struct vre_limits *lim)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vre.c:258,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:259,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:260,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:261,1
    - Dst: vre_limit
      Src: /src/VTest2/lib/vre.c:265,1
    - Dst: vre_capture
      Src: /src/VTest2/lib/vre.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - code
    - subject
    - length
    - options
    - groups
    - count
    - lim
    argTypes:
    - vre_t*
    - char*
    - size_t
    - int
    - txt*
    - size_t
    - struct vre_limits*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 272
    functionName: VRE_capture
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - vre_capture
    - vre_limit
    - AN
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: int
    signature: "int VRE_capture(const vre_t *code, const char *subject, size_t length,
      int options,\n    txt *groups, size_t count, const volatile struct vre_limits
      *lim)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vre.c:285,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vre.c:286,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:287,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:288,1
    - Dst: vre_limit
      Src: /src/VTest2/lib/vre.c:290,1
    - Dst: vre_capture
      Src: /src/VTest2/lib/vre.c:292,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:296,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:301,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:302,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vre.c:306,1
    - Dst: pdiff
      Src: /src/VTest2/lib/vre.c:306,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vre.c:310,1
    - Dst: pdiff
      Src: /src/VTest2/lib/vre.c:310,1
    - Dst: isdigit
      Src: /src/VTest2/lib/vre.c:312,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vre.c:317,1
    - Dst: Tlen
      Src: /src/VTest2/lib/vre.c:317,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vre.c:321,1
    - Dst: pdiff
      Src: /src/VTest2/lib/vre.c:321,1
    - Dst: pdiff
      Src: /src/VTest2/lib/vre.c:322,1
    - Dst: vre_capture
      Src: /src/VTest2/lib/vre.c:326,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:330,1
    - Dst: assert
      Src: /src/VTest2/lib/vre.c:336,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:337,1
    - Dst: pcre2_match_data_free
      Src: /src/VTest2/lib/vre.c:338,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vre.c:342,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 6
    argNames:
    - code
    - subject
    - replacement
    - vsb
    - lim
    - all
    argTypes:
    - vre_t*
    - char*
    - char*
    - struct vsb*
    - struct vre_limits*
    - int
    assertStmts:
    - condition: (i > VRE_ERROR_NOMATCH)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/VTest2/lib/vre.c
    constantsTouched: []
    func_position:
      end: 344
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 344
    functionName: VRE_sub
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - vre_capture
    - vre_limit
    - pdiff
    - assert
    - CHECK_OBJ_NOTNULL
    - Tlen
    - pcre2_match_data_free
    - isdigit
    - VSB_cat
    - AZ
    - AN
    - VSB_bcat
    linkageType: ''
    returnType: int
    signature: "int VRE_sub(const vre_t *code, const char *subject, const char *replacement,\n
      \   struct vsb *vsb, const volatile struct vre_limits *lim, int all)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OBJ_NOTNULL
      Src: /src/VTest2/lib/vre.c:351,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:355,1
    - Dst: pcre2_match_context_free
      Src: /src/VTest2/lib/vre.c:359,1
    - Dst: pcre2_code_free
      Src: /src/VTest2/lib/vre.c:361,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vre.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - vv
    argTypes:
    - vre_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 363
    functionName: VRE_free
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 8
    functionsReached:
    - FREE_OBJ
    - pcre2_match_context_free
    - AZ
    - TAKE_OBJ_NOTNULL
    - pcre2_code_free
    linkageType: ''
    returnType: void
    signature: void VRE_free(vre_t **vv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vre.c:370,1
    - Dst: strstr
      Src: /src/VTest2/lib/vre.c:373,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vre.c:374,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vre.c:376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - vsb
    - src
    argTypes:
    - struct vsb*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 377
    functionName: VRE_quote
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - strstr
    - CHECK_OBJ_NOTNULL
    - VSB_printf
    linkageType: ''
    returnType: void
    signature: void VRE_quote(struct vsb *vsb, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1821
    functionName: z_deflateInit
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_deflateInit(strm, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1821
    functionDepth: 0
    functionLinenumber: 1821
    functionLinenumberEnd: 1823
    functionName: z_inflateInit
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_inflateInit(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - strm
    - ','
    - level
    - ','
    - method
    - ','
    - windowBits
    - ','
    - memLevel
    - ','
    - strategy
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1826
    functionName: z_deflateInit2
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_deflateInit2(strm, level, method, windowBits, memLevel, strategy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1829
    functionName: z_inflateInit2
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_inflateInit2(strm, windowBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - ','
    - window
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1832
    functionName: z_inflateBackInit
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_inflateBackInit(strm, windowBits, window)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1833
    functionDepth: 0
    functionLinenumber: 1833
    functionLinenumberEnd: 1835
    functionName: deflateInit
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateInit(strm, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1835
    functionDepth: 0
    functionLinenumber: 1835
    functionLinenumberEnd: 1837
    functionName: inflateInit
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateInit(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - strm
    - ','
    - level
    - ','
    - method
    - ','
    - windowBits
    - ','
    - memLevel
    - ','
    - strategy
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1837
    functionDepth: 0
    functionLinenumber: 1837
    functionLinenumberEnd: 1840
    functionName: deflateInit2
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateInit2(strm, level, method, windowBits, memLevel, strategy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1840
    functionDepth: 0
    functionLinenumber: 1840
    functionLinenumberEnd: 1843
    functionName: inflateInit2
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateInit2(strm, windowBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - ','
    - window
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1843
    functionDepth: 0
    functionLinenumber: 1843
    functionLinenumberEnd: 1846
    functionName: inflateBackInit
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateBackInit(strm, windowBits, window)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1865
    functionDepth: 0
    functionLinenumber: 1865
    functionLinenumberEnd: 1867
    functionName: z_gzgetc
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_gzgetc(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1868
    functionDepth: 0
    functionLinenumber: 1868
    functionLinenumberEnd: 1870
    functionName: gzgetc
    functionSourceFile: /src/VTest2/lib/vgz.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gzgetc(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: KASSERT
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KASSERT(e, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: SBMALLOC
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SBMALLOC(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: SBFREE
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SBFREE(buf)
  - 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: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: rndup2
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rndup2(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: VSB_ISDYNAMIC
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSB_ISDYNAMIC(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: VSB_ISDYNSTRUCT
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSB_ISDYNSTRUCT(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: VSB_HASROOM
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSB_HASROOM(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: VSB_FREESPACE
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSB_FREESPACE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: VSB_CANEXTEND
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSB_CANEXTEND(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: VSB_SETFLAG
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSB_SETFLAG(s, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: VSB_CLEARFLAG
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSB_CLEARFLAG(s, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KASSERT
      Src: /src/VTest2/lib/vsb.c:87,1
    - Dst: KASSERT
      Src: /src/VTest2/lib/vsb.c:89,1
    - Dst: KASSERT
      Src: /src/VTest2/lib/vsb.c:91,1
    - Dst: KASSERT
      Src: /src/VTest2/lib/vsb.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - fun
    - s
    argTypes:
    - char*
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: _assert_VSB_integrity
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached:
    - KASSERT
    linkageType: ''
    returnType: void
    signature: void _assert_VSB_integrity(const char *fun, const struct vsb *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KASSERT
      Src: /src/VTest2/lib/vsb.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fun
    - s
    - state
    argTypes:
    - char*
    - struct vsb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: _assert_VSB_state
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached:
    - KASSERT
    linkageType: ''
    returnType: void
    signature: void _assert_VSB_state(const char *fun, const struct vsb *s, int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: assert_VSB_integrity
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_VSB_integrity(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: assert_VSB_state
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_VSB_state(s, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: assert_VSB_integrity
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_VSB_integrity(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: assert_VSB_state
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_VSB_state(s, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rndup2
      Src: /src/VTest2/lib/vsb.c:130,1
    - Dst: KASSERT
      Src: /src/VTest2/lib/vsb.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: VSB_extendsize
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached:
    - KASSERT
    - rndup2
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t VSB_extendsize(ssize_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VSB_CANEXTEND
      Src: /src/VTest2/lib/vsb.c:145,1
    - Dst: VSB_extendsize
      Src: /src/VTest2/lib/vsb.c:147,1
    - Dst: VSB_ISDYNAMIC
      Src: /src/VTest2/lib/vsb.c:148,1
    - Dst: realloc
      Src: /src/VTest2/lib/vsb.c:149,1
    - Dst: SBMALLOC
      Src: /src/VTest2/lib/vsb.c:151,1
    - Dst: VSB_ISDYNAMIC
      Src: /src/VTest2/lib/vsb.c:154,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsb.c:155,1
    - Dst: VSB_SETFLAG
      Src: /src/VTest2/lib/vsb.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - addlen
    argTypes:
    - struct vsb*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 161
    functionName: VSB_extend
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached:
    - VSB_CANEXTEND
    - memcpy
    - VSB_SETFLAG
    - SBMALLOC
    - realloc
    - VSB_ISDYNAMIC
    - VSB_extendsize
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t VSB_extend(struct vsb *s, ssize_t addlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VSB_FREESPACE
      Src: /src/VTest2/lib/vsb.c:169,1
    - Dst: VSB_extend
      Src: /src/VTest2/lib/vsb.c:170,1
    - Dst: memset
      Src: /src/VTest2/lib/vsb.c:174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: _vsb_indent
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached:
    - VSB_FREESPACE
    - memset
    - VSB_extend
    linkageType: ''
    returnType: void
    signature: void _vsb_indent(struct vsb *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/VTest2/lib/vsb.c:187,1
    - Dst: KASSERT
      Src: /src/VTest2/lib/vsb.c:194,1
    - Dst: VSB_extendsize
      Src: /src/VTest2/lib/vsb.c:202,1
    - Dst: SBMALLOC
      Src: /src/VTest2/lib/vsb.c:204,1
    - Dst: VSB_SETFLAG
      Src: /src/VTest2/lib/vsb.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - s
    - buf
    - length
    - flags
    argTypes:
    - struct vsb*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 209
    functionName: VSB_newbuf
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached:
    - memset
    - VSB_SETFLAG
    - SBMALLOC
    - KASSERT
    - VSB_extendsize
    linkageType: ''
    returnType: struct vsb
    signature: 'struct vsb *

      VSB_newbuf(struct vsb *s, char *buf, int length, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vsb.c:214,1
    - Dst: AN
      Src: /src/VTest2/lib/vsb.c:215,1
    - Dst: KASSERT
      Src: /src/VTest2/lib/vsb.c:217,1
    - Dst: VSB_newbuf
      Src: /src/VTest2/lib/vsb.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - s
    - buf
    - length
    argTypes:
    - struct vsb*
    - void*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: VSB_init
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 8
    functionsReached:
    - KASSERT
    - VSB_newbuf
    - AN
    linkageType: ''
    returnType: struct vsb
    signature: 'struct vsb *

      VSB_init(struct vsb *s, void *buf, ssize_t length)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SBMALLOC
      Src: /src/VTest2/lib/vsb.c:230,1
    - Dst: VSB_newbuf
      Src: /src/VTest2/lib/vsb.c:233,1
    - Dst: SBFREE
      Src: /src/VTest2/lib/vsb.c:234,1
    - Dst: VSB_SETFLAG
      Src: /src/VTest2/lib/vsb.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 239
    functionName: VSB_new_auto
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 32
    functionsReached:
    - VSB_newbuf
    - VSB_SETFLAG
    - SBFREE
    - SBMALLOC
    linkageType: ''
    returnType: struct vsb
    signature: 'struct vsb *

      VSB_new_auto(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:248,1
    - Dst: VSB_CLEARFLAG
      Src: /src/VTest2/lib/vsb.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 255
    functionName: VSB_clear
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 12
    functionsReached:
    - VSB_CLEARFLAG
    - assert_VSB_integrity
    linkageType: ''
    returnType: void
    signature: void VSB_clear(struct vsb *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:266,1
    - Dst: assert_VSB_state
      Src: /src/VTest2/lib/vsb.c:267,1
    - Dst: _vsb_indent
      Src: /src/VTest2/lib/vsb.c:271,1
    - Dst: VSB_FREESPACE
      Src: /src/VTest2/lib/vsb.c:272,1
    - Dst: VSB_extend
      Src: /src/VTest2/lib/vsb.c:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - struct vsb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 279
    functionName: VSB_put_byte
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached:
    - assert_VSB_state
    - VSB_extend
    - VSB_FREESPACE
    - assert_VSB_integrity
    - _vsb_indent
    linkageType: ''
    returnType: void
    signature: void VSB_put_byte(struct vsb *s, int c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:287,1
    - Dst: assert_VSB_state
      Src: /src/VTest2/lib/vsb.c:288,1
    - Dst: assert
      Src: /src/VTest2/lib/vsb.c:290,1
    - Dst: _vsb_indent
      Src: /src/VTest2/lib/vsb.c:295,1
    - Dst: VSB_FREESPACE
      Src: /src/VTest2/lib/vsb.c:296,1
    - Dst: VSB_extend
      Src: /src/VTest2/lib/vsb.c:297,1
    - Dst: VSB_FREESPACE
      Src: /src/VTest2/lib/vsb.c:297,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsb.c:302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - s
    - buf
    - len
    argTypes:
    - struct vsb*
    - void*
    - ssize_t
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/VTest2/lib/vsb.c
    constantsTouched: []
    func_position:
      end: 305
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 305
    functionName: VSB_bcat
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 16
    functionsReached:
    - assert
    - assert_VSB_state
    - VSB_extend
    - memcpy
    - VSB_FREESPACE
    - assert_VSB_integrity
    - _vsb_indent
    linkageType: ''
    returnType: int
    signature: int VSB_bcat(struct vsb *s, const void *buf, ssize_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:316,1
    - Dst: assert_VSB_state
      Src: /src/VTest2/lib/vsb.c:317,1
    - Dst: KASSERT
      Src: /src/VTest2/lib/vsb.c:318,1
    - Dst: strchr
      Src: /src/VTest2/lib/vsb.c:324,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vsb.c:326,1
    - Dst: strlen
      Src: /src/VTest2/lib/vsb.c:331,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vsb.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - struct vsb*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 310
    functionDepth: 5
    functionLinenumber: 310
    functionLinenumberEnd: 333
    functionName: VSB_cat
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 21
    functionsReached:
    - assert_VSB_state
    - assert_VSB_integrity
    - strchr
    - strlen
    - KASSERT
    - VSB_bcat
    linkageType: ''
    returnType: int
    signature: int VSB_cat(struct vsb *s, const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:344,1
    - Dst: assert_VSB_state
      Src: /src/VTest2/lib/vsb.c:345,1
    - Dst: KASSERT
      Src: /src/VTest2/lib/vsb.c:347,1
    - Dst: _vsb_indent
      Src: /src/VTest2/lib/vsb.c:352,1
    - Dst: va_copy
      Src: /src/VTest2/lib/vsb.c:366,1
    - Dst: vsnprintf
      Src: /src/VTest2/lib/vsb.c:367,1
    - Dst: VSB_FREESPACE
      Src: /src/VTest2/lib/vsb.c:367,1
    - Dst: va_end
      Src: /src/VTest2/lib/vsb.c:369,1
    - Dst: VSB_FREESPACE
      Src: /src/VTest2/lib/vsb.c:374,1
    - Dst: VSB_extend
      Src: /src/VTest2/lib/vsb.c:375,1
    - Dst: VSB_FREESPACE
      Src: /src/VTest2/lib/vsb.c:375,1
    - Dst: vmin_t
      Src: /src/VTest2/lib/vsb.c:386,1
    - Dst: VSB_FREESPACE
      Src: /src/VTest2/lib/vsb.c:386,1
    - Dst: VSB_HASROOM
      Src: /src/VTest2/lib/vsb.c:387,1
    - Dst: VSB_CANEXTEND
      Src: /src/VTest2/lib/vsb.c:387,1
    - Dst: KASSERT
      Src: /src/VTest2/lib/vsb.c:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - s
    - fmt
    - ap
    argTypes:
    - struct vsb*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 396
    functionName: VSB_vprintf
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 2
    functionsReached:
    - va_end
    - va_copy
    - VSB_CANEXTEND
    - assert_VSB_state
    - vsnprintf
    - VSB_extend
    - assert_VSB_integrity
    - VSB_FREESPACE
    - VSB_HASROOM
    - vmin_t
    - KASSERT
    - _vsb_indent
    linkageType: ''
    returnType: int
    signature: int VSB_vprintf(struct vsb *s, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/VTest2/lib/vsb.c:407,1
    - Dst: VSB_vprintf
      Src: /src/VTest2/lib/vsb.c:408,1
    - Dst: va_end
      Src: /src/VTest2/lib/vsb.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - fmt
    argTypes:
    - struct vsb*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 401
    functionDepth: 5
    functionLinenumber: 401
    functionLinenumberEnd: 411
    functionName: VSB_printf
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 26
    functionsReached:
    - va_end
    - va_start
    - VSB_vprintf
    linkageType: ''
    returnType: int
    signature: int VSB_printf(struct vsb *s, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VSB_put_byte
      Src: /src/VTest2/lib/vsb.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - struct vsb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 416
    functionDepth: 5
    functionLinenumber: 416
    functionLinenumberEnd: 424
    functionName: VSB_putc
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 13
    functionsReached:
    - VSB_put_byte
    linkageType: ''
    returnType: int
    signature: int VSB_putc(struct vsb *s, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 434
    functionName: VSB_error
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VSB_error(const struct vsb *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:443,1
    - Dst: assert_VSB_state
      Src: /src/VTest2/lib/vsb.c:444,1
    - Dst: VSB_SETFLAG
      Src: /src/VTest2/lib/vsb.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 452
    functionName: VSB_finish
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 34
    functionsReached:
    - assert_VSB_integrity
    - VSB_SETFLAG
    - assert_VSB_state
    linkageType: ''
    returnType: int
    signature: int VSB_finish(struct vsb *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:461,1
    - Dst: assert_VSB_state
      Src: /src/VTest2/lib/vsb.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 465
    functionName: VSB_data
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 39
    functionsReached:
    - assert_VSB_integrity
    - assert_VSB_state
    linkageType: ''
    returnType: char
    signature: 'char *

      VSB_data(const struct vsb *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 480
    functionName: VSB_len
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 14
    functionsReached:
    - assert_VSB_integrity
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t VSB_len(const struct vsb *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:486,1
    - Dst: assert
      Src: /src/VTest2/lib/vsb.c:487,1
    - Dst: VSB_ISDYNAMIC
      Src: /src/VTest2/lib/vsb.c:487,1
    - Dst: assert
      Src: /src/VTest2/lib/vsb.c:488,1
    - Dst: VSB_ISDYNSTRUCT
      Src: /src/VTest2/lib/vsb.c:488,1
    - Dst: memset
      Src: /src/VTest2/lib/vsb.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct vsb*
    assertStmts:
    - condition: (!VSB_ISDYNAMIC(s))
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/VTest2/lib/vsb.c
    - condition: (!VSB_ISDYNSTRUCT(s))
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/VTest2/lib/vsb.c
    constantsTouched: []
    func_position:
      end: 490
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 490
    functionName: VSB_fini
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 8
    functionsReached:
    - memset
    - assert
    - assert_VSB_integrity
    - VSB_ISDYNSTRUCT
    - VSB_ISDYNAMIC
    linkageType: ''
    returnType: void
    signature: void VSB_fini(struct vsb *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vsb.c:496,1
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:497,1
    - Dst: assert
      Src: /src/VTest2/lib/vsb.c:498,1
    - Dst: VSB_ISDYNAMIC
      Src: /src/VTest2/lib/vsb.c:498,1
    - Dst: assert
      Src: /src/VTest2/lib/vsb.c:499,1
    - Dst: VSB_ISDYNSTRUCT
      Src: /src/VTest2/lib/vsb.c:499,1
    - Dst: SBFREE
      Src: /src/VTest2/lib/vsb.c:500,1
    - Dst: memset
      Src: /src/VTest2/lib/vsb.c:501,1
    - Dst: SBFREE
      Src: /src/VTest2/lib/vsb.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct vsb**
    assertStmts:
    - condition: (VSB_ISDYNAMIC(*s))
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/VTest2/lib/vsb.c
    - condition: (VSB_ISDYNSTRUCT(*s))
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/VTest2/lib/vsb.c
    constantsTouched: []
    func_position:
      end: 504
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 504
    functionName: VSB_destroy
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 38
    functionsReached:
    - memset
    - assert
    - assert_VSB_integrity
    - VSB_ISDYNSTRUCT
    - VSB_ISDYNAMIC
    - AN
    - SBFREE
    linkageType: ''
    returnType: void
    signature: void VSB_destroy(struct vsb **s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:515,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:520,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsb.c:523,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - s
    - u
    - len
    argTypes:
    - struct vsb*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 510
    functionDepth: 6
    functionLinenumber: 510
    functionLinenumberEnd: 525
    functionName: vsb_quote_hex
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached:
    - VSB_printf
    - VSB_cat
    linkageType: ''
    returnType: void
    signature: void vsb_quote_hex(struct vsb *s, const uint8_t *u, size_t len)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/lib/vsb.c:537,1
    - Dst: AZ
      Src: /src/VTest2/lib/vsb.c:540,1
    - Dst: assert
      Src: /src/VTest2/lib/vsb.c:545,1
    - Dst: assert
      Src: /src/VTest2/lib/vsb.c:547,1
    - Dst: strlen
      Src: /src/VTest2/lib/vsb.c:548,1
    - Dst: strlen
      Src: /src/VTest2/lib/vsb.c:549,1
    - Dst: strlen
      Src: /src/VTest2/lib/vsb.c:556,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsb.c:559,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:561,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:567,1
    - Dst: vsb_quote_hex
      Src: /src/VTest2/lib/vsb.c:570,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:572,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:577,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vsb.c:593,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:595,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:597,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:600,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:607,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:613,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:614,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:619,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:620,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsb.c:624,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:626,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:628,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:631,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:635,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:638,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:642,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:644,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsb.c:646,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsb.c:648,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsb.c:650,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:655,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:657,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:659,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 107
    argCount: 5
    argNames:
    - s
    - pfx
    - v
    - len
    - how
    argTypes:
    - struct vsb*
    - char*
    - void*
    - int
    - int
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/VTest2/lib/vsb.c
    - condition: (len > 5)
      pos:
        line_end: 546
        line_start: 546
        source_file: /src/VTest2/lib/vsb.c
    constantsTouched: []
    func_position:
      end: 660
      start: 527
    functionDepth: 7
    functionLinenumber: 527
    functionLinenumberEnd: 660
    functionName: VSB_quote_pfx
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 2
    functionsReached:
    - VSB_putc
    - vsb_quote_hex
    - assert
    - VSB_bcat
    - VSB_cat
    - VSB_printf
    - AZ
    - strlen
    linkageType: ''
    returnType: void
    signature: void VSB_quote_pfx(struct vsb *s, const char *pfx, const void *v, int
      len, int how)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSB_quote_pfx
      Src: /src/VTest2/lib/vsb.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - v
    - len
    - how
    argTypes:
    - struct vsb*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 662
    functionDepth: 8
    functionLinenumber: 662
    functionLinenumberEnd: 666
    functionName: VSB_quote
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 3
    functionsReached:
    - VSB_quote_pfx
    linkageType: ''
    returnType: void
    signature: void VSB_quote(struct vsb *s, const void *v, int len, int how)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - struct vsb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 681
    functionName: VSB_indent
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 0
    functionsReached:
    - assert_VSB_integrity
    linkageType: ''
    returnType: void
    signature: void VSB_indent(struct vsb *s, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_VSB_integrity
      Src: /src/VTest2/lib/vsb.c:690,1
    - Dst: assert_VSB_state
      Src: /src/VTest2/lib/vsb.c:691,1
    - Dst: assert
      Src: /src/VTest2/lib/vsb.c:692,1
    - Dst: write
      Src: /src/VTest2/lib/vsb.c:697,1
    - Dst: assert
      Src: /src/VTest2/lib/vsb.c:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - s
    - fd
    argTypes:
    - struct vsb*
    - int
    assertStmts:
    - condition: ((typeof(sz))r <= sz)
      pos:
        line_end: 699
        line_start: 699
        source_file: /src/VTest2/lib/vsb.c
    - condition: (s->s_len >= 0)
      pos:
        line_end: 691
        line_start: 691
        source_file: /src/VTest2/lib/vsb.c
    constantsTouched: []
    func_position:
      end: 705
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 705
    functionName: VSB_tofile
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 5
    functionsReached:
    - assert_VSB_integrity
    - assert
    - assert_VSB_state
    - write
    linkageType: ''
    returnType: int
    signature: int VSB_tofile(const struct vsb *s, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - UPPER
    - ','
    - lower
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: VJSN_TYPE_MACRO
    functionSourceFile: /src/VTest2/lib/vjsn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VJSN_TYPE_MACRO(UPPER, lower)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vct.c:284,1
    - Dst: strchr
      Src: /src/VTest2/lib/vct.c:286,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:287,1
    - Dst: vct_isident1
      Src: /src/VTest2/lib/vct.c:289,1
    - Dst: vct_isident
      Src: /src/VTest2/lib/vct.c:293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - b
    - e
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (b < e)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/VTest2/lib/vct.c
    constantsTouched: []
    func_position:
      end: 297
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 297
    functionName: VCT_invalid_name
    functionSourceFile: /src/VTest2/lib/vct.c
    functionUses: 0
    functionsReached:
    - vct_isident1
    - assert
    - strchr
    - AN
    - vct_isident
    linkageType: ''
    returnType: char
    signature: 'char *

      VCT_invalid_name(const char *b, const char *e)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vct.c:313,1
    - Dst: setlocale
      Src: /src/VTest2/lib/vct.c:313,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:316,1
    - Dst: vct_iscrlf
      Src: /src/VTest2/lib/vct.c:316,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:319,1
    - Dst: tolower
      Src: /src/VTest2/lib/vct.c:319,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:321,1
    - Dst: vct_casecmp
      Src: /src/VTest2/lib/vct.c:321,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:322,1
    - Dst: vct_casecmp
      Src: /src/VTest2/lib/vct.c:322,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:323,1
    - Dst: vct_casecmp
      Src: /src/VTest2/lib/vct.c:323,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:324,1
    - Dst: vct_casecmp
      Src: /src/VTest2/lib/vct.c:324,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:325,1
    - Dst: vct_casecmp
      Src: /src/VTest2/lib/vct.c:325,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:326,1
    - Dst: vct_casecmp
      Src: /src/VTest2/lib/vct.c:326,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:328,1
    - Dst: vct_caselencmp
      Src: /src/VTest2/lib/vct.c:328,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:329,1
    - Dst: vct_caselencmp
      Src: /src/VTest2/lib/vct.c:329,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:331,1
    - Dst: vct_caselencmp
      Src: /src/VTest2/lib/vct.c:331,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:332,1
    - Dst: vct_caselencmp
      Src: /src/VTest2/lib/vct.c:332,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:333,1
    - Dst: vct_caselencmp
      Src: /src/VTest2/lib/vct.c:333,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:335,1
    - Dst: vct_caselencmp
      Src: /src/VTest2/lib/vct.c:335,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:336,1
    - Dst: vct_caselencmp
      Src: /src/VTest2/lib/vct.c:336,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:337,1
    - Dst: vct_caselencmp
      Src: /src/VTest2/lib/vct.c:337,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:339,1
    - Dst: vct_caselencmp
      Src: /src/VTest2/lib/vct.c:339,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:340,1
    - Dst: vct_caselencmp
      Src: /src/VTest2/lib/vct.c:340,1
    - Dst: assert
      Src: /src/VTest2/lib/vct.c:343,1
    - Dst: vct_caselencmp
      Src: /src/VTest2/lib/vct.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (vct_caselencmp("AZaz_", "azAZ", 4) == 0)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_caselencmp("AZaz ", "azAY", 5) > 0)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_caselencmp("A", "B", 0) == 0)
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_casecmp("AZay", "azAZ") < 0)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_casecmp("", "") == 0)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_caselencmp("AZaz", "azAZ_", 4) == 0)
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_caselencmp("AZaz", "azAZ", 5) == 0)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_caselencmp("AZaz1", "azAZ", 5) > 0)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_lowertab[i] == tolower(i))
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_caselencmp("AZaz1", "azAZ1", 4) == 0)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_caselencmp("AZay1", "azAZ1", 4) < 0)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_caselencmp("AZaz", "azAZ1", 5) < 0)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_caselencmp("AZay ", "azAZ", 5) < 0)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_iscrlf(p, p) == 0)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_casecmp("AZaz", "azAZ") == 0)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_casecmp("AZaz", "azAY") > 0)
      pos:
        line_end: 321
        line_start: 321
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_casecmp("AZaz_", "azAZ") > 0)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_caselencmp("AZaz1", "azAY1", 4) > 0)
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/VTest2/lib/vct.c
    - condition: (vct_casecmp("AZaz", "azAZ_") < 0)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/VTest2/lib/vct.c
    constantsTouched: []
    func_position:
      end: 346
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 346
    functionName: main
    functionSourceFile: /src/VTest2/lib/vct.c
    functionUses: 0
    functionsReached:
    - vct_casecmp
    - assert
    - tolower
    - setlocale
    - AN
    - vct_iscrlf
    - vct_caselencmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - txt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: BAIL
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BAIL(txt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vnum.c:81,1
    - Dst: AN
      Src: /src/VTest2/lib/vnum.c:82,1
    - Dst: vct_isows
      Src: /src/VTest2/lib/vnum.c:87,1
    - Dst: vct_isdigit
      Src: /src/VTest2/lib/vnum.c:93,1
    - Dst: BAIL
      Src: /src/VTest2/lib/vnum.c:96,1
    - Dst: BAIL
      Src: /src/VTest2/lib/vnum.c:101,1
    - Dst: vct_isows
      Src: /src/VTest2/lib/vnum.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ipp
    - errtxt
    - sign
    - maxdig
    argTypes:
    - char**
    - char**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 105
    functionName: sf_parse_int
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 0
    functionsReached:
    - vct_isdigit
    - AN
    - vct_isows
    - BAIL
    linkageType: ''
    returnType: int64_t
    signature: int64_t sf_parse_int(const char **ipp, const char **errtxt, int *sign,
      int maxdig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sf_parse_int
      Src: /src/VTest2/lib/vnum.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ipp
    - errtxt
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: SF_Parse_Integer
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 1
    functionsReached:
    - sf_parse_int
    linkageType: ''
    returnType: int64_t
    signature: int64_t SF_Parse_Integer(const char **ipp, const char **errtxt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sf_parse_int
      Src: /src/VTest2/lib/vnum.c:139,1
    - Dst: BAIL
      Src: /src/VTest2/lib/vnum.c:145,1
    - Dst: vct_isdigit
      Src: /src/VTest2/lib/vnum.c:146,1
    - Dst: BAIL
      Src: /src/VTest2/lib/vnum.c:147,1
    - Dst: vct_isdigit
      Src: /src/VTest2/lib/vnum.c:154,1
    - Dst: BAIL
      Src: /src/VTest2/lib/vnum.c:159,1
    - Dst: vct_isdigit
      Src: /src/VTest2/lib/vnum.c:160,1
    - Dst: BAIL
      Src: /src/VTest2/lib/vnum.c:161,1
    - Dst: vct_isdigit
      Src: /src/VTest2/lib/vnum.c:162,1
    - Dst: vct_isows
      Src: /src/VTest2/lib/vnum.c:165,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 3
    argNames:
    - ipp
    - strict
    - errtxt
    argTypes:
    - char**
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 168
    functionName: SF_Parse_Number
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 0
    functionsReached:
    - BAIL
    - vct_isdigit
    - vct_isows
    - sf_parse_int
    linkageType: ''
    returnType: double
    signature: double SF_Parse_Number(const char **ipp, int strict, const char **errtxt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SF_Parse_Number
      Src: /src/VTest2/lib/vnum.c:183,1
    - Dst: BAIL
      Src: /src/VTest2/lib/vnum.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ipp
    - strict
    - errtxt
    argTypes:
    - char**
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 189
    functionName: SF_Parse_Decimal
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 0
    functionsReached:
    - SF_Parse_Number
    - BAIL
    linkageType: ''
    returnType: double
    signature: double SF_Parse_Decimal(const char **ipp, int strict, const char **errtxt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SF_Parse_Number
      Src: /src/VTest2/lib/vnum.c:204,1
    - Dst: nan
      Src: /src/VTest2/lib/vnum.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: VNUM
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 3
    functionsReached:
    - SF_Parse_Number
    - nan
    linkageType: ''
    returnType: double
    signature: double VNUM(const char *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/VTest2/lib/vnum.c:218,1
    - Dst: vct_issp
      Src: /src/VTest2/lib/vnum.c:220,1
    - Dst: nan
      Src: /src/VTest2/lib/vnum.c:223,1
    - Dst: nan
      Src: /src/VTest2/lib/vnum.c:249,1
    - Dst: vct_issp
      Src: /src/VTest2/lib/vnum.c:252,1
    - Dst: nan
      Src: /src/VTest2/lib/vnum.c:256,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - r
    - b
    - e
    argTypes:
    - vtim_dur
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 259
    functionName: VNUM_duration_unit
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 0
    functionsReached:
    - vct_issp
    - strchr
    - nan
    linkageType: ''
    returnType: vtim_dur
    signature: vtim_dur VNUM_duration_unit(vtim_dur r, const char *b, const char *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nan
      Src: /src/VTest2/lib/vnum.c:268,1
    - Dst: SF_Parse_Number
      Src: /src/VTest2/lib/vnum.c:270,1
    - Dst: nan
      Src: /src/VTest2/lib/vnum.c:273,1
    - Dst: VNUM_duration_unit
      Src: /src/VTest2/lib/vnum.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 276
    functionName: VNUM_duration
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 0
    functionsReached:
    - SF_Parse_Number
    - VNUM_duration_unit
    - nan
    linkageType: ''
    returnType: vtim_dur
    signature: vtim_dur VNUM_duration(const char *p)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vnum.c:286,1
    - Dst: AN
      Src: /src/VTest2/lib/vnum.c:287,1
    - Dst: strchr
      Src: /src/VTest2/lib/vnum.c:290,1
    - Dst: vct_issp
      Src: /src/VTest2/lib/vnum.c:292,1
    - Dst: modf
      Src: /src/VTest2/lib/vnum.c:295,1
    - Dst: trunc
      Src: /src/VTest2/lib/vnum.c:299,1
    - Dst: exp2
      Src: /src/VTest2/lib/vnum.c:307,1
    - Dst: exp2
      Src: /src/VTest2/lib/vnum.c:308,1
    - Dst: exp2
      Src: /src/VTest2/lib/vnum.c:309,1
    - Dst: exp2
      Src: /src/VTest2/lib/vnum.c:310,1
    - Dst: exp2
      Src: /src/VTest2/lib/vnum.c:311,1
    - Dst: modf
      Src: /src/VTest2/lib/vnum.c:313,1
    - Dst: vct_issp
      Src: /src/VTest2/lib/vnum.c:327,1
    - Dst: trunc
      Src: /src/VTest2/lib/vnum.c:334,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 5
    argNames:
    - r
    - b
    - e
    - rel
    - errtxt
    argTypes:
    - double
    - char*
    - char*
    - uintmax_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 335
    functionName: VNUM_bytes_unit
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 0
    functionsReached:
    - trunc
    - vct_issp
    - modf
    - exp2
    - strchr
    - AN
    linkageType: ''
    returnType: int64_t
    signature: "int64_t VNUM_bytes_unit(double r, const char *b, const char *e, uintmax_t
      rel,\n    const char **errtxt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SF_Parse_Number
      Src: /src/VTest2/lib/vnum.c:346,1
    - Dst: VNUM_bytes_unit
      Src: /src/VTest2/lib/vnum.c:352,1
    - Dst: round
      Src: /src/VTest2/lib/vnum.c:355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - p
    - r
    - rel
    argTypes:
    - char*
    - uintmax_t*
    - uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 357
    functionName: VNUM_2bytes
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 1
    functionsReached:
    - round
    - VNUM_bytes_unit
    - SF_Parse_Number
    linkageType: ''
    returnType: char
    signature: 'char *

      VNUM_2bytes(const char *p, uintmax_t *r, uintmax_t rel)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vnum.c:376,1
    - Dst: AN
      Src: /src/VTest2/lib/vnum.c:377,1
    - Dst: strchr
      Src: /src/VTest2/lib/vnum.c:379,1
    - Dst: vct_ishex
      Src: /src/VTest2/lib/vnum.c:382,1
    - Dst: vct_ishex
      Src: /src/VTest2/lib/vnum.c:387,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - b
    - e
    - p
    - base
    argTypes:
    - char*
    - char*
    - char**
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 403
    functionName: vnum_uint
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 0
    functionsReached:
    - vct_ishex
    - AN
    - strchr
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t vnum_uint(const char *b, const char *e, const char **p, unsigned
      base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vnum_uint
      Src: /src/VTest2/lib/vnum.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - e
    - p
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 410
    functionName: VNUM_uint
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 0
    functionsReached:
    - vnum_uint
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t VNUM_uint(const char *b, const char *e, const char **p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vnum_uint
      Src: /src/VTest2/lib/vnum.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - e
    - p
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 417
    functionName: VNUM_hex
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 0
    functionsReached:
    - vnum_uint
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t VNUM_hex(const char *b, const char *e, const char **p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/VTest2/lib/vnum.c:598,1
    - Dst: setbuf
      Src: /src/VTest2/lib/vnum.c:599,1
    - Dst: sf_parse_int
      Src: /src/VTest2/lib/vnum.c:604,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:611,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:614,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:616,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:618,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:620,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:622,1
    - Dst: SF_Parse_Number
      Src: /src/VTest2/lib/vnum.c:631,1
    - Dst: bprintf
      Src: /src/VTest2/lib/vnum.c:633,1
    - Dst: bprintf
      Src: /src/VTest2/lib/vnum.c:634,1
    - Dst: strcmp
      Src: /src/VTest2/lib/vnum.c:635,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:639,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:642,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:644,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:646,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:648,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:650,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:652,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:654,1
    - Dst: VNUM
      Src: /src/VTest2/lib/vnum.c:662,1
    - Dst: isnan
      Src: /src/VTest2/lib/vnum.c:664,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:666,1
    - Dst: atof
      Src: /src/VTest2/lib/vnum.c:669,1
    - Dst: isnan
      Src: /src/VTest2/lib/vnum.c:670,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:671,1
    - Dst: fabs
      Src: /src/VTest2/lib/vnum.c:673,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:674,1
    - Dst: VNUM_2bytes
      Src: /src/VTest2/lib/vnum.c:682,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:688,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:690,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:692,1
    - Dst: isnan
      Src: /src/VTest2/lib/vnum.c:695,1
    - Dst: VNUM_duration
      Src: /src/VTest2/lib/vnum.c:695,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:696,1
    - Dst: VNUM_duration
      Src: /src/VTest2/lib/vnum.c:699,1
    - Dst: fabs
      Src: /src/VTest2/lib/vnum.c:701,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:702,1
    - Dst: printf
      Src: /src/VTest2/lib/vnum.c:708,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 577
    functionDepth: 4
    functionLinenumber: 577
    functionLinenumberEnd: 710
    functionName: main
    functionSourceFile: /src/VTest2/lib/vnum.c
    functionUses: 0
    functionsReached:
    - atof
    - SF_Parse_Number
    - isnan
    - sf_parse_int
    - fabs
    - strcmp
    - printf
    - bprintf
    - setbuf
    - VNUM
    - VNUM_duration
    - VNUM_2bytes
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - UPPER
    - ','
    - lower
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: VJSN_TYPE_MACRO
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VJSN_TYPE_MACRO(UPPER, lower)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - js
    - ','
    - xxx
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: VJSN_EXPECT
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VJSN_EXPECT(js, xxx, ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/lib/vjsn.c:69,1
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:70,1
    - Dst: VTAILQ_INIT
      Src: /src/VTest2/lib/vjsn.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: vjsn_val_new
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - AN
    - VTAILQ_INIT
    - ALLOC_OBJ
    linkageType: ''
    returnType: struct vjsn_val
    signature: 'struct vjsn_val *

      vjsn_val_new(const char *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vjsn.c:81,1
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/lib/vjsn.c:83,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/lib/vjsn.c:85,1
    - Dst: vjsn_val_delete
      Src: /src/VTest2/lib/vjsn.c:86,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vjsn.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - jsv
    argTypes:
    - struct vjsn_val*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: vjsn_val_delete
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 1
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - vjsn_val_delete
    - FREE_OBJ
    - VTAILQ_FIRST
    - VTAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void vjsn_val_delete(struct vjsn_val *jsv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OBJ_NOTNULL
      Src: /src/VTest2/lib/vjsn.c:97,1
    - Dst: vjsn_val_delete
      Src: /src/VTest2/lib/vjsn.c:99,1
    - Dst: free
      Src: /src/VTest2/lib/vjsn.c:100,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vjsn.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - jp
    argTypes:
    - struct vjsn**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: vjsn_delete
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 1
    functionsReached:
    - vjsn_val_delete
    - FREE_OBJ
    - TAKE_OBJ_NOTNULL
    - free
    linkageType: ''
    returnType: void
    signature: void vjsn_delete(struct vjsn **jp)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 1
    argNames:
    - js
    argTypes:
    - struct vjsn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 126
    functionName: vjsn_skip_ws
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vjsn_skip_ws(struct vjsn *js)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VJSN_EXPECT
      Src: /src/VTest2/lib/vjsn.c:135,1
    - Dst: VJSN_EXPECT
      Src: /src/VTest2/lib/vjsn.c:136,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - js
    argTypes:
    - struct vjsn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 153
    functionName: vjsn_unumber
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - VJSN_EXPECT
    linkageType: ''
    returnType: unsigned
    signature: unsigned vjsn_unumber(struct vjsn *js)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vjsn_unumber
      Src: /src/VTest2/lib/vjsn.c:160,1
    - Dst: vjsn_unumber
      Src: /src/VTest2/lib/vjsn.c:169,1
    - Dst: assert
      Src: /src/VTest2/lib/vjsn.c:180,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - js
    - d
    argTypes:
    - struct vjsn*
    - char**
    assertStmts:
    - condition: (u1 < 0x110000)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/VTest2/lib/vjsn.c
    constantsTouched: []
    func_position:
      end: 198
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 198
    functionName: vjsn_unicode
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - assert
    - vjsn_unumber
    linkageType: ''
    returnType: void
    signature: void vjsn_unicode(struct vjsn *js, char **d)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:205,1
    - Dst: vjsn_skip_ws
      Src: /src/VTest2/lib/vjsn.c:206,1
    - Dst: VJSN_EXPECT
      Src: /src/VTest2/lib/vjsn.c:207,1
    - Dst: vjsn_unicode
      Src: /src/VTest2/lib/vjsn.c:232,1
    - Dst: VJSN_EXPECT
      Src: /src/VTest2/lib/vjsn.c:241,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 2
    argNames:
    - js
    - e
    argTypes:
    - struct vjsn*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 245
    functionName: vjsn_string
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - vjsn_skip_ws
    - VJSN_EXPECT
    - vjsn_unicode
    - AN
    linkageType: ''
    returnType: char
    signature: 'char *

      vjsn_string(struct vjsn *js, char **e)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VJSN_EXPECT
      Src: /src/VTest2/lib/vjsn.c:253,1
    - Dst: vjsn_val_new
      Src: /src/VTest2/lib/vjsn.c:255,1
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:256,1
    - Dst: vjsn_skip_ws
      Src: /src/VTest2/lib/vjsn.c:258,1
    - Dst: vjsn_string
      Src: /src/VTest2/lib/vjsn.c:261,1
    - Dst: vjsn_skip_ws
      Src: /src/VTest2/lib/vjsn.c:264,1
    - Dst: VJSN_EXPECT
      Src: /src/VTest2/lib/vjsn.c:265,1
    - Dst: vjsn_value
      Src: /src/VTest2/lib/vjsn.c:266,1
    - Dst: vjsn_val_delete
      Src: /src/VTest2/lib/vjsn.c:269,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vjsn.c:272,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/lib/vjsn.c:275,1
    - Dst: vjsn_skip_ws
      Src: /src/VTest2/lib/vjsn.c:276,1
    - Dst: VJSN_EXPECT
      Src: /src/VTest2/lib/vjsn.c:279,1
    - Dst: VJSN_EXPECT
      Src: /src/VTest2/lib/vjsn.c:282,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - js
    argTypes:
    - struct vjsn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 284
    functionName: vjsn_object
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - vjsn_string
    - VJSN_EXPECT
    - CHECK_OBJ_NOTNULL
    - vjsn_skip_ws
    - vjsn_val_delete
    - VTAILQ_INSERT_TAIL
    - vjsn_value
    - vjsn_val_new
    - AN
    linkageType: ''
    returnType: struct vjsn_val
    signature: 'struct vjsn_val *

      vjsn_object(struct vjsn *js)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VJSN_EXPECT
      Src: /src/VTest2/lib/vjsn.c:291,1
    - Dst: vjsn_val_new
      Src: /src/VTest2/lib/vjsn.c:293,1
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:294,1
    - Dst: vjsn_skip_ws
      Src: /src/VTest2/lib/vjsn.c:296,1
    - Dst: vjsn_value
      Src: /src/VTest2/lib/vjsn.c:299,1
    - Dst: vjsn_val_delete
      Src: /src/VTest2/lib/vjsn.c:302,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vjsn.c:305,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/lib/vjsn.c:306,1
    - Dst: vjsn_skip_ws
      Src: /src/VTest2/lib/vjsn.c:307,1
    - Dst: VJSN_EXPECT
      Src: /src/VTest2/lib/vjsn.c:310,1
    - Dst: VJSN_EXPECT
      Src: /src/VTest2/lib/vjsn.c:313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - js
    argTypes:
    - struct vjsn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 315
    functionName: vjsn_array
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - VJSN_EXPECT
    - CHECK_OBJ_NOTNULL
    - vjsn_skip_ws
    - vjsn_val_delete
    - VTAILQ_INSERT_TAIL
    - vjsn_value
    - vjsn_val_new
    - AN
    linkageType: ''
    returnType: struct vjsn_val
    signature: 'struct vjsn_val *

      vjsn_array(struct vjsn *js)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vjsn_val_new
      Src: /src/VTest2/lib/vjsn.c:322,1
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:323,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 1
    argNames:
    - js
    argTypes:
    - struct vjsn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 364
    functionName: vjsn_number
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - AN
    - vjsn_val_new
    linkageType: ''
    returnType: struct vjsn_val
    signature: 'struct vjsn_val *

      vjsn_number(struct vjsn *js)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/lib/vjsn.c:371,1
    - Dst: vjsn_skip_ws
      Src: /src/VTest2/lib/vjsn.c:372,1
    - Dst: vjsn_object
      Src: /src/VTest2/lib/vjsn.c:374,1
    - Dst: vjsn_array
      Src: /src/VTest2/lib/vjsn.c:376,1
    - Dst: vjsn_val_new
      Src: /src/VTest2/lib/vjsn.c:378,1
    - Dst: vjsn_string
      Src: /src/VTest2/lib/vjsn.c:379,1
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:382,1
    - Dst: strncmp
      Src: /src/VTest2/lib/vjsn.c:385,1
    - Dst: vjsn_val_new
      Src: /src/VTest2/lib/vjsn.c:387,1
    - Dst: strncmp
      Src: /src/VTest2/lib/vjsn.c:389,1
    - Dst: vjsn_val_new
      Src: /src/VTest2/lib/vjsn.c:391,1
    - Dst: strncmp
      Src: /src/VTest2/lib/vjsn.c:393,1
    - Dst: vjsn_val_new
      Src: /src/VTest2/lib/vjsn.c:395,1
    - Dst: vjsn_number
      Src: /src/VTest2/lib/vjsn.c:398,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - js
    argTypes:
    - struct vjsn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 366
    functionDepth: 5
    functionLinenumber: 366
    functionLinenumberEnd: 401
    functionName: vjsn_value
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 2
    functionsReached:
    - vjsn_string
    - vjsn_skip_ws
    - strncmp
    - vjsn_number
    - vjsn_val_new
    - AZ
    - AN
    - vjsn_array
    - vjsn_object
    linkageType: ''
    returnType: struct vjsn_val
    signature: 'struct vjsn_val *

      vjsn_value(struct vjsn *js)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:410,1
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:412,1
    - Dst: strchr
      Src: /src/VTest2/lib/vjsn.c:416,1
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:417,1
    - Dst: malloc
      Src: /src/VTest2/lib/vjsn.c:421,1
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:422,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vjsn.c:423,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/lib/vjsn.c:427,1
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:428,1
    - Dst: vjsn_value
      Src: /src/VTest2/lib/vjsn.c:432,1
    - Dst: vjsn_delete
      Src: /src/VTest2/lib/vjsn.c:435,1
    - Dst: vjsn_skip_ws
      Src: /src/VTest2/lib/vjsn.c:439,1
    - Dst: vjsn_delete
      Src: /src/VTest2/lib/vjsn.c:442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 3
    argNames:
    - from
    - to
    - err
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 403
    functionDepth: 6
    functionLinenumber: 403
    functionLinenumberEnd: 446
    functionName: vjsn_parse_end
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - ALLOC_OBJ
    - vjsn_skip_ws
    - vjsn_delete
    - strchr
    - vjsn_value
    - AN
    linkageType: ''
    returnType: struct vjsn
    signature: 'struct vjsn *

      vjsn_parse_end(const char *from, const char *to, const char **err)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vjsn_parse_end
      Src: /src/VTest2/lib/vjsn.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - err
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 7
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: vjsn_parse
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 1
    functionsReached:
    - vjsn_parse_end
    linkageType: ''
    returnType: struct vjsn
    signature: 'struct vjsn *

      vjsn_parse(const char *src, const char **err)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vjsn.c:460,1
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:461,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/lib/vjsn.c:462,1
    - Dst: strcmp
      Src: /src/VTest2/lib/vjsn.c:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - vv
    - key
    argTypes:
    - struct vjsn_val*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 467
    functionName: vjsn_child
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - VTAILQ_FOREACH
    - AN
    - strcmp
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: struct vjsn_val
    signature: 'struct vjsn_val *

      vjsn_child(const struct vjsn_val *vv, const char *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vjsn.c:474,1
    - Dst: printf
      Src: /src/VTest2/lib/vjsn.c:475,1
    - Dst: printf
      Src: /src/VTest2/lib/vjsn.c:477,1
    - Dst: printf
      Src: /src/VTest2/lib/vjsn.c:478,1
    - Dst: strlen
      Src: /src/VTest2/lib/vjsn.c:480,1
    - Dst: printf
      Src: /src/VTest2/lib/vjsn.c:481,1
    - Dst: printf
      Src: /src/VTest2/lib/vjsn.c:483,1
    - Dst: strlen
      Src: /src/VTest2/lib/vjsn.c:484,1
    - Dst: printf
      Src: /src/VTest2/lib/vjsn.c:485,1
    - Dst: printf
      Src: /src/VTest2/lib/vjsn.c:487,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/lib/vjsn.c:488,1
    - Dst: vjsn_dump_i
      Src: /src/VTest2/lib/vjsn.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - jsv
    - fo
    - indent
    argTypes:
    - struct vjsn_val*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 490
    functionName: vjsn_dump_i
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 1
    functionsReached:
    - vjsn_dump_i
    - VTAILQ_FOREACH
    - CHECK_OBJ_NOTNULL
    - printf
    - strlen
    linkageType: ''
    returnType: void
    signature: void vjsn_dump_i(const struct vjsn_val *jsv, FILE *fo, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vjsn.c:495,1
    - Dst: vjsn_dump_i
      Src: /src/VTest2/lib/vjsn.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jsv
    - fo
    argTypes:
    - struct vjsn_val*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 497
    functionName: vjsn_dump_val
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - vjsn_dump_i
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void vjsn_dump_val(const struct vjsn_val *jsv, FILE *fo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vjsn.c:503,1
    - Dst: AN
      Src: /src/VTest2/lib/vjsn.c:504,1
    - Dst: vjsn_dump_i
      Src: /src/VTest2/lib/vjsn.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - js
    - fo
    argTypes:
    - struct vjsn*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 506
    functionName: vjsn_dump
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - vjsn_dump_i
    - AN
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void vjsn_dump(const struct vjsn *js, FILE *fo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - UPPER
    - ','
    - lower
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 515
    functionName: VJSN_TYPE_MACRO
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VJSN_TYPE_MACRO(UPPER, lower)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vjsn_parse
      Src: /src/VTest2/lib/vjsn.c:933,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vjsn.c:935,1
    - Dst: exit
      Src: /src/VTest2/lib/vjsn.c:936,1
    - Dst: printf
      Src: /src/VTest2/lib/vjsn.c:938,1
    - Dst: vjsn_dump
      Src: /src/VTest2/lib/vjsn.c:939,1
    - Dst: vjsn_delete
      Src: /src/VTest2/lib/vjsn.c:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - j
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 927
    functionDepth: 8
    functionLinenumber: 927
    functionLinenumberEnd: 941
    functionName: test_good
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - exit
    - vjsn_dump
    - vjsn_parse
    - vjsn_delete
    - printf
    - fprintf
    linkageType: ''
    returnType: void
    signature: void test_good(const char *j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vjsn_parse
      Src: /src/VTest2/lib/vjsn.c:949,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vjsn.c:951,1
    - Dst: exit
      Src: /src/VTest2/lib/vjsn.c:952,1
    - Dst: printf
      Src: /src/VTest2/lib/vjsn.c:954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - j
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 943
    functionDepth: 8
    functionLinenumber: 943
    functionLinenumberEnd: 955
    functionName: test_bad
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - fprintf
    - vjsn_parse
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void test_bad(const char *j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_good
      Src: /src/VTest2/lib/vjsn.c:965,1
    - Dst: test_bad
      Src: /src/VTest2/lib/vjsn.c:967,1
    - Dst: test_bad
      Src: /src/VTest2/lib/vjsn.c:973,1
    - Dst: printf
      Src: /src/VTest2/lib/vjsn.c:974,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 957
    functionDepth: 9
    functionLinenumber: 957
    functionLinenumberEnd: 976
    functionName: main
    functionSourceFile: /src/VTest2/lib/vjsn.c
    functionUses: 0
    functionsReached:
    - test_good
    - test_bad
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vav.c:64,1
    - Dst: strchr
      Src: /src/VTest2/lib/vav.c:66,1
    - Dst: pdiff
      Src: /src/VTest2/lib/vav.c:68,1
    - Dst: assert
      Src: /src/VTest2/lib/vav.c:72,1
    - Dst: isdigit
      Src: /src/VTest2/lib/vav.c:98,1
    - Dst: VNUM_hex
      Src: /src/VTest2/lib/vav.c:107,1
    - Dst: AZ
      Src: /src/VTest2/lib/vav.c:109,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - s
    - e
    - res
    argTypes:
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (*s == '\\')
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/VTest2/lib/vav.c
    constantsTouched: []
    func_position:
      end: 120
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 120
    functionName: vav_backslash_txt
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 0
    functionsReached:
    - pdiff
    - VNUM_hex
    - assert
    - strchr
    - isdigit
    - AZ
    - AN
    linkageType: ''
    returnType: int
    signature: int vav_backslash_txt(const char *s, const char *e, char *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vav_backslash_txt
      Src: /src/VTest2/lib/vav.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - res
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: VAV_BackSlash
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 1
    functionsReached:
    - vav_backslash_txt
    linkageType: ''
    returnType: int
    signature: int VAV_BackSlash(const char *s, char *res)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/VTest2/lib/vav.c:137,1
    - Dst: assert
      Src: /src/VTest2/lib/vav.c:138,1
    - Dst: calloc
      Src: /src/VTest2/lib/vav.c:139,1
    - Dst: vav_backslash_txt
      Src: /src/VTest2/lib/vav.c:147,1
    - Dst: free
      Src: /src/VTest2/lib/vav.c:149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (e != NULL)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/VTest2/lib/vav.c
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: VAV_BackSlashDecode
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 0
    functionsReached:
    - assert
    - calloc
    - free
    - strchr
    - vav_backslash_txt
    linkageType: ''
    returnType: char
    signature: 'char *

      VAV_BackSlashDecode(const char *s, const char *e)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vav.c:173,1
    - Dst: strchr
      Src: /src/VTest2/lib/vav.c:175,1
    - Dst: calloc
      Src: /src/VTest2/lib/vav.c:180,1
    - Dst: isspace
      Src: /src/VTest2/lib/vav.c:185,1
    - Dst: isspace
      Src: /src/VTest2/lib/vav.c:189,1
    - Dst: vav_backslash_txt
      Src: /src/VTest2/lib/vav.c:217,1
    - Dst: isspace
      Src: /src/VTest2/lib/vav.c:226,1
    - Dst: realloc
      Src: /src/VTest2/lib/vav.c:257,1
    - Dst: assert
      Src: /src/VTest2/lib/vav.c:258,1
    - Dst: malloc
      Src: /src/VTest2/lib/vav.c:261,1
    - Dst: assert
      Src: /src/VTest2/lib/vav.c:262,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vav.c:263,1
    - Dst: VAV_BackSlashDecode
      Src: /src/VTest2/lib/vav.c:266,1
    - Dst: assert
      Src: /src/VTest2/lib/vav.c:267,1
    - Dst: strdup
      Src: /src/VTest2/lib/vav.c:274,1
    - Dst: assert
      Src: /src/VTest2/lib/vav.c:275,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (argv != NULL)
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/VTest2/lib/vav.c
    - condition: (argv[nargv] != NULL)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/VTest2/lib/vav.c
    - condition: (argv[nargv] != NULL)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/VTest2/lib/vav.c
    - condition: (argv[nargv] != NULL)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/VTest2/lib/vav.c
    constantsTouched: []
    func_position:
      end: 282
      start: 165
    functionDepth: 5
    functionLinenumber: 165
    functionLinenumberEnd: 282
    functionName: VAV_ParseTxt
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 1
    functionsReached:
    - isspace
    - malloc
    - VAV_BackSlashDecode
    - assert
    - memcpy
    - calloc
    - strchr
    - vav_backslash_txt
    - realloc
    - AN
    - strdup
    linkageType: ''
    returnType: char
    signature: 'char **

      VAV_ParseTxt(const char *b, const char *e, int *argc, int flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VAV_ParseTxt
      Src: /src/VTest2/lib/vav.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 6
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: VAV_Parse
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 1
    functionsReached:
    - VAV_ParseTxt
    linkageType: ''
    returnType: char
    signature: 'char **

      VAV_Parse(const char *s, int *argc, int flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/VTest2/lib/vav.c:297,1
    - Dst: free
      Src: /src/VTest2/lib/vav.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: VAV_Free
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void VAV_Free(char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/VTest2/lib/vav.c:310,1
    - Dst: printf
      Src: /src/VTest2/lib/vav.c:312,1
    - Dst: printf
      Src: /src/VTest2/lib/vav.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 315
    functionName: VAV_Print
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void VAV_Print(char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/VTest2/lib/vav.c:322,1
    - Dst: VAV_Parse
      Src: /src/VTest2/lib/vav.c:323,1
    - Dst: VAV_Print
      Src: /src/VTest2/lib/vav.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 317
    functionDepth: 7
    functionLinenumber: 317
    functionLinenumberEnd: 325
    functionName: Test
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 0
    functionsReached:
    - VAV_Parse
    - VAV_Print
    - printf
    linkageType: ''
    returnType: void
    signature: void Test(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/VTest2/lib/vav.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - stream
    - info
    - args
    argTypes:
    - FILE*
    - struct printf_info*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 335
    functionName: printf_v
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int printf_v(FILE *stream, const struct printf_info *info,\n    const
      void *const *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - info
    - n
    - argtypes
    - size
    argTypes:
    - struct printf_info*
    - size_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: printf_v_info
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int printf_v_info(const struct printf_info *info, size_t n, int *argtypes,\n
      \   int *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_printf_render_std
      Src: /src/VTest2/lib/vav.c:356,1
    - Dst: register_printf_specifier
      Src: /src/VTest2/lib/vav.c:358,1
    - Dst: fgets
      Src: /src/VTest2/lib/vav.c:363,1
    - Dst: Test
      Src: /src/VTest2/lib/vav.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 347
    functionDepth: 8
    functionLinenumber: 347
    functionLinenumberEnd: 367
    functionName: main
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 0
    functionsReached:
    - register_printf_specifier
    - Test
    - register_printf_render_std
    - fgets
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/VTest2/lib/vav.c:432,1
    - Dst: VAV_Parse
      Src: /src/VTest2/lib/vav.c:434,1
    - Dst: malloc
      Src: /src/VTest2/lib/vav.c:436,1
    - Dst: AN
      Src: /src/VTest2/lib/vav.c:437,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vav.c:438,1
    - Dst: VAV_ParseTxt
      Src: /src/VTest2/lib/vav.c:439,1
    - Dst: free
      Src: /src/VTest2/lib/vav.c:440,1
    - Dst: AN
      Src: /src/VTest2/lib/vav.c:442,1
    - Dst: printf
      Src: /src/VTest2/lib/vav.c:447,1
    - Dst: strcmp
      Src: /src/VTest2/lib/vav.c:456,1
    - Dst: printf
      Src: /src/VTest2/lib/vav.c:458,1
    - Dst: printf
      Src: /src/VTest2/lib/vav.c:468,1
    - Dst: printf
      Src: /src/VTest2/lib/vav.c:477,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 425
    functionDepth: 7
    functionLinenumber: 425
    functionLinenumberEnd: 479
    functionName: test_run
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 0
    functionsReached:
    - malloc
    - VAV_Parse
    - memcpy
    - strcmp
    - printf
    - free
    - VAV_ParseTxt
    - AN
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char **

      test_run(const struct test_case *tc, int *ret)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_run
      Src: /src/VTest2/lib/vav.c:491,1
    - Dst: VAV_Free
      Src: /src/VTest2/lib/vav.c:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 481
    functionDepth: 8
    functionLinenumber: 481
    functionLinenumberEnd: 497
    functionName: main
    functionSourceFile: /src/VTest2/lib/vav.c
    functionUses: 0
    functionsReached:
    - test_run
    - VAV_Free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 13
    functionName: ZERO_OBJ
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZERO_OBJ(to, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - type_magic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: INIT_OBJ
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_OBJ(to, type_magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: FINI_OBJ
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FINI_OBJ(to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - type_magic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: ALLOC_OBJ
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC_OBJ(to, type_magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - to
    - ','
    - extra_size
    - ','
    - type_magic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: ALLOC_OBJ_EXTRA
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC_OBJ_EXTRA(to, extra_size, type_magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - to
    - ','
    - fld
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: SIZEOF_FLEX_OBJ
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZEOF_FLEX_OBJ(to, fld, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - to
    - ','
    - fld
    - ','
    - len
    - ','
    - type_magic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: ALLOC_FLEX_OBJ
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC_FLEX_OBJ(to, fld, len, type_magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: FREE_OBJ
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_OBJ(to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type_magic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: VALID_OBJ
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALID_OBJ(ptr, type_magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type_magic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: CHECK_OBJ
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_OBJ(ptr, type_magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type_magic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: CHECK_OBJ_NOTNULL
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 116
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_OBJ_NOTNULL(ptr, type_magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type_magic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: CHECK_OBJ_ORNULL
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_OBJ_ORNULL(ptr, type_magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - type_magic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: CAST_OBJ
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAST_OBJ(to, from, type_magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - type_magic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: CAST_OBJ_NOTNULL
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 103
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAST_OBJ_NOTNULL(to, from, type_magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - to
    - ','
    - pfrom
    - ','
    - type_magic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: TAKE_OBJ_NOTNULL
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAKE_OBJ_NOTNULL(to, pfrom, type_magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: REPLACE
    functionSourceFile: /src/VTest2/lib/miniobj.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPLACE(ptr, val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unw_getcontext
      Src: /src/VTest2/lib/vbt.c:67,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vbt.c:69,1
    - Dst: unw_init_local
      Src: /src/VTest2/lib/vbt.c:73,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vbt.c:75,1
    - Dst: unw_step
      Src: /src/VTest2/lib/vbt.c:79,1
    - Dst: unw_get_reg
      Src: /src/VTest2/lib/vbt.c:82,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vbt.c:83,1
    - Dst: unw_get_reg
      Src: /src/VTest2/lib/vbt.c:86,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vbt.c:87,1
    - Dst: unw_get_proc_name
      Src: /src/VTest2/lib/vbt.c:90,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vbt.c:91,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vbt.c:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - vsb
    argTypes:
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 98
    functionName: vbt_unwind
    functionSourceFile: /src/VTest2/lib/vbt.c
    functionUses: 0
    functionsReached:
    - VSB_putc
    - unw_init_local
    - unw_step
    - VSB_printf
    - unw_get_reg
    - unw_getcontext
    - unw_get_proc_name
    linkageType: ''
    returnType: int
    signature: int vbt_unwind(struct vsb *vsb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: backtrace
      Src: /src/VTest2/lib/vbt.c:114,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vbt.c:116,1
    - Dst: bprintf
      Src: /src/VTest2/lib/vbt.c:120,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vbt.c:121,1
    - Dst: backtrace_symbols
      Src: /src/VTest2/lib/vbt.c:122,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vbt.c:124,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vbt.c:127,1
    - Dst: strlen
      Src: /src/VTest2/lib/vbt.c:127,1
    - Dst: strlen
      Src: /src/VTest2/lib/vbt.c:128,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vbt.c:134,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vbt.c:136,1
    - Dst: free
      Src: /src/VTest2/lib/vbt.c:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - vsb
    argTypes:
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 104
    functionDepth: 6
    functionLinenumber: 104
    functionLinenumberEnd: 139
    functionName: vbt_execinfo
    functionSourceFile: /src/VTest2/lib/vbt.c
    functionUses: 0
    functionsReached:
    - backtrace
    - backtrace_symbols
    - VSB_printf
    - memcmp
    - free
    - bprintf
    - VSB_cat
    - strlen
    linkageType: ''
    returnType: void
    signature: void vbt_execinfo(struct vsb *vsb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VALID_OBJ
      Src: /src/VTest2/lib/vbt.c:146,1
    - Dst: vbt_unwind
      Src: /src/VTest2/lib/vbt.c:149,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vbt.c:152,1
    - Dst: vbt_execinfo
      Src: /src/VTest2/lib/vbt.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - vsb
    argTypes:
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 142
    functionDepth: 7
    functionLinenumber: 142
    functionLinenumberEnd: 159
    functionName: VBT_format
    functionSourceFile: /src/VTest2/lib/vbt.c
    functionUses: 0
    functionsReached:
    - vbt_execinfo
    - vbt_unwind
    - VALID_OBJ
    - VSB_cat
    linkageType: ''
    returnType: void
    signature: void VBT_format(struct vsb *vsb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VSB_init
      Src: /src/VTest2/lib/vbt.c:166,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vbt.c:169,1
    - Dst: VSB_indent
      Src: /src/VTest2/lib/vbt.c:170,1
    - Dst: VBT_format
      Src: /src/VTest2/lib/vbt.c:171,1
    - Dst: VSB_indent
      Src: /src/VTest2/lib/vbt.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - len
    - buf
    argTypes:
    - size_t
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 8
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: VBT_dump
    functionSourceFile: /src/VTest2/lib/vbt.c
    functionUses: 2
    functionsReached:
    - VBT_format
    - VSB_init
    - VSB_indent
    - VSB_printf
    linkageType: ''
    returnType: int
    signature: int VBT_dump(size_t len, char buf[len])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vtcp.c:68,1
    - Dst: assert
      Src: /src/VTest2/lib/vtcp.c:69,1
    - Dst: getnameinfo
      Src: /src/VTest2/lib/vtcp.c:70,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vtcp.c:77,1
    - Dst: gai_strerror
      Src: /src/VTest2/lib/vtcp.c:77,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vtcp.c:79,1
    - Dst: VAS_errtxt
      Src: /src/VTest2/lib/vtcp.c:79,1
    - Dst: snprintf
      Src: /src/VTest2/lib/vtcp.c:81,1
    - Dst: snprintf
      Src: /src/VTest2/lib/vtcp.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - sa
    - l
    - abuf
    - alen
    - pbuf
    - plen
    argTypes:
    - void*
    - socklen_t
    - char*
    - unsigned
    - char*
    - unsigned
    assertStmts:
    - condition: (abuf == NULL || alen > 0)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/VTest2/lib/vtcp.c
    - condition: (pbuf == NULL || plen > 0)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/VTest2/lib/vtcp.c
    constantsTouched: []
    func_position:
      end: 86
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 86
    functionName: vtcp_sa_to_ascii
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - getnameinfo
    - assert
    - VAS_errtxt
    - gai_strerror
    - fprintf
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void vtcp_sa_to_ascii(const void *sa, socklen_t l, char *abuf, unsigned
      alen,\n    char *pbuf, unsigned plen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSA_Get_Sockaddr
      Src: /src/VTest2/lib/vtcp.c:97,1
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:98,1
    - Dst: vtcp_sa_to_ascii
      Src: /src/VTest2/lib/vtcp.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - addr
    - abuf
    - alen
    - pbuf
    - plen
    argTypes:
    - struct suckaddr*
    - char*
    - unsigned
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: VTCP_name
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 9
    functionsReached:
    - vtcp_sa_to_ascii
    - AN
    - VSA_Get_Sockaddr
    linkageType: ''
    returnType: void
    signature: "void VTCP_name(const struct suckaddr *addr, char *abuf, unsigned alen,\n
      \   char *pbuf, unsigned plen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/VTest2/lib/vtcp.c:109,1
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:110,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/lib/vtcp.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: VTCP_my_suckaddr
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - malloc
    - VSA_getsockname
    - AN
    linkageType: ''
    returnType: struct suckaddr
    signature: 'struct suckaddr *

      VTCP_my_suckaddr(int sock)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTCP_name
      Src: /src/VTest2/lib/vtcp.c:121,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/lib/vtcp.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - sock
    - abuf
    - alen
    - pbuf
    - plen
    argTypes:
    - int
    - char*
    - unsigned
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: VTCP_myname
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 4
    functionsReached:
    - VTCP_name
    - VSA_getsockname
    linkageType: ''
    returnType: void
    signature: void VTCP_myname(int sock, char *abuf, unsigned alen, char *pbuf, unsigned
      plen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VSA_getpeername
      Src: /src/VTest2/lib/vtcp.c:133,1
    - Dst: VTCP_name
      Src: /src/VTest2/lib/vtcp.c:135,1
    - Dst: snprintf
      Src: /src/VTest2/lib/vtcp.c:137,1
    - Dst: snprintf
      Src: /src/VTest2/lib/vtcp.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - sock
    - abuf
    - alen
    - pbuf
    - plen
    argTypes:
    - int
    - char*
    - unsigned
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: VTCP_hisname
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 2
    functionsReached:
    - VSA_getpeername
    - VTCP_name
    - snprintf
    linkageType: ''
    returnType: void
    signature: void VTCP_hisname(int sock, char *abuf, unsigned alen, char *pbuf,
      unsigned plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/VTest2/lib/vtcp.c:152,1
    - Dst: bprintf
      Src: /src/VTest2/lib/vtcp.c:153,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: VTCP_filter_http
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - setsockopt
    - memset
    - bprintf
    linkageType: ''
    returnType: int
    signature: int VTCP_filter_http(int sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: VTCP_filter_http
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int VTCP_filter_http(int sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: VTCP_filter_http
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VTCP_filter_http(int sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - depth
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 201
    functionName: VTCP_fastopen
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int VTCP_fastopen(int sock, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/VTest2/lib/vtcp.c:221,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: VTCP_blocking
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 4
    functionsReached:
    - VTCP_Assert
    - ioctl
    linkageType: ''
    returnType: void
    signature: void VTCP_blocking(int sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/VTest2/lib/vtcp.c:231,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 233
    functionName: VTCP_nonblocking
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 3
    functionsReached:
    - VTCP_Assert
    - ioctl
    linkageType: ''
    returnType: void
    signature: void VTCP_nonblocking(int sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/lib/vtcp.c:253,1
    - Dst: getsockopt
      Src: /src/VTest2/lib/vtcp.c:253,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:258,1
    - Dst: VTCP_blocking
      Src: /src/VTest2/lib/vtcp.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 264
    functionName: VTCP_connected
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 2
    functionsReached:
    - closefd
    - VTCP_blocking
    - AZ
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int VTCP_connected(int s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:278,1
    - Dst: VSA_Sane
      Src: /src/VTest2/lib/vtcp.c:278,1
    - Dst: VSA_Get_Sockaddr
      Src: /src/VTest2/lib/vtcp.c:279,1
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:280,1
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:281,1
    - Dst: socket
      Src: /src/VTest2/lib/vtcp.c:283,1
    - Dst: VTCP_nonblocking
      Src: /src/VTest2/lib/vtcp.c:289,1
    - Dst: AZ
      Src: /src/VTest2/lib/vtcp.c:292,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:292,1
    - Dst: connect
      Src: /src/VTest2/lib/vtcp.c:294,1
    - Dst: VTCP_blocking
      Src: /src/VTest2/lib/vtcp.c:296,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:300,1
    - Dst: assert
      Src: /src/VTest2/lib/vtcp.c:312,1
    - Dst: poll
      Src: /src/VTest2/lib/vtcp.c:317,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:321,1
    - Dst: VTCP_connected
      Src: /src/VTest2/lib/vtcp.c:326,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - name
    - msec
    argTypes:
    - struct suckaddr*
    - int
    assertStmts:
    - condition: (msec > 0)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/VTest2/lib/vtcp.c
    constantsTouched: []
    func_position:
      end: 327
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 327
    functionName: VTCP_connect
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - poll
    - assert
    - VSA_Sane
    - setsockopt
    - VTCP_connected
    - VTCP_blocking
    - VTCP_nonblocking
    - connect
    - VSA_Get_Sockaddr
    - socket
    - closefd
    - AZ
    - AN
    linkageType: ''
    returnType: int
    signature: int VTCP_connect(const struct suckaddr *name, int msec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/VTest2/lib/vtcp.c:339,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: VTCP_close
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 16
    functionsReached:
    - VTCP_Assert
    - close
    linkageType: ''
    returnType: void
    signature: void VTCP_close(int *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTIM_timeval_sock
      Src: /src/VTest2/lib/vtcp.c:348,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:356,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - seconds
    argTypes:
    - int
    - vtim_dur
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 358
    functionName: VTCP_set_read_timeout
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 2
    functionsReached:
    - VTIM_timeval_sock
    - setsockopt
    - VTCP_Assert
    linkageType: ''
    returnType: void
    signature: void VTCP_set_read_timeout(int s, vtim_dur seconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/lib/vtcp.c:377,1
    - Dst: VTCP_connect
      Src: /src/VTest2/lib/vtcp.c:380,1
    - Dst: floor
      Src: /src/VTest2/lib/vtcp.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - priv
    - sa
    argTypes:
    - void*
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 388
    functionName: vtcp_open_callback
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - CAST_OBJ_NOTNULL
    - floor
    - VTCP_connect
    linkageType: ''
    returnType: void
    signature: void vtcp_open_callback(void *priv, const struct suckaddr *sa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:396,1
    - Dst: assert
      Src: /src/VTest2/lib/vtcp.c:397,1
    - Dst: INIT_OBJ
      Src: /src/VTest2/lib/vtcp.c:398,1
    - Dst: VSS_resolver
      Src: /src/VTest2/lib/vtcp.c:402,1
    - Dst: strerror
      Src: /src/VTest2/lib/vtcp.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - addr
    - def_port
    - timeout
    - errp
    argTypes:
    - char*
    - char*
    - vtim_dur
    - char**
    assertStmts:
    - condition: (timeout >= 0)
      pos:
        line_end: 396
        line_start: 396
        source_file: /src/VTest2/lib/vtcp.c
    constantsTouched: []
    func_position:
      end: 407
      start: 390
    functionDepth: 4
    functionLinenumber: 390
    functionLinenumberEnd: 407
    functionName: VTCP_open
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 4
    functionsReached:
    - INIT_OBJ
    - assert
    - strerror
    - VSS_resolver
    - AN
    linkageType: ''
    returnType: int
    signature: "int VTCP_open(const char *addr, const char *def_port, vtim_dur timeout,\n
      \   const char **errp)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/lib/vtcp.c:428,1
    - Dst: socket
      Src: /src/VTest2/lib/vtcp.c:429,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:436,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:440,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:448,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:452,1
    - Dst: VSA_Get_Sockaddr
      Src: /src/VTest2/lib/vtcp.c:457,1
    - Dst: bind
      Src: /src/VTest2/lib/vtcp.c:458,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:462,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - sa
    - errp
    argTypes:
    - struct suckaddr*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 467
    functionName: VTCP_bind
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 2
    functionsReached:
    - setsockopt
    - VSA_Get_Proto
    - bind
    - VSA_Get_Sockaddr
    - socket
    - closefd
    linkageType: ''
    returnType: int
    signature: int VTCP_bind(const struct suckaddr *sa, const char **errp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VTCP_bind
      Src: /src/VTest2/lib/vtcp.c:482,1
    - Dst: listen
      Src: /src/VTest2/lib/vtcp.c:484,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - sa
    - depth
    - errp
    argTypes:
    - struct suckaddr*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 494
    functionName: VTCP_listen
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - closefd
    - listen
    - VTCP_bind
    linkageType: ''
    returnType: int
    signature: int VTCP_listen(const struct suckaddr *sa, int depth, const char **errp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTCP_listen
      Src: /src/VTest2/lib/vtcp.c:509,1
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - priv
    - sa
    argTypes:
    - void*
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 516
    functionName: vtcp_lo_cb
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - VTCP_listen
    - AN
    linkageType: ''
    returnType: void
    signature: void vtcp_lo_cb(void *priv, const struct suckaddr *sa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:525,1
    - Dst: VSS_resolver
      Src: /src/VTest2/lib/vtcp.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - addr
    - def_port
    - depth
    - errp
    argTypes:
    - char*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 518
    functionDepth: 4
    functionLinenumber: 518
    functionLinenumberEnd: 533
    functionName: VTCP_listen_on
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 7
    functionsReached:
    - VSS_resolver
    - AN
    linkageType: ''
    returnType: int
    signature: "int VTCP_listen_on(const char *addr, const char *def_port, int depth,\n
      \   const char **errp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/VTest2/lib/vtcp.c:545,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:547,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - linger
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 550
    functionName: VTCP_linger
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - VTCP_Assert
    - memset
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int VTCP_linger(int sock, int linger)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vtcp.c:561,1
    - Dst: poll
      Src: /src/VTest2/lib/vtcp.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts:
    - condition: (sock > 0)
      pos:
        line_end: 560
        line_start: 560
        source_file: /src/VTest2/lib/vtcp.c
    constantsTouched: []
    func_position:
      end: 569
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 569
    functionName: VTCP_check_hup
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - poll
    - assert
    linkageType: ''
    returnType: int
    signature: int VTCP_check_hup(int sock)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 23
    argCount: 1
    argNames:
    - a
    argTypes:
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 626
    functionName: VTCP_Check
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VTCP_Check(ssize_t a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/VTest2/lib/vtcp.c:642,1
    - Dst: VTIM_poll_tmo
      Src: /src/VTest2/lib/vtcp.c:642,1
    - Dst: read
      Src: /src/VTest2/lib/vtcp.c:646,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - fd
    - ptr
    - len
    - tmo
    argTypes:
    - int
    - void*
    - size_t
    - vtim_dur
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 649
    functionName: VTCP_read
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - read
    - VTIM_poll_tmo
    - poll
    - VTCP_Assert
    linkageType: ''
    returnType: int
    signature: int VTCP_read(int fd, void *ptr, size_t len, vtim_dur tmo)
  - 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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: ROW
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROW(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: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: A
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: A(b, n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - bh
    - u
    argTypes:
    - struct vbh*
    - unsigned
    assertStmts:
    - condition: (u != UINT_MAX)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 120
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 120
    functionName: parent
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned
    signature: unsigned parent(const struct vbh *bh, unsigned u)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:155,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:156,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:158,1
    - Dst: parent
      Src: /src/VTest2/lib/vbh.c:158,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:159,1
    - Dst: parent
      Src: /src/VTest2/lib/vbh.c:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - bh
    - u
    - a
    - b
    argTypes:
    - struct vbh*
    - unsigned
    - unsigned*
    - unsigned*
    assertStmts:
    - condition: (*a > 0)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/VTest2/lib/vbh.c
    - condition: (parent(bh, *b) == u)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/VTest2/lib/vbh.c
    - condition: (parent(bh, *a) == u)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/VTest2/lib/vbh.c
    - condition: (*b > 0)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 162
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 162
    functionName: child
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached:
    - parent
    - assert
    linkageType: ''
    returnType: void
    signature: void child(const struct vbh *bh, unsigned u, unsigned *a, unsigned
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bh
    - u
    argTypes:
    - struct vbh*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: parent
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned parent(const struct vbh *bh, unsigned u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - bh
    - u
    - a
    - b
    argTypes:
    - struct vbh*
    - unsigned
    - unsigned*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: child
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void child(const struct vbh *bh, unsigned u, unsigned *a, unsigned
      *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROW
      Src: /src/VTest2/lib/vbh.c:194,1
    - Dst: realloc
      Src: /src/VTest2/lib/vbh.c:196,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:197,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:203,1
    - Dst: ROW
      Src: /src/VTest2/lib/vbh.c:203,1
    - Dst: ROW
      Src: /src/VTest2/lib/vbh.c:204,1
    - Dst: malloc
      Src: /src/VTest2/lib/vbh.c:204,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:205,1
    - Dst: ROW
      Src: /src/VTest2/lib/vbh.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - bh
    argTypes:
    - struct vbh*
    assertStmts:
    - condition: (ROW(bh, bh->length) == NULL)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/VTest2/lib/vbh.c
    - condition: (bh->array != NULL)
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/VTest2/lib/vbh.c
    - condition: (ROW(bh, bh->length))
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 207
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 207
    functionName: vbh_addrow
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached:
    - ROW
    - realloc
    - assert
    - malloc
    linkageType: ''
    returnType: void
    signature: void vbh_addrow(struct vbh *bh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/lib/vbh.c:215,1
    - Dst: getpagesize
      Src: /src/VTest2/lib/vbh.c:220,1
    - Dst: AZ
      Src: /src/VTest2/lib/vbh.c:222,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:226,1
    - Dst: calloc
      Src: /src/VTest2/lib/vbh.c:236,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:237,1
    - Dst: vbh_addrow
      Src: /src/VTest2/lib/vbh.c:238,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - priv
    - cmp_f
    - update_f
    argTypes:
    - void*
    - vbh_cmp_t*
    - vbh_update_t*
    assertStmts:
    - condition: (bh->page_size <= (sizeof(**bh->array) * ROW_WIDTH))
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/VTest2/lib/vbh.c
    - condition: (bh->array != NULL)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 242
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 242
    functionName: VBH_new
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 1
    functionsReached:
    - assert
    - ALLOC_OBJ
    - calloc
    - vbh_addrow
    - getpagesize
    - A
    - AZ
    linkageType: ''
    returnType: struct vbh
    signature: 'struct vbh *

      VBH_new(void *priv, vbh_cmp_t *cmp_f, vbh_update_t *update_f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:250,1
    - Dst: AZ
      Src: /src/VTest2/lib/vbh.c:251,1
    - Dst: VBH_root
      Src: /src/VTest2/lib/vbh.c:251,1
    - Dst: free
      Src: /src/VTest2/lib/vbh.c:254,1
    - Dst: ROW
      Src: /src/VTest2/lib/vbh.c:254,1
    - Dst: free
      Src: /src/VTest2/lib/vbh.c:255,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vbh.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bhp
    argTypes:
    - struct vbh**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 257
    functionName: VBH_destroy
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 1
    functionsReached:
    - VBH_root
    - FREE_OBJ
    - free
    - ROW
    - AZ
    - TAKE_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void VBH_destroy(struct vbh **bhp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:262,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:263,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:264,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:264,1
    - Dst: struct vbh*::update
      Src: /src/VTest2/lib/vbh.c:266,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bh
    - u
    argTypes:
    - struct vbh*
    - unsigned
    assertStmts:
    - condition: (u < bh->next)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, u) != NULL)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: vbh_update
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached:
    - A
    - struct vbh*::update
    - assert
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void vbh_update(const struct vbh *bh, unsigned u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:274,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:275,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:276,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:276,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:277,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:278,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:278,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:279,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:280,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:280,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:281,1
    - Dst: vbh_update
      Src: /src/VTest2/lib/vbh.c:282,1
    - Dst: vbh_update
      Src: /src/VTest2/lib/vbh.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - bh
    - u
    - v
    argTypes:
    - struct vbh*
    - unsigned
    - unsigned
    assertStmts:
    - condition: (v < bh->next)
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, u) != NULL)
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/VTest2/lib/vbh.c
    - condition: (u < bh->next)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, v) != NULL)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 284
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 284
    functionName: binhead_swap
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached:
    - A
    - assert
    - CHECK_OBJ_NOTNULL
    - vbh_update
    linkageType: ''
    returnType: void
    signature: void binhead_swap(const struct vbh *bh, unsigned u, unsigned v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:291,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:292,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:293,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:293,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:296,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:297,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:297,1
    - Dst: parent
      Src: /src/VTest2/lib/vbh.c:298,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:299,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:300,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:301,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:301,1
    - Dst: struct vbh*::cmp
      Src: /src/VTest2/lib/vbh.c:302,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:302,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:302,1
    - Dst: binhead_swap
      Src: /src/VTest2/lib/vbh.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - bh
    - u
    argTypes:
    - struct vbh*
    - unsigned
    assertStmts:
    - condition: (A(bh, u) != NULL)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/VTest2/lib/vbh.c
    - condition: (u < bh->next)
      pos:
        line_end: 295
        line_start: 295
        source_file: /src/VTest2/lib/vbh.c
    - condition: (u < bh->next)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, u) != NULL)
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/VTest2/lib/vbh.c
    - condition: (v < u)
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/VTest2/lib/vbh.c
    - condition: (v < bh->next)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, v) != NULL)
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 308
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 308
    functionName: vbh_trickleup
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached:
    - parent
    - assert
    - CHECK_OBJ_NOTNULL
    - binhead_swap
    - A
    - struct vbh*::cmp
    linkageType: ''
    returnType: unsigned
    signature: unsigned vbh_trickleup(const struct vbh *bh, unsigned u)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:315,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:316,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:317,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:317,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:320,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:321,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:321,1
    - Dst: child
      Src: /src/VTest2/lib/vbh.c:322,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:323,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:324,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:325,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:330,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:330,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:332,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:332,1
    - Dst: struct vbh*::cmp
      Src: /src/VTest2/lib/vbh.c:333,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:333,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:333,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:336,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:337,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:337,1
    - Dst: struct vbh*::cmp
      Src: /src/VTest2/lib/vbh.c:338,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:338,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:338,1
    - Dst: binhead_swap
      Src: /src/VTest2/lib/vbh.c:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - bh
    - u
    argTypes:
    - struct vbh*
    - unsigned
    assertStmts:
    - condition: (A(bh, u) != NULL)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, u) != NULL)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/VTest2/lib/vbh.c
    - condition: (v1 <= v2)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/VTest2/lib/vbh.c
    - condition: (v2 > 0)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, v1) != NULL)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/VTest2/lib/vbh.c
    - condition: (u < bh->next)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/VTest2/lib/vbh.c
    - condition: (u < bh->next)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/VTest2/lib/vbh.c
    - condition: (v1 > 0)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, v2) != NULL)
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/VTest2/lib/vbh.c
    - condition: (v1 < bh->next)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, v1) != NULL)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 343
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 343
    functionName: vbh_trickledown
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached:
    - assert
    - CHECK_OBJ_NOTNULL
    - child
    - binhead_swap
    - A
    - struct vbh*::cmp
    linkageType: ''
    returnType: unsigned
    signature: unsigned vbh_trickledown(const struct vbh *bh, unsigned u)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:350,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:351,1
    - Dst: vbh_addrow
      Src: /src/VTest2/lib/vbh.c:353,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:354,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:356,1
    - Dst: vbh_update
      Src: /src/VTest2/lib/vbh.c:357,1
    - Dst: vbh_trickleup
      Src: /src/VTest2/lib/vbh.c:358,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:359,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:360,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - bh
    - p
    argTypes:
    - struct vbh*
    - void*
    assertStmts:
    - condition: (bh->length > bh->next)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/VTest2/lib/vbh.c
    - condition: (bh->length >= bh->next)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/VTest2/lib/vbh.c
    - condition: (u < bh->next)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, u) != NULL)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 361
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 361
    functionName: VBH_insert
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 2
    functionsReached:
    - vbh_update
    - vbh_trickleup
    - assert
    - CHECK_OBJ_NOTNULL
    - vbh_addrow
    - A
    linkageType: ''
    returnType: void
    signature: void VBH_insert(struct vbh *bh, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parent
      Src: /src/VTest2/lib/vbh.c:371,1
    - Dst: AZ
      Src: /src/VTest2/lib/vbh.c:372,1
    - Dst: struct vbh*::cmp
      Src: /src/VTest2/lib/vbh.c:372,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:372,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bh
    argTypes:
    - struct vbh*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 374
    functionName: chk
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 1
    functionsReached:
    - parent
    - A
    - AZ
    - struct vbh*::cmp
    linkageType: ''
    returnType: void
    signature: void chk(const struct vbh *bh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:381,1
    - Dst: chk
      Src: /src/VTest2/lib/vbh.c:383,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bh
    argTypes:
    - struct vbh*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: VBH_root
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 3
    functionsReached:
    - A
    - chk
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: 'void *

      VBH_root(const struct vbh *bh)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:416,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:417,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:418,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:419,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:420,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:420,1
    - Dst: struct vbh*::update
      Src: /src/VTest2/lib/vbh.c:421,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:421,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:423,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:426,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:426,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:427,1
    - Dst: vbh_update
      Src: /src/VTest2/lib/vbh.c:428,1
    - Dst: vbh_trickleup
      Src: /src/VTest2/lib/vbh.c:429,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:430,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:431,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:432,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:432,1
    - Dst: vbh_trickledown
      Src: /src/VTest2/lib/vbh.c:433,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:434,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:435,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:436,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:436,1
    - Dst: free
      Src: /src/VTest2/lib/vbh.c:444,1
    - Dst: ROW
      Src: /src/VTest2/lib/vbh.c:444,1
    - Dst: ROW
      Src: /src/VTest2/lib/vbh.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 2
    argNames:
    - bh
    - idx
    argTypes:
    - struct vbh*
    - unsigned
    assertStmts:
    - condition: (A(bh, idx) != NULL)
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/VTest2/lib/vbh.c
    - condition: (idx < bh->next)
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/VTest2/lib/vbh.c
    - condition: (idx < bh->next)
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/VTest2/lib/vbh.c
    - condition: (bh->next > ROOT_IDX)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/VTest2/lib/vbh.c
    - condition: (idx > 0)
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/VTest2/lib/vbh.c
    - condition: (idx > 0)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/VTest2/lib/vbh.c
    - condition: (idx > 0)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/VTest2/lib/vbh.c
    - condition: (idx < bh->next)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, idx) != NULL)
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, idx) != NULL)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 448
      start: 412
    functionDepth: 4
    functionLinenumber: 412
    functionLinenumberEnd: 448
    functionName: VBH_delete
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 2
    functionsReached:
    - vbh_update
    - vbh_trickleup
    - assert
    - CHECK_OBJ_NOTNULL
    - vbh_trickledown
    - free
    - ROW
    - struct vbh*::update
    - A
    linkageType: ''
    returnType: void
    signature: void VBH_delete(struct vbh *bh, unsigned idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:458,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:459,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:460,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:461,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:462,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:462,1
    - Dst: vbh_trickleup
      Src: /src/VTest2/lib/vbh.c:463,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:464,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:465,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:466,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:466,1
    - Dst: vbh_trickledown
      Src: /src/VTest2/lib/vbh.c:467,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:468,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:469,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:470,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - bh
    - idx
    argTypes:
    - struct vbh*
    - unsigned
    assertStmts:
    - condition: (idx < bh->next)
      pos:
        line_end: 459
        line_start: 459
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, idx) != NULL)
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/VTest2/lib/vbh.c
    - condition: (idx > 0)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/VTest2/lib/vbh.c
    - condition: (bh->next > ROOT_IDX)
      pos:
        line_end: 458
        line_start: 458
        source_file: /src/VTest2/lib/vbh.c
    - condition: (idx < bh->next)
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/VTest2/lib/vbh.c
    - condition: (idx > 0)
      pos:
        line_end: 464
        line_start: 464
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, idx) != NULL)
      pos:
        line_end: 465
        line_start: 465
        source_file: /src/VTest2/lib/vbh.c
    - condition: (idx < bh->next)
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/VTest2/lib/vbh.c
    - condition: (idx > 0)
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/VTest2/lib/vbh.c
    - condition: (A(bh, idx) != NULL)
      pos:
        line_end: 469
        line_start: 469
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 471
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 471
    functionName: VBH_reorder
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached:
    - vbh_trickleup
    - assert
    - CHECK_OBJ_NOTNULL
    - vbh_trickledown
    - A
    linkageType: ''
    returnType: void
    signature: void VBH_reorder(const struct vbh *bh, unsigned idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:502,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - priv
    - a
    - b
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 505
    functionName: cmp
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 107
    functionsReached:
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void cmp(void *priv, const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - priv
    - a
    - u
    argTypes:
    - void*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 515
    functionName: update
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 4
    functionsReached:
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void update(void *priv, void *a, unsigned u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parent
      Src: /src/VTest2/lib/vbh.c:525,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:526,1
    - Dst: A
      Src: /src/VTest2/lib/vbh.c:527,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bh
    argTypes:
    - struct vbh*
    assertStmts:
    - condition: (fa->key >= fb->key)
      pos:
        line_end: 527
        line_start: 527
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 530
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 530
    functionName: chk2
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached:
    - parent
    - A
    - assert
    linkageType: ''
    returnType: void
    signature: void chk2(struct vbh *bh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: vrnd_lock
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vrnd_lock(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VRND_SeedAll
      Src: /src/VTest2/lib/vbh.c:545,1
    - Dst: VRND_SeedTestable
      Src: /src/VTest2/lib/vbh.c:546,1
    - Dst: VBH_new
      Src: /src/VTest2/lib/vbh.c:550,1
    - Dst: child
      Src: /src/VTest2/lib/vbh.c:552,1
    - Dst: child
      Src: /src/VTest2/lib/vbh.c:553,1
    - Dst: child
      Src: /src/VTest2/lib/vbh.c:554,1
    - Dst: VRND_RandomTestable
      Src: /src/VTest2/lib/vbh.c:562,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/lib/vbh.c:563,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:564,1
    - Dst: VBH_insert
      Src: /src/VTest2/lib/vbh.c:567,1
    - Dst: VBH_root
      Src: /src/VTest2/lib/vbh.c:569,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:570,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:571,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vbh.c:573,1
    - Dst: VBH_root
      Src: /src/VTest2/lib/vbh.c:576,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:577,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:578,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:584,1
    - Dst: VBH_delete
      Src: /src/VTest2/lib/vbh.c:585,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/lib/vbh.c:588,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:589,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vbh.c:590,1
    - Dst: VRND_RandomTestable
      Src: /src/VTest2/lib/vbh.c:594,1
    - Dst: VBH_insert
      Src: /src/VTest2/lib/vbh.c:596,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vbh.c:598,1
    - Dst: VBH_root
      Src: /src/VTest2/lib/vbh.c:602,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:603,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:604,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:605,1
    - Dst: VBH_delete
      Src: /src/VTest2/lib/vbh.c:607,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vbh.c:609,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vbh.c:611,1
    - Dst: VRND_RandomTestable
      Src: /src/VTest2/lib/vbh.c:614,1
    - Dst: CHECK_OBJ
      Src: /src/VTest2/lib/vbh.c:616,1
    - Dst: AN
      Src: /src/VTest2/lib/vbh.c:617,1
    - Dst: VBH_delete
      Src: /src/VTest2/lib/vbh.c:619,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:620,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vbh.c:621,1
    - Dst: VRND_RandomTestable
      Src: /src/VTest2/lib/vbh.c:624,1
    - Dst: VBH_reorder
      Src: /src/VTest2/lib/vbh.c:625,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/lib/vbh.c:628,1
    - Dst: assert
      Src: /src/VTest2/lib/vbh.c:629,1
    - Dst: VRND_RandomTestable
      Src: /src/VTest2/lib/vbh.c:630,1
    - Dst: VBH_insert
      Src: /src/VTest2/lib/vbh.c:631,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vbh.c:632,1
    - Dst: AN
      Src: /src/VTest2/lib/vbh.c:633,1
    - Dst: chk2
      Src: /src/VTest2/lib/vbh.c:636,1
    - Dst: fprintf
      Src: /src/VTest2/lib/vbh.c:639,1
    - Dst: VBH_root
      Src: /src/VTest2/lib/vbh.c:641,1
    - Dst: CHECK_OBJ
      Src: /src/VTest2/lib/vbh.c:642,1
    - Dst: VBH_delete
      Src: /src/VTest2/lib/vbh.c:643,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vbh.c:644,1
    - Dst: VBH_destroy
      Src: /src/VTest2/lib/vbh.c:646,1
    - Dst: AZ
      Src: /src/VTest2/lib/vbh.c:647,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ff[u] != NULL)
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/VTest2/lib/vbh.c
    - condition: (ff[n] != NULL)
      pos:
        line_end: 588
        line_start: 588
        source_file: /src/VTest2/lib/vbh.c
    - condition: (ff[v] != NULL)
      pos:
        line_end: 628
        line_start: 628
        source_file: /src/VTest2/lib/vbh.c
    - condition: (fp->idx == 1)
      pos:
        line_end: 577
        line_start: 577
        source_file: /src/VTest2/lib/vbh.c
    - condition: (fp->key <= lr)
      pos:
        line_end: 570
        line_start: 570
        source_file: /src/VTest2/lib/vbh.c
    - condition: (fp->idx == 1)
      pos:
        line_end: 603
        line_start: 603
        source_file: /src/VTest2/lib/vbh.c
    - condition: (fp->key <= lr)
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/VTest2/lib/vbh.c
    - condition: (fp->idx == 1)
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/VTest2/lib/vbh.c
    - condition: (fp->key >= lr)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/VTest2/lib/vbh.c
    - condition: (ff[v]->idx == VBH_NOIDX)
      pos:
        line_end: 619
        line_start: 619
        source_file: /src/VTest2/lib/vbh.c
    constantsTouched: []
    func_position:
      end: 649
      start: 538
    functionDepth: 5
    functionLinenumber: 538
    functionLinenumberEnd: 649
    functionName: main
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached:
    - VRND_RandomTestable
    - VBH_insert
    - VBH_new
    - child
    - chk2
    - VBH_delete
    - VBH_destroy
    - AN
    - VRND_SeedTestable
    - assert
    - ALLOC_OBJ
    - VBH_root
    - CHECK_OBJ
    - VRND_SeedAll
    - FREE_OBJ
    - CHECK_OBJ_NOTNULL
    - VBH_reorder
    - fprintf
    - AZ
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: vbe16dec
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t vbe16dec(const void *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: vbe32dec
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t vbe32dec(const void *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vbe32dec
      Src: /src/VTest2/lib/vend.h:60,1
    - Dst: vbe32dec
      Src: /src/VTest2/lib/vend.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: vbe64dec
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 0
    functionsReached:
    - vbe32dec
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t vbe64dec(const void *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: vle16dec
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t vle16dec(const void *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: vle32dec
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t vle32dec(const void *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vle32dec
      Src: /src/VTest2/lib/vend.h:87,1
    - Dst: vle32dec
      Src: /src/VTest2/lib/vend.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: vle64dec
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 0
    functionsReached:
    - vle32dec
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t vle64dec(const void *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - u
    argTypes:
    - void*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: vbe16enc
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vbe16enc(void *pp, uint16_t u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pp
    - u
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: vbe32enc
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vbe32enc(void *pp, uint32_t u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vbe32enc
      Src: /src/VTest2/lib/vend.h:116,1
    - Dst: vbe32enc
      Src: /src/VTest2/lib/vend.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - u
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: vbe64enc
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 0
    functionsReached:
    - vbe32enc
    linkageType: ''
    returnType: void
    signature: void vbe64enc(void *pp, uint64_t u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - u
    argTypes:
    - void*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: vle16enc
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vle16enc(void *pp, uint16_t u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pp
    - u
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: vle32enc
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vle32enc(void *pp, uint32_t u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vle32enc
      Src: /src/VTest2/lib/vend.h:146,1
    - Dst: vle32enc
      Src: /src/VTest2/lib/vend.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - u
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: vle64enc
    functionSourceFile: /src/VTest2/lib/vend.h
    functionUses: 0
    functionsReached:
    - vle32enc
    linkageType: ''
    returnType: void
    signature: void vle64enc(void *pp, uint64_t u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: vct_is
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vct_is(int x, uint16_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: vct_isows
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isows(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: vct_issp
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_issp(x)
  - 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: vct_ishex
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_ishex(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: vct_islws
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_islws(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: vct_isctl
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isctl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: vct_isspace
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isspace(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: vct_isdigit
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: vct_isalpha
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isalpha(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: vct_islower
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_islower(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: vct_isupper
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isupper(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: vct_isalnum
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isalnum(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: vct_isbase64
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isbase64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: vct_issep
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_issep(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: vct_issepctl
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_issepctl(x)
  - 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: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: vct_isident1
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isident1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: vct_isident
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isident(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: vct_isxmlnamestart
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isxmlnamestart(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: vct_isxmlname
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_isxmlname(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: vct_istchar
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_istchar(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: vct_ishdrval
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vct_ishdrval(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vct.h:94,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - p
    - end
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (p <= end)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/VTest2/lib/vct.h
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: vct_iscrlf
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int vct_iscrlf(const char* p, const char* end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vct_iscrlf
      Src: /src/VTest2/lib/vct.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: vct_skipcrlf
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 1
    functionsReached:
    - vct_iscrlf
    linkageType: ''
    returnType: char
    signature: 'char *

      vct_skipcrlf(char* p, const char* end)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: vct_casecmp
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vct_casecmp(const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/lib/vct.h:136,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - a
    - b
    - sz
    argTypes:
    - void*
    - void*
    - ssize_t
    assertStmts:
    - condition: (sz >= 0)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/VTest2/lib/vct.h
    constantsTouched: []
    func_position:
      end: 149
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 149
    functionName: vct_caselencmp
    functionSourceFile: /src/VTest2/lib/vct.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int vct_caselencmp(const void *a, const void *b, ssize_t sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/lib/vlu.c:63,1
    - Dst: malloc
      Src: /src/VTest2/lib/vlu.c:68,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vlu.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - func
    - priv
    - bufsize
    argTypes:
    - vlu_f*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: VLU_New
    functionSourceFile: /src/VTest2/lib/vlu.c
    functionUses: 1
    functionsReached:
    - malloc
    - FREE_OBJ
    - ALLOC_OBJ
    linkageType: ''
    returnType: struct vlu
    signature: 'struct vlu *

      VLU_New(vlu_f *func, void *priv, unsigned bufsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vlu.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct vlu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: VLU_Reset
    functionSourceFile: /src/VTest2/lib/vlu.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void VLU_Reset(struct vlu *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAKE_OBJ_NOTNULL
      Src: /src/VTest2/lib/vlu.c:87,1
    - Dst: free
      Src: /src/VTest2/lib/vlu.c:88,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vlu.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lp
    argTypes:
    - struct vlu**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: VLU_Destroy
    functionSourceFile: /src/VTest2/lib/vlu.c
    functionUses: 1
    functionsReached:
    - FREE_OBJ
    - TAKE_OBJ_NOTNULL
    - free
    linkageType: ''
    returnType: void
    signature: void VLU_Destroy(struct vlu **lp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct vlu*::func
      Src: /src/VTest2/lib/vlu.c:108,1
    - Dst: strchr
      Src: /src/VTest2/lib/vlu.c:113,1
    - Dst: assert
      Src: /src/VTest2/lib/vlu.c:114,1
    - Dst: memmove
      Src: /src/VTest2/lib/vlu.c:116,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct vlu*
    assertStmts:
    - condition: (q != NULL)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/VTest2/lib/vlu.c
    constantsTouched: []
    func_position:
      end: 121
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 121
    functionName: LineUpProcess
    functionSourceFile: /src/VTest2/lib/vlu.c
    functionUses: 0
    functionsReached:
    - memmove
    - struct vlu*::func
    - assert
    - strchr
    linkageType: ''
    returnType: int
    signature: int LineUpProcess(struct vlu *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vlu.c:129,1
    - Dst: assert
      Src: /src/VTest2/lib/vlu.c:130,1
    - Dst: read
      Src: /src/VTest2/lib/vlu.c:132,1
    - Dst: assert
      Src: /src/VTest2/lib/vlu.c:137,1
    - Dst: LineUpProcess
      Src: /src/VTest2/lib/vlu.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - l
    - fd
    argTypes:
    - struct vlu*
    - int
    assertStmts:
    - condition: ((size_t)i <= sz)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/VTest2/lib/vlu.c
    - condition: (l->bufl >= l->bufp)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/VTest2/lib/vlu.c
    constantsTouched: []
    func_position:
      end: 140
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 140
    functionName: VLU_Fd
    functionSourceFile: /src/VTest2/lib/vlu.c
    functionUses: 0
    functionsReached:
    - LineUpProcess
    - read
    - assert
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: int
    signature: int VLU_Fd(struct vlu *l, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VLU_New
      Src: /src/VTest2/lib/vlu.c:148,1
    - Dst: AN
      Src: /src/VTest2/lib/vlu.c:149,1
    - Dst: VLU_Fd
      Src: /src/VTest2/lib/vlu.c:151,1
    - Dst: VLU_Destroy
      Src: /src/VTest2/lib/vlu.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - func
    - priv
    - bufsize
    argTypes:
    - int
    - vlu_f*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 155
    functionName: VLU_File
    functionSourceFile: /src/VTest2/lib/vlu.c
    functionUses: 1
    functionsReached:
    - VLU_Destroy
    - VLU_New
    - AN
    - VLU_Fd
    linkageType: ''
    returnType: int
    signature: int VLU_File(int fd, vlu_f *func, void *priv, unsigned bufsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vlu.c:163,1
    - Dst: AN
      Src: /src/VTest2/lib/vlu.c:164,1
    - Dst: assert
      Src: /src/VTest2/lib/vlu.c:165,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vlu.c:170,1
    - Dst: LineUpProcess
      Src: /src/VTest2/lib/vlu.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - l
    - ptr
    - len
    argTypes:
    - struct vlu*
    - char*
    - int
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/VTest2/lib/vlu.c
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: VLU_Feed
    functionSourceFile: /src/VTest2/lib/vlu.c
    functionUses: 1
    functionsReached:
    - assert
    - memcpy
    - CHECK_OBJ_NOTNULL
    - LineUpProcess
    - AN
    linkageType: ''
    returnType: int
    signature: int VLU_Feed(struct vlu *l, const char *ptr, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: tv_vtim
    functionSourceFile: /src/VTest2/lib/vtim.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tv_vtim(tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ts
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: ts_vtim
    functionSourceFile: /src/VTest2/lib/vtim.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ts_vtim(ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: VTCP_Assert
    functionSourceFile: /src/VTest2/lib/vtcp.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTCP_Assert(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - UPPER
    - ','
    - lower
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: VSIG_SIGNAL
    functionSourceFile: /src/VTest2/lib/vapi/vsig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSIG_SIGNAL(UPPER, lower)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: WCOREDUMP
    functionSourceFile: /src/VTest2/lib/vapi/vsig.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WCOREDUMP(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: WCOREDUMP
    functionSourceFile: /src/VTest2/lib/vapi/vsig.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WCOREDUMP(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: hash_id
    functionSourceFile: /src/haproxy/tests/exp/ip-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_id( uint32_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: hash_tw1
    functionSourceFile: /src/haproxy/tests/exp/ip-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_tw1(uint32_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: hash_tw2
    functionSourceFile: /src/haproxy/tests/exp/ip-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_tw2(uint32_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: hash_tw3
    functionSourceFile: /src/haproxy/tests/exp/ip-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_tw3(uint32_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: hash_bj6
    functionSourceFile: /src/haproxy/tests/exp/ip-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_bj6(uint32_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: hash_bj7
    functionSourceFile: /src/haproxy/tests/exp/ip-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_bj7(uint32_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hash
    - counts
    argTypes:
    - unsigned long
    - int[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: count_hash_results
    functionSourceFile: /src/haproxy/tests/exp/ip-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void count_hash_results(unsigned long hash, int counts[NSERV][NSERV])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/tests/exp/ip-hash.c:131,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/ip-hash.c:135,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/ip-hash.c:139,1
    - Dst: fabs
      Src: /src/haproxy/tests/exp/ip-hash.c:141,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/ip-hash.c:148,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/ip-hash.c:149,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/ip-hash.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - name
    - counts
    argTypes:
    - char*
    - int[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 152
    functionName: dump_hash_results
    functionSourceFile: /src/haproxy/tests/exp/ip-hash.c
    functionUses: 0
    functionsReached:
    - fabs
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_hash_results(char *name, int counts[NSERV][NSERV])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/tests/exp/ip-hash.c:159,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/ip-hash.c:160,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/ip-hash.c:161,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/ip-hash.c:162,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/ip-hash.c:163,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/ip-hash.c:164,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:179,1
    - Dst: hash_id
      Src: /src/haproxy/tests/exp/ip-hash.c:179,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:180,1
    - Dst: hash_tw1
      Src: /src/haproxy/tests/exp/ip-hash.c:180,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:181,1
    - Dst: hash_tw2
      Src: /src/haproxy/tests/exp/ip-hash.c:181,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:182,1
    - Dst: hash_tw3
      Src: /src/haproxy/tests/exp/ip-hash.c:182,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:183,1
    - Dst: hash_bj6
      Src: /src/haproxy/tests/exp/ip-hash.c:183,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:184,1
    - Dst: hash_bj7
      Src: /src/haproxy/tests/exp/ip-hash.c:184,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:189,1
    - Dst: hash_bj6
      Src: /src/haproxy/tests/exp/ip-hash.c:189,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:190,1
    - Dst: hash_bj7
      Src: /src/haproxy/tests/exp/ip-hash.c:190,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:193,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:194,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:195,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:196,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:197,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:198,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:199,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/ip-hash.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 202
    functionName: main
    functionSourceFile: /src/haproxy/tests/exp/ip-hash.c
    functionUses: 0
    functionsReached:
    - memset
    - hash_id
    - hash_tw2
    - hash_bj6
    - hash_tw3
    - hash_bj7
    - dump_hash_results
    - count_hash_results
    - hash_tw1
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/haproxy/tests/exp/blocksig.c:9,1
    - Dst: sigprocmask
      Src: /src/haproxy/tests/exp/blocksig.c:10,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/blocksig.c:11,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/blocksig.c:12,1
    - Dst: execvp
      Src: /src/haproxy/tests/exp/blocksig.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/haproxy/tests/exp/blocksig.c
    functionUses: 0
    functionsReached:
    - sigprocmask
    - sigfillset
    - printf
    - execvp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_insert
      Src: /src/haproxy/tests/exp/filltab25.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - root
    - s
    argTypes:
    - struct eb_root*
    - struct srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: queue_by_weight
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached:
    - eb32_insert
    linkageType: ''
    returnType: void
    signature: void queue_by_weight(struct eb_root *root, struct srv *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb32_insert
      Src: /src/haproxy/tests/exp/filltab25.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - root
    - s
    argTypes:
    - struct eb_root*
    - struct srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: queue_by_weight_0
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached:
    - eb32_insert
    linkageType: ''
    returnType: void
    signature: void queue_by_weight_0(struct eb_root *root, struct srv *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_delete
      Src: /src/haproxy/tests/exp/filltab25.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: dequeue_srv
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached:
    - eb32_delete
    linkageType: ''
    returnType: void
    signature: void dequeue_srv(struct srv *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_by_weight_0
      Src: /src/haproxy/tests/exp/filltab25.c:64,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:82,1
    - Dst: eb32_insert
      Src: /src/haproxy/tests/exp/filltab25.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 86
    functionName: put_srv
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached:
    - queue_by_weight_0
    - eb32_insert
    - printf
    linkageType: ''
    returnType: void
    signature: void put_srv(struct srv *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: get_srv_init
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_srv_init(struct srv *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: get_srv_next
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_srv_next(struct srv *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: get_srv_down
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_srv_down(struct srv *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_srv_init
      Src: /src/haproxy/tests/exp/filltab25.c:106,1
    - Dst: get_srv_next
      Src: /src/haproxy/tests/exp/filltab25.c:109,1
    - Dst: get_srv_down
      Src: /src/haproxy/tests/exp/filltab25.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: get_srv
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached:
    - get_srv_next
    - get_srv_init
    - get_srv_down
    linkageType: ''
    returnType: void
    signature: void get_srv(struct srv *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eb32_first
      Src: /src/haproxy/tests/exp/filltab25.c:124,1
    - Dst: eb32_entry
      Src: /src/haproxy/tests/exp/filltab25.c:125,1
    - Dst: eb32_first
      Src: /src/haproxy/tests/exp/filltab25.c:130,1
    - Dst: eb32_entry
      Src: /src/haproxy/tests/exp/filltab25.c:133,1
    - Dst: get_srv_init
      Src: /src/haproxy/tests/exp/filltab25.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 144
    functionName: get_next_server
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached:
    - eb32_entry
    - eb32_first
    - get_srv_init
    linkageType: ''
    returnType: struct srv
    signature: struct srv *get_next_server()
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct srv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: update_position
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_position(struct srv *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 183
    functionName: switch_trees
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void switch_trees()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/haproxy/tests/exp/filltab25.c:195,1
    - Dst: calloc
      Src: /src/haproxy/tests/exp/filltab25.c:197,1
    - Dst: atol
      Src: /src/haproxy/tests/exp/filltab25.c:203,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:216,1
    - Dst: queue_by_weight_0
      Src: /src/haproxy/tests/exp/filltab25.c:219,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:220,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:222,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:229,1
    - Dst: get_next_server
      Src: /src/haproxy/tests/exp/filltab25.c:248,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:250,1
    - Dst: switch_trees
      Src: /src/haproxy/tests/exp/filltab25.c:251,1
    - Dst: get_next_server
      Src: /src/haproxy/tests/exp/filltab25.c:252,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:253,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:259,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:265,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:267,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:269,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:272,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:274,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:276,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:278,1
    - Dst: update_position
      Src: /src/haproxy/tests/exp/filltab25.c:281,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:282,1
    - Dst: dequeue_srv
      Src: /src/haproxy/tests/exp/filltab25.c:285,1
    - Dst: put_srv
      Src: /src/haproxy/tests/exp/filltab25.c:287,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:288,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:291,1
    - Dst: dequeue_srv
      Src: /src/haproxy/tests/exp/filltab25.c:306,1
    - Dst: put_srv
      Src: /src/haproxy/tests/exp/filltab25.c:307,1
    - Dst: random
      Src: /src/haproxy/tests/exp/filltab25.c:315,1
    - Dst: random
      Src: /src/haproxy/tests/exp/filltab25.c:316,1
    - Dst: random
      Src: /src/haproxy/tests/exp/filltab25.c:317,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:324,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:325,1
    - Dst: dequeue_srv
      Src: /src/haproxy/tests/exp/filltab25.c:327,1
    - Dst: queue_by_weight_0
      Src: /src/haproxy/tests/exp/filltab25.c:328,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:331,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:332,1
    - Dst: dequeue_srv
      Src: /src/haproxy/tests/exp/filltab25.c:334,1
    - Dst: get_srv
      Src: /src/haproxy/tests/exp/filltab25.c:336,1
    - Dst: put_srv
      Src: /src/haproxy/tests/exp/filltab25.c:338,1
    - Dst: get_srv
      Src: /src/haproxy/tests/exp/filltab25.c:344,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:345,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:361,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:366,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:369,1
    - Dst: dequeue_srv
      Src: /src/haproxy/tests/exp/filltab25.c:376,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:377,1
    - Dst: put_srv
      Src: /src/haproxy/tests/exp/filltab25.c:378,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:382,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/filltab25.c:385,1
    - Dst: dequeue_srv
      Src: /src/haproxy/tests/exp/filltab25.c:392,1
    - Dst: queue_by_weight_0
      Src: /src/haproxy/tests/exp/filltab25.c:393,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 132
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 398
    functionName: main
    functionSourceFile: /src/haproxy/tests/exp/filltab25.c
    functionUses: 0
    functionsReached:
    - random
    - exit
    - dequeue_srv
    - calloc
    - atol
    - get_srv
    - printf
    - queue_by_weight_0
    - update_position
    - switch_trees
    - get_next_server
    - put_srv
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/haproxy/tests/exp/test_hashes.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: timeval_current
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval timeval_current(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timeval_current
      Src: /src/haproxy/tests/exp/test_hashes.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: timeval_elapsed
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached:
    - timeval_current
    linkageType: ''
    returnType: double
    signature: double timeval_elapsed(struct timeval *tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - uri
    - uri_len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: haproxy_uri_hash
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long haproxy_uri_hash(char *uri, int uri_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: sax_hash
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned sax_hash ( void *key, int len )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/tests/exp/test_hashes.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - addr
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: haproxy_server_hash
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int haproxy_server_hash(const char *addr, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 104
    functionName: hashpjw
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hashpjw(const void *key)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - key
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 135
    functionName: hash_djbx33
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long hash_djbx33(\n    register unsigned char *key,\n    register
      size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - key
    - len
    - level
    argTypes:
    - ub1*
    - ub4
    - ub4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: bernstein
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ub4
    signature: ub4 bernstein(ub1 *key, ub4 len, ub4 level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: get16bits
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get16bits(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: get16bits
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get16bits(d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/test_hashes.c:172,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/test_hashes.c:173,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/test_hashes.c:181,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/test_hashes.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 204
    functionName: SuperFastHash
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached:
    - get16bits
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SuperFastHash (const char * data, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/test_hashes.c:221,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/test_hashes.c:222,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/test_hashes.c:231,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/test_hashes.c:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 254
    functionName: SuperFastHash2
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached:
    - get16bits
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SuperFastHash2 (const char * data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str
    - hval
    argTypes:
    - char*
    - Fnv32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 302
    functionName: fnv_32a_str
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fnv32_t
    signature: Fnv32_t fnv_32a_str(char *str, Fnv32_t hval)
  - 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: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: rot
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.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: 363
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 363
    functionName: mix
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.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: 399
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: final
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: final(a,b,c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mix
      Src: /src/haproxy/tests/exp/test_hashes.c:429,1
    - Dst: final
      Src: /src/haproxy/tests/exp/test_hashes.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - k
    - length
    - initval
    argTypes:
    - uint32_t*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 446
    functionName: hashword
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached:
    - mix
    - final
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t hashword(

      const uint32_t *k,                   /* the key, an array of uint32_t values
      */

      size_t          length,               /* the length of the key, in uint32_ts
      */

      uint32_t        initval)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 459
    functionName: kr_hash
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned kr_hash(char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 471
    functionName: fnv_hash
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned fnv_hash ( void *key, int len )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - key
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 490
    functionName: oat_hash
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned oat_hash ( void *key, int len )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - key
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 507
    functionName: wt_hash
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned wt_hash ( void *key, int len )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fct
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 528
    functionName: run_test
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: run_test(fct, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/tests/exp/test_hashes.c:540,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:542,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:543,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:544,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:545,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:546,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:547,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:548,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:549,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:550,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:551,1
    - Dst: strlen
      Src: /src/haproxy/tests/exp/test_hashes.c:551,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:552,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:553,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:554,1
    - Dst: run_test
      Src: /src/haproxy/tests/exp/test_hashes.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 559
    functionName: main
    functionSourceFile: /src/haproxy/tests/exp/test_hashes.c
    functionUses: 0
    functionsReached:
    - run_test
    - strlen
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/tests/exp/testinet.c:24,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/testinet.c:25,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/testinet.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: main
    functionSourceFile: /src/haproxy/tests/exp/testinet.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 20
    functionName: hash_gd1
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hash_gd1(char *uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: hash_gd2
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hash_gd2(char *uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: hash_gd3
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hash_gd3(char *uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: hash_gd4
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hash_gd4(char *uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: hash_gd5
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hash_gd5(char *uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: hash_gd6
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hash_gd6(char *uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - hsize
    - string
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 125
    functionName: hash_wt1
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hash_wt1(int hsize, char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - i
    - count
    argTypes:
    - u_int32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: shl32
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t shl32(u_int32_t i, int count)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - i
    - count
    argTypes:
    - u_int32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: shr32
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t shr32(u_int32_t i, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: rev32
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rev32(unsigned int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rev32
      Src: /src/haproxy/tests/exp/uri_hash.c:165,1
    - Dst: shr32
      Src: /src/haproxy/tests/exp/uri_hash.c:169,1
    - Dst: shl32
      Src: /src/haproxy/tests/exp/uri_hash.c:170,1
    - Dst: shl32
      Src: /src/haproxy/tests/exp/uri_hash.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - src
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 174
    functionName: hash_wt2
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached:
    - shr32
    - shl32
    - rev32
    linkageType: ''
    returnType: int
    signature: int hash_wt2(const char *src, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: get16bits
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get16bits(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: get16bits
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get16bits(d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/uri_hash.c:212,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/uri_hash.c:213,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/uri_hash.c:221,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/uri_hash.c:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 244
    functionName: SuperFastHash
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached:
    - get16bits
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SuperFastHash (const char * data, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/uri_hash.c:262,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/uri_hash.c:263,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/uri_hash.c:272,1
    - Dst: get16bits
      Src: /src/haproxy/tests/exp/uri_hash.c:277,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 295
    functionName: SuperFastHash2
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached:
    - get16bits
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SuperFastHash2 (const char * data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/tests/exp/uri_hash.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - addr
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: haproxy_server_hash
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int haproxy_server_hash(const char *addr, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hash
    - counts
    argTypes:
    - unsigned long
    - int[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: count_hash_results
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void count_hash_results(unsigned long hash, int counts[NSERV][NSERV])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/tests/exp/uri_hash.c:324,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/uri_hash.c:326,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/uri_hash.c:330,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/uri_hash.c:332,1
    - Dst: printf
      Src: /src/haproxy/tests/exp/uri_hash.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - counts
    argTypes:
    - char*
    - int[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: dump_hash_results
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_hash_results(char *name, int counts[NSERV][NSERV])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/tests/exp/uri_hash.c:338,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/uri_hash.c:339,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/uri_hash.c:340,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/uri_hash.c:341,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/uri_hash.c:342,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/uri_hash.c:343,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/uri_hash.c:344,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/uri_hash.c:345,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/uri_hash.c:346,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/uri_hash.c:347,1
    - Dst: memset
      Src: /src/haproxy/tests/exp/uri_hash.c:348,1
    - Dst: fgets
      Src: /src/haproxy/tests/exp/uri_hash.c:350,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:351,1
    - Dst: hash_gd1
      Src: /src/haproxy/tests/exp/uri_hash.c:351,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:352,1
    - Dst: hash_gd2
      Src: /src/haproxy/tests/exp/uri_hash.c:352,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:353,1
    - Dst: hash_gd3
      Src: /src/haproxy/tests/exp/uri_hash.c:353,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:354,1
    - Dst: hash_gd4
      Src: /src/haproxy/tests/exp/uri_hash.c:354,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:355,1
    - Dst: hash_gd5
      Src: /src/haproxy/tests/exp/uri_hash.c:355,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:356,1
    - Dst: hash_gd6
      Src: /src/haproxy/tests/exp/uri_hash.c:356,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:357,1
    - Dst: hash_wt1
      Src: /src/haproxy/tests/exp/uri_hash.c:357,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:358,1
    - Dst: hash_wt2
      Src: /src/haproxy/tests/exp/uri_hash.c:358,1
    - Dst: strlen
      Src: /src/haproxy/tests/exp/uri_hash.c:358,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:359,1
    - Dst: haproxy_server_hash
      Src: /src/haproxy/tests/exp/uri_hash.c:359,1
    - Dst: strlen
      Src: /src/haproxy/tests/exp/uri_hash.c:359,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:360,1
    - Dst: SuperFastHash
      Src: /src/haproxy/tests/exp/uri_hash.c:360,1
    - Dst: strlen
      Src: /src/haproxy/tests/exp/uri_hash.c:360,1
    - Dst: count_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:361,1
    - Dst: SuperFastHash2
      Src: /src/haproxy/tests/exp/uri_hash.c:361,1
    - Dst: strlen
      Src: /src/haproxy/tests/exp/uri_hash.c:361,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:364,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:365,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:366,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:367,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:368,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:369,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:370,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:371,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:372,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:373,1
    - Dst: dump_hash_results
      Src: /src/haproxy/tests/exp/uri_hash.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 377
    functionName: main
    functionSourceFile: /src/haproxy/tests/exp/uri_hash.c
    functionUses: 0
    functionsReached:
    - hash_gd6
    - memset
    - hash_wt1
    - hash_wt2
    - hash_gd3
    - haproxy_server_hash
    - SuperFastHash2
    - hash_gd5
    - strlen
    - hash_gd2
    - SuperFastHash
    - dump_hash_results
    - count_hash_results
    - hash_gd1
    - fgets
    - hash_gd4
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: rnd32
    functionSourceFile: /src/haproxy/tests/unit/test-list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rnd32()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rnd32
      Src: /src/haproxy/tests/unit/test-list.c:45,1
    - Dst: malloc
      Src: /src/haproxy/tests/unit/test-list.c:47,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/tests/unit/test-list.c:48,1
    - Dst: MT_LIST_TRY_INSERT
      Src: /src/haproxy/tests/unit/test-list.c:49,1
    - Dst: malloc
      Src: /src/haproxy/tests/unit/test-list.c:52,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/tests/unit/test-list.c:53,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/tests/unit/test-list.c:54,1
    - Dst: MT_LIST_POP
      Src: /src/haproxy/tests/unit/test-list.c:58,1
    - Dst: free
      Src: /src/haproxy/tests/unit/test-list.c:60,1
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/tests/unit/test-list.c:63,1
    - Dst: rnd32
      Src: /src/haproxy/tests/unit/test-list.c:64,1
    - Dst: free
      Src: /src/haproxy/tests/unit/test-list.c:65,1
    - Dst: rnd32
      Src: /src/haproxy/tests/unit/test-list.c:68,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-list.c:77,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - pouet
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 80
    functionName: thread
    functionSourceFile: /src/haproxy/tests/unit/test-list.c
    functionUses: 1
    functionsReached:
    - malloc
    - MT_LIST_POP
    - printf
    - MT_LIST_INIT
    - free
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - rnd32
    - MT_LIST_TRY_APPEND
    - MT_LIST_TRY_INSERT
    linkageType: ''
    returnType: void
    signature: void *thread(void *pouet)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: srandom
      Src: /src/haproxy/tests/unit/test-list.c:87,1
    - Dst: time
      Src: /src/haproxy/tests/unit/test-list.c:87,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-list.c:89,1
    - Dst: exit
      Src: /src/haproxy/tests/unit/test-list.c:90,1
    - Dst: atoi
      Src: /src/haproxy/tests/unit/test-list.c:92,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-list.c:95,1
    - Dst: exit
      Src: /src/haproxy/tests/unit/test-list.c:96,1
    - Dst: malloc
      Src: /src/haproxy/tests/unit/test-list.c:99,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-list.c:101,1
    - Dst: exit
      Src: /src/haproxy/tests/unit/test-list.c:102,1
    - Dst: pthread_create
      Src: /src/haproxy/tests/unit/test-list.c:105,1
    - Dst: pthread_join
      Src: /src/haproxy/tests/unit/test-list.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 111
    functionName: main
    functionSourceFile: /src/haproxy/tests/unit/test-list.c
    functionUses: 0
    functionsReached:
    - malloc
    - pthread_create
    - exit
    - time
    - pthread_join
    - printf
    - atoi
    - srandom
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: f_ist
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    linkageType: ''
    returnType: struct ist
    signature: struct ist f_ist(const void *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:23,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:25,1
    - Dst: strncmp
      Src: /src/haproxy/tests/unit/ist.c:27,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: test_ist
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - strncmp
    linkageType: ''
    returnType: int
    signature: int test_ist()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/tests/unit/ist.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: f_ist2
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist f_ist2(const void *ptr, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/tests/unit/ist.c:35,1
    - Dst: ist2
      Src: /src/haproxy/tests/unit/ist.c:37,1
    - Dst: strncmp
      Src: /src/haproxy/tests/unit/ist.c:39,1
    - Dst: ist2
      Src: /src/haproxy/tests/unit/ist.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: test_ist2
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist2
    - strncmp
    linkageType: ''
    returnType: int
    signature: int test_ist2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/tests/unit/ist.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: f_istlen
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istlen
    linkageType: ''
    returnType: size_t
    signature: size_t f_istlen(struct ist ist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/tests/unit/ist.c:47,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:47,1
    - Dst: istlen
      Src: /src/haproxy/tests/unit/ist.c:49,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:49,1
    - Dst: istlen
      Src: /src/haproxy/tests/unit/ist.c:51,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: test_istlen
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istlen
    linkageType: ''
    returnType: int
    signature: int test_istlen()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istnext
      Src: /src/haproxy/tests/unit/ist.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: f_istnext
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istnext
    linkageType: ''
    returnType: struct ist
    signature: struct ist f_istnext(struct ist ist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/tests/unit/ist.c:59,1
    - Dst: istnext
      Src: /src/haproxy/tests/unit/ist.c:59,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:59,1
    - Dst: strncmp
      Src: /src/haproxy/tests/unit/ist.c:61,1
    - Dst: istnext
      Src: /src/haproxy/tests/unit/ist.c:61,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:61,1
    - Dst: istnext
      Src: /src/haproxy/tests/unit/ist.c:63,1
    - Dst: istnext
      Src: /src/haproxy/tests/unit/ist.c:63,1
    - Dst: istnext
      Src: /src/haproxy/tests/unit/ist.c:63,1
    - Dst: istnext
      Src: /src/haproxy/tests/unit/ist.c:63,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: test_istnext
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istlen
    - istnext
    - strncmp
    linkageType: ''
    returnType: int
    signature: int test_istnext()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istpad
      Src: /src/haproxy/tests/unit/ist.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - ist
    argTypes:
    - void*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: f_istpad
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istpad
    linkageType: ''
    returnType: struct ist
    signature: struct ist f_istpad(void *buf, const struct ist ist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/tests/unit/ist.c:73,1
    - Dst: istpad
      Src: /src/haproxy/tests/unit/ist.c:73,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:73,1
    - Dst: strncmp
      Src: /src/haproxy/tests/unit/ist.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: test_istpad
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istpad
    - strncmp
    linkageType: ''
    returnType: int
    signature: int test_istpad()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isttrim
      Src: /src/haproxy/tests/unit/ist.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ist
    - size
    argTypes:
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: f_isttrim
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - isttrim
    linkageType: ''
    returnType: struct ist
    signature: struct ist f_isttrim(struct ist ist, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isttrim
      Src: /src/haproxy/tests/unit/ist.c:85,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:85,1
    - Dst: isttrim
      Src: /src/haproxy/tests/unit/ist.c:88,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:88,1
    - Dst: strncmp
      Src: /src/haproxy/tests/unit/ist.c:91,1
    - Dst: isttrim
      Src: /src/haproxy/tests/unit/ist.c:91,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:91,1
    - Dst: isttrim
      Src: /src/haproxy/tests/unit/ist.c:94,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:94,1
    - Dst: isttrim
      Src: /src/haproxy/tests/unit/ist.c:97,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:97,1
    - Dst: strncmp
      Src: /src/haproxy/tests/unit/ist.c:100,1
    - Dst: isttrim
      Src: /src/haproxy/tests/unit/ist.c:100,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 104
    functionName: test_isttrim
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - isttrim
    - strncmp
    linkageType: ''
    returnType: int
    signature: int test_isttrim()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istzero
      Src: /src/haproxy/tests/unit/ist.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ist
    - size
    argTypes:
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: f_istzero
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istzero
    linkageType: ''
    returnType: struct ist
    signature: struct ist f_istzero(struct ist ist, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: istzero
      Src: /src/haproxy/tests/unit/ist.c:111,1
    - Dst: ist2
      Src: /src/haproxy/tests/unit/ist.c:111,1
    - Dst: istzero
      Src: /src/haproxy/tests/unit/ist.c:114,1
    - Dst: ist2
      Src: /src/haproxy/tests/unit/ist.c:114,1
    - Dst: istzero
      Src: /src/haproxy/tests/unit/ist.c:117,1
    - Dst: ist2
      Src: /src/haproxy/tests/unit/ist.c:117,1
    - Dst: istzero
      Src: /src/haproxy/tests/unit/ist.c:123,1
    - Dst: ist2
      Src: /src/haproxy/tests/unit/ist.c:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 130
    functionName: test_istzero
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist2
    - istzero
    linkageType: ''
    returnType: int
    signature: int test_istzero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iststrip
      Src: /src/haproxy/tests/unit/ist.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: f_iststrip
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - iststrip
    linkageType: ''
    returnType: struct ist
    signature: struct ist f_iststrip(struct ist ist)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: iststrip
      Src: /src/haproxy/tests/unit/ist.c:135,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:135,1
    - Dst: iststrip
      Src: /src/haproxy/tests/unit/ist.c:138,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:138,1
    - Dst: iststrip
      Src: /src/haproxy/tests/unit/ist.c:141,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:141,1
    - Dst: iststrip
      Src: /src/haproxy/tests/unit/ist.c:144,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:144,1
    - Dst: iststrip
      Src: /src/haproxy/tests/unit/ist.c:147,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:147,1
    - Dst: iststrip
      Src: /src/haproxy/tests/unit/ist.c:150,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 154
    functionName: test_iststrip
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - iststrip
    linkageType: ''
    returnType: int
    signature: int test_iststrip()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istdiff
      Src: /src/haproxy/tests/unit/ist.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ist1
    - ist2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: f_istdiff
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istdiff
    linkageType: ''
    returnType: int
    signature: int f_istdiff(const struct ist ist1, const struct ist ist2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: istdiff
      Src: /src/haproxy/tests/unit/ist.c:159,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:159,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:159,1
    - Dst: istdiff
      Src: /src/haproxy/tests/unit/ist.c:162,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:162,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:162,1
    - Dst: istdiff
      Src: /src/haproxy/tests/unit/ist.c:165,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:165,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:165,1
    - Dst: istdiff
      Src: /src/haproxy/tests/unit/ist.c:168,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:168,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:168,1
    - Dst: istdiff
      Src: /src/haproxy/tests/unit/ist.c:171,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:171,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:171,1
    - Dst: istdiff
      Src: /src/haproxy/tests/unit/ist.c:174,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:174,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:174,1
    - Dst: istdiff
      Src: /src/haproxy/tests/unit/ist.c:177,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:177,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:177,1
    - Dst: istdiff
      Src: /src/haproxy/tests/unit/ist.c:180,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:180,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:180,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 184
    functionName: test_istdiff
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istdiff
    - ist
    linkageType: ''
    returnType: int
    signature: int test_istdiff()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ist1
    - ist2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: f_istmatch
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istmatch
    linkageType: ''
    returnType: int
    signature: int f_istmatch(const struct ist ist1, const struct ist ist2)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:189,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:189,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:189,1
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:192,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:192,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:192,1
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:195,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:195,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:195,1
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:198,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:198,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:198,1
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:201,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:201,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:201,1
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:204,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:204,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:204,1
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:207,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:207,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:207,1
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:210,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:210,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:210,1
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:213,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:213,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:213,1
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:216,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:216,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:216,1
    - Dst: istmatch
      Src: /src/haproxy/tests/unit/ist.c:219,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:219,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:219,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 223
    functionName: test_istmatch
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istmatch
    linkageType: ''
    returnType: int
    signature: int test_istmatch()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ist1
    - ist2
    - count
    argTypes:
    - struct ist
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: f_istnmatch
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istnmatch
    linkageType: ''
    returnType: int
    signature: int f_istnmatch(struct ist ist1, struct ist ist2, size_t count)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:228,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:228,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:228,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:231,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:231,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:231,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:234,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:234,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:234,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:237,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:237,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:237,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:240,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:240,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:240,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:243,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:243,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:243,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:246,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:246,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:246,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:249,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:249,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:249,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:252,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:252,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:252,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:255,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:255,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:255,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:258,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:258,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:258,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:261,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:261,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:261,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:264,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:264,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:264,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:267,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:267,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:267,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:270,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:270,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:270,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:273,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:273,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:273,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:276,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:276,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:276,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:279,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:279,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:279,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:282,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:282,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:282,1
    - Dst: istnmatch
      Src: /src/haproxy/tests/unit/ist.c:285,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:285,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:285,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 289
    functionName: test_istnmatch
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istnmatch
    linkageType: ''
    returnType: int
    signature: int test_istnmatch()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ist1
    - ist2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: f_isteq
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - isteq
    linkageType: ''
    returnType: int
    signature: int f_isteq(const struct ist ist1, const struct ist ist2)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:294,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:294,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:294,1
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:297,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:297,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:297,1
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:300,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:300,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:300,1
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:303,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:303,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:303,1
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:306,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:306,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:306,1
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:309,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:309,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:309,1
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:312,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:312,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:312,1
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:315,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:315,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:315,1
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:318,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:318,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:318,1
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:321,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:321,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:321,1
    - Dst: isteq
      Src: /src/haproxy/tests/unit/ist.c:324,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:324,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:324,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 328
    functionName: test_isteq
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - isteq
    linkageType: ''
    returnType: int
    signature: int test_isteq()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ist1
    - ist2
    - count
    argTypes:
    - struct ist
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 330
    functionName: f_istneq
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istneq
    linkageType: ''
    returnType: int
    signature: int f_istneq(struct ist ist1, struct ist ist2, size_t count)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:333,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:333,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:333,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:336,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:336,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:336,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:339,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:339,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:339,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:342,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:342,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:342,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:345,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:345,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:345,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:348,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:348,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:348,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:351,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:351,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:351,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:354,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:354,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:354,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:357,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:357,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:357,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:360,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:360,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:360,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:363,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:363,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:363,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:366,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:366,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:366,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:369,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:369,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:369,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:372,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:372,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:372,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:375,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:375,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:375,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:378,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:378,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:378,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:381,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:381,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:381,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:384,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:384,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:384,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:387,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:387,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:387,1
    - Dst: istneq
      Src: /src/haproxy/tests/unit/ist.c:390,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:390,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:390,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 394
    functionName: test_istneq
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istneq
    linkageType: ''
    returnType: int
    signature: int test_istneq()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istcpy
      Src: /src/haproxy/tests/unit/ist.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - src
    - count
    argTypes:
    - struct ist*
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 396
    functionName: f_istcpy
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t f_istcpy(struct ist *dst, const struct ist src, size_t count)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:400,1
    - Dst: istcpy
      Src: /src/haproxy/tests/unit/ist.c:402,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:402,1
    - Dst: strcmp
      Src: /src/haproxy/tests/unit/ist.c:408,1
    - Dst: istcpy
      Src: /src/haproxy/tests/unit/ist.c:411,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:411,1
    - Dst: strcmp
      Src: /src/haproxy/tests/unit/ist.c:414,1
    - Dst: istcpy
      Src: /src/haproxy/tests/unit/ist.c:417,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:417,1
    - Dst: strcmp
      Src: /src/haproxy/tests/unit/ist.c:420,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 424
    functionName: test_istcpy
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istcpy
    - strcmp
    linkageType: ''
    returnType: int
    signature: int test_istcpy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istscpy
      Src: /src/haproxy/tests/unit/ist.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - src
    - count
    argTypes:
    - struct ist*
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 426
    functionName: f_istscpy
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istscpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t f_istscpy(struct ist *dst, const struct ist src, size_t count)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:430,1
    - Dst: istscpy
      Src: /src/haproxy/tests/unit/ist.c:432,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:432,1
    - Dst: memcmp
      Src: /src/haproxy/tests/unit/ist.c:438,1
    - Dst: istscpy
      Src: /src/haproxy/tests/unit/ist.c:441,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:441,1
    - Dst: memcmp
      Src: /src/haproxy/tests/unit/ist.c:444,1
    - Dst: istscpy
      Src: /src/haproxy/tests/unit/ist.c:447,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:447,1
    - Dst: istscpy
      Src: /src/haproxy/tests/unit/ist.c:450,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:450,1
    - Dst: memcmp
      Src: /src/haproxy/tests/unit/ist.c:453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 457
    functionName: test_istscpy
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istscpy
    - memcmp
    linkageType: ''
    returnType: int
    signature: int test_istscpy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istcat
      Src: /src/haproxy/tests/unit/ist.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - src
    - count
    argTypes:
    - struct ist*
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 459
    functionName: f_istcat
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istcat
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t f_istcat(struct ist *dst, const struct ist src, size_t count)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:463,1
    - Dst: istcat
      Src: /src/haproxy/tests/unit/ist.c:465,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:465,1
    - Dst: strcmp
      Src: /src/haproxy/tests/unit/ist.c:468,1
    - Dst: istcat
      Src: /src/haproxy/tests/unit/ist.c:471,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:471,1
    - Dst: strncmp
      Src: /src/haproxy/tests/unit/ist.c:477,1
    - Dst: istcat
      Src: /src/haproxy/tests/unit/ist.c:480,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:480,1
    - Dst: strncmp
      Src: /src/haproxy/tests/unit/ist.c:486,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 490
    functionName: test_istcat
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - strcmp
    - istcat
    - strncmp
    linkageType: ''
    returnType: int
    signature: int test_istcat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istscat
      Src: /src/haproxy/tests/unit/ist.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - src
    - count
    argTypes:
    - struct ist*
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 492
    functionName: f_istscat
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istscat
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t f_istscat(struct ist *dst, const struct ist src, size_t count)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:496,1
    - Dst: istscat
      Src: /src/haproxy/tests/unit/ist.c:498,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:498,1
    - Dst: strcmp
      Src: /src/haproxy/tests/unit/ist.c:501,1
    - Dst: istscat
      Src: /src/haproxy/tests/unit/ist.c:504,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:504,1
    - Dst: strncmp
      Src: /src/haproxy/tests/unit/ist.c:510,1
    - Dst: istscat
      Src: /src/haproxy/tests/unit/ist.c:513,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:513,1
    - Dst: strncmp
      Src: /src/haproxy/tests/unit/ist.c:519,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 523
    functionName: test_istscat
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istscat
    - ist
    - strcmp
    - strncmp
    linkageType: ''
    returnType: int
    signature: int test_istscat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istchr
      Src: /src/haproxy/tests/unit/ist.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ist
    - chr
    argTypes:
    - struct ist
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 525
    functionName: f_istchr
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istchr
    linkageType: ''
    returnType: char
    signature: char *f_istchr(const struct ist ist, char chr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:528,1
    - Dst: istchr
      Src: /src/haproxy/tests/unit/ist.c:530,1
    - Dst: istchr
      Src: /src/haproxy/tests/unit/ist.c:533,1
    - Dst: istchr
      Src: /src/haproxy/tests/unit/ist.c:536,1
    - Dst: istchr
      Src: /src/haproxy/tests/unit/ist.c:539,1
    - Dst: istchr
      Src: /src/haproxy/tests/unit/ist.c:542,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 546
    functionName: test_istchr
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istchr
    linkageType: ''
    returnType: int
    signature: int test_istchr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istfind
      Src: /src/haproxy/tests/unit/ist.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ist
    - chr
    argTypes:
    - struct ist
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 548
    functionName: f_istfind
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istfind
    linkageType: ''
    returnType: struct ist
    signature: struct ist f_istfind(struct ist ist, char chr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:551,1
    - Dst: istfind
      Src: /src/haproxy/tests/unit/ist.c:553,1
    - Dst: istfind
      Src: /src/haproxy/tests/unit/ist.c:556,1
    - Dst: istfind
      Src: /src/haproxy/tests/unit/ist.c:559,1
    - Dst: istfind
      Src: /src/haproxy/tests/unit/ist.c:562,1
    - Dst: istfind
      Src: /src/haproxy/tests/unit/ist.c:565,1
    - Dst: istfind
      Src: /src/haproxy/tests/unit/ist.c:568,1
    - Dst: istfind
      Src: /src/haproxy/tests/unit/ist.c:571,1
    - Dst: istfind
      Src: /src/haproxy/tests/unit/ist.c:574,1
    - Dst: istfind
      Src: /src/haproxy/tests/unit/ist.c:577,1
    - Dst: istfind
      Src: /src/haproxy/tests/unit/ist.c:580,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 584
    functionName: test_istfind
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istfind
    linkageType: ''
    returnType: int
    signature: int test_istfind()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ist
    - chr
    argTypes:
    - struct ist
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 586
    functionName: f_istskip
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istskip
    linkageType: ''
    returnType: struct ist
    signature: struct ist f_istskip(struct ist ist, char chr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:589,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:590,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:592,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:595,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:598,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:601,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:604,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:607,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:610,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:613,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:616,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:619,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:622,1
    - Dst: istskip
      Src: /src/haproxy/tests/unit/ist.c:625,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 629
    functionName: test_istskip
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istskip
    linkageType: ''
    returnType: int
    signature: int test_istskip()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ist
    - pat
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 631
    functionName: f_istist
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - istist
    linkageType: ''
    returnType: struct ist
    signature: struct ist f_istist(struct ist ist, const struct ist pat)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:634,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:636,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:636,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:639,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:639,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:642,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:642,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:645,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:645,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:648,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:648,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:651,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:651,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:654,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:654,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:657,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:657,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:660,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:660,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:663,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:663,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:666,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:666,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:669,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:669,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:672,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:672,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:675,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:675,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:678,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:678,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:681,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:681,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:684,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:684,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:687,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:687,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:690,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:690,1
    - Dst: istist
      Src: /src/haproxy/tests/unit/ist.c:693,1
    - Dst: ist
      Src: /src/haproxy/tests/unit/ist.c:693,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 697
    functionName: test_istist
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - ist
    - istist
    linkageType: ''
    returnType: int
    signature: int test_istist()
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: test_ist
      Src: /src/haproxy/tests/unit/ist.c:705,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:705,1
    - Dst: test_ist2
      Src: /src/haproxy/tests/unit/ist.c:706,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:706,1
    - Dst: test_istlen
      Src: /src/haproxy/tests/unit/ist.c:707,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:707,1
    - Dst: test_istnext
      Src: /src/haproxy/tests/unit/ist.c:708,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:708,1
    - Dst: test_istpad
      Src: /src/haproxy/tests/unit/ist.c:709,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:709,1
    - Dst: test_isttrim
      Src: /src/haproxy/tests/unit/ist.c:710,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:710,1
    - Dst: test_istzero
      Src: /src/haproxy/tests/unit/ist.c:711,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:711,1
    - Dst: test_iststrip
      Src: /src/haproxy/tests/unit/ist.c:712,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:712,1
    - Dst: test_istdiff
      Src: /src/haproxy/tests/unit/ist.c:713,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:713,1
    - Dst: test_istmatch
      Src: /src/haproxy/tests/unit/ist.c:714,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:714,1
    - Dst: test_istnmatch
      Src: /src/haproxy/tests/unit/ist.c:715,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:715,1
    - Dst: test_isteq
      Src: /src/haproxy/tests/unit/ist.c:716,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:716,1
    - Dst: test_istneq
      Src: /src/haproxy/tests/unit/ist.c:717,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:717,1
    - Dst: test_istcpy
      Src: /src/haproxy/tests/unit/ist.c:718,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:718,1
    - Dst: test_istscpy
      Src: /src/haproxy/tests/unit/ist.c:719,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:719,1
    - Dst: test_istcat
      Src: /src/haproxy/tests/unit/ist.c:720,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:720,1
    - Dst: test_istscat
      Src: /src/haproxy/tests/unit/ist.c:721,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:721,1
    - Dst: test_istchr
      Src: /src/haproxy/tests/unit/ist.c:722,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:722,1
    - Dst: test_istfind
      Src: /src/haproxy/tests/unit/ist.c:723,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:723,1
    - Dst: test_istskip
      Src: /src/haproxy/tests/unit/ist.c:724,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:724,1
    - Dst: test_istist
      Src: /src/haproxy/tests/unit/ist.c:725,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/ist.c:725,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 728
    functionName: main
    functionSourceFile: /src/haproxy/tests/unit/ist.c
    functionUses: 0
    functionsReached:
    - test_istcat
    - printf
    - test_isteq
    - test_istlen
    - test_isttrim
    - test_istnmatch
    - test_istscpy
    - test_iststrip
    - test_istdiff
    - test_istchr
    - test_istfind
    - test_istpad
    - test_istmatch
    - test_istzero
    - test_ist2
    - test_istskip
    - test_istcpy
    - test_istist
    - test_istneq
    - test_istnext
    - test_ist
    - test_istscat
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-arg.c:14,1
    - Dst: ARG7
      Src: /src/haproxy/tests/unit/test-arg.c:20,1
    - Dst: atoll
      Src: /src/haproxy/tests/unit/test-arg.c:22,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-arg.c:24,1
    - Dst: make_arg_list
      Src: /src/haproxy/tests/unit/test-arg.c:25,1
    - Dst: strlen
      Src: /src/haproxy/tests/unit/test-arg.c:25,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-arg.c:28,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-arg.c:30,1
    - Dst: free
      Src: /src/haproxy/tests/unit/test-arg.c:30,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-arg.c:31,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-arg.c:32,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-arg.c:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 44
    functionName: main
    functionSourceFile: /src/haproxy/tests/unit/test-arg.c
    functionUses: 0
    functionsReached:
    - make_arg_list
    - ARG7
    - atoll
    - printf
    - free
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 20
    functionName: statistical_prng
    functionSourceFile: /src/haproxy/tests/unit/test-1-among.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long statistical_prng()
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - v
    - bit
    argTypes:
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 72
    functionName: one_among
    functionSourceFile: /src/haproxy/tests/unit/test-1-among.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int one_among(unsigned long v, int bit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: statistical_prng
      Src: /src/haproxy/tests/unit/test-1-among.c:84,1
    - Dst: statistical_prng
      Src: /src/haproxy/tests/unit/test-1-among.c:85,1
    - Dst: one_among
      Src: /src/haproxy/tests/unit/test-1-among.c:86,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-1-among.c:88,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-1-among.c:90,1
    - Dst: atol
      Src: /src/haproxy/tests/unit/test-1-among.c:95,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-1-among.c:99,1
    - Dst: one_among
      Src: /src/haproxy/tests/unit/test-1-among.c:99,1
    - Dst: atoi
      Src: /src/haproxy/tests/unit/test-1-among.c:101,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-1-among.c:102,1
    - Dst: one_among
      Src: /src/haproxy/tests/unit/test-1-among.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 105
    functionName: main
    functionSourceFile: /src/haproxy/tests/unit/test-1-among.c
    functionUses: 0
    functionsReached:
    - atol
    - printf
    - one_among
    - statistical_prng
    - atoi
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - min8
    - max8
    argTypes:
    - uint32_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 13
    functionName: is_char4_outside
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t is_char4_outside(uint32_t x, uint8_t min8, uint8_t max8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_char4_outside
      Src: /src/haproxy/tests/unit/test-int-range.c:19,1
    - Dst: is_char4_outside
      Src: /src/haproxy/tests/unit/test-int-range.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - min8
    - max8
    argTypes:
    - uint64_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: is_char8_outside_by4
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached:
    - is_char4_outside
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t is_char8_outside_by4(uint64_t x, uint8_t min8, uint8_t max8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - min8
    - max8
    argTypes:
    - uint64_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: is_char8_outside_by8
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t is_char8_outside_by8(uint64_t x, uint8_t min8, uint8_t max8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_char8_outside_by8
      Src: /src/haproxy/tests/unit/test-int-range.c:36,1
    - Dst: is_char8_outside_by4
      Src: /src/haproxy/tests/unit/test-int-range.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - x
    - min8
    - max8
    argTypes:
    - uint64_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: is_char8_outside
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached:
    - is_char8_outside_by8
    - is_char8_outside_by4
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t is_char8_outside(uint64_t x, uint8_t min8, uint8_t max8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: slow32_ref
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int slow32_ref(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: slow64_ref
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int slow64_ref(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_char4_outside
      Src: /src/haproxy/tests/unit/test-int-range.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: fast32_gen
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached:
    - is_char4_outside
    linkageType: ''
    returnType: int
    signature: int fast32_gen(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_char8_outside_by4
      Src: /src/haproxy/tests/unit/test-int-range.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: fast64_gen4
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached:
    - is_char8_outside_by4
    linkageType: ''
    returnType: int
    signature: int fast64_gen4(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_char8_outside_by8
      Src: /src/haproxy/tests/unit/test-int-range.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: fast64_gen8
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached:
    - is_char8_outside_by8
    linkageType: ''
    returnType: int
    signature: int fast64_gen8(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_char8_outside
      Src: /src/haproxy/tests/unit/test-int-range.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: fast64_gen
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached:
    - is_char8_outside
    linkageType: ''
    returnType: int
    signature: int fast64_gen(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: fast32_spec
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fast32_spec(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: fast64_spec
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fast64_spec(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: rnd64
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rnd64()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/tests/unit/test-int-range.c:124,1
    - Dst: atol
      Src: /src/haproxy/tests/unit/test-int-range.c:127,1
    - Dst: atol
      Src: /src/haproxy/tests/unit/test-int-range.c:130,1
    - Dst: slow32_ref
      Src: /src/haproxy/tests/unit/test-int-range.c:134,1
    - Dst: fast32_gen
      Src: /src/haproxy/tests/unit/test-int-range.c:136,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-int-range.c:137,1
    - Dst: fast32_spec
      Src: /src/haproxy/tests/unit/test-int-range.c:141,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-int-range.c:142,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-int-range.c:149,1
    - Dst: rnd64
      Src: /src/haproxy/tests/unit/test-int-range.c:158,1
    - Dst: rnd64
      Src: /src/haproxy/tests/unit/test-int-range.c:161,1
    - Dst: slow64_ref
      Src: /src/haproxy/tests/unit/test-int-range.c:162,1
    - Dst: fast64_gen
      Src: /src/haproxy/tests/unit/test-int-range.c:164,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-int-range.c:165,1
    - Dst: fast64_gen4
      Src: /src/haproxy/tests/unit/test-int-range.c:169,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-int-range.c:170,1
    - Dst: fast64_gen8
      Src: /src/haproxy/tests/unit/test-int-range.c:174,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-int-range.c:175,1
    - Dst: fast64_spec
      Src: /src/haproxy/tests/unit/test-int-range.c:179,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-int-range.c:180,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-int-range.c:187,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-int-range.c:191,1
    - Dst: printf
      Src: /src/haproxy/tests/unit/test-int-range.c:195,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 198
    functionName: main
    functionSourceFile: /src/haproxy/tests/unit/test-int-range.c
    functionUses: 0
    functionsReached:
    - slow64_ref
    - atol
    - slow32_ref
    - printf
    - fast32_spec
    - fast64_gen
    - fast64_gen8
    - fast64_gen4
    - atoi
    - fast32_gen
    - rnd64
    - fast64_spec
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/dev/haring/haring.c:73,1
    - Dst: vfprintf
      Src: /src/haproxy/dev/haring/haring.c:74,1
    - Dst: va_end
      Src: /src/haproxy/dev/haring/haring.c:75,1
    - Dst: exit
      Src: /src/haproxy/dev/haring/haring.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - code
    - format
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: die
    functionSourceFile: /src/haproxy/dev/haring/haring.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - vfprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void die(int code, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/haproxy/dev/haring/haring.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - arg0
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: usage
    functionSourceFile: /src/haproxy/dev/haring/haring.c
    functionUses: 3
    functionsReached:
    - die
    linkageType: ''
    returnType: void
    signature: void usage(int code, const char *arg0)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/dev/haring/haring.c:106,1
    - Dst: b_data
      Src: /src/haproxy/dev/haring/haring.c:114,1
    - Dst: unlikely
      Src: /src/haproxy/dev/haring/haring.c:115,1
    - Dst: b_peek
      Src: /src/haproxy/dev/haring/haring.c:115,1
    - Dst: b_peek_varint
      Src: /src/haproxy/dev/haring/haring.c:124,1
    - Dst: fprintf
      Src: /src/haproxy/dev/haring/haring.c:130,1
    - Dst: b_getblk_nc
      Src: /src/haproxy/dev/haring/haring.c:134,1
    - Dst: fwrite
      Src: /src/haproxy/dev/haring/haring.c:137,1
    - Dst: fwrite
      Src: /src/haproxy/dev/haring/haring.c:139,1
    - Dst: memchr
      Src: /src/haproxy/dev/haring/haring.c:143,1
    - Dst: fwrite
      Src: /src/haproxy/dev/haring/haring.c:146,1
    - Dst: putchar
      Src: /src/haproxy/dev/haring/haring.c:152,1
    - Dst: putchar
      Src: /src/haproxy/dev/haring/haring.c:153,1
    - Dst: putchar
      Src: /src/haproxy/dev/haring/haring.c:164,1
    - Dst: usleep
      Src: /src/haproxy/dev/haring/haring.c:173,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 3
    argNames:
    - buf
    - ofs
    - flags
    argTypes:
    - struct buffer
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 176
    functionName: dump_ring_as_buf
    functionSourceFile: /src/haproxy/dev/haring/haring.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_peek
    - memchr
    - putchar
    - b_peek_varint
    - b_data
    - usleep
    - fprintf
    - fwrite
    - b_getblk_nc
    linkageType: ''
    returnType: int
    signature: int dump_ring_as_buf(struct buffer buf, size_t ofs, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/dev/haring/haring.c:195,1
    - Dst: dump_ring_as_buf
      Src: /src/haproxy/dev/haring/haring.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ring
    - ofs
    - flags
    argTypes:
    - struct ring_v1*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 199
    functionName: dump_ring_v1
    functionSourceFile: /src/haproxy/dev/haring/haring.c
    functionUses: 0
    functionsReached:
    - b_make
    - dump_ring_as_buf
    linkageType: ''
    returnType: int
    signature: int dump_ring_v1(struct ring_v1 *ring, size_t ofs, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/dev/haring/haring.c:223,1
    - Dst: dump_ring_as_buf
      Src: /src/haproxy/dev/haring/haring.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ring
    - ofs
    - flags
    argTypes:
    - struct ring_v2*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 225
    functionName: dump_ring_v2
    functionSourceFile: /src/haproxy/dev/haring/haring.c
    functionUses: 0
    functionsReached:
    - b_make
    - dump_ring_as_buf
    linkageType: ''
    returnType: int
    signature: int dump_ring_v2(struct ring_v2 *ring, size_t ofs, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/dev/haring/haring.c:249,1
    - Dst: dump_ring_as_buf
      Src: /src/haproxy/dev/haring/haring.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ring
    - ofs
    - flags
    argTypes:
    - struct ring_v2a*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 251
    functionName: dump_ring_v2a
    functionSourceFile: /src/haproxy/dev/haring/haring.c
    functionUses: 0
    functionsReached:
    - b_make
    - dump_ring_as_buf
    linkageType: ''
    returnType: int
    signature: int dump_ring_v2a(struct ring_v2a *ring, size_t ofs, int flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/dev/haring/haring.c:263,1
    - Dst: strcmp
      Src: /src/haproxy/dev/haring/haring.c:265,1
    - Dst: strcmp
      Src: /src/haproxy/dev/haring/haring.c:267,1
    - Dst: strcmp
      Src: /src/haproxy/dev/haring/haring.c:269,1
    - Dst: usage
      Src: /src/haproxy/dev/haring/haring.c:272,1
    - Dst: usage
      Src: /src/haproxy/dev/haring/haring.c:276,1
    - Dst: open
      Src: /src/haproxy/dev/haring/haring.c:278,1
    - Dst: perror
      Src: /src/haproxy/dev/haring/haring.c:280,1
    - Dst: fstat
      Src: /src/haproxy/dev/haring/haring.c:284,1
    - Dst: perror
      Src: /src/haproxy/dev/haring/haring.c:285,1
    - Dst: mmap
      Src: /src/haproxy/dev/haring/haring.c:289,1
    - Dst: close
      Src: /src/haproxy/dev/haring/haring.c:290,1
    - Dst: perror
      Src: /src/haproxy/dev/haring/haring.c:293,1
    - Dst: dump_ring_v2
      Src: /src/haproxy/dev/haring/haring.c:300,1
    - Dst: dump_ring_v2a
      Src: /src/haproxy/dev/haring/haring.c:302,1
    - Dst: dump_ring_v1
      Src: /src/haproxy/dev/haring/haring.c:305,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 306
    functionName: main
    functionSourceFile: /src/haproxy/dev/haring/haring.c
    functionUses: 0
    functionsReached:
    - perror
    - mmap
    - strcmp
    - open
    - dump_ring_v2a
    - fstat
    - dump_ring_v1
    - close
    - dump_ring_v2
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/dev/term_events/term_events.c:85,1
    - Dst: exit
      Src: /src/haproxy/dev/term_events/term_events.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: usage_exit
    functionSourceFile: /src/haproxy/dev/term_events/term_events.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage_exit(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/haproxy/dev/term_events/term_events.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: to_upper
    functionSourceFile: /src/haproxy/dev/term_events/term_events.c
    functionUses: 0
    functionsReached:
    - toupper
    linkageType: ''
    returnType: char
    signature: char *to_upper(char *dst, const char *src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/dev/term_events/term_events.c:105,1
    - Dst: strcmp
      Src: /src/haproxy/dev/term_events/term_events.c:108,1
    - Dst: snprintf
      Src: /src/haproxy/dev/term_events/term_events.c:109,1
    - Dst: strlen
      Src: /src/haproxy/dev/term_events/term_events.c:113,1
    - Dst: snprintf
      Src: /src/haproxy/dev/term_events/term_events.c:114,1
    - Dst: isalpha
      Src: /src/haproxy/dev/term_events/term_events.c:123,1
    - Dst: isxdigit
      Src: /src/haproxy/dev/term_events/term_events.c:123,1
    - Dst: snprintf
      Src: /src/haproxy/dev/term_events/term_events.c:124,1
    - Dst: tolower
      Src: /src/haproxy/dev/term_events/term_events.c:128,1
    - Dst: snprintf
      Src: /src/haproxy/dev/term_events/term_events.c:129,1
    - Dst: isupper
      Src: /src/haproxy/dev/term_events/term_events.c:130,1
    - Dst: to_upper
      Src: /src/haproxy/dev/term_events/term_events.c:130,1
    - Dst: hex2i
      Src: /src/haproxy/dev/term_events/term_events.c:131,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - value
    argTypes:
    - char*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 142
    functionName: tevt_show_events
    functionSourceFile: /src/haproxy/dev/term_events/term_events.c
    functionUses: 0
    functionsReached:
    - to_upper
    - isxdigit
    - strcmp
    - tolower
    - isupper
    - hex2i
    - isalpha
    - snprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: char *tevt_show_events(char *buf, size_t len, const char *delim, const
      char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tevt_show_events
      Src: /src/haproxy/dev/term_events/term_events.c:163,1
    - Dst: printf
      Src: /src/haproxy/dev/term_events/term_events.c:164,1
    - Dst: printf
      Src: /src/haproxy/dev/term_events/term_events.c:172,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - buf
    - len
    - value
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 179
    functionName: tevt_show_tuple_events
    functionSourceFile: /src/haproxy/dev/term_events/term_events.c
    functionUses: 0
    functionsReached:
    - tevt_show_events
    - printf
    linkageType: ''
    returnType: char
    signature: char *tevt_show_tuple_events(char *buf, size_t len, char *value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: usage_exit
      Src: /src/haproxy/dev/term_events/term_events.c:191,1
    - Dst: strcmp
      Src: /src/haproxy/dev/term_events/term_events.c:197,1
    - Dst: fgets
      Src: /src/haproxy/dev/term_events/term_events.c:202,1
    - Dst: printf
      Src: /src/haproxy/dev/term_events/term_events.c:221,1
    - Dst: printf
      Src: /src/haproxy/dev/term_events/term_events.c:225,1
    - Dst: tevt_show_tuple_events
      Src: /src/haproxy/dev/term_events/term_events.c:226,1
    - Dst: tevt_show_events
      Src: /src/haproxy/dev/term_events/term_events.c:229,1
    - Dst: printf
      Src: /src/haproxy/dev/term_events/term_events.c:230,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 233
    functionName: main
    functionSourceFile: /src/haproxy/dev/term_events/term_events.c
    functionUses: 0
    functionsReached:
    - tevt_show_events
    - usage_exit
    - tevt_show_tuple_events
    - strcmp
    - printf
    - fgets
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/dev/tcploop/tcploop.c:98,1
    - Dst: vfprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:99,1
    - Dst: va_end
      Src: /src/haproxy/dev/tcploop/tcploop.c:100,1
    - Dst: exit
      Src: /src/haproxy/dev/tcploop/tcploop.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - code
    - format
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: die
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - vfprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void die(int code, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - arg0
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 168
    functionName: usage
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 4
    functionsReached:
    - die
    linkageType: ''
    returnType: void
    signature: void usage(int code, const char *arg0)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/haproxy/dev/tcploop/tcploop.c:180,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:184,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:201,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:204,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:209,1
    - Dst: va_start
      Src: /src/haproxy/dev/tcploop/tcploop.c:211,1
    - Dst: vfprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:212,1
    - Dst: va_end
      Src: /src/haproxy/dev/tcploop/tcploop.c:213,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 214
    functionName: dolog
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - vfprintf
    - gettimeofday
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dolog(const char *format, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - out
    - size
    - in
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 234
    functionName: unescape
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unescape(char *out, int size, const char *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/dev/tcploop/tcploop.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: alloc_err_msg
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct err_msg
    signature: struct err_msg *alloc_err_msg(int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/haproxy/dev/tcploop/tcploop.c:251,1
    - Dst: __sync_sub_and_fetch
      Src: /src/haproxy/dev/tcploop/tcploop.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: sig_handler
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - __sync_sub_and_fetch
    - waitpid
    linkageType: ''
    returnType: void
    signature: void sig_handler(int sig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/dev/tcploop/tcploop.c:264,1
    - Dst: strchr
      Src: /src/haproxy/dev/tcploop/tcploop.c:267,1
    - Dst: strncpy
      Src: /src/haproxy/dev/tcploop/tcploop.c:269,1
    - Dst: strrchr
      Src: /src/haproxy/dev/tcploop/tcploop.c:277,1
    - Dst: atoi
      Src: /src/haproxy/dev/tcploop/tcploop.c:278,1
    - Dst: snprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:280,1
    - Dst: htons
      Src: /src/haproxy/dev/tcploop/tcploop.c:285,1
    - Dst: strrchr
      Src: /src/haproxy/dev/tcploop/tcploop.c:292,1
    - Dst: htons
      Src: /src/haproxy/dev/tcploop/tcploop.c:295,1
    - Dst: atoi
      Src: /src/haproxy/dev/tcploop/tcploop.c:295,1
    - Dst: inet_pton
      Src: /src/haproxy/dev/tcploop/tcploop.c:297,1
    - Dst: snprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:298,1
    - Dst: htons
      Src: /src/haproxy/dev/tcploop/tcploop.c:304,1
    - Dst: atoi
      Src: /src/haproxy/dev/tcploop/tcploop.c:304,1
    - Dst: inet_pton
      Src: /src/haproxy/dev/tcploop/tcploop.c:311,1
    - Dst: gethostbyname
      Src: /src/haproxy/dev/tcploop/tcploop.c:312,1
    - Dst: snprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:315,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - str
    - ss
    - err
    argTypes:
    - char*
    - struct sockaddr_storage*
    - struct err_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 323
    functionName: addr_to_ss
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - strncpy
    - inet_pton
    - memset
    - gethostbyname
    - strrchr
    - strchr
    - atoi
    - snprintf
    - htons
    linkageType: ''
    returnType: int
    signature: int addr_to_ss(const char *str, struct sockaddr_storage *ss, struct
      err_msg *err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: epoll_create
      Src: /src/haproxy/dev/tcploop/tcploop.c:339,1
    - Dst: epoll_ctl
      Src: /src/haproxy/dev/tcploop/tcploop.c:346,1
    - Dst: epoll_wait
      Src: /src/haproxy/dev/tcploop/tcploop.c:349,1
    - Dst: epoll_ctl
      Src: /src/haproxy/dev/tcploop/tcploop.c:353,1
    - Dst: poll
      Src: /src/haproxy/dev/tcploop/tcploop.c:361,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - fd
    - events
    - ms
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 365
    functionName: wait_on_fd
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - epoll_create
    - poll
    - epoll_ctl
    - epoll_wait
    linkageType: ''
    returnType: int
    signature: int wait_on_fd(int fd, int events, int ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/dev/tcploop/tcploop.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: tcp_set_nodelay
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int tcp_set_nodelay(int sock, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/dev/tcploop/tcploop.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: tcp_set_nolinger
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int tcp_set_nolinger(int sock, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/dev/tcploop/tcploop.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 385
    functionName: tcp_set_noquickack
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int tcp_set_noquickack(int sock, const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/haproxy/dev/tcploop/tcploop.c:392,1
    - Dst: perror
      Src: /src/haproxy/dev/tcploop/tcploop.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fam
    argTypes:
    - sa_family_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 399
    functionName: tcp_socket
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - perror
    - socket
    linkageType: ''
    returnType: int
    signature: int tcp_socket(sa_family_t fam)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: addr_to_ss
      Src: /src/haproxy/dev/tcploop/tcploop.c:411,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:412,1
    - Dst: tcp_socket
      Src: /src/haproxy/dev/tcploop/tcploop.c:418,1
    - Dst: setsockopt
      Src: /src/haproxy/dev/tcploop/tcploop.c:423,1
    - Dst: perror
      Src: /src/haproxy/dev/tcploop/tcploop.c:424,1
    - Dst: setsockopt
      Src: /src/haproxy/dev/tcploop/tcploop.c:429,1
    - Dst: perror
      Src: /src/haproxy/dev/tcploop/tcploop.c:430,1
    - Dst: bind
      Src: /src/haproxy/dev/tcploop/tcploop.c:434,1
    - Dst: perror
      Src: /src/haproxy/dev/tcploop/tcploop.c:436,1
    - Dst: close
      Src: /src/haproxy/dev/tcploop/tcploop.c:442,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - sock
    - sa
    - arg
    argTypes:
    - int
    - struct sockaddr_storage*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 444
    functionName: tcp_bind
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - perror
    - setsockopt
    - addr_to_ss
    - tcp_socket
    - die
    - bind
    - close
    linkageType: ''
    returnType: int
    signature: int tcp_bind(int sock, const struct sockaddr_storage *sa, const char
      *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tcp_bind
      Src: /src/haproxy/dev/tcploop/tcploop.c:452,1
    - Dst: atoi
      Src: /src/haproxy/dev/tcploop/tcploop.c:458,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:463,1
    - Dst: listen
      Src: /src/haproxy/dev/tcploop/tcploop.c:467,1
    - Dst: perror
      Src: /src/haproxy/dev/tcploop/tcploop.c:468,1
    - Dst: close
      Src: /src/haproxy/dev/tcploop/tcploop.c:474,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - sock
    - sa
    - arg
    argTypes:
    - int
    - struct sockaddr_storage*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 476
    functionName: tcp_listen
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - tcp_bind
    - perror
    - fprintf
    - listen
    - atoi
    - close
    linkageType: ''
    returnType: int
    signature: int tcp_listen(int sock, const struct sockaddr_storage *sa, const char
      *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/dev/tcploop/tcploop.c:485,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:490,1
    - Dst: accept
      Src: /src/haproxy/dev/tcploop/tcploop.c:495,1
    - Dst: perror
      Src: /src/haproxy/dev/tcploop/tcploop.c:499,1
    - Dst: close
      Src: /src/haproxy/dev/tcploop/tcploop.c:504,1
    - Dst: fcntl
      Src: /src/haproxy/dev/tcploop/tcploop.c:508,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 510
    functionName: tcp_accept
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - perror
    - fcntl
    - accept
    - fprintf
    - atoi
    - close
    linkageType: ''
    returnType: int
    signature: int tcp_accept(int sock, const char *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: addr_to_ss
      Src: /src/haproxy/dev/tcploop/tcploop.c:520,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:521,1
    - Dst: tcp_socket
      Src: /src/haproxy/dev/tcploop/tcploop.c:526,1
    - Dst: fcntl
      Src: /src/haproxy/dev/tcploop/tcploop.c:531,1
    - Dst: setsockopt
      Src: /src/haproxy/dev/tcploop/tcploop.c:534,1
    - Dst: connect
      Src: /src/haproxy/dev/tcploop/tcploop.c:537,1
    - Dst: close
      Src: /src/haproxy/dev/tcploop/tcploop.c:544,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - sock
    - sa
    - arg
    argTypes:
    - int
    - struct sockaddr_storage*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 546
    functionName: tcp_connect
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 3
    functionsReached:
    - fcntl
    - setsockopt
    - addr_to_ss
    - tcp_socket
    - die
    - connect
    - close
    linkageType: ''
    returnType: int
    signature: int tcp_connect(int sock, const struct sockaddr_storage *sa, const
      char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/haproxy/dev/tcploop/tcploop.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: tcp_disconnect
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - connect
    linkageType: ''
    returnType: int
    signature: int tcp_disconnect(int sock)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/dev/tcploop/tcploop.c:568,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:570,1
    - Dst: recv
      Src: /src/haproxy/dev/tcploop/tcploop.c:579,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:584,1
    - Dst: wait_on_fd
      Src: /src/haproxy/dev/tcploop/tcploop.c:587,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:590,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 604
    functionName: tcp_recv
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - wait_on_fd
    - recv
    - dolog
    - fprintf
    - atoi
    linkageType: ''
    returnType: int
    signature: int tcp_recv(int sock, const char *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unescape
      Src: /src/haproxy/dev/tcploop/tcploop.c:620,1
    - Dst: atoi
      Src: /src/haproxy/dev/tcploop/tcploop.c:622,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:624,1
    - Dst: send
      Src: /src/haproxy/dev/tcploop/tcploop.c:630,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:637,1
    - Dst: wait_on_fd
      Src: /src/haproxy/dev/tcploop/tcploop.c:640,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:643,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 654
    functionName: tcp_send
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - unescape
    - wait_on_fd
    - send
    - dolog
    - fprintf
    - atoi
    linkageType: ''
    returnType: int
    signature: int tcp_send(int sock, const char *arg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/dev/tcploop/tcploop.c:666,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:668,1
    - Dst: recv
      Src: /src/haproxy/dev/tcploop/tcploop.c:677,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:682,1
    - Dst: wait_on_fd
      Src: /src/haproxy/dev/tcploop/tcploop.c:685,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:688,1
    - Dst: send
      Src: /src/haproxy/dev/tcploop/tcploop.c:694,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:699,1
    - Dst: wait_on_fd
      Src: /src/haproxy/dev/tcploop/tcploop.c:702,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:705,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 52
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 720
    functionName: tcp_echo
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - wait_on_fd
    - recv
    - send
    - dolog
    - fprintf
    - atoi
    linkageType: ''
    returnType: int
    signature: int tcp_echo(int sock, const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/dev/tcploop/tcploop.c:731,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:733,1
    - Dst: wait_on_fd
      Src: /src/haproxy/dev/tcploop/tcploop.c:739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 744
    functionName: tcp_wait
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - atoi
    - fprintf
    - wait_on_fd
    linkageType: ''
    returnType: int
    signature: int tcp_wait(int sock, const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wait_on_fd
      Src: /src/haproxy/dev/tcploop/tcploop.c:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 756
    functionName: tcp_wait_in
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - wait_on_fd
    linkageType: ''
    returnType: int
    signature: int tcp_wait_in(int sock, const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wait_on_fd
      Src: /src/haproxy/dev/tcploop/tcploop.c:763,1
    - Dst: ioctl
      Src: /src/haproxy/dev/tcploop/tcploop.c:769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 773
    functionName: tcp_wait_out
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - ioctl
    - wait_on_fd
    linkageType: ''
    returnType: int
    signature: int tcp_wait_out(int sock, const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/dev/tcploop/tcploop.c:781,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:783,1
    - Dst: usleep
      Src: /src/haproxy/dev/tcploop/tcploop.c:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 790
    functionName: tcp_pause
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - atoi
    - fprintf
    - usleep
    linkageType: ''
    returnType: int
    signature: int tcp_pause(int sock, const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/dev/tcploop/tcploop.c:803,1
    - Dst: fprintf
      Src: /src/haproxy/dev/tcploop/tcploop.c:805,1
    - Dst: poll
      Src: /src/haproxy/dev/tcploop/tcploop.c:811,1
    - Dst: fork
      Src: /src/haproxy/dev/tcploop/tcploop.c:813,1
    - Dst: __sync_add_and_fetch
      Src: /src/haproxy/dev/tcploop/tcploop.c:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - sock
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 817
    functionName: tcp_fork
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - fork
    - poll
    - __sync_add_and_fetch
    - fprintf
    - atoi
    linkageType: ''
    returnType: int
    signature: int tcp_fork(int sock, const char *arg)
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/dev/tcploop/tcploop.c:834,1
    - Dst: strcmp
      Src: /src/haproxy/dev/tcploop/tcploop.c:836,1
    - Dst: strcmp
      Src: /src/haproxy/dev/tcploop/tcploop.c:838,1
    - Dst: strcmp
      Src: /src/haproxy/dev/tcploop/tcploop.c:840,1
    - Dst: strcmp
      Src: /src/haproxy/dev/tcploop/tcploop.c:842,1
    - Dst: strcmp
      Src: /src/haproxy/dev/tcploop/tcploop.c:844,1
    - Dst: strcmp
      Src: /src/haproxy/dev/tcploop/tcploop.c:848,1
    - Dst: strcmp
      Src: /src/haproxy/dev/tcploop/tcploop.c:851,1
    - Dst: usage
      Src: /src/haproxy/dev/tcploop/tcploop.c:854,1
    - Dst: usage
      Src: /src/haproxy/dev/tcploop/tcploop.c:858,1
    - Dst: getpid
      Src: /src/haproxy/dev/tcploop/tcploop.c:860,1
    - Dst: signal
      Src: /src/haproxy/dev/tcploop/tcploop.c:861,1
    - Dst: addr_to_ss
      Src: /src/haproxy/dev/tcploop/tcploop.c:863,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:864,1
    - Dst: gettimeofday
      Src: /src/haproxy/dev/tcploop/tcploop.c:866,1
    - Dst: tcp_listen
      Src: /src/haproxy/dev/tcploop/tcploop.c:873,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:875,1
    - Dst: tcp_bind
      Src: /src/haproxy/dev/tcploop/tcploop.c:880,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:882,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:883,1
    - Dst: tcp_connect
      Src: /src/haproxy/dev/tcploop/tcploop.c:887,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:889,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:890,1
    - Dst: tcp_disconnect
      Src: /src/haproxy/dev/tcploop/tcploop.c:895,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:896,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:897,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:902,1
    - Dst: tcp_accept
      Src: /src/haproxy/dev/tcploop/tcploop.c:903,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:905,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:906,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:912,1
    - Dst: tcp_set_nodelay
      Src: /src/haproxy/dev/tcploop/tcploop.c:913,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:914,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:919,1
    - Dst: tcp_set_nolinger
      Src: /src/haproxy/dev/tcploop/tcploop.c:920,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:921,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:926,1
    - Dst: tcp_set_noquickack
      Src: /src/haproxy/dev/tcploop/tcploop.c:927,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:928,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:933,1
    - Dst: tcp_recv
      Src: /src/haproxy/dev/tcploop/tcploop.c:934,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:937,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:938,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:944,1
    - Dst: tcp_send
      Src: /src/haproxy/dev/tcploop/tcploop.c:945,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:948,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:949,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:955,1
    - Dst: tcp_echo
      Src: /src/haproxy/dev/tcploop/tcploop.c:956,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:957,1
    - Dst: tcp_pause
      Src: /src/haproxy/dev/tcploop/tcploop.c:961,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:962,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:967,1
    - Dst: tcp_wait
      Src: /src/haproxy/dev/tcploop/tcploop.c:968,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:969,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:970,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:975,1
    - Dst: tcp_wait_in
      Src: /src/haproxy/dev/tcploop/tcploop.c:976,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:977,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:978,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:983,1
    - Dst: tcp_wait_out
      Src: /src/haproxy/dev/tcploop/tcploop.c:984,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:985,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:986,1
    - Dst: close
      Src: /src/haproxy/dev/tcploop/tcploop.c:990,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:991,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:992,1
    - Dst: shutdown
      Src: /src/haproxy/dev/tcploop/tcploop.c:999,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:1000,1
    - Dst: shutdown
      Src: /src/haproxy/dev/tcploop/tcploop.c:1006,1
    - Dst: dolog
      Src: /src/haproxy/dev/tcploop/tcploop.c:1007,1
    - Dst: tcp_fork
      Src: /src/haproxy/dev/tcploop/tcploop.c:1011,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:1013,1
    - Dst: getpid
      Src: /src/haproxy/dev/tcploop/tcploop.c:1020,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:1030,1
    - Dst: dup
      Src: /src/haproxy/dev/tcploop/tcploop.c:1032,1
    - Dst: fcntl
      Src: /src/haproxy/dev/tcploop/tcploop.c:1033,1
    - Dst: fcntl
      Src: /src/haproxy/dev/tcploop/tcploop.c:1033,1
    - Dst: fcntl
      Src: /src/haproxy/dev/tcploop/tcploop.c:1034,1
    - Dst: fcntl
      Src: /src/haproxy/dev/tcploop/tcploop.c:1034,1
    - Dst: strchr
      Src: /src/haproxy/dev/tcploop/tcploop.c:1035,1
    - Dst: dup2
      Src: /src/haproxy/dev/tcploop/tcploop.c:1036,1
    - Dst: strchr
      Src: /src/haproxy/dev/tcploop/tcploop.c:1037,1
    - Dst: dup2
      Src: /src/haproxy/dev/tcploop/tcploop.c:1038,1
    - Dst: strchr
      Src: /src/haproxy/dev/tcploop/tcploop.c:1039,1
    - Dst: dup2
      Src: /src/haproxy/dev/tcploop/tcploop.c:1040,1
    - Dst: execvp
      Src: /src/haproxy/dev/tcploop/tcploop.c:1042,1
    - Dst: dup2
      Src: /src/haproxy/dev/tcploop/tcploop.c:1045,1
    - Dst: close
      Src: /src/haproxy/dev/tcploop/tcploop.c:1046,1
    - Dst: die
      Src: /src/haproxy/dev/tcploop/tcploop.c:1047,1
    - Dst: strerror
      Src: /src/haproxy/dev/tcploop/tcploop.c:1047,1
    - Dst: usage
      Src: /src/haproxy/dev/tcploop/tcploop.c:1051,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 191
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 1055
    functionName: main
    functionSourceFile: /src/haproxy/dev/tcploop/tcploop.c
    functionUses: 0
    functionsReached:
    - getpid
    - tcp_disconnect
    - dup
    - signal
    - execvp
    - close
    - tcp_bind
    - strerror
    - strcmp
    - strchr
    - dolog
    - tcp_send
    - tcp_accept
    - tcp_connect
    - tcp_set_nodelay
    - tcp_echo
    - tcp_wait_out
    - fcntl
    - tcp_set_nolinger
    - addr_to_ss
    - die
    - tcp_wait
    - tcp_wait_in
    - gettimeofday
    - tcp_pause
    - tcp_listen
    - tcp_set_noquickack
    - dup2
    - tcp_fork
    - shutdown
    - tcp_recv
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/dev/flags/flags.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: get_show_as
    functionSourceFile: /src/haproxy/dev/flags/flags.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_show_as(const char *word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/dev/flags/flags.c:79,1
    - Dst: fprintf
      Src: /src/haproxy/dev/flags/flags.c:83,1
    - Dst: fprintf
      Src: /src/haproxy/dev/flags/flags.c:84,1
    - Dst: exit
      Src: /src/haproxy/dev/flags/flags.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: usage_exit
    functionSourceFile: /src/haproxy/dev/flags/flags.c
    functionUses: 1
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage_exit(const char *name)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: usage_exit
      Src: /src/haproxy/dev/flags/flags.c:103,1
    - Dst: get_show_as
      Src: /src/haproxy/dev/flags/flags.c:105,1
    - Dst: strcmp
      Src: /src/haproxy/dev/flags/flags.c:117,1
    - Dst: fgets
      Src: /src/haproxy/dev/flags/flags.c:122,1
    - Dst: isalnum
      Src: /src/haproxy/dev/flags/flags.c:133,1
    - Dst: toupper
      Src: /src/haproxy/dev/flags/flags.c:133,1
    - Dst: toupper
      Src: /src/haproxy/dev/flags/flags.c:133,1
    - Dst: strtoul
      Src: /src/haproxy/dev/flags/flags.c:141,1
    - Dst: fprintf
      Src: /src/haproxy/dev/flags/flags.c:143,1
    - Dst: usage_exit
      Src: /src/haproxy/dev/flags/flags.c:144,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:148,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:150,1
    - Dst: chn_show_analysers
      Src: /src/haproxy/dev/flags/flags.c:150,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:151,1
    - Dst: chn_show_flags
      Src: /src/haproxy/dev/flags/flags.c:151,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:152,1
    - Dst: conn_show_flags
      Src: /src/haproxy/dev/flags/flags.c:152,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:153,1
    - Dst: sc_show_flags
      Src: /src/haproxy/dev/flags/flags.c:153,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:154,1
    - Dst: se_show_flags
      Src: /src/haproxy/dev/flags/flags.c:154,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:155,1
    - Dst: strm_et_show_flags
      Src: /src/haproxy/dev/flags/flags.c:155,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:156,1
    - Dst: strm_show_flags
      Src: /src/haproxy/dev/flags/flags.c:156,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:157,1
    - Dst: task_show_state
      Src: /src/haproxy/dev/flags/flags.c:157,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:158,1
    - Dst: txn_show_flags
      Src: /src/haproxy/dev/flags/flags.c:158,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:159,1
    - Dst: hsl_show_flags
      Src: /src/haproxy/dev/flags/flags.c:159,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:160,1
    - Dst: htx_show_flags
      Src: /src/haproxy/dev/flags/flags.c:160,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:161,1
    - Dst: hmsg_show_flags
      Src: /src/haproxy/dev/flags/flags.c:161,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:162,1
    - Dst: fd_show_flags
      Src: /src/haproxy/dev/flags/flags.c:162,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:163,1
    - Dst: h2c_show_flags
      Src: /src/haproxy/dev/flags/flags.c:163,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:164,1
    - Dst: h2s_show_flags
      Src: /src/haproxy/dev/flags/flags.c:164,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:165,1
    - Dst: h1c_show_flags
      Src: /src/haproxy/dev/flags/flags.c:165,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:166,1
    - Dst: h1s_show_flags
      Src: /src/haproxy/dev/flags/flags.c:166,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:167,1
    - Dst: fconn_show_flags
      Src: /src/haproxy/dev/flags/flags.c:167,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:168,1
    - Dst: fstrm_show_flags
      Src: /src/haproxy/dev/flags/flags.c:168,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:169,1
    - Dst: peers_show_flags
      Src: /src/haproxy/dev/flags/flags.c:169,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:170,1
    - Dst: peer_show_flags
      Src: /src/haproxy/dev/flags/flags.c:170,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:171,1
    - Dst: qc_show_flags
      Src: /src/haproxy/dev/flags/flags.c:171,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:172,1
    - Dst: spop_conn_show_flags
      Src: /src/haproxy/dev/flags/flags.c:172,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:173,1
    - Dst: spop_strm_show_flags
      Src: /src/haproxy/dev/flags/flags.c:173,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:174,1
    - Dst: qcc_show_flags
      Src: /src/haproxy/dev/flags/flags.c:174,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:175,1
    - Dst: qcs_show_flags
      Src: /src/haproxy/dev/flags/flags.c:175,1
    - Dst: printf
      Src: /src/haproxy/dev/flags/flags.c:176,1
    - Dst: appctx_show_flags
      Src: /src/haproxy/dev/flags/flags.c:176,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 96
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 179
    functionName: main
    functionSourceFile: /src/haproxy/dev/flags/flags.c
    functionUses: 0
    functionsReached:
    - appctx_show_flags
    - printf
    - fd_show_flags
    - conn_show_flags
    - chn_show_flags
    - h1s_show_flags
    - peers_show_flags
    - h1c_show_flags
    - se_show_flags
    - txn_show_flags
    - fconn_show_flags
    - usage_exit
    - sc_show_flags
    - peer_show_flags
    - qcs_show_flags
    - strcmp
    - qc_show_flags
    - hsl_show_flags
    - task_show_state
    - fgets
    - spop_conn_show_flags
    - strtoul
    - hmsg_show_flags
    - h2s_show_flags
    - spop_strm_show_flags
    - toupper
    - strm_et_show_flags
    - qcc_show_flags
    - get_show_as
    - strm_show_flags
    - h2c_show_flags
    - htx_show_flags
    - chn_show_analysers
    - fprintf
    - fstrm_show_flags
    - isalnum
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/dev/hpack/decode.c:48,1
    - Dst: fprintf
      Src: /src/haproxy/dev/hpack/decode.c:51,1
    - Dst: fprintf
      Src: /src/haproxy/dev/hpack/decode.c:53,1
    - Dst: fputc
      Src: /src/haproxy/dev/hpack/decode.c:57,1
    - Dst: fputc
      Src: /src/haproxy/dev/hpack/decode.c:59,1
    - Dst: fprintf
      Src: /src/haproxy/dev/hpack/decode.c:63,1
    - Dst: fprintf
      Src: /src/haproxy/dev/hpack/decode.c:65,1
    - Dst: fprintf
      Src: /src/haproxy/dev/hpack/decode.c:68,1
    - Dst: isprint
      Src: /src/haproxy/dev/hpack/decode.c:71,1
    - Dst: fputc
      Src: /src/haproxy/dev/hpack/decode.c:72,1
    - Dst: fputc
      Src: /src/haproxy/dev/hpack/decode.c:74,1
    - Dst: fputc
      Src: /src/haproxy/dev/hpack/decode.c:77,1
    - Dst: fputc
      Src: /src/haproxy/dev/hpack/decode.c:79,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - out
    - pfx
    - buf
    - baseaddr
    - len
    argTypes:
    - FILE*
    - char*
    - char*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 81
    functionName: debug_hexdump
    functionSourceFile: /src/haproxy/dev/hpack/decode.c
    functionUses: 0
    functionsReached:
    - fprintf
    - isprint
    - fputc
    linkageType: ''
    returnType: void
    signature: "void debug_hexdump(FILE *out, const char *pfx, const char *buf,\n
      \                  unsigned int baseaddr, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/dev/hpack/decode.c:95,1
    - Dst: vfprintf
      Src: /src/haproxy/dev/hpack/decode.c:96,1
    - Dst: va_end
      Src: /src/haproxy/dev/hpack/decode.c:97,1
    - Dst: exit
      Src: /src/haproxy/dev/hpack/decode.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - code
    - format
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: die
    functionSourceFile: /src/haproxy/dev/hpack/decode.c
    functionUses: 5
    functionsReached:
    - va_end
    - va_start
    - vfprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void die(int code, const char *format, ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 30
    argCount: 3
    argNames:
    - hex
    - bin
    - size
    argTypes:
    - char*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 152
    functionName: hex2bin
    functionSourceFile: /src/haproxy/dev/hpack/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex2bin(const char *hex, uint8_t *bin, int size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/dev/hpack/decode.c:166,1
    - Dst: hpack_dht_alloc
      Src: /src/haproxy/dev/hpack/decode.c:172,1
    - Dst: die
      Src: /src/haproxy/dev/hpack/decode.c:174,1
    - Dst: fgets
      Src: /src/haproxy/dev/hpack/decode.c:178,1
    - Dst: hex2bin
      Src: /src/haproxy/dev/hpack/decode.c:179,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/decode.c:182,1
    - Dst: debug_hexdump
      Src: /src/haproxy/dev/hpack/decode.c:183,1
    - Dst: hpack_decode_frame
      Src: /src/haproxy/dev/hpack/decode.c:185,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/decode.c:188,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/decode.c:192,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/decode.c:199,1
    - Dst: istpad
      Src: /src/haproxy/dev/hpack/decode.c:200,1
    - Dst: h2_phdr_to_str
      Src: /src/haproxy/dev/hpack/decode.c:201,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/decode.c:203,1
    - Dst: istpad
      Src: /src/haproxy/dev/hpack/decode.c:204,1
    - Dst: puts
      Src: /src/haproxy/dev/hpack/decode.c:207,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/decode.c:209,1
    - Dst: hpack_dht_dump
      Src: /src/haproxy/dev/hpack/decode.c:210,1
    - Dst: puts
      Src: /src/haproxy/dev/hpack/decode.c:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 215
    functionName: main
    functionSourceFile: /src/haproxy/dev/hpack/decode.c
    functionUses: 0
    functionsReached:
    - hpack_dht_dump
    - hex2bin
    - istpad
    - printf
    - hpack_dht_alloc
    - hpack_decode_frame
    - debug_hexdump
    - puts
    - die
    - h2_phdr_to_str
    - atoi
    - fgets
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:287,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:295,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:300,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:302,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:310,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:315,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:317,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:327,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:332,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:334,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:344,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:349,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:351,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:361,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:366,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-rht.c:367,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 72
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 369
    functionName: main
    functionSourceFile: /src/haproxy/dev/hpack/gen-rht.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/dev/hpack/gen-enc.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: get_hdr_rank
    functionSourceFile: /src/haproxy/dev/hpack/gen-enc.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int get_hdr_rank(const char *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_hdr_rank
      Src: /src/haproxy/dev/hpack/gen-enc.c:102,1
    - Dst: get_hdr_rank
      Src: /src/haproxy/dev/hpack/gen-enc.c:103,1
    - Dst: strcmp
      Src: /src/haproxy/dev/hpack/gen-enc.c:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - l
    - r
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 121
    functionName: cmp_idx
    functionSourceFile: /src/haproxy/dev/hpack/gen-enc.c
    functionUses: 0
    functionsReached:
    - get_hdr_rank
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmp_idx(const void *l, const void *r)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/haproxy/dev/hpack/gen-enc.c:144,1
    - Dst: memcmp
      Src: /src/haproxy/dev/hpack/gen-enc.c:159,1
    - Dst: abort
      Src: /src/haproxy/dev/hpack/gen-enc.c:167,1
    - Dst: memcpy
      Src: /src/haproxy/dev/hpack/gen-enc.c:172,1
    - Dst: abort
      Src: /src/haproxy/dev/hpack/gen-enc.c:178,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-enc.c:181,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-enc.c:184,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-enc.c:186,1
    - Dst: putchar
      Src: /src/haproxy/dev/hpack/gen-enc.c:189,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-enc.c:191,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-enc.c:193,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-enc.c:196,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-enc.c:198,1
    - Dst: putchar
      Src: /src/haproxy/dev/hpack/gen-enc.c:201,1
    - Dst: printf
      Src: /src/haproxy/dev/hpack/gen-enc.c:203,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 205
    functionName: main
    functionSourceFile: /src/haproxy/dev/hpack/gen-enc.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memcpy
    - qsort
    - abort
    - printf
    - putchar
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: side
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *side(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 81
    functionName: usage
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 5
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *arg0)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/dev/poll/poll.c:86,1
    - Dst: exit
      Src: /src/haproxy/dev/poll/poll.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: die
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 6
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void die(const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/dev/poll/poll.c:97,1
    - Dst: strerror
      Src: /src/haproxy/dev/poll/poll.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: get_errno
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strerror
    linkageType: ''
    returnType: char
    signature: char *get_errno(int ret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/haproxy/dev/poll/poll.c:106,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:110,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:110,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: do_acc
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - get_errno
    - side
    - accept
    - printf
    linkageType: ''
    returnType: void
    signature: void do_acc(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/haproxy/dev/poll/poll.c:117,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:119,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:119,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: do_con
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - get_errno
    - connect
    - printf
    - side
    linkageType: ''
    returnType: void
    signature: void do_con(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/haproxy/dev/poll/poll.c:127,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:129,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:129,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: do_snd
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - get_errno
    - side
    - printf
    - send
    linkageType: ''
    returnType: void
    signature: void do_snd(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/haproxy/dev/poll/poll.c:136,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:138,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:138,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: do_mor
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - get_errno
    - side
    - printf
    - send
    linkageType: ''
    returnType: void
    signature: void do_mor(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/haproxy/dev/poll/poll.c:146,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:148,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:148,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: do_rcv
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - recv
    - get_errno
    - printf
    - side
    linkageType: ''
    returnType: void
    signature: void do_rcv(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/haproxy/dev/poll/poll.c:158,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:167,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:167,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 168
    functionName: do_drn
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - recv
    - get_errno
    - printf
    - side
    linkageType: ''
    returnType: void
    signature: void do_drn(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/haproxy/dev/poll/poll.c:174,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:176,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:176,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: do_shr
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - get_errno
    - printf
    - side
    - shutdown
    linkageType: ''
    returnType: void
    signature: void do_shr(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/haproxy/dev/poll/poll.c:183,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:185,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:185,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: do_shw
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - get_errno
    - printf
    - side
    - shutdown
    linkageType: ''
    returnType: void
    signature: void do_shw(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/haproxy/dev/poll/poll.c:192,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:194,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:194,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: do_shb
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - get_errno
    - printf
    - side
    - shutdown
    linkageType: ''
    returnType: void
    signature: void do_shb(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/dev/poll/poll.c:202,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:204,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:204,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: do_lin
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - get_errno
    - setsockopt
    - printf
    - side
    linkageType: ''
    returnType: void
    signature: void do_lin(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/dev/poll/poll.c:211,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:213,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:213,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: do_clo
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - get_errno
    - close
    - printf
    - side
    linkageType: ''
    returnType: void
    signature: void do_clo(int fd)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: epoll_create
      Src: /src/haproxy/dev/poll/poll.c:228,1
    - Dst: epoll_ctl
      Src: /src/haproxy/dev/poll/poll.c:233,1
    - Dst: epoll_wait
      Src: /src/haproxy/dev/poll/poll.c:234,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:237,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:237,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:237,1
    - Dst: putchar
      Src: /src/haproxy/dev/poll/poll.c:239,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:244,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:245,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:246,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:247,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:248,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:249,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:250,1
    - Dst: putchar
      Src: /src/haproxy/dev/poll/poll.c:253,1
    - Dst: putchar
      Src: /src/haproxy/dev/poll/poll.c:255,1
    - Dst: putchar
      Src: /src/haproxy/dev/poll/poll.c:257,1
    - Dst: epoll_ctl
      Src: /src/haproxy/dev/poll/poll.c:261,1
    - Dst: poll
      Src: /src/haproxy/dev/poll/poll.c:265,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:267,1
    - Dst: side
      Src: /src/haproxy/dev/poll/poll.c:267,1
    - Dst: get_errno
      Src: /src/haproxy/dev/poll/poll.c:267,1
    - Dst: putchar
      Src: /src/haproxy/dev/poll/poll.c:269,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:274,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:275,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:276,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:277,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:278,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:279,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:281,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:283,1
    - Dst: putchar
      Src: /src/haproxy/dev/poll/poll.c:286,1
    - Dst: putchar
      Src: /src/haproxy/dev/poll/poll.c:288,1
    - Dst: putchar
      Src: /src/haproxy/dev/poll/poll.c:290,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 90
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 292
    functionName: do_pol
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - poll
    - epoll_create
    - putchar
    - printf
    - side
    - epoll_ctl
    - get_errno
    - epoll_wait
    linkageType: ''
    returnType: void
    signature: void do_pol(int fd)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/haproxy/dev/poll/poll.c:301,1
    - Dst: die
      Src: /src/haproxy/dev/poll/poll.c:303,1
    - Dst: setsockopt
      Src: /src/haproxy/dev/poll/poll.c:305,1
    - Dst: memset
      Src: /src/haproxy/dev/poll/poll.c:307,1
    - Dst: htons
      Src: /src/haproxy/dev/poll/poll.c:309,1
    - Dst: bind
      Src: /src/haproxy/dev/poll/poll.c:312,1
    - Dst: die
      Src: /src/haproxy/dev/poll/poll.c:313,1
    - Dst: listen
      Src: /src/haproxy/dev/poll/poll.c:315,1
    - Dst: die
      Src: /src/haproxy/dev/poll/poll.c:316,1
    - Dst: getsockname
      Src: /src/haproxy/dev/poll/poll.c:318,1
    - Dst: die
      Src: /src/haproxy/dev/poll/poll.c:319,1
    - Dst: socket
      Src: /src/haproxy/dev/poll/poll.c:323,1
    - Dst: die
      Src: /src/haproxy/dev/poll/poll.c:325,1
    - Dst: usage
      Src: /src/haproxy/dev/poll/poll.c:329,1
    - Dst: exit
      Src: /src/haproxy/dev/poll/poll.c:330,1
    - Dst: write
      Src: /src/haproxy/dev/poll/poll.c:333,1
    - Dst: usage
      Src: /src/haproxy/dev/poll/poll.c:338,1
    - Dst: exit
      Src: /src/haproxy/dev/poll/poll.c:339,1
    - Dst: usage
      Src: /src/haproxy/dev/poll/poll.c:345,1
    - Dst: exit
      Src: /src/haproxy/dev/poll/poll.c:346,1
    - Dst: do_con
      Src: /src/haproxy/dev/poll/poll.c:357,1
    - Dst: do_con
      Src: /src/haproxy/dev/poll/poll.c:367,1
    - Dst: do_acc
      Src: /src/haproxy/dev/poll/poll.c:369,1
    - Dst: die
      Src: /src/haproxy/dev/poll/poll.c:371,1
    - Dst: usage
      Src: /src/haproxy/dev/poll/poll.c:378,1
    - Dst: exit
      Src: /src/haproxy/dev/poll/poll.c:378,1
    - Dst: usage
      Src: /src/haproxy/dev/poll/poll.c:383,1
    - Dst: exit
      Src: /src/haproxy/dev/poll/poll.c:384,1
    - Dst: strchr
      Src: /src/haproxy/dev/poll/poll.c:388,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:392,1
    - Dst: do_acc
      Src: /src/haproxy/dev/poll/poll.c:393,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:395,1
    - Dst: do_con
      Src: /src/haproxy/dev/poll/poll.c:396,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:398,1
    - Dst: do_snd
      Src: /src/haproxy/dev/poll/poll.c:399,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:401,1
    - Dst: do_mor
      Src: /src/haproxy/dev/poll/poll.c:402,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:404,1
    - Dst: do_rcv
      Src: /src/haproxy/dev/poll/poll.c:405,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:407,1
    - Dst: do_drn
      Src: /src/haproxy/dev/poll/poll.c:408,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:410,1
    - Dst: do_shb
      Src: /src/haproxy/dev/poll/poll.c:411,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:413,1
    - Dst: do_shr
      Src: /src/haproxy/dev/poll/poll.c:414,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:416,1
    - Dst: do_shw
      Src: /src/haproxy/dev/poll/poll.c:417,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:419,1
    - Dst: do_lin
      Src: /src/haproxy/dev/poll/poll.c:420,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:422,1
    - Dst: do_clo
      Src: /src/haproxy/dev/poll/poll.c:423,1
    - Dst: strcmp
      Src: /src/haproxy/dev/poll/poll.c:425,1
    - Dst: do_pol
      Src: /src/haproxy/dev/poll/poll.c:426,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:429,1
    - Dst: write
      Src: /src/haproxy/dev/poll/poll.c:436,1
    - Dst: printf
      Src: /src/haproxy/dev/poll/poll.c:439,1
    - Dst: usage
      Src: /src/haproxy/dev/poll/poll.c:440,1
    - Dst: exit
      Src: /src/haproxy/dev/poll/poll.c:441,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 132
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 445
    functionName: main
    functionSourceFile: /src/haproxy/dev/poll/poll.c
    functionUses: 0
    functionsReached:
    - do_snd
    - do_pol
    - exit
    - do_con
    - printf
    - socket
    - do_acc
    - do_drn
    - strcmp
    - setsockopt
    - strchr
    - do_shb
    - bind
    - do_lin
    - do_rcv
    - do_clo
    - do_shr
    - write
    - die
    - listen
    - do_mor
    - htons
    - memset
    - do_shw
    - getsockname
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: ha_backtrace_to_stderr
    functionSourceFile: /src/haproxy/dev/qpack/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ha_backtrace_to_stderr(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 30
    argCount: 3
    argNames:
    - hex
    - bin
    - size
    argTypes:
    - char*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 91
    functionName: hex2bin
    functionSourceFile: /src/haproxy/dev/qpack/decode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex2bin(const char *hex, uint8_t *bin, int size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/dev/qpack/decode.c:102,1
    - Dst: fprintf
      Src: /src/haproxy/dev/qpack/decode.c:105,1
    - Dst: fprintf
      Src: /src/haproxy/dev/qpack/decode.c:107,1
    - Dst: fputc
      Src: /src/haproxy/dev/qpack/decode.c:111,1
    - Dst: fputc
      Src: /src/haproxy/dev/qpack/decode.c:113,1
    - Dst: fprintf
      Src: /src/haproxy/dev/qpack/decode.c:117,1
    - Dst: fprintf
      Src: /src/haproxy/dev/qpack/decode.c:119,1
    - Dst: fprintf
      Src: /src/haproxy/dev/qpack/decode.c:122,1
    - Dst: isprint
      Src: /src/haproxy/dev/qpack/decode.c:125,1
    - Dst: fputc
      Src: /src/haproxy/dev/qpack/decode.c:126,1
    - Dst: fputc
      Src: /src/haproxy/dev/qpack/decode.c:128,1
    - Dst: fputc
      Src: /src/haproxy/dev/qpack/decode.c:131,1
    - Dst: fputc
      Src: /src/haproxy/dev/qpack/decode.c:133,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - out
    - pfx
    - buf
    - baseaddr
    - len
    argTypes:
    - FILE*
    - char*
    - char*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 135
    functionName: debug_hexdump
    functionSourceFile: /src/haproxy/dev/qpack/decode.c
    functionUses: 1
    functionsReached:
    - fprintf
    - isprint
    - fputc
    linkageType: ''
    returnType: void
    signature: "void debug_hexdump(FILE *out, const char *pfx, const char *buf,\n
      \                  unsigned int baseaddr, int len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/haproxy/dev/qpack/decode.c:143,1
    - Dst: hex2bin
      Src: /src/haproxy/dev/qpack/decode.c:146,1
    - Dst: qpack_decode_fs
      Src: /src/haproxy/dev/qpack/decode.c:149,1
    - Dst: fprintf
      Src: /src/haproxy/dev/qpack/decode.c:152,1
    - Dst: fprintf
      Src: /src/haproxy/dev/qpack/decode.c:157,1
    - Dst: isteq
      Src: /src/haproxy/dev/qpack/decode.c:159,1
    - Dst: ist
      Src: /src/haproxy/dev/qpack/decode.c:159,1
    - Dst: fprintf
      Src: /src/haproxy/dev/qpack/decode.c:162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 171
    functionName: main
    functionSourceFile: /src/haproxy/dev/qpack/decode.c
    functionUses: 0
    functionsReached:
    - qpack_decode_fs
    - ist
    - hex2bin
    - isteq
    - fprintf
    - fgets
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nl_cli_alloc_socket
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:24,1
    - Dst: nl_cli_connect
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:25,1
    - Dst: nl_cli_link_alloc_cache
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:26,1
    - Dst: nl_cli_qdisc_alloc
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: qdisc_init
    functionSourceFile: /src/haproxy/dev/plug_qdisc/plug_qdisc.c
    functionUses: 0
    functionsReached:
    - nl_cli_link_alloc_cache
    - nl_cli_alloc_socket
    - nl_cli_connect
    - nl_cli_qdisc_alloc
    linkageType: ''
    returnType: int
    signature: int qdisc_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rtnl_qdisc_plug_release_indefinite
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:38,1
    - Dst: rtnl_qdisc_add
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: plug_qdisc_release_indefinite_buffer
    functionSourceFile: /src/haproxy/dev/plug_qdisc/plug_qdisc.c
    functionUses: 0
    functionsReached:
    - rtnl_qdisc_plug_release_indefinite
    - rtnl_qdisc_add
    linkageType: ''
    returnType: int
    signature: int plug_qdisc_release_indefinite_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rtnl_qdisc_plug_buffer
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:45,1
    - Dst: rtnl_qdisc_add
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: plug_qdisc_plug_buffer
    functionSourceFile: /src/haproxy/dev/plug_qdisc/plug_qdisc.c
    functionUses: 0
    functionsReached:
    - rtnl_qdisc_plug_buffer
    - rtnl_qdisc_add
    linkageType: ''
    returnType: int
    signature: int plug_qdisc_plug_buffer(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qdisc_init
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:59,1
    - Dst: nl_cli_tc_parse_dev
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:62,1
    - Dst: nl_cli_tc_parse_parent
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:63,1
    - Dst: rtnl_tc_get_ifindex
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:64,1
    - Dst: rtnl_tc_get_parent
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:67,1
    - Dst: nl_cli_tc_parse_handle
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:70,1
    - Dst: rtnl_tc_set_kind
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:72,1
    - Dst: rtnl_qdisc_plug_set_limit
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:74,1
    - Dst: rtnl_qdisc_add
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:76,1
    - Dst: fprintf
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:78,1
    - Dst: nl_geterror
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:78,1
    - Dst: plug_qdisc_release_indefinite_buffer
      Src: /src/haproxy/dev/plug_qdisc/plug_qdisc.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - device
    - parent
    - id
    - limit
    argTypes:
    - char*
    - char*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: plug_qdisc_attach
    functionSourceFile: /src/haproxy/dev/plug_qdisc/plug_qdisc.c
    functionUses: 0
    functionsReached:
    - nl_cli_tc_parse_handle
    - rtnl_qdisc_plug_set_limit
    - rtnl_qdisc_add
    - plug_qdisc_release_indefinite_buffer
    - nl_cli_tc_parse_dev
    - rtnl_tc_get_ifindex
    - rtnl_tc_set_kind
    - rtnl_tc_get_parent
    - qdisc_init
    - nl_geterror
    - fprintf
    - nl_cli_tc_parse_parent
    linkageType: ''
    returnType: int
    signature: int plug_qdisc_attach(char *device, char *parent, char *id, uint32_t
      limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/haproxy/dev/ncpu/ncpu.c:19,1
    - Dst: atoi
      Src: /src/haproxy/dev/ncpu/ncpu.c:22,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: sysconf
    functionSourceFile: /src/haproxy/dev/ncpu/ncpu.c
    functionUses: 1
    functionsReached:
    - atoi
    - getenv
    linkageType: ''
    returnType: long
    signature: long sysconf(int name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CPU_ZERO_S
      Src: /src/haproxy/dev/ncpu/ncpu.c:37,1
    - Dst: getenv
      Src: /src/haproxy/dev/ncpu/ncpu.c:39,1
    - Dst: atoi
      Src: /src/haproxy/dev/ncpu/ncpu.c:40,1
    - Dst: CPU_SET_S
      Src: /src/haproxy/dev/ncpu/ncpu.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pid
    - cpusetsize
    - mask
    argTypes:
    - pid_t
    - size_t
    - cpu_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: sched_getaffinity
    functionSourceFile: /src/haproxy/dev/ncpu/ncpu.c
    functionUses: 0
    functionsReached:
    - atoi
    - getenv
    - CPU_SET_S
    - CPU_ZERO_S
    linkageType: ''
    returnType: int
    signature: int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pid
    - cpusetsize
    - mask
    argTypes:
    - pid_t
    - size_t
    - cpu_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: sched_setaffinity
    functionSourceFile: /src/haproxy/dev/ncpu/ncpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sched_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t
      *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/dev/ncpu/ncpu.c:58,1
    - Dst: exit
      Src: /src/haproxy/dev/ncpu/ncpu.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: usage
    functionSourceFile: /src/haproxy/dev/ncpu/ncpu.c
    functionUses: 6
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(const char *argv0)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: readlink
      Src: /src/haproxy/dev/ncpu/ncpu.c:76,1
    - Dst: snprintf
      Src: /src/haproxy/dev/ncpu/ncpu.c:80,1
    - Dst: usage
      Src: /src/haproxy/dev/ncpu/ncpu.c:87,1
    - Dst: strcmp
      Src: /src/haproxy/dev/ncpu/ncpu.c:89,1
    - Dst: strcmp
      Src: /src/haproxy/dev/ncpu/ncpu.c:94,1
    - Dst: usage
      Src: /src/haproxy/dev/ncpu/ncpu.c:96,1
    - Dst: setenv
      Src: /src/haproxy/dev/ncpu/ncpu.c:98,1
    - Dst: usage
      Src: /src/haproxy/dev/ncpu/ncpu.c:99,1
    - Dst: getenv
      Src: /src/haproxy/dev/ncpu/ncpu.c:112,1
    - Dst: strlen
      Src: /src/haproxy/dev/ncpu/ncpu.c:114,1
    - Dst: realloc
      Src: /src/haproxy/dev/ncpu/ncpu.c:115,1
    - Dst: perror
      Src: /src/haproxy/dev/ncpu/ncpu.c:117,1
    - Dst: exit
      Src: /src/haproxy/dev/ncpu/ncpu.c:118,1
    - Dst: memcpy
      Src: /src/haproxy/dev/ncpu/ncpu.c:121,1
    - Dst: setenv
      Src: /src/haproxy/dev/ncpu/ncpu.c:128,1
    - Dst: perror
      Src: /src/haproxy/dev/ncpu/ncpu.c:129,1
    - Dst: exit
      Src: /src/haproxy/dev/ncpu/ncpu.c:130,1
    - Dst: execvp
      Src: /src/haproxy/dev/ncpu/ncpu.c:133,1
    - Dst: perror
      Src: /src/haproxy/dev/ncpu/ncpu.c:134,1
    - Dst: exit
      Src: /src/haproxy/dev/ncpu/ncpu.c:135,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 136
    functionName: main
    functionSourceFile: /src/haproxy/dev/ncpu/ncpu.c
    functionUses: 0
    functionsReached:
    - exit
    - perror
    - readlink
    - memcpy
    - setenv
    - strcmp
    - getenv
    - strlen
    - realloc
    - execvp
    - usage
    - snprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/dev/base64/base64rev-gen.c:43,1
    - Dst: printf
      Src: /src/haproxy/dev/base64/base64rev-gen.c:54,1
    - Dst: printf
      Src: /src/haproxy/dev/base64/base64rev-gen.c:55,1
    - Dst: printf
      Src: /src/haproxy/dev/base64/base64rev-gen.c:56,1
    - Dst: printf
      Src: /src/haproxy/dev/base64/base64rev-gen.c:57,1
    - Dst: printf
      Src: /src/haproxy/dev/base64/base64rev-gen.c:60,1
    - Dst: printf
      Src: /src/haproxy/dev/base64/base64rev-gen.c:63,1
    - Dst: printf
      Src: /src/haproxy/dev/base64/base64rev-gen.c:65,1
    - Dst: printf
      Src: /src/haproxy/dev/base64/base64rev-gen.c:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 70
    functionName: main
    functionSourceFile: /src/haproxy/dev/base64/base64rev-gen.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: rnd32
    functionSourceFile: /src/haproxy/dev/phash/phash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned rnd32()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 61
    functionName: hash
    functionSourceFile: /src/haproxy/dev/phash/phash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned hash(unsigned i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: atol
      Src: /src/haproxy/dev/phash/phash.c:68,1
    - Dst: atol
      Src: /src/haproxy/dev/phash/phash.c:69,1
    - Dst: printf
      Src: /src/haproxy/dev/phash/phash.c:71,1
    - Dst: hash
      Src: /src/haproxy/dev/phash/phash.c:71,1
    - Dst: hash
      Src: /src/haproxy/dev/phash/phash.c:71,1
    - Dst: rnd32
      Src: /src/haproxy/dev/phash/phash.c:78,1
    - Dst: hash
      Src: /src/haproxy/dev/phash/phash.c:84,1
    - Dst: printf
      Src: /src/haproxy/dev/phash/phash.c:102,1
    - Dst: printf
      Src: /src/haproxy/dev/phash/phash.c:106,1
    - Dst: printf
      Src: /src/haproxy/dev/phash/phash.c:108,1
    - Dst: printf
      Src: /src/haproxy/dev/phash/phash.c:112,1
    - Dst: hash
      Src: /src/haproxy/dev/phash/phash.c:112,1
    - Dst: hash
      Src: /src/haproxy/dev/phash/phash.c:112,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 113
    functionName: main
    functionSourceFile: /src/haproxy/dev/phash/phash.c
    functionUses: 0
    functionsReached:
    - atol
    - hash
    - printf
    - rnd32
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/haproxy/dev/gdb/libs-from-core.c:47,1
    - Dst: fprintf
      Src: /src/haproxy/dev/gdb/libs-from-core.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: usage
    functionSourceFile: /src/haproxy/dev/gdb/libs-from-core.c
    functionUses: 7
    functionsReached:
    - fprintf
    - strrchr
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/dev/gdb/libs-from-core.c:76,1
    - Dst: strcmp
      Src: /src/haproxy/dev/gdb/libs-from-core.c:78,1
    - Dst: usage
      Src: /src/haproxy/dev/gdb/libs-from-core.c:87,1
    - Dst: exit
      Src: /src/haproxy/dev/gdb/libs-from-core.c:88,1
    - Dst: open
      Src: /src/haproxy/dev/gdb/libs-from-core.c:91,1
    - Dst: fstat
      Src: /src/haproxy/dev/gdb/libs-from-core.c:94,1
    - Dst: mmap
      Src: /src/haproxy/dev/gdb/libs-from-core.c:95,1
    - Dst: perror
      Src: /src/haproxy/dev/gdb/libs-from-core.c:97,1
    - Dst: exit
      Src: /src/haproxy/dev/gdb/libs-from-core.c:98,1
    - Dst: memcmp
      Src: /src/haproxy/dev/gdb/libs-from-core.c:105,1
    - Dst: fprintf
      Src: /src/haproxy/dev/gdb/libs-from-core.c:106,1
    - Dst: exit
      Src: /src/haproxy/dev/gdb/libs-from-core.c:107,1
    - Dst: fprintf
      Src: /src/haproxy/dev/gdb/libs-from-core.c:111,1
    - Dst: exit
      Src: /src/haproxy/dev/gdb/libs-from-core.c:112,1
    - Dst: fprintf
      Src: /src/haproxy/dev/gdb/libs-from-core.c:116,1
    - Dst: exit
      Src: /src/haproxy/dev/gdb/libs-from-core.c:117,1
    - Dst: memcmp
      Src: /src/haproxy/dev/gdb/libs-from-core.c:140,1
    - Dst: memcmp
      Src: /src/haproxy/dev/gdb/libs-from-core.c:144,1
    - Dst: memcmp
      Src: /src/haproxy/dev/gdb/libs-from-core.c:148,1
    - Dst: printf
      Src: /src/haproxy/dev/gdb/libs-from-core.c:154,1
    - Dst: write
      Src: /src/haproxy/dev/gdb/libs-from-core.c:156,1
    - Dst: fprintf
      Src: /src/haproxy/dev/gdb/libs-from-core.c:160,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 162
    functionName: main
    functionSourceFile: /src/haproxy/dev/gdb/libs-from-core.c
    functionUses: 0
    functionsReached:
    - memcmp
    - exit
    - perror
    - mmap
    - strcmp
    - open
    - printf
    - write
    - fstat
    - fprintf
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/haproxy/dev/gdb/pm-from-core.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - haystack
    - haystacklen
    - needle
    - needlelen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: my_memmem
    functionSourceFile: /src/haproxy/dev/gdb/pm-from-core.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void *my_memmem(const void *haystack, size_t haystacklen,\n                const
      void *needle, size_t needlelen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/dev/gdb/pm-from-core.c:71,1
    - Dst: exit
      Src: /src/haproxy/dev/gdb/pm-from-core.c:72,1
    - Dst: open
      Src: /src/haproxy/dev/gdb/pm-from-core.c:75,1
    - Dst: fstat
      Src: /src/haproxy/dev/gdb/pm-from-core.c:78,1
    - Dst: mmap
      Src: /src/haproxy/dev/gdb/pm-from-core.c:79,1
    - Dst: perror
      Src: /src/haproxy/dev/gdb/pm-from-core.c:81,1
    - Dst: exit
      Src: /src/haproxy/dev/gdb/pm-from-core.c:82,1
    - Dst: memcmp
      Src: /src/haproxy/dev/gdb/pm-from-core.c:89,1
    - Dst: fprintf
      Src: /src/haproxy/dev/gdb/pm-from-core.c:90,1
    - Dst: exit
      Src: /src/haproxy/dev/gdb/pm-from-core.c:91,1
    - Dst: fprintf
      Src: /src/haproxy/dev/gdb/pm-from-core.c:95,1
    - Dst: exit
      Src: /src/haproxy/dev/gdb/pm-from-core.c:96,1
    - Dst: fprintf
      Src: /src/haproxy/dev/gdb/pm-from-core.c:100,1
    - Dst: exit
      Src: /src/haproxy/dev/gdb/pm-from-core.c:101,1
    - Dst: my_memmem
      Src: /src/haproxy/dev/gdb/pm-from-core.c:125,1
    - Dst: printf
      Src: /src/haproxy/dev/gdb/pm-from-core.c:131,1
    - Dst: printf
      Src: /src/haproxy/dev/gdb/pm-from-core.c:132,1
    - Dst: printf
      Src: /src/haproxy/dev/gdb/pm-from-core.c:133,1
    - Dst: printf
      Src: /src/haproxy/dev/gdb/pm-from-core.c:134,1
    - Dst: printf
      Src: /src/haproxy/dev/gdb/pm-from-core.c:135,1
    - Dst: printf
      Src: /src/haproxy/dev/gdb/pm-from-core.c:139,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 141
    functionName: main
    functionSourceFile: /src/haproxy/dev/gdb/pm-from-core.c
    functionUses: 0
    functionsReached:
    - memcmp
    - exit
    - perror
    - my_memmem
    - mmap
    - open
    - printf
    - fstat
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/dev/udp/udp-perturb.c:96,1
    - Dst: vfprintf
      Src: /src/haproxy/dev/udp/udp-perturb.c:97,1
    - Dst: va_end
      Src: /src/haproxy/dev/udp/udp-perturb.c:98,1
    - Dst: exit
      Src: /src/haproxy/dev/udp/udp-perturb.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - code
    - format
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: die
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 7
    functionsReached:
    - va_end
    - va_start
    - vfprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void die(int code, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - range
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: prng
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int prng(unsigned int range)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/haproxy/dev/udp/udp-perturb.c:124,1
    - Dst: atoi
      Src: /src/haproxy/dev/udp/udp-perturb.c:129,1
    - Dst: snprintf
      Src: /src/haproxy/dev/udp/udp-perturb.c:131,1
    - Dst: memset
      Src: /src/haproxy/dev/udp/udp-perturb.c:136,1
    - Dst: strrchr
      Src: /src/haproxy/dev/udp/udp-perturb.c:138,1
    - Dst: htons
      Src: /src/haproxy/dev/udp/udp-perturb.c:141,1
    - Dst: inet_pton
      Src: /src/haproxy/dev/udp/udp-perturb.c:143,1
    - Dst: snprintf
      Src: /src/haproxy/dev/udp/udp-perturb.c:144,1
    - Dst: htons
      Src: /src/haproxy/dev/udp/udp-perturb.c:150,1
    - Dst: inet_pton
      Src: /src/haproxy/dev/udp/udp-perturb.c:157,1
    - Dst: gethostbyname
      Src: /src/haproxy/dev/udp/udp-perturb.c:158,1
    - Dst: snprintf
      Src: /src/haproxy/dev/udp/udp-perturb.c:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - str
    - ss
    - err
    argTypes:
    - char*
    - struct sockaddr_storage*
    - struct errmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 168
    functionName: addr_to_ss
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 3
    functionsReached:
    - inet_pton
    - memset
    - gethostbyname
    - strrchr
    - atoi
    - snprintf
    - htons
    linkageType: ''
    returnType: int
    signature: int addr_to_ss(char *str, struct sockaddr_storage *ss, struct errmsg
      *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/haproxy/dev/udp/udp-perturb.c:175,1
    - Dst: snprintf
      Src: /src/haproxy/dev/udp/udp-perturb.c:176,1
    - Dst: strerror
      Src: /src/haproxy/dev/udp/udp-perturb.c:176,1
    - Dst: fcntl
      Src: /src/haproxy/dev/udp/udp-perturb.c:180,1
    - Dst: snprintf
      Src: /src/haproxy/dev/udp/udp-perturb.c:181,1
    - Dst: strerror
      Src: /src/haproxy/dev/udp/udp-perturb.c:181,1
    - Dst: setsockopt
      Src: /src/haproxy/dev/udp/udp-perturb.c:185,1
    - Dst: snprintf
      Src: /src/haproxy/dev/udp/udp-perturb.c:186,1
    - Dst: strerror
      Src: /src/haproxy/dev/udp/udp-perturb.c:186,1
    - Dst: setsockopt
      Src: /src/haproxy/dev/udp/udp-perturb.c:191,1
    - Dst: snprintf
      Src: /src/haproxy/dev/udp/udp-perturb.c:192,1
    - Dst: strerror
      Src: /src/haproxy/dev/udp/udp-perturb.c:192,1
    - Dst: bind
      Src: /src/haproxy/dev/udp/udp-perturb.c:196,1
    - Dst: snprintf
      Src: /src/haproxy/dev/udp/udp-perturb.c:198,1
    - Dst: strerror
      Src: /src/haproxy/dev/udp/udp-perturb.c:198,1
    - Dst: close
      Src: /src/haproxy/dev/udp/udp-perturb.c:207,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - addr
    - err
    argTypes:
    - struct sockaddr_storage*
    - struct errmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 210
    functionName: create_udp_listener
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 0
    functionsReached:
    - strerror
    - fcntl
    - setsockopt
    - bind
    - socket
    - close
    - snprintf
    linkageType: ''
    returnType: int
    signature: int create_udp_listener(struct sockaddr_storage *addr, struct errmsg
      *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - pfd
    - frt_fd
    - conns
    - nbconn
    argTypes:
    - struct pollfd*
    - int
    - struct conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 232
    functionName: update_pfd
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int update_pfd(struct pollfd *pfd, int frt_fd, struct conn *conns,
      int nbconn)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - conns
    - nbconn
    - fd
    argTypes:
    - struct conn*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: conn_bck_lookup
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct conn
    signature: struct conn *conn_bck_lookup(struct conn *conns, int nbconn, int fd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/haproxy/dev/udp/udp-perturb.c:255,1
    - Dst: fcntl
      Src: /src/haproxy/dev/udp/udp-perturb.c:259,1
    - Dst: setsockopt
      Src: /src/haproxy/dev/udp/udp-perturb.c:262,1
    - Dst: connect
      Src: /src/haproxy/dev/udp/udp-perturb.c:265,1
    - Dst: close
      Src: /src/haproxy/dev/udp/udp-perturb.c:274,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - ss
    argTypes:
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 276
    functionName: add_connection
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 0
    functionsReached:
    - fcntl
    - setsockopt
    - connect
    - socket
    - close
    linkageType: ''
    returnType: int
    signature: int add_connection(struct sockaddr_storage *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prng
      Src: /src/haproxy/dev/udp/udp-perturb.c:281,1
    - Dst: prng
      Src: /src/haproxy/dev/udp/udp-perturb.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - buflen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 288
    functionName: pktbuf_apply_corruption
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 0
    functionsReached:
    - prng
    linkageType: ''
    returnType: void
    signature: void pktbuf_apply_corruption(char *buf, size_t buflen)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: recvfrom
      Src: /src/haproxy/dev/udp/udp-perturb.c:313,1
    - Dst: prng
      Src: /src/haproxy/dev/udp/udp-perturb.c:318,1
    - Dst: prng
      Src: /src/haproxy/dev/udp/udp-perturb.c:320,1
    - Dst: pktbuf_apply_corruption
      Src: /src/haproxy/dev/udp/udp-perturb.c:338,1
    - Dst: memcmp
      Src: /src/haproxy/dev/udp/udp-perturb.c:344,1
    - Dst: memcpy
      Src: /src/haproxy/dev/udp/udp-perturb.c:359,1
    - Dst: add_connection
      Src: /src/haproxy/dev/udp/udp-perturb.c:366,1
    - Dst: update_pfd
      Src: /src/haproxy/dev/udp/udp-perturb.c:367,1
    - Dst: send
      Src: /src/haproxy/dev/udp/udp-perturb.c:374,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 4
    argNames:
    - fd
    - pfd
    - conns
    - nbconn
    argTypes:
    - int
    - struct pollfd*
    - struct conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 376
    functionName: handle_frt
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 0
    functionsReached:
    - memcmp
    - pktbuf_apply_corruption
    - recvfrom
    - memcpy
    - prng
    - add_connection
    - send
    - update_pfd
    linkageType: ''
    returnType: int
    signature: int handle_frt(int fd, struct pollfd *pfd, struct conn *conns, int
      nbconn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: recvfrom
      Src: /src/haproxy/dev/udp/udp-perturb.c:395,1
    - Dst: prng
      Src: /src/haproxy/dev/udp/udp-perturb.c:400,1
    - Dst: prng
      Src: /src/haproxy/dev/udp/udp-perturb.c:402,1
    - Dst: pktbuf_apply_corruption
      Src: /src/haproxy/dev/udp/udp-perturb.c:420,1
    - Dst: conn_bck_lookup
      Src: /src/haproxy/dev/udp/udp-perturb.c:422,1
    - Dst: sendto
      Src: /src/haproxy/dev/udp/udp-perturb.c:426,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - fd
    - pfd
    - conns
    - nbconn
    argTypes:
    - int
    - struct pollfd*
    - struct conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 431
    functionName: handle_bck
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 0
    functionsReached:
    - conn_bck_lookup
    - pktbuf_apply_corruption
    - recvfrom
    - prng
    - sendto
    linkageType: ''
    returnType: int
    signature: int handle_bck(int fd, struct pollfd *pfd, struct conn *conns, int
      nbconn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/dev/udp/udp-perturb.c:436,1
    - Dst: strrchr
      Src: /src/haproxy/dev/udp/udp-perturb.c:437,1
    - Dst: die
      Src: /src/haproxy/dev/udp/udp-perturb.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - status
    - name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 448
    functionName: usage
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 8
    functionsReached:
    - strrchr
    - die
    - strchr
    linkageType: ''
    returnType: void
    signature: void usage(int status, const char *name)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/dev/udp/udp-perturb.c:459,1
    - Dst: getopt
      Src: /src/haproxy/dev/udp/udp-perturb.c:461,1
    - Dst: atoi
      Src: /src/haproxy/dev/udp/udp-perturb.c:464,1
    - Dst: atol
      Src: /src/haproxy/dev/udp/udp-perturb.c:467,1
    - Dst: atol
      Src: /src/haproxy/dev/udp/udp-perturb.c:470,1
    - Dst: atol
      Src: /src/haproxy/dev/udp/udp-perturb.c:473,1
    - Dst: atol
      Src: /src/haproxy/dev/udp/udp-perturb.c:476,1
    - Dst: usage
      Src: /src/haproxy/dev/udp/udp-perturb.c:479,1
    - Dst: usage
      Src: /src/haproxy/dev/udp/udp-perturb.c:484,1
    - Dst: addr_to_ss
      Src: /src/haproxy/dev/udp/udp-perturb.c:486,1
    - Dst: die
      Src: /src/haproxy/dev/udp/udp-perturb.c:487,1
    - Dst: addr_to_ss
      Src: /src/haproxy/dev/udp/udp-perturb.c:489,1
    - Dst: die
      Src: /src/haproxy/dev/udp/udp-perturb.c:490,1
    - Dst: calloc
      Src: /src/haproxy/dev/udp/udp-perturb.c:492,1
    - Dst: die
      Src: /src/haproxy/dev/udp/udp-perturb.c:494,1
    - Dst: create_udp_listener
      Src: /src/haproxy/dev/udp/udp-perturb.c:496,1
    - Dst: die
      Src: /src/haproxy/dev/udp/udp-perturb.c:498,1
    - Dst: update_pfd
      Src: /src/haproxy/dev/udp/udp-perturb.c:504,1
    - Dst: poll
      Src: /src/haproxy/dev/udp/udp-perturb.c:510,1
    - Dst: handle_frt
      Src: /src/haproxy/dev/udp/udp-perturb.c:520,1
    - Dst: handle_bck
      Src: /src/haproxy/dev/udp/udp-perturb.c:524,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 450
    functionDepth: 3
    functionLinenumber: 450
    functionLinenumberEnd: 527
    functionName: main
    functionSourceFile: /src/haproxy/dev/udp/udp-perturb.c
    functionUses: 0
    functionsReached:
    - malloc
    - poll
    - atol
    - calloc
    - handle_bck
    - handle_frt
    - addr_to_ss
    - update_pfd
    - die
    - create_udp_listener
    - getopt
    - atoi
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 723
    functionName: huff_enc
    functionSourceFile: /src/haproxy/src/hpack-huff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int huff_enc(const char *s, char *out)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: read_n32
      Src: /src/haproxy/src/hpack-huff.c:761,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 4
    argNames:
    - huff
    - hlen
    - out
    - olen
    argTypes:
    - uint8_t*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 861
    functionName: huff_dec
    functionSourceFile: /src/haproxy/src/hpack-huff.c
    functionUses: 0
    functionsReached:
    - read_n32
    linkageType: ''
    returnType: int
    signature: int huff_dec(const uint8_t *huff, int hlen, char *out, int olen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/cfgdiag.c:23,1
    - Dst: _ha_vdiag_warning
      Src: /src/haproxy/src/cfgdiag.c:25,1
    - Dst: va_end
      Src: /src/haproxy/src/cfgdiag.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ret
    - fmt
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: diag_warning
    functionSourceFile: /src/haproxy/src/cfgdiag.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - _ha_vdiag_warning
    linkageType: ''
    returnType: void
    signature: void diag_warning(int *ret, char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/cfgdiag.c:36,1
    - Dst: fprintf
      Src: /src/haproxy/src/cfgdiag.c:37,1
    - Dst: exit
      Src: /src/haproxy/src/cfgdiag.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: diag_alloc
    functionSourceFile: /src/haproxy/src/cfgdiag.c
    functionUses: 0
    functionsReached:
    - malloc
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void *diag_alloc(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebis_lookup
      Src: /src/haproxy/src/cfgdiag.c:56,1
    - Dst: diag_warning
      Src: /src/haproxy/src/cfgdiag.c:58,1
    - Dst: diag_alloc
      Src: /src/haproxy/src/cfgdiag.c:62,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/cfgdiag.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ret
    - srv
    - cookies_tree
    argTypes:
    - int*
    - struct server*
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 66
    functionName: srv_diag_cookies
    functionSourceFile: /src/haproxy/src/cfgdiag.c
    functionUses: 0
    functionsReached:
    - ebis_insert
    - diag_alloc
    - ebis_lookup
    - diag_warning
    linkageType: ''
    returnType: void
    signature: void srv_diag_cookies(int *ret, struct server *srv, struct eb_root
      *cookies_tree)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: diag_warning
      Src: /src/haproxy/src/cfgdiag.c:75,1
    - Dst: be_reuse_mode
      Src: /src/haproxy/src/cfgdiag.c:78,1
    - Dst: diag_warning
      Src: /src/haproxy/src/cfgdiag.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - ret
    - srv
    - px
    argTypes:
    - int*
    - struct server*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: srv_diag_check_reuse
    functionSourceFile: /src/haproxy/src/cfgdiag.c
    functionUses: 0
    functionsReached:
    - be_reuse_mode
    - diag_warning
    linkageType: ''
    returnType: void
    signature: void srv_diag_check_reuse(int *ret, struct server *srv, struct proxy
      *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srv_diag_cookies
      Src: /src/haproxy/src/cfgdiag.c:95,1
    - Dst: srv_diag_check_reuse
      Src: /src/haproxy/src/cfgdiag.c:96,1
    - Dst: ebpt_first
      Src: /src/haproxy/src/cfgdiag.c:100,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/cfgdiag.c:101,1
    - Dst: free
      Src: /src/haproxy/src/cfgdiag.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: run_servers_diag
    functionSourceFile: /src/haproxy/src/cfgdiag.c
    functionUses: 0
    functionsReached:
    - srv_diag_check_reuse
    - ebpt_delete
    - free
    - srv_diag_cookies
    - ebpt_first
    linkageType: ''
    returnType: void
    signature: void run_servers_diag(int *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_servers_diag
      Src: /src/haproxy/src/cfgdiag.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: cfg_run_diagnostics
    functionSourceFile: /src/haproxy/src/cfgdiag.c
    functionUses: 0
    functionsReached:
    - run_servers_diag
    linkageType: ''
    returnType: int
    signature: int cfg_run_diagnostics()
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: sock_inet4_make_foreign
      Src: /src/haproxy/src/proto_tcp.c:272,1
    - Dst: sock_inet6_make_foreign
      Src: /src/haproxy/src/proto_tcp.c:280,1
    - Dst: memset
      Src: /src/haproxy/src/proto_tcp.c:289,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:310,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_tcp.c:312,1
    - Dst: bind
      Src: /src/haproxy/src/proto_tcp.c:313,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_tcp.c:313,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_tcp.c:319,1
    - Dst: bind
      Src: /src/haproxy/src/proto_tcp.c:320,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_tcp.c:320,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 4
    argNames:
    - fd
    - flags
    - local
    - remote
    argTypes:
    - int
    - int
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 334
    functionName: tcp_bind_socket
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - sock_inet4_make_foreign
    - memset
    - get_addr_len
    - sock_inet6_make_foreign
    - setsockopt
    - is_inet_addr
    - bind
    linkageType: ''
    returnType: int
    signature: int tcp_bind_socket(int fd, int flags, struct sockaddr_storage *local,
      struct sockaddr_storage *remote)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_tcp.c:375,1
    - Dst: obj_type
      Src: /src/haproxy/src/proto_tcp.c:379,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/proto_tcp.c:381,1
    - Dst: __objt_server
      Src: /src/haproxy/src/proto_tcp.c:385,1
    - Dst: sock_create_server_socket
      Src: /src/haproxy/src/proto_tcp.c:404,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:410,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:414,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:419,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:424,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_tcp.c:442,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:458,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_tcp.c:466,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_tcp.c:472,1
    - Dst: port_range_alloc_port
      Src: /src/haproxy/src/proto_tcp.c:479,1
    - Dst: set_host_port
      Src: /src/haproxy/src/proto_tcp.c:486,1
    - Dst: tcp_bind_socket
      Src: /src/haproxy/src/proto_tcp.c:488,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:496,1
    - Dst: tcp_bind_socket
      Src: /src/haproxy/src/proto_tcp.c:498,1
    - Dst: unlikely
      Src: /src/haproxy/src/proto_tcp.c:503,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_tcp.c:504,1
    - Dst: close
      Src: /src/haproxy/src/proto_tcp.c:506,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_tcp.c:509,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_tcp.c:511,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_tcp.c:515,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_tcp.c:517,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:535,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:545,1
    - Dst: strlen
      Src: /src/haproxy/src/proto_tcp.c:545,1
    - Dst: memset
      Src: /src/haproxy/src/proto_tcp.c:554,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_tcp.c:556,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_tcp.c:558,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/proto_tcp.c:560,1
    - Dst: strlen
      Src: /src/haproxy/src/proto_tcp.c:561,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:562,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:572,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:577,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:581,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:585,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:589,1
    - Dst: connect
      Src: /src/haproxy/src/proto_tcp.c:592,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_tcp.c:592,1
    - Dst: qfprintf
      Src: /src/haproxy/src/proto_tcp.c:612,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_tcp.c:613,1
    - Dst: close
      Src: /src/haproxy/src/proto_tcp.c:615,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_tcp.c:616,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_tcp.c:621,1
    - Dst: close
      Src: /src/haproxy/src/proto_tcp.c:623,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_tcp.c:630,1
    - Dst: close
      Src: /src/haproxy/src/proto_tcp.c:632,1
    - Dst: conn_ctrl_init
      Src: /src/haproxy/src/proto_tcp.c:643,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/proto_tcp.c:644,1
    - Dst: fd_want_send
      Src: /src/haproxy/src/proto_tcp.c:647,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/proto_tcp.c:648,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/proto_tcp.c:649,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 168
    argCount: 2
    argNames:
    - conn
    - flags
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 653
    functionName: tcp_connect_server
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HA_ATOMIC_OR
    - fd_cant_send
    - close
    - get_addr_len
    - setsockopt
    - __objt_proxy
    - tcp_bind_socket
    - connect
    - obj_type
    - sock_create_server_socket
    - qfprintf
    - fd_cant_recv
    - port_range_alloc_port
    - memcpy
    - port_range_release_port
    - fd_want_send
    - strlcpy2
    - conn_ctrl_init
    - send_log
    - __objt_server
    - memset
    - BUG_ON
    - is_inet_addr
    - ha_alert
    - set_host_port
    - strlen
    linkageType: ''
    returnType: int
    signature: int tcp_connect_server(struct connection *conn, int flags)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/proto_tcp.c:672,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_tcp.c:678,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:690,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:700,1
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_tcp.c:704,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:708,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:715,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:717,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:718,1
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_tcp.c:740,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:743,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:744,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:745,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:758,1
    - Dst: strlen
      Src: /src/haproxy/src/proto_tcp.c:758,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:759,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:760,1
    - Dst: memset
      Src: /src/haproxy/src/proto_tcp.c:770,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_tcp.c:772,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_tcp.c:774,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/proto_tcp.c:776,1
    - Dst: strlen
      Src: /src/haproxy/src/proto_tcp.c:777,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:778,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:779,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:780,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:787,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:789,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:790,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:794,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:798,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:800,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:801,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:805,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:812,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:813,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:814,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:818,1
    - Dst: listener_backlog
      Src: /src/haproxy/src/proto_tcp.c:824,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:825,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:826,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:827,1
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_tcp.c:837,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:839,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:841,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:842,1
    - Dst: sock_accepting_conn
      Src: /src/haproxy/src/proto_tcp.c:849,1
    - Dst: listen
      Src: /src/haproxy/src/proto_tcp.c:852,1
    - Dst: listener_backlog
      Src: /src/haproxy/src/proto_tcp.c:852,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:854,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:855,1
    - Dst: memset
      Src: /src/haproxy/src/proto_tcp.c:863,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/proto_tcp.c:864,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:865,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:866,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:867,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:874,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:876,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/proto_tcp.c:881,1
    - Dst: fd_delete
      Src: /src/haproxy/src/proto_tcp.c:885,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/proto_tcp.c:890,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_tcp.c:891,1
    - Dst: get_host_port
      Src: /src/haproxy/src/proto_tcp.c:891,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/proto_tcp.c:893,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 137
    argCount: 3
    argNames:
    - listener
    - errmsg
    - errlen
    argTypes:
    - struct listener*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 896
    functionName: tcp_bind_listener
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - sock_accepting_conn
    - memset
    - memcpy
    - strerror
    - free_trash_chunk
    - alloc_trash_chunk
    - listener_set_state
    - setsockopt
    - chunk_appendf
    - getsockopt
    - get_host_port
    - strlcpy2
    - listen
    - listener_backlog
    - addr_to_str
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int tcp_bind_listener(struct listener *listener, char *errmsg, int
      errlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_want_recv_safe
      Src: /src/haproxy/src/proto_tcp.c:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 904
    functionName: tcp_enable_listener
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - fd_want_recv_safe
    linkageType: ''
    returnType: void
    signature: void tcp_enable_listener(struct listener *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/proto_tcp.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 912
    functionName: tcp_disable_listener
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    linkageType: ''
    returnType: void
    signature: void tcp_disable_listener(struct listener *l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/haproxy/src/proto_tcp.c:930,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/proto_tcp.c:933,1
    - Dst: sock_accepting_conn
      Src: /src/haproxy/src/proto_tcp.c:941,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/proto_tcp.c:944,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 950
    functionName: tcp_suspend_receiver
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - sock_accepting_conn
    - connect
    - fd_stop_recv
    linkageType: ''
    returnType: int
    signature: int tcp_suspend_receiver(struct receiver *rx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/proto_tcp.c:958,1
    - Dst: listen
      Src: /src/haproxy/src/proto_tcp.c:963,1
    - Dst: listener_backlog
      Src: /src/haproxy/src/proto_tcp.c:963,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/proto_tcp.c:964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 968
    functionName: tcp_resume_receiver
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - fd_want_recv
    - listener_backlog
    - listen
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int tcp_resume_receiver(struct receiver *rx)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_tcp.c:984,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 3
    argNames:
    - conn
    - info
    - info_num
    argTypes:
    - struct connection*
    - long long int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 1020
    functionName: tcp_get_info
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int tcp_get_info(struct connection *conn, long long int *info, int
      info_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conn
    - info
    - info_num
    argTypes:
    - struct connection*
    - long long int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1025
    functionName: tcp_get_info
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tcp_get_info(struct connection *conn, long long int *info, int
      info_num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/haproxy/src/proto_tcp.c:1042,1
    - Dst: socket
      Src: /src/haproxy/src/proto_tcp.c:1044,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/proto_tcp.c:1048,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:1049,1
    - Dst: hap_register_feature
      Src: /src/haproxy/src/proto_tcp.c:1052,1
    - Dst: close
      Src: /src/haproxy/src/proto_tcp.c:1055,1
    - Dst: hap_register_feature
      Src: /src/haproxy/src/proto_tcp.c:1057,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1059
    functionName: __proto_tcp_init
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - setsockopt
    - strlcpy2
    - hap_register_feature
    - socket
    - htonl
    - close
    linkageType: ''
    returnType: void
    signature: void __proto_tcp_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: hpack_debug_printf
    functionSourceFile: /src/haproxy/src/hpack-dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hpack_debug_printf(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: hpack_debug_hexdump
    functionSourceFile: /src/haproxy/src/hpack-dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hpack_debug_hexdump(...)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - raw_in
    - len_in
    - b
    argTypes:
    - uint8_t**
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 92
    functionName: get_var_int
    functionSourceFile: /src/haproxy/src/hpack-dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_var_int(const uint8_t **raw_in, uint32_t *len_in, int
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: hpack_idx_to_phdr
    functionSourceFile: /src/haproxy/src/hpack-dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hpack_idx_to_phdr(uint32_t idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_newstr
      Src: /src/haproxy/src/hpack-dec.c:126,1
    - Dst: unlikely
      Src: /src/haproxy/src/hpack-dec.c:127,1
    - Dst: isttest
      Src: /src/haproxy/src/hpack-dec.c:127,1
    - Dst: unlikely
      Src: /src/haproxy/src/hpack-dec.c:130,1
    - Dst: memcpy
      Src: /src/haproxy/src/hpack-dec.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - store
    - idx
    - in
    argTypes:
    - struct buffer*
    - uint32_t
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 138
    functionName: hpack_alloc_string
    functionSourceFile: /src/haproxy/src/hpack-dec.c
    functionUses: 0
    functionsReached:
    - unlikely
    - chunk_newstr
    - memcpy
    - isttest
    linkageType: ''
    returnType: struct ist
    signature: "struct ist hpack_alloc_string(struct buffer *store, uint32_t idx,\n\t\t\t\t\t
      \   struct ist in)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: hpack_debug_hexdump
      Src: /src/haproxy/src/hpack-dec.c:164,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/hpack-dec.c:166,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:175,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:180,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:182,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:184,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:189,1
    - Dst: hpack_valid_idx
      Src: /src/haproxy/src/hpack-dec.c:191,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:192,1
    - Dst: hpack_alloc_string
      Src: /src/haproxy/src/hpack-dec.c:197,1
    - Dst: hpack_idx_to_value
      Src: /src/haproxy/src/hpack-dec.c:197,1
    - Dst: isttest
      Src: /src/haproxy/src/hpack-dec.c:198,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:199,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:205,1
    - Dst: hpack_idx_to_phdr
      Src: /src/haproxy/src/hpack-dec.c:205,1
    - Dst: hpack_alloc_string
      Src: /src/haproxy/src/hpack-dec.c:208,1
    - Dst: hpack_idx_to_name
      Src: /src/haproxy/src/hpack-dec.c:208,1
    - Dst: isttest
      Src: /src/haproxy/src/hpack-dec.c:209,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:210,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:219,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:223,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:228,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:230,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:234,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:237,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:248,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:250,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:252,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:261,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:267,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:269,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:275,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/hpack-dec.c:281,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:283,1
    - Dst: huff_dec
      Src: /src/haproxy/src/hpack-dec.c:288,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:291,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:295,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:298,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:303,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:309,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:311,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:317,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/hpack-dec.c:322,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:324,1
    - Dst: huff_dec
      Src: /src/haproxy/src/hpack-dec.c:329,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:332,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:336,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:339,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:350,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:352,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:354,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:359,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:362,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:364,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:367,1
    - Dst: hpack_valid_idx
      Src: /src/haproxy/src/hpack-dec.c:372,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:373,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:380,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:382,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:387,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/hpack-dec.c:392,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:394,1
    - Dst: huff_dec
      Src: /src/haproxy/src/hpack-dec.c:399,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:402,1
    - Dst: hpack_debug_hexdump
      Src: /src/haproxy/src/hpack-dec.c:405,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:410,1
    - Dst: hpack_idx_to_phdr
      Src: /src/haproxy/src/hpack-dec.c:415,1
    - Dst: hpack_alloc_string
      Src: /src/haproxy/src/hpack-dec.c:418,1
    - Dst: hpack_idx_to_name
      Src: /src/haproxy/src/hpack-dec.c:418,1
    - Dst: isttest
      Src: /src/haproxy/src/hpack-dec.c:419,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:420,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:432,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:444,1
    - Dst: hpack_dht_insert
      Src: /src/haproxy/src/hpack-dec.c:453,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:454,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:459,1
    - Dst: isttest
      Src: /src/haproxy/src/hpack-dec.c:460,1
    - Dst: istpad
      Src: /src/haproxy/src/hpack-dec.c:460,1
    - Dst: h2_phdr_to_str
      Src: /src/haproxy/src/hpack-dec.c:460,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:462,1
    - Dst: istpad
      Src: /src/haproxy/src/hpack-dec.c:463,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:478,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 252
    argCount: 6
    argNames:
    - dht
    - raw
    - len
    - list
    - list_size
    - tmp
    argTypes:
    - struct hpack_dht*
    - uint8_t*
    - uint32_t
    - struct http_hdr*
    - int
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 480
    functionName: hpack_decode_frame
    functionSourceFile: /src/haproxy/src/hpack-dec.c
    functionUses: 2
    functionsReached:
    - chunk_newstr
    - ist2
    - isttest
    - hpack_idx_to_phdr
    - hpack_dht_insert
    - hpack_alloc_string
    - istpad
    - hpack_debug_hexdump
    - hpack_idx_to_value
    - hpack_idx_to_name
    - get_var_int
    - huff_dec
    - h2_phdr_to_str
    - chunk_reset
    - hpack_valid_idx
    - hpack_debug_printf
    linkageType: ''
    returnType: int
    signature: "int hpack_decode_frame(struct hpack_dht *dht, const uint8_t *raw,
      uint32_t len,\n                       struct http_hdr *list, int list_size,\n
      \                      struct buffer *tmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - smp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: SMP_REQ_CHN
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SMP_REQ_CHN(smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - smp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: SMP_RES_CHN
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SMP_RES_CHN(smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - smp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: SMP_REQ_SC
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SMP_REQ_SC(smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - smp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: SMP_RES_SC
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SMP_RES_SC(smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/http_fetch.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: get_raw_htx_chunk
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - chunk_reset
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *get_raw_htx_chunk(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/http_fetch.c:69,1
    - Dst: chunk_init
      Src: /src/haproxy/src/http_fetch.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: alloc_raw_htx_chunk_per_thread
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - malloc
    - chunk_init
    linkageType: ''
    returnType: int
    signature: int alloc_raw_htx_chunk_per_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/http_fetch.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: free_raw_htx_chunk_per_thread
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void free_raw_htx_chunk_per_thread()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/http_fetch.c:106,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:114,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:116,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:119,1
    - Dst: memchr
      Src: /src/haproxy/src/http_fetch.c:122,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_fetch.c:127,1
    - Dst: istend
      Src: /src/haproxy/src/http_fetch.c:133,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_fetch.c:136,1
    - Dst: istend
      Src: /src/haproxy/src/http_fetch.c:136,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_fetch.c:138,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:138,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:138,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:139,1
    - Dst: base64dec
      Src: /src/haproxy/src/http_fetch.c:141,1
    - Dst: strchr
      Src: /src/haproxy/src/http_fetch.c:151,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_fetch.c:162,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:162,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:162,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - smp
    - htx
    argTypes:
    - struct sample*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 168
    functionName: get_http_auth
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist
    - isteqi
    - ist2
    - base64dec
    - istend
    - http_find_header
    - printf
    - get_trash_chunk
    - strchr
    - chunk_initlen
    - memchr
    linkageType: ''
    returnType: int
    signature: int get_http_auth(struct sample *smp, struct htx *htx)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_fetch.c:207,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_fetch.c:210,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_fetch.c:213,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:216,1
    - Dst: http_create_txn
      Src: /src/haproxy/src/http_fetch.c:227,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/http_fetch.c:232,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_fetch.c:233,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_fetch.c:240,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:246,1
    - Dst: b_head
      Src: /src/haproxy/src/http_fetch.c:266,1
    - Dst: b_data
      Src: /src/haproxy/src/http_fetch.c:266,1
    - Dst: b_wrap
      Src: /src/haproxy/src/http_fetch.c:266,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/http_fetch.c:267,1
    - Dst: h1m_init_req
      Src: /src/haproxy/src/http_fetch.c:269,1
    - Dst: h1_headers_to_hdr_list
      Src: /src/haproxy/src/http_fetch.c:270,1
    - Dst: b_head
      Src: /src/haproxy/src/http_fetch.c:270,1
    - Dst: b_stop
      Src: /src/haproxy/src/http_fetch.c:270,1
    - Dst: channel_full
      Src: /src/haproxy/src/http_fetch.c:274,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_fetch.c:285,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:289,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_fetch.c:303,1
    - Dst: get_raw_htx_chunk
      Src: /src/haproxy/src/http_fetch.c:303,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_fetch.c:304,1
    - Dst: htx_add_all_headers
      Src: /src/haproxy/src/http_fetch.c:305,1
    - Dst: htx_sl_req_vsn
      Src: /src/haproxy/src/http_fetch.c:318,1
    - Dst: htx_sl_res_vsn
      Src: /src/haproxy/src/http_fetch.c:324,1
    - Dst: istlen
      Src: /src/haproxy/src/http_fetch.c:331,1
    - Dst: istptr
      Src: /src/haproxy/src/http_fetch.c:336,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 94
    argCount: 4
    argNames:
    - smp
    - chn
    - check
    - vol
    argTypes:
    - struct sample*
    - struct channel*
    - struct check*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 347
    functionName: smp_prefetch_htx
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_stop
    - h1_headers_to_hdr_list
    - htx_sl_res_vsn
    - istlen
    - htx_is_empty
    - htx_add_all_headers
    - ist
    - IS_HTX_STRM
    - istptr
    - b_wrap
    - htx_from_buf
    - htxbuf
    - b_head
    - http_create_txn
    - h1m_init_req
    - http_get_stline
    - channel_full
    - b_data
    - b_slow_realign
    - htx_add_stline
    - get_raw_htx_chunk
    - BUG_ON
    - htx_sl_req_vsn
    linkageType: ''
    returnType: struct htx
    signature: struct htx *smp_prefetch_htx(struct sample *smp, struct channel *chn,
      struct check *check, int vol)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_fetch.c:361,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:366,1
    - Dst: htx_sl_vsn
      Src: /src/haproxy/src/http_fetch.c:367,1
    - Dst: istlen
      Src: /src/haproxy/src/http_fetch.c:369,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_fetch.c:370,1
    - Dst: istptr
      Src: /src/haproxy/src/http_fetch.c:370,1
    - Dst: istptr
      Src: /src/haproxy/src/http_fetch.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - msg
    - htx
    - chk
    argTypes:
    - struct http_msg*
    - struct htx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 377
    functionName: get_msg_version
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_get_stline
    - chunk_appendf
    - istptr
    - istlen
    - htx_sl_vsn
    linkageType: ''
    returnType: int
    signature: int get_msg_version(const struct http_msg *msg, const struct htx *htx,
      struct buffer *chk)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:390,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:401,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:412,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_fetch.c:414,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_fetch.c:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 419
    functionName: smp_fetch_meth
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_get_stline
    - HTX_SL_REQ_MLEN
    - SMP_REQ_CHN
    - smp_prefetch_htx
    - HTX_SL_REQ_MPTR
    linkageType: ''
    returnType: int
    signature: int smp_fetch_meth(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:424,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:425,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:426,1
    - Dst: get_msg_version
      Src: /src/haproxy/src/http_fetch.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 434
    functionName: smp_fetch_rqver
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - get_msg_version
    - smp_prefetch_htx
    - SMP_REQ_CHN
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int smp_fetch_rqver(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:439,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:440,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:441,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:442,1
    - Dst: get_msg_version
      Src: /src/haproxy/src/http_fetch.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 450
    functionName: smp_fetch_stver
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - get_msg_version
    - get_trash_chunk
    - objt_check
    - smp_prefetch_htx
    - SMP_RES_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_stver(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:455,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:456,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:457,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:465,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/http_fetch.c:466,1
    - Dst: HTX_SL_RES_CPTR
      Src: /src/haproxy/src/http_fetch.c:467,1
    - Dst: __strl2ui
      Src: /src/haproxy/src/http_fetch.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 473
    functionName: smp_fetch_stcode
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_get_stline
    - objt_check
    - HTX_SL_RES_CPTR
    - __strl2ui
    - HTX_SL_RES_CLEN
    - smp_prefetch_htx
    - SMP_RES_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_stcode(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:487,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 501
    functionName: smp_fetch_srv_status
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - SMP_RES_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_srv_status(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/http_fetch.c:509,1
    - Dst: stream_generate_unique_id
      Src: /src/haproxy/src/http_fetch.c:512,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:513,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/http_fetch.c:514,1
    - Dst: check_generate_unique_id
      Src: /src/haproxy/src/http_fetch.c:517,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:522,1
    - Dst: istptr
      Src: /src/haproxy/src/http_fetch.c:525,1
    - Dst: istlen
      Src: /src/haproxy/src/http_fetch.c:526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 530
    functionName: smp_fetch_uniqueid
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - check_generate_unique_id
    - stream_generate_unique_id
    - objt_check
    - lf_expr_isempty
    - istptr
    - istlen
    - isttest
    linkageType: ''
    returnType: int
    signature: int smp_fetch_uniqueid(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:539,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:539,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:540,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:541,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:547,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:548,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:548,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:549,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:550,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_fetch.c:553,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_fetch.c:554,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/http_fetch.c:556,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_fetch.c:560,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 568
    functionName: smp_fetch_hdrs
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - htx_get_blk
    - htx_get_blk_value
    - htx_get_first
    - get_trash_chunk
    - objt_check
    - htx_get_blk_type
    - chunk_memcat
    - SMP_REQ_CHN
    - h1_format_htx_hdr
    - smp_prefetch_htx
    - htx_get_blk_name
    - SMP_RES_CHN
    - htx_get_next
    linkageType: ''
    returnType: int
    signature: int smp_fetch_hdrs(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:586,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:586,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:587,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:588,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:596,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:599,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:599,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:600,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:601,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_fetch.c:605,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_fetch.c:606,1
    - Dst: encode_varint
      Src: /src/haproxy/src/http_fetch.c:609,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:614,1
    - Dst: encode_varint
      Src: /src/haproxy/src/http_fetch.c:618,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:623,1
    - Dst: encode_varint
      Src: /src/haproxy/src/http_fetch.c:631,1
    - Dst: encode_varint
      Src: /src/haproxy/src/http_fetch.c:634,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 647
    functionName: smp_fetch_hdrs_bin
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - memcpy
    - htx_get_blk
    - htx_get_blk_value
    - htx_get_first
    - get_trash_chunk
    - objt_check
    - htx_get_blk_type
    - SMP_REQ_CHN
    - encode_varint
    - smp_prefetch_htx
    - htx_get_blk_name
    - SMP_RES_CHN
    - htx_get_next
    linkageType: ''
    returnType: int
    signature: int smp_fetch_hdrs_bin(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:655,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:655,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:656,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:657,1
    - Dst: htx_space_wraps
      Src: /src/haproxy/src/http_fetch.c:666,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/http_fetch.c:667,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:669,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:669,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:670,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:671,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:678,1
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/http_fetch.c:682,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_fetch.c:683,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_fetch.c:686,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_fetch.c:686,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:688,1
    - Dst: b_orig
      Src: /src/haproxy/src/http_fetch.c:688,1
    - Dst: b_data
      Src: /src/haproxy/src/http_fetch.c:688,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_fetch.c:691,1
    - Dst: istptr
      Src: /src/haproxy/src/http_fetch.c:698,1
    - Dst: istlen
      Src: /src/haproxy/src/http_fetch.c:699,1
    - Dst: channel_full
      Src: /src/haproxy/src/http_fetch.c:702,1
    - Dst: chn_prod
      Src: /src/haproxy/src/http_fetch.c:703,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 707
    functionName: smp_fetch_body
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - SMP_REQ_CHN
    - istlen
    - ist2
    - htx_get_blk_type
    - istptr
    - smp_prefetch_htx
    - SMP_RES_CHN
    - chunk_istcat
    - b_orig
    - htx_get_first
    - channel_full
    - htx_space_wraps
    - b_data
    - htx_get_blk_value
    - htx_get_next
    - htx_defrag
    - htx_get_blk
    - chn_prod
    - objt_check
    - get_trash_chunk_sz
    - isttest
    linkageType: ''
    returnType: int
    signature: int smp_fetch_body(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:716,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:716,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:717,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:718,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:725,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:725,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:726,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:727,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_fetch.c:732,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 739
    functionName: smp_fetch_body_len
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - htx_get_blk
    - htx_get_first
    - objt_check
    - htx_get_blk_type
    - SMP_REQ_CHN
    - smp_prefetch_htx
    - SMP_RES_CHN
    - htx_get_next
    linkageType: ''
    returnType: int
    signature: int smp_fetch_body_len(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_SC
      Src: /src/haproxy/src/http_fetch.c:749,1
    - Dst: SMP_RES_SC
      Src: /src/haproxy/src/http_fetch.c:749,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:750,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:751,1
    - Dst: sc_ic
      Src: /src/haproxy/src/http_fetch.c:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 746
    functionDepth: 3
    functionLinenumber: 746
    functionLinenumberEnd: 762
    functionName: smp_fetch_body_size
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - SMP_RES_SC
    - objt_check
    - sc_ic
    - SMP_REQ_SC
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_body_size(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:768,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:769,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:774,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:776,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 766
    functionDepth: 3
    functionLinenumber: 766
    functionLinenumberEnd: 780
    functionName: smp_fetch_url
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - HTX_SL_REQ_ULEN
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - SMP_REQ_CHN
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_url(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:784,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:785,1
    - Dst: memset
      Src: /src/haproxy/src/http_fetch.c:789,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:793,1
    - Dst: url2sa
      Src: /src/haproxy/src/http_fetch.c:794,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:794,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 782
    functionDepth: 3
    functionLinenumber: 782
    functionLinenumberEnd: 804
    functionName: smp_fetch_url_ip
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - url2sa
    - memset
    - HTX_SL_REQ_ULEN
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - SMP_REQ_CHN
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_url_ip(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:808,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:809,1
    - Dst: memset
      Src: /src/haproxy/src/http_fetch.c:813,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:817,1
    - Dst: url2sa
      Src: /src/haproxy/src/http_fetch.c:818,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:818,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:818,1
    - Dst: get_host_port
      Src: /src/haproxy/src/http_fetch.c:825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 828
    functionName: smp_fetch_url_port
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - url2sa
    - memset
    - HTX_SL_REQ_ULEN
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - get_host_port
    - SMP_REQ_CHN
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_url_port(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:840,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:840,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:841,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:842,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:856,1
    - Dst: http_get_htx_fhdr
      Src: /src/haproxy/src/http_fetch.c:878,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 882
    functionName: smp_fetch_fhdr
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist2
    - http_get_htx_fhdr
    - objt_check
    - SMP_REQ_CHN
    - smp_prefetch_htx
    - SMP_RES_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fhdr(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:891,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:891,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:892,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:893,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:902,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 888
    functionDepth: 3
    functionLinenumber: 888
    functionLinenumberEnd: 915
    functionName: smp_fetch_fhdr_cnt
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist2
    - http_find_header
    - objt_check
    - SMP_REQ_CHN
    - smp_prefetch_htx
    - SMP_RES_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fhdr_cnt(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:920,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:920,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:921,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:922,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:934,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:935,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:935,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:936,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:937,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_fetch.c:944,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_fetch.c:947,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_fetch.c:950,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 917
    functionDepth: 3
    functionLinenumber: 917
    functionLinenumberEnd: 958
    functionName: smp_fetch_hdr_names
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - chunk_istcat
    - htx_get_blk
    - htx_get_first
    - get_trash_chunk
    - objt_check
    - htx_get_blk_type
    - chunk_memcat
    - SMP_REQ_CHN
    - smp_prefetch_htx
    - htx_get_blk_name
    - SMP_RES_CHN
    - htx_get_next
    linkageType: ''
    returnType: int
    signature: int smp_fetch_hdr_names(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:969,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:969,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:970,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:971,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:985,1
    - Dst: http_get_htx_hdr
      Src: /src/haproxy/src/http_fetch.c:1007,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 966
    functionDepth: 3
    functionLinenumber: 966
    functionLinenumberEnd: 1012
    functionName: smp_fetch_hdr
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist2
    - http_get_htx_hdr
    - objt_check
    - SMP_REQ_CHN
    - smp_prefetch_htx
    - SMP_RES_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_hdr(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_hdr
      Src: /src/haproxy/src/http_fetch.c:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1018
    functionDepth: 4
    functionLinenumber: 1018
    functionLinenumberEnd: 1022
    functionName: smp_fetch_chn_hdr
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_fetch_hdr
    linkageType: ''
    returnType: int
    signature: int smp_fetch_chn_hdr(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1030,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:1030,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:1031,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1032,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:1041,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1055
    functionName: smp_fetch_hdr_cnt
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist2
    - http_find_header
    - objt_check
    - SMP_REQ_CHN
    - smp_prefetch_htx
    - SMP_RES_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_hdr_cnt(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_hdr
      Src: /src/haproxy/src/http_fetch.c:1064,1
    - Dst: strl2ic
      Src: /src/haproxy/src/http_fetch.c:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1062
    functionDepth: 4
    functionLinenumber: 1062
    functionLinenumberEnd: 1073
    functionName: smp_fetch_hdr_val
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - strl2ic
    - smp_fetch_hdr
    linkageType: ''
    returnType: int
    signature: int smp_fetch_hdr_val(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:1083,1
    - Dst: smp_fetch_hdr
      Src: /src/haproxy/src/http_fetch.c:1087,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:1089,1
    - Dst: url2ipv4
      Src: /src/haproxy/src/http_fetch.c:1092,1
    - Dst: strl2irc
      Src: /src/haproxy/src/http_fetch.c:1098,1
    - Dst: inet_pton
      Src: /src/haproxy/src/http_fetch.c:1106,1
    - Dst: inet_pton
      Src: /src/haproxy/src/http_fetch.c:1110,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 30
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1081
    functionDepth: 4
    functionLinenumber: 1081
    functionLinenumberEnd: 1122
    functionName: smp_fetch_hdr_ip
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - url2ipv4
    - memcpy
    - get_trash_chunk
    - smp_fetch_hdr
    - strl2irc
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int smp_fetch_hdr_ip(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1130,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1131,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:1139,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_fetch.c:1140,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_fetch.c:1140,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:1143,1
    - Dst: iststop
      Src: /src/haproxy/src/http_fetch.c:1145,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:1145,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:1147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1156
    functionName: smp_fetch_path
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - iststop
    - http_get_stline
    - http_uri_parser_init
    - SMP_REQ_CHN
    - http_parse_path
    - htx_sl_req_uri
    - smp_prefetch_htx
    - isttest
    linkageType: ''
    returnType: int
    signature: int smp_fetch_path(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1167,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1168,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1179,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1179,1
    - Dst: smp_fetch_path
      Src: /src/haproxy/src/http_fetch.c:1180,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:1183,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_fetch.c:1184,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:1188,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_fetch.c:1189,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_fetch.c:1189,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:1190,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:1191,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_fetch.c:1202,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1165
    functionDepth: 4
    functionLinenumber: 1165
    functionLinenumberEnd: 1211
    functionName: smp_fetch_base
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist
    - chunk_istcat
    - http_get_stline
    - http_find_header
    - get_trash_chunk
    - http_uri_parser_init
    - chunk_memcat
    - SMP_REQ_CHN
    - http_parse_path
    - smp_fetch_path
    - htx_sl_req_uri
    - smp_prefetch_htx
    - isttest
    linkageType: ''
    returnType: int
    signature: int smp_fetch_base(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1223,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1224,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1235,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1235,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:1242,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_fetch.c:1243,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_fetch.c:1243,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:1244,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:1245,1
    - Dst: full_hash
      Src: /src/haproxy/src/http_fetch.c:1257,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1221
    functionDepth: 3
    functionLinenumber: 1221
    functionLinenumberEnd: 1263
    functionName: smp_fetch_base32
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist
    - http_get_stline
    - http_find_header
    - http_uri_parser_init
    - full_hash
    - SMP_REQ_CHN
    - http_parse_path
    - htx_sl_req_uri
    - smp_prefetch_htx
    - isttest
    linkageType: ''
    returnType: int
    signature: int smp_fetch_base32(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_src
      Src: /src/haproxy/src/http_fetch.c:1274,1
    - Dst: smp_fetch_base32
      Src: /src/haproxy/src/http_fetch.c:1280,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:1283,1
    - Dst: htonl
      Src: /src/haproxy/src/http_fetch.c:1284,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:1289,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:1295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1272
    functionDepth: 4
    functionLinenumber: 1272
    functionLinenumberEnd: 1307
    functionName: smp_fetch_base32_src
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - memcpy
    - smp_fetch_base32
    - get_trash_chunk
    - sc_src
    - htonl
    linkageType: ''
    returnType: int
    signature: int smp_fetch_base32_src(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1315,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1316,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:1323,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:1324,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:1325,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:1325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1313
    functionDepth: 3
    functionLinenumber: 1313
    functionLinenumberEnd: 1341
    functionName: smp_fetch_query
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - HTX_SL_REQ_ULEN
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - SMP_REQ_CHN
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_query(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1345,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1343
    functionDepth: 3
    functionLinenumber: 1343
    functionLinenumberEnd: 1353
    functionName: smp_fetch_proto_http
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - SMP_REQ_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_proto_http(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1364
    functionName: smp_fetch_http_first_req
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_first_req(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1371,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1372,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1369
    functionDepth: 3
    functionLinenumber: 1369
    functionLinenumberEnd: 1403
    functionName: smp_fetch_http_auth_type
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - SMP_REQ_CHN
    - get_http_auth
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_auth_type(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1410,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1411,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1418,1
    - Dst: strlen
      Src: /src/haproxy/src/http_fetch.c:1423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1408
    functionDepth: 3
    functionLinenumber: 1408
    functionLinenumberEnd: 1426
    functionName: smp_fetch_http_auth_user
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - SMP_REQ_CHN
    - get_http_auth
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_auth_user(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1433,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1434,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1441,1
    - Dst: strlen
      Src: /src/haproxy/src/http_fetch.c:1446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1431
    functionDepth: 3
    functionLinenumber: 1431
    functionLinenumberEnd: 1449
    functionName: smp_fetch_http_auth_pass
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - SMP_REQ_CHN
    - get_http_auth
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_auth_pass(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1453,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1454,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:1463,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1466,1
    - Dst: istsplit
      Src: /src/haproxy/src/http_fetch.c:1467,1
    - Dst: istlen
      Src: /src/haproxy/src/http_fetch.c:1470,1
    - Dst: istlen
      Src: /src/haproxy/src/http_fetch.c:1470,1
    - Dst: istlen
      Src: /src/haproxy/src/http_fetch.c:1470,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_fetch.c:1470,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1470,1
    - Dst: istskip
      Src: /src/haproxy/src/http_fetch.c:1477,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_fetch.c:1478,1
    - Dst: istptr
      Src: /src/haproxy/src/http_fetch.c:1478,1
    - Dst: istlen
      Src: /src/haproxy/src/http_fetch.c:1478,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1483,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1451
    functionDepth: 3
    functionLinenumber: 1451
    functionLinenumberEnd: 1493
    functionName: smp_fetch_http_auth_bearer
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist2
    - isteqi
    - ist
    - http_find_header
    - istsplit
    - istskip
    - SMP_REQ_CHN
    - get_http_auth
    - istptr
    - istlen
    - chunk_initlen
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_auth_bearer(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1498,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1499,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1506,1
    - Dst: check_user
      Src: /src/haproxy/src/http_fetch.c:1510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1496
    functionDepth: 3
    functionLinenumber: 1496
    functionLinenumberEnd: 1513
    functionName: smp_fetch_http_auth
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - check_user
    - SMP_REQ_CHN
    - get_http_auth
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_auth(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1518,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1519,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1526,1
    - Dst: check_user
      Src: /src/haproxy/src/http_fetch.c:1533,1
    - Dst: strlen
      Src: /src/haproxy/src/http_fetch.c:1543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1516
    functionDepth: 3
    functionLinenumber: 1516
    functionLinenumberEnd: 1546
    functionName: smp_fetch_http_auth_grp
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - SMP_REQ_CHN
    - get_http_auth
    - smp_prefetch_htx
    - check_user
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_auth_grp(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/http_fetch.c:1562,1
    - Dst: strlen
      Src: /src/haproxy/src/http_fetch.c:1571,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1551
    functionDepth: 1
    functionLinenumber: 1551
    functionLinenumberEnd: 1574
    functionName: smp_fetch_capture_req_hdr
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - strlen
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int smp_fetch_capture_req_hdr(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/http_fetch.c:1590,1
    - Dst: strlen
      Src: /src/haproxy/src/http_fetch.c:1599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1602
    functionName: smp_fetch_capture_res_hdr
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - strlen
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int smp_fetch_capture_res_hdr(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:1623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1605
    functionDepth: 1
    functionLinenumber: 1605
    functionLinenumberEnd: 1632
    functionName: smp_fetch_capture_req_method
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int smp_fetch_capture_req_method(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:1658,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_fetch.c:1663,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:1664,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:1665,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1635
    functionDepth: 1
    functionLinenumber: 1635
    functionLinenumberEnd: 1674
    functionName: smp_fetch_capture_req_uri
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist2
    - isttest
    - http_parse_path
    - http_uri_parser_init
    linkageType: ''
    returnType: int
    signature: int smp_fetch_capture_req_uri(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:1684,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_fetch.c:1685,1
    - Dst: get_msg_version
      Src: /src/haproxy/src/http_fetch.c:1686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1679
    functionDepth: 2
    functionLinenumber: 1679
    functionLinenumberEnd: 1692
    functionName: smp_fetch_capture_req_ver
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - get_msg_version
    - chunk_memcat
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int smp_fetch_capture_req_ver(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:1702,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_fetch.c:1703,1
    - Dst: get_msg_version
      Src: /src/haproxy/src/http_fetch.c:1704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1697
    functionDepth: 2
    functionLinenumber: 1697
    functionLinenumberEnd: 1711
    functionName: smp_fetch_capture_res_ver
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - get_msg_version
    - chunk_memcat
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int smp_fetch_capture_res_ver(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1726,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:1726,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:1727,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1728,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1750,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1750,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1769,1
    - Dst: http_extract_cookie_value
      Src: /src/haproxy/src/http_fetch.c:1781,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1723
    functionDepth: 3
    functionLinenumber: 1723
    functionLinenumberEnd: 1807
    functionName: smp_fetch_cookie
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist
    - http_find_header
    - objt_check
    - SMP_REQ_CHN
    - http_extract_cookie_value
    - smp_prefetch_htx
    - SMP_RES_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cookie(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_cookie
      Src: /src/haproxy/src/http_fetch.c:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1813
    functionDepth: 4
    functionLinenumber: 1813
    functionLinenumberEnd: 1817
    functionName: smp_fetch_chn_cookie
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_fetch_cookie
    linkageType: ''
    returnType: int
    signature: int smp_fetch_chn_cookie(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1827,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:1827,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:1828,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1829,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1845,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1845,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1853,1
    - Dst: http_extract_cookie_value
      Src: /src/haproxy/src/http_fetch.c:1865,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1824
    functionDepth: 3
    functionLinenumber: 1824
    functionLinenumberEnd: 1878
    functionName: smp_fetch_cookie_cnt
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist
    - http_find_header
    - objt_check
    - SMP_REQ_CHN
    - http_extract_cookie_value
    - smp_prefetch_htx
    - SMP_RES_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cookie_cnt(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_cookie
      Src: /src/haproxy/src/http_fetch.c:1885,1
    - Dst: strl2ic
      Src: /src/haproxy/src/http_fetch.c:1889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1883
    functionDepth: 4
    functionLinenumber: 1883
    functionLinenumberEnd: 1894
    functionName: smp_fetch_cookie_val
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_fetch_cookie
    - strl2ic
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cookie_val(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:1906,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:1906,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:1907,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1908,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1923,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1923,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:1924,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1937,1
    - Dst: http_extract_next_cookie_name
      Src: /src/haproxy/src/http_fetch.c:1944,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_fetch.c:1953,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1903
    functionDepth: 3
    functionLinenumber: 1903
    functionLinenumberEnd: 1960
    functionName: smp_fetch_cookie_names
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist
    - http_extract_next_cookie_name
    - http_find_header
    - get_trash_chunk
    - objt_check
    - chunk_memcat
    - SMP_REQ_CHN
    - smp_prefetch_htx
    - SMP_RES_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cookie_names(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: http_find_next_url_param
      Src: /src/haproxy/src/http_fetch.c:1977,1
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/http_fetch.c:1992,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:1995,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:1996,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 8
    argNames:
    - delim
    - name
    - name_len
    - args
    - smp
    - kw
    - private
    - insensitive
    argTypes:
    - char
    - char*
    - int
    - struct arg*
    - struct sample*
    - char*
    - void*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 2017
    functionName: smp_fetch_param
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk_sz
    - http_find_next_url_param
    - memcpy
    linkageType: ''
    returnType: int
    signature: int smp_fetch_param(char delim, const char *name, int name_len, const
      struct arg *args, struct sample *smp, const char *kw, void *private, char insensitive)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:2028,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:2052,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:2058,1
    - Dst: http_find_param_list
      Src: /src/haproxy/src/http_fetch.c:2059,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:2059,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:2059,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:2063,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:2063,1
    - Dst: smp_fetch_param
      Src: /src/haproxy/src/http_fetch.c:2072,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2026
    functionDepth: 3
    functionLinenumber: 2026
    functionLinenumberEnd: 2073
    functionName: smp_fetch_url_param
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - HTX_SL_REQ_ULEN
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - http_find_param_list
    - SMP_REQ_CHN
    - smp_prefetch_htx
    - smp_fetch_param
    linkageType: ''
    returnType: int
    signature: int smp_fetch_url_param(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:2084,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:2104,1
    - Dst: htx_space_wraps
      Src: /src/haproxy/src/http_fetch.c:2112,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/http_fetch.c:2113,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:2115,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:2115,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:2116,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:2117,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:2122,1
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/http_fetch.c:2125,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_fetch.c:2126,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_fetch.c:2129,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_fetch.c:2129,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:2131,1
    - Dst: b_orig
      Src: /src/haproxy/src/http_fetch.c:2131,1
    - Dst: b_data
      Src: /src/haproxy/src/http_fetch.c:2131,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_fetch.c:2134,1
    - Dst: istptr
      Src: /src/haproxy/src/http_fetch.c:2138,1
    - Dst: istend
      Src: /src/haproxy/src/http_fetch.c:2139,1
    - Dst: smp_fetch_param
      Src: /src/haproxy/src/http_fetch.c:2148,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 37
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2082
    functionDepth: 3
    functionLinenumber: 2082
    functionLinenumberEnd: 2149
    functionName: smp_fetch_body_param
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - chunk_istcat
    - isttest
    - htx_defrag
    - ist2
    - b_orig
    - istend
    - htx_get_blk
    - htx_get_blk_value
    - htx_get_first
    - htx_space_wraps
    - htx_get_blk_type
    - b_data
    - get_trash_chunk_sz
    - SMP_REQ_CHN
    - istptr
    - smp_prefetch_htx
    - smp_fetch_param
    - htx_get_next
    linkageType: ''
    returnType: int
    signature: int smp_fetch_body_param(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_url_param
      Src: /src/haproxy/src/http_fetch.c:2156,1
    - Dst: strl2ic
      Src: /src/haproxy/src/http_fetch.c:2160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2154
    functionDepth: 4
    functionLinenumber: 2154
    functionLinenumberEnd: 2165
    functionName: smp_fetch_url_param_val
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_fetch_url_param
    - strl2ic
    linkageType: ''
    returnType: int
    signature: int smp_fetch_url_param_val(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:2179,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:2180,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:2191,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:2191,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:2198,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_fetch.c:2199,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_fetch.c:2199,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:2200,1
    - Dst: full_hash
      Src: /src/haproxy/src/http_fetch.c:2206,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2177
    functionDepth: 3
    functionLinenumber: 2177
    functionLinenumberEnd: 2212
    functionName: smp_fetch_url32
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist
    - http_get_stline
    - http_find_header
    - http_uri_parser_init
    - full_hash
    - SMP_REQ_CHN
    - http_parse_path
    - htx_sl_req_uri
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_url32(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_src
      Src: /src/haproxy/src/http_fetch.c:2223,1
    - Dst: smp_fetch_url32
      Src: /src/haproxy/src/http_fetch.c:2229,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:2232,1
    - Dst: htonl
      Src: /src/haproxy/src/http_fetch.c:2233,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:2238,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:2244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2221
    functionDepth: 4
    functionLinenumber: 2221
    functionLinenumberEnd: 2256
    functionName: smp_fetch_url32_src
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_trash_chunk
    - sc_src
    - htonl
    - smp_fetch_url32
    linkageType: ''
    returnType: int
    signature: int smp_fetch_url32_src(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_fetch.c:2274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2271
    functionDepth: 1
    functionLinenumber: 2271
    functionLinenumberEnd: 2278
    functionName: val_hdr
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int val_hdr(struct arg *arg, char **err_msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_fetch.c:2288,1
    - Dst: chunk_strcmp
      Src: /src/haproxy/src/http_fetch.c:2293,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_fetch.c:2294,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_fetch.c:2300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - args
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2280
    functionDepth: 1
    functionLinenumber: 2280
    functionLinenumberEnd: 2305
    functionName: val_query
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - memprintf
    - chunk_strcmp
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: int val_query(struct arg *args, char **err_msg)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: conn_new
      Src: /src/haproxy/src/proto_rhttp.c:58,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/proto_rhttp.c:64,1
    - Dst: session_new
      Src: /src/haproxy/src/proto_rhttp.c:69,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/proto_rhttp.c:73,1
    - Dst: conn_set_reverse
      Src: /src/haproxy/src/proto_rhttp.c:74,1
    - Dst: alloc_bind_address
      Src: /src/haproxy/src/proto_rhttp.c:76,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/proto_rhttp.c:80,1
    - Dst: set_host_port
      Src: /src/haproxy/src/proto_rhttp.c:84,1
    - Dst: conn_prepare
      Src: /src/haproxy/src/proto_rhttp.c:94,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/proto_rhttp.c:94,1
    - Dst: struct connection*::ctrl::connect
      Src: /src/haproxy/src/proto_rhttp.c:97,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/proto_rhttp.c:101,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/proto_rhttp.c:104,1
    - Dst: smp_make_safe
      Src: /src/haproxy/src/proto_rhttp.c:107,1
    - Dst: ssl_sock_set_servername
      Src: /src/haproxy/src/proto_rhttp.c:108,1
    - Dst: xprt_add_hs
      Src: /src/haproxy/src/proto_rhttp.c:116,1
    - Dst: conn_xprt_start
      Src: /src/haproxy/src/proto_rhttp.c:120,1
    - Dst: conn_install_mux_be
      Src: /src/haproxy/src/proto_rhttp.c:126,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_rhttp.c:134,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/proto_rhttp.c:142,1
    - Dst: conn_xprt_shutw
      Src: /src/haproxy/src/proto_rhttp.c:143,1
    - Dst: conn_xprt_close
      Src: /src/haproxy/src/proto_rhttp.c:144,1
    - Dst: conn_sock_shutw
      Src: /src/haproxy/src/proto_rhttp.c:145,1
    - Dst: conn_ctrl_close
      Src: /src/haproxy/src/proto_rhttp.c:146,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/proto_rhttp.c:149,1
    - Dst: conn_free
      Src: /src/haproxy/src/proto_rhttp.c:155,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 69
    argCount: 2
    argNames:
    - l
    - srv
    argTypes:
    - struct listener*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 159
    functionName: new_reverse_conn
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached:
    - conn_ctrl_close
    - smp_make_safe
    - xprt_add_hs
    - HA_ATOMIC_INC
    - sample_fetch_as_type
    - sockaddr_alloc
    - conn_install_mux_be
    - struct connection*::ctrl::connect
    - session_new
    - conn_prepare
    - struct connection*::destroy_cb
    - conn_stop_tracking
    - conn_set_reverse
    - conn_set_owner
    - conn_is_ssl
    - send_log
    - conn_xprt_close
    - alloc_bind_address
    - conn_free
    - ssl_sock_set_servername
    - conn_xprt_shutw
    - conn_xprt_start
    - conn_new
    - set_host_port
    - protocol_lookup
    - conn_sock_shutw
    linkageType: ''
    returnType: struct connection
    signature: struct connection *new_reverse_conn(struct listener *l, struct server
      *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_rhttp.c:168,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_rhttp.c:174,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/proto_rhttp.c:181,1
    - Dst: task_queue
      Src: /src/haproxy/src/proto_rhttp.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: rhttp_notify_preconn_err
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached:
    - task_queue
    - send_log
    - MS_TO_TICKS
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void rhttp_notify_preconn_err(struct listener *l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/proto_rhttp.c:190,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/proto_rhttp.c:191,1
    - Dst: atleast2
      Src: /src/haproxy/src/proto_rhttp.c:197,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/proto_rhttp.c:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 218
    functionName: select_thread
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached:
    - atleast2
    - _HA_ATOMIC_LOAD
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int select_thread(struct listener *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_unlink_wq
      Src: /src/haproxy/src/proto_rhttp.c:225,1
    - Dst: task_set_thread
      Src: /src/haproxy/src/proto_rhttp.c:227,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/proto_rhttp.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - task
    - new_tid
    argTypes:
    - struct task*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: task_migrate
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - task_unlink_wq
    - task_set_thread
    linkageType: ''
    returnType: void
    signature: void task_migrate(struct task *task, uint new_tid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/proto_rhttp.c:238,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/proto_rhttp.c:244,1
    - Dst: destroy
      Src: /src/haproxy/src/proto_rhttp.c:244,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/proto_rhttp.c:247,1
    - Dst: conn_xprt_shutw
      Src: /src/haproxy/src/proto_rhttp.c:248,1
    - Dst: conn_xprt_close
      Src: /src/haproxy/src/proto_rhttp.c:249,1
    - Dst: conn_sock_shutw
      Src: /src/haproxy/src/proto_rhttp.c:250,1
    - Dst: conn_ctrl_close
      Src: /src/haproxy/src/proto_rhttp.c:251,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/proto_rhttp.c:254,1
    - Dst: conn_free
      Src: /src/haproxy/src/proto_rhttp.c:255,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_rhttp.c:259,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/proto_rhttp.c:261,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_rhttp.c:265,1
    - Dst: listener_accept
      Src: /src/haproxy/src/proto_rhttp.c:268,1
    - Dst: select_thread
      Src: /src/haproxy/src/proto_rhttp.c:276,1
    - Dst: task_migrate
      Src: /src/haproxy/src/proto_rhttp.c:278,1
    - Dst: new_reverse_conn
      Src: /src/haproxy/src/proto_rhttp.c:287,1
    - Dst: tick_isset
      Src: /src/haproxy/src/proto_rhttp.c:291,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/proto_rhttp.c:292,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/proto_rhttp.c:293,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - task
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 297
    functionName: rhttp_process
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached:
    - listener_accept
    - new_reverse_conn
    - conn_ctrl_close
    - TICKS_TO_MS
    - task_migrate
    - tick_is_expired
    - destroy
    - struct connection*::destroy_cb
    - conn_stop_tracking
    - CALL_MUX_NO_RET
    - MS_TO_TICKS
    - tick_add_ifset
    - conn_xprt_close
    - BUG_ON
    - conn_free
    - conn_xprt_shutw
    - select_thread
    - tick_isset
    - conn_sock_shutw
    linkageType: ''
    returnType: struct task
    signature: struct task *rhttp_process(struct task *task, void *ctx, unsigned int
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - rx
    - errmsg
    argTypes:
    - struct receiver*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: rhttp_bind_receiver
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rhttp_bind_receiver(struct receiver *rx, char **errmsg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/proto_rhttp.c:320,1
    - Dst: my_ffsl
      Src: /src/haproxy/src/proto_rhttp.c:321,1
    - Dst: task_new_on
      Src: /src/haproxy/src/proto_rhttp.c:322,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_rhttp.c:323,1
    - Dst: strdup
      Src: /src/haproxy/src/proto_rhttp.c:341,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_rhttp.c:343,1
    - Dst: ist
      Src: /src/haproxy/src/proto_rhttp.c:347,1
    - Dst: istsplit
      Src: /src/haproxy/src/proto_rhttp.c:348,1
    - Dst: istlen
      Src: /src/haproxy/src/proto_rhttp.c:349,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_rhttp.c:350,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/proto_rhttp.c:354,1
    - Dst: ist0
      Src: /src/haproxy/src/proto_rhttp.c:354,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_rhttp.c:355,1
    - Dst: server_find
      Src: /src/haproxy/src/proto_rhttp.c:358,1
    - Dst: ist0
      Src: /src/haproxy/src/proto_rhttp.c:358,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_rhttp.c:359,1
    - Dst: ist0
      Src: /src/haproxy/src/proto_rhttp.c:359,1
    - Dst: ist0
      Src: /src/haproxy/src/proto_rhttp.c:359,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_rhttp.c:364,1
    - Dst: ist0
      Src: /src/haproxy/src/proto_rhttp.c:364,1
    - Dst: ist0
      Src: /src/haproxy/src/proto_rhttp.c:364,1
    - Dst: srv_is_transparent
      Src: /src/haproxy/src/proto_rhttp.c:368,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_rhttp.c:369,1
    - Dst: ist0
      Src: /src/haproxy/src/proto_rhttp.c:369,1
    - Dst: ist0
      Src: /src/haproxy/src/proto_rhttp.c:369,1
    - Dst: isteqi
      Src: /src/haproxy/src/proto_rhttp.c:374,1
    - Dst: ist
      Src: /src/haproxy/src/proto_rhttp.c:374,1
    - Dst: isteqi
      Src: /src/haproxy/src/proto_rhttp.c:375,1
    - Dst: ist
      Src: /src/haproxy/src/proto_rhttp.c:375,1
    - Dst: ist
      Src: /src/haproxy/src/proto_rhttp.c:375,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_rhttp.c:376,1
    - Dst: ist0
      Src: /src/haproxy/src/proto_rhttp.c:376,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_rhttp.c:385,1
    - Dst: ist0
      Src: /src/haproxy/src/proto_rhttp.c:385,1
    - Dst: ha_free
      Src: /src/haproxy/src/proto_rhttp.c:389,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/proto_rhttp.c:392,1
    - Dst: ha_free
      Src: /src/haproxy/src/proto_rhttp.c:397,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 3
    argNames:
    - listener
    - errmsg
    - errlen
    argTypes:
    - struct listener*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 399
    functionName: rhttp_bind_listener
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached:
    - srv_is_transparent
    - ist
    - isteqi
    - _HA_ATOMIC_LOAD
    - ist0
    - ha_free
    - istsplit
    - listener_set_state
    - task_new_on
    - server_find
    - my_ffsl
    - proxy_be_by_name
    - istlen
    - snprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int rhttp_bind_listener(struct listener *listener, char *errmsg, int
      errlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_log
      Src: /src/haproxy/src/proto_rhttp.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: rhttp_suspend_listener
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached:
    - send_log
    linkageType: ''
    returnType: int
    signature: int rhttp_suspend_listener(struct listener *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send_log
      Src: /src/haproxy/src/proto_rhttp.c:411,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/proto_rhttp.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 418
    functionName: rhttp_enable_listener
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - send_log
    linkageType: ''
    returnType: void
    signature: void rhttp_enable_listener(struct listener *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send_log
      Src: /src/haproxy/src/proto_rhttp.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 429
    functionName: rhttp_disable_listener
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached:
    - send_log
    linkageType: ''
    returnType: void
    signature: void rhttp_disable_listener(struct listener *l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_rhttp.c:439,1
    - Dst: select_thread
      Src: /src/haproxy/src/proto_rhttp.c:444,1
    - Dst: task_migrate
      Src: /src/haproxy/src/proto_rhttp.c:446,1
    - Dst: new_reverse_conn
      Src: /src/haproxy/src/proto_rhttp.c:452,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_rhttp.c:464,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/proto_rhttp.c:467,1
    - Dst: ctl
      Src: /src/haproxy/src/proto_rhttp.c:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - l
    - status
    argTypes:
    - struct listener*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 473
    functionName: rhttp_accept_conn
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached:
    - new_reverse_conn
    - BUG_ON
    - CALL_MUX_NO_RET
    - ctl
    - select_thread
    - task_migrate
    linkageType: ''
    returnType: struct connection
    signature: struct connection *rhttp_accept_conn(struct listener *l, int *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: rhttp_unbind_receiver
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rhttp_unbind_receiver(struct listener *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - new_tid
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 488
    functionName: rhttp_bind_tid_prep
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rhttp_bind_tid_prep(struct connection *conn, int new_tid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 493
    functionName: rhttp_accepting_conn
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rhttp_accepting_conn(const struct receiver *rx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 504
    functionName: init_rhttp
    functionSourceFile: /src/haproxy/src/proto_rhttp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_rhttp()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aead_aes_128_gcm
      Src: /src/haproxy/src/quic_token.c:18,1
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/src/quic_token.c:20,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_token.c:37,1
    - Dst: ha_random64_pair_hashed
      Src: /src/haproxy/src/quic_token.c:40,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:43,1
    - Dst: ipaddrcpy
      Src: /src/haproxy/src/quic_token.c:48,1
    - Dst: quic_tls_derive_token_secret
      Src: /src/haproxy/src/quic_token.c:49,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/quic_token.c:49,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:52,1
    - Dst: quic_tls_tx_ctx_init
      Src: /src/haproxy/src/quic_token.c:56,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:57,1
    - Dst: write_u32
      Src: /src/haproxy/src/quic_token.c:64,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_token.c:64,1
    - Dst: quic_tls_encrypt
      Src: /src/haproxy/src/quic_token.c:67,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:68,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_token.c:73,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_token.c:79,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_token.c:80,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_token.c:84,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - token
    - len
    - addr
    argTypes:
    - unsigned char*
    - size_t
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 86
    functionName: quic_generate_token
    functionSourceFile: /src/haproxy/src/quic_token.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_gcm
    - quic_tls_tx_ctx_init
    - TRACE_LEAVE
    - TRACE_ERROR
    - ha_random64_pair_hashed
    - EVP_aead_aes_128_gcm
    - quic_tls_derive_token_secret
    - memcpy
    - TRACE_DEVEL
    - TRACE_ENTER
    - write_u32
    - htonl
    - ipaddrcpy
    - EVP_sha256
    - quic_tls_encrypt
    - QUIC_AEAD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int quic_generate_token(unsigned char *token, size_t len,\n                        struct
      sockaddr_storage *addr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aead_aes_128_gcm
      Src: /src/haproxy/src/quic_token.c:117,1
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/src/quic_token.c:119,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_token.c:122,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_token.c:124,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:127,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:132,1
    - Dst: ipaddrcpy
      Src: /src/haproxy/src/quic_token.c:137,1
    - Dst: quic_tls_derive_token_secret
      Src: /src/haproxy/src/quic_token.c:139,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/quic_token.c:139,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:141,1
    - Dst: quic_tls_rx_ctx_init
      Src: /src/haproxy/src/quic_token.c:145,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:146,1
    - Dst: quic_tls_decrypt2
      Src: /src/haproxy/src/quic_token.c:151,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:153,1
    - Dst: ntohl
      Src: /src/haproxy/src/quic_token.c:157,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_token.c:157,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:159,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_token.c:166,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_token.c:167,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_token.c:171,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 3
    argNames:
    - pkt
    - dgram
    - qc
    argTypes:
    - struct quic_rx_packet*
    - struct quic_dgram*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 173
    functionName: quic_token_check
    functionSourceFile: /src/haproxy/src/quic_token.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_gcm
    - TRACE_LEAVE
    - TRACE_ERROR
    - BUG_ON
    - EVP_aead_aes_128_gcm
    - quic_tls_derive_token_secret
    - quic_tls_decrypt2
    - ntohl
    - TRACE_ENTER
    - TRACE_DEVEL
    - quic_tls_rx_ctx_init
    - read_u32
    - ipaddrcpy
    - EVP_sha256
    - QUIC_AEAD_CTX_free
    linkageType: ''
    returnType: int
    signature: "int quic_token_check(struct quic_rx_packet *pkt,\n                     struct
      quic_dgram *dgram,\n                     struct quic_conn *qc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_bwlim.c:78,1
    - Dst: tick_isset
      Src: /src/haproxy/src/flt_bwlim.c:89,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/flt_bwlim.c:89,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/flt_bwlim.c:105,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/flt_bwlim.c:109,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/flt_bwlim.c:110,1
    - Dst: freq_ctr_overshoot_period
      Src: /src/haproxy/src/flt_bwlim.c:137,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/flt_bwlim.c:140,1
    - Dst: div64_32
      Src: /src/haproxy/src/flt_bwlim.c:141,1
    - Dst: tick_add
      Src: /src/haproxy/src/flt_bwlim.c:143,1
    - Dst: freq_ctr_remain_period
      Src: /src/haproxy/src/flt_bwlim.c:149,1
    - Dst: div64_32
      Src: /src/haproxy/src/flt_bwlim.c:150,1
    - Dst: chn_prod
      Src: /src/haproxy/src/flt_bwlim.c:160,1
    - Dst: MIN
      Src: /src/haproxy/src/flt_bwlim.c:161,1
    - Dst: div64_32
      Src: /src/haproxy/src/flt_bwlim.c:165,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/flt_bwlim.c:174,1
    - Dst: div64_32
      Src: /src/haproxy/src/flt_bwlim.c:174,1
    - Dst: next_event_delay_period
      Src: /src/haproxy/src/flt_bwlim.c:176,1
    - Dst: MIN
      Src: /src/haproxy/src/flt_bwlim.c:176,1
    - Dst: tick_add
      Src: /src/haproxy/src/flt_bwlim.c:177,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/flt_bwlim.c:181,1
    - Dst: tick_first
      Src: /src/haproxy/src/flt_bwlim.c:184,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/flt_bwlim.c:184,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/flt_bwlim.c:186,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/flt_bwlim.c:186,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 3
    argNames:
    - filter
    - chn
    - len
    argTypes:
    - struct filter*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 188
    functionName: bwlim_apply_limit
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - freq_ctr_remain_period
    - update_freq_ctr_period
    - HA_RWLOCK_RDUNLOCK
    - BUG_ON
    - chn_prod
    - tick_first
    - tick_isset
    - tick_is_expired
    - stktable_data_ptr
    - stktable_data_cast
    - freq_ctr_overshoot_period
    - MIN
    - next_event_delay_period
    - div64_32
    - FLT_CONF
    - tick_add
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int bwlim_apply_limit(struct filter *filter, struct channel *chn, unsigned
      int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: bwlim_init
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bwlim_init(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/flt_bwlim.c:206,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/flt_bwlim.c:207,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_bwlim.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: bwlim_deinit
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - ha_free
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void bwlim_deinit(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/flt_bwlim.c:224,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_bwlim.c:229,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_bwlim.c:235,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_bwlim.c:241,1
    - Dst: stktable_compatible_sample
      Src: /src/haproxy/src/flt_bwlim.c:247,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_bwlim.c:248,1
    - Dst: in_proxies_list
      Src: /src/haproxy/src/flt_bwlim.c:253,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_bwlim.c:257,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 262
    functionName: bwlim_check
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - stktable_compatible_sample
    - ha_free
    - in_proxies_list
    - stktable_find_by_name
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int bwlim_check(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_zalloc
      Src: /src/haproxy/src/flt_bwlim.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: bwlim_attach
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - pool_zalloc
    linkageType: ''
    returnType: int
    signature: int bwlim_attach(struct stream *s, struct filter *filter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_bwlim.c:283,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/flt_bwlim.c:291,1
    - Dst: pool_free
      Src: /src/haproxy/src/flt_bwlim.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 296
    functionName: bwlim_detach
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - FLT_CONF
    - stktable_touch_local
    - pool_free
    linkageType: ''
    returnType: void
    signature: void bwlim_detach(struct stream *s, struct filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - filter
    - chn
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: bwlim_chn_end_analyze
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bwlim_chn_end_analyze(struct stream *s, struct filter *filter,
      struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: bwlim_http_headers
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bwlim_http_headers(struct stream *s, struct filter *filter, struct
      http_msg *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bwlim_apply_limit
      Src: /src/haproxy/src/flt_bwlim.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - filter
    - msg
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: bwlim_http_payload
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - bwlim_apply_limit
    linkageType: ''
    returnType: int
    signature: "int bwlim_http_payload(struct stream *s, struct filter *filter, struct
      http_msg *msg,\n\t\t\t      unsigned int offset, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bwlim_apply_limit
      Src: /src/haproxy/src/flt_bwlim.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - filter
    - chn
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: bwlim_tcp_payload
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - bwlim_apply_limit
    linkageType: ''
    returnType: int
    signature: "int bwlim_tcp_payload(struct stream *s, struct filter *filter, struct
      channel *chn,\n\t\t\t     unsigned int offset, unsigned int len)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_bwlim.c:376,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/flt_bwlim.c:377,1
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_bwlim.c:377,1
    - Dst: stktable_fetch_key
      Src: /src/haproxy/src/flt_bwlim.c:397,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/flt_bwlim.c:401,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/flt_bwlim.c:414,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/flt_bwlim.c:422,1
    - Dst: register_data_filter
      Src: /src/haproxy/src/flt_bwlim.c:432,1
    - Dst: register_data_filter
      Src: /src/haproxy/src/flt_bwlim.c:434,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 438
    functionName: bwlim_set_limit
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - stktable_fetch_key
    - FLT_CONF
    - list_for_each_entry
    - register_data_filter
    - stktable_get_entry
    - FLT_ID
    - sample_fetch_as_type
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return bwlim_set_limit(struct act_rule *rule, struct proxy
      *px,\n\t\t\t\t       struct session *sess, struct stream *s, int flags)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_bwlim.c:449,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_bwlim.c:453,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:458,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:464,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:469,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:499,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/flt_bwlim.c:500,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_bwlim.c:506,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_bwlim.c:510,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_bwlim.c:515,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_bwlim.c:519,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:528,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/flt_bwlim.c:529,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_bwlim.c:535,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_bwlim.c:539,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_bwlim.c:544,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_bwlim.c:548,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:555,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/flt_bwlim.c:556,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_bwlim.c:562,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_bwlim.c:566,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_bwlim.c:571,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_bwlim.c:575,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 94
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 583
    functionName: check_bwlim_action
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - memprintf
    - proxy_type_str
    - list_for_each_entry
    - strcmp
    - sample_src_names
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int check_bwlim_action(struct act_rule *rule, struct proxy *px, char
      **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/flt_bwlim.c:588,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/flt_bwlim.c:590,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/flt_bwlim.c:594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 598
    functionName: release_bwlim_action
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - ha_free
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void release_bwlim_action(struct act_rule *rule)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:620,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_bwlim.c:624,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:626,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_bwlim.c:632,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:638,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/flt_bwlim.c:642,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/flt_bwlim.c:650,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:652,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_bwlim.c:658,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:664,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/flt_bwlim.c:668,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/flt_bwlim.c:676,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:678,1
    - Dst: release_bwlim_action
      Src: /src/haproxy/src/flt_bwlim.c:696,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 698
    functionName: parse_bandwidth_limit
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_size_err
    - release_bwlim_action
    - strcmp
    - sample_parse_expr
    - parse_time_err
    - strdup
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_bandwidth_limit(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t\tstruct act_rule *rule, char **err)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/flt_bwlim.c:747,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:749,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:755,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_bwlim.c:759,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:761,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_bwlim.c:765,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_bwlim.c:769,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:770,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_bwlim.c:779,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:781,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:786,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/flt_bwlim.c:792,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_bwlim.c:797,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:799,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:804,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_bwlim.c:809,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:811,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_bwlim.c:816,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:820,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:825,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/flt_bwlim.c:830,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:832,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_bwlim.c:838,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:842,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:847,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/flt_bwlim.c:852,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:854,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_bwlim.c:860,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:864,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:869,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/flt_bwlim.c:874,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:876,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_bwlim.c:882,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:886,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/flt_bwlim.c:890,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:892,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:905,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:909,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:917,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_bwlim.c:921,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_bwlim.c:934,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/flt_bwlim.c:936,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_bwlim.c:940,1
    - Dst: free
      Src: /src/haproxy/src/flt_bwlim.c:941,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 187
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 943
    functionName: parse_bwlim_flt
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_size_err
    - list_for_each_entry
    - ha_free
    - calloc
    - strcmp
    - free
    - sample_parse_expr
    - parse_time_err
    - release_sample_expr
    - strdup
    linkageType: ''
    returnType: int
    signature: "int parse_bwlim_flt(char **args, int *cur_arg, struct proxy *px, struct
      flt_conf *fconf,\n\t\t\t   char **err, void *private)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_bwlim_flt
      Src: /src/haproxy/src/flt_bwlim.c:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 959
    functionName: parse_bwlim_in_flt
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - parse_bwlim_flt
    linkageType: ''
    returnType: int
    signature: "int parse_bwlim_in_flt(char **args, int *cur_arg, struct proxy *px,
      struct flt_conf *fconf,\n\t\t\t      char **err, void *private)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_bwlim_flt
      Src: /src/haproxy/src/flt_bwlim.c:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 973
    functionName: parse_bwlim_out_flt
    functionSourceFile: /src/haproxy/src/flt_bwlim.c
    functionUses: 0
    functionsReached:
    - parse_bwlim_flt
    linkageType: ''
    returnType: int
    signature: "int parse_bwlim_out_flt(char **args, int *cur_arg, struct proxy *px,
      struct flt_conf *fconf,\n\t\t\t       char **err, void *private)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_map.c:60,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/lb_map.c:73,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/lb_map.c:83,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 85
    functionName: recalc_server_map
    functionSourceFile: /src/haproxy/src/lb_map.c
    functionUses: 0
    functionsReached:
    - srv_willbe_usable
    - _HA_ATOMIC_SUB
    - _HA_ATOMIC_ADD
    linkageType: ''
    returnType: void
    signature: void recalc_server_map(struct proxy *px)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_map.c:95,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_map.c:98,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_map.c:102,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_map.c:103,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_map.c:104,1
    - Dst: recalc_server_map
      Src: /src/haproxy/src/lb_map.c:105,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_map.c:106,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_map.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 109
    functionName: map_set_server_status_down
    functionSourceFile: /src/haproxy/src/lb_map.c
    functionUses: 0
    functionsReached:
    - update_backend_weight
    - srv_willbe_usable
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - recount_servers
    - HA_RWLOCK_WRLOCK
    - recalc_server_map
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void map_set_server_status_down(struct server *srv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_map.c:119,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_map.c:122,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_map.c:126,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_map.c:127,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_map.c:128,1
    - Dst: recalc_server_map
      Src: /src/haproxy/src/lb_map.c:129,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_map.c:130,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_map.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: map_set_server_status_up
    functionSourceFile: /src/haproxy/src/lb_map.c
    functionUses: 0
    functionsReached:
    - update_backend_weight
    - srv_willbe_usable
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - recount_servers
    - HA_RWLOCK_WRLOCK
    - recalc_server_map
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void map_set_server_status_up(struct server *srv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_map.c:185,1
    - Dst: calloc
      Src: /src/haproxy/src/lb_map.c:195,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_map.c:197,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_map.c:198,1
    - Dst: recalc_server_map
      Src: /src/haproxy/src/lb_map.c:199,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 201
    functionName: init_server_map
    functionSourceFile: /src/haproxy/src/lb_map.c
    functionUses: 0
    functionsReached:
    - update_backend_weight
    - calloc
    - recount_servers
    - recalc_server_map
    - srv_lb_commit_status
    linkageType: ''
    returnType: int
    signature: int init_server_map(struct proxy *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_SKLOCK
      Src: /src/haproxy/src/lb_map.c:216,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_map.c:230,1
    - Dst: HA_RWLOCK_SKUNLOCK
      Src: /src/haproxy/src/lb_map.c:248,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - px
    - srvtoavoid
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 251
    functionName: map_get_server_rr
    functionSourceFile: /src/haproxy/src/lb_map.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_SKUNLOCK
    - srv_dynamic_maxconn
    - HA_RWLOCK_SKLOCK
    linkageType: ''
    returnType: struct server
    signature: struct server *map_get_server_rr(struct proxy *px, struct server *srvtoavoid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/lb_map.c:265,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_map.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - px
    - hash
    argTypes:
    - struct proxy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: map_get_server_hash
    functionSourceFile: /src/haproxy/src/lb_map.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDUNLOCK
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct server
    signature: struct server *map_get_server_hash(struct proxy *px, unsigned int hash)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/haproxy/src/regex.c:42,1
    - Dst: memcpy
      Src: /src/haproxy/src/regex.c:54,1
    - Dst: toupper
      Src: /src/haproxy/src/regex.c:65,1
    - Dst: toupper
      Src: /src/haproxy/src/regex.c:70,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 5
    argNames:
    - dst
    - dst_size
    - src
    - str
    - matches
    argTypes:
    - char*
    - unsigned int
    - char*
    - char*
    - regmatch_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 97
    functionName: exp_replace
    functionSourceFile: /src/haproxy/src/regex.c
    functionUses: 0
    functionsReached:
    - toupper
    - isdigit
    - memcpy
    linkageType: ''
    returnType: int
    signature: int exp_replace(char *dst, unsigned int dst_size, char *src, const
      char *str, const regmatch_t *matches)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/haproxy/src/regex.c:109,1
    - Dst: ishex
      Src: /src/haproxy/src/regex.c:113,1
    - Dst: ishex
      Src: /src/haproxy/src/regex.c:116,1
    - Dst: ha_warning
      Src: /src/haproxy/src/regex.c:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 128
    functionName: check_replace_string
    functionSourceFile: /src/haproxy/src/regex.c
    functionUses: 0
    functionsReached:
    - ishex
    - isdigit
    - ha_warning
    linkageType: ''
    returnType: char
    signature: char *check_replace_string(const char *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: struct my_regex*::mfn
      Src: /src/haproxy/src/regex.c:176,1
    - Dst: strlen
      Src: /src/haproxy/src/regex.c:176,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/haproxy/src/regex.c:181,1
    - Dst: pcre_exec
      Src: /src/haproxy/src/regex.c:183,1
    - Dst: strlen
      Src: /src/haproxy/src/regex.c:183,1
    - Dst: regexec
      Src: /src/haproxy/src/regex.c:208,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 5
    argNames:
    - preg
    - subject
    - nmatch
    - pmatch
    - flags
    argTypes:
    - struct my_regex*
    - char*
    - size_t
    - regmatch_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 213
    functionName: regex_exec_match
    functionSourceFile: /src/haproxy/src/regex.c
    functionUses: 0
    functionsReached:
    - regexec
    - pcre_exec
    - pcre2_get_ovector_pointer
    - struct my_regex*::mfn
    - strlen
    linkageType: ''
    returnType: int
    signature: "int regex_exec_match(const struct my_regex *preg, const char *subject,\n
      \                    size_t nmatch, regmatch_t pmatch[], int flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: struct my_regex*::mfn
      Src: /src/haproxy/src/regex.c:262,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/haproxy/src/regex.c:266,1
    - Dst: pcre_exec
      Src: /src/haproxy/src/regex.c:268,1
    - Dst: regexec
      Src: /src/haproxy/src/regex.c:294,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 6
    argNames:
    - preg
    - subject
    - length
    - nmatch
    - pmatch
    - flags
    argTypes:
    - struct my_regex*
    - char*
    - int
    - size_t
    - regmatch_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 300
    functionName: regex_exec_match2
    functionSourceFile: /src/haproxy/src/regex.c
    functionUses: 0
    functionsReached:
    - regexec
    - pcre_exec
    - struct my_regex*::mfn
    - pcre2_get_ovector_pointer
    linkageType: ''
    returnType: int
    signature: "int regex_exec_match2(const struct my_regex *preg, char *subject,
      int length,\n                      size_t nmatch, regmatch_t pmatch[], int flags)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/regex.c:321,1
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:323,1
    - Dst: pcre_compile
      Src: /src/haproxy/src/regex.c:333,1
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:335,1
    - Dst: pcre_study
      Src: /src/haproxy/src/regex.c:339,1
    - Dst: pcre_free
      Src: /src/haproxy/src/regex.c:341,1
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:342,1
    - Dst: pcre2_compile
      Src: /src/haproxy/src/regex.c:351,1
    - Dst: pcre2_get_error_message
      Src: /src/haproxy/src/regex.c:353,1
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:354,1
    - Dst: pcre2_jit_compile
      Src: /src/haproxy/src/regex.c:360,1
    - Dst: pcre2_code_free
      Src: /src/haproxy/src/regex.c:369,1
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:370,1
    - Dst: regcomp
      Src: /src/haproxy/src/regex.c:384,1
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:385,1
    - Dst: free
      Src: /src/haproxy/src/regex.c:392,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 4
    argNames:
    - str
    - cs
    - cap
    - err
    argTypes:
    - char*
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 394
    functionName: regex_comp
    functionSourceFile: /src/haproxy/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre_compile
    - pcre2_get_error_message
    - memprintf
    - regcomp
    - calloc
    - pcre_free
    - free
    - pcre_study
    - pcre2_code_free
    - pcre2_jit_compile
    - pcre2_compile
    linkageType: ''
    returnType: struct my_regex
    signature: struct my_regex *regex_comp(const char *str, int cs, int cap, char
      **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:401,1
    - Dst: HAP_XSTRING
      Src: /src/haproxy/src/regex.c:402,1
    - Dst: HAP_XSTRING
      Src: /src/haproxy/src/regex.c:403,1
    - Dst: HAP_XSTRING
      Src: /src/haproxy/src/regex.c:403,1
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:404,1
    - Dst: pcre_version
      Src: /src/haproxy/src/regex.c:404,1
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:406,1
    - Dst: USE_PCRE_JIT
      Src: /src/haproxy/src/regex.c:407,1
    - Dst: pcre_config
      Src: /src/haproxy/src/regex.c:410,1
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:420,1
    - Dst: HAP_XSTRING
      Src: /src/haproxy/src/regex.c:421,1
    - Dst: HAP_XSTRING
      Src: /src/haproxy/src/regex.c:422,1
    - Dst: HAP_XSTRING
      Src: /src/haproxy/src/regex.c:422,1
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:423,1
    - Dst: USE_PCRE2_JIT
      Src: /src/haproxy/src/regex.c:424,1
    - Dst: pcre2_config
      Src: /src/haproxy/src/regex.c:427,1
    - Dst: memprintf
      Src: /src/haproxy/src/regex.c:437,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/regex.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 440
    functionName: regex_register_build_options
    functionSourceFile: /src/haproxy/src/regex.c
    functionUses: 0
    functionsReached:
    - memprintf
    - pcre_version
    - USE_PCRE_JIT
    - pcre_config
    - HAP_XSTRING
    - USE_PCRE2_JIT
    - pcre2_config
    - hap_register_build_opts
    linkageType: ''
    returnType: void
    signature: void regex_register_build_options(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_create
      Src: /src/haproxy/src/regex.c:447,1
    - Dst: ha_alert
      Src: /src/haproxy/src/regex.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 453
    functionName: init_pcre2_per_thread
    functionSourceFile: /src/haproxy/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_match_data_create
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int init_pcre2_per_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_free
      Src: /src/haproxy/src/regex.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: deinit_pcre2_per_thread
    functionSourceFile: /src/haproxy/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_match_data_free
    linkageType: ''
    returnType: void
    signature: void deinit_pcre2_per_thread(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/namespace.c:26,1
    - Dst: open
      Src: /src/haproxy/src/namespace.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ns_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: open_named_namespace
    functionSourceFile: /src/haproxy/src/namespace.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - open
    linkageType: ''
    returnType: int
    signature: int open_named_namespace(const char *ns_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/namespace.c:35,1
    - Dst: getpid
      Src: /src/haproxy/src/namespace.c:35,1
    - Dst: open
      Src: /src/haproxy/src/namespace.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: init_default_namespace
    functionSourceFile: /src/haproxy/src/namespace.c
    functionUses: 0
    functionsReached:
    - getpid
    - chunk_printf
    - open
    linkageType: ''
    returnType: int
    signature: int init_default_namespace()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_first
      Src: /src/haproxy/src/namespace.c:50,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/namespace.c:52,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/namespace.c:53,1
    - Dst: container_of
      Src: /src/haproxy/src/namespace.c:54,1
    - Dst: free
      Src: /src/haproxy/src/namespace.c:55,1
    - Dst: close
      Src: /src/haproxy/src/namespace.c:56,1
    - Dst: free
      Src: /src/haproxy/src/namespace.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: netns_sig_stop
    functionSourceFile: /src/haproxy/src/namespace.c
    functionUses: 0
    functionsReached:
    - ebpt_delete
    - ebpt_next
    - free
    - container_of
    - ebpt_first
    - close
    linkageType: ''
    returnType: void
    signature: void netns_sig_stop(struct sig_handler *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/src/namespace.c:71,1
    - Dst: init_default_namespace
      Src: /src/haproxy/src/namespace.c:72,1
    - Dst: ha_alert
      Src: /src/haproxy/src/namespace.c:73,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/namespace.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: netns_init
    functionSourceFile: /src/haproxy/src/namespace.c
    functionUses: 0
    functionsReached:
    - init_default_namespace
    - signal_register_fct
    - ha_alert
    - eb_is_empty
    linkageType: ''
    returnType: int
    signature: int netns_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open_named_namespace
      Src: /src/haproxy/src/namespace.c:86,1
    - Dst: calloc
      Src: /src/haproxy/src/namespace.c:90,1
    - Dst: strdup
      Src: /src/haproxy/src/namespace.c:94,1
    - Dst: strlen
      Src: /src/haproxy/src/namespace.c:98,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/namespace.c:99,1
    - Dst: ha_free
      Src: /src/haproxy/src/namespace.c:105,1
    - Dst: close
      Src: /src/haproxy/src/namespace.c:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - ns_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 109
    functionName: netns_store_insert
    functionSourceFile: /src/haproxy/src/namespace.c
    functionUses: 0
    functionsReached:
    - ebis_insert
    - ha_free
    - calloc
    - open_named_namespace
    - strdup
    - close
    - strlen
    linkageType: ''
    returnType: struct netns_entry
    signature: struct netns_entry * netns_store_insert(const char *ns_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebis_lookup_len
      Src: /src/haproxy/src/namespace.c:115,1
    - Dst: ebpt_entry
      Src: /src/haproxy/src/namespace.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ns_name
    - ns_name_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: netns_store_lookup
    functionSourceFile: /src/haproxy/src/namespace.c
    functionUses: 0
    functionsReached:
    - ebis_lookup_len
    - ebpt_entry
    linkageType: ''
    returnType: struct netns_entry
    signature: struct netns_entry * netns_store_lookup(const char *ns_name, size_t
      ns_name_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setns
      Src: /src/haproxy/src/namespace.c:129,1
    - Dst: socket
      Src: /src/haproxy/src/namespace.c:132,1
    - Dst: setns
      Src: /src/haproxy/src/namespace.c:134,1
    - Dst: close
      Src: /src/haproxy/src/namespace.c:136,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - ns
    - domain
    - type
    - protocol
    argTypes:
    - struct netns_entry*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: my_socketat
    functionSourceFile: /src/haproxy/src/namespace.c
    functionUses: 0
    functionsReached:
    - close
    - setns
    - socket
    linkageType: ''
    returnType: int
    signature: int my_socketat(const struct netns_entry *ns, int domain, int type,
      int protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: comp_flt_init
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int comp_flt_init(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/flt_http_comp.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: comp_strm_init
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    linkageType: ''
    returnType: int
    signature: int comp_strm_init(struct stream *s, struct filter *filter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct comp_state*::comp_algo::end
      Src: /src/haproxy/src/flt_http_comp.c:100,1
    - Dst: pool_free
      Src: /src/haproxy/src/flt_http_comp.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 103
    functionName: comp_strm_deinit
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - struct comp_state*::comp_algo::end
    - pool_free
    linkageType: ''
    returnType: void
    signature: void comp_strm_deinit(struct stream *s, struct filter *filter)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_http_comp.c:108,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:116,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:116,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:126,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:126,1
    - Dst: chn_prod
      Src: /src/haproxy/src/flt_http_comp.c:128,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:137,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:137,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:139,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:139,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/flt_http_comp.c:142,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:153,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:153,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/flt_http_comp.c:159,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:170,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:170,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:171,1
    - Dst: struct comp_state*::comp_algo::init
      Src: /src/haproxy/src/flt_http_comp.c:176,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 50
    argCount: 3
    argNames:
    - st
    - s
    - msg
    argTypes:
    - struct comp_state*
    - struct stream*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 182
    functionName: comp_prepare_compress_request
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - ist
    - htxbuf
    - http_find_header
    - chn_prod
    - read_freq_ctr
    - struct comp_state*::comp_algo::init
    - strncasecmp
    - strm_fe
    linkageType: ''
    returnType: void
    signature: void comp_prepare_compress_request(struct comp_state *st, struct stream
      *s, struct http_msg *msg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:190,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:193,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:194,1
    - Dst: comp_prepare_compress_request
      Src: /src/haproxy/src/flt_http_comp.c:202,1
    - Dst: set_compression_header
      Src: /src/haproxy/src/flt_http_comp.c:204,1
    - Dst: register_data_filter
      Src: /src/haproxy/src/flt_http_comp.c:206,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 184
    functionDepth: 4
    functionLinenumber: 184
    functionLinenumberEnd: 213
    functionName: comp_req_http_headers
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - comp_prepare_compress_request
    - set_compression_header
    - register_data_filter
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int comp_req_http_headers(struct stream *s, struct filter *filter,
      struct http_msg *msg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:221,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:224,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:225,1
    - Dst: select_compression_request_header
      Src: /src/haproxy/src/flt_http_comp.c:234,1
    - Dst: set_compression_header
      Src: /src/haproxy/src/flt_http_comp.c:239,1
    - Dst: register_data_filter
      Src: /src/haproxy/src/flt_http_comp.c:241,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 248
    functionName: comp_res_http_headers
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - select_compression_request_header
    - set_compression_header
    - register_data_filter
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int comp_res_http_headers(struct stream *s, struct filter *filter,
      struct http_msg *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:261,1
    - Dst: select_compression_response_header
      Src: /src/haproxy/src/flt_http_comp.c:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - s
    - filter
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 268
    functionName: comp_res_http_post_analyze
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - select_compression_response_header
    - strm_fe
    linkageType: ''
    returnType: int
    signature: "int comp_res_http_post_analyze(struct stream *s, struct filter *filter,\n
      \                          struct channel *chn, unsigned an_bit)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_http_comp.c:275,1
    - Dst: htx_find_offset
      Src: /src/haproxy/src/flt_http_comp.c:276,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_http_comp.c:283,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/flt_http_comp.c:284,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_http_comp.c:287,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_http_comp.c:288,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_http_comp.c:289,1
    - Dst: htx_compression_buffer_init
      Src: /src/haproxy/src/flt_http_comp.c:294,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_http_comp.c:302,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/flt_http_comp.c:303,1
    - Dst: istadv
      Src: /src/haproxy/src/flt_http_comp.c:304,1
    - Dst: b_size
      Src: /src/haproxy/src/flt_http_comp.c:309,1
    - Dst: b_size
      Src: /src/haproxy/src/flt_http_comp.c:311,1
    - Dst: htx_compression_buffer_add_data
      Src: /src/haproxy/src/flt_http_comp.c:314,1
    - Dst: htx_compression_buffer_end
      Src: /src/haproxy/src/flt_http_comp.c:315,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/flt_http_comp.c:317,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:319,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/flt_http_comp.c:320,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/flt_http_comp.c:322,1
    - Dst: ist2
      Src: /src/haproxy/src/flt_http_comp.c:322,1
    - Dst: b_head
      Src: /src/haproxy/src/flt_http_comp.c:322,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:322,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_http_comp.c:323,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:328,1
    - Dst: htx_compression_buffer_end
      Src: /src/haproxy/src/flt_http_comp.c:335,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:337,1
    - Dst: htx_add_last_data
      Src: /src/haproxy/src/flt_http_comp.c:338,1
    - Dst: ist2
      Src: /src/haproxy/src/flt_http_comp.c:338,1
    - Dst: b_head
      Src: /src/haproxy/src/flt_http_comp.c:338,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:338,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_http_comp.c:341,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_http_comp.c:344,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:345,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/flt_http_comp.c:366,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/flt_http_comp.c:369,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:371,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:372,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:375,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:376,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/flt_http_comp.c:378,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:381,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:383,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 100
    argCount: 6
    argNames:
    - s
    - filter
    - msg
    - offset
    - len
    - dir
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    - unsigned int
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 389
    functionName: comp_http_payload
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - htx_find_offset
    - htx_get_blksz
    - istadv
    - htx_replace_blk_value
    - _HA_ATOMIC_ADD
    - htx_compression_buffer_init
    - htx_add_last_data
    - ist2
    - htx_get_blk_type
    - htx_get_next_blk
    - htxbuf
    - b_head
    - flt_update_offsets
    - htx_compression_buffer_add_data
    - b_data
    - b_size
    - update_freq_ctr
    - htx_get_blk_value
    - BUG_ON
    - htx_remove_blk
    - htx_compression_buffer_end
    linkageType: ''
    returnType: int
    signature: "int comp_http_payload(struct stream *s, struct filter *filter, struct
      http_msg *msg,\n\t\t  unsigned int offset, unsigned int len, int dir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: comp_http_payload
      Src: /src/haproxy/src/flt_http_comp.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - s
    - filter
    - msg
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 399
    functionName: comp_req_http_payload
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - comp_http_payload
    linkageType: ''
    returnType: int
    signature: "int comp_req_http_payload(struct stream *s, struct filter *filter,
      struct http_msg *msg,\n                      unsigned int offset, unsigned int
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: comp_http_payload
      Src: /src/haproxy/src/flt_http_comp.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - s
    - filter
    - msg
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 409
    functionName: comp_res_http_payload
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - comp_http_payload
    linkageType: ''
    returnType: int
    signature: "int comp_res_http_payload(struct stream *s, struct filter *filter,
      struct http_msg *msg,\n                      unsigned int offset, unsigned int
      len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:420,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/flt_http_comp.c:421,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/flt_http_comp.c:424,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 427
    functionName: comp_res_http_end
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - strm_fe
    linkageType: ''
    returnType: int
    signature: "int comp_res_http_end(struct stream *s, struct filter *filter,\n\t
      \         struct http_msg *msg)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_http_comp.c:433,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/flt_http_comp.c:438,1
    - Dst: http_add_header
      Src: /src/haproxy/src/flt_http_comp.c:446,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:446,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:446,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:455,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:455,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/flt_http_comp.c:456,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:463,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:463,1
    - Dst: ist2
      Src: /src/haproxy/src/flt_http_comp.c:466,1
    - Dst: istcat
      Src: /src/haproxy/src/flt_http_comp.c:467,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:467,1
    - Dst: istcat
      Src: /src/haproxy/src/flt_http_comp.c:467,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/flt_http_comp.c:470,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:478,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:478,1
    - Dst: isteqi
      Src: /src/haproxy/src/flt_http_comp.c:479,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:479,1
    - Dst: http_add_header
      Src: /src/haproxy/src/flt_http_comp.c:487,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:487,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:487,1
    - Dst: http_append_header_value
      Src: /src/haproxy/src/flt_http_comp.c:494,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:494,1
    - Dst: memcmp
      Src: /src/haproxy/src/flt_http_comp.c:505,1
    - Dst: ist2
      Src: /src/haproxy/src/flt_http_comp.c:506,1
    - Dst: http_add_header
      Src: /src/haproxy/src/flt_http_comp.c:508,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:508,1
    - Dst: chn_prod
      Src: /src/haproxy/src/flt_http_comp.c:512,1
    - Dst: struct comp_state*::comp_algo::end
      Src: /src/haproxy/src/flt_http_comp.c:516,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 61
    argCount: 3
    argNames:
    - st
    - s
    - msg
    argTypes:
    - struct comp_state*
    - struct stream*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 519
    functionName: set_compression_header
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 2
    functionsReached:
    - struct comp_state*::comp_algo::end
    - ist
    - htxbuf
    - ist2
    - isteqi
    - memcmp
    - http_append_header_value
    - http_get_stline
    - http_find_header
    - chn_prod
    - http_remove_header
    - istcat
    - http_replace_header_value
    - http_add_header
    linkageType: ''
    returnType: int
    signature: int set_compression_header(struct comp_state *st, struct stream *s,
      struct http_msg *msg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_http_comp.c:527,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:537,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:537,1
    - Dst: memcmp
      Src: /src/haproxy/src/flt_http_comp.c:539,1
    - Dst: memcmp
      Src: /src/haproxy/src/flt_http_comp.c:541,1
    - Dst: memcmp
      Src: /src/haproxy/src/flt_http_comp.c:544,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:551,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:551,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:555,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:555,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/flt_http_comp.c:562,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:567,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/flt_http_comp.c:567,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:570,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:576,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/flt_http_comp.c:576,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:579,1
    - Dst: strncmp
      Src: /src/haproxy/src/flt_http_comp.c:583,1
    - Dst: MIN
      Src: /src/haproxy/src/flt_http_comp.c:583,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:583,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:586,1
    - Dst: http_parse_qvalue
      Src: /src/haproxy/src/flt_http_comp.c:591,1
    - Dst: word_match
      Src: /src/haproxy/src/flt_http_comp.c:598,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:610,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:610,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/flt_http_comp.c:611,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:613,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:613,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/flt_http_comp.c:614,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:621,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:621,1
    - Dst: memcmp
      Src: /src/haproxy/src/flt_http_comp.c:623,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 63
    argCount: 3
    argNames:
    - st
    - s
    - msg
    argTypes:
    - struct comp_state*
    - struct stream*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 632
    functionName: select_compression_request_header
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 1
    functionsReached:
    - ist
    - htxbuf
    - memcmp
    - istend
    - http_find_header
    - http_remove_header
    - strncmp
    - http_parse_qvalue
    - MIN
    - HTTP_IS_LWS
    - word_match
    - HTTP_IS_TOKEN
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int select_compression_request_header(struct comp_state *st, struct
      stream *s, struct http_msg *msg)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_http_comp.c:640,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:674,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:674,1
    - Dst: chn_prod
      Src: /src/haproxy/src/flt_http_comp.c:676,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:682,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:682,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:687,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:687,1
    - Dst: word_match
      Src: /src/haproxy/src/flt_http_comp.c:688,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:694,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:694,1
    - Dst: http_get_etag_type
      Src: /src/haproxy/src/flt_http_comp.c:695,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:701,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:701,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:712,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:712,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/flt_http_comp.c:713,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:717,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:717,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/flt_http_comp.c:720,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:731,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:731,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/flt_http_comp.c:737,1
    - Dst: struct comp_state*::comp_algo::init
      Src: /src/haproxy/src/flt_http_comp.c:745,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 79
    argCount: 3
    argNames:
    - st
    - s
    - msg
    argTypes:
    - struct comp_state*
    - struct stream*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 753
    functionName: select_compression_response_header
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 1
    functionsReached:
    - ist
    - htxbuf
    - http_get_etag_type
    - http_find_header
    - chn_prod
    - read_freq_ctr
    - struct comp_state*::comp_algo::init
    - word_match
    - strncasecmp
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int select_compression_response_header(struct comp_state *st, struct
      stream *s, struct http_msg *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_space
      Src: /src/haproxy/src/flt_http_comp.c:763,1
    - Dst: b_reset
      Src: /src/haproxy/src/flt_http_comp.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - htx
    - out
    argTypes:
    - struct htx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 767
    functionName: htx_compression_buffer_init
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 1
    functionsReached:
    - b_reset
    - htx_free_space
    linkageType: ''
    returnType: int
    signature: int htx_compression_buffer_init(struct htx *htx, struct buffer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct comp_state*::comp_algo::add_data
      Src: /src/haproxy/src/flt_http_comp.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - st
    - data
    - len
    - out
    - dir
    argTypes:
    - struct comp_state*
    - char*
    - size_t
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 775
    functionName: htx_compression_buffer_add_data
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 1
    functionsReached:
    - struct comp_state*::comp_algo::add_data
    linkageType: ''
    returnType: int
    signature: "int htx_compression_buffer_add_data(struct comp_state *st, const char
      *data, size_t len,\n\t\t\t\tstruct buffer *out, int dir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct comp_state*::comp_algo::finish
      Src: /src/haproxy/src/flt_http_comp.c:782,1
    - Dst: struct comp_state*::comp_algo::flush
      Src: /src/haproxy/src/flt_http_comp.c:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - st
    - out
    - end
    - dir
    argTypes:
    - struct comp_state*
    - struct buffer*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 785
    functionName: htx_compression_buffer_end
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 1
    functionsReached:
    - struct comp_state*::comp_algo::finish
    - struct comp_state*::comp_algo::flush
    linkageType: ''
    returnType: int
    signature: int htx_compression_buffer_end(struct comp_state *st, struct buffer
      *out, int end, int dir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/flt_http_comp.c:825,1
    - Dst: unlikely
      Src: /src/haproxy/src/flt_http_comp.c:826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - proxy
    - defaults
    argTypes:
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 832
    functionName: proxy_get_comp
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - unlikely
    - calloc
    linkageType: ''
    returnType: struct comp
    signature: struct comp *proxy_get_comp(struct proxy *proxy, int defaults)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: proxy_get_comp
      Src: /src/haproxy/src/flt_http_comp.c:844,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:846,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:851,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:851,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:856,1
    - Dst: comp_append_algo
      Src: /src/haproxy/src/flt_http_comp.c:862,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:865,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:868,1
    - Dst: struct proxy*::comp::algos_res::init
      Src: /src/haproxy/src/flt_http_comp.c:874,1
    - Dst: struct proxy*::comp::algos_res::end
      Src: /src/haproxy/src/flt_http_comp.c:875,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:877,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:886,1
    - Dst: comp_append_algo
      Src: /src/haproxy/src/flt_http_comp.c:888,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:892,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:895,1
    - Dst: struct proxy*::comp::algo_req::init
      Src: /src/haproxy/src/flt_http_comp.c:901,1
    - Dst: struct proxy*::comp::algo_req::end
      Src: /src/haproxy/src/flt_http_comp.c:902,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:904,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:910,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:912,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:918,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:918,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:922,1
    - Dst: comp_append_type
      Src: /src/haproxy/src/flt_http_comp.c:927,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:928,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:936,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:940,1
    - Dst: comp_append_type
      Src: /src/haproxy/src/flt_http_comp.c:945,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:946,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:954,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:956,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/flt_http_comp.c:960,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:962,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:967,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:969,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/flt_http_comp.c:973,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:975,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:980,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:982,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:986,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:989,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:992,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:995,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:1001,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 156
    argCount: 7
    argNames:
    - args
    - section
    - proxy
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 834
    functionDepth: 3
    functionLinenumber: 834
    functionLinenumberEnd: 1009
    functionName: parse_compression_options
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_size_err
    - struct proxy*::comp::algos_res::init
    - struct proxy*::comp::algos_res::end
    - proxy_get_comp
    - comp_append_type
    - strcmp
    - struct proxy*::comp::algo_req::end
    - comp_append_algo
    - struct proxy*::comp::algo_req::init
    linkageType: ''
    returnType: int
    signature: "int parse_compression_options(char **args, int section, struct proxy
      *proxy,\n\t\t\t  const struct proxy *defpx, const char *file, int line,\n\t\t\t
      \ char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_http_comp.c:1018,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:1020,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_http_comp.c:1036,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:1038,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_http_comp.c:1049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1055
    functionName: parse_http_comp_flt
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - calloc
    - list_for_each_entry_safe
    - LIST_APPEND
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int parse_http_comp_flt(char **args, int *cur_arg, struct proxy *px,\n
      \                   struct flt_conf *fconf, char **err, void *private)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_http_comp.c:1064,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:1066,1
    - Dst: proxy_get_comp
      Src: /src/haproxy/src/flt_http_comp.c:1071,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:1073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1084
    functionName: parse_http_comp_req_flt
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - proxy_get_comp
    - list_for_each_entry_safe
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int parse_http_comp_req_flt(char **args, int *cur_arg, struct proxy
      *px,\n                        struct flt_conf *fconf, char **err, void *private)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_http_comp.c:1093,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:1095,1
    - Dst: proxy_get_comp
      Src: /src/haproxy/src/flt_http_comp.c:1100,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:1102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1086
    functionDepth: 2
    functionLinenumber: 1086
    functionLinenumberEnd: 1113
    functionName: parse_http_comp_res_flt
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - proxy_get_comp
    - list_for_each_entry_safe
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int parse_http_comp_res_flt(char **args, int *cur_arg, struct proxy
      *px,\n                        struct flt_conf *fconf, char **err, void *private)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_http_comp.c:1127,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_http_comp.c:1128,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_http_comp.c:1133,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_http_comp.c:1135,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_http_comp.c:1149,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_http_comp.c:1150,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_http_comp.c:1157,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_http_comp.c:1158,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_http_comp.c:1160,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_http_comp.c:1161,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_http_comp.c:1162,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_http_comp.c:1163,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_http_comp.c:1170,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_http_comp.c:1175,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1178
    functionName: check_implicit_http_comp_flt
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - list_for_each_entry
    - ha_free
    - calloc
    - LIST_APPEND
    - LIST_ISEMPTY
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int check_implicit_http_comp_flt(struct proxy *proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1193
    functionName: smp_fetch_res_comp
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int smp_fetch_res_comp(const struct arg *args, struct sample *smp,
      const char *kw,\n\t\t   void *private)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_http_comp.c:1209,1
    - Dst: strm_flt
      Src: /src/haproxy/src/flt_http_comp.c:1209,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/flt_http_comp.c:1210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1223
    functionName: smp_fetch_res_comp_algo
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - FLT_ID
    - strm_flt
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int smp_fetch_res_comp_algo(const struct arg *args, struct sample
      *smp,\n\t\t\tconst char *kw, void *private)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/connection.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - conn
    - type
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: conn_get_tlv
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct conn_tlv_list
    signature: struct conn_tlv_list *conn_get_tlv(struct connection *conn, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_server
      Src: /src/haproxy/src/connection.c:84,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/connection.c:93,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/connection.c:94,1
    - Dst: ceb64_item_delete
      Src: /src/haproxy/src/connection.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - conn
    - thr
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: conn_delete_from_tree
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - ceb64_item_delete
    - LIST_INLIST
    - LIST_DEL_INIT
    linkageType: ''
    returnType: void
    signature: void conn_delete_from_tree(struct connection *conn, int thr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/src/connection.c:124,1
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:132,1
    - Dst: conn_install_mux_chk
      Src: /src/haproxy/src/connection.c:133,1
    - Dst: conn_install_mux_be
      Src: /src/haproxy/src/connection.c:136,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:138,1
    - Dst: struct connection*::mux::avail_streams
      Src: /src/haproxy/src/connection.c:147,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/connection.c:148,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/connection.c:152,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/connection.c:158,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/connection.c:160,1
    - Dst: conn_active_reverse_listener
      Src: /src/haproxy/src/connection.c:161,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:171,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/connection.c:173,1
    - Dst: conn_complete_session
      Src: /src/haproxy/src/connection.c:178,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 2
    argNames:
    - conn
    - closed_connection
    argTypes:
    - struct connection*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 184
    functionName: conn_create_mux
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - session_add_conn
    - conn_install_mux_be
    - BUG_ON
    - conn_active_reverse_listener
    - task_wakeup
    - tasklet_wakeup
    - conn_complete_session
    - conn_install_mux_chk
    - srv_add_to_avail_list
    - struct connection*::mux::avail_streams
    - obj_type
    - conn_reverse_in_preconnect
    - objt_server
    linkageType: ''
    returnType: int
    signature: int conn_create_mux(struct connection *conn, int *closed_connection)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:199,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/connection.c:200,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:235,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/connection.c:238,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/connection.c:240,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/connection.c:244,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/connection.c:246,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/connection.c:249,1
    - Dst: wake
      Src: /src/haproxy/src/connection.c:249,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/connection.c:256,1
    - Dst: destroy
      Src: /src/haproxy/src/connection.c:256,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/connection.c:262,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/connection.c:264,1
    - Dst: destroy
      Src: /src/haproxy/src/connection.c:264,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/connection.c:269,1
    - Dst: srv_add_idle
      Src: /src/haproxy/src/connection.c:270,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 3
    argNames:
    - conn
    - old_flags
    - forced_wake
    argTypes:
    - struct connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 276
    functionName: conn_notify_mux
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - unlikely
    - CALL_MUX_NO_RET
    - srv_add_idle
    - conn_delete_from_tree
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - CALL_MUX_WITH_RET
    - wake
    - conn_create_mux
    - session_detach_idle_conn
    - destroy
    - ASSUME_NONNULL
    - objt_server
    - session_reinsert_idle_conn
    linkageType: ''
    returnType: int
    signature: int conn_notify_mux(struct connection *conn, int old_flags, int forced_wake)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __objt_listener
      Src: /src/haproxy/src/connection.c:284,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:292,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:293,1
    - Dst: conn_get_best_mux
      Src: /src/haproxy/src/connection.c:295,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/connection.c:309,1
    - Dst: init
      Src: /src/haproxy/src/connection.c:309,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/connection.c:318,1
    - Dst: destroy
      Src: /src/haproxy/src/connection.c:318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - conn
    - ctx
    - buf
    - mux_proto
    - mode
    argTypes:
    - struct connection*
    - void*
    - struct buffer*
    - struct ist
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 320
    functionName: conn_upgrade_mux_fe
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - init
    - ist2
    - CALL_MUX_NO_RET
    - __objt_listener
    - CALL_MUX_WITH_RET
    - conn_get_best_mux
    - destroy
    - conn_get_alpn
    linkageType: ''
    returnType: int
    signature: "int conn_upgrade_mux_fe(struct connection *conn, void *ctx, struct
      buffer *buf,\n                        struct ist mux_proto, int mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_listener
      Src: /src/haproxy/src/connection.c:333,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/connection.c:338,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:339,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:340,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/connection.c:341,1
    - Dst: proto_is_quic
      Src: /src/haproxy/src/connection.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: conn_select_mux_fe
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - ist2
    - __objt_listener
    - conn_pr_mode_to_proto_mode
    - conn_get_best_mux_entry
    - conn_get_alpn
    - proto_is_quic
    linkageType: ''
    returnType: struct mux_proto_list
    signature: struct mux_proto_list *conn_select_mux_fe(const struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __objt_listener
      Src: /src/haproxy/src/connection.c:351,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/connection.c:360,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:362,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:363,1
    - Dst: conn_get_best_mux
      Src: /src/haproxy/src/connection.c:364,1
    - Dst: conn_install_mux
      Src: /src/haproxy/src/connection.c:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - conn
    - ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 378
    functionName: conn_install_mux_fe
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - ist2
    - __objt_listener
    - conn_pr_mode_to_proto_mode
    - conn_get_best_mux
    - conn_get_alpn
    - conn_install_mux
    linkageType: ''
    returnType: int
    signature: int conn_install_mux_fe(struct connection *conn, void *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:395,1
    - Dst: __objt_check
      Src: /src/haproxy/src/connection.c:396,1
    - Dst: tcpchk_rules_type_to_proto_mode
      Src: /src/haproxy/src/connection.c:400,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:402,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:403,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/connection.c:405,1
    - Dst: proto_is_quic
      Src: /src/haproxy/src/connection.c:406,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:409,1
    - Dst: objt_proxy
      Src: /src/haproxy/src/connection.c:410,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/connection.c:418,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/connection.c:422,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:427,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:430,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:433,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/connection.c:435,1
    - Dst: proto_is_quic
      Src: /src/haproxy/src/connection.c:436,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 438
    functionName: conn_select_mux_be
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - ist2
    - tcpchk_rules_type_to_proto_mode
    - conn_pr_mode_to_proto_mode
    - __objt_check
    - conn_get_best_mux_entry
    - obj_type
    - conn_get_alpn
    - proto_is_quic
    - objt_server
    - BUG_ON_HOT
    - objt_proxy
    - strlen
    linkageType: ''
    returnType: struct mux_proto_list
    signature: struct mux_proto_list *conn_select_mux_be(const struct connection *conn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:450,1
    - Dst: objt_proxy
      Src: /src/haproxy/src/connection.c:451,1
    - Dst: likely
      Src: /src/haproxy/src/connection.c:460,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:463,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/connection.c:470,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:472,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:475,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:478,1
    - Dst: conn_get_best_mux
      Src: /src/haproxy/src/connection.c:480,1
    - Dst: conn_install_mux
      Src: /src/haproxy/src/connection.c:495,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 4
    argNames:
    - conn
    - ctx
    - sess
    - force_mux_ops
    argTypes:
    - struct connection*
    - void*
    - struct session*
    - struct mux_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 496
    functionName: conn_install_mux_be
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 2
    functionsReached:
    - unlikely
    - ist2
    - conn_install_mux
    - conn_pr_mode_to_proto_mode
    - likely
    - conn_get_best_mux
    - conn_get_alpn
    - objt_server
    - objt_proxy
    - strlen
    linkageType: ''
    returnType: int
    signature: "int conn_install_mux_be(struct connection *conn, void *ctx, struct
      session *sess,\n                        const struct mux_ops *force_mux_ops)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: objt_check
      Src: /src/haproxy/src/connection.c:504,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:505,1
    - Dst: objt_proxy
      Src: /src/haproxy/src/connection.c:506,1
    - Dst: tcpchk_rules_type_to_proto_mode
      Src: /src/haproxy/src/connection.c:524,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:526,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:527,1
    - Dst: conn_get_best_mux
      Src: /src/haproxy/src/connection.c:529,1
    - Dst: conn_install_mux
      Src: /src/haproxy/src/connection.c:533,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - conn
    - ctx
    - sess
    argTypes:
    - struct connection*
    - void*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 534
    functionName: conn_install_mux_chk
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 1
    functionsReached:
    - ist2
    - tcpchk_rules_type_to_proto_mode
    - objt_check
    - conn_get_best_mux
    - conn_get_alpn
    - objt_server
    - objt_proxy
    - conn_install_mux
    linkageType: ''
    returnType: int
    signature: int conn_install_mux_chk(struct connection *conn, void *ctx, struct
      session *sess)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:545,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/connection.c:554,1
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:555,1
    - Dst: __objt_server
      Src: /src/haproxy/src/connection.c:556,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:581,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:581,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:590,1
    - Dst: ssl_sock_set_alpn
      Src: /src/haproxy/src/connection.c:596,1
    - Dst: istptr
      Src: /src/haproxy/src/connection.c:596,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:596,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - conn
    - alpn
    - force
    argTypes:
    - struct connection*
    - struct ist
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 602
    functionName: conn_update_alpn
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - __objt_server
    - isteqi
    - ist2
    - BUG_ON
    - istptr
    - obj_type
    - ssl_sock_set_alpn
    - istlen
    linkageType: ''
    returnType: int
    signature: int conn_update_alpn(struct connection *conn, const struct ist alpn,
      int force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/connection.c:623,1
    - Dst: ceb_init_node
      Src: /src/haproxy/src/connection.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - conn
    - target
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 633
    functionName: conn_init
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - ceb_init_node
    linkageType: ''
    returnType: void
    signature: void conn_init(struct connection *conn, void *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/connection.c:641,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/connection.c:642,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/connection.c:643,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 649
    functionName: conn_backend_init
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sockaddr_alloc
    - LIST_INIT
    - MT_LIST_INIT
    linkageType: ''
    returnType: int
    signature: int conn_backend_init(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/connection.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 655
    functionName: conn_frontend_init
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void conn_frontend_init(struct connection *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/connection.c:666,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/connection.c:667,1
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:669,1
    - Dst: __objt_server
      Src: /src/haproxy/src/connection.c:670,1
    - Dst: srv_release_conn
      Src: /src/haproxy/src/connection.c:673,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/connection.c:676,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:680,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/connection.c:680,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/connection.c:685,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 686
    functionName: conn_backend_deinit
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - MT_LIST_DELETE
    - BUG_ON
    - ceb_intree
    - srv_release_conn
    - LIST_INLIST
    - obj_type
    - _HA_ATOMIC_DEC
    - session_unown_conn
    linkageType: ''
    returnType: void
    signature: void conn_backend_deinit(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/connection.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: conn_frontend_deinit
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    linkageType: ''
    returnType: void
    signature: void conn_frontend_deinit(struct connection *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/connection.c:704,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:705,1
    - Dst: conn_init
      Src: /src/haproxy/src/connection.c:708,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/connection.c:710,1
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:711,1
    - Dst: srv_use_conn
      Src: /src/haproxy/src/connection.c:712,1
    - Dst: __objt_server
      Src: /src/haproxy/src/connection.c:712,1
    - Dst: conn_backend_init
      Src: /src/haproxy/src/connection.c:714,1
    - Dst: conn_free
      Src: /src/haproxy/src/connection.c:715,1
    - Dst: conn_frontend_init
      Src: /src/haproxy/src/connection.c:720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - target
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 724
    functionName: conn_new
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 1
    functionsReached:
    - unlikely
    - conn_is_back
    - __objt_server
    - pool_alloc
    - conn_free
    - conn_backend_init
    - obj_type
    - conn_init
    - srv_use_conn
    - conn_frontend_init
    linkageType: ''
    returnType: struct connection
    signature: struct connection *conn_new(void *target)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/src/connection.c:731,1
    - Dst: conn_backend_deinit
      Src: /src/haproxy/src/connection.c:732,1
    - Dst: conn_frontend_deinit
      Src: /src/haproxy/src/connection.c:734,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/connection.c:736,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/connection.c:737,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/connection.c:740,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/connection.c:741,1
    - Dst: free
      Src: /src/haproxy/src/connection.c:743,1
    - Dst: pool_free
      Src: /src/haproxy/src/connection.c:745,1
    - Dst: pool_free
      Src: /src/haproxy/src/connection.c:747,1
    - Dst: ha_free
      Src: /src/haproxy/src/connection.c:750,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/connection.c:752,1
    - Dst: conn_active_reverse_listener
      Src: /src/haproxy/src/connection.c:753,1
    - Dst: rhttp_notify_preconn_err
      Src: /src/haproxy/src/connection.c:754,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/connection.c:755,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/connection.c:758,1
    - Dst: conn_force_unsubscribe
      Src: /src/haproxy/src/connection.c:762,1
    - Dst: pool_free
      Src: /src/haproxy/src/connection.c:763,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 764
    functionName: conn_free
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 3
    functionsReached:
    - conn_is_back
    - LIST_DELETE
    - rhttp_notify_preconn_err
    - ha_free
    - conn_active_reverse_listener
    - list_for_each_entry_safe
    - free
    - HA_ATOMIC_DEC
    - conn_backend_deinit
    - sockaddr_free
    - conn_reverse_in_preconnect
    - conn_force_unsubscribe
    - pool_free
    - conn_frontend_deinit
    linkageType: ''
    returnType: void
    signature: void conn_free(struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/connection.c:770,1
    - Dst: destroy
      Src: /src/haproxy/src/connection.c:770,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/connection.c:773,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/connection.c:774,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/connection.c:776,1
    - Dst: conn_free
      Src: /src/haproxy/src/connection.c:777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 779
    functionName: conn_release
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_full_close
    - CALL_MUX_NO_RET
    - conn_free
    - destroy
    - struct connection*::destroy_cb
    - conn_stop_tracking
    linkageType: ''
    returnType: void
    signature: void conn_release(struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/connection.c:795,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:797,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - sap
    - orig
    - len
    argTypes:
    - struct sockaddr_storage**
    - struct sockaddr_storage*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 801
    functionName: sockaddr_alloc
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 2
    functionsReached:
    - pool_alloc
    - memcpy
    linkageType: ''
    returnType: struct sockaddr_storage
    signature: struct sockaddr_storage *sockaddr_alloc(struct sockaddr_storage **sap,
      const struct sockaddr_storage *orig, socklen_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/connection.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sap
    argTypes:
    - struct sockaddr_storage**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 813
    functionName: sockaddr_free
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 1
    functionsReached:
    - pool_free
    linkageType: ''
    returnType: void
    signature: void sockaddr_free(struct sockaddr_storage **sap)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xprt_get
      Src: /src/haproxy/src/connection.c:823,1
    - Dst: struct xprt_ops*::init
      Src: /src/haproxy/src/connection.c:829,1
    - Dst: xprt_get
      Src: /src/haproxy/src/connection.c:831,1
    - Dst: struct connection*::xprt::add_xprt
      Src: /src/haproxy/src/connection.c:837,1
    - Dst: struct xprt_ops*::close
      Src: /src/haproxy/src/connection.c:839,1
    - Dst: struct xprt_ops*::add_xprt
      Src: /src/haproxy/src/connection.c:843,1
    - Dst: struct xprt_ops*::close
      Src: /src/haproxy/src/connection.c:844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 848
    functionName: xprt_add_hs
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 1
    functionsReached:
    - struct connection*::xprt::add_xprt
    - struct xprt_ops*::init
    - struct xprt_ops*::close
    - xprt_get
    - struct xprt_ops*::add_xprt
    linkageType: ''
    returnType: int
    signature: int xprt_add_hs(struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xprt_get
      Src: /src/haproxy/src/connection.c:858,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:862,1
    - Dst: xprt_get
      Src: /src/haproxy/src/connection.c:870,1
    - Dst: struct xprt_ops*::init
      Src: /src/haproxy/src/connection.c:875,1
    - Dst: struct xprt_ops*::add_xprt
      Src: /src/haproxy/src/connection.c:878,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - conn
    - xprt
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 856
    functionDepth: 3
    functionLinenumber: 856
    functionLinenumberEnd: 885
    functionName: xprt_add_l6hs
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - xprt_get
    - struct xprt_ops*::add_xprt
    - struct xprt_ops*::init
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int xprt_add_l6hs(struct connection *conn, int xprt)
  - BBCount: 58
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 118
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 953
    functionName: conn_err_code_name
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *conn_err_code_name(struct connection *c)
  - BBCount: 59
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 120
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 1030
    functionName: conn_err_code_str
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *conn_err_code_str(struct connection *c)
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 2
    argNames:
    - conn
    - err
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1061
    functionName: conn_set_errno
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void conn_set_errno(struct connection *conn, int err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/src/connection.c:1077,1
    - Dst: xprt_get
      Src: /src/haproxy/src/connection.c:1078,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:1087,1
    - Dst: struct xprt_ops*::snd_buf
      Src: /src/haproxy/src/connection.c:1097,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - conn
    - buf
    - len
    - flags
    argTypes:
    - struct connection*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1104
    functionName: conn_ctrl_send
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - b_make
    - xprt_get
    - struct xprt_ops*::snd_buf
    - conn_ctrl_ready
    linkageType: ''
    returnType: int
    signature: int conn_ctrl_send(struct connection *conn, const void *buf, int len,
      int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1113,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1114,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:1120,1
    - Dst: struct connection*::ctrl::ignore_events
      Src: /src/haproxy/src/connection.c:1121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - event_type
    - es
    argTypes:
    - struct connection*
    - void*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1124
    functionName: conn_unsubscribe
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - struct connection*::ctrl::ignore_events
    - BUG_ON
    - conn_ctrl_ready
    linkageType: ''
    returnType: int
    signature: int conn_unsubscribe(struct connection *conn, void *xprt_ctx, int event_type,
      struct wait_event *es)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1136,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1137,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:1142,1
    - Dst: struct connection*::ctrl::check_events
      Src: /src/haproxy/src/connection.c:1143,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/connection.c:1145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - event_type
    - es
    argTypes:
    - struct connection*
    - void*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1151
    functionName: conn_subscribe
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - struct connection*::ctrl::check_events
    - tasklet_wakeup
    - BUG_ON
    - conn_ctrl_ready
    linkageType: ''
    returnType: int
    signature: int conn_subscribe(struct connection *conn, void *xprt_ctx, int event_type,
      struct wait_event *es)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:1163,1
    - Dst: struct connection*::ctrl::drain
      Src: /src/haproxy/src/connection.c:1166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1171
    functionName: conn_ctrl_drain
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - struct connection*::ctrl::drain
    - conn_ctrl_ready
    linkageType: ''
    returnType: int
    signature: int conn_ctrl_drain(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct tlv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1179
    functionName: get_tlv_length
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_tlv_length(const struct tlv *src)
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:1214,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1217,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/connection.c:1219,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:1223,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/connection.c:1228,1
    - Dst: strncmp
      Src: /src/haproxy/src/connection.c:1252,1
    - Dst: memcmp
      Src: /src/haproxy/src/connection.c:1259,1
    - Dst: inetaddr_host_lim_ret
      Src: /src/haproxy/src/connection.c:1264,1
    - Dst: inetaddr_host_lim_ret
      Src: /src/haproxy/src/connection.c:1270,1
    - Dst: read_uint
      Src: /src/haproxy/src/connection.c:1276,1
    - Dst: read_uint
      Src: /src/haproxy/src/connection.c:1282,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1290,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1290,1
    - Dst: htonl
      Src: /src/haproxy/src/connection.c:1295,1
    - Dst: htons
      Src: /src/haproxy/src/connection.c:1296,1
    - Dst: htonl
      Src: /src/haproxy/src/connection.c:1299,1
    - Dst: htons
      Src: /src/haproxy/src/connection.c:1300,1
    - Dst: memcmp
      Src: /src/haproxy/src/connection.c:1302,1
    - Dst: read_uint
      Src: /src/haproxy/src/connection.c:1339,1
    - Dst: read_uint
      Src: /src/haproxy/src/connection.c:1343,1
    - Dst: inet_pton
      Src: /src/haproxy/src/connection.c:1347,1
    - Dst: inet_pton
      Src: /src/haproxy/src/connection.c:1350,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1353,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1353,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1358,1
    - Dst: htons
      Src: /src/haproxy/src/connection.c:1359,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1362,1
    - Dst: htons
      Src: /src/haproxy/src/connection.c:1363,1
    - Dst: memcmp
      Src: /src/haproxy/src/connection.c:1365,1
    - Dst: memcmp
      Src: /src/haproxy/src/connection.c:1385,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:1391,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:1399,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1402,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1402,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:1414,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1417,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1417,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1421,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1424,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:1453,1
    - Dst: get_tlv_length
      Src: /src/haproxy/src/connection.c:1453,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:1454,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:1466,1
    - Dst: read_n32
      Src: /src/haproxy/src/connection.c:1469,1
    - Dst: istptr
      Src: /src/haproxy/src/connection.c:1469,1
    - Dst: write_n32
      Src: /src/haproxy/src/connection.c:1470,1
    - Dst: istptr
      Src: /src/haproxy/src/connection.c:1470,1
    - Dst: hash_crc32c
      Src: /src/haproxy/src/connection.c:1472,1
    - Dst: netns_store_lookup
      Src: /src/haproxy/src/connection.c:1480,1
    - Dst: istptr
      Src: /src/haproxy/src/connection.c:1480,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:1480,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:1488,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:1494,1
    - Dst: get_tlv_length
      Src: /src/haproxy/src/connection.c:1503,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:1506,1
    - Dst: malloc
      Src: /src/haproxy/src/connection.c:1511,1
    - Dst: get_tlv_length
      Src: /src/haproxy/src/connection.c:1511,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/connection.c:1513,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/connection.c:1515,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:1517,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1523,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/connection.c:1526,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1534,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:1545,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1575,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1582,1
    CyclomaticComplexity: 139
    EdgeCount: 139
    ICount: 310
    argCount: 2
    argNames:
    - conn
    - flag
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1204
    functionDepth: 2
    functionLinenumber: 1204
    functionLinenumberEnd: 1585
    functionName: conn_recv_proxy
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memcmp
    - inetaddr_host_lim_ret
    - conn_ctrl_ready
    - LIST_APPEND
    - istlen
    - inet_pton
    - get_tlv_length
    - sockaddr_alloc
    - ist2
    - hash_crc32c
    - pool_alloc
    - fd_recv_ready
    - recv
    - istptr
    - htonl
    - fd_cant_recv
    - malloc
    - read_uint
    - memcpy
    - conn_report_term_evt
    - ntohs
    - netns_store_lookup
    - htons
    - BUG_ON
    - strncmp
    - read_n32
    - write_n32
    linkageType: ''
    returnType: int
    signature: int conn_recv_proxy(struct connection *conn, int flag)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:1598,1
    - Dst: conn_get_first_sc
      Src: /src/haproxy/src/connection.c:1612,1
    - Dst: sc_strm
      Src: /src/haproxy/src/connection.c:1624,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/connection.c:1625,1
    - Dst: make_proxy_line
      Src: /src/haproxy/src/connection.c:1626,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:1627,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:1628,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/connection.c:1628,1
    - Dst: strm_sess
      Src: /src/haproxy/src/connection.c:1629,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/connection.c:1635,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/connection.c:1635,1
    - Dst: make_proxy_line
      Src: /src/haproxy/src/connection.c:1638,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:1639,1
    - Dst: conn_ctrl_send
      Src: /src/haproxy/src/connection.c:1652,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1676,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - conn
    - flag
    argTypes:
    - struct connection*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1596
    functionDepth: 2
    functionLinenumber: 1596
    functionLinenumberEnd: 1682
    functionName: conn_send_proxy
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sc_opposite
    - sc_strm
    - sc_conn
    - conn_ctrl_ready
    - strm_sess
    - __sc_strm
    - conn_report_term_evt
    - conn_get_first_sc
    - make_proxy_line
    - conn_ctrl_send
    - objt_server
    - conn_get_dst
    - conn_get_src
    linkageType: ''
    returnType: int
    signature: int conn_send_proxy(struct connection *conn, unsigned int flag)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:1708,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1711,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/connection.c:1713,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:1717,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/connection.c:1722,1
    - Dst: ntohl
      Src: /src/haproxy/src/connection.c:1749,1
    - Dst: read_u32
      Src: /src/haproxy/src/connection.c:1749,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/connection.c:1749,1
    - Dst: ntohl
      Src: /src/haproxy/src/connection.c:1754,1
    - Dst: read_u32
      Src: /src/haproxy/src/connection.c:1754,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:1759,1
    - Dst: read_u32
      Src: /src/haproxy/src/connection.c:1759,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1795,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1795,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1826,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1826,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:1852,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1879,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1886,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 139
    argCount: 2
    argNames:
    - conn
    - flag
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1700
    functionDepth: 2
    functionLinenumber: 1700
    functionLinenumberEnd: 1889
    functionName: conn_recv_netscaler_cip
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sockaddr_alloc
    - BUG_ON
    - conn_ctrl_ready
    - fd_recv_ready
    - recv
    - __objt_listener
    - conn_report_term_evt
    - read_u32
    - ntohs
    - fd_cant_recv
    - ntohl
    linkageType: ''
    returnType: int
    signature: int conn_recv_netscaler_cip(struct connection *conn, int flag)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:1896,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/connection.c:1899,1
    - Dst: get_net_port
      Src: /src/haproxy/src/connection.c:1904,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/connection.c:1905,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1906,1
    - Dst: conn_ctrl_send
      Src: /src/haproxy/src/connection.c:1921,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:1927,1
    - Dst: conn_fd
      Src: /src/haproxy/src/connection.c:1928,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1960,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1892
    functionDepth: 2
    functionLinenumber: 1892
    functionLinenumberEnd: 1969
    functionName: conn_send_socks4_proxy_request
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - memcpy
    - conn_ctrl_ready
    - DPRINTF
    - get_net_port
    - conn_fd
    - conn_report_term_evt
    - is_inet_addr
    - conn_ctrl_send
    - conn_get_dst
    linkageType: ''
    returnType: int
    signature: int conn_send_socks4_proxy_request(struct connection *conn)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:1976,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1979,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/connection.c:1981,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:1988,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:1992,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:2002,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:2005,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:2008,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/connection.c:2016,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:2051,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:2061,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:2081,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:2090,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 89
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 2093
    functionName: conn_recv_socks4_proxy_response
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - conn_ctrl_ready
    - fd_recv_ready
    - DPRINTF
    - recv
    - conn_report_term_evt
    - fd_cant_recv
    linkageType: ''
    returnType: int
    signature: int conn_recv_socks4_proxy_response(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/connection.c:2098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct mux_proto_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2099
    functionName: register_mux_proto
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void register_mux_proto(struct mux_proto_list *list)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:2112,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/connection.c:2114,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:2137,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:2146,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:2149,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:2152,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:2155,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:2157,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2105
    functionDepth: 0
    functionLinenumber: 2105
    functionLinenumberEnd: 2159
    functionName: list_mux_proto
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - fprintf
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void list_mux_proto(FILE *out)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/connection.c:2172,1
    - Dst: MAX
      Src: /src/haproxy/src/connection.c:2173,1
    - Dst: snprintf
      Src: /src/haproxy/src/connection.c:2182,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/connection.c:2192,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/connection.c:2195,1
    - Dst: v4tov6
      Src: /src/haproxy/src/connection.c:2207,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/connection.c:2215,1
    - Dst: v4tov6
      Src: /src/haproxy/src/connection.c:2220,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/connection.c:2228,1
    - Dst: snprintf
      Src: /src/haproxy/src/connection.c:2232,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:2232,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:2232,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 4
    argNames:
    - buf
    - buf_len
    - src
    - dst
    argTypes:
    - char*
    - int
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2168
    functionDepth: 1
    functionLinenumber: 2168
    functionLinenumberEnd: 2237
    functionName: make_proxy_line_v1
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - v4tov6
    - MAX
    - inet_ntop
    - ntohs
    - snprintf
    linkageType: ''
    returnType: int
    signature: int make_proxy_line_v1(char *buf, int buf_len, const struct sockaddr_storage
      *src, const struct sockaddr_storage *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:2251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - dest
    - dest_len
    - type
    - length
    - value
    argTypes:
    - char*
    - int
    - char
    - uint16_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2253
    functionName: make_tlv
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int make_tlv(char *dest, int dest_len, char type, uint16_t length,
      const char *value)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:2271,1
    - Dst: sc_src
      Src: /src/haproxy/src/connection.c:2274,1
    - Dst: sc_dst
      Src: /src/haproxy/src/connection.c:2275,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/connection.c:2277,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/connection.c:2277,1
    - Dst: conn_src
      Src: /src/haproxy/src/connection.c:2278,1
    - Dst: conn_dst
      Src: /src/haproxy/src/connection.c:2279,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/connection.c:2285,1
    - Dst: v4tov6
      Src: /src/haproxy/src/connection.c:2315,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:2316,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:2320,1
    - Dst: v4tov6
      Src: /src/haproxy/src/connection.c:2324,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:2325,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:2329,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/connection.c:2340,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/connection.c:2346,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/connection.c:2347,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:2348,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/connection.c:2351,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:2353,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/connection.c:2354,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2357,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/connection.c:2358,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2362,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2374,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:2377,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2380,1
    - Dst: conn_get_tlv
      Src: /src/haproxy/src/connection.c:2384,1
    - Dst: if
      Src: /src/haproxy/src/connection.c:2393,1
    - Dst: ssl_sock_get_sni
      Src: /src/haproxy/src/connection.c:2393,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:2394,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2400,1
    - Dst: strm_sess
      Src: /src/haproxy/src/connection.c:2405,1
    - Dst: stream_generate_unique_id
      Src: /src/haproxy/src/connection.c:2406,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2414,1
    - Dst: memset
      Src: /src/haproxy/src/connection.c:2426,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/connection.c:2429,1
    - Dst: ssl_sock_get_proto_version
      Src: /src/haproxy/src/connection.c:2431,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2433,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:2433,1
    - Dst: ssl_sock_get_cert_used_sess
      Src: /src/haproxy/src/connection.c:2435,1
    - Dst: htonl
      Src: /src/haproxy/src/connection.c:2437,1
    - Dst: ssl_sock_get_verify_result
      Src: /src/haproxy/src/connection.c:2437,1
    - Dst: ssl_sock_get_cert_used_conn
      Src: /src/haproxy/src/connection.c:2438,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/connection.c:2442,1
    - Dst: ssl_sock_get_remote_common_name
      Src: /src/haproxy/src/connection.c:2443,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2444,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/connection.c:2450,1
    - Dst: ssl_sock_get_pkey_algo
      Src: /src/haproxy/src/connection.c:2451,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2452,1
    - Dst: ssl_sock_get_cert_sig
      Src: /src/haproxy/src/connection.c:2458,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2460,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:2460,1
    - Dst: ssl_sock_get_cipher_name
      Src: /src/haproxy/src/connection.c:2464,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2466,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:2466,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2480,1
    - Dst: htons
      Src: /src/haproxy/src/connection.c:2484,1
    - Dst: write_u32
      Src: /src/haproxy/src/connection.c:2487,1
    - Dst: htonl
      Src: /src/haproxy/src/connection.c:2487,1
    - Dst: hash_crc32c
      Src: /src/haproxy/src/connection.c:2487,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 160
    argCount: 6
    argNames:
    - buf
    - buf_len
    - srv
    - remote
    - strm
    - sess
    argTypes:
    - char*
    - int
    - struct server*
    - struct connection*
    - struct stream*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2256
    functionDepth: 1
    functionLinenumber: 2256
    functionLinenumberEnd: 2491
    functionName: make_proxy_line_v2
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - unlikely
    - alloc_trash_chunk
    - stream_generate_unique_id
    - sess_build_logline
    - get_trash_chunk
    - lf_expr_isempty
    - sc_src
    - conn_dst
    - hash_crc32c
    - v4tov6
    - ssl_sock_get_cipher_name
    - conn_get_tlv
    - strm_sess
    - ssl_sock_get_pkey_algo
    - ssl_sock_get_verify_result
    - htonl
    - make_tlv
    - ssl_sock_get_cert_used_conn
    - memcpy
    - free_trash_chunk
    - conn_is_ssl
    - ssl_sock_get_proto_version
    - conn_get_dst
    - conn_get_src
    - ssl_sock_get_remote_common_name
    - if
    - htons
    - ssl_sock_get_sni
    - memset
    - list_for_each_entry
    - conn_src
    - ssl_sock_get_cert_used_sess
    - write_u32
    - conn_get_alpn
    - sc_dst
    - ssl_sock_get_cert_sig
    - strlen
    linkageType: ''
    returnType: int
    signature: int make_proxy_line_v2(char *buf, int buf_len, struct server *srv,
      struct connection *remote, struct stream *strm, struct session *sess)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: make_proxy_line_v2
      Src: /src/haproxy/src/connection.c:2499,1
    - Dst: sc_src
      Src: /src/haproxy/src/connection.c:2506,1
    - Dst: sc_dst
      Src: /src/haproxy/src/connection.c:2507,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/connection.c:2509,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/connection.c:2509,1
    - Dst: conn_src
      Src: /src/haproxy/src/connection.c:2510,1
    - Dst: conn_dst
      Src: /src/haproxy/src/connection.c:2511,1
    - Dst: make_proxy_line_v1
      Src: /src/haproxy/src/connection.c:2515,1
    - Dst: make_proxy_line_v1
      Src: /src/haproxy/src/connection.c:2517,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 6
    argNames:
    - buf
    - buf_len
    - srv
    - remote
    - strm
    - sess
    argTypes:
    - char*
    - int
    - struct server*
    - struct connection*
    - struct stream*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2494
    functionDepth: 2
    functionLinenumber: 2494
    functionLinenumberEnd: 2521
    functionName: make_proxy_line
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 1
    functionsReached:
    - sc_dst
    - make_proxy_line_v1
    - conn_src
    - sc_src
    - conn_dst
    - conn_get_dst
    - conn_get_src
    - make_proxy_line_v2
    linkageType: ''
    returnType: int
    signature: int make_proxy_line(char *buf, int buf_len, struct server *srv, struct
      connection *remote, struct stream *strm, struct session *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/connection.c:2528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2524
    functionDepth: 1
    functionLinenumber: 2524
    functionLinenumberEnd: 2532
    functionName: cfg_parse_pp2_never_send_local
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_pp2_never_send_local(char **args, int section_type,
      struct proxy *curpx,\n                                          const struct
      proxy *defpx, const char *file, int line,\n                                          char
      **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2553,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/connection.c:2553,1
    - Dst: objt_listener
      Src: /src/haproxy/src/connection.c:2555,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2556,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:2557,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2558,1
    - Dst: objt_proxy
      Src: /src/haproxy/src/connection.c:2559,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2560,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2562,1
    - Dst: conn_get_xprt_name
      Src: /src/haproxy/src/connection.c:2562,1
    - Dst: conn_get_ctrl_name
      Src: /src/haproxy/src/connection.c:2562,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/connection.c:2564,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2565,1
    - Dst: get_host_port
      Src: /src/haproxy/src/connection.c:2565,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/connection.c:2567,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2568,1
    - Dst: get_host_port
      Src: /src/haproxy/src/connection.c:2568,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - conn
    - pfx
    argTypes:
    - struct buffer*
    - struct connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2542
    functionDepth: 1
    functionLinenumber: 2542
    functionLinenumberEnd: 2571
    functionName: conn_append_debug_info
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - chunk_appendf
    - get_host_port
    - addr_to_str
    - conn_get_xprt_name
    - conn_get_ctrl_name
    - objt_server
    - objt_listener
    - objt_proxy
    linkageType: ''
    returnType: int
    signature: int conn_append_debug_info(struct buffer *buf, const struct connection
      *conn, const char *pfx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:2580,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2581,1
    - Dst: __objt_check
      Src: /src/haproxy/src/connection.c:2581,1
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2583,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2584,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/connection.c:2596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2574
    functionDepth: 1
    functionLinenumber: 2574
    functionLinenumberEnd: 2605
    functionName: smp_fetch_fc_glitches
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - struct connection*::mux::ctl
    - objt_conn
    - __objt_check
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_glitches(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:2618,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2619,1
    - Dst: __objt_check
      Src: /src/haproxy/src/connection.c:2619,1
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2621,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2622,1
    - Dst: conn_get_mux_name
      Src: /src/haproxy/src/connection.c:2634,1
    - Dst: strcmp
      Src: /src/haproxy/src/connection.c:2637,1
    - Dst: strcmp
      Src: /src/haproxy/src/connection.c:2639,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2612
    functionDepth: 1
    functionLinenumber: 2612
    functionLinenumberEnd: 2645
    functionName: smp_fetch_fc_http_major
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - conn_get_mux_name
    - strcmp
    - objt_conn
    - __objt_check
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_http_major(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2648
    functionDepth: 1
    functionLinenumber: 2648
    functionLinenumberEnd: 2666
    functionName: smp_fetch_fc_rcvd_proxy
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - objt_conn
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_rcvd_proxy(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:2678,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2680,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2680,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2682,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2682,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2684,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2684,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2686,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2686,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2688,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2688,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2690,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2690,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2692,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2692,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2694,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2694,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2696,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2696,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2698,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2698,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2700,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2700,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2702,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2702,1
    - Dst: strtoul
      Src: /src/haproxy/src/connection.c:2705,1
    - Dst: memprintf
      Src: /src/haproxy/src/connection.c:2707,1
    - Dst: memprintf
      Src: /src/haproxy/src/connection.c:2713,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/connection.c:2717,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2674
    functionDepth: 1
    functionLinenumber: 2674
    functionLinenumberEnd: 2722
    functionName: smp_check_tlv_type
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - isteqi
    - ist2
    - ist
    - memprintf
    - strtoul
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: int smp_check_tlv_type(struct arg *args, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2731,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/connection.c:2744,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/connection.c:2745,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2725
    functionDepth: 1
    functionLinenumber: 2725
    functionLinenumberEnd: 2760
    functionName: smp_fetch_fc_pp_tlv
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - list_for_each_entry_from
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_pp_tlv(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_tlv_arg
      Src: /src/haproxy/src/connection.c:2768,1
    - Dst: smp_fetch_fc_pp_tlv
      Src: /src/haproxy/src/connection.c:2769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2763
    functionDepth: 2
    functionLinenumber: 2763
    functionLinenumberEnd: 2772
    functionName: smp_fetch_fc_pp_authority
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - set_tlv_arg
    - smp_fetch_fc_pp_tlv
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_pp_authority(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_tlv_arg
      Src: /src/haproxy/src/connection.c:2780,1
    - Dst: smp_fetch_fc_pp_tlv
      Src: /src/haproxy/src/connection.c:2781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2775
    functionDepth: 2
    functionLinenumber: 2775
    functionLinenumberEnd: 2784
    functionName: smp_fetch_fc_pp_unique_id
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - set_tlv_arg
    - smp_fetch_fc_pp_tlv
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_pp_unique_id(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:2791,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2792,1
    - Dst: __objt_check
      Src: /src/haproxy/src/connection.c:2792,1
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2794,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2795,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2810
      start: 2787
    functionDepth: 1
    functionLinenumber: 2787
    functionLinenumberEnd: 2810
    functionName: smp_fetch_fc_err
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - sc_conn
    - __objt_check
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_err(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:2818,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2819,1
    - Dst: __objt_check
      Src: /src/haproxy/src/connection.c:2819,1
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2821,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2822,1
    - Dst: conn_err_code_str
      Src: /src/haproxy/src/connection.c:2833,1
    - Dst: conn_err_code_name
      Src: /src/haproxy/src/connection.c:2833,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:2841,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2813
    functionDepth: 1
    functionLinenumber: 2813
    functionLinenumberEnd: 2844
    functionName: smp_fetch_fc_err_str
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - objt_conn
    - conn_err_code_str
    - __objt_check
    - obj_type
    - conn_err_code_name
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_err_str(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2853,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2853,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/connection.c:2864,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2848
    functionDepth: 1
    functionLinenumber: 2848
    functionLinenumberEnd: 2871
    functionName: smp_fetch_fc_nb_streams
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - sc_conn
    - struct connection*::mux::ctl
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_nb_streams(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2879,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2879,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/connection.c:2890,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2874
    functionDepth: 1
    functionLinenumber: 2874
    functionLinenumberEnd: 2897
    functionName: smp_fetch_fc_streams_limit
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - sc_conn
    - struct connection*::mux::ctl
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_streams_limit(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64
      Src: /src/haproxy/src/connection.c:2940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2938
    functionDepth: 0
    functionLinenumber: 2938
    functionLinenumberEnd: 2941
    functionName: conn_hash_prehash
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - XXH64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t conn_hash_prehash(const char *buf, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_update
      Src: /src/haproxy/src/connection.c:2951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hash
    - data
    - size
    - flags
    - type
    argTypes:
    - XXH64_state_t*
    - void*
    - size_t
    - enum conn_hash_params_t*
    - enum conn_hash_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2946
    functionDepth: 0
    functionLinenumber: 2946
    functionLinenumberEnd: 2953
    functionName: conn_hash_update
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - XXH64_update
    linkageType: ''
    returnType: void
    signature: "void conn_hash_update(XXH64_state_t *hash,\n                             const
      void *data, size_t size,\n                             enum conn_hash_params_t
      *flags,\n                             enum conn_hash_params_t type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_digest
      Src: /src/haproxy/src/connection.c:2959,1
    - Dst: CONN_HASH_GET_PAYLOAD
      Src: /src/haproxy/src/connection.c:2961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - flags
    argTypes:
    - XXH64_state_t*
    - enum conn_hash_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2955
    functionDepth: 1
    functionLinenumber: 2955
    functionLinenumberEnd: 2962
    functionName: conn_hash_digest
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - CONN_HASH_GET_PAYLOAD
    - XXH64_digest
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t conn_hash_digest(XXH64_state_t *hash,\n                                 enum
      conn_hash_params_t flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2978,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2983,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2993,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2998,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:3006,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:3008,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:3013,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:3022,1
    - Dst: strnlen2
      Src: /src/haproxy/src/connection.c:3024,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:3031,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:3046,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 5
    argNames:
    - ss
    - hash
    - hash_flags
    - param_type_addr
    - param_type_port
    argTypes:
    - struct sockaddr_storage*
    - XXH64_state_t*
    - enum conn_hash_params_t*
    - enum conn_hash_params_t
    - enum conn_hash_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 2965
    functionDepth: 1
    functionLinenumber: 2965
    functionLinenumberEnd: 3049
    functionName: conn_calculate_hash_sockaddr
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_hash_update
    - strnlen2
    - strlen
    linkageType: ''
    returnType: void
    signature: "void conn_calculate_hash_sockaddr(const struct sockaddr_storage *ss,\n
      \                                        XXH64_state_t *hash,\n                                         enum
      conn_hash_params_t *hash_flags,\n                                         enum
      conn_hash_params_t param_type_addr,\n                                         enum
      conn_hash_params_t param_type_port)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_reset
      Src: /src/haproxy/src/connection.c:3056,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:3058,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:3061,1
    - Dst: conn_calculate_hash_sockaddr
      Src: /src/haproxy/src/connection.c:3067,1
    - Dst: conn_calculate_hash_sockaddr
      Src: /src/haproxy/src/connection.c:3074,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:3081,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:3087,1
    - Dst: conn_hash_digest
      Src: /src/haproxy/src/connection.c:3092,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - params
    argTypes:
    - struct conn_hash_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3051
    functionDepth: 2
    functionLinenumber: 3051
    functionLinenumberEnd: 3093
    functionName: conn_calculate_hash
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_hash_update
    - XXH64_reset
    - conn_calculate_hash_sockaddr
    - conn_hash_digest
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t conn_calculate_hash(const struct conn_hash_params *params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/src/connection.c:3115,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:3117,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:3118,1
    - Dst: conn_frontend_deinit
      Src: /src/haproxy/src/connection.c:3120,1
    - Dst: conn_backend_init
      Src: /src/haproxy/src/connection.c:3122,1
    - Dst: memset
      Src: /src/haproxy/src/connection.c:3126,1
    - Dst: b_data
      Src: /src/haproxy/src/connection.c:3129,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:3131,1
    - Dst: b_data
      Src: /src/haproxy/src/connection.c:3131,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/connection.c:3131,1
    - Dst: conn_hash_prehash
      Src: /src/haproxy/src/connection.c:3134,1
    - Dst: b_head
      Src: /src/haproxy/src/connection.c:3134,1
    - Dst: b_data
      Src: /src/haproxy/src/connection.c:3135,1
    - Dst: conn_calculate_hash
      Src: /src/haproxy/src/connection.c:3138,1
    - Dst: srv_use_conn
      Src: /src/haproxy/src/connection.c:3142,1
    - Dst: session_free
      Src: /src/haproxy/src/connection.c:3146,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/connection.c:3147,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/connection.c:3153,1
    - Dst: conn_backend_deinit
      Src: /src/haproxy/src/connection.c:3155,1
    - Dst: conn_frontend_init
      Src: /src/haproxy/src/connection.c:3157,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/connection.c:3160,1
    - Dst: SWAP
      Src: /src/haproxy/src/connection.c:3167,1
    - Dst: ha_free
      Src: /src/haproxy/src/connection.c:3170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3109
    functionDepth: 3
    functionLinenumber: 3109
    functionLinenumberEnd: 3174
    functionName: conn_reverse
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - b_contig_data
    - conn_backend_init
    - conn_calculate_hash
    - conn_backend_deinit
    - objt_server
    - conn_hash_prehash
    - conn_frontend_init
    - ha_free
    - SWAP
    - conn_set_owner
    - b_head
    - session_free
    - __objt_listener
    - b_data
    - srv_use_conn
    - conn_frontend_deinit
    - memset
    - BUG_ON
    - task_wakeup
    linkageType: ''
    returnType: int
    signature: int conn_reverse(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/connection.c:3183,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/connection.c:3185,1
    - Dst: wake
      Src: /src/haproxy/src/connection.c:3185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3189
      start: 3179
    functionDepth: 1
    functionLinenumber: 3179
    functionLinenumberEnd: 3189
    functionName: mux_stopping_process
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - wake
    - CALL_MUX_NO_RET
    linkageType: ''
    returnType: struct task
    signature: struct task *mux_stopping_process(struct task *t, void *ctx, unsigned
      int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_new_here
      Src: /src/haproxy/src/connection.c:3194,1
    - Dst: ha_alert
      Src: /src/haproxy/src/connection.c:3196,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/connection.c:3201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3204
      start: 3191
    functionDepth: 1
    functionLinenumber: 3191
    functionLinenumberEnd: 3204
    functionName: allocate_mux_cleanup
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - ha_alert
    - task_new_here
    linkageType: ''
    returnType: int
    signature: int allocate_mux_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_destroy
      Src: /src/haproxy/src/connection.c:3209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3211
      start: 3207
    functionDepth: 1
    functionLinenumber: 3207
    functionLinenumberEnd: 3211
    functionName: deallocate_mux_cleanup
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - task_destroy
    linkageType: ''
    returnType: int
    signature: int deallocate_mux_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_destroy
      Src: /src/haproxy/src/connection.c:3219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3221
      start: 3214
    functionDepth: 1
    functionLinenumber: 3214
    functionLinenumberEnd: 3221
    functionName: deinit_idle_conns
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - task_destroy
    linkageType: ''
    returnType: void
    signature: void deinit_idle_conns(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haterm.c:144,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haterm.c:146,1
    - Dst: b_data
      Src: /src/haproxy/src/haterm.c:147,1
    - Dst: b_data
      Src: /src/haproxy/src/haterm.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: hterm_trace
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - b_data
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void hterm_trace(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n                        const struct ist where, const struct
      ist func,\n                        const void *a1, const void *a2, const void
      *a3, const void *a4)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/haterm.c:157,1
    - Dst: b_alloc
      Src: /src/haproxy/src/haterm.c:159,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:161,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/haterm.c:162,1
    - Dst: b_alloc
      Src: /src/haproxy/src/haterm.c:166,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:168,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/haterm.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - target
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: hstream_buf_available
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - b_alloc
    - TRACE_STATE
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int hstream_buf_available(void *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/haterm.c:181,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/haterm.c:181,1
    - Dst: unlikely
      Src: /src/haproxy/src/haterm.c:182,1
    - Dst: b_alloc
      Src: /src/haproxy/src/haterm.c:182,1
    - Dst: b_queue
      Src: /src/haproxy/src/haterm.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - hs
    - bptr
    argTypes:
    - struct hstream*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: hstream_get_buf
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_alloc
    - b_queue
    - likely
    - LIST_INLIST
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *hstream_get_buf(struct hstream *hs, struct buffer *bptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_free
      Src: /src/haproxy/src/haterm.c:195,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/haterm.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hs
    - bptr
    argTypes:
    - struct hstream*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: hstream_release_buf
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - offer_buffers
    - b_free
    linkageType: ''
    returnType: void
    signature: void hstream_release_buf(struct hstream *hs, struct buffer *bptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_destroy
      Src: /src/haproxy/src/haterm.c:203,1
    - Dst: hstream_release_buf
      Src: /src/haproxy/src/haterm.c:204,1
    - Dst: hstream_release_buf
      Src: /src/haproxy/src/haterm.c:205,1
    - Dst: pool_free
      Src: /src/haproxy/src/haterm.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct hstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: hstream_free
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - hstream_release_buf
    - sc_destroy
    - pool_free
    linkageType: ''
    returnType: void
    signature: void hstream_free(struct hstream *hs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __sc_hstream
      Src: /src/haproxy/src/haterm.c:213,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/haterm.c:215,1
    - Dst: sc_conn
      Src: /src/haproxy/src/haterm.c:217,1
    - Dst: unlikely
      Src: /src/haproxy/src/haterm.c:218,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/haterm.c:218,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:219,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/haterm.c:221,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/haterm.c:225,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:225,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/haterm.c:225,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:225,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:226,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/haterm.c:227,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/haterm.c:229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: sc_hstream_io_cb
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_conn
    - htxbuf
    - sc_ep_test
    - TRACE_ERROR
    - TRACE_STATE
    - TRACE_LEAVE
    - task_wakeup
    - TRACE_ENTER
    - __sc_hstream
    - htx_is_empty
    linkageType: ''
    returnType: struct task
    signature: struct task *sc_hstream_io_cb(struct task *t, void *ctx, unsigned int
      state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/haterm.c:240,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:243,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/haterm.c:247,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:248,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:253,1
    - Dst: hstream_get_buf
      Src: /src/haproxy/src/haterm.c:257,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:259,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/haterm.c:264,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/haterm.c:265,1
    - Dst: htx_reset
      Src: /src/haproxy/src/haterm.c:266,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:266,1
    - Dst: htx_free_space
      Src: /src/haproxy/src/haterm.c:267,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:267,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/haterm.c:268,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/haterm.c:269,1
    - Dst: rcv_buf
      Src: /src/haproxy/src/haterm.c:269,1
    - Dst: htx_expect_more
      Src: /src/haproxy/src/haterm.c:271,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:271,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/haterm.c:283,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/haterm.c:285,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:287,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/haterm.c:290,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:291,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/haterm.c:292,1
    - Dst: hstream_release_buf
      Src: /src/haproxy/src/haterm.c:298,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/haterm.c:299,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/haterm.c:302,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 2
    argNames:
    - conn
    - hs
    argTypes:
    - struct connection*
    - struct hstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 310
    functionName: hstream_htx_buf_rcv
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - rcv_buf
    - htx_expect_more
    - struct connection*::mux::subscribe
    - htxbuf
    - TRACE_STATE
    - sc_ep_test
    - sc_ep_report_read_activity
    - TRACE_ERROR
    - hstream_release_buf
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - CALL_MUX_WITH_RET
    - hstream_get_buf
    - TRACE_PRINTF
    - htx_free_space
    - htx_reset
    - sc_ep_clr
    linkageType: ''
    returnType: int
    signature: int hstream_htx_buf_rcv(struct connection *conn, struct hstream *hs)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: se_have_ff_data
      Src: /src/haproxy/src/haterm.c:320,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/haterm.c:321,1
    - Dst: resume_fastfwd
      Src: /src/haproxy/src/haterm.c:321,1
    - Dst: se_nego_ff
      Src: /src/haproxy/src/haterm.c:334,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:336,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:340,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/haterm.c:346,1
    - Dst: tee
      Src: /src/haproxy/src/haterm.c:349,1
    - Dst: hstream_add_ff_data
      Src: /src/haproxy/src/haterm.c:361,1
    - Dst: se_done_ff
      Src: /src/haproxy/src/haterm.c:368,1
    - Dst: se_have_ff_data
      Src: /src/haproxy/src/haterm.c:373,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:374,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/haterm.c:375,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:378,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/haterm.c:379,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 2
    argNames:
    - conn
    - hs
    argTypes:
    - struct connection*
    - struct hstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 386
    functionName: hstream_ff_snd
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - struct connection*::mux::subscribe
    - se_have_ff_data
    - TRACE_STATE
    - BUG_ON
    - hstream_add_ff_data
    - task_wakeup
    - TRACE_DEVEL
    - se_done_ff
    - CALL_MUX_WITH_RET
    - se_nego_ff
    - tee
    - resume_fastfwd
    linkageType: ''
    returnType: int
    signature: int hstream_ff_snd(struct connection *conn, struct hstream *hs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/haterm.c:395,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:397,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/haterm.c:405,1
    - Dst: snd_buf
      Src: /src/haproxy/src/haterm.c:405,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:405,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/haterm.c:408,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:409,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/haterm.c:418,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:418,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:419,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/haterm.c:420,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:423,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/haterm.c:424,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/haterm.c:429,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:429,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:430,1
    - Dst: hstream_release_buf
      Src: /src/haproxy/src/haterm.c:431,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/haterm.c:434,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - conn
    - hs
    argTypes:
    - struct connection*
    - struct hstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 436
    functionName: hstream_htx_buf_snd
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - struct connection*::mux::subscribe
    - htxbuf
    - sc_ep_test
    - TRACE_STATE
    - TRACE_LEAVE
    - task_wakeup
    - hstream_release_buf
    - snd_buf
    - TRACE_ENTER
    - TRACE_DEVEL
    - CALL_MUX_WITH_RET
    - htx_is_empty
    linkageType: ''
    returnType: int
    signature: int hstream_htx_buf_snd(struct connection *conn, struct hstream *hs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/haterm.c:449,1
    - Dst: hstream_get_buf
      Src: /src/haproxy/src/haterm.c:451,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:453,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/haterm.c:458,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/haterm.c:459,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:459,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:460,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/haterm.c:464,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:464,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:464,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/haterm.c:465,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:465,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:465,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/haterm.c:466,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:466,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:466,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:467,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/haterm.c:471,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:472,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/haterm.c:476,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:476,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:477,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/haterm.c:483,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/haterm.c:487,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:491,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct hstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 493
    functionName: hstream_build_http_help_resp
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - ist
    - htx_to_buf
    - TRACE_LEAVE
    - TRACE_ERROR
    - TRACE_DEVEL
    - TRACE_ENTER
    - htx_add_header
    - htx_add_data_atonce
    - hstream_get_buf
    - htx_add_stline
    - htx_add_endof
    - htx_from_buf
    linkageType: ''
    returnType: int
    signature: int hstream_build_http_help_resp(struct hstream *hs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/haterm.c:506,1
    - Dst: hstream_get_buf
      Src: /src/haproxy/src/haterm.c:508,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:510,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/haterm.c:515,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/haterm.c:516,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:516,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:517,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:517,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:519,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/haterm.c:523,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:524,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/haterm.c:528,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/haterm.c:532,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:535,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct hstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 537
    functionName: hstream_build_http_100_continue_resp
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - ist
    - htx_to_buf
    - TRACE_STATE
    - TRACE_ERROR
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - hstream_get_buf
    - htx_add_stline
    - htx_add_endof
    - htx_from_buf
    linkageType: ''
    returnType: int
    signature: int hstream_build_http_100_continue_resp(struct hstream *hs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/haterm.c:548,1
    - Dst: b_add
      Src: /src/haproxy/src/haterm.c:549,1
    - Dst: b_putist
      Src: /src/haproxy/src/haterm.c:567,1
    - Dst: ist2
      Src: /src/haproxy/src/haterm.c:567,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:569,1
    - Dst: b_sub
      Src: /src/haproxy/src/haterm.c:571,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/haterm.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - hs
    - sd
    - len
    argTypes:
    - struct hstream*
    - struct sedesc*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 575
    functionName: hstream_add_ff_data
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 1
    functionsReached:
    - ist2
    - TRACE_STATE
    - TRACE_LEAVE
    - b_sub
    - TRACE_ENTER
    - b_add
    - b_putist
    linkageType: ''
    returnType: size_t
    signature: size_t hstream_add_ff_data(struct hstream *hs, struct sedesc *sd, unsigned
      long long len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/haterm.c:587,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/haterm.c:610,1
    - Dst: ist2
      Src: /src/haproxy/src/haterm.c:610,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:612,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/haterm.c:613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - hs
    - htx
    - len
    argTypes:
    - struct hstream*
    - struct htx*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 615
    functionName: hstream_add_htx_data
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - ist2
    - TRACE_LEAVE
    - TRACE_STATE
    - TRACE_ENTER
    - htx_add_data
    linkageType: ''
    returnType: size_t
    signature: size_t hstream_add_htx_data(struct hstream *hs, struct htx *htx, unsigned
      long long len)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/haterm.c:629,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/haterm.c:631,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/haterm.c:632,1
    - Dst: hstream_get_buf
      Src: /src/haproxy/src/haterm.c:635,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:637,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/haterm.c:641,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/haterm.c:642,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:643,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:643,1
    - Dst: ist2
      Src: /src/haproxy/src/haterm.c:644,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:646,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/haterm.c:652,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:652,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:652,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:653,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/haterm.c:659,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:659,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:659,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:660,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/haterm.c:666,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/haterm.c:667,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:667,1
    - Dst: ist2
      Src: /src/haproxy/src/haterm.c:667,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:668,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/haterm.c:673,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:673,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:673,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:674,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/haterm.c:679,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/haterm.c:680,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/haterm.c:681,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:681,1
    - Dst: ist2
      Src: /src/haproxy/src/haterm.c:681,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:682,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/haterm.c:687,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/haterm.c:688,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:689,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/haterm.c:692,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/haterm.c:696,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:697,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/haterm.c:700,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:701,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/haterm.c:704,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:705,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/haterm.c:708,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/haterm.c:713,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/haterm.c:714,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:714,1
    - Dst: ist2
      Src: /src/haproxy/src/haterm.c:714,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:715,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/haterm.c:719,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:720,1
    - Dst: hstream_add_htx_data
      Src: /src/haproxy/src/haterm.c:725,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/haterm.c:730,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/haterm.c:735,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:738,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 111
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct hstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 740
    functionName: hstream_build_http_resp
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - ist
    - ist2
    - htx_to_buf
    - TRACE_LEAVE
    - TRACE_ERROR
    - chunk_strcat
    - TRACE_DEVEL
    - TRACE_ENTER
    - htx_add_header
    - hstream_get_buf
    - ultoa_o
    - chunk_reset
    - htx_add_stline
    - htx_add_endof
    - hstream_add_htx_data
    - htx_from_buf
    linkageType: ''
    returnType: int
    signature: int hstream_build_http_resp(struct hstream *hs)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: istptr
      Src: /src/haproxy/src/haterm.c:749,1
    - Dst: istlen
      Src: /src/haproxy/src/haterm.c:750,1
    - Dst: strtol
      Src: /src/haproxy/src/haterm.c:773,1
    - Dst: statistical_prng
      Src: /src/haproxy/src/haterm.c:791,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/haterm.c:802,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 81
    argCount: 2
    argNames:
    - uri
    - hs
    argTypes:
    - struct ist
    - struct hstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 852
    functionName: hstream_parse_uri
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - MS_TO_TICKS
    - strtol
    - statistical_prng
    - istptr
    - istlen
    linkageType: ''
    returnType: void
    signature: void hstream_parse_uri(struct ist uri, struct hstream *hs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hstream_build_http_help_resp
      Src: /src/haproxy/src/haterm.c:866,1
    - Dst: hstream_build_http_resp
      Src: /src/haproxy/src/haterm.c:870,1
    - Dst: hstream_htx_buf_snd
      Src: /src/haproxy/src/haterm.c:874,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - hs
    - conn
    argTypes:
    - struct hstream*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 857
    functionDepth: 3
    functionLinenumber: 857
    functionLinenumberEnd: 879
    functionName: hstream_sl_hdrs_htx_buf_snd
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - hstream_htx_buf_snd
    - hstream_build_http_resp
    - hstream_build_http_help_resp
    linkageType: ''
    returnType: int
    signature: "int hstream_sl_hdrs_htx_buf_snd(struct hstream *hs,\n                                              struct
      connection *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hstream_get_buf
      Src: /src/haproxy/src/haterm.c:888,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:889,1
    - Dst: b_set_data
      Src: /src/haproxy/src/haterm.c:893,1
    - Dst: b_data
      Src: /src/haproxy/src/haterm.c:893,1
    - Dst: memcpy
      Src: /src/haproxy/src/haterm.c:894,1
    - Dst: b_orig
      Src: /src/haproxy/src/haterm.c:894,1
    - Dst: b_head
      Src: /src/haproxy/src/haterm.c:894,1
    - Dst: b_data
      Src: /src/haproxy/src/haterm.c:894,1
    - Dst: hstream_htx_buf_snd
      Src: /src/haproxy/src/haterm.c:895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - hs
    - conn
    - errmsg
    argTypes:
    - struct hstream*
    - struct connection*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 882
    functionDepth: 3
    functionLinenumber: 882
    functionLinenumberEnd: 896
    functionName: hstream_send_error
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - b_head
    - b_orig
    - memcpy
    - TRACE_ERROR
    - hstream_htx_buf_snd
    - hstream_get_buf
    - b_data
    - b_set_data
    linkageType: ''
    returnType: void
    signature: void hstream_send_error(struct hstream *hs, struct connection *conn,
      struct buffer *errmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/haterm.c:911,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/haterm.c:914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct hstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 917
    functionName: hstream_must_drain
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int hstream_must_drain(struct hstream *hs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/src/haterm.c:922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct hstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 925
    functionName: hstream_is_fastfwd_supported
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - sc_ep_test
    linkageType: ''
    returnType: int
    signature: int hstream_is_fastfwd_supported(struct hstream *hs)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/haterm.c:932,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/haterm.c:935,1
    - Dst: unlikely
      Src: /src/haproxy/src/haterm.c:937,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/haterm.c:938,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:939,1
    - Dst: tick_isset
      Src: /src/haproxy/src/haterm.c:944,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/haterm.c:944,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:945,1
    - Dst: tick_isset
      Src: /src/haproxy/src/haterm.c:949,1
    - Dst: sc_ep_lra
      Src: /src/haproxy/src/haterm.c:949,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/haterm.c:949,1
    - Dst: sc_ep_lra
      Src: /src/haproxy/src/haterm.c:949,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/haterm.c:951,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:952,1
    - Dst: hstream_send_error
      Src: /src/haproxy/src/haterm.c:954,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/haterm.c:960,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/haterm.c:961,1
    - Dst: unlikely
      Src: /src/haproxy/src/haterm.c:965,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/haterm.c:965,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/haterm.c:966,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/haterm.c:973,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/haterm.c:973,1
    - Dst: hstream_parse_uri
      Src: /src/haproxy/src/haterm.c:974,1
    - Dst: http_find_header
      Src: /src/haproxy/src/haterm.c:977,1
    - Dst: ist
      Src: /src/haproxy/src/haterm.c:977,1
    - Dst: hstream_build_http_100_continue_resp
      Src: /src/haproxy/src/haterm.c:979,1
    - Dst: hstream_htx_buf_snd
      Src: /src/haproxy/src/haterm.c:980,1
    - Dst: htx_expect_more
      Src: /src/haproxy/src/haterm.c:983,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:983,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:985,1
    - Dst: hstream_must_drain
      Src: /src/haproxy/src/haterm.c:989,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:993,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/haterm.c:994,1
    - Dst: tick_isset
      Src: /src/haproxy/src/haterm.c:998,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:999,1
    - Dst: tick_add
      Src: /src/haproxy/src/haterm.c:1000,1
    - Dst: task_schedule
      Src: /src/haproxy/src/haterm.c:1001,1
    - Dst: hstream_sl_hdrs_htx_buf_snd
      Src: /src/haproxy/src/haterm.c:1006,1
    - Dst: hstream_must_drain
      Src: /src/haproxy/src/haterm.c:1015,1
    - Dst: hstream_htx_buf_rcv
      Src: /src/haproxy/src/haterm.c:1016,1
    - Dst: hstream_send_error
      Src: /src/haproxy/src/haterm.c:1019,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:1020,1
    - Dst: tick_isset
      Src: /src/haproxy/src/haterm.c:1025,1
    - Dst: tick_isset
      Src: /src/haproxy/src/haterm.c:1025,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:1026,1
    - Dst: tick_add
      Src: /src/haproxy/src/haterm.c:1027,1
    - Dst: task_schedule
      Src: /src/haproxy/src/haterm.c:1028,1
    - Dst: hstream_sl_hdrs_htx_buf_snd
      Src: /src/haproxy/src/haterm.c:1033,1
    - Dst: hstream_is_fastfwd_supported
      Src: /src/haproxy/src/haterm.c:1037,1
    - Dst: se_have_ff_data
      Src: /src/haproxy/src/haterm.c:1037,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/haterm.c:1038,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:1038,1
    - Dst: hstream_ff_snd
      Src: /src/haproxy/src/haterm.c:1040,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/haterm.c:1046,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:1046,1
    - Dst: hstream_get_buf
      Src: /src/haproxy/src/haterm.c:1049,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:1051,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/haterm.c:1055,1
    - Dst: hstream_add_htx_data
      Src: /src/haproxy/src/haterm.c:1057,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/haterm.c:1062,1
    - Dst: hstream_htx_buf_snd
      Src: /src/haproxy/src/haterm.c:1065,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:1073,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/haterm.c:1074,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/haterm.c:1081,1
    - Dst: htxbuf
      Src: /src/haproxy/src/haterm.c:1081,1
    - Dst: se_have_ff_data
      Src: /src/haproxy/src/haterm.c:1081,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:1082,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/haterm.c:1083,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/haterm.c:1085,1
    - Dst: hstream_free
      Src: /src/haproxy/src/haterm.c:1086,1
    - Dst: task_destroy
      Src: /src/haproxy/src/haterm.c:1088,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/haterm.c:1092,1
    - Dst: tick_isset
      Src: /src/haproxy/src/haterm.c:1094,1
    - Dst: sc_ep_lra
      Src: /src/haproxy/src/haterm.c:1094,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/haterm.c:1094,1
    - Dst: sc_ep_lra
      Src: /src/haproxy/src/haterm.c:1094,1
    - Dst: tick_first
      Src: /src/haproxy/src/haterm.c:1096,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/haterm.c:1101,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:1104,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 141
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 928
    functionDepth: 4
    functionLinenumber: 928
    functionLinenumberEnd: 1106
    functionName: process_hstream
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - unlikely
    - hstream_sl_hdrs_htx_buf_snd
    - sc_ep_test
    - http_find_header
    - task_schedule
    - TRACE_ENTER
    - hstream_build_http_100_continue_resp
    - hstream_htx_buf_rcv
    - hstream_free
    - htx_is_empty
    - se_shutdown
    - ist
    - task_destroy
    - hstream_htx_buf_snd
    - TRACE_DEVEL
    - tick_is_expired
    - htx_sl_req_uri
    - hstream_is_fastfwd_supported
    - tick_add
    - htx_from_buf
    - hstream_parse_uri
    - htxbuf
    - se_have_ff_data
    - TRACE_LEAVE
    - TRACE_ERROR
    - hstream_ff_snd
    - http_get_stline
    - sc_ep_lra
    - sc_ep_set
    - tick_first
    - __sc_conn
    - tick_add_ifset
    - htx_expect_more
    - htx_to_buf
    - TRACE_STATE
    - task_wakeup
    - hstream_must_drain
    - hstream_get_buf
    - tick_isset
    - hstream_send_error
    - hstream_add_htx_data
    linkageType: ''
    returnType: struct task
    signature: struct task *process_hstream(struct task *t, void *context, unsigned
      int state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/haterm.c:1117,1
    - Dst: unlikely
      Src: /src/haproxy/src/haterm.c:1119,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/haterm.c:1119,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:1120,1
    - Dst: task_new_here
      Src: /src/haproxy/src/haterm.c:1124,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:1125,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/haterm.c:1138,1
    - Dst: sc_conn
      Src: /src/haproxy/src/haterm.c:1148,1
    - Dst: sc_mux_ops
      Src: /src/haproxy/src/haterm.c:1149,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:1151,1
    - Dst: sc_attach_hstream
      Src: /src/haproxy/src/haterm.c:1157,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/haterm.c:1158,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/haterm.c:1163,1
    - Dst: b_is_null
      Src: /src/haproxy/src/haterm.c:1167,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/haterm.c:1175,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/haterm.c:1177,1
    - Dst: task_destroy
      Src: /src/haproxy/src/haterm.c:1181,1
    - Dst: pool_free
      Src: /src/haproxy/src/haterm.c:1182,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/haterm.c:1183,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 58
    argCount: 3
    argNames:
    - sess
    - sc
    - input
    argTypes:
    - struct session*
    - struct stconn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1185
    functionName: hstream_new
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_conn
    - sc_attach_hstream
    - pool_alloc
    - TRACE_ERROR
    - b_is_null
    - TRACE_LEAVE
    - task_wakeup
    - task_destroy
    - TRACE_DEVEL
    - TRACE_ENTER
    - sc_mux_ops
    - TRACE_PRINTF
    - pool_free
    - LIST_INIT
    - task_new_here
    linkageType: ''
    returnType: void
    signature: void *hstream_new(struct session *sess, struct stconn *sc, struct buffer
      *input)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/haterm.c:1211,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haterm.c:1213,1
    - Dst: ha_random32
      Src: /src/haproxy/src/haterm.c:1218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1221
    functionName: hstream_build_responses
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - malloc
    - ha_alert
    - ha_random32
    linkageType: ''
    returnType: int
    signature: int hstream_build_responses(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_pipe
      Src: /src/haproxy/src/haterm.c:1245,1
    - Dst: fcntl
      Src: /src/haproxy/src/haterm.c:1252,1
    - Dst: vmsplice
      Src: /src/haproxy/src/haterm.c:1256,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haterm.c:1265,1
    - Dst: put_pipe
      Src: /src/haproxy/src/haterm.c:1266,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haterm.c:1271,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haterm.c:1275,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1276
    functionName: hstream_init_splicing
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - fcntl
    - get_pipe
    - vmsplice
    - put_pipe
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void hstream_init_splicing(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: put_pipe
      Src: /src/haproxy/src/haterm.c:1281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1282
    functionName: hstream_deinit
    functionSourceFile: /src/haproxy/src/haterm.c
    functionUses: 0
    functionsReached:
    - put_pipe
    linkageType: ''
    returnType: void
    signature: void hstream_deinit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qpack_get_dte
      Src: /src/haproxy/src/qpack-tbl.c:156,1
    - Dst: fprintf
      Src: /src/haproxy/src/qpack-tbl.c:157,1
    - Dst: istpad
      Src: /src/haproxy/src/qpack-tbl.c:159,1
    - Dst: qpack_idx_to_name
      Src: /src/haproxy/src/qpack-tbl.c:159,1
    - Dst: istpad
      Src: /src/haproxy/src/qpack-tbl.c:160,1
    - Dst: qpack_idx_to_value
      Src: /src/haproxy/src/qpack-tbl.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out
    - dht
    argTypes:
    - FILE*
    - struct qpack_dht*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: qpack_dht_dump
    functionSourceFile: /src/haproxy/src/qpack-tbl.c
    functionUses: 0
    functionsReached:
    - qpack_get_dte
    - qpack_idx_to_name
    - istpad
    - qpack_idx_to_value
    - fprintf
    linkageType: ''
    returnType: void
    signature: void qpack_dht_dump(FILE *out, const struct qpack_dht *dht)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qpack_dht_get_tail
      Src: /src/haproxy/src/qpack-tbl.c:168,1
    - Dst: abort
      Src: /src/haproxy/src/qpack-tbl.c:176,1
    - Dst: abort
      Src: /src/haproxy/src/qpack-tbl.c:179,1
    - Dst: abort
      Src: /src/haproxy/src/qpack-tbl.c:182,1
    - Dst: fprintf
      Src: /src/haproxy/src/qpack-tbl.c:192,1
    - Dst: abort
      Src: /src/haproxy/src/qpack-tbl.c:193,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - dht
    argTypes:
    - struct qpack_dht*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 195
    functionName: qpack_dht_check_consistency
    functionSourceFile: /src/haproxy/src/qpack-tbl.c
    functionUses: 0
    functionsReached:
    - fprintf
    - qpack_dht_get_tail
    - abort
    linkageType: ''
    returnType: void
    signature: void qpack_dht_check_consistency(const struct qpack_dht *dht)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qpack_dht_alloc
      Src: /src/haproxy/src/qpack-tbl.c:211,1
    - Dst: qpack_dht_get_tail
      Src: /src/haproxy/src/qpack-tbl.c:224,1
    - Dst: memcpy
      Src: /src/haproxy/src/qpack-tbl.c:231,1
    - Dst: dht::dht
      Src: /src/haproxy/src/qpack-tbl.c:239,1
    - Dst: memcpy
      Src: /src/haproxy/src/qpack-tbl.c:244,1
    - Dst: qpack_dht_free
      Src: /src/haproxy/src/qpack-tbl.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - dht
    argTypes:
    - struct qpack_dht*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 248
    functionName: qpack_dht_defrag
    functionSourceFile: /src/haproxy/src/qpack-tbl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - qpack_dht_free
    - qpack_dht_get_tail
    - dht::dht
    - qpack_dht_alloc
    linkageType: ''
    returnType: struct qpack_dht
    signature: struct qpack_dht *qpack_dht_defrag(struct qpack_dht *dht)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - dht
    - needed
    argTypes:
    - struct qpack_dht*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 282
    functionName: __qpack_dht_make_room
    functionSourceFile: /src/haproxy/src/qpack-tbl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __qpack_dht_make_room(struct qpack_dht *dht, unsigned int needed)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: qpack_dht_make_room
      Src: /src/haproxy/src/qpack-tbl.c:296,1
    - Dst: qpack_dht_get_tail
      Src: /src/haproxy/src/qpack-tbl.c:317,1
    - Dst: qpack_dht_defrag
      Src: /src/haproxy/src/qpack-tbl.c:336,1
    - Dst: qpack_dht_defrag
      Src: /src/haproxy/src/qpack-tbl.c:349,1
    - Dst: qpack_dht_defrag
      Src: /src/haproxy/src/qpack-tbl.c:396,1
    - Dst: memcpy
      Src: /src/haproxy/src/qpack-tbl.c:415,1
    - Dst: memcpy
      Src: /src/haproxy/src/qpack-tbl.c:416,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 72
    argCount: 3
    argNames:
    - dht
    - name
    - value
    argTypes:
    - struct qpack_dht*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 418
    functionName: qpack_dht_insert
    functionSourceFile: /src/haproxy/src/qpack-tbl.c
    functionUses: 0
    functionsReached:
    - qpack_dht_get_tail
    - qpack_dht_defrag
    - memcpy
    - qpack_dht_make_room
    linkageType: ''
    returnType: int
    signature: int qpack_dht_insert(struct qpack_dht *dht, struct ist name, struct
      ist value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/dgram.c:24,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/dgram.c:27,1
    - Dst: struct dgram_conn*::data::recv
      Src: /src/haproxy/src/dgram.c:28,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/dgram.c:29,1
    - Dst: struct dgram_conn*::data::send
      Src: /src/haproxy/src/dgram.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: dgram_fd_handler
    functionSourceFile: /src/haproxy/src/dgram.c
    functionUses: 0
    functionsReached:
    - unlikely
    - struct dgram_conn*::data::send
    - fd_send_ready
    - fd_recv_ready
    - struct dgram_conn*::data::recv
    linkageType: ''
    returnType: void
    signature: void dgram_fd_handler(int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/dgram.c:44,1
    - Dst: memprintf
      Src: /src/haproxy/src/dgram.c:56,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/dgram.c:60,1
    - Dst: memprintf
      Src: /src/haproxy/src/dgram.c:62,1
    - Dst: memprintf
      Src: /src/haproxy/src/dgram.c:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 73
    functionName: dgram_parse_tune_bufs
    functionSourceFile: /src/haproxy/src/dgram.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - parse_size_err
    linkageType: ''
    returnType: int
    signature: "int dgram_parse_tune_bufs(char **args, int section_type, struct proxy
      *curpx,\n                                 const struct proxy *defpx, const char
      *file, int line,\n                                 char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: field_format
      Src: /src/haproxy/src/stats-html.c:34,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:35,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:36,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:37,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:38,1
    - Dst: F2H
      Src: /src/haproxy/src/stats-html.c:39,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct field*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: field_to_html_str
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - F2H
    - field_str
    - field_format
    - U2H
    linkageType: ''
    returnType: char
    signature: char *field_to_html_str(const struct field *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-html.c:57,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 218
    functionName: stats_dump_html_head
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void stats_dump_html_head(struct appctx *appctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-html.c:226,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stats-html.c:229,1
    - Dst: stats_scope_ptr
      Src: /src/haproxy/src/stats-html.c:231,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-html.c:236,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats-html.c:239,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:256,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-html.c:300,1
    - Dst: ultoa
      Src: /src/haproxy/src/stats-html.c:301,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-html.c:304,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats-html.c:305,1
    - Dst: total_run_queues
      Src: /src/haproxy/src/stats-html.c:308,1
    - Dst: total_allocated_tasks
      Src: /src/haproxy/src/stats-html.c:308,1
    - Dst: total_niced_running_tasks
      Src: /src/haproxy/src/stats-html.c:308,1
    - Dst: clock_report_idle
      Src: /src/haproxy/src/stats-html.c:308,1
    - Dst: memcpy
      Src: /src/haproxy/src/stats-html.c:311,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:314,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/stats-html.c:322,1
    - Dst: memcpy
      Src: /src/haproxy/src/stats-html.c:323,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:323,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:324,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:328,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:335,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:344,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:351,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:359,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:366,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:372,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:378,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:394,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:404,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:414,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:425,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:441,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:452,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:462,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:472,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:481,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 483
    functionName: stats_dump_html_info
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - ns_to_sec
    - BUG_ON
    - HA_ATOMIC_LOAD
    - memcpy
    - chunk_appendf
    - total_niced_running_tasks
    - total_allocated_tasks
    - read_freq_ctr
    - strlcpy2
    - stats_scope_ptr
    - __sc_appctx
    - strlen
    - clock_report_idle
    - total_run_queues
    - ultoa
    linkageType: ''
    returnType: void
    signature: void stats_dump_html_info(struct stconn *sc)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:501,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:507,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:510,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:516,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:516,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:518,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:524,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:525,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:526,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:528,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:528,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:529,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:531,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:533,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:540,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:541,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:542,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:544,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:544,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:545,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:547,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:549,1
    - Dst: LIM2A
      Src: /src/haproxy/src/stats-html.c:553,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:555,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:562,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:562,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:562,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:563,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:564,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:565,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:568,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:568,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:569,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:580,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:581,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:582,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:583,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:584,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:585,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:586,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:587,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:588,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:590,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:599,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:600,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:601,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:604,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:605,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:606,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:607,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:609,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:616,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:617,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:618,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:621,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:622,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:625,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:632,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:634,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:644,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:645,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:646,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:647,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:649,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:650,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:654,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:666,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:666,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:667,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:668,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-html.c:671,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:672,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-html.c:674,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:675,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:679,1
    - Dst: field_to_html_str
      Src: /src/haproxy/src/stats-html.c:681,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:684,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:689,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:693,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:696,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:699,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:702,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:707,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:707,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:709,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:709,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:709,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:712,1
    - Dst: isdigit
      Src: /src/haproxy/src/stats-html.c:714,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:714,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:715,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:715,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:716,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:717,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:717,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:718,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:719,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:719,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:721,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:721,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:724,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:727,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:739,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:739,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:739,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:740,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:740,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:740,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:742,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:754,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:754,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:755,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:756,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-html.c:759,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:760,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-html.c:762,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:763,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:767,1
    - Dst: field_to_html_str
      Src: /src/haproxy/src/stats-html.c:769,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:772,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:777,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:781,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:793,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:793,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:794,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:794,1
    - Dst: strncmp
      Src: /src/haproxy/src/stats-html.c:797,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:797,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:797,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:800,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:800,1
    - Dst: strncmp
      Src: /src/haproxy/src/stats-html.c:803,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:803,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:803,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:806,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:806,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:809,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:809,1
    - Dst: strncmp
      Src: /src/haproxy/src/stats-html.c:824,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:824,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:825,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:827,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:833,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:835,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:836,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:838,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:842,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:842,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:844,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:844,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:844,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:847,1
    - Dst: isdigit
      Src: /src/haproxy/src/stats-html.c:849,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:849,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:850,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:850,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:851,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:852,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:852,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:853,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:854,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:854,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:857,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:861,1
    - Dst: chunk_initstr
      Src: /src/haproxy/src/stats-html.c:862,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:862,1
    - Dst: chunk_htmlencode
      Src: /src/haproxy/src/stats-html.c:863,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:864,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:867,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:870,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:877,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:877,1
    - Dst: LIM2A
      Src: /src/haproxy/src/stats-html.c:877,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:878,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:878,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:880,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:898,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:899,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:900,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:901,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:902,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:903,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:904,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:905,1
    - Dst: LIM2A
      Src: /src/haproxy/src/stats-html.c:907,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:908,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:909,1
    - Dst: LIM2A
      Src: /src/haproxy/src/stats-html.c:909,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:910,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:911,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:914,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:914,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:915,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:928,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:929,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:932,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:933,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:935,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:937,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:939,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:941,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:943,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:945,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:946,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:948,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:948,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:949,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:953,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:954,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:959,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:960,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:961,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:961,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:962,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:963,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:963,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:964,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:964,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:965,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:966,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:966,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:967,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:968,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:968,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:970,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:974,1
    - Dst: human_time
      Src: /src/haproxy/src/stats-html.c:975,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:977,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:989,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:989,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:990,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:991,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:992,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:999,1
    - Dst: strncmp
      Src: /src/haproxy/src/stats-html.c:1008,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1008,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1009,1
    - Dst: human_time
      Src: /src/haproxy/src/stats-html.c:1009,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1011,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1011,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-html.c:1012,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1015,1
    - Dst: human_time
      Src: /src/haproxy/src/stats-html.c:1015,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1015,1
    - Dst: strncmp
      Src: /src/haproxy/src/stats-html.c:1016,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1016,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-html.c:1018,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-html.c:1021,1
    - Dst: strncmp
      Src: /src/haproxy/src/stats-html.c:1024,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1024,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1026,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1028,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1031,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1034,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1036,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1036,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1038,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1039,1
    - Dst: chunk_initstr
      Src: /src/haproxy/src/stats-html.c:1040,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1040,1
    - Dst: chunk_htmlencode
      Src: /src/haproxy/src/stats-html.c:1041,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1043,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1046,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1048,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1051,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1054,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1056,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1056,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1058,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1059,1
    - Dst: chunk_initstr
      Src: /src/haproxy/src/stats-html.c:1060,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1060,1
    - Dst: chunk_htmlencode
      Src: /src/haproxy/src/stats-html.c:1061,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1063,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1066,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1068,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1079,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1079,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1080,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1083,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1086,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1088,1
    - Dst: human_time
      Src: /src/haproxy/src/stats-html.c:1093,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1095,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1095,1
    - Dst: field_format
      Src: /src/haproxy/src/stats-html.c:1095,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1097,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1099,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1099,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1102,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1106,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1108,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-html.c:1111,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1112,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-html.c:1114,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1115,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1119,1
    - Dst: field_to_html_str
      Src: /src/haproxy/src/stats-html.c:1121,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1124,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1129,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1133,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1136,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1136,1
    - Dst: b_make
      Src: /src/haproxy/src/stats-html.c:1140,1
    - Dst: istmatch
      Src: /src/haproxy/src/stats-html.c:1141,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1141,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1142,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1143,1
    - Dst: istist
      Src: /src/haproxy/src/stats-html.c:1145,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1145,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1146,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1147,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1150,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1150,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1153,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1156,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1158,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1165,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1165,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1169,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1170,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1174,1
    - Dst: chunk_initstr
      Src: /src/haproxy/src/stats-html.c:1175,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1175,1
    - Dst: chunk_htmlencode
      Src: /src/haproxy/src/stats-html.c:1176,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1177,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1179,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1182,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1190,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1190,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1191,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1191,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1193,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1199,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1199,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1199,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1200,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1201,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1204,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1204,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1205,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1221,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1222,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1225,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1226,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1227,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1228,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1231,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1232,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1233,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1234,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1235,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1236,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1239,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1240,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1242,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1242,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1243,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1247,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1248,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1253,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1254,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1255,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1255,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1256,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1257,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1257,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1258,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1258,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1259,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1260,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1260,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1261,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1262,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1262,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1264,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1271,1
    - Dst: human_time
      Src: /src/haproxy/src/stats-html.c:1272,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1273,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1275,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1285,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1286,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1287,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1288,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1290,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1291,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1295,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1311,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1311,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1312,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1313,1
    - Dst: human_time
      Src: /src/haproxy/src/stats-html.c:1317,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1322,1
    - Dst: human_time
      Src: /src/haproxy/src/stats-html.c:1328,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-html.c:1331,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1332,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-html.c:1334,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1335,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1339,1
    - Dst: field_to_html_str
      Src: /src/haproxy/src/stats-html.c:1341,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1344,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1349,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1353,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 284
    argCount: 3
    argNames:
    - out
    - stats
    - ctx
    argTypes:
    - struct buffer*
    - struct field*
    - struct show_stat_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 1357
    functionName: stats_dump_fields_html
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - chunk_initstr
    - field_to_html_str
    - field_str
    - chunk_appendf
    - isdigit
    - istmatch
    - ist
    - chunk_htmlencode
    - chunk_strcat
    - strcmp
    - b_make
    - stats_px_get_cap
    - LIM2A
    - human_time
    - U2H
    - list_for_each_entry
    - strncmp
    - field_format
    - istist
    - strlen
    linkageType: ''
    returnType: int
    signature: "int stats_dump_fields_html(struct buffer *out,\n                           const
      struct field *stats,\n                           struct show_stat_ctx *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-html.c:1365,1
    - Dst: stats_scope_ptr
      Src: /src/haproxy/src/stats-html.c:1378,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/stats-html.c:1380,1
    - Dst: memcpy
      Src: /src/haproxy/src/stats-html.c:1381,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:1381,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:1382,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1385,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1390,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1395,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1404,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/stats-html.c:1405,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stats-html.c:1405,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1407,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1410,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1423,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1430,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1433,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-html.c:1443,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1446,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1450,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-html.c:1463,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1464,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1468,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - sc
    - px
    argTypes:
    - struct stconn*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1469
    functionName: stats_dump_html_px_hdr
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - memcpy
    - list_for_each_entry
    - chunk_appendf
    - strlcpy2
    - stats_scope_ptr
    - __sc_appctx
    - proxy_cap_str
    - proxy_mode_str
    - strlen
    linkageType: ''
    returnType: void
    signature: void stats_dump_html_px_hdr(struct stconn *sc, struct proxy *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-html.c:1477,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1481,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1485,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - sc
    - px
    argTypes:
    - struct stconn*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1475
    functionDepth: 1
    functionLinenumber: 1475
    functionLinenumberEnd: 1510
    functionName: stats_dump_html_px_end
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - __sc_appctx
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void stats_dump_html_px_end(struct stconn *sc, struct proxy *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1518
    functionName: stats_dump_html_end
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void stats_dump_html_end(struct buffer *out)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-html.c:1524,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-html.c:1529,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/stats-html.c:1533,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1533,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1533,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1533,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1538,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1538,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1538,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1541,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1541,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1541,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1545,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1545,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1545,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1549,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1549,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1549,1
    - Dst: U2A
      Src: /src/haproxy/src/stats-html.c:1554,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1555,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1555,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1555,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1560,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1560,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1560,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/stats-html.c:1564,1
    - Dst: htx_reset
      Src: /src/haproxy/src/stats-html.c:1569,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/stats-html.c:1570,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/stats-html.c:1571,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 2
    argNames:
    - sc
    - htx
    argTypes:
    - struct stconn*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1521
    functionDepth: 1
    functionLinenumber: 1521
    functionLinenumberEnd: 1573
    functionName: stats_send_http_headers
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - applet_set_error
    - ist
    - BUG_ON
    - htx_add_header
    - __sc_appctx
    - U2A
    - htx_add_stline
    - htx_reset
    - applet_set_eos
    - htx_add_endof
    linkageType: ''
    returnType: int
    signature: int stats_send_http_headers(struct stconn *sc, struct htx *htx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-html.c:1579,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-html.c:1584,1
    - Dst: stats_scope_ptr
      Src: /src/haproxy/src/stats-html.c:1590,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/stats-html.c:1592,1
    - Dst: memcpy
      Src: /src/haproxy/src/stats-html.c:1593,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:1593,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:1594,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stats-html.c:1601,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/stats-html.c:1613,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1613,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1613,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1613,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1618,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1618,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1618,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1619,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1619,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1619,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1620,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1620,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1620,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1621,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1621,1
    - Dst: ist2
      Src: /src/haproxy/src/stats-html.c:1621,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/stats-html.c:1624,1
    - Dst: htx_reset
      Src: /src/haproxy/src/stats-html.c:1630,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/stats-html.c:1631,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/stats-html.c:1632,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - sc
    - htx
    argTypes:
    - struct stconn*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1634
    functionName: stats_send_http_redirect
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - applet_set_error
    - ist
    - ist2
    - memcpy
    - BUG_ON
    - chunk_printf
    - htx_add_header
    - strlcpy2
    - stats_scope_ptr
    - __sc_appctx
    - htx_add_stline
    - htx_reset
    - applet_set_eos
    - htx_add_endof
    - strlen
    linkageType: ''
    returnType: int
    signature: int stats_send_http_redirect(struct stconn *sc, struct htx *htx)
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-html.c:1643,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stats-html.c:1660,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stats-html.c:1662,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stats-html.c:1668,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/stats-html.c:1676,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/stats-html.c:1678,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/stats-html.c:1683,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/stats-html.c:1685,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/stats-html.c:1690,1
    - Dst: strncpy
      Src: /src/haproxy/src/stats-html.c:1716,1
    - Dst: url_decode
      Src: /src/haproxy/src/stats-html.c:1732,1
    - Dst: url_decode
      Src: /src/haproxy/src/stats-html.c:1732,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1736,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/stats-html.c:1737,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1743,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1744,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1747,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1750,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1753,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1756,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1759,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1762,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1765,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1768,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1771,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1774,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1777,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1780,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1784,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1787,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1790,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1793,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1801,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/stats-html.c:1813,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/stats-html.c:1814,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/stats-html.c:1820,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/src/stats-html.c:1827,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/stats-html.c:1832,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/src/stats-html.c:1839,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/stats-html.c:1861,1
    - Dst: srv_set_stopping
      Src: /src/haproxy/src/stats-html.c:1869,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/stats-html.c:1877,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/stats-html.c:1899,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/stats-html.c:1907,1
    - Dst: srv_adm_set_ready
      Src: /src/haproxy/src/stats-html.c:1913,1
    - Dst: srv_adm_set_drain
      Src: /src/haproxy/src/stats-html.c:1918,1
    - Dst: srv_adm_set_maint
      Src: /src/haproxy/src/stats-html.c:1923,1
    - Dst: srv_shutdown_streams
      Src: /src/haproxy/src/stats-html.c:1929,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/stats-html.c:1935,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 279
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1641
    functionDepth: 1
    functionLinenumber: 1641
    functionLinenumberEnd: 1973
    functionName: stats_process_http_post
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_LOCK
    - get_trash_chunk
    - srv_set_stopped
    - srv_set_stopping
    - srv_adm_set_maint
    - srv_shutdown_streams
    - srv_set_admin_flag
    - strcmp
    - htx_get_blk_type
    - chunk_memcat
    - htx_get_head_blk
    - strncpy
    - htx_get_next_blk
    - htxbuf
    - srv_set_running
    - url_decode
    - __sc_appctx
    - srv_adm_set_drain
    - htx_get_blk_value
    - srv_clr_admin_flag
    - applet_fl_test
    - HA_SPIN_UNLOCK
    - srv_adm_set_ready
    - server_find_by_name
    - proxy_be_by_name
    linkageType: ''
    returnType: int
    signature: int stats_process_http_post(struct stconn *sc)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/stats-html.c:1983,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stats-html.c:1989,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stats-html.c:1992,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stats-html.c:1992,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/stats-html.c:1996,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/stats-html.c:1996,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stats-html.c:1996,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/stats-html.c:2000,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/stats-html.c:2004,1
    - Dst: unlikely
      Src: /src/haproxy/src/stats-html.c:2006,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stats-html.c:2006,1
    - Dst: stats_send_http_headers
      Src: /src/haproxy/src/stats-html.c:2013,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/stats-html.c:2014,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/stats-html.c:2014,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stats-html.c:2014,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/stats-html.c:2016,1
    - Dst: istptr
      Src: /src/haproxy/src/stats-html.c:2016,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-html.c:2016,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stats-html.c:2020,1
    - Dst: b_make
      Src: /src/haproxy/src/stats-html.c:2027,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/stats-html.c:2031,1
    - Dst: stats_dump_stat_to_buffer
      Src: /src/haproxy/src/stats-html.c:2032,1
    - Dst: stats_process_http_post
      Src: /src/haproxy/src/stats-html.c:2037,1
    - Dst: stats_send_http_redirect
      Src: /src/haproxy/src/stats-html.c:2042,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/stats-html.c:2052,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/stats-html.c:2053,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/stats-html.c:2054,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/stats-html.c:2059,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/stats-html.c:2060,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/stats-html.c:2061,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/stats-html.c:2066,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/stats-html.c:2067,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/stats-html.c:2079,1
    - Dst: b_reset
      Src: /src/haproxy/src/stats-html.c:2083,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/stats-html.c:2084,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stats-html.c:2087,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/stats-html.c:2088,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/stats-html.c:2093,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 1980
    functionDepth: 2
    functionLinenumber: 1980
    functionLinenumberEnd: 2096
    functionName: http_stats_io_handler
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - unlikely
    - applet_need_more_data
    - appctx_sc
    - stats_send_http_headers
    - htx_sl_req_meth
    - istlen
    - se_fl_test
    - htx_is_empty
    - applet_fl_clr
    - applet_fl_set
    - istptr
    - find_http_meth
    - b_make
    - applet_set_eos
    - htx_from_buf
    - se_fl_set
    - htxbuf
    - stats_dump_stat_to_buffer
    - http_get_stline
    - appctx_get_buf
    - stats_process_http_post
    - htx_to_buf
    - applet_fl_test
    - applet_wont_consume
    - applet_set_eoi
    - se_fl_clr
    - stats_send_http_redirect
    - buf_room_for_htx_data
    - b_reset
    - applet_will_consume
    - htx_add_endof
    linkageType: ''
    returnType: void
    signature: void http_stats_io_handler(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/stats-html.c:2101,1
    - Dst: b_make
      Src: /src/haproxy/src/stats-html.c:2105,1
    - Dst: b_tail
      Src: /src/haproxy/src/stats-html.c:2105,1
    - Dst: MIN
      Src: /src/haproxy/src/stats-html.c:2105,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/stats-html.c:2105,1
    - Dst: stats_dump_stat_to_buffer
      Src: /src/haproxy/src/stats-html.c:2106,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/stats-html.c:2107,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/stats-html.c:2108,1
    - Dst: b_data
      Src: /src/haproxy/src/stats-html.c:2111,1
    - Dst: b_add
      Src: /src/haproxy/src/stats-html.c:2112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - appctx
    - buf
    - count
    - flags
    argTypes:
    - struct appctx*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2114
    functionName: http_stats_fastfwd
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - applet_fl_clr
    - stats_dump_stat_to_buffer
    - b_tail
    - b_add
    - appctx_sc
    - se_fl_clr
    - b_data
    - MIN
    - b_make
    - b_contig_space
    linkageType: ''
    returnType: size_t
    signature: "size_t http_stats_fastfwd(struct appctx *appctx, struct buffer *buf,\n
      \                                size_t count, unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: watcher_detach
      Src: /src/haproxy/src/stats-html.c:2120,1
    - Dst: watcher_detach
      Src: /src/haproxy/src/stats-html.c:2122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2123
    functionName: http_stats_release
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - watcher_detach
    linkageType: ''
    returnType: void
    signature: void http_stats_release(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timer_settime
      Src: /src/haproxy/src/wdt.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - thr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: wdt_ping
    functionSourceFile: /src/haproxy/src/wdt.c
    functionUses: 0
    functionsReached:
    - timer_settime
    linkageType: ''
    returnType: int
    signature: int wdt_ping(int thr)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/wdt.c:73,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/wdt.c:94,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/wdt.c:95,1
    - Dst: is_sched_alive
      Src: /src/haproxy/src/wdt.c:113,1
    - Dst: now_cpu_time_thread
      Src: /src/haproxy/src/wdt.c:114,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/wdt.c:115,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/wdt.c:139,1
    - Dst: ha_tkill
      Src: /src/haproxy/src/wdt.c:149,1
    - Dst: now_cpu_time
      Src: /src/haproxy/src/wdt.c:159,1
    - Dst: is_sched_alive
      Src: /src/haproxy/src/wdt.c:161,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/wdt.c:162,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/wdt.c:192,1
    - Dst: ha_panic
      Src: /src/haproxy/src/wdt.c:193,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/wdt.c:197,1
    - Dst: ha_stuck_warning
      Src: /src/haproxy/src/wdt.c:199,1
    - Dst: wdt_ping
      Src: /src/haproxy/src/wdt.c:203,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/wdt.c:205,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 3
    argNames:
    - sig
    - si
    - arg
    argTypes:
    - int
    - siginfo_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 206
    functionName: wdt_handler
    functionSourceFile: /src/haproxy/src/wdt.c
    functionUses: 0
    functionsReached:
    - now_cpu_time
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_STORE
    - _HA_ATOMIC_AND
    - ha_tkill
    - ha_panic
    - now_cpu_time_thread
    - wdt_ping
    - _HA_ATOMIC_OR
    - is_sched_alive
    - ha_stuck_warning
    linkageType: ''
    returnType: void
    signature: void wdt_handler(int sig, siginfo_t *si, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/wdt.c:217,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/wdt.c:221,1
    - Dst: memprintf
      Src: /src/haproxy/src/wdt.c:223,1
    - Dst: memprintf
      Src: /src/haproxy/src/wdt.c:228,1
    - Dst: memprintf
      Src: /src/haproxy/src/wdt.c:233,1
    - Dst: memprintf
      Src: /src/haproxy/src/wdt.c:237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 244
    functionName: wdt_parse_warn_blocked
    functionSourceFile: /src/haproxy/src/wdt.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int wdt_parse_warn_blocked(char **args, int section_type, struct proxy
      *curpx,\n                                  const struct proxy *defpx, const
      char *file, int line,\n                                  char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clock_setup_signal_timer
      Src: /src/haproxy/src/wdt.c:248,1
    - Dst: wdt_ping
      Src: /src/haproxy/src/wdt.c:251,1
    - Dst: timer_delete
      Src: /src/haproxy/src/wdt.c:257,1
    - Dst: ha_warning
      Src: /src/haproxy/src/wdt.c:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: init_wdt_per_thread
    functionSourceFile: /src/haproxy/src/wdt.c
    functionUses: 0
    functionsReached:
    - clock_setup_signal_timer
    - wdt_ping
    - ha_warning
    - timer_delete
    linkageType: ''
    returnType: int
    signature: int init_wdt_per_thread()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timer_delete
      Src: /src/haproxy/src/wdt.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: deinit_wdt_per_thread
    functionSourceFile: /src/haproxy/src/wdt.c
    functionUses: 0
    functionsReached:
    - timer_delete
    linkageType: ''
    returnType: void
    signature: void deinit_wdt_per_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/haproxy/src/wdt.c:280,1
    - Dst: sigaddset
      Src: /src/haproxy/src/wdt.c:281,1
    - Dst: sigaddset
      Src: /src/haproxy/src/wdt.c:283,1
    - Dst: sigaddset
      Src: /src/haproxy/src/wdt.c:286,1
    - Dst: sigaction
      Src: /src/haproxy/src/wdt.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 291
    functionName: init_wdt
    functionSourceFile: /src/haproxy/src/wdt.c
    functionUses: 0
    functionsReached:
    - sigaction
    - sigaddset
    - sigemptyset
    linkageType: ''
    returnType: int
    signature: int init_wdt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - col
    argTypes:
    - struct name_desc*
    - struct stat_col*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: stcol2ndesc
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stcol2ndesc(struct name_desc *name, const struct stat_col *col)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats.c:211,1
    - Dst: strlen
      Src: /src/haproxy/src/stats.c:212,1
    - Dst: malloc
      Src: /src/haproxy/src/stats.c:213,1
    - Dst: memcpy
      Src: /src/haproxy/src/stats.c:218,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/stats.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - st_tree
    - cols
    argTypes:
    - struct eb_root*
    - struct stat_col[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 229
    functionName: generate_stat_tree
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - malloc
    - stcol_is_generic
    - memcpy
    - ebst_insert
    - strlen
    linkageType: ''
    returnType: int
    signature: int generate_stat_tree(struct eb_root *st_tree, const struct stat_col
      cols[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/stats.c:238,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/stats.c:238,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:239,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/stats.c:239,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/stats.c:240,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/stats.c:243,1
    - Dst: ist2
      Src: /src/haproxy/src/stats.c:243,1
    - Dst: b_orig
      Src: /src/haproxy/src/stats.c:243,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:243,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/stats.c:244,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats.c:247,1
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/stats.c:250,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:250,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:250,1
    - Dst: b_room
      Src: /src/haproxy/src/stats.c:250,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stats.c:251,1
    - Dst: b_putblk
      Src: /src/haproxy/src/stats.c:254,1
    - Dst: b_head
      Src: /src/haproxy/src/stats.c:254,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:254,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats.c:255,1
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/stats.c:258,1
    - Dst: applet_putchk_stress
      Src: /src/haproxy/src/stats.c:258,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stats.c:259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - appctx
    - buf
    - htx
    argTypes:
    - struct appctx*
    - struct buffer*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 264
    functionName: stats_putchk
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - STRESS_RUN1
    - se_fl_set
    - ist2
    - applet_putchk_stress
    - b_head
    - b_orig
    - b_putblk
    - htx_add_data_atonce
    - b_room
    - b_data
    - applet_fl_set
    - chunk_reset
    - htx_free_data_space
    - htx_is_empty
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int stats_putchk(struct appctx *appctx, struct buffer *buf, struct
      htx *htx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/stats.c:269,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/stats.c:269,1
    - Dst: htx_almost_full
      Src: /src/haproxy/src/stats.c:269,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/stats.c:270,1
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/stats.c:275,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:275,1
    - Dst: buffer_almost_full
      Src: /src/haproxy/src/stats.c:275,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stats.c:276,1
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/stats.c:281,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:281,1
    - Dst: buffer_almost_full
      Src: /src/haproxy/src/stats.c:282,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/stats.c:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - appctx
    - buf
    - htx
    argTypes:
    - struct appctx*
    - struct buffer*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 290
    functionName: stats_is_full
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - STRESS_RUN1
    - se_fl_set
    - htx_almost_full
    - b_data
    - applet_fl_set
    - htx_is_empty
    - buffer_almost_full
    linkageType: ''
    returnType: int
    signature: int stats_is_full(struct appctx *appctx, struct buffer *buf, struct
      htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/stats.c:295,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/stats.c:299,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/stats.c:299,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats.c:300,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/stats.c:300,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/stats.c:301,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/stats.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 303
    functionName: stats_scope_ptr
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 3
    functionsReached:
    - htxbuf
    - BUG_ON
    - htx_get_blk_ptr
    - htx_get_blk_type
    - ASSUME_NONNULL
    - htx_sl_req_uri
    - htx_get_head_blk
    linkageType: ''
    returnType: char
    signature: char *stats_scope_ptr(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:334,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:337,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:342,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - domain
    - out
    argTypes:
    - enum stats_domain
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 347
    functionName: stats_dump_csv_header
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void stats_dump_csv_header(enum stats_domain domain, struct buffer
      *out)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: field_format
      Src: /src/haproxy/src/stats.c:354,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:356,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:357,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:358,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:359,1
    - Dst: flt_trim
      Src: /src/haproxy/src/stats.c:362,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:362,1
    - Dst: csv_enc_append
      Src: /src/haproxy/src/stats.c:365,1
    - Dst: field_str
      Src: /src/haproxy/src/stats.c:365,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - out
    - f
    argTypes:
    - struct buffer*
    - struct field*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 368
    functionName: stats_emit_raw_data_field
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - csv_enc_append
    - field_str
    - chunk_appendf
    - flt_trim
    - field_format
    linkageType: ''
    returnType: int
    signature: int stats_emit_raw_data_field(struct buffer *out, const struct field
      *f)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: field_format
      Src: /src/haproxy/src/stats.c:376,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:378,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:379,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:380,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:381,1
    - Dst: flt_trim
      Src: /src/haproxy/src/stats.c:384,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:384,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:387,1
    - Dst: field_str
      Src: /src/haproxy/src/stats.c:387,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - out
    - f
    argTypes:
    - struct buffer*
    - struct field*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 390
    functionName: stats_emit_typed_data_field
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - field_str
    - field_format
    - chunk_appendf
    - flt_trim
    linkageType: ''
    returnType: int
    signature: int stats_emit_typed_data_field(struct buffer *out, const struct field
      *f)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: field_origin
      Src: /src/haproxy/src/stats.c:401,1
    - Dst: field_nature
      Src: /src/haproxy/src/stats.c:410,1
    - Dst: field_scope
      Src: /src/haproxy/src/stats.c:426,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:434,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 4
    argNames:
    - out
    - f
    - persistent
    - delim
    argTypes:
    - struct buffer*
    - struct field*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 435
    functionName: stats_emit_field_tags
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - field_nature
    - field_scope
    - field_origin
    linkageType: ''
    returnType: int
    signature: "int stats_emit_field_tags(struct buffer *out, const struct field *f,\n
      \                         int persistent, char delim)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stats_emit_raw_data_field
      Src: /src/haproxy/src/stats.c:446,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:448,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:454,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:459,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - out
    - line
    - stats_count
    - ctx
    argTypes:
    - struct buffer*
    - struct field*
    - size_t
    - struct show_stat_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 461
    functionName: stats_dump_fields_csv
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - stats_emit_raw_data_field
    - chunk_strcat
    linkageType: ''
    returnType: int
    signature: "int stats_dump_fields_csv(struct buffer *out,\n                                 const
      struct field *line, size_t stats_count,\n                                 struct
      show_stat_ctx *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:481,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:494,1
    - Dst: stats_emit_field_tags
      Src: /src/haproxy/src/stats.c:507,1
    - Dst: stats_emit_typed_data_field
      Src: /src/haproxy/src/stats.c:509,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:513,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:517,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 4
    argNames:
    - out
    - line
    - stats_count
    - ctx
    argTypes:
    - struct buffer*
    - struct field*
    - size_t
    - struct show_stat_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 521
    functionName: stats_dump_fields_typed
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - chunk_strcat
    - stats_emit_typed_data_field
    - chunk_appendf
    - stats_emit_field_tags
    linkageType: ''
    returnType: int
    signature: "int stats_dump_fields_typed(struct buffer *out,\n                                   const
      struct field *line,\n                                   size_t stats_count,\n
      \                                  struct show_stat_ctx * ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stats_dump_fields_html
      Src: /src/haproxy/src/stats.c:532,1
    - Dst: stats_dump_fields_typed
      Src: /src/haproxy/src/stats.c:534,1
    - Dst: stats_dump_fields_json
      Src: /src/haproxy/src/stats.c:536,1
    - Dst: stats_dump_fields_file
      Src: /src/haproxy/src/stats.c:538,1
    - Dst: stats_dump_fields_csv
      Src: /src/haproxy/src/stats.c:540,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - line
    - stats_count
    - appctx
    argTypes:
    - struct field*
    - size_t
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 543
    functionName: stats_dump_one_line
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - stats_dump_fields_json
    - stats_dump_fields_file
    - stats_dump_fields_csv
    - stats_dump_fields_typed
    - stats_dump_fields_html
    linkageType: ''
    returnType: int
    signature: "int stats_dump_one_line(const struct field *line, size_t stats_count,\n
      \                       struct appctx *appctx)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats.c:553,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats.c:558,1
    - Dst: stats_dump_html_head
      Src: /src/haproxy/src/stats.c:567,1
    - Dst: stats_dump_json_schema
      Src: /src/haproxy/src/stats.c:569,1
    - Dst: stats_dump_json_header
      Src: /src/haproxy/src/stats.c:571,1
    - Dst: stats_dump_file_header
      Src: /src/haproxy/src/stats.c:573,1
    - Dst: stats_dump_csv_header
      Src: /src/haproxy/src/stats.c:575,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats.c:577,1
    - Dst: stats_dump_html_info
      Src: /src/haproxy/src/stats.c:589,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats.c:590,1
    - Dst: watcher_attach
      Src: /src/haproxy/src/stats.c:599,1
    - Dst: stats_dump_resolvers
      Src: /src/haproxy/src/stats.c:606,1
    - Dst: stats_dump_proxies
      Src: /src/haproxy/src/stats.c:616,1
    - Dst: stats_dump_html_end
      Src: /src/haproxy/src/stats.c:627,1
    - Dst: stats_dump_json_end
      Src: /src/haproxy/src/stats.c:629,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats.c:630,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 3
    argNames:
    - sc
    - buf
    - htx
    argTypes:
    - struct stconn*
    - struct buffer*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 649
    functionName: stats_dump_stat_to_buffer
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 2
    functionsReached:
    - stats_dump_json_header
    - stats_dump_file_header
    - stats_dump_html_head
    - stats_dump_html_end
    - stats_dump_json_end
    - stats_dump_json_schema
    - stats_putchk
    - watcher_attach
    - stats_dump_csv_header
    - stats_dump_proxies
    - __sc_appctx
    - stats_dump_resolvers
    - stats_dump_html_info
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int stats_dump_stat_to_buffer(struct stconn *sc, struct buffer *buf,
      struct htx *htx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: field_format
      Src: /src/haproxy/src/stats.c:660,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:663,1
    - Dst: stats_emit_raw_data_field
      Src: /src/haproxy/src/stats.c:665,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:667,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:669,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - out
    - line
    - ctx
    argTypes:
    - struct buffer*
    - struct field*
    - struct show_stat_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 673
    functionName: stats_dump_info_fields
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - stats_emit_raw_data_field
    - field_format
    - chunk_appendf
    - chunk_strcat
    linkageType: ''
    returnType: int
    signature: "int stats_dump_info_fields(struct buffer *out,\n                                  const
      struct field *line,\n                                  struct show_stat_ctx
      *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: field_format
      Src: /src/haproxy/src/stats.c:684,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:687,1
    - Dst: stats_emit_field_tags
      Src: /src/haproxy/src/stats.c:691,1
    - Dst: stats_emit_typed_data_field
      Src: /src/haproxy/src/stats.c:693,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:695,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:697,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - out
    - line
    - ctx
    argTypes:
    - struct buffer*
    - struct field*
    - struct show_stat_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 701
    functionName: stats_dump_typed_info_fields
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - stats_emit_typed_data_field
    - chunk_strcat
    - chunk_appendf
    - stats_emit_field_tags
    - field_format
    linkageType: ''
    returnType: int
    signature: "int stats_dump_typed_info_fields(struct buffer *out,\n                                        const
      struct field *line,\n                                        struct show_stat_ctx
      *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stats.c:711,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:719,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:720,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:730,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:731,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:732,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:733,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:734,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stats.c:739,1
    - Dst: tv_ms_remain
      Src: /src/haproxy/src/stats.c:742,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats.c:747,1
    - Dst: memset
      Src: /src/haproxy/src/stats.c:748,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:750,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:751,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:752,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:753,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:755,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:756,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:757,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:758,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:760,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats.c:760,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:761,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:763,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:763,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:764,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:764,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:765,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:766,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:767,1
    - Dst: pool_total_allocated
      Src: /src/haproxy/src/stats.c:767,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:768,1
    - Dst: pool_total_allocated
      Src: /src/haproxy/src/stats.c:768,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:769,1
    - Dst: pool_total_used
      Src: /src/haproxy/src/stats.c:769,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:770,1
    - Dst: pool_total_used
      Src: /src/haproxy/src/stats.c:770,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:771,1
    - Dst: pool_total_failures
      Src: /src/haproxy/src/stats.c:771,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:772,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:773,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:774,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:775,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:776,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:777,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:778,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:780,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:781,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:782,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:784,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:785,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:786,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:787,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:787,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:787,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:787,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:788,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:789,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:790,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:790,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:790,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:790,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:791,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:792,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:795,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:795,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:796,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:797,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:798,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:798,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:799,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:800,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:800,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:801,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:801,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:801,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:801,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:802,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:803,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:804,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:806,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:806,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:806,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:806,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:807,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:807,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:807,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:807,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:808,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:810,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:811,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:813,1
    - Dst: total_allocated_tasks
      Src: /src/haproxy/src/stats.c:813,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:814,1
    - Dst: total_run_queues
      Src: /src/haproxy/src/stats.c:814,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:815,1
    - Dst: clock_report_idle
      Src: /src/haproxy/src/stats.c:815,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:816,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:818,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:819,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:820,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:821,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:822,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:823,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:824,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:825,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:826,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:827,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:828,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:829,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:830,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:831,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:832,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:834,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats.c:834,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:835,1
    - Dst: get_tainted
      Src: /src/haproxy/src/stats.c:835,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:836,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:836,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:837,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:837,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:838,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:839,1
    - Dst: total_niced_running_tasks
      Src: /src/haproxy/src/stats.c:839,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:840,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:841,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:842,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:843,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:844,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 106
    argCount: 3
    argNames:
    - line
    - len
    - flags
    argTypes:
    - struct field*
    - int
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 848
    functionName: stats_fill_info
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - read_freq_ctr_flt
    - tv_ms_remain
    - HA_ATOMIC_LOAD
    - pool_total_allocated
    - chunk_appendf
    - get_trash_chunk
    - total_run_queues
    - mkf_u32
    - mkf_u64
    - total_niced_running_tasks
    - ns_to_sec
    - get_tainted
    - pool_total_failures
    - chunk_reset
    - mkf_str
    - memset
    - pool_total_used
    - mkf_flt
    - total_allocated_tasks
    - read_freq_ctr
    - clock_report_idle
    - chunk_newstr
    linkageType: ''
    returnType: int
    signature: int stats_fill_info(struct field *line, int len, uint flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats.c:856,1
    - Dst: stats_fill_info
      Src: /src/haproxy/src/stats.c:862,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats.c:865,1
    - Dst: stats_dump_typed_info_fields
      Src: /src/haproxy/src/stats.c:870,1
    - Dst: stats_dump_json_info_fields
      Src: /src/haproxy/src/stats.c:872,1
    - Dst: stats_dump_info_fields
      Src: /src/haproxy/src/stats.c:874,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stats.c:876,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 887
    functionName: stats_dump_info_to_buffer
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - stats_dump_typed_info_fields
    - stats_dump_info_fields
    - stats_fill_info
    - __sc_appctx
    - stats_dump_json_info_fields
    - chunk_reset
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int stats_dump_info_to_buffer(struct stconn *sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:893,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/stats.c:897,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/stats.c:898,1
    - Dst: proxy_stats_clear_counters
      Src: /src/haproxy/src/stats.c:907,1
    - Dst: resolv_stats_clear_counters
      Src: /src/haproxy/src/stats.c:909,1
    - Dst: memset
      Src: /src/haproxy/src/stats.c:911,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 913
    functionName: cli_parse_clear_counters
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - memset
    - strcmp
    - cli_has_level
    - proxy_stats_clear_counters
    - resolv_stats_clear_counters
    linkageType: ''
    returnType: int
    signature: int cli_parse_clear_counters(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/stats.c:918,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:927,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:929,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:931,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:933,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 938
    functionName: cli_parse_show_info
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - strcmp
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_info(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/stats.c:943,1
    - Dst: watcher_init
      Src: /src/haproxy/src/stats.c:951,1
    - Dst: watcher_init
      Src: /src/haproxy/src/stats.c:952,1
    - Dst: strm_li
      Src: /src/haproxy/src/stats.c:954,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/stats.c:954,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:959,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:962,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:964,1
    - Dst: cli_err
      Src: /src/haproxy/src/stats.c:968,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/stats.c:976,1
    - Dst: atoi
      Src: /src/haproxy/src/stats.c:980,1
    - Dst: cli_err
      Src: /src/haproxy/src/stats.c:983,1
    - Dst: atoi
      Src: /src/haproxy/src/stats.c:986,1
    - Dst: atoi
      Src: /src/haproxy/src/stats.c:987,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:992,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:994,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:996,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:998,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:1000,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 1006
    functionName: cli_parse_show_stat
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - watcher_init
    - strcmp
    - proxy_find_by_name
    - applet_reserve_svcctx
    - atoi
    - strm_li
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_stat(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/stats.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1014
    functionName: cli_parse_show_schema_json
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_schema_json(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/src/stats.c:1019,1
    - Dst: stats_dump_info_to_buffer
      Src: /src/haproxy/src/stats.c:1020,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/stats.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1016
    functionDepth: 4
    functionLinenumber: 1016
    functionLinenumberEnd: 1021
    functionName: cli_io_handler_dump_info
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - b_make
    - appctx_sc
    - stats_dump_info_to_buffer
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_info(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/src/stats.c:1029,1
    - Dst: stats_dump_stat_to_buffer
      Src: /src/haproxy/src/stats.c:1030,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/stats.c:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1026
    functionDepth: 3
    functionLinenumber: 1026
    functionLinenumberEnd: 1031
    functionName: cli_io_handler_dump_stat
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - b_make
    - appctx_sc
    - stats_dump_stat_to_buffer
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_stat(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: watcher_detach
      Src: /src/haproxy/src/stats.c:1038,1
    - Dst: watcher_detach
      Src: /src/haproxy/src/stats.c:1040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1042
    functionName: cli_io_handler_release_stat
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - watcher_detach
    linkageType: ''
    returnType: void
    signature: void cli_io_handler_release_stat(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/src/stats.c:1047,1
    - Dst: stats_dump_json_schema_to_buffer
      Src: /src/haproxy/src/stats.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1049
    functionName: cli_io_handler_dump_json_schema
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - b_make
    - stats_dump_json_schema_to_buffer
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_json_schema(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/stats.c:1054,1
    - Dst: b_make
      Src: /src/haproxy/src/stats.c:1056,1
    - Dst: watcher_init
      Src: /src/haproxy/src/stats.c:1059,1
    - Dst: watcher_init
      Src: /src/haproxy/src/stats.c:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1063
    functionName: cli_parse_dump_stat_file
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - b_make
    - watcher_init
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: "int cli_parse_dump_stat_file(char **args, char *payload,\n                                    struct
      appctx *appctx, void *private)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stats_dump_stat_to_buffer
      Src: /src/haproxy/src/stats.c:1083,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/stats.c:1083,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:1087,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats.c:1088,1
    - Dst: stats_dump_stat_to_buffer
      Src: /src/haproxy/src/stats.c:1096,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/stats.c:1096,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1066
    functionDepth: 3
    functionLinenumber: 1066
    functionLinenumberEnd: 1097
    functionName: cli_io_handler_dump_stat_file
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - appctx_sc
    - chunk_strcat
    - stats_dump_stat_to_buffer
    - stats_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_stat_file(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: watcher_detach
      Src: /src/haproxy/src/stats.c:1104,1
    - Dst: watcher_detach
      Src: /src/haproxy/src/stats.c:1106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1108
    functionName: cli_io_handler_release_dump_stat_file
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - watcher_detach
    linkageType: ''
    returnType: void
    signature: void cli_io_handler_release_dump_stat_file(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EXTRA_COUNTERS_REGISTER
      Src: /src/haproxy/src/stats.c:1116,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats.c:1118,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats.c:1119,1
    - Dst: EXTRA_COUNTERS_ADD
      Src: /src/haproxy/src/stats.c:1122,1
    - Dst: EXTRA_COUNTERS_ALLOC
      Src: /src/haproxy/src/stats.c:1125,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats.c:1127,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats.c:1128,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats.c:1131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - counters
    - type
    - px_cap
    - storage
    - step
    argTypes:
    - struct extra_counters**
    - int
    - int
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1138
    functionName: stats_allocate_proxy_counters_internal
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - EXTRA_COUNTERS_ALLOC
    - list_for_each_entry
    - EXTRA_COUNTERS_ADD
    - EXTRA_COUNTERS_INIT
    - EXTRA_COUNTERS_REGISTER
    - stats_px_get_cap
    linkageType: ''
    returnType: int
    signature: "int stats_allocate_proxy_counters_internal(struct extra_counters **counters,\n
      \                                          int type, int px_cap,\n                                           char
      **storage, size_t step)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stats_allocate_proxy_counters_internal
      Src: /src/haproxy/src/stats.c:1149,1
    - Dst: stats_allocate_proxy_counters_internal
      Src: /src/haproxy/src/stats.c:1160,1
    - Dst: stats_allocate_proxy_counters_internal
      Src: /src/haproxy/src/stats.c:1171,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats.c:1181,1
    - Dst: stats_allocate_proxy_counters_internal
      Src: /src/haproxy/src/stats.c:1182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1143
    functionDepth: 2
    functionLinenumber: 1143
    functionLinenumberEnd: 1191
    functionName: stats_allocate_proxy_counters
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - stats_allocate_proxy_counters_internal
    linkageType: ''
    returnType: int
    signature: int stats_allocate_proxy_counters(struct proxy *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stats_get_domain
      Src: /src/haproxy/src/stats.c:1195,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stats.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct stats_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1199
    functionName: stats_register_module
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - stats_get_domain
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void stats_register_module(struct stats_module *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/stats.c:1211,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/stats.c:1211,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats.c:1213,1
    - Dst: stcol2ndesc
      Src: /src/haproxy/src/stats.c:1219,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats.c:1221,1
    - Dst: stcol2ndesc
      Src: /src/haproxy/src/stats.c:1223,1
    - Dst: stats_allocate_proxy_counters
      Src: /src/haproxy/src/stats.c:1230,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats.c:1231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1202
    functionDepth: 3
    functionLinenumber: 1202
    functionLinenumberEnd: 1240
    functionName: allocate_stats_px_postcheck
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - malloc
    - list_for_each_entry
    - stats_allocate_proxy_counters
    - stcol2ndesc
    - ha_alert
    - array_size_or_fail
    linkageType: ''
    returnType: int
    signature: int allocate_stats_px_postcheck(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/stats.c:1250,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/stats.c:1250,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats.c:1252,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats.c:1257,1
    - Dst: stcol2ndesc
      Src: /src/haproxy/src/stats.c:1259,1
    - Dst: resolv_allocate_counters
      Src: /src/haproxy/src/stats.c:1265,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats.c:1266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1274
    functionName: allocate_stats_rslv_postcheck
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - malloc
    - list_for_each_entry
    - resolv_allocate_counters
    - stcol2ndesc
    - ha_alert
    - array_size_or_fail
    linkageType: ''
    returnType: int
    signature: int allocate_stats_rslv_postcheck(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/stats.c:1285,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/stats.c:1285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1290
    functionName: allocate_stat_lines_per_thread
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - malloc
    - array_size_or_fail
    linkageType: ''
    returnType: int
    signature: int allocate_stat_lines_per_thread(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats.c:1302,1
    - Dst: malloc
      Src: /src/haproxy/src/stats.c:1310,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats.c:1312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1318
    functionName: allocate_trash_counters
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - malloc
    - ha_alert
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int allocate_trash_counters(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/stats.c:1329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1331
    functionName: deinit_stat_lines_per_thread
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void deinit_stat_lines_per_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/stats.c:1343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1336
    functionDepth: 1
    functionLinenumber: 1336
    functionLinenumberEnd: 1345
    functionName: deinit_stats
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void deinit_stats(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/stats.c:1351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1352
    functionName: free_trash_counters
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_trash_counters(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - esc
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: mjson_esc
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mjson_esc(int c, int esc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mjson_esc
      Src: /src/haproxy/src/mjson.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: mjson_escape
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached:
    - mjson_esc
    linkageType: ''
    returnType: int
    signature: int mjson_escape(int c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mjson_escape
      Src: /src/haproxy/src/mjson.c:44,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: mjson_pass_string
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached:
    - mjson_escape
    linkageType: ''
    returnType: int
    signature: int mjson_pass_string(const char *s, int len)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: MJSONEOO
      Src: /src/haproxy/src/mjson.c:92,1
    - Dst: memcmp
      Src: /src/haproxy/src/mjson.c:93,1
    - Dst: memcmp
      Src: /src/haproxy/src/mjson.c:96,1
    - Dst: memcmp
      Src: /src/haproxy/src/mjson.c:99,1
    - Dst: mystrtod
      Src: /src/haproxy/src/mjson.c:104,1
    - Dst: mjson_pass_string
      Src: /src/haproxy/src/mjson.c:108,1
    - Dst: MJSONCALL
      Src: /src/haproxy/src/mjson.c:116,1
    - Dst: mjson_pass_string
      Src: /src/haproxy/src/mjson.c:124,1
    - Dst: MJSONEOO
      Src: /src/haproxy/src/mjson.c:130,1
    - Dst: MJSONEOO
      Src: /src/haproxy/src/mjson.c:150,1
    - Dst: MJSONCALL
      Src: /src/haproxy/src/mjson.c:156,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 92
    argCount: 4
    argNames:
    - s
    - len
    - cb
    - ud
    argTypes:
    - char*
    - int
    - mjson_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 159
    functionName: mjson
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached:
    - memcmp
    - MJSONCALL
    - mjson_pass_string
    - MJSONEOO
    - mystrtod
    linkageType: ''
    returnType: int
    signature: int mjson(const char *s, int len, mjson_cb_t cb, void *ud)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: MJSONCALL
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MJSONCALL(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: MJSONEOO
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MJSONEOO()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: plen1
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int plen1(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: plen2
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int plen2(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: kcmp
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int kcmp(const char *a, const char *b, int n)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: mystrtod
      Src: /src/haproxy/src/mjson.c:215,1
    - Dst: strlen
      Src: /src/haproxy/src/mjson.c:215,1
    - Dst: plen1
      Src: /src/haproxy/src/mjson.c:235,1
    - Dst: kcmp
      Src: /src/haproxy/src/mjson.c:236,1
    - Dst: plen2
      Src: /src/haproxy/src/mjson.c:238,1
    - Dst: MJSON_TOK_IS_VALUE
      Src: /src/haproxy/src/mjson.c:250,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 61
    argCount: 5
    argNames:
    - tok
    - s
    - 'off'
    - len
    - ud
    argTypes:
    - int
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 260
    functionName: mjson_get_cb
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached:
    - plen2
    - kcmp
    - mystrtod
    - plen1
    - MJSON_TOK_IS_VALUE
    - strlen
    linkageType: ''
    returnType: int
    signature: int mjson_get_cb(int tok, const char *s, int off, int len, void *ud)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mjson
      Src: /src/haproxy/src/mjson.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - s
    - len
    - jp
    - tokptr
    - toklen
    argTypes:
    - char*
    - int
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: mjson_find
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached:
    - mjson
    linkageType: ''
    returnType: enum mjson_tok
    signature: "enum mjson_tok mjson_find(const char *s, int len, const char *jp,\n
      \                         const char **tokptr, int *toklen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mjson_find
      Src: /src/haproxy/src/mjson.c:274,1
    - Dst: mystrtod
      Src: /src/haproxy/src/mjson.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - s
    - len
    - path
    - v
    argTypes:
    - char*
    - int
    - char*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: mjson_get_number
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached:
    - mystrtod
    - mjson_find
    linkageType: ''
    returnType: int
    signature: int mjson_get_number(const char *s, int len, const char *path, double
      *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mjson_find
      Src: /src/haproxy/src/mjson.c:281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 4
    argNames:
    - s
    - len
    - path
    - v
    argTypes:
    - char*
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 280
    functionDepth: 5
    functionLinenumber: 280
    functionLinenumberEnd: 285
    functionName: mjson_get_bool
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached:
    - mjson_find
    linkageType: ''
    returnType: int
    signature: int mjson_get_bool(const char *s, int len, const char *path, int *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 296
    functionName: mjson_unhex_nimble
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char mjson_unhex_nimble(const char *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mjson_unhex_nimble
      Src: /src/haproxy/src/mjson.c:306,1
    - Dst: mjson_esc
      Src: /src/haproxy/src/mjson.c:309,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 4
    argNames:
    - s
    - len
    - to
    - n
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 320
    functionName: mjson_unescape
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached:
    - mjson_unhex_nimble
    - mjson_esc
    linkageType: ''
    returnType: int
    signature: int mjson_unescape(const char *s, int len, char *to, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mjson_find
      Src: /src/haproxy/src/mjson.c:326,1
    - Dst: mjson_unescape
      Src: /src/haproxy/src/mjson.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - s
    - len
    - path
    - to
    - n
    argTypes:
    - char*
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 5
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: mjson_get_string
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached:
    - mjson_unescape
    - mjson_find
    linkageType: ''
    returnType: int
    signature: "int mjson_get_string(const char *s, int len, const char *path, char
      *to,\n                     int n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mjson_find
      Src: /src/haproxy/src/mjson.c:333,1
    - Dst: mjson_unhex_nimble
      Src: /src/haproxy/src/mjson.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - s
    - len
    - x
    - to
    - n
    argTypes:
    - char*
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 339
    functionName: mjson_get_hex
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached:
    - mjson_unhex_nimble
    - mjson_find
    linkageType: ''
    returnType: int
    signature: int mjson_get_hex(const char *s, int len, const char *x, char *to,
      int n)
  - BBCount: 31
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 70
    argCount: 5
    argNames:
    - tok
    - s
    - 'off'
    - len
    - ud
    argTypes:
    - int
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 402
    functionName: next_cb
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int next_cb(int tok, const char *s, int off, int len, void *ud)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mjson
      Src: /src/haproxy/src/mjson.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - s
    - n
    - 'off'
    - koff
    - klen
    - voff
    - vlen
    - vtype
    argTypes:
    - char*
    - int
    - int
    - int*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 4
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: mjson_next
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached:
    - mjson
    linkageType: ''
    returnType: int
    signature: "int mjson_next(const char *s, int n, int off, int *koff, int *klen,
      int *voff,\n               int *vlen, int *vtype)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    functionName: is_digit
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_digit(int c)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: is_digit
      Src: /src/haproxy/src/mjson.c:428,1
    - Dst: is_digit
      Src: /src/haproxy/src/mjson.c:430,1
    - Dst: is_digit
      Src: /src/haproxy/src/mjson.c:447,1
    - Dst: is_digit
      Src: /src/haproxy/src/mjson.c:464,1
    - Dst: is_digit
      Src: /src/haproxy/src/mjson.c:490,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 81
    argCount: 3
    argNames:
    - str
    - len
    - end
    argTypes:
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 498
    functionName: mystrtod
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 3
    functionsReached:
    - is_digit
    linkageType: ''
    returnType: double
    signature: double mystrtod(const char *str, int len, char **end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: bind_parse_v4v6
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bind_parse_v4v6(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: bind_parse_v6only
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bind_parse_v6only(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: bind_parse_transparent
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bind_parse_transparent(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:69,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-tcp.c:73,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-tcp.c:74,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: bind_parse_cc
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int bind_parse_cc(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: bind_parse_defer_accept
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bind_parse_defer_accept(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: bind_parse_tfo
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bind_parse_tfo(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:109,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-tcp.c:113,1
    - Dst: abs
      Src: /src/haproxy/src/cfgparse-tcp.c:114,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: bind_parse_mss
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    - abs
    linkageType: ''
    returnType: int
    signature: int bind_parse_mss(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:129,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-tcp.c:133,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-tcp.c:134,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:135,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-tcp.c:139,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: bind_parse_tcp_md5sig
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - strdup
    - strlen
    linkageType: ''
    returnType: int
    signature: int bind_parse_tcp_md5sig(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/haproxy/src/cfgparse-tcp.c:155,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-tcp.c:156,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 165
    functionName: bind_parse_tcp_ss
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    - isdigit
    linkageType: ''
    returnType: int
    signature: int bind_parse_tcp_ss(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:176,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-tcp.c:180,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:182,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:187,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 198
    functionName: bind_parse_tcp_ut
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: int bind_parse_tcp_ut(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:206,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-tcp.c:210,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-tcp.c:211,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: bind_parse_interface
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int bind_parse_interface(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:227,1
    - Dst: netns_store_insert
      Src: /src/haproxy/src/cfgparse-tcp.c:235,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-tcp.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 243
    functionName: bind_parse_namespace
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - ha_alert
    - memprintf
    - netns_store_insert
    linkageType: ''
    returnType: int
    signature: int bind_parse_namespace(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:251,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-tcp.c:255,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-tcp.c:256,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 262
    functionName: srv_parse_cc
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_parse_cc(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:270,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-tcp.c:275,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-tcp.c:276,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:277,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-tcp.c:281,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 288
    functionName: srv_parse_tcp_md5sig
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - strdup
    - strlen
    linkageType: ''
    returnType: int
    signature: int srv_parse_tcp_md5sig(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:299,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-tcp.c:303,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:305,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:310,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 323
    functionName: srv_parse_tcp_ut
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: int srv_parse_tcp_ut(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/uri_auth.c:35,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/uri_auth.c:38,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/uri_auth.c:39,1
    - Dst: stats_uri_auth_take
      Src: /src/haproxy/src/uri_auth.c:40,1
    - Dst: strlen
      Src: /src/haproxy/src/uri_auth.c:45,1
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:46,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:57,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct uri_auth**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: stats_check_init_uri_auth
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - calloc
    - stats_uri_auth_take
    - free
    - strlen
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: struct uri_auth
    signature: struct uri_auth *stats_check_init_uri_auth(struct uri_auth **root)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/uri_auth.c:72,1
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:73,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:76,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:79,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - root
    - uri
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 88
    functionName: stats_set_uri
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - stats_check_init_uri_auth
    - strdup
    - free
    - strlen
    linkageType: ''
    returnType: struct uri_auth
    signature: struct uri_auth *stats_set_uri(struct uri_auth **root, char *uri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:99,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:102,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:105,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - root
    - realm
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: stats_set_realm
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - stats_check_init_uri_auth
    - free
    - strdup
    linkageType: ''
    returnType: struct uri_auth
    signature: struct uri_auth *stats_set_realm(struct uri_auth **root, char *realm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:126,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:131,1
    - Dst: stats_set_flag
      Src: /src/haproxy/src/uri_auth.c:134,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:138,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - root
    - name
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 148
    functionName: stats_set_node
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - stats_check_init_uri_auth
    - free
    - stats_set_flag
    - strdup
    linkageType: ''
    returnType: struct uri_auth
    signature: struct uri_auth *stats_set_node(struct uri_auth **root, char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:161,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:166,1
    - Dst: stats_set_flag
      Src: /src/haproxy/src/uri_auth.c:169,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:173,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:180,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - root
    - desc
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 183
    functionName: stats_set_desc
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - stats_check_init_uri_auth
    - free
    - stats_set_flag
    - strdup
    linkageType: ''
    returnType: struct uri_auth
    signature: struct uri_auth *stats_set_desc(struct uri_auth **root, char *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - root
    - interval
    argTypes:
    - struct uri_auth**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: stats_set_refresh
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - stats_check_init_uri_auth
    linkageType: ''
    returnType: struct uri_auth
    signature: struct uri_auth *stats_set_refresh(struct uri_auth **root, int interval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - root
    - flag
    argTypes:
    - struct uri_auth**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: stats_set_flag
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 2
    functionsReached:
    - stats_check_init_uri_auth
    linkageType: ''
    returnType: struct uri_auth
    signature: struct uri_auth *stats_set_flag(struct uri_auth **root, int flag)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/uri_auth.c:222,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:229,1
    - Dst: calloc
      Src: /src/haproxy/src/uri_auth.c:233,1
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:239,1
    - Dst: strcmp
      Src: /src/haproxy/src/uri_auth.c:245,1
    - Dst: ha_warning
      Src: /src/haproxy/src/uri_auth.c:246,1
    - Dst: calloc
      Src: /src/haproxy/src/uri_auth.c:251,1
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:255,1
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:259,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:269,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:270,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:274,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:275,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:277,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 2
    argNames:
    - root
    - user
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 281
    functionName: stats_add_auth
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - stats_check_init_uri_auth
    - calloc
    - strcmp
    - strchr
    - free
    - ha_warning
    - strdup
    linkageType: ''
    returnType: struct uri_auth
    signature: struct uri_auth *stats_add_auth(struct uri_auth **root, char *user)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:295,1
    - Dst: strcmp
      Src: /src/haproxy/src/uri_auth.c:300,1
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:306,1
    - Dst: calloc
      Src: /src/haproxy/src/uri_auth.c:309,1
    - Dst: strlen
      Src: /src/haproxy/src/uri_auth.c:313,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:319,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:322,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - root
    - scope
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 327
    functionName: stats_add_scope
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - stats_check_init_uri_auth
    - calloc
    - strcmp
    - free
    - strdup
    - strlen
    linkageType: ''
    returnType: struct uri_auth
    signature: struct uri_auth *stats_add_scope(struct uri_auth **root, char *scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:334,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:335,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:336,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:337,1
    - Dst: userlist_free
      Src: /src/haproxy/src/uri_auth.c:339,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/uri_auth.c:340,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/uri_auth.c:341,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/uri_auth.c:342,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/uri_auth.c:343,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:344,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:351,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:352,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - uri_auth
    argTypes:
    - struct uri_auth*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 356
    functionName: stats_uri_auth_free
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - free
    - free_act_rules
    - free_acl_cond
    - userlist_free
    linkageType: ''
    returnType: void
    signature: void stats_uri_auth_free(struct uri_auth *uri_auth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/uri_auth.c:362,1
    - Dst: stats_uri_auth_free
      Src: /src/haproxy/src/uri_auth.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - uri_auth
    argTypes:
    - struct uri_auth*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 364
    functionName: stats_uri_auth_drop
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_SUB_FETCH
    - stats_uri_auth_free
    linkageType: ''
    returnType: void
    signature: void stats_uri_auth_drop(struct uri_auth *uri_auth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/uri_auth.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - uri_auth
    argTypes:
    - struct uri_auth*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 371
    functionName: stats_uri_auth_take
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void stats_uri_auth_take(struct uri_auth *uri_auth)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct act_rule*::check_ptr
      Src: /src/haproxy/src/action.c:38,1
    - Dst: ha_alert
      Src: /src/haproxy/src/action.c:39,1
    - Dst: warnif_tcp_http_cond
      Src: /src/haproxy/src/action.c:42,1
    - Dst: ha_free
      Src: /src/haproxy/src/action.c:43,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/action.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - rules
    - px
    - err_code
    argTypes:
    - struct list*
    - struct proxy*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 54
    functionName: check_action_rules
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - ha_free
    - EXEC_CTX_MAKE
    - ha_alert
    - warnif_tcp_http_cond
    - struct act_rule*::check_ptr
    linkageType: ''
    returnType: int
    signature: int check_action_rules(struct list *rules, struct proxy *px, int *err_code)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_ptr
      Src: /src/haproxy/src/action.c:38,1
    - Dst: ha_alert
      Src: /src/haproxy/src/action.c:39,1
    - Dst: warnif_tcp_http_cond
      Src: /src/haproxy/src/action.c:42,1
    - Dst: ha_free
      Src: /src/haproxy/src/action.c:43,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/action.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 15
    functionsReached:
    - ha_free
    - EXEC_CTX_MAKE
    - ha_alert
    - check_ptr
    - warnif_tcp_http_cond
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(rule, rules, list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/action.c:67,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:72,1
    - Dst: stktable_compatible_sample
      Src: /src/haproxy/src/action.c:78,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:79,1
    - Dst: in_proxies_list
      Src: /src/haproxy/src/action.c:85,1
    - Dst: free
      Src: /src/haproxy/src/action.c:89,1
    - Dst: ha_warning
      Src: /src/haproxy/src/action.c:99,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/action.c:103,1
    - Dst: ha_warning
      Src: /src/haproxy/src/action.c:116,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/action.c:119,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 124
    functionName: check_trk_action
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - stktable_compatible_sample
    - memprintf
    - proxy_type_str
    - in_proxies_list
    - stktable_find_by_name
    - free
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int check_trk_action(struct act_rule *rule, struct proxy *px, char
      **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/action.c:136,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/action.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: check_capture
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int check_capture(struct act_rule *rule, struct proxy *px, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_stream
      Src: /src/haproxy/src/action.c:153,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/action.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - requester
    - counters
    argTypes:
    - struct resolv_requester*
    - struct dns_counters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 160
    functionName: act_resolution_cb
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - objt_stream
    linkageType: ''
    returnType: int
    signature: int act_resolution_cb(struct resolv_requester *requester, struct dns_counters
      *counters)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_stream
      Src: /src/haproxy/src/action.c:175,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/action.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - requester
    - error_code
    argTypes:
    - struct resolv_requester*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 182
    functionName: act_resolution_error_cb
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - objt_stream
    linkageType: ''
    returnType: int
    signature: int act_resolution_error_cb(struct resolv_requester *requester, int
      error_code)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/action.c:199,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:201,1
    - Dst: strcmp
      Src: /src/haproxy/src/action.c:206,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:208,1
    - Dst: strcmp
      Src: /src/haproxy/src/action.c:213,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:215,1
    - Dst: strcmp
      Src: /src/haproxy/src/action.c:220,1
    - Dst: strcmp
      Src: /src/haproxy/src/action.c:223,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:225,1
    - Dst: strcmp
      Src: /src/haproxy/src/action.c:230,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:232,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:238,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/action.c:244,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:246,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:251,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/action.c:257,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:260,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:266,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 5
    argNames:
    - args
    - idx
    - rule
    - px
    - err
    argTypes:
    - char**
    - int
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 272
    functionName: cfg_parse_rule_set_timeout
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - sample_parse_expr
    - memprintf
    - strcmp
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_rule_set_timeout(const char **args, int idx, struct
      act_rule *rule,\n\t\t\t       struct proxy *px, char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/action.c:292,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/action.c:295,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/action.c:296,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/action.c:306,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/action.c:307,1
    - Dst: strlen
      Src: /src/haproxy/src/action.c:320,1
    - Dst: strlen
      Src: /src/haproxy/src/action.c:321,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - word
    - keywords
    - extra
    argTypes:
    - char*
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 325
    functionName: action_suggest
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - word_fingerprint_distance
    - make_word_fingerprint
    - strlen
    linkageType: ''
    returnType: char
    signature: char *action_suggest(const char *word, const struct list *keywords,
      const char **extra)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/action.c:295,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/action.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 15
    functionsReached:
    - word_fingerprint_distance
    - make_word_fingerprint
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(kwl, keywords, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/action.c:335,1
    - Dst: strdup
      Src: /src/haproxy/src/action.c:339,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/action.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - from
    - file
    - linenum
    argTypes:
    - enum act_from
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 343
    functionName: new_act_rule
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - calloc
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: struct act_rule
    signature: struct act_rule *new_act_rule(enum act_from from, const char *file,
      int linenum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/action.c:348,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/action.c:349,1
    - Dst: struct act_rule*::release_ptr
      Src: /src/haproxy/src/action.c:351,1
    - Dst: free
      Src: /src/haproxy/src/action.c:352,1
    - Dst: free
      Src: /src/haproxy/src/action.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 354
    functionName: free_act_rule
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - free_acl_cond
    - free
    - struct act_rule*::release_ptr
    linkageType: ''
    returnType: void
    signature: void free_act_rule(struct act_rule *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_act_rule
      Src: /src/haproxy/src/action.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rules
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: free_act_rules
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 1
    functionsReached:
    - free_act_rule
    linkageType: ''
    returnType: void
    signature: void free_act_rules(struct list *rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_act_rule
      Src: /src/haproxy/src/action.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 362
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 6
    functionsReached:
    - free_act_rule
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(rule, ruleb, rules, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strordered
      Src: /src/haproxy/src/action.c:378,1
    - Dst: printf
      Src: /src/haproxy/src/action.c:385,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - rules
    - pfx
    argTypes:
    - struct list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 388
    functionName: dump_act_rules
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - printf
    - strordered
    linkageType: ''
    returnType: void
    signature: void dump_act_rules(const struct list *rules, const char *pfx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strordered
      Src: /src/haproxy/src/action.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 382
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 15
    functionsReached:
    - strordered
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(akwl, rules, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/action.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - head
    - kw_list
    argTypes:
    - struct list*
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 409
    functionName: act_add_list
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void act_add_list(struct list *head, struct action_kw_list *kw_list)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/http.c:380,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:382,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:383,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:384,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:385,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:386,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:387,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:388,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:389,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 391
    functionName: find_http_meth
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 2
    functionsReached:
    - ist2
    - isteq
    linkageType: ''
    returnType: enum http_meth_t
    signature: enum http_meth_t find_http_meth(const char *str, const int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 419
    functionName: http_get_status_idx
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int http_get_status_idx(unsigned int status)
  - BBCount: 76
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 154
    argCount: 1
    argNames:
    - status
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 505
    functionName: http_get_reason
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *http_get_reason(unsigned int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/http.c:517,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http.c:518,1
    - Dst: ha_bit_set
      Src: /src/haproxy/src/http.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - array
    - low
    - high
    argTypes:
    - long*
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 522
    functionName: http_status_add_range
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 0
    functionsReached:
    - ha_bit_set
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void http_status_add_range(long *array, uint low, uint high)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/http.c:534,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http.c:535,1
    - Dst: ha_bit_clr
      Src: /src/haproxy/src/http.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - array
    - low
    - high
    argTypes:
    - long*
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 539
    functionName: http_status_del_range
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 0
    functionsReached:
    - ha_bit_clr
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void http_status_del_range(long *array, uint low, uint high)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: istptr
      Src: /src/haproxy/src/http.c:550,1
    - Dst: istend
      Src: /src/haproxy/src/http.c:551,1
    - Dst: isdigit
      Src: /src/haproxy/src/http.c:552,1
    - Dst: likely
      Src: /src/haproxy/src/http.c:555,1
    - Dst: isttrim
      Src: /src/haproxy/src/http.c:558,1
    - Dst: istnext
      Src: /src/haproxy/src/http.c:560,1
    - Dst: ist2
      Src: /src/haproxy/src/http.c:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - host
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 561
    functionName: http_get_host_port
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - ist2
    - isttrim
    - istend
    - likely
    - isdigit
    - istnext
    - istptr
    linkageType: ''
    returnType: struct ist
    signature: struct ist http_get_host_port(const struct ist host)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/http.c:570,1
    - Dst: isttest
      Src: /src/haproxy/src/http.c:573,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:574,1
    - Dst: ist
      Src: /src/haproxy/src/http.c:574,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:574,1
    - Dst: ist
      Src: /src/haproxy/src/http.c:574,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:576,1
    - Dst: ist
      Src: /src/haproxy/src/http.c:576,1
    - Dst: isteqi
      Src: /src/haproxy/src/http.c:576,1
    - Dst: ist
      Src: /src/haproxy/src/http.c:576,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:577,1
    - Dst: ist
      Src: /src/haproxy/src/http.c:577,1
    - Dst: isteqi
      Src: /src/haproxy/src/http.c:577,1
    - Dst: ist
      Src: /src/haproxy/src/http.c:577,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - schm
    - port
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 578
    functionName: http_is_default_port
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - isteqi
    - ist
    - isteq
    - istlen
    - isttest
    linkageType: ''
    returnType: int
    signature: int http_is_default_port(const struct ist schm, const struct ist port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/http.c:590,1
    - Dst: unlikely
      Src: /src/haproxy/src/http.c:593,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 11
    argCount: 1
    argNames:
    - schm
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 601
    functionName: http_validate_scheme
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - unlikely
    - likely
    linkageType: ''
    returnType: int
    signature: int http_validate_scheme(const struct ist schm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: istptr
      Src: /src/haproxy/src/http.c:619,1
    - Dst: istend
      Src: /src/haproxy/src/http.c:620,1
    - Dst: isalpha
      Src: /src/haproxy/src/http.c:622,1
    - Dst: isalnum
      Src: /src/haproxy/src/http.c:632,1
    - Dst: ist2
      Src: /src/haproxy/src/http.c:645,1
    - Dst: ist2
      Src: /src/haproxy/src/http.c:647,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 1
    argNames:
    - parser
    argTypes:
    - struct http_uri_parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 652
    functionName: http_parse_scheme
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - ist2
    - istend
    - istptr
    - isalpha
    - isalnum
    linkageType: ''
    returnType: struct ist
    signature: struct ist http_parse_scheme(struct http_uri_parser *parser)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: http_parse_scheme
      Src: /src/haproxy/src/http.c:673,1
    - Dst: istptr
      Src: /src/haproxy/src/http.c:675,1
    - Dst: istend
      Src: /src/haproxy/src/http.c:676,1
    - Dst: ist2
      Src: /src/haproxy/src/http.c:686,1
    - Dst: ist2
      Src: /src/haproxy/src/http.c:688,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - parser
    - no_userinfo
    argTypes:
    - struct http_uri_parser*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 693
    functionName: http_parse_authority
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - ist2
    - http_parse_scheme
    - istend
    - istptr
    linkageType: ''
    returnType: struct ist
    signature: struct ist http_parse_authority(struct http_uri_parser *parser, int
      no_userinfo)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: istptr
      Src: /src/haproxy/src/http.c:714,1
    - Dst: istend
      Src: /src/haproxy/src/http.c:715,1
    - Dst: isttest
      Src: /src/haproxy/src/http.c:726,1
    - Dst: http_parse_scheme
      Src: /src/haproxy/src/http.c:726,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/http.c:731,1
    - Dst: istptr
      Src: /src/haproxy/src/http.c:733,1
    - Dst: ist2
      Src: /src/haproxy/src/http.c:740,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - parser
    argTypes:
    - struct http_uri_parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 745
    functionName: http_parse_path
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 6
    functionsReached:
    - http_parse_scheme
    - ist2
    - istend
    - http_parse_authority
    - istptr
    - isttest
    linkageType: ''
    returnType: struct ist
    signature: struct ist http_parse_path(struct http_uri_parser *parser)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/http.c:780,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/http.c:780,1
    - Dst: unlikely
      Src: /src/haproxy/src/http.c:788,1
    - Dst: unlikely
      Src: /src/haproxy/src/http.c:790,1
    - Dst: unlikely
      Src: /src/haproxy/src/http.c:795,1
    - Dst: unlikely
      Src: /src/haproxy/src/http.c:802,1
    - Dst: unlikely
      Src: /src/haproxy/src/http.c:805,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/http.c:815,1
    - Dst: unlikely
      Src: /src/haproxy/src/http.c:816,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 54
    argCount: 3
    argNames:
    - value
    - body_len
    - not_first
    argTypes:
    - struct ist*
    - unsigned long long*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 849
    functionName: http_parse_cont_len_header
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - unlikely
    - HTTP_IS_LWS
    linkageType: ''
    returnType: int
    signature: "int http_parse_cont_len_header(struct ist *value, unsigned long long
      *body_len,\n                               int not_first)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/haproxy/src/http.c:867,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:870,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - hdr
    - end
    - name
    - len
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 875
    functionName: http_header_match2
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - strncasecmp
    - HTTP_IS_SPHT
    linkageType: ''
    returnType: int
    signature: "int http_header_match2(const char *hdr, const char *end,\n\t\t       const
      char *name, int len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 913
    functionName: http_find_hdr_value_end
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *http_find_hdr_value_end(char *s, const char *e)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 935
    functionName: http_find_cookie_value_end
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *http_find_cookie_value_end(char *s, const char *e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:963,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:974,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:987,1
    - Dst: http_find_cookie_value_end
      Src: /src/haproxy/src/http.c:991,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:995,1
    - Dst: memcmp
      Src: /src/haproxy/src/http.c:1017,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 36
    argCount: 7
    argNames:
    - hdr
    - hdr_end
    - cookie_name
    - cookie_name_l
    - list
    - value
    - value_l
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    - int
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 1030
    functionName: http_extract_cookie_value
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 3
    functionsReached:
    - memcmp
    - HTTP_IS_SPHT
    - http_find_cookie_value_end
    linkageType: ''
    returnType: char
    signature: "char *http_extract_cookie_value(char *hdr, const char *hdr_end,\n
      \                               char *cookie_name, size_t cookie_name_l,\n                                int
      list, char **value, size_t *value_l)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1060,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1071,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1084,1
    - Dst: http_find_cookie_value_end
      Src: /src/haproxy/src/http.c:1088,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 31
    argCount: 5
    argNames:
    - hdr_beg
    - hdr_end
    - is_req
    - ptr
    - len
    argTypes:
    - char*
    - char*
    - int
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1120
    functionName: http_extract_next_cookie_name
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 2
    functionsReached:
    - HTTP_IS_SPHT
    - http_find_cookie_value_end
    linkageType: ''
    returnType: char
    signature: "char *http_extract_next_cookie_name(char *hdr_beg, char *hdr_end,
      int is_req,\n                                    char **ptr, size_t *len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/haproxy/src/http.c:1131,1
    - Dst: isdigit
      Src: /src/haproxy/src/http.c:1138,1
    - Dst: isdigit
      Src: /src/haproxy/src/http.c:1142,1
    - Dst: isdigit
      Src: /src/haproxy/src/http.c:1146,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - qvalue
    - end
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1155
    functionName: http_parse_qvalue
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 2
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: int
    signature: int http_parse_qvalue(const char *qvalue, const char **end)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fix_pointer_if_wrap
      Src: /src/haproxy/src/http.c:1182,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http.c:1208,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http.c:1209,1
    - Dst: memcmp
      Src: /src/haproxy/src/http.c:1213,1
    - Dst: memcmp
      Src: /src/haproxy/src/http.c:1214,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http.c:1226,1
    - Dst: memcmp
      Src: /src/haproxy/src/http.c:1229,1
    - Dst: fix_pointer_if_wrap
      Src: /src/haproxy/src/http.c:1233,1
    - Dst: http_is_param_delimiter
      Src: /src/haproxy/src/http.c:1240,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 57
    argCount: 5
    argNames:
    - chunks
    - url_param_name
    - url_param_name_l
    - delim
    - insensitive
    argTypes:
    - char**
    - char*
    - size_t
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1254
    functionName: http_find_url_param_pos
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 0
    functionsReached:
    - fix_pointer_if_wrap
    - http_is_param_delimiter
    - strncasecmp
    - memcmp
    linkageType: ''
    returnType: char
    signature: "char *http_find_url_param_pos(const char **chunks,\n                                    const
      char* url_param_name, size_t url_param_name_l,\n                                    char
      delim, char insensitive)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: http_find_url_param_pos
      Src: /src/haproxy/src/http.c:1274,1
    - Dst: memchr
      Src: /src/haproxy/src/http.c:1287,1
    - Dst: fix_pointer_if_wrap
      Src: /src/haproxy/src/http.c:1308,1
    - Dst: http_is_param_delimiter
      Src: /src/haproxy/src/http.c:1321,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 7
    argNames:
    - chunks
    - url_param_name
    - url_param_name_l
    - vstart
    - vend
    - delim
    - insensitive
    argTypes:
    - char**
    - char*
    - size_t
    - char**
    - char**
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1263
    functionDepth: 2
    functionLinenumber: 1263
    functionLinenumberEnd: 1339
    functionName: http_find_next_url_param
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 2
    functionsReached:
    - http_is_param_delimiter
    - fix_pointer_if_wrap
    - memchr
    - http_find_url_param_pos
    linkageType: ''
    returnType: int
    signature: "int http_find_next_url_param(const char **chunks,\n                             const
      char* url_param_name, size_t url_param_name_l,\n                             const
      char **vstart, const char **vend, char delim, char insensitive)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1352,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/http.c:1356,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1360,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1362,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - hdr
    - name
    - value
    argTypes:
    - struct ist
    - struct ist*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1344
    functionDepth: 1
    functionLinenumber: 1344
    functionLinenumberEnd: 1369
    functionName: http_parse_header
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - HTTP_IS_TOKEN
    - HTTP_IS_SPHT
    linkageType: ''
    returnType: int
    signature: int http_parse_header(const struct ist hdr, struct ist *name, struct
      ist *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1382,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/http.c:1386,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1390,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1394,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1398,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - line
    - p1
    - p2
    - p3
    argTypes:
    - struct ist
    - struct ist*
    - struct ist*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1405
    functionName: http_parse_stline
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - HTTP_IS_TOKEN
    - HTTP_IS_SPHT
    linkageType: ''
    returnType: int
    signature: int http_parse_stline(const struct ist line, struct ist *p1, struct
      ist *p2, struct ist *p3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1420,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/http.c:1424,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1428,1
    - Dst: strl2ui
      Src: /src/haproxy/src/http.c:1434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - value
    - status
    - reason
    argTypes:
    - struct ist
    - struct ist*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1436
    functionName: http_parse_status_val
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - strl2ui
    - HTTP_IS_TOKEN
    - HTTP_IS_SPHT
    linkageType: ''
    returnType: int
    signature: int http_parse_status_val(const struct ist value, struct ist *status,
      struct ist *reason)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_get_etag_type
      Src: /src/haproxy/src/http.c:1449,1
    - Dst: http_get_etag_type
      Src: /src/haproxy/src/http.c:1450,1
    - Dst: istadv
      Src: /src/haproxy/src/http.c:1457,1
    - Dst: istadv
      Src: /src/haproxy/src/http.c:1459,1
    - Dst: isteq
      Src: /src/haproxy/src/http.c:1461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - etag1
    - etag2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1462
    functionName: http_compare_etags
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - http_get_etag_type
    - isteq
    - istadv
    linkageType: ''
    returnType: int
    signature: int http_compare_etags(struct ist etag1, struct ist etag2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1469
    functionDepth: 1
    functionLinenumber: 1469
    functionLinenumberEnd: 1479
    functionName: http_trim_leading_spht
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 1
    functionsReached:
    - HTTP_IS_SPHT
    linkageType: ''
    returnType: struct ist
    signature: struct ist http_trim_leading_spht(struct ist value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http.c:1489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1493
    functionName: http_trim_trailing_spht
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 0
    functionsReached:
    - HTTP_IS_SPHT
    linkageType: ''
    returnType: struct ist
    signature: struct ist http_trim_trailing_spht(struct ist value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_status_add_range
      Src: /src/haproxy/src/http.c:1499,1
    - Dst: http_status_add_range
      Src: /src/haproxy/src/http.c:1500,1
    - Dst: http_status_del_range
      Src: /src/haproxy/src/http.c:1501,1
    - Dst: http_status_del_range
      Src: /src/haproxy/src/http.c:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1496
    functionDepth: 2
    functionLinenumber: 1496
    functionLinenumberEnd: 1503
    functionName: _http_init
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 0
    functionsReached:
    - http_status_del_range
    - http_status_add_range
    linkageType: ''
    returnType: void
    signature: void _http_init()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/http.c:1521,1
    - Dst: strcmp
      Src: /src/haproxy/src/http.c:1523,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/http.c:1526,1
    - Dst: memprintf
      Src: /src/haproxy/src/http.c:1529,1
    - Dst: strlen
      Src: /src/haproxy/src/http.c:1549,1
    - Dst: read_uint
      Src: /src/haproxy/src/http.c:1550,1
    - Dst: read_uint
      Src: /src/haproxy/src/http.c:1558,1
    - Dst: memprintf
      Src: /src/haproxy/src/http.c:1566,1
    - Dst: memset
      Src: /src/haproxy/src/http.c:1573,1
    - Dst: http_status_add_range
      Src: /src/haproxy/src/http.c:1575,1
    - Dst: http_status_del_range
      Src: /src/haproxy/src/http.c:1577,1
    - Dst: memprintf
      Src: /src/haproxy/src/http.c:1589,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 72
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1511
    functionDepth: 2
    functionLinenumber: 1511
    functionLinenumberEnd: 1593
    functionName: http_parse_http_err_fail_codes
    functionSourceFile: /src/haproxy/src/http.c
    functionUses: 0
    functionsReached:
    - memprintf
    - memset
    - read_uint
    - http_status_add_range
    - strcmp
    - http_status_del_range
    - ABORT_NOW
    - strlen
    linkageType: ''
    returnType: int
    signature: "int http_parse_http_err_fail_codes(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t  const struct proxy *defpx, const char *file,
      int line,\n\t\t\t\t\t  char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/src/quic_sock.c:63,1
    - Dst: is_addr
      Src: /src/haproxy/src/quic_sock.c:65,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:70,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - conn
    - addr
    - len
    argTypes:
    - struct connection*
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 79
    functionName: quic_sock_get_src
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - is_addr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int quic_sock_get_src(struct connection *conn, struct sockaddr *addr,
      socklen_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/src/quic_sock.c:90,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:94,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:102,1
    - Dst: is_addr
      Src: /src/haproxy/src/quic_sock.c:103,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - conn
    - addr
    - len
    argTypes:
    - struct connection*
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 109
    functionName: quic_sock_get_dst
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - is_addr
    - BUG_ON
    - memcpy
    linkageType: ''
    returnType: int
    signature: int quic_sock_get_dst(struct connection *conn, struct sockaddr *addr,
      socklen_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/quic_sock.c:122,1
    - Dst: conn_new
      Src: /src/haproxy/src/quic_sock.c:122,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/quic_sock.c:125,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/quic_sock.c:138,1
    - Dst: conn_xprt_close
      Src: /src/haproxy/src/quic_sock.c:139,1
    - Dst: conn_free
      Src: /src/haproxy/src/quic_sock.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - qc
    - l
    - saddr
    argTypes:
    - struct quic_conn*
    - struct listener*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: new_quic_cli_conn
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sockaddr_alloc
    - conn_free
    - conn_new
    - conn_xprt_close
    - conn_stop_tracking
    linkageType: ''
    returnType: int
    signature: "int new_quic_cli_conn(struct quic_conn *qc, struct listener *l,\n
      \                            struct sockaddr_storage *saddr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: quic_sock_accepting_conn
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_sock_accepting_conn(const struct receiver *rx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/quic_sock.c:163,1
    - Dst: new_quic_cli_conn
      Src: /src/haproxy/src/quic_sock.c:167,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:174,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_sock.c:175,1
    - Dst: MT_LIST_INSERT
      Src: /src/haproxy/src/quic_sock.c:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - l
    - status
    argTypes:
    - struct listener*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 188
    functionName: quic_sock_accept_conn
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - MT_LIST_POP
    - HA_ATOMIC_DEC
    - MT_LIST_INSERT
    - new_quic_cli_conn
    linkageType: ''
    returnType: struct connection
    signature: struct connection *quic_sock_accept_conn(struct listener *l, int *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_sock.c:198,1
    - Dst: mpring_read_begin
      Src: /src/haproxy/src/quic_sock.c:200,1
    - Dst: quic_dgram_parse
      Src: /src/haproxy/src/quic_sock.c:206,1
    - Dst: mpring_read_end
      Src: /src/haproxy/src/quic_sock.c:207,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_sock.c:211,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_sock.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 218
    functionName: quic_lstnr_dghdlr
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - quic_dgram_parse
    - mpring_read_begin
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - mpring_read_end
    linkageType: ''
    returnType: struct task
    signature: struct task *quic_lstnr_dghdlr(struct task *t, void *ctx, unsigned
      int state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_sock.c:231,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_sock.c:235,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_sock.c:255,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_sock.c:259,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - start
    - end
    - dcid_off
    - dcid_len
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 261
    functionName: quic_get_dgram_dcid
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: "int quic_get_dgram_dcid(unsigned char *start, const unsigned char
      *end,\n                               size_t *dcid_off, size_t *dcid_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_sock.c:270,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/quic_sock.c:270,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/quic_sock.c:271,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:279,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 8
    argNames:
    - dgram
    - pos
    - len
    - owner
    - dcid_off
    - dcid_len
    - saddr
    - daddr
    argTypes:
    - struct quic_dgram*
    - unsigned char*
    - size_t
    - void*
    - size_t
    - size_t
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 283
    functionName: quic_dgram_init
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - is_inet_addr
    - BUG_ON_HOT
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void quic_dgram_init(struct quic_dgram *dgram,\n                            unsigned
      char *pos, size_t len, void *owner,\n                            size_t dcid_off,
      size_t dcid_len,\n                            struct sockaddr_storage *saddr,\n
      \                           struct sockaddr_storage *daddr)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:315,1
    - Dst: memset
      Src: /src/haproxy/src/quic_sock.c:324,1
    - Dst: clear_addr
      Src: /src/haproxy/src/quic_sock.c:332,1
    - Dst: recvmsg
      Src: /src/haproxy/src/quic_sock.c:335,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_sock.c:345,1
    - Dst: port_is_restricted
      Src: /src/haproxy/src/quic_sock.c:345,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/quic_sock.c:350,1
    - Dst: CMSG_NXTHDR
      Src: /src/haproxy/src/quic_sock.c:350,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:356,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:367,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:382,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:386,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 9
    argNames:
    - fd
    - out
    - len
    - from
    - from_len
    - to
    - to_len
    - dst_port
    - check_port
    argTypes:
    - int
    - void*
    - size_t
    - struct sockaddr*
    - socklen_t
    - struct sockaddr*
    - socklen_t
    - uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 397
    functionName: quic_recv
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memset
    - memcpy
    - port_is_restricted
    - CMSG_NXTHDR
    - CMSG_FIRSTHDR
    - recvmsg
    - CMSG_SPACE
    - CMSG_DATA
    - clear_addr
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t quic_recv(int fd, void *out, size_t len,\n                         struct
      sockaddr *from, socklen_t from_len,\n                         struct sockaddr
      *to, socklen_t to_len,\n                         uint16_t dst_port, int check_port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpring_write_reserve
      Src: /src/haproxy/src/quic_sock.c:415,1
    - Dst: quic_dgram_init
      Src: /src/haproxy/src/quic_sock.c:420,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:423,1
    - Dst: mpring_write_commit
      Src: /src/haproxy/src/quic_sock.c:426,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_sock.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 8
    argNames:
    - pos
    - len
    - owner
    - dcid_off
    - dcid_len
    - saddr
    - daddr
    - cid_tid
    argTypes:
    - unsigned char*
    - size_t
    - void*
    - size_t
    - size_t
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 432
    functionName: quic_dgram_write
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - memcpy
    - tasklet_wakeup
    - mpring_write_commit
    - mpring_write_reserve
    - quic_dgram_init
    linkageType: ''
    returnType: int
    signature: "int quic_dgram_write(unsigned char *pos, size_t len, void *owner,\n
      \                           size_t dcid_off, size_t dcid_len,\n                            struct
      sockaddr_storage *saddr,\n                            struct sockaddr_storage
      *daddr,\n                            unsigned int cid_tid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dgram_write
      Src: /src/haproxy/src/quic_sock.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dgram
    - cid_tid
    argTypes:
    - struct quic_dgram*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 440
    functionName: quic_dgram_requeue
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - quic_dgram_write
    linkageType: ''
    returnType: int
    signature: int quic_dgram_requeue(struct quic_dgram *dgram, int cid_tid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quic_get_cid_tid
      Src: /src/haproxy/src/quic_sock.c:461,1
    - Dst: quic_dgram_write
      Src: /src/haproxy/src/quic_sock.c:472,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_sock.c:479,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_sock.c:480,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 7
    argNames:
    - pos
    - len
    - l
    - dcid_off
    - dcid_len
    - saddr
    - daddr
    argTypes:
    - unsigned char*
    - size_t
    - struct listener*
    - size_t
    - size_t
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 482
    functionName: quic_lstnr_dgram_dispatch
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - EXTRA_COUNTERS_GET
    - quic_get_cid_tid
    - quic_dgram_write
    linkageType: ''
    returnType: int
    signature: "int quic_lstnr_dgram_dispatch(unsigned char *pos, size_t len, struct
      listener *l,\n                                     size_t dcid_off, size_t dcid_len,\n
      \                                    struct sockaddr_storage *saddr,\n                                     struct
      sockaddr_storage *daddr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/src/quic_sock.c:491,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:498,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/quic_sock.c:500,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:506,1
    - Dst: quic_recv
      Src: /src/haproxy/src/quic_sock.c:509,1
    - Dst: get_net_port
      Src: /src/haproxy/src/quic_sock.c:512,1
    - Dst: quic_get_dgram_dcid
      Src: /src/haproxy/src/quic_sock.c:516,1
    - Dst: quic_lstnr_dgram_dispatch
      Src: /src/haproxy/src/quic_sock.c:517,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 487
    functionDepth: 4
    functionLinenumber: 487
    functionLinenumberEnd: 521
    functionName: quic_lstnr_sock_fd_iocb
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - quic_lstnr_dgram_dispatch
    - fd_recv_ready
    - quic_get_dgram_dcid
    - get_net_port
    - quic_recv
    - objt_listener
    linkageType: ''
    returnType: void
    signature: void quic_lstnr_sock_fd_iocb(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_sock.c:528,1
    - Dst: fd_send_active
      Src: /src/haproxy/src/quic_sock.c:530,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/quic_sock.c:530,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_sock.c:531,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/quic_sock.c:532,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/quic_sock.c:533,1
    - Dst: qc_notify_send
      Src: /src/haproxy/src/quic_sock.c:534,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/quic_sock.c:537,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_sock.c:538,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/quic_sock.c:539,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/quic_sock.c:540,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_sock.c:543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 544
    functionName: quic_conn_sock_fd_iocb
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup_after
    - TRACE_LEAVE
    - fd_send_ready
    - fd_recv_ready
    - TRACE_DEVEL
    - TRACE_ENTER
    - qc_notify_send
    - fd_stop_recv
    - fd_stop_send
    - fd_send_active
    linkageType: ''
    returnType: void
    signature: void quic_conn_sock_fd_iocb(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_sock.c:551,1
    - Dst: fd_send_active
      Src: /src/haproxy/src/quic_sock.c:553,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/quic_sock.c:553,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_sock.c:554,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/quic_sock.c:555,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/quic_sock.c:556,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/quic_sock.c:559,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_sock.c:560,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/quic_sock.c:561,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/quic_sock.c:562,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_sock.c:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 566
    functionName: quic_conn_closed_sock_fd_iocb
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup_after
    - TRACE_LEAVE
    - fd_send_ready
    - fd_recv_ready
    - TRACE_DEVEL
    - TRACE_ENTER
    - fd_stop_recv
    - fd_stop_send
    - fd_send_active
    linkageType: ''
    returnType: void
    signature: void quic_conn_closed_sock_fd_iocb(int fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:603,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/quic_sock.c:606,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/quic_sock.c:606,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/quic_sock.c:608,1
    - Dst: CMSG_NXTHDR
      Src: /src/haproxy/src/quic_sock.c:608,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/quic_sock.c:609,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/quic_sock.c:611,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:618,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:621,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:626,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:626,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:637,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:639,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - msg
    - cmsg
    - saddr
    argTypes:
    - struct msghdr*
    - struct cmsghdr**
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 649
    functionName: cmsg_set_saddr
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CMSG_NXTHDR
    - CMSG_FIRSTHDR
    - CMSG_DATA
    - CMSG_SPACE
    - ASSUME_NONNULL
    - CMSG_LEN
    linkageType: ''
    returnType: void
    signature: "void cmsg_set_saddr(struct msghdr *msg, struct cmsghdr **cmsg,\n                           struct
      sockaddr_storage *saddr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:659,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/quic_sock.c:662,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/quic_sock.c:662,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/quic_sock.c:664,1
    - Dst: CMSG_NXTHDR
      Src: /src/haproxy/src/quic_sock.c:664,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/quic_sock.c:665,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/quic_sock.c:667,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/quic_sock.c:671,1
    - Dst: write_u16
      Src: /src/haproxy/src/quic_sock.c:672,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - msg
    - cmsg
    - gso_size
    argTypes:
    - struct msghdr*
    - struct cmsghdr**
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 674
    functionName: cmsg_set_gso
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - write_u16
    - CMSG_NXTHDR
    - CMSG_FIRSTHDR
    - CMSG_DATA
    - CMSG_SPACE
    - ASSUME_NONNULL
    - CMSG_LEN
    linkageType: ''
    returnType: void
    signature: "void cmsg_set_gso(struct msghdr *msg, struct cmsghdr **cmsg,\n                         uint16_t
      gso_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_sock.c:681,1
    - Dst: is_addr
      Src: /src/haproxy/src/quic_sock.c:689,1
    - Dst: is_addr
      Src: /src/haproxy/src/quic_sock.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 691
    functionName: qc_may_use_saddr
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - is_addr
    - qc_test_fd
    linkageType: ''
    returnType: int
    signature: int qc_may_use_saddr(struct quic_conn *qc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:717,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:717,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:720,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:720,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:722,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:722,1
    - Dst: memset
      Src: /src/haproxy/src/quic_sock.c:734,1
    - Dst: b_peek
      Src: /src/haproxy/src/quic_sock.c:736,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/quic_sock.c:736,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_sock.c:747,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/quic_sock.c:749,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_sock.c:762,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/quic_sock.c:762,1
    - Dst: qc_may_use_saddr
      Src: /src/haproxy/src/quic_sock.c:765,1
    - Dst: cmsg_set_saddr
      Src: /src/haproxy/src/quic_sock.c:767,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_sock.c:773,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_sock.c:773,1
    - Dst: cmsg_set_gso
      Src: /src/haproxy/src/quic_sock.c:777,1
    - Dst: sendmsg
      Src: /src/haproxy/src/quic_sock.c:781,1
    - Dst: qc_fd
      Src: /src/haproxy/src/quic_sock.c:781,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_sock.c:793,1
    - Dst: fd_want_send
      Src: /src/haproxy/src/quic_sock.c:794,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/quic_sock.c:795,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_sock.c:797,1
    - Dst: strerror
      Src: /src/haproxy/src/quic_sock.c:798,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_sock.c:804,1
    - Dst: strerror
      Src: /src/haproxy/src/quic_sock.c:805,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 5
    argNames:
    - qc
    - buf
    - sz
    - flags
    - gso_size
    argTypes:
    - struct quic_conn*
    - struct buffer*
    - size_t
    - int
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 814
    functionName: qc_snd_buf
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - cmsg_set_gso
    - b_peek
    - memset
    - get_addr_len
    - qc_test_fd
    - fd_send_ready
    - cmsg_set_saddr
    - strerror
    - fd_want_send
    - b_head_ofs
    - TRACE_PRINTF
    - CMSG_SPACE
    - b_data
    - fd_cant_send
    - sendmsg
    - BUG_ON_HOT
    - qc_may_use_saddr
    - qc_fd
    linkageType: ''
    returnType: int
    signature: "int qc_snd_buf(struct quic_conn *qc, const struct buffer *buf, size_t
      sz,\n               int flags, uint16_t gso_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:831,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_sock.c:833,1
    - Dst: b_alloc
      Src: /src/haproxy/src/quic_sock.c:837,1
    - Dst: b_reset
      Src: /src/haproxy/src/quic_sock.c:840,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:841,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_sock.c:841,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_sock.c:843,1
    - Dst: quic_recv
      Src: /src/haproxy/src/quic_sock.c:844,1
    - Dst: get_net_port
      Src: /src/haproxy/src/quic_sock.c:847,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/quic_sock.c:853,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_sock.c:856,1
    - Dst: strerror
      Src: /src/haproxy/src/quic_sock.c:857,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_sock.c:864,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_sock.c:866,1
    - Dst: quic_get_dgram_dcid
      Src: /src/haproxy/src/quic_sock.c:868,1
    - Dst: qc_check_dcid
      Src: /src/haproxy/src/quic_sock.c:871,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_sock.c:877,1
    - Dst: quic_lstnr_dgram_dispatch
      Src: /src/haproxy/src/quic_sock.c:879,1
    - Dst: quic_dgram_init
      Src: /src/haproxy/src/quic_sock.c:883,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_sock.c:884,1
    - Dst: quic_dgram_parse
      Src: /src/haproxy/src/quic_sock.c:885,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_sock.c:886,1
    - Dst: b_size
      Src: /src/haproxy/src/quic_sock.c:889,1
    - Dst: b_free
      Src: /src/haproxy/src/quic_sock.c:890,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/quic_sock.c:891,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_sock.c:894,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 820
    functionDepth: 4
    functionLinenumber: 820
    functionLinenumberEnd: 896
    functionName: qc_rcv_buf
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - b_contig_space
    - offer_buffers
    - fd_want_recv
    - strerror
    - get_net_port
    - TRACE_DEVEL
    - b_tail
    - b_alloc
    - TRACE_LEAVE
    - quic_lstnr_dgram_dispatch
    - b_free
    - b_add
    - TRACE_PRINTF
    - b_size
    - quic_dgram_parse
    - __objt_server
    - TRACE_STATE
    - BUG_ON
    - qc_check_dcid
    - quic_get_dgram_dcid
    - quic_recv
    - quic_dgram_init
    - b_reset
    linkageType: ''
    returnType: int
    signature: int qc_rcv_buf(struct quic_conn *qc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:916,1
    - Dst: qc_init_fd
      Src: /src/haproxy/src/quic_sock.c:918,1
    - Dst: socket
      Src: /src/haproxy/src/quic_sock.c:920,1
    - Dst: send_log
      Src: /src/haproxy/src/quic_sock.c:925,1
    - Dst: setsockopt
      Src: /src/haproxy/src/quic_sock.c:931,1
    - Dst: setsockopt
      Src: /src/haproxy/src/quic_sock.c:938,1
    - Dst: setsockopt
      Src: /src/haproxy/src/quic_sock.c:940,1
    - Dst: setsockopt
      Src: /src/haproxy/src/quic_sock.c:945,1
    - Dst: bind
      Src: /src/haproxy/src/quic_sock.c:952,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/quic_sock.c:952,1
    - Dst: send_log
      Src: /src/haproxy/src/quic_sock.c:956,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/quic_sock.c:963,1
    - Dst: connect
      Src: /src/haproxy/src/quic_sock.c:968,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/quic_sock.c:968,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/quic_sock.c:973,1
    - Dst: fd_insert
      Src: /src/haproxy/src/quic_sock.c:974,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/quic_sock.c:975,1
    - Dst: close
      Src: /src/haproxy/src/quic_sock.c:981,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - qc
    - src
    - dst
    argTypes:
    - struct quic_conn*
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 982
    functionName: qc_alloc_fd
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - get_addr_len
    - BUG_ON
    - fd_want_recv
    - close
    - setsockopt
    - fd_set_nonblock
    - bind
    - connect
    - socket
    - send_log
    - qc_init_fd
    - fd_insert
    linkageType: ''
    returnType: void
    signature: "void qc_alloc_fd(struct quic_conn *qc, const struct sockaddr_storage
      *src,\n                 const struct sockaddr_storage *dst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_sock.c:989,1
    - Dst: fd_delete
      Src: /src/haproxy/src/quic_sock.c:990,1
    - Dst: qc_init_fd
      Src: /src/haproxy/src/quic_sock.c:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - qc
    - reinit
    argTypes:
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 996
    functionName: qc_release_fd
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - qc_init_fd
    - qc_test_fd
    linkageType: ''
    returnType: void
    signature: void qc_release_fd(struct quic_conn *qc, int reinit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_sock.c:1003,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/quic_sock.c:1004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1005
    functionName: qc_want_recv
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - qc_test_fd
    - fd_want_recv
    linkageType: ''
    returnType: void
    signature: void qc_want_recv(struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:1021,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:1023,1
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/src/quic_sock.c:1023,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_sock.c:1024,1
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/src/quic_sock.c:1033,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/src/quic_sock.c:1034,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/quic_sock.c:1037,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_sock.c:1040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1041
    functionName: quic_accept_push_qc
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - tasklet_wakeup
    - MT_LIST_INLIST
    - MT_LIST_APPEND
    - HA_ATOMIC_INC
    - MT_LIST_TRY_APPEND
    linkageType: ''
    returnType: void
    signature: void quic_accept_push_qc(struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/quic_sock.c:1052,1
    - Dst: listener_accept
      Src: /src/haproxy/src/quic_sock.c:1053,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/quic_sock.c:1054,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_sock.c:1056,1
    - Dst: mt_list_unlock_self
      Src: /src/haproxy/src/quic_sock.c:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - t
    - ctx
    - i
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1065
    functionName: quic_accept_run
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - listener_accept
    - mt_list_unlock_self
    - tasklet_wakeup
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - MT_LIST_ISEMPTY
    linkageType: ''
    returnType: struct task
    signature: struct task *quic_accept_run(struct task *t, void *ctx, unsigned int
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listener_backlog
      Src: /src/haproxy/src/quic_sock.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1074
    functionName: quic_listener_max_handshake
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - listener_backlog
    linkageType: ''
    returnType: int
    signature: int quic_listener_max_handshake(const struct listener *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listener_backlog
      Src: /src/haproxy/src/quic_sock.c:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1083
    functionName: quic_listener_max_accept
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - listener_backlog
    linkageType: ''
    returnType: int
    signature: int quic_listener_max_accept(const struct listener *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/quic_sock.c:1089,1
    - Dst: ha_alert
      Src: /src/haproxy/src/quic_sock.c:1092,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/quic_sock.c:1098,1
    - Dst: ha_alert
      Src: /src/haproxy/src/quic_sock.c:1099,1
    - Dst: tasklet_set_tid
      Src: /src/haproxy/src/quic_sock.c:1103,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/quic_sock.c:1107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1111
    functionName: quic_alloc_accept_queues
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - calloc
    - tasklet_set_tid
    - tasklet_new
    - MT_LIST_INIT
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int quic_alloc_accept_queues(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_free
      Src: /src/haproxy/src/quic_sock.c:1120,1
    - Dst: free
      Src: /src/haproxy/src/quic_sock.c:1121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1114
    functionDepth: 1
    functionLinenumber: 1114
    functionLinenumberEnd: 1125
    functionName: quic_deallocate_accept_queues
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - free
    - tasklet_free
    linkageType: ''
    returnType: int
    signature: int quic_deallocate_accept_queues(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - struct quic_transport_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: quic_dflt_transport_params_cpy
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_dflt_transport_params_cpy(struct quic_transport_params *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qcm_stream_rx_bufsz
      Src: /src/haproxy/src/quic_tp.c:52,1
    - Dst: MIN
      Src: /src/haproxy/src/quic_tp.c:57,1
    - Dst: quic_dflt_transport_params_cpy
      Src: /src/haproxy/src/quic_tp.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - p
    - server
    argTypes:
    - struct quic_transport_params*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 108
    functionName: quic_transport_params_init
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - qcm_stream_rx_bufsz
    - quic_dflt_transport_params_cpy
    - MIN
    linkageType: ''
    returnType: void
    signature: void quic_transport_params_init(struct quic_transport_params *p, int
      server)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_n16
      Src: /src/haproxy/src/quic_tp.c:120,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:123,1
    - Dst: write_n16
      Src: /src/haproxy/src/quic_tp.c:126,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:129,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:134,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - end
    - addr
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct tp_preferred_address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 140
    functionName: quic_transport_param_enc_pref_addr_val
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - write_n16
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void quic_transport_param_enc_pref_addr_val(unsigned char **buf,\n
      \                                                  const unsigned char *end,\n
      \                                                  struct tp_preferred_address
      *addr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:158,1
    - Dst: read_n16
      Src: /src/haproxy/src/quic_tp.c:161,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:164,1
    - Dst: read_n16
      Src: /src/haproxy/src/quic_tp.c:167,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:177,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - addr
    - buf
    - end
    argTypes:
    - struct tp_preferred_address*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 188
    functionName: quic_transport_param_dec_pref_addr
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - read_n16
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_transport_param_dec_pref_addr(struct tp_preferred_address
      *addr,\n                                              const unsigned char **buf,\n
      \                                             const unsigned char *end)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/src/quic_tp.c:208,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_tp.c:208,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_tp.c:218,1
    - Dst: ntohl
      Src: /src/haproxy/src/quic_tp.c:240,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_tp.c:240,1
    - Dst: ntohl
      Src: /src/haproxy/src/quic_tp.c:247,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_tp.c:247,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 4
    argNames:
    - tp
    - buf
    - end
    - server
    argTypes:
    - struct tp_version_information*
    - unsigned char**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 257
    functionName: quic_transport_param_dec_version_info
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - ntohl
    - read_u32
    linkageType: ''
    returnType: int
    signature: "int quic_transport_param_dec_version_info(struct tp_version_information
      *tp,\n                                                 const unsigned char **buf,\n
      \                                                const unsigned char *end, int
      server)"
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:276,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:286,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:294,1
    - Dst: quic_transport_param_dec_pref_addr
      Src: /src/haproxy/src/quic_tp.c:299,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:304,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:308,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:313,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:317,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:321,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:325,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:329,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:333,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:337,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:342,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:353,1
    - Dst: quic_transport_param_dec_version_info
      Src: /src/haproxy/src/quic_tp.c:357,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:366,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 98
    argCount: 5
    argNames:
    - p
    - server
    - type
    - buf
    - len
    argTypes:
    - struct quic_transport_params*
    - int
    - uint64_t
    - unsigned char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 375
    functionName: quic_transport_param_decode
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_transport_param_dec_pref_addr
    - quic_dec_int
    - memcpy
    - quic_transport_param_dec_version_info
    linkageType: ''
    returnType: int
    signature: "int quic_transport_param_decode(struct quic_transport_params *p, int
      server,\n                            uint64_t type, const unsigned char **buf,
      size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_tp.c:384,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_tp.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - end
    - type
    - len
    argTypes:
    - unsigned char**
    - unsigned char*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 385
    functionName: quic_transport_param_encode_type_len
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_transport_param_encode_type_len(unsigned char **buf,\n                                                const
      unsigned char *end,\n                                                uint64_t
      type, uint64_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:395,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - type
    - len
    - buf
    - end
    argTypes:
    - uint64_t*
    - uint64_t*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 396
    functionName: quic_transport_param_decode_type_len
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_transport_param_decode_type_len(uint64_t *type, uint64_t
      *len,\n                                                const unsigned char **buf,\n
      \                                               const unsigned char *end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quic_transport_param_encode_type_len
      Src: /src/haproxy/src/quic_tp.c:404,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - buf
    - end
    - type
    - param
    - length
    argTypes:
    - unsigned char**
    - unsigned char*
    - uint64_t
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 415
    functionName: quic_transport_param_enc_mem
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_transport_param_encode_type_len
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_transport_param_enc_mem(unsigned char **buf, const unsigned
      char *end,\n                                        uint64_t type, void *param,
      uint64_t length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_tp.c:426,1
    - Dst: quic_transport_param_encode_type_len
      Src: /src/haproxy/src/quic_tp.c:428,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_tp.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - end
    - type
    - val
    argTypes:
    - unsigned char**
    - unsigned char*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 430
    functionName: quic_transport_param_enc_int
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_int_getsize
    - quic_enc_int
    - quic_transport_param_encode_type_len
    linkageType: ''
    returnType: int
    signature: "int quic_transport_param_enc_int(unsigned char **buf,\n                                 const
      unsigned char *end,\n                                 uint64_t type, uint64_t
      val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cid
    argTypes:
    - struct tp_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: sizeof_quic_cid
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sizeof_quic_cid(const struct tp_cid *cid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_quic_cid
      Src: /src/haproxy/src/quic_tp.c:449,1
    - Dst: quic_transport_param_encode_type_len
      Src: /src/haproxy/src/quic_tp.c:452,1
    - Dst: quic_transport_param_enc_pref_addr_val
      Src: /src/haproxy/src/quic_tp.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - end
    - addr
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct tp_preferred_address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 461
    functionName: quic_transport_param_enc_pref_addr
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_transport_param_encode_type_len
    - quic_transport_param_enc_pref_addr_val
    - sizeof_quic_cid
    linkageType: ''
    returnType: int
    signature: "int quic_transport_param_enc_pref_addr(unsigned char **buf,\n                                              const
      unsigned char *end,\n                                              struct tp_preferred_address
      *addr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quic_transport_param_encode_type_len
      Src: /src/haproxy/src/quic_tp.c:477,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tp.c:486,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:487,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tp.c:492,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:493,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tp.c:498,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:499,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tp.c:501,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:502,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tp.c:504,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - buf
    - end
    - chosen_version
    - server
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_version*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 510
    functionName: quic_transport_param_enc_version_info
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_transport_param_encode_type_len
    - htonl
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_transport_param_enc_version_info(unsigned char **buf,\n                                                 const
      unsigned char *end,\n                                                 const
      struct quic_version *chosen_version,\n                                                 int
      server)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: quic_transport_param_enc_mem
      Src: /src/haproxy/src/quic_tp.c:528,1
    - Dst: quic_transport_param_enc_mem
      Src: /src/haproxy/src/quic_tp.c:535,1
    - Dst: quic_transport_param_enc_mem
      Src: /src/haproxy/src/quic_tp.c:543,1
    - Dst: quic_transport_param_enc_pref_addr
      Src: /src/haproxy/src/quic_tp.c:548,1
    - Dst: quic_transport_param_enc_mem
      Src: /src/haproxy/src/quic_tp.c:552,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:559,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:567,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:571,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:575,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:580,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:585,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:590,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:595,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:604,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:612,1
    - Dst: quic_transport_param_encode_type_len
      Src: /src/haproxy/src/quic_tp.c:617,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:622,1
    - Dst: quic_transport_param_enc_version_info
      Src: /src/haproxy/src/quic_tp.c:626,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 43
    argCount: 5
    argNames:
    - buf
    - end
    - p
    - chosen_version
    - server
    argTypes:
    - unsigned char*
    - unsigned char*
    - struct quic_transport_params*
    - struct quic_version*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 630
    functionName: quic_transport_params_encode
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_transport_param_enc_int
    - quic_transport_param_enc_mem
    - quic_transport_param_enc_pref_addr
    - quic_transport_param_enc_version_info
    - quic_transport_param_encode_type_len
    linkageType: ''
    returnType: int
    signature: "int quic_transport_params_encode(unsigned char *buf,\n                                 const
      unsigned char *end,\n                                 struct quic_transport_params
      *p,\n                                 const struct quic_version *chosen_version,\n
      \                                int server)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quic_transport_param_decode_type_len
      Src: /src/haproxy/src/quic_tp.c:647,1
    - Dst: quic_transport_param_decode
      Src: /src/haproxy/src/quic_tp.c:653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - p
    - server
    - buf
    - end
    argTypes:
    - struct quic_transport_params*
    - int
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 659
    functionName: quic_transport_params_decode
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_transport_param_decode
    - quic_transport_param_decode_type_len
    linkageType: ''
    returnType: int
    signature: "int quic_transport_params_decode(struct quic_transport_params *p,
      int server,\n                                 const unsigned char *buf, const
      unsigned char *end)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 2
    argNames:
    - p
    - server
    argTypes:
    - struct quic_transport_params*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 733
    functionName: quic_transport_params_check
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_transport_params_check(const struct quic_transport_params
      *p, int server)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tp.c:758,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tp.c:758,1
    - Dst: qc_early_transport_params_cpy
      Src: /src/haproxy/src/quic_tp.c:761,1
    - Dst: quic_dflt_transport_params_cpy
      Src: /src/haproxy/src/quic_tp.c:765,1
    - Dst: quic_transport_params_decode
      Src: /src/haproxy/src/quic_tp.c:767,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tp.c:768,1
    - Dst: quic_transport_params_check
      Src: /src/haproxy/src/quic_tp.c:772,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tp.c:773,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_tp.c:774,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_tp.c:774,1
    - Dst: qc_early_tranport_params_validate
      Src: /src/haproxy/src/quic_tp.c:778,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tp.c:779,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_tp.c:780,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_tp.c:780,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_tp.c:787,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_tp.c:788,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_tp.c:788,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tp.c:789,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_tp.c:805,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/src/quic_tp.c:808,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tp.c:809,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_tp.c:816,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tp.c:817,1
    - Dst: qc_kill_conn
      Src: /src/haproxy/src/quic_tp.c:820,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 5
    argNames:
    - qc
    - server
    - buf
    - end
    - edata_accepted
    argTypes:
    - struct quic_conn*
    - int
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 748
    functionDepth: 4
    functionLinenumber: 748
    functionLinenumberEnd: 824
    functionName: quic_transport_params_store
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - memcmp
    - quic_set_connection_close
    - TRACE_PROTO
    - BUG_ON
    - TRACE_ERROR
    - qc_is_back
    - QUIC_MAX
    - quic_err_transport
    - quic_dflt_transport_params_cpy
    - qc_early_tranport_params_validate
    - quic_transport_params_check
    - qc_kill_conn
    - qc_early_transport_params_cpy
    - quic_transport_params_decode
    - QUIC_MIN
    linkageType: ''
    returnType: int
    signature: "int quic_transport_params_store(struct quic_conn *qc, int server,\n
      \                               const unsigned char *buf,\n                                const
      unsigned char *end, int edata_accepted)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:846,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:850,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:853,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:857,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:862,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tp.c:864,1
    - Dst: conn_calc_max_streams
      Src: /src/haproxy/src/quic_tp.c:872,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 8
    argNames:
    - qc
    - listener_params
    - stateless_reset_token
    - dcid
    - dcidlen
    - scid
    - scidlen
    - token_odcid
    argTypes:
    - struct quic_conn*
    - struct quic_transport_params*
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - struct quic_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 876
    functionName: qc_lstnr_params_init
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - conn_calc_max_streams
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int qc_lstnr_params_init(struct quic_conn *qc,\n                         const
      struct quic_transport_params *listener_params,\n                         const
      unsigned char *stateless_reset_token,\n                         const unsigned
      char *dcid, size_t dcidlen,\n                         const unsigned char *scid,
      size_t scidlen,\n                         const struct quic_cid *token_odcid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:892,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tp.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - qc
    - srv_params
    - scid
    - scidlen
    argTypes:
    - struct quic_conn*
    - struct quic_transport_params*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 895
    functionName: qc_srv_params_init
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void qc_srv_params_init(struct quic_conn *qc,\n                        const
      struct quic_transport_params *srv_params,\n                        const unsigned
      char *scid, size_t scidlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tp.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - qc
    - e
    - p
    argTypes:
    - struct quic_conn*
    - struct quic_early_transport_params*
    - struct quic_transport_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 911
    functionName: qc_early_transport_params_cpy
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 1
    functionsReached:
    - TRACE_PROTO
    linkageType: ''
    returnType: void
    signature: "void qc_early_transport_params_cpy(struct quic_conn *qc,\n                                   struct
      quic_early_transport_params *e,\n                                   struct quic_transport_params
      *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tp.c:926,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tp.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - qc
    - p
    - e
    argTypes:
    - struct quic_conn*
    - struct quic_transport_params*
    - struct quic_early_transport_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: qc_early_transport_params_reuse
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    linkageType: ''
    returnType: void
    signature: "void qc_early_transport_params_reuse(struct quic_conn *qc,\n                                     struct
      quic_transport_params *p,\n                                     const struct
      quic_early_transport_params *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 3
    argNames:
    - qc
    - p
    - e
    argTypes:
    - struct quic_conn*
    - struct quic_transport_params*
    - struct quic_early_transport_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 959
    functionName: qc_early_tranport_params_validate
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int qc_early_tranport_params_validate(struct quic_conn *qc,\n                                             struct
      quic_transport_params *p,\n                                             struct
      quic_early_transport_params *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/http_acl.c:38,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/http_acl.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - text
    - pattern
    - mflags
    - err
    argTypes:
    - char*
    - struct pattern*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 51
    functionName: pat_parse_meth
    functionSourceFile: /src/haproxy/src/http_acl.c
    functionUses: 0
    functionsReached:
    - find_http_meth
    - strlen
    linkageType: ''
    returnType: int
    signature: int pat_parse_meth(const char *text, struct pattern *pattern, int mflags,
      char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_acl.c:60,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http_acl.c:76,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_acl.c:77,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 81
    functionName: pat_match_meth
    functionSourceFile: /src/haproxy/src/http_acl.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strncasecmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_meth(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: qc_wait_for_conn
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qc_wait_for_conn(const struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: qc_is_conn_ready
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qc_is_conn_ready(const struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/xprt_quic.c:41,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/xprt_quic.c:52,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/xprt_quic.c:52,1
    - Dst: quic_conn_release
      Src: /src/haproxy/src/xprt_quic.c:53,1
    - Dst: qc_check_close_on_released_mux
      Src: /src/haproxy/src/xprt_quic.c:62,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/xprt_quic.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 65
    functionName: quic_close
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - qc_test_fd
    - TRACE_ENTER
    - qc_is_back
    - quic_conn_release
    - qc_check_close_on_released_mux
    linkageType: ''
    returnType: void
    signature: void quic_close(struct connection *conn, void *xprt_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/xprt_quic.c:76,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_quic.c:78,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_quic.c:79,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/xprt_quic.c:89,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/xprt_quic.c:92,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/xprt_quic.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - event_type
    - es
    argTypes:
    - struct connection*
    - void*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: quic_conn_subscribe
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_LEAVE
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int quic_conn_subscribe(struct connection *conn, void *xprt_ctx, int
      event_type, struct wait_event *es)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/xprt_quic.c:107,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/xprt_quic.c:110,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/xprt_quic.c:112,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/xprt_quic.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - event_type
    - es
    argTypes:
    - struct connection*
    - void*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 123
    functionName: quic_conn_unsubscribe
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int quic_conn_unsubscribe(struct connection *conn, void *xprt_ctx,
      int event_type, struct wait_event *es)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/xprt_quic.c:134,1
    - Dst: objt_listener
      Src: /src/haproxy/src/xprt_quic.c:136,1
    - Dst: objt_server
      Src: /src/haproxy/src/xprt_quic.c:143,1
    - Dst: quic_cid_alloc
      Src: /src/haproxy/src/xprt_quic.c:145,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/xprt_quic.c:147,1
    - Dst: quic_cid_generate_random
      Src: /src/haproxy/src/xprt_quic.c:152,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/xprt_quic.c:153,1
    - Dst: pool_free
      Src: /src/haproxy/src/xprt_quic.c:154,1
    - Dst: quic_cid_insert
      Src: /src/haproxy/src/xprt_quic.c:158,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/xprt_quic.c:163,1
    - Dst: pool_free
      Src: /src/haproxy/src/xprt_quic.c:164,1
    - Dst: qc_new_conn
      Src: /src/haproxy/src/xprt_quic.c:168,1
    - Dst: pool_free
      Src: /src/haproxy/src/xprt_quic.c:170,1
    - Dst: quic_cid_register_seq_num
      Src: /src/haproxy/src/xprt_quic.c:174,1
    - Dst: qc_finalize_tid_rebind
      Src: /src/haproxy/src/xprt_quic.c:183,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/xprt_quic.c:192,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 195
    functionName: qc_conn_init
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - qc_finalize_tid_rebind
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_cid_alloc
    - TRACE_ENTER
    - qc_new_conn
    - quic_cid_register_seq_num
    - quic_cid_generate_random
    - objt_server
    - objt_listener
    - pool_free
    - quic_cid_insert
    linkageType: ''
    returnType: int
    signature: int qc_conn_init(struct connection *conn, void **xprt_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/xprt_quic.c:204,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/xprt_quic.c:209,1
    - Dst: qc_ssl_do_hanshake
      Src: /src/haproxy/src/xprt_quic.c:209,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/xprt_quic.c:219,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/xprt_quic.c:219,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/xprt_quic.c:221,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/xprt_quic.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 227
    functionName: qc_xprt_start
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - qc_is_conn_ready
    - tasklet_wakeup
    - TRACE_ENTER
    - qc_is_back
    - qc_ssl_do_hanshake
    linkageType: ''
    returnType: int
    signature: int qc_xprt_start(struct connection *conn, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xprt_get
      Src: /src/haproxy/src/xprt_quic.c:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: qc_get_ssl_sock_ctx
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - xprt_get
    linkageType: ''
    returnType: struct ssl_sock_ctx
    signature: struct ssl_sock_ctx *qc_get_ssl_sock_ctx(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dump_qc_info
      Src: /src/haproxy/src/xprt_quic.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - conn
    argTypes:
    - struct buffer*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: qc_xprt_dump_info
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - quic_dump_qc_info
    linkageType: ''
    returnType: void
    signature: void qc_xprt_dump_info(struct buffer *msg, const struct connection
      *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/xprt_quic.c:247,1
    - Dst: strlen
      Src: /src/haproxy/src/xprt_quic.c:251,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/xprt_quic.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - str
    - len
    argTypes:
    - struct connection*
    - void*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 257
    functionName: qc_get_alpn
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    - strlen
    linkageType: ''
    returnType: int
    signature: int qc_get_alpn(const struct connection *conn, void *xprt_ctx, const
      char **str, int *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xprt_register
      Src: /src/haproxy/src/xprt_quic.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: __quic_conn_init
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - xprt_register
    linkageType: ''
    returnType: void
    signature: void __quic_conn_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct quic_cc*::algo::init
      Src: /src/haproxy/src/quic_cc.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cc
    - algo
    - qc
    argTypes:
    - struct quic_cc*
    - struct quic_cc_algo*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: quic_cc_init
    functionSourceFile: /src/haproxy/src/quic_cc.c
    functionUses: 0
    functionsReached:
    - struct quic_cc*::algo::init
    linkageType: ''
    returnType: void
    signature: "void quic_cc_init(struct quic_cc *cc,\n                  const struct
      quic_cc_algo *algo, struct quic_conn *qc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct quic_cc*::algo::event
      Src: /src/haproxy/src/quic_cc.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: quic_cc_event
    functionSourceFile: /src/haproxy/src/quic_cc.c
    functionUses: 0
    functionsReached:
    - struct quic_cc*::algo::event
    linkageType: ''
    returnType: void
    signature: void quic_cc_event(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct quic_cc*::algo::state_trace
      Src: /src/haproxy/src/quic_cc.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - cc
    argTypes:
    - struct buffer*
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: quic_cc_state_trace
    functionSourceFile: /src/haproxy/src/quic_cc.c
    functionUses: 0
    functionsReached:
    - struct quic_cc*::algo::state_trace
    linkageType: ''
    returnType: void
    signature: void quic_cc_state_trace(struct buffer *buf, const struct quic_cc *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: quic_cc_default_pacing_inter
    functionSourceFile: /src/haproxy/src/quic_cc.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: uint
    signature: uint quic_cc_default_pacing_inter(const struct quic_cc *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: quic_cwnd_may_increase
    functionSourceFile: /src/haproxy/src/quic_cc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_cwnd_may_increase(const struct quic_cc_path *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cshared_read
      Src: /src/haproxy/src/quic_cc.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: quic_cc_max_win_ratio
    functionSourceFile: /src/haproxy/src/quic_cc.c
    functionUses: 0
    functionsReached:
    - cshared_read
    linkageType: ''
    returnType: int
    signature: int quic_cc_max_win_ratio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cshared_add
      Src: /src/haproxy/src/quic_cc.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: quic_cc_path_reset
    functionSourceFile: /src/haproxy/src/quic_cc.c
    functionUses: 0
    functionsReached:
    - cshared_add
    linkageType: ''
    returnType: void
    signature: void quic_cc_path_reset(struct quic_cc_path *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_max_win_ratio
      Src: /src/haproxy/src/quic_cc.c:111,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_cc.c:113,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/src/quic_cc.c:114,1
    - Dst: cshared_add
      Src: /src/haproxy/src/quic_cc.c:115,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/src/quic_cc.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - path
    - val
    argTypes:
    - struct quic_cc_path*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: quic_cc_path_set
    functionSourceFile: /src/haproxy/src/quic_cc.c
    functionUses: 0
    functionsReached:
    - QUIC_MAX
    - cshared_add
    - QUIC_MIN
    - quic_cc_max_win_ratio
    linkageType: ''
    returnType: void
    signature: void quic_cc_path_set(struct quic_cc_path *path, uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_cwnd_may_increase
      Src: /src/haproxy/src/quic_cc.c:129,1
    - Dst: quic_cc_max_win_ratio
      Src: /src/haproxy/src/quic_cc.c:130,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_cc.c:131,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/src/quic_cc.c:132,1
    - Dst: cshared_add
      Src: /src/haproxy/src/quic_cc.c:133,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/src/quic_cc.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - path
    - val
    argTypes:
    - struct quic_cc_path*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: quic_cc_path_inc
    functionSourceFile: /src/haproxy/src/quic_cc.c
    functionUses: 0
    functionsReached:
    - cshared_add
    - quic_cc_max_win_ratio
    - QUIC_MAX
    - quic_cwnd_may_increase
    - QUIC_MIN
    linkageType: ''
    returnType: void
    signature: void quic_cc_path_inc(struct quic_cc_path *path, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 2
    argCount: 1
    argNames:
    - frm
    argTypes:
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: qmux_is_frm_valid
    functionSourceFile: /src/haproxy/src/qcm_qmux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qmux_is_frm_valid(const struct quic_frame *frm)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/qcm_qmux.c:46,1
    - Dst: b_head
      Src: /src/haproxy/src/qcm_qmux.c:47,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:47,1
    - Dst: qc_parse_frm_type
      Src: /src/haproxy/src/qcm_qmux.c:48,1
    - Dst: qmux_is_frm_valid
      Src: /src/haproxy/src/qcm_qmux.c:52,1
    - Dst: b_reset
      Src: /src/haproxy/src/qcm_qmux.c:54,1
    - Dst: qc_parse_frm_payload
      Src: /src/haproxy/src/qcm_qmux.c:58,1
    - Dst: qcc_recv
      Src: /src/haproxy/src/qcm_qmux.c:66,1
    - Dst: qcc_recv_reset_stream
      Src: /src/haproxy/src/qcm_qmux.c:71,1
    - Dst: qcc_recv_stop_sending
      Src: /src/haproxy/src/qcm_qmux.c:75,1
    - Dst: qcc_recv_max_data
      Src: /src/haproxy/src/qcm_qmux.c:79,1
    - Dst: qcc_recv_max_stream_data
      Src: /src/haproxy/src/qcm_qmux.c:83,1
    - Dst: qcc_recv_max_streams
      Src: /src/haproxy/src/qcm_qmux.c:87,1
    - Dst: qcc_recv_max_streams
      Src: /src/haproxy/src/qcm_qmux.c:91,1
    - Dst: CHECK_IF
      Src: /src/haproxy/src/qcm_qmux.c:98,1
    - Dst: CHECK_IF
      Src: /src/haproxy/src/qcm_qmux.c:101,1
    - Dst: CHECK_IF
      Src: /src/haproxy/src/qcm_qmux.c:105,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/qcm_qmux.c:109,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 2
    argNames:
    - qcc
    - buf
    argTypes:
    - struct qcc*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 113
    functionName: qmux_parse_frm
    functionSourceFile: /src/haproxy/src/qcm_qmux.c
    functionUses: 0
    functionsReached:
    - qc_parse_frm_type
    - b_head
    - qcc_recv_max_data
    - qcc_recv_max_stream_data
    - qc_parse_frm_payload
    - qcc_recv_stop_sending
    - CHECK_IF
    - qmux_is_frm_valid
    - b_data
    - b_reset
    - qcc_recv_reset_stream
    - qcc_recv
    - qcc_recv_max_streams
    - ABORT_NOW
    linkageType: ''
    returnType: int
    signature: int qmux_parse_frm(struct qcc *qcc, struct buffer *buf)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/qcm_qmux.c:128,1
    - Dst: b_alloc
      Src: /src/haproxy/src/qcm_qmux.c:133,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/qcm_qmux.c:134,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:141,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:141,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/qcm_qmux.c:141,1
    - Dst: b_head
      Src: /src/haproxy/src/qcm_qmux.c:146,1
    - Dst: b_wrap
      Src: /src/haproxy/src/qcm_qmux.c:146,1
    - Dst: b_head
      Src: /src/haproxy/src/qcm_qmux.c:147,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:147,1
    - Dst: b_wrap
      Src: /src/haproxy/src/qcm_qmux.c:147,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:149,1
    - Dst: b_size
      Src: /src/haproxy/src/qcm_qmux.c:149,1
    - Dst: memmove
      Src: /src/haproxy/src/qcm_qmux.c:150,1
    - Dst: b_orig
      Src: /src/haproxy/src/qcm_qmux.c:150,1
    - Dst: b_head
      Src: /src/haproxy/src/qcm_qmux.c:150,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:150,1
    - Dst: b_realign_if_empty
      Src: /src/haproxy/src/qcm_qmux.c:155,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:162,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:163,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:165,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:165,1
    - Dst: b_tail
      Src: /src/haproxy/src/qcm_qmux.c:165,1
    - Dst: b_orig
      Src: /src/haproxy/src/qcm_qmux.c:165,1
    - Dst: struct connection*::xprt::rcv_buf
      Src: /src/haproxy/src/qcm_qmux.c:166,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/qcm_qmux.c:166,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:170,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:170,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/qcm_qmux.c:170,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:173,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/qcm_qmux.c:174,1
    - Dst: b_size
      Src: /src/haproxy/src/qcm_qmux.c:175,1
    - Dst: b_head
      Src: /src/haproxy/src/qcm_qmux.c:185,1
    - Dst: b_wrap
      Src: /src/haproxy/src/qcm_qmux.c:185,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:186,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:192,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:192,1
    - Dst: b_tail
      Src: /src/haproxy/src/qcm_qmux.c:192,1
    - Dst: b_orig
      Src: /src/haproxy/src/qcm_qmux.c:192,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:194,1
    - Dst: b_make
      Src: /src/haproxy/src/qcm_qmux.c:195,1
    - Dst: b_orig
      Src: /src/haproxy/src/qcm_qmux.c:195,1
    - Dst: b_size
      Src: /src/haproxy/src/qcm_qmux.c:195,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/qcm_qmux.c:196,1
    - Dst: qmux_parse_frm
      Src: /src/haproxy/src/qcm_qmux.c:197,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:205,1
    - Dst: b_del
      Src: /src/haproxy/src/qcm_qmux.c:206,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/qcm_qmux.c:213,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/qcm_qmux.c:217,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:221,1
    - Dst: b_free
      Src: /src/haproxy/src/qcm_qmux.c:222,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/qcm_qmux.c:223,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/qcm_qmux.c:226,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 71
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 231
    functionName: qcc_qmux_recv
    functionSourceFile: /src/haproxy/src/qcm_qmux.c
    functionUses: 0
    functionsReached:
    - b_realign_if_empty
    - conn_xprt_read0_pending
    - TRACE_ENTER
    - b_contig_data
    - qmux_parse_frm
    - b_contig_space
    - offer_buffers
    - b_tail
    - b_head_ofs
    - b_make
    - b_wrap
    - struct connection*::xprt::rcv_buf
    - b_alloc
    - memmove
    - b_head
    - b_orig
    - TRACE_ERROR
    - TRACE_LEAVE
    - b_free
    - b_data
    - b_size
    - struct connection*::xprt::subscribe
    - b_del
    - BUG_ON
    - b_quic_dec_int
    linkageType: ''
    returnType: int
    signature: int qcc_qmux_recv(struct qcc *qcc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/qcm_qmux.c:240,1
    - Dst: qcs_idle_open
      Src: /src/haproxy/src/qcm_qmux.c:242,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:245,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:246,1
    - Dst: qfctl_rinc
      Src: /src/haproxy/src/qcm_qmux.c:249,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/qcm_qmux.c:250,1
    - Dst: qfctl_rinc
      Src: /src/haproxy/src/qcm_qmux.c:255,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/qcm_qmux.c:256,1
    - Dst: b_del
      Src: /src/haproxy/src/qcm_qmux.c:260,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/qcm_qmux.c:262,1
    - Dst: qcs_notify_send
      Src: /src/haproxy/src/qcm_qmux.c:264,1
    - Dst: increment_send_rate
      Src: /src/haproxy/src/qcm_qmux.c:270,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/qcm_qmux.c:272,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/qcm_qmux.c:274,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/qcm_qmux.c:275,1
    - Dst: qcs_close_local
      Src: /src/haproxy/src/qcm_qmux.c:279,1
    - Dst: qcs_is_completed
      Src: /src/haproxy/src/qcm_qmux.c:286,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/qcm_qmux.c:287,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/qcm_qmux.c:288,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/qcm_qmux.c:293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - qcs
    - data
    argTypes:
    - struct qcs*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 294
    functionName: qmux_ctrl_send
    functionSourceFile: /src/haproxy/src/qcm_qmux.c
    functionUses: 0
    functionsReached:
    - qcs_idle_open
    - qcs_is_completed
    - TRACE_STATE
    - BUG_ON
    - TRACE_LEAVE
    - LIST_DEL_INIT
    - qcs_notify_send
    - qcs_prep_bytes
    - TRACE_ENTER
    - LIST_APPEND
    - b_del
    - increment_send_rate
    - qcs_close_local
    - qfctl_rinc
    linkageType: ''
    returnType: void
    signature: void qmux_ctrl_send(struct qcs *qcs, uint64_t data)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/qcm_qmux.c:311,1
    - Dst: b_alloc
      Src: /src/haproxy/src/qcm_qmux.c:313,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/qcm_qmux.c:314,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/qcm_qmux.c:319,1
    - Dst: quic_int_cap_length
      Src: /src/haproxy/src/qcm_qmux.c:319,1
    - Dst: b_size
      Src: /src/haproxy/src/qcm_qmux.c:319,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:322,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/qcm_qmux.c:323,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:323,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/qcm_qmux.c:327,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:331,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/qcm_qmux.c:333,1
    - Dst: b_reset
      Src: /src/haproxy/src/qcm_qmux.c:340,1
    - Dst: b_orig
      Src: /src/haproxy/src/qcm_qmux.c:342,1
    - Dst: b_wrap
      Src: /src/haproxy/src/qcm_qmux.c:343,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:345,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/qcm_qmux.c:346,1
    - Dst: quic_strm_frm_fillbuf
      Src: /src/haproxy/src/qcm_qmux.c:352,1
    - Dst: quic_strm_frm_split
      Src: /src/haproxy/src/qcm_qmux.c:357,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/qcm_qmux.c:359,1
    - Dst: qc_build_frm
      Src: /src/haproxy/src/qcm_qmux.c:368,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:369,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:370,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/qcm_qmux.c:373,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:374,1
    - Dst: b_add
      Src: /src/haproxy/src/qcm_qmux.c:375,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/qcm_qmux.c:377,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:377,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/qcm_qmux.c:381,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/qcm_qmux.c:383,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:388,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:388,1
    - Dst: b_del
      Src: /src/haproxy/src/qcm_qmux.c:389,1
    - Dst: qmux_ctrl_send
      Src: /src/haproxy/src/qcm_qmux.c:392,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/qcm_qmux.c:395,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/qcm_qmux.c:399,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/qcm_qmux.c:407,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/qcm_qmux.c:409,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:416,1
    - Dst: b_free
      Src: /src/haproxy/src/qcm_qmux.c:417,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/qcm_qmux.c:418,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/qcm_qmux.c:421,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 2
    argNames:
    - qcc
    - frms
    argTypes:
    - struct qcc*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 423
    functionName: qcc_qmux_send_frames
    functionSourceFile: /src/haproxy/src/qcm_qmux.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - quic_strm_frm_fillbuf
    - quic_int_getsize
    - offer_buffers
    - quic_int_cap_length
    - TRACE_DEVEL
    - LIST_INSERT
    - b_wrap
    - qc_build_frm
    - b_alloc
    - b_orig
    - TRACE_ERROR
    - TRACE_LEAVE
    - qc_frm_free
    - b_free
    - b_add
    - TRACE_PRINTF
    - b_data
    - b_size
    - b_quic_enc_int
    - struct connection*::xprt::subscribe
    - b_del
    - BUG_ON
    - struct connection*::xprt::snd_buf
    - qmux_ctrl_send
    - ABORT_NOW
    - LIST_ISEMPTY
    - b_reset
    - quic_strm_frm_split
    linkageType: ''
    returnType: int
    signature: int qcc_qmux_send_frames(struct qcc *qcc, struct list *frms)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: b_reset
      Src: /src/haproxy/src/qcm_qmux.c:340,1
    - Dst: b_orig
      Src: /src/haproxy/src/qcm_qmux.c:342,1
    - Dst: b_wrap
      Src: /src/haproxy/src/qcm_qmux.c:343,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:345,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/qcm_qmux.c:346,1
    - Dst: quic_strm_frm_fillbuf
      Src: /src/haproxy/src/qcm_qmux.c:352,1
    - Dst: quic_strm_frm_split
      Src: /src/haproxy/src/qcm_qmux.c:357,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/qcm_qmux.c:359,1
    - Dst: qc_build_frm
      Src: /src/haproxy/src/qcm_qmux.c:368,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:369,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:370,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/qcm_qmux.c:373,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:374,1
    - Dst: b_add
      Src: /src/haproxy/src/qcm_qmux.c:375,1
    - Dst: xprt::snd_buf
      Src: /src/haproxy/src/qcm_qmux.c:377,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:377,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/qcm_qmux.c:381,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/qcm_qmux.c:383,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_qmux.c:388,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_qmux.c:388,1
    - Dst: b_del
      Src: /src/haproxy/src/qcm_qmux.c:389,1
    - Dst: qmux_ctrl_send
      Src: /src/haproxy/src/qcm_qmux.c:392,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/qcm_qmux.c:395,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/qcm_qmux.c:399,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 400
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/qcm_qmux.c
    functionUses: 6
    functionsReached:
    - xprt::snd_buf
    - b_orig
    - BUG_ON
    - qmux_ctrl_send
    - TRACE_DEVEL
    - qc_frm_free
    - quic_strm_frm_fillbuf
    - b_add
    - b_del
    - TRACE_PRINTF
    - ABORT_NOW
    - b_reset
    - b_quic_enc_int
    - b_data
    - quic_strm_frm_split
    - LIST_INSERT
    - b_wrap
    - qc_build_frm
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(frm, frm_old, frms, list)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_udp.c:149,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_udp.c:152,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_udp.c:159,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_udp.c:161,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_udp.c:166,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/proto_udp.c:174,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/proto_udp.c:180,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_udp.c:181,1
    - Dst: get_host_port
      Src: /src/haproxy/src/proto_udp.c:181,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - listener
    - errmsg
    - errlen
    argTypes:
    - struct listener*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 184
    functionName: udp_bind_listener
    functionSourceFile: /src/haproxy/src/proto_udp.c
    functionUses: 0
    functionsReached:
    - listener_set_state
    - setsockopt
    - get_host_port
    - addr_to_str
    - snprintf
    linkageType: ''
    returnType: int
    signature: int udp_bind_listener(struct listener *listener, char *errmsg, int
      errlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_want_recv_safe
      Src: /src/haproxy/src/proto_udp.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: udp_enable_listener
    functionSourceFile: /src/haproxy/src/proto_udp.c
    functionUses: 0
    functionsReached:
    - fd_want_recv_safe
    linkageType: ''
    returnType: void
    signature: void udp_enable_listener(struct listener *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/proto_udp.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: udp_disable_listener
    functionSourceFile: /src/haproxy/src/proto_udp.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    linkageType: ''
    returnType: void
    signature: void udp_disable_listener(struct listener *l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/haproxy/src/proto_udp.c:226,1
    - Dst: connect
      Src: /src/haproxy/src/proto_udp.c:229,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/proto_udp.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 235
    functionName: udp_suspend_receiver
    functionSourceFile: /src/haproxy/src/proto_udp.c
    functionUses: 0
    functionsReached:
    - getsockname
    - connect
    - fd_stop_recv
    linkageType: ''
    returnType: int
    signature: int udp_suspend_receiver(struct receiver *rx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/haproxy/src/proto_udp.c:251,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/proto_udp.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 256
    functionName: udp_resume_receiver
    functionSourceFile: /src/haproxy/src/proto_udp.c
    functionUses: 0
    functionsReached:
    - connect
    - fd_want_recv
    linkageType: ''
    returnType: int
    signature: int udp_resume_receiver(struct receiver *rx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: listener_set_state
      Src: /src/haproxy/src/proto_uxdg.c:165,1
    - Dst: sa2str
      Src: /src/haproxy/src/proto_uxdg.c:171,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_uxdg.c:172,1
    - Dst: ha_free
      Src: /src/haproxy/src/proto_uxdg.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - listener
    - errmsg
    - errlen
    argTypes:
    - struct listener*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 176
    functionName: uxdg_bind_listener
    functionSourceFile: /src/haproxy/src/proto_uxdg.c
    functionUses: 0
    functionsReached:
    - ha_free
    - listener_set_state
    - sa2str
    - snprintf
    linkageType: ''
    returnType: int
    signature: int uxdg_bind_listener(struct listener *listener, char *errmsg, int
      errlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_want_recv_safe
      Src: /src/haproxy/src/proto_uxdg.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: uxdg_enable_listener
    functionSourceFile: /src/haproxy/src/proto_uxdg.c
    functionUses: 0
    functionsReached:
    - fd_want_recv_safe
    linkageType: ''
    returnType: void
    signature: void uxdg_enable_listener(struct listener *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/proto_uxdg.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: uxdg_disable_listener
    functionSourceFile: /src/haproxy/src/proto_uxdg.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    linkageType: ''
    returnType: void
    signature: void uxdg_disable_listener(struct listener *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/proto_uxdg.c:203,1
    - Dst: uxdg_disable_listener
      Src: /src/haproxy/src/proto_uxdg.c:206,1
    - Dst: do_unbind_listener
      Src: /src/haproxy/src/proto_uxdg.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 214
    functionName: uxdg_suspend_receiver
    functionSourceFile: /src/haproxy/src/proto_uxdg.c
    functionUses: 0
    functionsReached:
    - do_unbind_listener
    - uxdg_disable_listener
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int uxdg_suspend_receiver(struct receiver *rx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_init
      Src: /src/haproxy/src/chunk.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 96
    functionName: get_trash_chunk
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 17
    functionsReached:
    - chunk_init
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *get_trash_chunk(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_init
      Src: /src/haproxy/src/chunk.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 120
    functionName: get_large_trash_chunk
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - chunk_init
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *get_large_trash_chunk(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_init
      Src: /src/haproxy/src/chunk.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: get_small_trash_chunk
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - chunk_init
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *get_small_trash_chunk(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/chunk.c:152,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/chunk.c:153,1
    - Dst: get_small_trash_chunk
      Src: /src/haproxy/src/chunk.c:155,1
    - Dst: get_large_trash_chunk
      Src: /src/haproxy/src/chunk.c:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 160
    functionName: get_trash_chunk_sz
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 3
    functionsReached:
    - get_large_trash_chunk
    - get_small_trash_chunk
    - get_trash_chunk
    - likely
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *get_trash_chunk_sz(size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/chunk.c:171,1
    - Dst: get_large_trash_chunk
      Src: /src/haproxy/src/chunk.c:175,1
    - Dst: b_xfer
      Src: /src/haproxy/src/chunk.c:179,1
    - Dst: b_data
      Src: /src/haproxy/src/chunk.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - chk
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 182
    functionName: get_larger_trash_chunk
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - b_data
    - get_large_trash_chunk
    - get_trash_chunk
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *get_larger_trash_chunk(struct buffer *chk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_init
      Src: /src/haproxy/src/chunk.c:189,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:189,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:191,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bufsize
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: alloc_trash_buffers
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - chunk_init
    - my_realloc2
    linkageType: ''
    returnType: int
    signature: int alloc_trash_buffers(int bufsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/chunk.c:206,1
    - Dst: chunk_init
      Src: /src/haproxy/src/chunk.c:208,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:208,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:209,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - bufsize
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 212
    functionName: alloc_large_trash_buffers
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - chunk_init
    - my_realloc2
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int alloc_large_trash_buffers(int bufsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/chunk.c:224,1
    - Dst: chunk_init
      Src: /src/haproxy/src/chunk.c:226,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:226,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:227,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - bufsize
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: alloc_small_trash_buffers
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - chunk_init
    - my_realloc2
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int alloc_small_trash_buffers(int bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_buffers
      Src: /src/haproxy/src/chunk.c:234,1
    - Dst: alloc_large_trash_buffers
      Src: /src/haproxy/src/chunk.c:235,1
    - Dst: alloc_small_trash_buffers
      Src: /src/haproxy/src/chunk.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: alloc_trash_buffers_per_thread
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - alloc_trash_buffers
    - alloc_large_trash_buffers
    - alloc_small_trash_buffers
    linkageType: ''
    returnType: int
    signature: int alloc_trash_buffers_per_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_destroy
      Src: /src/haproxy/src/chunk.c:241,1
    - Dst: ha_free
      Src: /src/haproxy/src/chunk.c:242,1
    - Dst: ha_free
      Src: /src/haproxy/src/chunk.c:243,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/chunk.c:245,1
    - Dst: ha_free
      Src: /src/haproxy/src/chunk.c:246,1
    - Dst: ha_free
      Src: /src/haproxy/src/chunk.c:247,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/chunk.c:249,1
    - Dst: ha_free
      Src: /src/haproxy/src/chunk.c:250,1
    - Dst: ha_free
      Src: /src/haproxy/src/chunk.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 252
    functionName: free_trash_buffers_per_thread
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - ha_free
    - chunk_destroy
    linkageType: ''
    returnType: void
    signature: void free_trash_buffers_per_thread()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pool_evict_from_local_cache
      Src: /src/haproxy/src/chunk.c:260,1
    - Dst: pool_flush
      Src: /src/haproxy/src/chunk.c:261,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/chunk.c:264,1
    - Dst: pool_used
      Src: /src/haproxy/src/chunk.c:264,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/chunk.c:265,1
    - Dst: create_pool
      Src: /src/haproxy/src/chunk.c:266,1
    - Dst: alloc_trash_buffers
      Src: /src/haproxy/src/chunk.c:269,1
    - Dst: create_pool
      Src: /src/haproxy/src/chunk.c:273,1
    - Dst: create_pool
      Src: /src/haproxy/src/chunk.c:281,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - first
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 288
    functionName: init_trash_buffers
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 2
    functionsReached:
    - pool_flush
    - BUG_ON
    - alloc_trash_buffers
    - pool_destroy
    - pool_used
    - pool_evict_from_local_cache
    - create_pool
    linkageType: ''
    returnType: int
    signature: int init_trash_buffers(int first)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_trash_buffers
      Src: /src/haproxy/src/chunk.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: alloc_early_trash
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - init_trash_buffers
    linkageType: ''
    returnType: int
    signature: int alloc_early_trash(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/chunk.c:312,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/chunk.c:313,1
    - Dst: va_end
      Src: /src/haproxy/src/chunk.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - chk
    - fmt
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 321
    functionName: chunk_printf
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 3
    functionsReached:
    - va_end
    - va_start
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: int chunk_printf(struct buffer *chk, const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/chunk.c:341,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/chunk.c:342,1
    - Dst: va_end
      Src: /src/haproxy/src/chunk.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - chk
    - fmt
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 350
    functionName: chunk_appendf
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 18
    functionsReached:
    - va_end
    - va_start
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: int chunk_appendf(struct buffer *chk, const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isascii
      Src: /src/haproxy/src/chunk.c:375,1
    - Dst: isprint
      Src: /src/haproxy/src/chunk.c:375,1
    - Dst: snprintf
      Src: /src/haproxy/src/chunk.c:376,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 392
    functionName: chunk_htmlencode
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 1
    functionsReached:
    - isprint
    - isascii
    - snprintf
    linkageType: ''
    returnType: int
    signature: int chunk_htmlencode(struct buffer *dst, struct buffer *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isascii
      Src: /src/haproxy/src/chunk.c:417,1
    - Dst: isprint
      Src: /src/haproxy/src/chunk.c:417,1
    - Dst: snprintf
      Src: /src/haproxy/src/chunk.c:418,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - dst
    - src
    - qc
    argTypes:
    - struct buffer*
    - struct buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 434
    functionName: chunk_asciiencode
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - isprint
    - isascii
    - snprintf
    linkageType: ''
    returnType: int
    signature: int chunk_asciiencode(struct buffer *dst, struct buffer *src, char
      qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - chk
    - str
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 454
    functionName: chunk_strcmp
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int chunk_strcmp(const struct buffer *chk, const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/chunk.c:472,1
    - Dst: likely
      Src: /src/haproxy/src/chunk.c:479,1
    - Dst: likely
      Src: /src/haproxy/src/chunk.c:481,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - chk
    - str
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 488
    functionName: chunk_strcasecmp
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - unlikely
    - likely
    linkageType: ''
    returnType: int
    signature: int chunk_strcasecmp(const struct buffer *chk, const char *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/pipe.c:44,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/pipe.c:47,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pipe.c:48,1
    - Dst: likely
      Src: /src/haproxy/src/pipe.c:52,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/pipe.c:53,1
    - Dst: likely
      Src: /src/haproxy/src/pipe.c:55,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/pipe.c:57,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/pipe.c:59,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pipe.c:60,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pipe.c:65,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/pipe.c:69,1
    - Dst: pipe
      Src: /src/haproxy/src/pipe.c:73,1
    - Dst: fcntl
      Src: /src/haproxy/src/pipe.c:78,1
    - Dst: pool_free
      Src: /src/haproxy/src/pipe.c:87,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/pipe.c:88,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 91
    functionName: get_pipe
    functionSourceFile: /src/haproxy/src/pipe.c
    functionUses: 1
    functionsReached:
    - pool_alloc
    - HA_SPIN_UNLOCK
    - fcntl
    - HA_SPIN_LOCK
    - HA_ATOMIC_DEC
    - likely
    - pipe
    - HA_ATOMIC_INC
    - pool_free
    linkageType: ''
    returnType: struct pipe
    signature: struct pipe *get_pipe()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/src/pipe.c:98,1
    - Dst: close
      Src: /src/haproxy/src/pipe.c:99,1
    - Dst: pool_free
      Src: /src/haproxy/src/pipe.c:100,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/pipe.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pipe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: kill_pipe
    functionSourceFile: /src/haproxy/src/pipe.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_DEC
    - close
    - pool_free
    linkageType: ''
    returnType: void
    signature: void kill_pipe(struct pipe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/pipe.c:110,1
    - Dst: kill_pipe
      Src: /src/haproxy/src/pipe.c:111,1
    - Dst: likely
      Src: /src/haproxy/src/pipe.c:115,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/pipe.c:122,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/pipe.c:125,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pipe.c:127,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/pipe.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pipe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 129
    functionName: put_pipe
    functionSourceFile: /src/haproxy/src/pipe.c
    functionUses: 2
    functionsReached:
    - unlikely
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - HA_ATOMIC_DEC
    - likely
    - kill_pipe
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void put_pipe(struct pipe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_stateless_reset_token_cpy
      Src: /src/haproxy/src/quic_cid.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn_id
    argTypes:
    - struct quic_connection_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: quic_stateless_reset_token_init
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - quic_stateless_reset_token_cpy
    linkageType: ''
    returnType: int
    signature: int quic_stateless_reset_token_init(struct quic_connection_id *conn_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:77,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:85,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:87,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:94,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:96,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_cid.c:102,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:106,1
    - Dst: XXH64
      Src: /src/haproxy/src/quic_cid.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - orig
    - addr
    argTypes:
    - struct quic_cid*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 117
    functionName: quic_derive_cid
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - ABORT_NOW
    - memcpy
    - XXH64
    linkageType: ''
    returnType: struct quic_cid
    signature: "struct quic_cid quic_derive_cid(const struct quic_cid *orig,\n                                       const
      struct sockaddr_storage *addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cid.c:130,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_cid.c:132,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_cid.c:134,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/quic_cid.c:138,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:142,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - side
    argTypes:
    - enum quic_cid_side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 148
    functionName: quic_cid_alloc
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_STORE
    - TRACE_LEAVE
    - pool_alloc
    - TRACE_ERROR
    - TRACE_ENTER
    linkageType: ''
    returnType: struct quic_connection_id
    signature: struct quic_connection_id *quic_cid_alloc(enum quic_cid_side side)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cid.c:158,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_cid.c:162,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_cid.c:163,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_cid.c:165,1
    - Dst: quic_stateless_reset_token_init
      Src: /src/haproxy/src/quic_cid.c:169,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_cid.c:170,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:174,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - conn_id
    argTypes:
    - struct quic_connection_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 180
    functionName: quic_cid_generate_random
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - RAND_bytes
    - quic_stateless_reset_token_init
    - TRACE_DEVEL
    - TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int quic_cid_generate_random(struct quic_connection_id *conn_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cid.c:191,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_cid.c:194,1
    - Dst: quic_newcid_from_hash64
      Src: /src/haproxy/src/quic_cid.c:195,1
    - Dst: quic_stateless_reset_token_init
      Src: /src/haproxy/src/quic_cid.c:198,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_cid.c:199,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:203,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - conn_id
    - hash64
    argTypes:
    - struct quic_connection_id*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 209
    functionName: quic_cid_generate_from_hash
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_stateless_reset_token_init
    - quic_newcid_from_hash64
    linkageType: ''
    returnType: int
    signature: int quic_cid_generate_from_hash(struct quic_connection_id *conn_id,
      uint64_t hash64)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cid.c:228,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_cid.c:232,1
    - Dst: quic_derive_cid
      Src: /src/haproxy/src/quic_cid.c:234,1
    - Dst: quic_stateless_reset_token_init
      Src: /src/haproxy/src/quic_cid.c:236,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_cid.c:237,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:241,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - conn_id
    - orig
    - addr
    argTypes:
    - struct quic_connection_id*
    - struct quic_cid*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 247
    functionName: quic_cid_derive_from_odcid
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_stateless_reset_token_init
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_derive_cid
    linkageType: ''
    returnType: int
    signature: "int quic_cid_derive_from_odcid(struct quic_connection_id *conn_id,\n
      \                              const struct quic_cid *orig,\n                               const
      struct sockaddr_storage *addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cid.c:257,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_cid.c:263,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - conn_id
    - qc
    argTypes:
    - struct quic_connection_id*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 267
    functionName: quic_cid_register_seq_num
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 1
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    - eb64_insert
    linkageType: ''
    returnType: void
    signature: "void quic_cid_register_seq_num(struct quic_connection_id *conn_id,\n
      \                              struct quic_conn *qc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quic_cid_get_tree
      Src: /src/haproxy/src/quic_cid.c:287,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/quic_cid.c:288,1
    - Dst: ebmb_insert
      Src: /src/haproxy/src/quic_cid.c:289,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/quic_cid.c:292,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_cid.c:293,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/quic_cid.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - conn_id
    - new_tid
    argTypes:
    - struct quic_connection_id*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 303
    functionName: quic_cid_insert
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_LOAD
    - HA_RWLOCK_WRUNLOCK
    - ebmb_entry
    - ebmb_insert
    - HA_RWLOCK_WRLOCK
    - quic_cid_get_tree
    linkageType: ''
    returnType: int
    signature: int quic_cid_insert(struct quic_connection_id *conn_id, int *new_tid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _quic_cid_tree_idx
      Src: /src/haproxy/src/quic_cid.c:319,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/quic_cid.c:320,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/quic_cid.c:321,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/quic_cid.c:323,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/quic_cid.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - cid
    - cid_len
    - qc
    argTypes:
    - unsigned char*
    - size_t
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 330
    functionName: quic_cmp_cid_conn
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDLOCK
    - ebmb_lookup
    - ebmb_entry
    - _quic_cid_tree_idx
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: int
    signature: "int quic_cmp_cid_conn(const unsigned char *cid, size_t cid_len,\n
      \                     struct quic_conn *qc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _quic_cid_tree_idx
      Src: /src/haproxy/src/quic_cid.c:350,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/quic_cid.c:351,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/quic_cid.c:352,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/quic_cid.c:354,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_cid.c:355,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/quic_cid.c:357,1
    - Dst: qc_parse_hd_form
      Src: /src/haproxy/src/quic_cid.c:366,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:375,1
    - Dst: quic_derive_cid
      Src: /src/haproxy/src/quic_cid.c:377,1
    - Dst: quic_cid_tree_idx
      Src: /src/haproxy/src/quic_cid.c:379,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/quic_cid.c:380,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/quic_cid.c:381,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/quic_cid.c:383,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_cid.c:384,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/quic_cid.c:386,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - cid
    - cid_len
    - cli_addr
    - pos
    - len
    argTypes:
    - unsigned char*
    - size_t
    - struct sockaddr_storage*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 391
    functionName: quic_get_cid_tid
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 1
    functionsReached:
    - qc_parse_hd_form
    - ebmb_lookup
    - HA_ATOMIC_LOAD
    - HA_RWLOCK_RDUNLOCK
    - memcpy
    - quic_cid_tree_idx
    - ebmb_entry
    - quic_derive_cid
    - _quic_cid_tree_idx
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: "int quic_get_cid_tid(const unsigned char *cid, size_t cid_len,\n                     const
      struct sockaddr_storage *cli_addr,\n                     unsigned char *pos,
      size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cid.c:409,1
    - Dst: _quic_cid_tree_idx
      Src: /src/haproxy/src/quic_cid.c:415,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/quic_cid.c:416,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/quic_cid.c:417,1
    - Dst: quic_derive_cid
      Src: /src/haproxy/src/quic_cid.c:425,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/quic_cid.c:427,1
    - Dst: quic_cid_tree_idx
      Src: /src/haproxy/src/quic_cid.c:429,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/quic_cid.c:430,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/quic_cid.c:431,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/quic_cid.c:437,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_cid.c:438,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_cid.c:447,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_cid.c:449,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/quic_cid.c:452,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:453,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - pkt
    - saddr
    - new_tid
    argTypes:
    - struct quic_rx_packet*
    - struct sockaddr_storage*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 455
    functionName: retrieve_qc_conn_from_cid
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - ebmb_lookup
    - TRACE_LEAVE
    - HA_ATOMIC_LOAD
    - HA_RWLOCK_RDUNLOCK
    - quic_cid_tree_idx
    - BUG_ON
    - TRACE_DEVEL
    - TRACE_ENTER
    - ebmb_entry
    - quic_derive_cid
    - _quic_cid_tree_idx
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct quic_conn
    signature: "struct quic_conn *retrieve_qc_conn_from_cid(struct quic_rx_packet
      *pkt,\n                                            struct sockaddr_storage *saddr,\n
      \                                           int *new_tid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cid.c:468,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_cid.c:471,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_cid.c:473,1
    - Dst: quic_connection_id_to_frm_cpy
      Src: /src/haproxy/src/quic_cid.c:477,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_cid.c:478,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - qc
    - conn_id
    argTypes:
    - struct quic_conn*
    - struct quic_connection_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 483
    functionName: qc_build_new_connection_id_frm
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_connection_id_to_frm_cpy
    - TRACE_ENTER
    - LIST_APPEND
    - qc_frm_alloc
    linkageType: ''
    returnType: int
    signature: "int qc_build_new_connection_id_frm(struct quic_conn *qc,\n                                   struct
      quic_connection_id *conn_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/quic_cid.c:489,1
    - Dst: ha_alert
      Src: /src/haproxy/src/quic_cid.c:491,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/quic_cid.c:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 501
    functionName: quic_alloc_global_fe_cid_tree
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - calloc
    - HA_RWLOCK_INIT
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int quic_alloc_global_fe_cid_tree(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/quic_cid.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: quic_deallocate_global_fe_cid_tree
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: int
    signature: int quic_deallocate_global_fe_cid_tree(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/quic_cid.c:515,1
    - Dst: ha_alert
      Src: /src/haproxy/src/quic_cid.c:517,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/quic_cid.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 527
    functionName: quic_alloc_global_be_cid_tree
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - calloc
    - HA_RWLOCK_INIT
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int quic_alloc_global_be_cid_tree(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/quic_cid.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 534
    functionName: quic_deallocate_global_be_cid_tree
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: int
    signature: int quic_deallocate_global_be_cid_tree(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_fwrr.c:41,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fwrr.c:44,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fwrr.c:47,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwrr.c:49,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fwrr.c:54,1
    - Dst: fwrr_dequeue_srv
      Src: /src/haproxy/src/lb_fwrr.c:55,1
    - Dst: fwrr_remove_from_tree
      Src: /src/haproxy/src/lb_fwrr.c:56,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwrr.c:57,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fwrr.c:74,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fwrr.c:86,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwrr.c:87,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fwrr.c:90,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 91
    functionName: fwrr_set_server_status_down
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - update_backend_weight
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - fwrr_remove_from_tree
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    - fwrr_dequeue_srv
    linkageType: ''
    returnType: void
    signature: void fwrr_set_server_status_down(struct server *srv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_fwrr.c:109,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fwrr.c:112,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fwrr.c:115,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwrr.c:117,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fwrr.c:151,1
    - Dst: fwrr_get_srv
      Src: /src/haproxy/src/lb_fwrr.c:153,1
    - Dst: fwrr_queue_srv
      Src: /src/haproxy/src/lb_fwrr.c:155,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwrr.c:156,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fwrr.c:161,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwrr.c:162,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fwrr.c:165,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 166
    functionName: fwrr_set_server_status_up
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - fwrr_get_srv
    - fwrr_queue_srv
    - update_backend_weight
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void fwrr_set_server_status_up(struct server *srv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_fwrr.c:181,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwrr.c:192,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fwrr.c:193,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fwrr.c:196,1
    - Dst: fwrr_set_server_status_up
      Src: /src/haproxy/src/lb_fwrr.c:200,1
    - Dst: fwrr_set_server_status_down
      Src: /src/haproxy/src/lb_fwrr.c:204,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fwrr.c:208,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fwrr.c:219,1
    - Dst: fwrr_dequeue_srv
      Src: /src/haproxy/src/lb_fwrr.c:222,1
    - Dst: fwrr_queue_by_weight
      Src: /src/haproxy/src/lb_fwrr.c:223,1
    - Dst: fwrr_dequeue_srv
      Src: /src/haproxy/src/lb_fwrr.c:229,1
    - Dst: fwrr_get_srv
      Src: /src/haproxy/src/lb_fwrr.c:230,1
    - Dst: fwrr_queue_srv
      Src: /src/haproxy/src/lb_fwrr.c:232,1
    - Dst: fwrr_get_srv
      Src: /src/haproxy/src/lb_fwrr.c:238,1
    - Dst: fwrr_dequeue_srv
      Src: /src/haproxy/src/lb_fwrr.c:256,1
    - Dst: fwrr_queue_srv
      Src: /src/haproxy/src/lb_fwrr.c:257,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwrr.c:259,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fwrr.c:262,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwrr.c:263,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fwrr.c:265,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 266
    functionName: fwrr_update_server_weight
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - fwrr_set_server_status_up
    - fwrr_set_server_status_down
    - fwrr_get_srv
    - fwrr_queue_srv
    - HA_RWLOCK_WRUNLOCK
    - fwrr_queue_by_weight
    - update_backend_weight
    - srv_lb_status_changed
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    - fwrr_dequeue_srv
    linkageType: ''
    returnType: void
    signature: void fwrr_update_server_weight(struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - tgid
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: fwrr_remove_from_tree
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwrr_remove_from_tree(struct server *s, int tgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_insert
      Src: /src/haproxy/src/lb_fwrr.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - root
    - s
    - tgid
    argTypes:
    - struct eb_root*
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: fwrr_queue_by_weight
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 1
    functionsReached:
    - eb32_insert
    linkageType: ''
    returnType: void
    signature: void fwrr_queue_by_weight(struct eb_root *root, struct server *s, int
      tgid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fwrr.c:305,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_fwrr.c:308,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fwrr.c:309,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwrr.c:336,1
    - Dst: fwrr_queue_by_weight
      Src: /src/haproxy/src/lb_fwrr.c:340,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwrr.c:348,1
    - Dst: fwrr_queue_by_weight
      Src: /src/haproxy/src/lb_fwrr.c:350,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 357
    functionName: fwrr_init_server_groups
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - update_backend_weight
    - fwrr_queue_by_weight
    - recount_servers
    - srv_lb_commit_status
    linkageType: ''
    returnType: int
    signature: int fwrr_init_server_groups(struct proxy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_delete
      Src: /src/haproxy/src/lb_fwrr.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - tgid
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: fwrr_dequeue_srv
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 2
    functionsReached:
    - eb32_delete
    linkageType: ''
    returnType: void
    signature: void fwrr_dequeue_srv(struct server *s, int tgid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fwrr.c:391,1
    - Dst: fwrr_remove_from_tree
      Src: /src/haproxy/src/lb_fwrr.c:392,1
    - Dst: fwrr_queue_by_weight
      Src: /src/haproxy/src/lb_fwrr.c:400,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/lb_fwrr.c:413,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - s
    - tgid
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 416
    functionName: fwrr_queue_srv
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 2
    functionsReached:
    - fwrr_remove_from_tree
    - srv_willbe_usable
    - eb32_insert
    - fwrr_queue_by_weight
    linkageType: ''
    returnType: void
    signature: void fwrr_queue_srv(struct server *s, int tgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - tgid
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: fwrr_get_srv_init
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwrr_get_srv_init(struct server *s, int tgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - tgid
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 438
    functionName: fwrr_get_srv_next
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwrr_get_srv_next(struct server *s, int tgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - tgid
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 451
    functionName: fwrr_get_srv_down
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwrr_get_srv_down(struct server *s, int tgid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwrr_get_srv_init
      Src: /src/haproxy/src/lb_fwrr.c:466,1
    - Dst: fwrr_get_srv_next
      Src: /src/haproxy/src/lb_fwrr.c:469,1
    - Dst: fwrr_get_srv_down
      Src: /src/haproxy/src/lb_fwrr.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - tgid
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 474
    functionName: fwrr_get_srv
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 2
    functionsReached:
    - fwrr_get_srv_init
    - fwrr_get_srv_down
    - fwrr_get_srv_next
    linkageType: ''
    returnType: void
    signature: void fwrr_get_srv(struct server *s, int tgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - grp
    - next_weight
    argTypes:
    - struct fwrr_group*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: fwrr_switch_trees
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwrr_switch_trees(struct fwrr_group *grp, int next_weight)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_fwrr.c:504,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_fwrr.c:506,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_fwrr.c:516,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_fwrr.c:518,1
    - Dst: fwrr_get_srv_init
      Src: /src/haproxy/src/lb_fwrr.c:521,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - grp
    argTypes:
    - struct fwrr_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 526
    functionName: fwrr_get_server_from_group
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached:
    - fwrr_get_srv_init
    - eb32_entry
    - eb32_first
    linkageType: ''
    returnType: struct server
    signature: struct server *fwrr_get_server_from_group(struct fwrr_group *grp)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - grp
    - s
    - next_weight
    argTypes:
    - struct fwrr_group*
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 553
    functionName: fwrr_update_position
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwrr_update_position(struct fwrr_group *grp, struct server *s,
      int next_weight)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fwrr.c:568,1
    - Dst: fwrr_get_server_from_group
      Src: /src/haproxy/src/lb_fwrr.c:598,1
    - Dst: fwrr_switch_trees
      Src: /src/haproxy/src/lb_fwrr.c:609,1
    - Dst: fwrr_update_position
      Src: /src/haproxy/src/lb_fwrr.c:617,1
    - Dst: fwrr_dequeue_srv
      Src: /src/haproxy/src/lb_fwrr.c:618,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_fwrr.c:620,1
    - Dst: fwrr_queue_srv
      Src: /src/haproxy/src/lb_fwrr.c:636,1
    - Dst: unlikely
      Src: /src/haproxy/src/lb_fwrr.c:644,1
    - Dst: likely
      Src: /src/haproxy/src/lb_fwrr.c:651,1
    - Dst: fwrr_queue_by_weight
      Src: /src/haproxy/src/lb_fwrr.c:652,1
    - Dst: likely
      Src: /src/haproxy/src/lb_fwrr.c:660,1
    - Dst: fwrr_queue_srv
      Src: /src/haproxy/src/lb_fwrr.c:661,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwrr.c:667,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 76
    argCount: 2
    argNames:
    - p
    - srvtoavoid
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 669
    functionName: fwrr_get_next_server
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached:
    - fwrr_queue_srv
    - unlikely
    - HA_RWLOCK_WRUNLOCK
    - fwrr_queue_by_weight
    - fwrr_get_server_from_group
    - likely
    - fwrr_update_position
    - HA_RWLOCK_WRLOCK
    - srv_dynamic_maxconn
    - fwrr_dequeue_srv
    - fwrr_switch_trees
    linkageType: ''
    returnType: struct server
    signature: struct server *fwrr_get_next_server(struct proxy *p, struct server
      *srvtoavoid)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EXTRA_COUNTERS_BASE
      Src: /src/haproxy/src/mux_h1.c:287,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:291,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h1.c:291,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:294,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h1.c:294,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:297,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h1.c:297,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:300,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h1.c:300,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:303,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h1.c:303,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:306,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h1.c:306,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:310,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h1.c:310,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:313,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h1.c:313,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 4
    argNames:
    - mod
    - ctr
    - stats
    - selected_field
    argTypes:
    - struct stats_module*
    - struct extra_counters*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 330
    functionName: h1_fill_stats
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - EXTRA_COUNTERS_AGGR
    - mkf_u64
    - EXTRA_COUNTERS_BASE
    linkageType: ''
    returnType: int
    signature: "int h1_fill_stats(struct stats_module *mod, struct extra_counters
      *ctr,\n                         struct field *stats, unsigned int *selected_field)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: h1s_sc
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline *h1s_sc(const struct h1s *h1s)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:392,1
    - Dst: h1c_st_to_str
      Src: /src/haproxy/src/mux_h1.c:392,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:396,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_h1.c:397,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_h1.c:397,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:400,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:402,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:413,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/mux_h1.c:416,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:417,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h1.c:418,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:419,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:422,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/mux_h1.c:423,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/mux_h1.c:423,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/mux_h1.c:424,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/mux_h1.c:424,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/mux_h1.c:425,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/mux_h1.c:425,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:429,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:431,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:432,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:434,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h1.c:435,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_h1.c:436,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h1.c:436,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h1.c:436,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:438,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h1.c:439,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_h1.c:440,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h1.c:440,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h1.c:440,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:442,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:444,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_h1.c:445,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:446,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:447,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:447,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:447,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:457,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:458,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h1.c:458,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h1.c:459,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:459,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:462,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:463,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h1.c:463,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h1.c:464,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:464,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:467,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:486,1
    - Dst: htx_dump
      Src: /src/haproxy/src/mux_h1.c:487,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 57
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 489
    functionName: h1_trace
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1c_st_to_str
    - chunk_appendf
    - TICKS_TO_MS
    - htx_nbblks
    - htx_get_blk_ptr
    - HTX_SL_P1_LEN
    - b_head_ofs
    - htx_get_blk_type
    - chunk_memcat
    - h1m_state_str
    - tick_is_expired
    - htx_get_head_blk
    - human_time
    - b_orig
    - b_data
    - b_size
    - HTX_SL_P3_LEN
    - h1s_sc
    - se_fl_get
    - HTX_SL_P2_PTR
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - HTX_SL_P2_LEN
    - htx_dump
    linkageType: ''
    returnType: void
    signature: "void h1_trace(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n                     const struct ist where, const struct
      ist func,\n                     const void *a1, const void *a2, const void *a3,
      const void *a4)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:513,1
    - Dst: sc_strm
      Src: /src/haproxy/src/mux_h1.c:514,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:514,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 6
    argNames:
    - ctx
    - src
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - struct trace_ctx*
    - struct trace_source*
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 516
    functionName: h1_trace_fill_ctx
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - sc_strm
    - h1s_sc
    linkageType: ''
    returnType: void
    signature: "void h1_trace_fill_ctx(struct trace_ctx *ctx, const struct trace_source
      *src,\n                              const void *a1, const void *a2, const void
      *a3, const void *a4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - h1c
    - ','
    - inc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: h1_report_glitch
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h1_report_glitch(h1c, inc, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - h1c
    - increment
    argTypes:
    - struct h1c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 552
    functionName: _h1_report_glitch
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: int
    signature: int _h1_report_glitch(struct h1c *h1c, int increment)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:574,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:580,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 590
    functionName: h1_recv_allowed
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    linkageType: ''
    returnType: int
    signature: int h1_recv_allowed(const struct h1c *h1c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:608,1
    - Dst: h1_wake_stream_for_send
      Src: /src/haproxy/src/mux_h1.c:611,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:615,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:618,1
    - Dst: h1_recv_allowed
      Src: /src/haproxy/src/mux_h1.c:621,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:622,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:623,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - target
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 627
    functionName: h1_buf_available
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_wake_stream_for_send
    - h1_recv_allowed
    - tasklet_wakeup
    - TRACE_STATE
    linkageType: ''
    returnType: int
    signature: int h1_buf_available(void *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:640,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h1.c:640,1
    - Dst: b_queue
      Src: /src/haproxy/src/mux_h1.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 649
    functionName: h1_get_ibuf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_alloc
    - b_queue
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *h1_get_ibuf(struct h1c *h1c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:659,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h1.c:659,1
    - Dst: b_queue
      Src: /src/haproxy/src/mux_h1.c:661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 668
    functionName: h1_get_obuf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_alloc
    - b_queue
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *h1_get_obuf(struct h1c *h1c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:679,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h1.c:679,1
    - Dst: b_queue
      Src: /src/haproxy/src/mux_h1.c:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 688
    functionName: h1_get_rxbuf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_alloc
    - b_queue
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *h1_get_rxbuf(struct h1s *h1s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_free
      Src: /src/haproxy/src/mux_h1.c:697,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h1.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h1c
    - bptr
    argTypes:
    - struct h1c*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 700
    functionName: h1_release_buf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - offer_buffers
    - b_free
    linkageType: ''
    returnType: void
    signature: void h1_release_buf(struct h1c *h1c, struct buffer *bptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tevt_report_event
      Src: /src/haproxy/src/mux_h1.c:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h1c
    - type
    argTypes:
    - struct h1c*
    - enum muxc_term_event_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 709
    functionName: h1c_report_term_evt
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - tevt_report_event
    linkageType: ''
    returnType: void
    signature: void h1c_report_term_evt(struct h1c *h1c, enum muxc_term_event_type
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 717
    functionName: h1_is_alive
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h1_is_alive(const struct h1c *h1c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: h1_close
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_data
    linkageType: ''
    returnType: void
    signature: void h1_close(struct h1c *h1c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 738
    functionName: h1_used_streams
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h1_used_streams(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h1_used_streams
      Src: /src/haproxy/src/mux_h1.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 744
    functionName: h1_avail_streams
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_used_streams
    linkageType: ''
    returnType: int
    signature: int h1_avail_streams(struct connection *conn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: h1_is_alive
      Src: /src/haproxy/src/mux_h1.c:752,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:757,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:758,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:761,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:763,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:764,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:768,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:768,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:769,1
    - Dst: tick_first
      Src: /src/haproxy/src/mux_h1.c:774,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:774,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:775,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:784,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:788,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_h1.c:796,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/mux_h1.c:801,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_h1.c:805,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_h1.c:805,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:806,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_h1.c:813,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:816,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_h1.c:817,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 819
    functionName: h1_refresh_timeout
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - tick_remain
    - h1_is_alive
    - statistical_prng_range
    - task_wakeup
    - TRACE_DEVEL
    - task_queue
    - tick_is_le
    - tick_first
    - b_data
    - tick_isset
    - tick_add_ifset
    - tick_add
    linkageType: ''
    returnType: void
    signature: void h1_refresh_timeout(struct h1c *h1c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:824,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:829,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:831,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:832,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:833,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:834,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:837,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:838,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:843,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:844,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:845,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:850,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 852
    functionName: h1_set_idle_expiration
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - tick_add_ifset
    - b_data
    - TRACE_DEVEL
    - tick_isset
    linkageType: ''
    returnType: void
    signature: void h1_set_idle_expiration(struct h1c *h1c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:870,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - h1s
    - h1m
    argTypes:
    - struct h1s*
    - struct h1m*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 871
    functionName: h1s_set_se_eoi_cond
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    linkageType: ''
    returnType: void
    signature: void h1s_set_se_eoi_cond(struct h1s *h1s, const struct h1m *h1m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 880
    functionName: h1s_data_pending
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_data
    linkageType: ''
    returnType: size_t
    signature: size_t h1s_data_pending(const struct h1s *h1s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h1s
    - count
    argTypes:
    - struct h1s*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 888
    functionName: h1s_consume_kop
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void h1s_consume_kop(struct h1s *h1s, uint64_t count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:903,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:906,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:908,1
    - Dst: sc_new_from_endp
      Src: /src/haproxy/src/mux_h1.c:910,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:911,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:916,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:917,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:920,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - h1s
    - input
    argTypes:
    - struct h1s*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 922
    functionName: h1s_new_sc
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - TRACE_LEAVE
    - TRACE_ERROR
    - TRACE_DEVEL
    - TRACE_ENTER
    - sc_new_from_endp
    - h1s_sc
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *h1s_new_sc(struct h1s *h1s, struct buffer *input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:926,1
    - Dst: stream_upgrade_from_sc
      Src: /src/haproxy/src/mux_h1.c:928,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:928,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:929,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:933,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:936,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:937,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - h1s
    - input
    argTypes:
    - struct h1s*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 942
    functionName: h1s_upgrade_sc
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_ERROR
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - stream_upgrade_from_sc
    - h1s_sc
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *h1s_upgrade_sc(struct h1s *h1s, struct buffer *input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:948,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_h1.c:950,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:952,1
    - Dst: memset
      Src: /src/haproxy/src/mux_h1.c:962,1
    - Dst: h1m_init_req
      Src: /src/haproxy/src/mux_h1.c:964,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/mux_h1.c:967,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:977,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 983
    functionName: h1s_new
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - memset
    - pool_alloc
    - h1m_init_req
    - TRACE_ERROR
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - h1m_init_res
    linkageType: ''
    returnType: struct h1s
    signature: struct h1s *h1s_new(struct h1c *h1c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:989,1
    - Dst: h1s_new
      Src: /src/haproxy/src/mux_h1.c:991,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_h1.c:996,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/mux_h1.c:1001,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:1006,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:1014,1
    - Dst: se_expect_no_data
      Src: /src/haproxy/src/mux_h1.c:1015,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:1021,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:1022,1
    - Dst: h1_set_idle_expiration
      Src: /src/haproxy/src/mux_h1.c:1025,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1027,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:1028,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1032,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:1033,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - h1c
    - sc
    - sess
    argTypes:
    - struct h1c*
    - struct stconn*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 1035
    functionName: h1c_frt_stream_new
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - TRACE_STATE
    - se_expect_no_data
    - sc_attach_mux
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - h1s_new
    - sedesc_new
    - h1_set_idle_expiration
    - h1s_destroy
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: struct h1s
    signature: struct h1s *h1c_frt_stream_new(struct h1c *h1c, struct stconn *sc,
      struct session *sess)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:1041,1
    - Dst: h1s_new
      Src: /src/haproxy/src/mux_h1.c:1043,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_h1.c:1047,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:1055,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:1061,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:1062,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1064,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:1065,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1069,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:1070,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - h1c
    - sc
    - sess
    argTypes:
    - struct h1c*
    - struct stconn*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1072
    functionName: h1c_bck_stream_new
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - TRACE_STATE
    - TRACE_LEAVE
    - sc_attach_mux
    - TRACE_DEVEL
    - TRACE_ENTER
    - h1s_new
    - h1s_destroy
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: struct h1s
    signature: struct h1s *h1c_bck_stream_new(struct h1c *h1c, struct stconn *sc,
      struct session *sess)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:1079,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:1085,1
    - Dst: h1_is_alive
      Src: /src/haproxy/src/mux_h1.c:1093,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1099,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:1102,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1103,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/mux_h1.c:1106,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:1107,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:1107,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_h1.c:1108,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h1.c:1109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1111
    functionName: h1s_destroy
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 2
    functionsReached:
    - h1_close
    - TRACE_STATE
    - h1_is_alive
    - BUG_ON
    - h1_release_buf
    - TRACE_POINT
    - HA_ATOMIC_DEC
    - se_fl_test
    - pool_free
    - sedesc_free
    linkageType: ''
    returnType: void
    signature: void h1s_destroy(struct h1s *h1s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:1123,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:1125,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1126,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1130,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1134,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1138,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1142,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1147,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:1151,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1153
    functionName: h1s_must_shut_conn
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - se_fl_test
    - TRACE_LEAVE
    - TRACE_ENTER
    - TRACE_STATE
    linkageType: ''
    returnType: int
    signature: int h1s_must_shut_conn(struct h1s *h1s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:1166,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:1177,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1191,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:1192,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:1193,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1194,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/mux_h1.c:1200,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_h1.c:1203,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_h1.c:1203,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_h1.c:1212,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:1213,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_h1.c:1214,1
    - Dst: session_check_idle_conn
      Src: /src/haproxy/src/mux_h1.c:1217,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1218,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_h1.c:1219,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_h1.c:1219,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_h1.c:1233,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:1234,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_h1.c:1235,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_h1.c:1237,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h1.c:1237,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_h1.c:1239,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_h1.c:1239,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1240,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1255,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1256,1
    - Dst: h1_release
      Src: /src/haproxy/src/mux_h1.c:1257,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:1265,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1265,1
    - Dst: h1_process
      Src: /src/haproxy/src/mux_h1.c:1266,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:1272,1
    - Dst: h1_set_idle_expiration
      Src: /src/haproxy/src/mux_h1.c:1274,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:1275,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:1278,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1282,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1160
    functionDepth: 3
    functionLinenumber: 1160
    functionLinenumberEnd: 1284
    functionName: h1s_finish_detach
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TRACE_ENTER
    - h1_release
    - HA_ATOMIC_OR
    - objt_server
    - TRACE_DEVEL
    - struct h1c*::conn::xprt::subscribe
    - destroy
    - h1_set_idle_expiration
    - h1_close
    - TRACE_LEAVE
    - CALL_MUX_NO_RET
    - h1_release_buf
    - b_data
    - session_check_idle_conn
    - session_add_conn
    - h1_process
    - srv_add_to_idle_list
    - h1_refresh_timeout
    - h1s_destroy
    - xprt_set_idle
    linkageType: ''
    returnType: int
    signature: int h1s_finish_detach(struct h1s *h1s)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:1302,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_h1.c:1304,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:1306,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h1.c:1323,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_h1.c:1324,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h1.c:1332,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:1335,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h1.c:1338,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:1342,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h1.c:1345,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h1.c:1348,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_h1.c:1352,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:1354,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:1360,1
    - Dst: h1c_bck_stream_new
      Src: /src/haproxy/src/mux_h1.c:1366,1
    - Dst: h1c_frt_stream_new
      Src: /src/haproxy/src/mux_h1.c:1371,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1376,1
    - Dst: h1_set_idle_expiration
      Src: /src/haproxy/src/mux_h1.c:1380,1
    - Dst: tick_first
      Src: /src/haproxy/src/mux_h1.c:1381,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_h1.c:1382,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1385,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:1386,1
    - Dst: h1_recv_allowed
      Src: /src/haproxy/src/mux_h1.c:1387,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h1.c:1388,1
    - Dst: h1_recv
      Src: /src/haproxy/src/mux_h1.c:1393,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:1394,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:1396,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h1.c:1403,1
    - Dst: proxy_inc_fe_cum_sess_ver_ctr
      Src: /src/haproxy/src/mux_h1.c:1404,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:1405,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:1406,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:1409,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_h1.c:1413,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h1.c:1414,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h1.c:1415,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h1.c:1417,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h1.c:1418,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1420,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 96
    argCount: 4
    argNames:
    - conn
    - proxy
    - sess
    - input
    argTypes:
    - struct connection*
    - struct proxy*
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1295
    functionDepth: 3
    functionLinenumber: 1295
    functionLinenumberEnd: 1422
    functionName: h1_init
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - task_queue
    - TRACE_ENTER
    - LIST_APPEND
    - tasklet_free
    - HA_ATOMIC_INC
    - LIST_INIT
    - pool_alloc
    - task_destroy
    - h1_recv
    - TRACE_DEVEL
    - tasklet_new
    - proxy_inc_fe_cum_sess_ver_ctr
    - struct h1c*::conn::xprt::subscribe
    - h1_set_idle_expiration
    - pool_free
    - TRACE_LEAVE
    - TRACE_ERROR
    - LIST_DEL_INIT
    - h1_recv_allowed
    - tasklet_wakeup
    - tick_first
    - b_data
    - tick_add_ifset
    - EXTRA_COUNTERS_GET
    - tick_isset
    - h1c_frt_stream_new
    - h1c_bck_stream_new
    - task_new_here
    linkageType: ''
    returnType: int
    signature: "int h1_init(struct connection *conn, struct proxy *proxy, struct session
      *sess,\n\t\t   struct buffer *input)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:1433,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1440,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_h1.c:1443,1
    - Dst: conn_upgrade_mux_fe
      Src: /src/haproxy/src/mux_h1.c:1445,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1445,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:1450,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h1.c:1451,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:1454,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1454,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:1455,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1455,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/mux_h1.c:1457,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:1458,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:1459,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_h1.c:1463,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h1.c:1468,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:1472,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_h1.c:1475,1
    - Dst: h1_shutw_conn
      Src: /src/haproxy/src/mux_h1.c:1477,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/mux_h1.c:1480,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h1.c:1481,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1486,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/mux_h1.c:1488,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/mux_h1.c:1489,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/mux_h1.c:1491,1
    - Dst: conn_free
      Src: /src/haproxy/src/mux_h1.c:1492,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1429
    functionDepth: 4
    functionLinenumber: 1429
    functionLinenumberEnd: 1495
    functionName: h1_release
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 1
    functionsReached:
    - b_dequeue
    - struct connection*::xprt::unsubscribe
    - ist
    - TRACE_DEVEL
    - struct connection*::destroy_cb
    - COUNT_IF
    - conn_upgrade_mux_fe
    - conn_stop_tracking
    - pool_free
    - conn_full_close
    - TRACE_ERROR
    - h1_release_buf
    - b_data
    - conn_free
    - task_wakeup
    - HA_ATOMIC_DEC
    - TRACE_POINT
    - sess_log
    - h1s_destroy
    - h1_shutw_conn
    - tasklet_free
    linkageType: ''
    returnType: int
    signature: int h1_release(struct h1c *h1c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/mux_h1.c:1505,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/mux_h1.c:1507,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - h1m
    - sl
    argTypes:
    - struct h1m*
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1503
    functionDepth: 1
    functionLinenumber: 1503
    functionLinenumberEnd: 1511
    functionName: h1_parse_req_vsn
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - HTX_SL_REQ_VLEN
    - HTX_SL_REQ_VPTR
    linkageType: ''
    returnType: void
    signature: void h1_parse_req_vsn(struct h1m *h1m, const struct htx_sl *sl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HTX_SL_RES_VPTR
      Src: /src/haproxy/src/mux_h1.c:1518,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/mux_h1.c:1520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - h1m
    - sl
    argTypes:
    - struct h1m*
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1524
    functionName: h1_parse_res_vsn
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - HTX_SL_RES_VLEN
    - HTX_SL_RES_VPTR
    linkageType: ''
    returnType: void
    signature: void h1_parse_res_vsn(struct h1m *h1m, const struct htx_sl *sl)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1549,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1558,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1564,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1573,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:1588,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_h1.c:1589,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_h1.c:1594,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1602,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 2
    argNames:
    - h1s
    - h1m
    argTypes:
    - struct h1s*
    - struct h1m*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1605
    functionName: h1_set_cli_conn_mode
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - statistical_prng_range
    - tick_isset
    - tick_remain
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void h1_set_cli_conn_mode(struct h1s *h1s, struct h1m *h1m)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1632,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1642,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1651,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1659,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1666,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 2
    argNames:
    - h1s
    - h1m
    argTypes:
    - struct h1s*
    - struct h1m*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1612
    functionDepth: 1
    functionLinenumber: 1612
    functionLinenumberEnd: 1668
    functionName: h1_set_srv_conn_mode
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void h1_set_srv_conn_mode(struct h1s *h1s, struct h1m *h1m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1682,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1683,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1688,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1689,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - h1s
    - h1m
    - conn_val
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1692
    functionName: h1_update_req_conn_value
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - ist
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void h1_update_req_conn_value(struct h1s *h1s, struct h1m *h1m, struct
      ist *conn_val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1705,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1706,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1711,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1712,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - h1s
    - h1m
    - conn_val
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1715
    functionName: h1_update_res_conn_value
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - ist
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void h1_update_res_conn_value(struct h1s *h1s, struct h1m *h1m, struct
      ist *conn_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h1_set_cli_conn_mode
      Src: /src/haproxy/src/mux_h1.c:1720,1
    - Dst: h1_set_srv_conn_mode
      Src: /src/haproxy/src/mux_h1.c:1722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - h1s
    - h1m
    - htx
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1717
    functionDepth: 2
    functionLinenumber: 1717
    functionLinenumberEnd: 1723
    functionName: h1_process_input_conn_mode
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_set_srv_conn_mode
    - h1_set_cli_conn_mode
    linkageType: ''
    returnType: void
    signature: void h1_process_input_conn_mode(struct h1s *h1s, struct h1m *h1m, struct
      htx *htx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h1_set_cli_conn_mode
      Src: /src/haproxy/src/mux_h1.c:1728,1
    - Dst: h1_set_srv_conn_mode
      Src: /src/haproxy/src/mux_h1.c:1730,1
    - Dst: h1_update_req_conn_value
      Src: /src/haproxy/src/mux_h1.c:1733,1
    - Dst: h1_update_res_conn_value
      Src: /src/haproxy/src/mux_h1.c:1735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - h1s
    - h1m
    - conn_val
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1725
    functionDepth: 2
    functionLinenumber: 1725
    functionLinenumberEnd: 1736
    functionName: h1_process_output_conn_mode
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_update_req_conn_value
    - h1_set_srv_conn_mode
    - h1_update_res_conn_value
    - h1_set_cli_conn_mode
    linkageType: ''
    returnType: void
    signature: void h1_process_output_conn_mode(struct h1s *h1s, struct h1m *h1m,
      struct ist *conn_val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h1.c:1747,1
    - Dst: ebis_lookup_len
      Src: /src/haproxy/src/mux_h1.c:1758,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h1.c:1761,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - h1s
    - h1m
    - name
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1741
    functionDepth: 1
    functionLinenumber: 1741
    functionLinenumberEnd: 1764
    functionName: h1_adjust_case_outgoing_hdr
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - ebis_lookup_len
    - container_of
    - eb_is_empty
    linkageType: ''
    returnType: void
    signature: void h1_adjust_case_outgoing_hdr(struct h1s *h1s, struct h1m *h1m,
      struct ist *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:1772,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_h1.c:1777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - es
    argTypes:
    - struct buffer*
    - struct error_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1770
    functionDepth: 1
    functionLinenumber: 1770
    functionLinenumberEnd: 1779
    functionName: h1_show_error_snapshot
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1m_state_str
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void h1_show_error_snapshot(struct buffer *out, const struct error_snapshot
      *es)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/src/mux_h1.c:1798,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:1798,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/mux_h1.c:1800,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:1800,1
    - Dst: proxy_capture_error
      Src: /src/haproxy/src/mux_h1.c:1814,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - h1c
    - h1s
    - h1m
    - buf
    argTypes:
    - struct h1c*
    - struct h1s*
    - struct h1m*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1788
    functionDepth: 1
    functionLinenumber: 1788
    functionLinenumberEnd: 1818
    functionName: h1_capture_bad_message
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1s_sc
    - proxy_capture_error
    - __sc_strm
    linkageType: ''
    returnType: void
    signature: "void h1_capture_bad_message(struct h1c *h1c, struct h1s *h1s,\n\t\t\t\t
      \  struct h1m *h1m, struct buffer *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/mux_h1.c:1833,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:1848,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - chksz
    - length
    argTypes:
    - struct buffer*
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1829
    functionDepth: 1
    functionLinenumber: 1829
    functionLinenumberEnd: 1849
    functionName: h1_prepend_chunk_size
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_head
    - b_add
    linkageType: ''
    returnType: void
    signature: void h1_prepend_chunk_size(struct buffer *buf, uint64_t chksz, size_t
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:1866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - chksz
    argTypes:
    - struct buffer*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1854
    functionDepth: 1
    functionLinenumber: 1854
    functionLinenumberEnd: 1867
    functionName: h1_append_chunk_size
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - chunk_memcat
    linkageType: ''
    returnType: int
    signature: int h1_append_chunk_size(struct buffer *buf, uint64_t chksz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/mux_h1.c:1877,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:1881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1873
    functionDepth: 1
    functionLinenumber: 1873
    functionLinenumberEnd: 1882
    functionName: h1_prepend_chunk_crlf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_head
    - b_add
    linkageType: ''
    returnType: void
    signature: void h1_prepend_chunk_crlf(struct buffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h1.c:1889,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1889,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h1.c:1890,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1890,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1887
    functionDepth: 1
    functionLinenumber: 1887
    functionLinenumberEnd: 1892
    functionName: h1_append_chunk_crlf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_data
    - b_add
    linkageType: ''
    returnType: void
    signature: void h1_append_chunk_crlf(struct buffer *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1908,1
    - Dst: h1_wake_stream_for_recv
      Src: /src/haproxy/src/mux_h1.c:1912,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1913,1
    - Dst: h1_wake_stream_for_send
      Src: /src/haproxy/src/mux_h1.c:1917,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 1920
    functionName: h1_set_tunnel_mode
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_wake_stream_for_send
    - TRACE_STATE
    - h1_wake_stream_for_recv
    linkageType: ''
    returnType: void
    signature: void h1_set_tunnel_mode(struct h1s *h1s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_head
      Src: /src/haproxy/src/mux_h1.c:1941,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/mux_h1.c:1942,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/mux_h1.c:1943,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:1944,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h1.c:1952,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:1953,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h1.c:1956,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1956,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h1.c:1962,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h1.c:1966,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1966,1
    - Dst: h1_calculate_ws_output_key
      Src: /src/haproxy/src/mux_h1.c:1973,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h1.c:1974,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1974,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 3
    argNames:
    - h1s
    - h1m
    - htx
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1934
    functionDepth: 1
    functionLinenumber: 1934
    functionLinenumberEnd: 1987
    functionName: h1_search_websocket_key
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - isteqi
    - ist
    - memcpy
    - htx_get_blk
    - htx_get_blk_value
    - htx_get_blk_type
    - h1_calculate_ws_output_key
    - htx_get_head
    - htx_get_blk_name
    - htx_get_next
    linkageType: ''
    returnType: int
    signature: int h1_search_websocket_key(struct h1s *h1s, struct h1m *h1m, struct
      htx *htx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2001,1
    - Dst: h1_parse_msg_hdrs
      Src: /src/haproxy/src/mux_h1.c:2008,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2010,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2015,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2016,1
    - Dst: h1_report_glitch
      Src: /src/haproxy/src/mux_h1.c:2017,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2020,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2041,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2042,1
    - Dst: h1_report_glitch
      Src: /src/haproxy/src/mux_h1.c:2043,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2058,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2059,1
    - Dst: h1_report_glitch
      Src: /src/haproxy/src/mux_h1.c:2060,1
    - Dst: h1_search_websocket_key
      Src: /src/haproxy/src/mux_h1.c:2068,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2071,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2077,1
    - Dst: h1_report_glitch
      Src: /src/haproxy/src/mux_h1.c:2080,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2084,1
    - Dst: h1_report_glitch
      Src: /src/haproxy/src/mux_h1.c:2087,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2097,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2098,1
    - Dst: h1_report_glitch
      Src: /src/haproxy/src/mux_h1.c:2099,1
    - Dst: h1_process_input_conn_mode
      Src: /src/haproxy/src/mux_h1.c:2112,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2116,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 85
    argCount: 6
    argNames:
    - h1s
    - h1m
    - htx
    - buf
    - ofs
    - max
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    - struct buffer*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 1995
    functionDepth: 3
    functionLinenumber: 1995
    functionLinenumberEnd: 2118
    functionName: h1_handle_headers
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_parse_msg_hdrs
    - h1_process_input_conn_mode
    - TRACE_STATE
    - TRACE_ERROR
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - h1_report_glitch
    - h1_capture_bad_message
    - h1_search_websocket_key
    linkageType: ''
    returnType: size_t
    signature: "size_t h1_handle_headers(struct h1s *h1s, struct h1m *h1m, struct
      htx *htx,\n\t\t\t\tstruct buffer *buf, size_t *ofs, size_t max)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2131,1
    - Dst: h1_parse_msg_data
      Src: /src/haproxy/src/mux_h1.c:2132,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2134,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2137,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2138,1
    - Dst: h1_report_glitch
      Src: /src/haproxy/src/mux_h1.c:2139,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2147,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2148,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 7
    argNames:
    - h1s
    - h1m
    - htx
    - buf
    - ofs
    - max
    - htxbuf
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx**
    - struct buffer*
    - size_t*
    - size_t
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2125
    functionDepth: 2
    functionLinenumber: 2125
    functionLinenumberEnd: 2154
    functionName: h1_handle_data
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_ERROR
    - h1_parse_msg_data
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - h1_report_glitch
    - b_data
    - h1_capture_bad_message
    linkageType: ''
    returnType: size_t
    signature: "size_t h1_handle_data(struct h1s *h1s, struct h1m *h1m, struct htx
      **htx,\n\t\t\t     struct buffer *buf, size_t *ofs, size_t max,\n\t\t\t     struct
      buffer *htxbuf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2168,1
    - Dst: h1_parse_msg_tlrs
      Src: /src/haproxy/src/mux_h1.c:2169,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2171,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2174,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2175,1
    - Dst: h1_report_glitch
      Src: /src/haproxy/src/mux_h1.c:2176,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2179,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - h1s
    - h1m
    - htx
    - buf
    - ofs
    - max
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    - struct buffer*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2163
    functionDepth: 2
    functionLinenumber: 2163
    functionLinenumberEnd: 2191
    functionName: h1_handle_trailers
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_ERROR
    - TRACE_LEAVE
    - h1_parse_msg_tlrs
    - TRACE_DEVEL
    - TRACE_ENTER
    - h1_report_glitch
    - h1_capture_bad_message
    linkageType: ''
    returnType: size_t
    signature: "size_t h1_handle_trailers(struct h1s *h1s, struct h1m *h1m, struct
      htx *htx,\n\t\t\t\t struct buffer *buf, size_t *ofs, size_t max)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h1.c:2210,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2211,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/mux_h1.c:2227,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2230,1
    - Dst: h1_handle_headers
      Src: /src/haproxy/src/mux_h1.c:2231,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h1.c:2235,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/mux_h1.c:2240,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2242,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2246,1
    - Dst: h1_handle_data
      Src: /src/haproxy/src/mux_h1.c:2247,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2251,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2255,1
    - Dst: h1_handle_trailers
      Src: /src/haproxy/src/mux_h1.c:2256,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2260,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h1.c:2264,1
    - Dst: se_expect_data
      Src: /src/haproxy/src/mux_h1.c:2271,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2277,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2280,1
    - Dst: h1_set_tunnel_mode
      Src: /src/haproxy/src/mux_h1.c:2283,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2289,1
    - Dst: h1_wake_stream_for_send
      Src: /src/haproxy/src/mux_h1.c:2293,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2294,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2300,1
    - Dst: h1_handle_data
      Src: /src/haproxy/src/mux_h1.c:2301,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2305,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/mux_h1.c:2313,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2318,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2321,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2323,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2325,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2329,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2331,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2333,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h1.c:2338,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2341,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_h1.c:2344,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2346,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:2347,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2350,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:2351,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:2361,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2364,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:2365,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:2365,1
    - Dst: h1s_new_sc
      Src: /src/haproxy/src/mux_h1.c:2366,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2372,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:2373,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:2373,1
    - Dst: h1s_upgrade_sc
      Src: /src/haproxy/src/mux_h1.c:2374,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2376,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2387,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2388,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2391,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_h1.c:2392,1
    - Dst: h1s_set_se_eoi_cond
      Src: /src/haproxy/src/mux_h1.c:2396,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2406,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2407,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_h1.c:2410,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2413,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2414,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2418,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2419,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2422,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2424,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2425,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:2429,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2430,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2431,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2434,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2435,1
    - Dst: h1_wake_stream_for_send
      Src: /src/haproxy/src/mux_h1.c:2441,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2442,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2447,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:2449,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2450,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2451,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2454,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2455,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2457,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h1.c:2462,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2463,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h1.c:2467,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2468,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2469,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 199
    argCount: 3
    argNames:
    - h1c
    - buf
    - count
    argTypes:
    - struct h1c*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2200
    functionDepth: 4
    functionLinenumber: 2200
    functionLinenumberEnd: 2471
    functionName: h1_process_demux
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - h1_set_tunnel_mode
    - se_fl_test
    - h1c_report_term_evt
    - TRACE_DEVEL
    - h1s_set_se_eoi_cond
    - h1_handle_trailers
    - struct h1c*::conn::xprt::subscribe
    - se_expect_data
    - htx_used_space
    - h1_capture_bad_message
    - htx_from_buf
    - se_fl_set
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - h1_handle_data
    - h1_release_buf
    - b_data
    - se_report_term_evt
    - b_del
    - h1m_init_res
    - h1_handle_headers
    - h1s_sc
    - h1s_upgrade_sc
    - htx_to_buf
    - TRACE_STATE
    - BUG_ON
    - h1s_new_sc
    - h1_wake_stream_for_send
    - se_fl_clr
    - buf_room_for_htx_data
    - TRACE_USER
    linkageType: ''
    returnType: size_t
    signature: size_t h1_process_demux(struct h1c *h1c, struct buffer *buf, size_t
      count)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2487,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:2490,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:2493,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:2494,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:2496,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h1.c:2504,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:2506,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:2507,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2507,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:2508,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:2508,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:2508,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h1.c:2510,1
    - Dst: h1_format_htx_reqline
      Src: /src/haproxy/src/mux_h1.c:2511,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:2514,1
    - Dst: h1_parse_req_vsn
      Src: /src/haproxy/src/mux_h1.c:2517,1
    - Dst: h1_wake_stream_for_recv
      Src: /src/haproxy/src/mux_h1.c:2536,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2537,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:2542,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2545,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2549,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2556,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2557,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 4
    argNames:
    - h1s
    - h1m
    - htx
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2477
    functionDepth: 2
    functionLinenumber: 2477
    functionLinenumberEnd: 2560
    functionName: h1_make_reqline
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - TRACE_ENTER
    - htx_get_blk_ptr
    - b_contig_space
    - h1_parse_req_vsn
    - b_tail
    - htx_get_blk_type
    - b_make
    - h1_format_htx_reqline
    - htx_get_head_blk
    - se_fl_set
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_add
    - h1_wake_stream_for_recv
    - b_data
    - b_slow_realign
    - b_space_wraps
    - TRACE_STATE
    - htx_remove_blk
    - TRACE_USER
    linkageType: ''
    returnType: size_t
    signature: size_t h1_make_reqline(struct h1s *h1s, struct h1m *h1m, struct htx
      *htx, size_t count)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2576,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:2579,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:2583,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:2584,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:2587,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h1.c:2595,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:2597,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:2598,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2598,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:2599,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:2599,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:2599,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h1.c:2601,1
    - Dst: h1_format_htx_stline
      Src: /src/haproxy/src/mux_h1.c:2602,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:2605,1
    - Dst: h1_parse_res_vsn
      Src: /src/haproxy/src/mux_h1.c:2608,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:2626,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2629,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2633,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2640,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2641,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 4
    argNames:
    - h1s
    - h1m
    - htx
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2644
      start: 2566
    functionDepth: 2
    functionLinenumber: 2566
    functionLinenumberEnd: 2644
    functionName: h1_make_stline
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - TRACE_ENTER
    - htx_get_blk_ptr
    - b_contig_space
    - b_tail
    - htx_get_blk_type
    - b_make
    - h1_parse_res_vsn
    - htx_get_head_blk
    - se_fl_set
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_add
    - b_data
    - b_slow_realign
    - b_space_wraps
    - TRACE_STATE
    - h1_format_htx_stline
    - htx_remove_blk
    - TRACE_USER
    linkageType: ''
    returnType: size_t
    signature: size_t h1_make_stline(struct h1s *h1s, struct h1m *h1m, struct htx
      *htx, size_t count)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2660,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:2662,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:2663,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2663,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:2664,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:2664,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:2664,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:2666,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:2668,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:2669,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h1.c:2675,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:2676,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2682,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2682,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2689,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2692,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2692,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/mux_h1.c:2699,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2710,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2710,1
    - Dst: h1_parse_connection_header
      Src: /src/haproxy/src/mux_h1.c:2711,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2715,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2715,1
    - Dst: h1_parse_upgrade_header
      Src: /src/haproxy/src/mux_h1.c:2716,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2720,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2720,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2721,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2721,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2724,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2724,1
    - Dst: istist
      Src: /src/haproxy/src/mux_h1.c:2728,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2728,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h1.c:2729,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2731,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h1.c:2735,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h1.c:2736,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:2741,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2742,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:2757,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:2761,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2764,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2768,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2776,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2777,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 114
    argCount: 4
    argNames:
    - h1s
    - h1m
    - htx
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2650
    functionDepth: 2
    functionLinenumber: 2650
    functionLinenumberEnd: 2780
    functionName: h1_make_headers
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - TRACE_ENTER
    - h1_parse_connection_header
    - b_contig_space
    - htx_get_blk_name
    - ist
    - h1_adjust_case_outgoing_hdr
    - b_tail
    - htx_get_blk_type
    - isteq
    - b_make
    - htx_get_head_blk
    - se_fl_set
    - isteqi
    - http_parse_cont_len_header
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_add
    - b_data
    - b_slow_realign
    - h1_format_htx_hdr
    - htx_get_blk_value
    - b_space_wraps
    - TRACE_STATE
    - htx_remove_blk
    - istist
    - h1_parse_upgrade_header
    - isttest
    linkageType: ''
    returnType: size_t
    signature: size_t h1_make_headers(struct h1s *h1s, struct h1m *h1m, struct htx
      *htx, size_t count)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2796,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:2799,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:2803,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:2804,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:2813,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:2814,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2814,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:2815,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:2815,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:2815,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2820,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2837,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2841,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:2843,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2844,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2844,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2850,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2862,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2868,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_h1.c:2871,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2875,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2879,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2880,1
    - Dst: h1_process_output_conn_mode
      Src: /src/haproxy/src/mux_h1.c:2881,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:2885,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2886,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2904,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2905,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:2907,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2908,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2910,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h1.c:2916,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h1.c:2917,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2921,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:2925,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2926,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2929,1
    - Dst: h1_generate_random_ws_input_key
      Src: /src/haproxy/src/mux_h1.c:2941,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2943,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2943,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2944,1
    - Dst: h1_calculate_ws_output_key
      Src: /src/haproxy/src/mux_h1.c:2953,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2954,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2954,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2955,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:2967,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2974,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:2978,1
    - Dst: h1_set_tunnel_mode
      Src: /src/haproxy/src/mux_h1.c:2983,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:2987,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/mux_h1.c:2990,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2993,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_h1.c:2995,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3003,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3006,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3011,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3016,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:3019,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:3022,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3024,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3028,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3035,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3036,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 178
    argCount: 4
    argNames:
    - h1s
    - h1m
    - htx
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3039
      start: 2786
    functionDepth: 3
    functionLinenumber: 2786
    functionLinenumberEnd: 3039
    functionName: h1_make_eoh
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - TRACE_ENTER
    - h1_set_tunnel_mode
    - objt_server
    - b_contig_space
    - ist
    - h1_adjust_case_outgoing_hdr
    - b_tail
    - htx_get_blk_type
    - chunk_memcat
    - h1_generate_random_ws_input_key
    - b_make
    - htx_get_head_blk
    - se_fl_set
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_add
    - b_data
    - b_slow_realign
    - h1_format_htx_hdr
    - htx_is_unique_blk
    - h1m_init_res
    - h1_process_output_conn_mode
    - b_space_wraps
    - TRACE_STATE
    - htx_remove_blk
    - h1_calculate_ws_output_key
    - isttest
    linkageType: ''
    returnType: size_t
    signature: size_t h1_make_eoh(struct h1s *h1s, struct h1m *h1m, struct htx *htx,
      size_t count)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h1.c:3049,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:3057,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:3058,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3071,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/mux_h1.c:3073,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:3074,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:3075,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:3076,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:3076,1
    - Dst: htx_reset
      Src: /src/haproxy/src/mux_h1.c:3089,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3093,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3094,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3117,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3118,1
    - Dst: h1s_consume_kop
      Src: /src/haproxy/src/mux_h1.c:3123,1
    - Dst: h1_prepend_chunk_size
      Src: /src/haproxy/src/mux_h1.c:3128,1
    - Dst: h1_prepend_chunk_crlf
      Src: /src/haproxy/src/mux_h1.c:3130,1
    - Dst: h1_append_chunk_crlf
      Src: /src/haproxy/src/mux_h1.c:3139,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3146,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3147,1
    - Dst: b_putblk
      Src: /src/haproxy/src/mux_h1.c:3152,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3159,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:3163,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:3164,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3164,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:3165,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:3165,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:3165,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3171,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3172,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3176,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:3185,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:3186,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_h1.c:3193,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:3196,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3202,1
    - Dst: h1_append_chunk_size
      Src: /src/haproxy/src/mux_h1.c:3211,1
    - Dst: h1s_consume_kop
      Src: /src/haproxy/src/mux_h1.c:3215,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3231,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3233,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3235,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:3239,1
    - Dst: h1_format_htx_data
      Src: /src/haproxy/src/mux_h1.c:3241,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3246,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3247,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3257,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3263,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3264,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3268,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3284,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:3299,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/mux_h1.c:3301,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3302,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3311,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:3312,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3314,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3317,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3324,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3325,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 208
    argCount: 4
    argNames:
    - h1s
    - h1m
    - buf
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3328
      start: 3046
    functionDepth: 2
    functionLinenumber: 3046
    functionLinenumberEnd: 3328
    functionName: h1_make_data
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - TRACE_ENTER
    - htx_nbblks
    - b_room
    - b_contig_space
    - TRACE_DEVEL
    - h1_prepend_chunk_size
    - b_tail
    - htx_get_blk_type
    - chunk_memcat
    - COUNT_IF
    - h1_prepend_chunk_crlf
    - htx_reset
    - h1_append_chunk_crlf
    - b_make
    - h1_format_htx_data
    - htx_from_buf
    - htx_get_head_blk
    - se_fl_set
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_add
    - b_data
    - b_size
    - b_slow_realign
    - htx_is_unique_blk
    - htx_get_blk_value
    - b_space_wraps
    - h1s_consume_kop
    - TRACE_STATE
    - htx_cut_data_blk
    - b_putblk
    - h1_append_chunk_size
    - htx_remove_blk
    linkageType: ''
    returnType: size_t
    signature: size_t h1_make_data(struct h1s *h1s, struct h1m *h1m, struct buffer
      *buf, size_t count)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h1.c:3338,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:3346,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:3348,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3359,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/mux_h1.c:3360,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:3361,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:3362,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:3363,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:3363,1
    - Dst: htx_reset
      Src: /src/haproxy/src/mux_h1.c:3375,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3378,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:3382,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:3383,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3383,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:3384,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:3384,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:3384,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:3389,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:3390,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3399,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3401,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:3404,1
    - Dst: h1_format_htx_data
      Src: /src/haproxy/src/mux_h1.c:3406,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:3418,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/mux_h1.c:3420,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3426,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:3427,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3430,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3434,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3442,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3443,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 75
    argCount: 4
    argNames:
    - h1s
    - h1m
    - buf
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3335
    functionDepth: 1
    functionLinenumber: 3335
    functionLinenumberEnd: 3446
    functionName: h1_make_tunnel
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - TRACE_ENTER
    - htx_nbblks
    - b_room
    - b_contig_space
    - b_tail
    - htx_get_blk_type
    - b_make
    - htx_reset
    - h1_format_htx_data
    - htx_from_buf
    - htx_get_head_blk
    - se_fl_set
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_add
    - b_data
    - b_size
    - b_slow_realign
    - htx_get_blk_value
    - b_space_wraps
    - TRACE_STATE
    - htx_cut_data_blk
    - htx_remove_blk
    linkageType: ''
    returnType: size_t
    signature: size_t h1_make_tunnel(struct h1s *h1s, struct h1m *h1m, struct buffer
      *buf, size_t count)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:3462,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:3464,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:3465,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3465,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_h1.c:3466,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:3467,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:3467,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:3467,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:3469,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:3471,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:3472,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h1.c:3488,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:3489,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:3493,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:3494,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3501,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3505,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3507,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:3520,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:3524,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3527,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3531,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3539,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3540,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 72
    argCount: 4
    argNames:
    - h1s
    - h1m
    - htx
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3452
    functionDepth: 2
    functionLinenumber: 3452
    functionLinenumberEnd: 3543
    functionName: h1_make_trailers
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - TRACE_ENTER
    - b_contig_space
    - htx_get_blk_name
    - h1_adjust_case_outgoing_hdr
    - b_tail
    - htx_get_blk_type
    - chunk_memcat
    - b_make
    - htx_get_head_blk
    - se_fl_set
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_add
    - b_data
    - b_slow_realign
    - h1_format_htx_hdr
    - chunk_reset
    - htx_get_blk_value
    - b_space_wraps
    - TRACE_STATE
    - htx_remove_blk
    linkageType: ''
    returnType: size_t
    signature: size_t h1_make_trailers(struct h1s *h1s, struct h1m *h1m, struct htx
      *htx, size_t count)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:3554,1
    - Dst: h1_get_obuf
      Src: /src/haproxy/src/mux_h1.c:3556,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3557,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:3561,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:3562,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3562,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:3563,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:3563,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:3563,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3566,1
    - Dst: h1_append_chunk_size
      Src: /src/haproxy/src/mux_h1.c:3570,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3575,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:3576,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3580,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3583,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - h1s
    - h1m
    - len
    argTypes:
    - struct h1s*
    - struct h1m*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3586
      start: 3548
    functionDepth: 2
    functionLinenumber: 3548
    functionLinenumberEnd: 3586
    functionName: h1_make_chunk
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - TRACE_PROTO
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_ENTER
    - b_tail
    - h1_append_chunk_size
    - b_add
    - chunk_memcat
    - b_data
    - b_slow_realign
    - b_make
    - b_contig_space
    - h1_get_obuf
    linkageType: ''
    returnType: size_t
    signature: size_t h1_make_chunk(struct h1s *h1s, struct h1m * h1m, size_t len)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/mux_h1.c:3600,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:3601,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h1.c:3603,1
    - Dst: h1_get_obuf
      Src: /src/haproxy/src/mux_h1.c:3609,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3610,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h1.c:3617,1
    - Dst: h1_make_reqline
      Src: /src/haproxy/src/mux_h1.c:3620,1
    - Dst: h1_make_stline
      Src: /src/haproxy/src/mux_h1.c:3624,1
    - Dst: h1_make_headers
      Src: /src/haproxy/src/mux_h1.c:3628,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:3629,1
    - Dst: h1_make_eoh
      Src: /src/haproxy/src/mux_h1.c:3630,1
    - Dst: h1_make_eoh
      Src: /src/haproxy/src/mux_h1.c:3634,1
    - Dst: h1_make_data
      Src: /src/haproxy/src/mux_h1.c:3640,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h1.c:3642,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:3643,1
    - Dst: h1_make_trailers
      Src: /src/haproxy/src/mux_h1.c:3644,1
    - Dst: h1_make_tunnel
      Src: /src/haproxy/src/mux_h1.c:3648,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h1.c:3650,1
    - Dst: h1_make_trailers
      Src: /src/haproxy/src/mux_h1.c:3654,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3658,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3665,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3666,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h1.c:3676,1
    - Dst: h1_wake_stream_for_recv
      Src: /src/haproxy/src/mux_h1.c:3681,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3682,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h1.c:3687,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_h1.c:3688,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3689,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:3695,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:3697,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3707,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h1.c:3708,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3711,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:3712,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3713,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3717,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 96
    argCount: 3
    argNames:
    - h1c
    - buf
    - count
    argTypes:
    - struct h1c*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3719
      start: 3593
    functionDepth: 4
    functionLinenumber: 3593
    functionLinenumberEnd: 3719
    functionName: h1_process_mux
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h1_make_tunnel
    - h1_make_stline
    - TRACE_ENTER
    - h1_make_data
    - htx_is_empty
    - h1c_report_term_evt
    - h1_make_headers
    - h1_make_trailers
    - htx_from_buf
    - se_fl_set
    - htxbuf
    - TRACE_LEAVE
    - TRACE_ERROR
    - h1_make_eoh
    - h1_wake_stream_for_recv
    - se_report_term_evt
    - h1_get_obuf
    - htx_to_buf
    - TRACE_STATE
    - h1_make_reqline
    - buf_room_for_htx_data
    - TRACE_USER
    linkageType: ''
    returnType: size_t
    signature: size_t h1_process_mux(struct h1c *h1c, struct buffer *buf, size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:3727,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:3728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3724
    functionDepth: 1
    functionLinenumber: 3724
    functionLinenumberEnd: 3733
    functionName: h1_wake_stream_for_recv
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 3
    functionsReached:
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void h1_wake_stream_for_recv(struct h1s *h1s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:3737,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:3738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3743
      start: 3734
    functionDepth: 1
    functionLinenumber: 3734
    functionLinenumberEnd: 3743
    functionName: h1_wake_stream_for_send
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 3
    functionsReached:
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void h1_wake_stream_for_send(struct h1s *h1s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:3753,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:3754,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:3762,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:3762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3763
      start: 3749
    functionDepth: 1
    functionLinenumber: 3749
    functionLinenumberEnd: 3763
    functionName: h1_alert
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - h1s_sc
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void h1_alert(struct h1s *h1s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: http_get_status_idx
      Src: /src/haproxy/src/mux_h1.c:3773,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:3776,1
    - Dst: b_is_null
      Src: /src/haproxy/src/mux_h1.c:3783,1
    - Dst: h1_get_obuf
      Src: /src/haproxy/src/mux_h1.c:3796,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3798,1
    - Dst: h1_format_htx_msg
      Src: /src/haproxy/src/mux_h1.c:3802,1
    - Dst: htxbuf
      Src: /src/haproxy/src/mux_h1.c:3802,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h1.c:3804,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:3804,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:3805,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3808,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:3818,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:3818,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:3819,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:3820,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:3825,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3827,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3829
      start: 3770
    functionDepth: 3
    functionLinenumber: 3770
    functionLinenumberEnd: 3829
    functionName: h1_send_error
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist
    - htxbuf
    - b_is_null
    - TRACE_STATE
    - h1_format_htx_msg
    - BUG_ON
    - h1s_sc
    - h1_close
    - b_istput
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_LEAVE
    - h1s_destroy
    - http_get_status_idx
    - h1_get_obuf
    linkageType: ''
    returnType: int
    signature: int h1_send_error(struct h1c *h1c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:3841,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3844,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3845,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3847,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3848,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3851,1
    - Dst: h1_send_error
      Src: /src/haproxy/src/mux_h1.c:3854,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h1.c:3855,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3858
      start: 3834
    functionDepth: 4
    functionLinenumber: 3834
    functionLinenumberEnd: 3858
    functionName: h1_handle_internal_err
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - session_inc_http_req_ctr
    - proxy_inc_fe_req_ctr
    - h1_send_error
    - sess_log
    - h1s_destroy
    linkageType: ''
    returnType: int
    signature: int h1_handle_internal_err(struct h1c *h1c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:3872,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3875,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:3877,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3881,1
    - Dst: session_inc_http_err_ctr
      Src: /src/haproxy/src/mux_h1.c:3882,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3883,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3885,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3886,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3889,1
    - Dst: h1_send_error
      Src: /src/haproxy/src/mux_h1.c:3893,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3894,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h1.c:3895,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3865
    functionDepth: 4
    functionLinenumber: 3865
    functionLinenumberEnd: 3899
    functionName: h1_handle_parsing_error
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - session_inc_http_err_ctr
    - h1_close
    - _HA_ATOMIC_INC
    - session_inc_http_req_ctr
    - proxy_inc_fe_req_ctr
    - h1_send_error
    - sess_log
    - b_data
    - h1s_destroy
    linkageType: ''
    returnType: int
    signature: int h1_handle_parsing_error(struct h1c *h1c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:3912,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3915,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:3917,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3921,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3922,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3924,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3925,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3928,1
    - Dst: h1_send_error
      Src: /src/haproxy/src/mux_h1.c:3931,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3932,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h1.c:3933,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3937
      start: 3905
    functionDepth: 4
    functionLinenumber: 3905
    functionLinenumberEnd: 3937
    functionName: h1_handle_not_impl_err
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - h1_close
    - session_inc_http_req_ctr
    - proxy_inc_fe_req_ctr
    - h1_send_error
    - sess_log
    - b_data
    - h1s_destroy
    linkageType: ''
    returnType: int
    signature: int h1_handle_not_impl_err(struct h1c *h1c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:3949,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3952,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:3954,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3958,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3959,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3961,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3962,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3965,1
    - Dst: h1_send_error
      Src: /src/haproxy/src/mux_h1.c:3968,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3969,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h1.c:3970,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3974
      start: 3942
    functionDepth: 4
    functionLinenumber: 3942
    functionLinenumberEnd: 3974
    functionName: h1_handle_req_tout
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - h1_close
    - session_inc_http_req_ctr
    - proxy_inc_fe_req_ctr
    - h1_send_error
    - sess_log
    - b_data
    - h1s_destroy
    linkageType: ''
    returnType: int
    signature: int h1_handle_req_tout(struct h1c *h1c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:3986,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:3989,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3990,1
    - Dst: h1_recv_allowed
      Src: /src/haproxy/src/mux_h1.c:3993,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:3994,1
    - Dst: h1_get_ibuf
      Src: /src/haproxy/src/mux_h1.c:3998,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3999,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4007,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4007,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/mux_h1.c:4008,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_h1.c:4010,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:4030,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:4031,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4037,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4040,1
    - Dst: struct connection*::xprt::rcv_buf
      Src: /src/haproxy/src/mux_h1.c:4046,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:4047,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_h1.c:4050,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4051,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4055,1
    - Dst: h1_recv_allowed
      Src: /src/haproxy/src/mux_h1.c:4059,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4060,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4061,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h1.c:4064,1
    - Dst: h1_wake_stream_for_recv
      Src: /src/haproxy/src/mux_h1.c:4065,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4068,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:4069,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_h1.c:4070,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4072,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4075,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4077
      start: 3980
    functionDepth: 2
    functionLinenumber: 3980
    functionLinenumberEnd: 4077
    functionName: h1_recv
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 1
    functionsReached:
    - struct connection*::xprt::rcv_buf
    - TRACE_STATE
    - b_slow_realign_ofs
    - TRACE_LEAVE
    - h1_recv_allowed
    - TRACE_DEVEL
    - TRACE_ENTER
    - conn_xprt_read0_pending
    - TRACE_DATA
    - h1_wake_stream_for_recv
    - h1_release_buf
    - b_data
    - b_size
    - buf_room_for_htx_data
    - h1_get_ibuf
    - struct connection*::xprt::subscribe
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: int
    signature: int h1_recv(struct h1c *h1c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4090,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4093,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_h1.c:4094,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4100,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/mux_h1.c:4108,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4108,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h1.c:4110,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4113,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:4115,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h1.c:4116,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4122,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4124,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4132,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_h1.c:4134,1
    - Dst: h1_wake_stream_for_send
      Src: /src/haproxy/src/mux_h1.c:4139,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4142,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4143,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:4144,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4146,1
    - Dst: h1_shutw_conn
      Src: /src/haproxy/src/mux_h1.c:4147,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4151,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4152,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4155,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4157
      start: 4083
    functionDepth: 2
    functionLinenumber: 4083
    functionLinenumberEnd: 4157
    functionName: h1_send
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1c_report_term_evt
    - TRACE_STATE
    - TRACE_LEAVE
    - struct connection*::xprt::snd_buf
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_DATA
    - h1_release_buf
    - b_del
    - h1_wake_stream_for_send
    - b_data
    - b_reset
    - struct h1c*::conn::xprt::subscribe
    - struct connection*::xprt::subscribe
    - HA_ATOMIC_ADD
    - h1_shutw_conn
    linkageType: ''
    returnType: int
    signature: int h1_send(struct h1c *h1c)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4170,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4173,1
    - Dst: b_isteq
      Src: /src/haproxy/src/mux_h1.c:4190,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4190,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:4190,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4196,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:4197,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4199,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4205,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:4207,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4210,1
    - Dst: h1_report_glitch
      Src: /src/haproxy/src/mux_h1.c:4211,1
    - Dst: h1_handle_parsing_error
      Src: /src/haproxy/src/mux_h1.c:4212,1
    - Dst: h1c_frt_stream_new
      Src: /src/haproxy/src/mux_h1.c:4219,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_h1.c:4221,1
    - Dst: h1_handle_internal_err
      Src: /src/haproxy/src/mux_h1.c:4222,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4223,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/mux_h1.c:4229,1
    - Dst: h1_get_rxbuf
      Src: /src/haproxy/src/mux_h1.c:4232,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4234,1
    - Dst: h1_process_demux
      Src: /src/haproxy/src/mux_h1.c:4239,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:4240,1
    - Dst: h1_set_idle_expiration
      Src: /src/haproxy/src/mux_h1.c:4241,1
    - Dst: h1_handle_internal_err
      Src: /src/haproxy/src/mux_h1.c:4244,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4245,1
    - Dst: h1_handle_not_impl_err
      Src: /src/haproxy/src/mux_h1.c:4248,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4249,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:4251,1
    - Dst: h1_handle_parsing_error
      Src: /src/haproxy/src/mux_h1.c:4252,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4253,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4256,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4257,1
    - Dst: session_add_glitch_ctr
      Src: /src/haproxy/src/mux_h1.c:4262,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4265,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4273,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4277,1
    - Dst: h1_handle_parsing_error
      Src: /src/haproxy/src/mux_h1.c:4281,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4282,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4286,1
    - Dst: h1_send_error
      Src: /src/haproxy/src/mux_h1.c:4287,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4288,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4291,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:4291,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:4292,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4293,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:4296,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4297,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4313,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:4316,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4317,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:4319,1
    - Dst: h1_alert
      Src: /src/haproxy/src/mux_h1.c:4320,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4324,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:4325,1
    - Dst: h1s_must_shut_conn
      Src: /src/haproxy/src/mux_h1.c:4326,1
    - Dst: h1_shutw_conn
      Src: /src/haproxy/src/mux_h1.c:4327,1
    - Dst: h1s_finish_detach
      Src: /src/haproxy/src/mux_h1.c:4330,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4335,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:4336,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:4342,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:4351,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_h1.c:4352,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_h1.c:4357,1
    - Dst: h1s_data_pending
      Src: /src/haproxy/src/mux_h1.c:4368,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4369,1
    - Dst: h1_wake_stream_for_recv
      Src: /src/haproxy/src/mux_h1.c:4370,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:4374,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4375,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4384,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:4387,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4388,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:4391,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4392,1
    - Dst: h1_alert
      Src: /src/haproxy/src/mux_h1.c:4394,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4395,1
    - Dst: h1_release
      Src: /src/haproxy/src/mux_h1.c:4401,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4409,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 174
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4413
      start: 4164
    functionDepth: 5
    functionLinenumber: 4164
    functionLinenumberEnd: 4413
    functionName: h1_process
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 1
    functionsReached:
    - unlikely
    - se_fl_set_error
    - TRACE_ENTER
    - h1_release
    - h1s_finish_detach
    - se_fl_test
    - ist
    - h1c_report_term_evt
    - session_add_glitch_ctr
    - h1_alert
    - tick_remain
    - statistical_prng_range
    - h1s_must_shut_conn
    - TRACE_DEVEL
    - h1_process_demux
    - struct h1c*::conn::xprt::subscribe
    - h1_set_idle_expiration
    - h1_send
    - se_fl_set
    - h1_close
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_isteq
    - ns_to_ms
    - h1s_data_pending
    - h1_release_buf
    - h1_wake_stream_for_recv
    - b_data
    - h1_report_glitch
    - h1_get_rxbuf
    - h1_handle_not_impl_err
    - h1_handle_parsing_error
    - TRACE_STATE
    - BUG_ON
    - h1_handle_internal_err
    - h1_send_error
    - TRACE_POINT
    - h1_refresh_timeout
    - b_reset
    - h1s_destroy
    - tick_isset
    - h1c_frt_stream_new
    - h1_shutw_conn
    linkageType: ''
    returnType: int
    signature: int h1_process(struct h1c * h1c)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h1.c:4427,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4433,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h1.c:4434,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:4438,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h1.c:4443,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4445,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h1.c:4446,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h1.c:4448,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4450,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_h1.c:4452,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4458,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4462,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4467,1
    - Dst: h1_recv
      Src: /src/haproxy/src/mux_h1.c:4469,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4470,1
    - Dst: h1_process
      Src: /src/haproxy/src/mux_h1.c:4471,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h1.c:4482,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/mux_h1.c:4486,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/mux_h1.c:4492,1
    - Dst: srv_add_idle
      Src: /src/haproxy/src/mux_h1.c:4493,1
    - Dst: h1_release
      Src: /src/haproxy/src/mux_h1.c:4504,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4506
      start: 4415
    functionDepth: 6
    functionLinenumber: 4415
    functionLinenumberEnd: 4506
    functionName: h1_io_cb
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - h1_process
    - h1_recv
    - srv_add_idle
    - HA_SPIN_UNLOCK
    - conn_delete_from_tree
    - HA_SPIN_LOCK
    - TRACE_ENTER
    - TRACE_POINT
    - session_reinsert_idle_conn
    - h1_release
    - b_data
    - session_detach_idle_conn
    - LIST_INLIST
    - ASSUME_NONNULL
    - objt_server
    - h1_send
    - tasklet_free
    linkageType: ''
    returnType: struct task
    signature: struct task *h1_io_cb(struct task *t, void *ctx, unsigned int state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:4513,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4515,1
    - Dst: h1_process
      Src: /src/haproxy/src/mux_h1.c:4516,1
    - Dst: h1_alert
      Src: /src/haproxy/src/mux_h1.c:4521,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4508
    functionDepth: 6
    functionLinenumber: 4508
    functionLinenumberEnd: 4530
    functionName: h1_wake
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_alert
    - h1_send
    - h1_process
    - TRACE_POINT
    linkageType: ''
    returnType: int
    signature: int h1_wake(struct connection *conn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h1.c:4538,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4540,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h1.c:4544,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4551,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4556,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4557,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4565,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4567,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4573,1
    - Dst: h1_handle_req_tout
      Src: /src/haproxy/src/mux_h1.c:4574,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4575,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4576,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:4577,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4578,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:4583,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:4586,1
    - Dst: h1_alert
      Src: /src/haproxy/src/mux_h1.c:4587,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:4588,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4589,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4590,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h1.c:4598,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4600,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4602,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_h1.c:4606,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4610,1
    - Dst: h1_release
      Src: /src/haproxy/src/mux_h1.c:4615,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4616,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4618
      start: 4535
    functionDepth: 5
    functionLinenumber: 4535
    functionLinenumberEnd: 4618
    functionName: h1_timeout_task
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - h1c_report_term_evt
    - TRACE_LEAVE
    - h1_alert
    - task_destroy
    - HA_SPIN_UNLOCK
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - TRACE_DEVEL
    - conn_delete_from_tree
    - h1_release
    - h1_refresh_timeout
    - h1_handle_req_tout
    - b_data
    - tick_is_expired
    - h1_send
    - se_fl_test
    linkageType: ''
    returnType: struct task
    signature: struct task *h1_timeout_task(struct task *t, void *context, unsigned
      int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4636,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4638,1
    - Dst: h1c_bck_stream_new
      Src: /src/haproxy/src/mux_h1.c:4642,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4644,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/mux_h1.c:4649,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/mux_h1.c:4650,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4652,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4655,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - conn
    - sd
    - sess
    argTypes:
    - struct connection*
    - struct sedesc*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4657
      start: 4628
    functionDepth: 3
    functionLinenumber: 4628
    functionLinenumberEnd: 4657
    functionName: h1_attach
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - xprt_set_used
    - TRACE_LEAVE
    - TRACE_ERROR
    - TRACE_DEVEL
    - TRACE_ENTER
    - HA_ATOMIC_AND
    - h1c_bck_stream_new
    linkageType: ''
    returnType: int
    signature: int h1_attach(struct connection *conn, struct sedesc *sd, struct session
      *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:4668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4671
      start: 4662
    functionDepth: 1
    functionLinenumber: 4662
    functionLinenumberEnd: 4671
    functionName: h1_get_first_sc
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1s_sc
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *h1_get_first_sc(const struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:4677,1
    - Dst: h1_release
      Src: /src/haproxy/src/mux_h1.c:4679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4673
    functionDepth: 5
    functionLinenumber: 4673
    functionLinenumberEnd: 4680
    functionName: h1_destroy
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_release
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void h1_destroy(void *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4690,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4693,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4701,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:4702,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4703,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:4707,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4707,1
    - Dst: h1_process
      Src: /src/haproxy/src/mux_h1.c:4708,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4712,1
    - Dst: h1_set_idle_expiration
      Src: /src/haproxy/src/mux_h1.c:4713,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:4714,1
    - Dst: h1s_finish_detach
      Src: /src/haproxy/src/mux_h1.c:4717,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4720,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4721
      start: 4685
    functionDepth: 6
    functionLinenumber: 4685
    functionLinenumberEnd: 4721
    functionName: h1_detach
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h1c_report_term_evt
    - TRACE_LEAVE
    - h1_process
    - TRACE_DEVEL
    - TRACE_ENTER
    - h1_refresh_timeout
    - b_data
    - struct h1c*::conn::xprt::subscribe
    - h1_set_idle_expiration
    - h1s_finish_detach
    - COUNT_IF
    linkageType: ''
    returnType: void
    signature: void h1_detach(struct sedesc *sd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:4725,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4732,1
    - Dst: h1s_must_shut_conn
      Src: /src/haproxy/src/mux_h1.c:4734,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4738,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:4739,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4743,1
    - Dst: h1_shutw_conn
      Src: /src/haproxy/src/mux_h1.c:4744,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4746,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - sc
    - mode
    - reason
    argTypes:
    - struct stconn*
    - unsigned int
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4747
      start: 4723
    functionDepth: 2
    functionLinenumber: 4723
    functionLinenumberEnd: 4747
    functionName: h1_shut
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1c_report_term_evt
    - h1_close
    - TRACE_LEAVE
    - h1s_must_shut_conn
    - TRACE_ENTER
    - __sc_mux_strm
    - b_data
    - h1_shutw_conn
    linkageType: ''
    returnType: void
    signature: void h1_shut(struct stconn *sc, unsigned int mode, struct se_abort_info
      *reason)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4753,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:4754,1
    - Dst: conn_xprt_shutw
      Src: /src/haproxy/src/mux_h1.c:4758,1
    - Dst: conn_sock_shutw
      Src: /src/haproxy/src/mux_h1.c:4759,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:4762,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4765
      start: 4749
    functionDepth: 2
    functionLinenumber: 4749
    functionLinenumberEnd: 4765
    functionName: h1_shutw_conn
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 4
    functionsReached:
    - h1_close
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - conn_xprt_shutw
    - conn_sock_shutw
    linkageType: ''
    returnType: void
    signature: void h1_shutw_conn(struct connection *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:4773,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4778,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4779,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4786,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4789,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4792
      start: 4771
    functionDepth: 1
    functionLinenumber: 4771
    functionLinenumberEnd: 4792
    functionName: h1_unsubscribe
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - TRACE_DEVEL
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int h1_unsubscribe(struct stconn *sc, int event_type, struct wait_event
      *es)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:4803,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4809,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4810,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4816,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4820,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4829,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4835
      start: 4801
    functionDepth: 1
    functionLinenumber: 4801
    functionLinenumberEnd: 4835
    functionName: h1_subscribe
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - struct h1c*::conn::xprt::subscribe
    - TRACE_DEVEL
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int h1_subscribe(struct stconn *sc, int event_type, struct wait_event
      *es)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:4851,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4856,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4860,1
    - Dst: h1_process_demux
      Src: /src/haproxy/src/mux_h1.c:4865,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4867,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:4869,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4871,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4875,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4879,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4881
      start: 4849
    functionDepth: 5
    functionLinenumber: 4849
    functionLinenumberEnd: 4881
    functionName: h1_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - h1_process_demux
    - __sc_mux_strm
    - struct h1c*::conn::xprt::subscribe
    - se_fl_test
    linkageType: ''
    returnType: size_t
    signature: size_t h1_rcv_buf(struct stconn *sc, struct buffer *buf, size_t count,
      int flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:4887,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4895,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4902,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:4907,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4908,1
    - Dst: h1_process_mux
      Src: /src/haproxy/src/mux_h1.c:4929,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4931,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4942,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:4952,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4953,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4954,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:4957,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4958,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4960
      start: 4885
    functionDepth: 5
    functionLinenumber: 4885
    functionLinenumberEnd: 4960
    functionName: h1_snd_buf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - se_fl_set_error
    - TRACE_DEVEL
    - TRACE_ENTER
    - __sc_mux_strm
    - h1_refresh_timeout
    - h1_process_mux
    - se_report_term_evt
    - h1_send
    linkageType: ''
    returnType: size_t
    signature: size_t h1_snd_buf(struct stconn *sc, struct buffer *buf, size_t count,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_opposite
      Src: /src/haproxy/src/mux_h1.c:4964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4965
      start: 4962
    functionDepth: 1
    functionLinenumber: 4962
    functionLinenumberEnd: 4965
    functionName: h1s_opposite_sd
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - se_opposite
    linkageType: ''
    returnType: struct sedesc
    signature: struct sedesc *h1s_opposite_sd(struct h1s *h1s)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:4969,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4974,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4983,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4990,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4997,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:5004,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:5007,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:5015,1
    - Dst: h1_make_chunk
      Src: /src/haproxy/src/mux_h1.c:5017,1
    - Dst: h1s_consume_kop
      Src: /src/haproxy/src/mux_h1.c:5022,1
    - Dst: MAX_RANGE
      Src: /src/haproxy/src/mux_h1.c:5030,1
    - Dst: MAX_RANGE
      Src: /src/haproxy/src/mux_h1.c:5031,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5048,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5048,1
    - Dst: struct h1c*::conn::xprt::get_capability
      Src: /src/haproxy/src/mux_h1.c:5054,1
    - Dst: get_pipe
      Src: /src/haproxy/src/mux_h1.c:5056,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:5076,1
    - Dst: h1_get_obuf
      Src: /src/haproxy/src/mux_h1.c:5081,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5083,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:5087,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:5088,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5088,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:5090,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5093,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:5098,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5107,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5110,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5111,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_h1.c:5113,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5117,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:5124,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 113
    argCount: 4
    argNames:
    - sc
    - input
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5126
      start: 4967
    functionDepth: 3
    functionLinenumber: 4967
    functionLinenumberEnd: 5126
    functionName: h1_nego_ff
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - b_xfer
    - TRACE_STATE
    - BUG_ON
    - TRACE_ERROR
    - TRACE_LEAVE
    - MAX_RANGE
    - TRACE_DEVEL
    - TRACE_ENTER
    - struct h1c*::conn::xprt::get_capability
    - h1_get_obuf
    - get_pipe
    - __sc_mux_strm
    - b_data
    - b_slow_realign
    - b_contig_space
    - h1_make_chunk
    - h1s_consume_kop
    linkageType: ''
    returnType: size_t
    signature: size_t h1_nego_ff(struct stconn *sc, struct buffer *input, size_t count,
      unsigned int flags)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:5130,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:5136,1
    - Dst: struct h1c*::conn::xprt::snd_pipe
      Src: /src/haproxy/src/mux_h1.c:5140,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:5142,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_h1.c:5144,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:5151,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:5155,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h1.c:5155,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:5155,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/mux_h1.c:5156,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5156,1
    - Dst: h1_prepend_chunk_size
      Src: /src/haproxy/src/mux_h1.c:5159,1
    - Dst: h1_prepend_chunk_crlf
      Src: /src/haproxy/src/mux_h1.c:5161,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:5162,1
    - Dst: h1s_consume_kop
      Src: /src/haproxy/src/mux_h1.c:5164,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:5178,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:5192,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5197,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5205,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:5207,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5208,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_h1.c:5210,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:5213,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:5216,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5218
      start: 5128
    functionDepth: 3
    functionLinenumber: 5128
    functionLinenumberEnd: 5218
    functionName: h1_done_ff
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - se_fl_set_error
    - TRACE_ENTER
    - b_room
    - struct h1c*::conn::xprt::snd_pipe
    - h1c_report_term_evt
    - TRACE_DEVEL
    - h1_prepend_chunk_size
    - b_peek_ofs
    - struct h1c*::conn::xprt::subscribe
    - h1_prepend_chunk_crlf
    - b_make
    - h1_send
    - b_orig
    - TRACE_LEAVE
    - b_add
    - b_data
    - b_size
    - put_pipe
    - se_report_term_evt
    - h1s_consume_kop
    - __sc_mux_strm
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: size_t
    signature: size_t h1_done_ff(struct stconn *sc)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:5222,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:5230,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5234,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_h1.c:5238,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:5244,1
    - Dst: h1s_opposite_sd
      Src: /src/haproxy/src/mux_h1.c:5248,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5250,1
    - Dst: struct h1c*::conn::xprt::get_capability
      Src: /src/haproxy/src/mux_h1.c:5266,1
    - Dst: se_nego_ff
      Src: /src/haproxy/src/mux_h1.c:5273,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:5274,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5276,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5278,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:5279,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:5284,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5288,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5289,1
    - Dst: struct h1c*::conn::xprt::rcv_pipe
      Src: /src/haproxy/src/mux_h1.c:5298,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:5301,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:5303,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_h1.c:5304,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5311,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5312,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:5314,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:5318,1
    - Dst: struct h1c*::conn::xprt::rcv_buf
      Src: /src/haproxy/src/mux_h1.c:5319,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5321,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5322,1
    - Dst: b_sub
      Src: /src/haproxy/src/mux_h1.c:5324,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:5336,1
    - Dst: se_done_ff
      Src: /src/haproxy/src/mux_h1.c:5338,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5346,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:5347,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:5348,1
    - Dst: h1s_set_se_eoi_cond
      Src: /src/haproxy/src/mux_h1.c:5356,1
    - Dst: se_expect_data
      Src: /src/haproxy/src/mux_h1.c:5366,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5369,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_h1.c:5373,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5374,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5375,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5379,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5381,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5382,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5385,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5388,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:5389,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:5394,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5395,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5396,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5399,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5400,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5404,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5407,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:5410,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5411,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5412,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5415,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5416,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:5418,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:5423,1
    - Dst: se_done_ff
      Src: /src/haproxy/src/mux_h1.c:5428,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:5431,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5434,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5440,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_h1.c:5441,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5443,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5444,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:5448,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 180
    argCount: 3
    argNames:
    - sc
    - count
    - flags
    argTypes:
    - struct stconn*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5450
      start: 5220
    functionDepth: 3
    functionLinenumber: 5220
    functionLinenumberEnd: 5450
    functionName: h1_fastfwd
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - conn_xprt_read0_pending
    - TRACE_ENTER
    - b_room
    - se_fl_test
    - h1c_report_term_evt
    - h1s_opposite_sd
    - TRACE_DEVEL
    - se_done_ff
    - h1s_set_se_eoi_cond
    - struct h1c*::conn::xprt::subscribe
    - struct h1c*::conn::xprt::rcv_buf
    - se_expect_data
    - COUNT_IF
    - se_fl_set
    - TRACE_LEAVE
    - TRACE_ERROR
    - struct h1c*::conn::xprt::get_capability
    - h1_release_buf
    - b_add
    - b_data
    - b_size
    - put_pipe
    - se_report_term_evt
    - TRACE_STATE
    - BUG_ON
    - b_sub
    - __sc_mux_strm
    - se_fl_clr
    - se_nego_ff
    - HA_ATOMIC_ADD
    - struct h1c*::conn::xprt::rcv_pipe
    linkageType: ''
    returnType: int
    signature: int h1_fastfwd(struct stconn *sc, unsigned int count, unsigned int
      flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:5454,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:5458,1
    - Dst: struct h1c*::conn::xprt::snd_pipe
      Src: /src/haproxy/src/mux_h1.c:5465,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:5467,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_h1.c:5469,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:5482,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5496,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:5498,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_h1.c:5500,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:5503,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:5506,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - sc
    - flags
    argTypes:
    - struct stconn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5508
      start: 5452
    functionDepth: 3
    functionLinenumber: 5452
    functionLinenumberEnd: 5508
    functionName: h1_resume_fastfwd
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - struct h1c*::conn::xprt::snd_pipe
    - TRACE_LEAVE
    - se_fl_set_error
    - TRACE_DEVEL
    - TRACE_ENTER
    - __sc_mux_strm
    - struct h1c*::conn::xprt::subscribe
    - put_pipe
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: int
    signature: int h1_resume_fastfwd(struct stconn *sc, unsigned int flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5531,1
    - Dst: h1_used_streams
      Src: /src/haproxy/src/mux_h1.c:5536,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - conn
    - mux_ctl
    - output
    argTypes:
    - struct connection*
    - enum mux_ctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5544
      start: 5510
    functionDepth: 1
    functionLinenumber: 5510
    functionLinenumberEnd: 5544
    functionName: h1_ctl
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - struct h1c*::conn::xprt::subscribe
    - h1_used_streams
    linkageType: ''
    returnType: int
    signature: int h1_ctl(struct connection *conn, enum mux_ctl_type mux_ctl, void
      *output)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:5549,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_h1.c:5560,1
    - Dst: h1_dump_h1s_info
      Src: /src/haproxy/src/mux_h1.c:5563,1
    - Dst: h1_dump_h1c_info
      Src: /src/haproxy/src/mux_h1.c:5566,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5569,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h1.c:5571,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - sc
    - mux_sctl
    - output
    argTypes:
    - struct stconn*
    - enum mux_sctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5581
      start: 5546
    functionDepth: 2
    functionLinenumber: 5546
    functionLinenumberEnd: 5581
    functionName: h1_sctl
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - get_trash_chunk
    - __sc_mux_strm
    - h1_dump_h1c_info
    - tevt_evts2str
    - h1_dump_h1s_info
    linkageType: ''
    returnType: int
    signature: int h1_sctl(struct stconn *sc, enum mux_sctl_type mux_sctl, void *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5595,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5597,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h1.c:5597,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h1.c:5598,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:5598,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5599,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h1.c:5599,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h1.c:5600,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:5600,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h1.c:5601,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5603,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5604,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5606,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h1.c:5607,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_h1.c:5608,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h1.c:5608,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h1.c:5608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - msg
    - h1c
    - pfx
    argTypes:
    - struct buffer*
    - struct h1c*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5612
      start: 5588
    functionDepth: 1
    functionLinenumber: 5588
    functionLinenumberEnd: 5612
    functionName: h1_dump_h1c_info
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 1
    functionsReached:
    - human_time
    - b_orig
    - chunk_appendf
    - TICKS_TO_MS
    - b_head_ofs
    - b_data
    - b_size
    - tick_is_expired
    - tevt_evts2str
    linkageType: ''
    returnType: int
    signature: int h1_dump_h1c_info(struct buffer *msg, struct h1c *h1c, const char
      *pfx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5636,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5637,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_h1.c:5637,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_h1.c:5637,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5640,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5642,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5646,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_h1.c:5647,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h1.c:5647,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:5649,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5650,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:5651,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:5651,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h1.c:5651,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:5651,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5656,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5658,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5660,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5661,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/mux_h1.c:5666,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5667,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - msg
    - h1s
    - pfx
    argTypes:
    - struct buffer*
    - struct h1s*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5670
      start: 5623
    functionDepth: 1
    functionLinenumber: 5623
    functionLinenumberEnd: 5670
    functionName: h1_dump_h1s_info
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 1
    functionsReached:
    - se_fl_get
    - h1s_sc
    - chunk_appendf
    - h1m_state_str
    - tevt_evts2str
    - se_fl_test
    - resolve_sym_name
    linkageType: ''
    returnType: int
    signature: int h1_dump_h1s_info(struct buffer *msg, const struct h1s *h1s, const
      char *pfx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h1_dump_h1c_info
      Src: /src/haproxy/src/mux_h1.c:5679,1
    - Dst: h1_dump_h1s_info
      Src: /src/haproxy/src/mux_h1.c:5682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - conn
    argTypes:
    - struct buffer*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5685
      start: 5673
    functionDepth: 2
    functionLinenumber: 5673
    functionLinenumberEnd: 5685
    functionName: h1_show_fd
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_dump_h1c_info
    - h1_dump_h1s_info
    linkageType: ''
    returnType: int
    signature: int h1_show_fd(struct buffer *msg, struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h1_dump_h1s_info
      Src: /src/haproxy/src/mux_h1.c:5700,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5702,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5703,1
    - Dst: h1_dump_h1c_info
      Src: /src/haproxy/src/mux_h1.c:5704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - msg
    - sd
    - pfx
    argTypes:
    - struct buffer*
    - struct sedesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5706
      start: 5692
    functionDepth: 2
    functionLinenumber: 5692
    functionLinenumberEnd: 5706
    functionName: h1_show_sd
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - h1_dump_h1c_info
    - h1_dump_h1s_info
    linkageType: ''
    returnType: int
    signature: int h1_show_sd(struct buffer *msg, struct sedesc *sd, const char *pfx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/mux_h1.c:5715,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5716,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/mux_h1.c:5721,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5722,1
    - Dst: ebis_lookup
      Src: /src/haproxy/src/mux_h1.c:5727,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5728,1
    - Dst: malloc
      Src: /src/haproxy/src/mux_h1.c:5733,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5735,1
    - Dst: strdup
      Src: /src/haproxy/src/mux_h1.c:5739,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:5740,1
    - Dst: strdup
      Src: /src/haproxy/src/mux_h1.c:5740,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h1.c:5741,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5742,1
    - Dst: istfree
      Src: /src/haproxy/src/mux_h1.c:5743,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5744,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5745,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/mux_h1.c:5748,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - from
    - to
    - err
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5750
      start: 5710
    functionDepth: 1
    functionLinenumber: 5710
    functionLinenumberEnd: 5750
    functionName: add_hdr_case_adjust
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - malloc
    - memprintf
    - ist
    - isttest
    - ebis_insert
    - istfree
    - free
    - ebis_lookup
    - strdup
    - strcasecmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int add_hdr_case_adjust(const char *from, const char *to, char **err)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h1.c:5771,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_h1.c:5778,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_h1.c:5779,1
    - Dst: fd_takeover
      Src: /src/haproxy/src/mux_h1.c:5784,1
    - Dst: struct connection*::xprt::takeover
      Src: /src/haproxy/src/mux_h1.c:5787,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_h1.c:5794,1
    - Dst: struct h1c*::conn::xprt::unsubscribe
      Src: /src/haproxy/src/mux_h1.c:5799,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/mux_h1.c:5809,1
    - Dst: task_kill
      Src: /src/haproxy/src/mux_h1.c:5810,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_h1.c:5824,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5830,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_h1.c:5835,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_h1.c:5839,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h1.c:5840,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - conn
    - orig_tid
    - release
    argTypes:
    - struct connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5842
      start: 5756
    functionDepth: 1
    functionLinenumber: 5756
    functionLinenumberEnd: 5842
    functionName: h1_takeover
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - __task_free
    - task_kill
    - tasklet_wakeup_on
    - tasklet_new
    - fd_takeover
    - tasklet_free
    - __ha_barrier_store
    - struct h1c*::conn::xprt::subscribe
    - LIST_INLIST
    - struct connection*::xprt::takeover
    - struct h1c*::conn::xprt::unsubscribe
    - task_new_here
    linkageType: ''
    returnType: int
    signature: int h1_takeover(struct connection *conn, int orig_tid, int release)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_first
      Src: /src/haproxy/src/mux_h1.c:5850,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/mux_h1.c:5852,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/mux_h1.c:5853,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h1.c:5854,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5855,1
    - Dst: istfree
      Src: /src/haproxy/src/mux_h1.c:5856,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5857,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5861
      start: 5845
    functionDepth: 1
    functionLinenumber: 5845
    functionLinenumberEnd: 5861
    functionName: h1_hdeaders_case_adjust_deinit
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - ebpt_delete
    - istfree
    - ebpt_next
    - free
    - container_of
    - ebpt_first
    linkageType: ''
    returnType: void
    signature: void h1_hdeaders_case_adjust_deinit()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/haproxy/src/mux_h1.c:5873,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mux_h1.c:5875,1
    - Dst: fgets
      Src: /src/haproxy/src/mux_h1.c:5885,1
    - Dst: add_hdr_case_adjust
      Src: /src/haproxy/src/mux_h1.c:5922,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mux_h1.c:5924,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5927,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mux_h1.c:5931,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5934,1
    - Dst: fclose
      Src: /src/haproxy/src/mux_h1.c:5940,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/mux_h1.c:5941,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5943
      start: 5863
    functionDepth: 2
    functionLinenumber: 5863
    functionLinenumberEnd: 5943
    functionName: cfg_h1_headers_case_adjust_postparser
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - hap_register_post_deinit
    - fclose
    - add_hdr_case_adjust
    - free
    - ha_alert
    - ha_warning
    - fopen
    - fgets
    linkageType: ''
    returnType: int
    signature: int cfg_h1_headers_case_adjust_postparser()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h1.c:5950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5954
      start: 5946
    functionDepth: 1
    functionLinenumber: 5946
    functionLinenumberEnd: 5954
    functionName: cfg_parse_h1_accept_payload_with_any_method
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_h1_accept_payload_with_any_method(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t\t       const struct proxy *defpx, const char
      *file, int line,\n\t\t\t\t\t\t       char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h1.c:5962,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5965,1
    - Dst: add_hdr_case_adjust
      Src: /src/haproxy/src/mux_h1.c:5968,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5969
      start: 5958
    functionDepth: 2
    functionLinenumber: 5958
    functionLinenumberEnd: 5969
    functionName: cfg_parse_h1_header_case_adjust
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - add_hdr_case_adjust
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_h1_header_case_adjust(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t   const struct proxy *defpx, const char *file,
      int line,\n\t\t\t\t\t   char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h1.c:5976,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5979,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5982,1
    - Dst: strdup
      Src: /src/haproxy/src/mux_h1.c:5983,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5989
      start: 5972
    functionDepth: 1
    functionLinenumber: 5972
    functionLinenumberEnd: 5989
    functionName: cfg_parse_h1_headers_case_adjust_file
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_h1_headers_case_adjust_file(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t\t const struct proxy *defpx, const char *file,
      int line,\n\t\t\t\t\t\t char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h1.c:5998,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h1.c:6004,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:6006,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6010
      start: 5992
    functionDepth: 1
    functionLinenumber: 5992
    functionLinenumberEnd: 6010
    functionName: cfg_parse_h1_glitches_threshold
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_h1_glitches_threshold(char **args, int section_type,
      struct proxy *curpx,\n                                           const struct
      proxy *defpx, const char *file, int line,\n                                           char
      **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h1.c:6017,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h1.c:6020,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h1.c:6022,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:6025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6029
      start: 6013
    functionDepth: 1
    functionLinenumber: 6013
    functionLinenumberEnd: 6029
    functionName: cfg_parse_h1_zero_copy_fwd_rcv
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_h1_zero_copy_fwd_rcv(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t   const struct proxy *defpx, const char *file,
      int line,\n\t\t\t\t\t   char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h1.c:6036,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h1.c:6039,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h1.c:6041,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:6044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6048
      start: 6032
    functionDepth: 1
    functionLinenumber: 6032
    functionLinenumberEnd: 6048
    functionName: cfg_parse_h1_zero_copy_fwd_snd
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_h1_zero_copy_fwd_snd(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t  const struct proxy *defpx, const char *file,
      int line,\n\t\t\t\t\t  char **err)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_rules.c:35,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/quic_rules.c:36,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/quic_rules.c:40,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/quic_rules.c:41,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_rules.c:54,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - li
    - dgram
    argTypes:
    - struct listener*
    - struct quic_dgram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 68
    functionName: quic_init_exec_rules
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached:
    - acl_match_cond
    - list_for_each_entry
    - struct act_rule*::action_ptr
    - EXEC_CTX_WITH_RET
    - ABORT_NOW
    linkageType: ''
    returnType: int
    signature: int quic_init_exec_rules(struct listener *li, struct quic_dgram *dgram)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: parse_accept
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_accept(const char **args, int *orig_arg,\n
      \                                      struct proxy *px,\n                                       struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: parse_dgram_drop
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_dgram_drop(const char **args, int *orig_arg,\n
      \                                          struct proxy *px,\n                                           struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_orig_register
      Src: /src/haproxy/src/quic_rules.c:92,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rules.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: init_do_log
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - log_orig_register
    linkageType: ''
    returnType: void
    signature: void init_do_log(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_log_parse_act
      Src: /src/haproxy/src/quic_rules.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: parse_do_log
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached:
    - do_log_parse_act
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_do_log(const char **args, int *orig_arg,\n
      \                                      struct proxy *px,\n                                       struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __objt_dgram
      Src: /src/haproxy/src/quic_rules.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: quic_init_action_reject
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached:
    - __objt_dgram
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return quic_init_action_reject(struct act_rule *rule, struct
      proxy *px,\n                                               struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __objt_dgram
      Src: /src/haproxy/src/quic_rules.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: quic_init_action_send_retry
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached:
    - __objt_dgram
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return quic_init_action_send_retry(struct act_rule *rule,
      struct proxy *px,\n                                                   struct
      session *sess, struct stream *s, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: parse_reject
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_reject(const char **args, int *orig_arg,\n
      \                                      struct proxy *px,\n                                       struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: parse_send_retry
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_send_retry(const char **args, int *orig_arg,\n
      \                                          struct proxy *px,\n                                           struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: act_add_list
      Src: /src/haproxy/src/quic_rules.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: quic_init_actions_register
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached:
    - act_add_list
    linkageType: ''
    returnType: void
    signature: void quic_init_actions_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: action_lookup
      Src: /src/haproxy/src/quic_rules.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: action_quic_init_custom
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached:
    - action_lookup
    linkageType: ''
    returnType: struct action_kw
    signature: struct action_kw *action_quic_init_custom(const char *kw)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: objt_acme_rslv
      Src: /src/haproxy/src/acme_resolvers.c:24,1
    - Dst: eb32_first
      Src: /src/haproxy/src/acme_resolvers.c:41,1
    - Dst: eb32_next
      Src: /src/haproxy/src/acme_resolvers.c:41,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/acme_resolvers.c:42,1
    - Dst: typeof
      Src: /src/haproxy/src/acme_resolvers.c:42,1
    - Dst: istdup
      Src: /src/haproxy/src/acme_resolvers.c:49,1
    - Dst: ist2
      Src: /src/haproxy/src/acme_resolvers.c:49,1
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/acme_resolvers.c:57,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/acme_resolvers.c:59,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - req
    - counters
    argTypes:
    - struct resolv_requester*
    - struct dns_counters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 62
    functionName: acme_rslv_success_cb
    functionSourceFile: /src/haproxy/src/acme_resolvers.c
    functionUses: 0
    functionsReached:
    - objt_acme_rslv
    - typeof
    - ist2
    - HA_ATOMIC_SUB_FETCH
    - task_wakeup
    - eb32_next
    - istdup
    - eb32_entry
    - eb32_first
    linkageType: ''
    returnType: int
    signature: int acme_rslv_success_cb(struct resolv_requester *req, struct dns_counters
      *counters)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_acme_rslv
      Src: /src/haproxy/src/acme_resolvers.c:67,1
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/acme_resolvers.c:73,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/acme_resolvers.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - req
    - error_code
    argTypes:
    - struct resolv_requester*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: acme_rslv_error_cb
    functionSourceFile: /src/haproxy/src/acme_resolvers.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - objt_acme_rslv
    - HA_ATOMIC_SUB_FETCH
    linkageType: ''
    returnType: int
    signature: int acme_rslv_error_cb(struct resolv_requester *req, int error_code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resolv_unlink_resolution
      Src: /src/haproxy/src/acme_resolvers.c:87,1
    - Dst: free
      Src: /src/haproxy/src/acme_resolvers.c:88,1
    - Dst: istfree
      Src: /src/haproxy/src/acme_resolvers.c:89,1
    - Dst: free
      Src: /src/haproxy/src/acme_resolvers.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - rslv
    argTypes:
    - struct acme_rslv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: acme_rslv_free
    functionSourceFile: /src/haproxy/src/acme_resolvers.c
    functionUses: 0
    functionsReached:
    - istfree
    - resolv_unlink_resolution
    - free
    linkageType: ''
    returnType: void
    signature: void acme_rslv_free(struct acme_rslv *rslv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find_resolvers_by_id
      Src: /src/haproxy/src/acme_resolvers.c:104,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme_resolvers.c:106,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme_resolvers.c:112,1
    - Dst: snprintf
      Src: /src/haproxy/src/acme_resolvers.c:116,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme_resolvers.c:119,1
    - Dst: resolv_str_to_dn_label
      Src: /src/haproxy/src/acme_resolvers.c:123,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme_resolvers.c:125,1
    - Dst: calloc
      Src: /src/haproxy/src/acme_resolvers.c:129,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme_resolvers.c:131,1
    - Dst: strdup
      Src: /src/haproxy/src/acme_resolvers.c:137,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme_resolvers.c:145,1
    - Dst: resolv_link_resolution
      Src: /src/haproxy/src/acme_resolvers.c:149,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme_resolvers.c:150,1
    - Dst: resolv_trigger_resolution
      Src: /src/haproxy/src/acme_resolvers.c:154,1
    - Dst: free
      Src: /src/haproxy/src/acme_resolvers.c:160,1
    - Dst: free
      Src: /src/haproxy/src/acme_resolvers.c:161,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 4
    argNames:
    - auth
    - dnstasks
    - challenge_type
    - errmsg
    argTypes:
    - struct acme_auth*
    - unsigned int*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 163
    functionName: acme_rslv_start
    functionSourceFile: /src/haproxy/src/acme_resolvers.c
    functionUses: 0
    functionsReached:
    - memprintf
    - resolv_trigger_resolution
    - calloc
    - resolv_link_resolution
    - free
    - resolv_str_to_dn_label
    - strdup
    - strcasecmp
    - snprintf
    - find_resolvers_by_id
    linkageType: ''
    returnType: struct acme_rslv
    signature: struct acme_rslv *acme_rslv_start(struct acme_auth *auth, unsigned
      int *dnstasks, const char *challenge_type, char **errmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_newreno.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: quic_cc_nr_init
    functionSourceFile: /src/haproxy/src/quic_cc_newreno.c
    functionUses: 0
    functionsReached:
    - quic_cc_priv
    linkageType: ''
    returnType: int
    signature: int quic_cc_nr_init(struct quic_cc *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_newreno.c:55,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_newreno.c:57,1
    - Dst: quic_cc_path_reset
      Src: /src/haproxy/src/quic_cc_newreno.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: quic_cc_nr_slow_start
    functionSourceFile: /src/haproxy/src/quic_cc_newreno.c
    functionUses: 0
    functionsReached:
    - container_of
    - quic_cc_priv
    - quic_cc_path_reset
    linkageType: ''
    returnType: void
    signature: void quic_cc_nr_slow_start(struct quic_cc *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_newreno.c:69,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_newreno.c:71,1
    - Dst: quic_cc_path_set
      Src: /src/haproxy/src/quic_cc_newreno.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: quic_cc_nr_enter_recovery
    functionSourceFile: /src/haproxy/src/quic_cc_newreno.c
    functionUses: 0
    functionsReached:
    - container_of
    - quic_cc_path_set
    - quic_cc_priv
    linkageType: ''
    returnType: void
    signature: void quic_cc_nr_enter_recovery(struct quic_cc *cc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_newreno.c:82,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_newreno.c:84,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_newreno.c:85,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_newreno.c:86,1
    - Dst: quic_cc_path_inc
      Src: /src/haproxy/src/quic_cc_newreno.c:89,1
    - Dst: quic_cc_nr_enter_recovery
      Src: /src/haproxy/src/quic_cc_newreno.c:96,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_newreno.c:103,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_newreno.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 105
    functionName: quic_cc_nr_ss_cb
    functionSourceFile: /src/haproxy/src/quic_cc_newreno.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - quic_cc_path_inc
    - quic_cc_priv
    - quic_cc_nr_enter_recovery
    - TRACE_LEAVE
    - TRACE_ENTER
    - container_of
    linkageType: ''
    returnType: void
    signature: void quic_cc_nr_ss_cb(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_newreno.c:111,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_newreno.c:113,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_newreno.c:114,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_newreno.c:115,1
    - Dst: quic_cc_path_inc
      Src: /src/haproxy/src/quic_cc_newreno.c:125,1
    - Dst: quic_cc_nr_enter_recovery
      Src: /src/haproxy/src/quic_cc_newreno.c:130,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_newreno.c:139,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_newreno.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 141
    functionName: quic_cc_nr_ca_cb
    functionSourceFile: /src/haproxy/src/quic_cc_newreno.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - quic_cc_path_inc
    - quic_cc_priv
    - quic_cc_nr_enter_recovery
    - TRACE_LEAVE
    - TRACE_ENTER
    - container_of
    linkageType: ''
    returnType: void
    signature: void quic_cc_nr_ca_cb(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_newreno.c:147,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_newreno.c:149,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_newreno.c:150,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_newreno.c:151,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/quic_cc_newreno.c:158,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_newreno.c:159,1
    - Dst: quic_cc_path_set
      Src: /src/haproxy/src/quic_cc_newreno.c:165,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_newreno.c:176,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_newreno.c:177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 178
    functionName: quic_cc_nr_rp_cb
    functionSourceFile: /src/haproxy/src/quic_cc_newreno.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - quic_cc_priv
    - TRACE_ENTER
    - container_of
    - tick_is_le
    - quic_cc_path_set
    linkageType: ''
    returnType: void
    signature: void quic_cc_nr_rp_cb(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_newreno.c:182,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_newreno.c:184,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cc_newreno.c:185,1
    - Dst: quic_cc_state_str
      Src: /src/haproxy/src/quic_cc_newreno.c:186,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_cc_newreno.c:190,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_cc_newreno.c:191,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_cc_newreno.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - cc
    argTypes:
    - struct buffer*
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: quic_cc_nr_state_trace
    functionSourceFile: /src/haproxy/src/quic_cc_newreno.c
    functionUses: 0
    functionsReached:
    - tick_remain
    - quic_cc_priv
    - chunk_appendf
    - TICKS_TO_MS
    - container_of
    - tick_isset
    - quic_cc_state_str
    linkageType: ''
    returnType: void
    signature: void quic_cc_nr_state_trace(struct buffer *buf, const struct quic_cc
      *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cc
    - pn
    argTypes:
    - struct quic_cc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: quic_cc_nr_hystart_start_round
    functionSourceFile: /src/haproxy/src/quic_cc_newreno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_cc_nr_hystart_start_round(struct quic_cc *cc, uint64_t pn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_newreno.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: quic_cc_nr_event
    functionSourceFile: /src/haproxy/src/quic_cc_newreno.c
    functionUses: 0
    functionsReached:
    - quic_cc_priv
    linkageType: ''
    returnType: void
    signature: void quic_cc_nr_event(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_cc_newreno.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: quic_cc_nr_check
    functionSourceFile: /src/haproxy/src/quic_cc_newreno.c
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void quic_cc_nr_check(void)
  - BBCount: 33
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 67
    argCount: 1
    argNames:
    - ft
    argTypes:
    - enum quic_frame_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 98
    functionName: quic_frame_type_string
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *quic_frame_type_string(enum quic_frame_type ft)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:103,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:105,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - phr
    - phrlen
    argTypes:
    - struct buffer*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: chunk_cc_phrase_appendf
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void chunk_cc_phrase_appendf(struct buffer *buf,\n                                    const
      unsigned char *phr, size_t phrlen)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:112,1
    - Dst: quic_frame_type_string
      Src: /src/haproxy/src/quic_frame.c:112,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:117,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:124,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:131,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:138,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:147,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:153,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:160,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:166,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:172,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:178,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:185,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:191,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:197,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_frame.c:203,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:204,1
    - Dst: chunk_cc_phrase_appendf
      Src: /src/haproxy/src/quic_frame.c:209,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_frame.c:215,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_frame.c:216,1
    - Dst: chunk_cc_phrase_appendf
      Src: /src/haproxy/src/quic_frame.c:220,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 2
    argNames:
    - buf
    - frm
    argTypes:
    - struct buffer*
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 224
    functionName: chunk_frm_appendf
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_frame_type_string
    - chunk_appendf
    - chunk_cc_phrase_appendf
    - QUIC_MIN
    linkageType: ''
    returnType: void
    signature: void chunk_frm_appendf(struct buffer *buf, const struct quic_frame
      *frm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/quic_frame.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: quic_build_padding_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: "int quic_build_padding_frame(unsigned char **pos, const unsigned char
      *end,\n                                    struct quic_frame *frm, struct quic_conn
      *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 260
    functionName: quic_parse_padding_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int quic_parse_padding_frame(struct quic_frame *frm, struct quic_conn
      *qc,\n                                    const unsigned char **pos, const unsigned
      char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: quic_build_ping_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int quic_build_ping_frame(unsigned char **pos, const unsigned char
      *end,\n                                 struct quic_frame *frm, struct quic_conn
      *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: quic_parse_ping_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int quic_parse_ping_frame(struct quic_frame *frm, struct quic_conn
      *qc,\n                                 const unsigned char **pos, const unsigned
      char *end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eb64_last
      Src: /src/haproxy/src/quic_frame.c:292,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_frame.c:293,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_frame.c:294,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:296,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:297,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:298,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:299,1
    - Dst: eb64_prev
      Src: /src/haproxy/src/quic_frame.c:302,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_frame.c:303,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_frame.c:304,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:306,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:307,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_frame.c:311,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - qc
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 315
    functionName: quic_build_ack_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - eb64_entry
    - quic_enc_int
    - eb64_prev
    - eb64_last
    linkageType: ''
    returnType: int
    signature: "int quic_build_ack_frame(unsigned char **pos, const unsigned char
      *end,\n                                struct quic_frame *frm, struct quic_conn
      *qc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:326,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:330,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:334,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 343
    functionName: quic_parse_ack_frame_header
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_ack_frame_header(struct quic_frame *frm, struct quic_conn
      *qc,\n                                       const unsigned char **pos, const
      unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:353,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:354,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:355,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 357
    functionName: quic_build_ack_ecn_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_ack_ecn_frame(unsigned char **pos, const unsigned char
      *end,\n                                    struct quic_frame *frm, struct quic_conn
      *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:369,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:370,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:371,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:372,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:373,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:374,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:375,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 376
    functionName: quic_parse_ack_ecn_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_ack_ecn_frame(struct quic_frame *frm, struct quic_conn
      *qc,\n                                    const unsigned char **pos, const unsigned
      char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:386,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:387,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 389
    functionName: quic_build_reset_stream_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_reset_stream_frame(unsigned char **pos, const unsigned
      char *end,\n                                         struct quic_frame *frm,
      struct quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:399,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:400,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 402
    functionName: quic_parse_reset_stream_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_reset_stream_frame(struct quic_frame *frm, struct quic_conn
      *qc,\n                                         const unsigned char **pos, const
      unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:412,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 414
    functionName: quic_build_stop_sending_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_stop_sending_frame(unsigned char **pos, const unsigned
      char *end,\n                                         struct quic_frame *frm,
      struct quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:424,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 426
    functionName: quic_parse_stop_sending_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_stop_sending_frame(struct quic_frame *frm, struct quic_conn
      *qc,\n                                         const unsigned char **pos, const
      unsigned char *end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:438,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:439,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 461
    functionName: quic_build_crypto_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_build_crypto_frame(unsigned char **pos, const unsigned char
      *end,\n                                   struct quic_frame *frm, struct quic_conn
      *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:471,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 479
    functionName: quic_parse_crypto_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_crypto_frame(struct quic_frame *frm, struct quic_conn
      *qc,\n                                   const unsigned char **pos, const unsigned
      char *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:490,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 497
    functionName: quic_build_new_token_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_build_new_token_frame(unsigned char **pos, const unsigned
      char *end,\n                                      struct quic_frame *frm, struct
      quic_conn *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 515
    functionName: quic_parse_new_token_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_new_token_frame(struct quic_frame *frm, struct quic_conn
      *qc,\n                                      const unsigned char **pos, const
      unsigned char *end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_frame.c:527,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:530,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:531,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:533,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_frame.c:540,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:543,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:547,1
    - Dst: b_orig
      Src: /src/haproxy/src/quic_frame.c:547,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:551,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 556
    functionName: quic_build_stream_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - b_orig
    - memcpy
    - BUG_ON
    - quic_enc_int
    - b_wrap
    linkageType: ''
    returnType: int
    signature: "int quic_build_stream_frame(unsigned char **pos, const unsigned char
      *end,\n                                   struct quic_frame *frm, struct quic_conn
      *conn)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:566,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:572,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 586
    functionName: quic_parse_stream_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_stream_frame(struct quic_frame *frm, struct quic_conn
      *qc,\n                                   const unsigned char **pos, const unsigned
      char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 597
    functionName: quic_build_max_data_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_max_data_frame(unsigned char **pos, const unsigned
      char *end,\n                                     struct quic_frame *frm, struct
      quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 608
    functionName: quic_parse_max_data_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_max_data_frame(struct quic_frame *frm, struct quic_conn
      *qc,\n                                     const unsigned char **pos, const
      unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:618,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 620
    functionName: quic_build_max_stream_data_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_max_stream_data_frame(unsigned char **pos, const unsigned
      char *end,\n                                            struct quic_frame *frm,
      struct quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:630,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 632
    functionName: quic_parse_max_stream_data_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_max_stream_data_frame(struct quic_frame *frm, struct
      quic_conn *qc,\n                                            const unsigned char
      **pos, const unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 643
    functionName: quic_build_max_streams_bidi_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_max_streams_bidi_frame(unsigned char **pos, const unsigned
      char *end,\n                                             struct quic_frame *frm,
      struct quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 655
    functionName: quic_parse_max_streams_bidi_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_max_streams_bidi_frame(struct quic_frame *frm, struct
      quic_conn *qc,\n                                             const unsigned
      char **pos, const unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 666
    functionName: quic_build_max_streams_uni_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_max_streams_uni_frame(unsigned char **pos, const unsigned
      char *end,\n                                            struct quic_frame *frm,
      struct quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 678
    functionName: quic_parse_max_streams_uni_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_max_streams_uni_frame(struct quic_frame *frm, struct
      quic_conn *qc,\n                                            const unsigned char
      **pos, const unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 689
    functionName: quic_build_data_blocked_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_data_blocked_frame(unsigned char **pos, const unsigned
      char *end,\n                                         struct quic_frame *frm,
      struct quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 700
    functionName: quic_parse_data_blocked_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_data_blocked_frame(struct quic_frame *frm, struct quic_conn
      *qc,\n                                         const unsigned char **pos, const
      unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:710,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 712
    functionName: quic_build_stream_data_blocked_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_stream_data_blocked_frame(unsigned char **pos, const
      unsigned char *end,\n                                                struct
      quic_frame *frm, struct quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:722,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 724
    functionName: quic_parse_stream_data_blocked_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_stream_data_blocked_frame(struct quic_frame *frm, struct
      quic_conn *qc,\n                                                const unsigned
      char **pos, const unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 735
    functionName: quic_build_streams_blocked_bidi_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_streams_blocked_bidi_frame(unsigned char **pos, const
      unsigned char *end,\n                                                 struct
      quic_frame *frm, struct quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 747
    functionName: quic_parse_streams_blocked_bidi_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_streams_blocked_bidi_frame(struct quic_frame *frm,
      struct quic_conn *qc,\n                                                 const
      unsigned char **pos, const unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 758
    functionName: quic_build_streams_blocked_uni_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_streams_blocked_uni_frame(unsigned char **pos, const
      unsigned char *end,\n                                                struct
      quic_frame *frm, struct quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 770
    functionName: quic_parse_streams_blocked_uni_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_streams_blocked_uni_frame(struct quic_frame *frm, struct
      quic_conn *qc,\n                                                const unsigned
      char **pos, const unsigned char *end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:780,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:781,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:788,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:791,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 795
    functionName: quic_build_new_connection_id_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_build_new_connection_id_frame(unsigned char **pos, const
      unsigned char *end,\n                                              struct quic_frame
      *frm, struct quic_conn *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:805,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:806,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 821
    functionName: quic_parse_new_connection_id_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_new_connection_id_frame(struct quic_frame *frm, struct
      quic_conn *qc,\n                                              const unsigned
      char **pos, const unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 832
    functionName: quic_build_retire_connection_id_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_retire_connection_id_frame(unsigned char **pos, const
      unsigned char *end,\n                                                 struct
      quic_frame *frm, struct quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 843
    functionName: quic_parse_retire_connection_id_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    linkageType: ''
    returnType: int
    signature: "int quic_parse_retire_connection_id_frame(struct quic_frame *frm,
      struct quic_conn *qc,\n                                                 const
      unsigned char **pos, const unsigned char *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 860
    functionName: quic_build_path_challenge_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_build_path_challenge_frame(unsigned char **pos, const unsigned
      char *end,\n                                           struct quic_frame *frm,
      struct quic_conn *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 877
    functionName: quic_parse_path_challenge_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_parse_path_challenge_frame(struct quic_frame *frm, struct
      quic_conn *qc,\n                                           const unsigned char
      **pos, const unsigned char *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 895
    functionName: quic_build_path_response_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_build_path_response_frame(unsigned char **pos, const unsigned
      char *end,\n                                          struct quic_frame *frm,
      struct quic_conn *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 912
    functionName: quic_parse_path_response_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_parse_path_response_frame(struct quic_frame *frm, struct
      quic_conn *qc,\n                                          const unsigned char
      **pos, const unsigned char *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:924,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:925,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:926,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 934
    functionName: quic_build_connection_close_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_build_connection_close_frame(unsigned char **pos, const unsigned
      char *end,\n                                             struct quic_frame *frm,
      struct quic_conn *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:947,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:948,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:949,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_frame.c:953,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:954,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 958
    functionName: quic_parse_connection_close_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    - memcpy
    - QUIC_MIN
    linkageType: ''
    returnType: int
    signature: "int quic_parse_connection_close_frame(struct quic_frame *frm, struct
      quic_conn *qc,\n                                             const unsigned
      char **pos, const unsigned char *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:970,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:971,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:975,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 979
    functionName: quic_build_connection_close_app_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_build_connection_close_app_frame(unsigned char **pos, const
      unsigned char *end,\n                                                 struct
      quic_frame *frm, struct quic_conn *conn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:992,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:993,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_frame.c:997,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:998,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 1002
    functionName: quic_parse_connection_close_app_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    - memcpy
    - QUIC_MIN
    linkageType: ''
    returnType: int
    signature: "int quic_parse_connection_close_app_frame(struct quic_frame *frm,
      struct quic_conn *qc,\n                                                 const
      unsigned char **pos, const unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1012
    functionName: quic_build_handshake_done_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int quic_build_handshake_done_frame(unsigned char **pos, const unsigned
      char *end,\n                                           struct quic_frame *frm,
      struct quic_conn *conn)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/src/quic_frame.c:1029,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:1030,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_frame.c:1034,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_frame.c:1036,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_frame.c:1038,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_frame.c:1040,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_frame.c:1042,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_frame.c:1044,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_frame.c:1046,1
    - Dst: b_make
      Src: /src/haproxy/src/quic_frame.c:1050,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:1051,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - pos
    - end
    - frm
    - conn
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1017
    functionDepth: 3
    functionLinenumber: 1017
    functionLinenumberEnd: 1054
    functionName: quic_build_qmux_transport_parameters
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - b_make
    - b_quic_enc_int
    - quic_transport_param_enc_int
    linkageType: ''
    returnType: int
    signature: "int quic_build_qmux_transport_parameters(unsigned char **pos, const
      unsigned char *end,\n                                                struct
      quic_frame *frm, struct quic_conn *conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1064
    functionName: quic_parse_handshake_done_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int quic_parse_handshake_done_frame(struct quic_frame *frm, struct
      quic_conn *qc,\n                                           const unsigned char
      **pos, const unsigned char *end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:1075,1
    - Dst: quic_transport_params_decode
      Src: /src/haproxy/src/quic_frame.c:1082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1069
    functionDepth: 4
    functionLinenumber: 1069
    functionLinenumberEnd: 1087
    functionName: quic_parse_qmux_transport_parameters
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    - quic_transport_params_decode
    linkageType: ''
    returnType: int
    signature: "int quic_parse_qmux_transport_parameters(struct quic_frame *frm, struct
      quic_conn *qc,\n                                                const unsigned
      char **pos, const unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1208
    functionName: quic_frame_type_is_known
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_frame_type_is_known(uint64_t type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_frame.c:1219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1221
    functionName: qf_parser
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - ABORT_NOW
    linkageType: ''
    returnType: struct quic_frame_parser
    signature: struct quic_frame_parser *qf_parser(uint64_t type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_frame.c:1232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1234
    functionName: qf_builder
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - ABORT_NOW
    linkageType: ''
    returnType: struct quic_frame_builder
    signature: struct quic_frame_builder *qf_builder(uint64_t type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_frame.c:1247,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1250,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:1254,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_frame.c:1255,1
    - Dst: quic_frame_type_is_known
      Src: /src/haproxy/src/quic_frame.c:1259,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1260,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1266,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - frm
    - pos
    - end
    - qc
    argTypes:
    - struct quic_frame*
    - unsigned char**
    - unsigned char*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1268
    functionName: qc_parse_frm_type
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_dec_int
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_frame_type_is_known
    linkageType: ''
    returnType: int
    signature: "int qc_parse_frm_type(struct quic_frame *frm,\n                      const
      unsigned char **pos, const unsigned char *end,\n                      struct
      quic_conn *qc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qf_parser
      Src: /src/haproxy/src/quic_frame.c:1278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - frm
    - pkt
    - flags
    argTypes:
    - struct quic_frame*
    - struct quic_rx_packet*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1284
    functionName: qc_parse_frm_pkt
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - qf_parser
    linkageType: ''
    returnType: int
    signature: "int qc_parse_frm_pkt(const struct quic_frame *frm,\n                     const
      struct quic_rx_packet *pkt, int *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_frame.c:1297,1
    - Dst: qf_parser
      Src: /src/haproxy/src/quic_frame.c:1299,1
    - Dst: struct quic_frame_parser*::func
      Src: /src/haproxy/src/quic_frame.c:1300,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1301,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_frame.c:1305,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - frm
    - pos
    - end
    - qc
    argTypes:
    - struct quic_frame*
    - unsigned char**
    - unsigned char*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1290
    functionDepth: 2
    functionLinenumber: 1290
    functionLinenumberEnd: 1311
    functionName: qc_parse_frm_payload
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 1
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - struct quic_frame_parser*::func
    - TRACE_DEVEL
    - TRACE_ENTER
    - qf_parser
    linkageType: ''
    returnType: int
    signature: "int qc_parse_frm_payload(struct quic_frame *frm,\n                         const
      unsigned char **pos, const unsigned char *end,\n                         struct
      quic_conn *qc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qf_builder
      Src: /src/haproxy/src/quic_frame.c:1324,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_frame.c:1327,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:1329,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1330,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_frame.c:1334,1
    - Dst: struct quic_frame_builder*::func
      Src: /src/haproxy/src/quic_frame.c:1335,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_frame.c:1336,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - frm
    - pos
    - end
    - qc
    argTypes:
    - struct quic_frame*
    - unsigned char**
    - unsigned char*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1319
    functionDepth: 2
    functionLinenumber: 1319
    functionLinenumberEnd: 1345
    functionName: qc_build_frm
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 2
    functionsReached:
    - qf_builder
    - TRACE_PROTO
    - TRACE_LEAVE
    - struct quic_frame_builder*::func
    - TRACE_ERROR
    - quic_enc_int
    - TRACE_DEVEL
    - TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: "int qc_build_frm(struct quic_frame *frm,\n                 unsigned
      char **pos, const unsigned char *end,\n                 struct quic_conn *qc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qf_builder
      Src: /src/haproxy/src/quic_frame.c:1357,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_frame.c:1360,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_frame.c:1364,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_frame.c:1365,1
    - Dst: qc_build_frm
      Src: /src/haproxy/src/quic_frame.c:1368,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - frm
    - pkt
    - pos
    - end
    - qc
    argTypes:
    - struct quic_frame*
    - struct quic_tx_packet*
    - unsigned char**
    - unsigned char*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1353
    functionDepth: 3
    functionLinenumber: 1353
    functionLinenumberEnd: 1377
    functionName: qc_build_frm_pkt
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - qf_builder
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_ERROR
    - TRACE_ENTER
    - qc_build_frm
    linkageType: ''
    returnType: int
    signature: "int qc_build_frm_pkt(struct quic_frame *frm, struct quic_tx_packet
      *pkt,\n                     unsigned char **pos, const unsigned char *end,\n
      \                    struct quic_conn *qc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_frame.c:1384,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_frame.c:1386,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1388,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1390,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1394,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - frm
    - qc
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1400
    functionName: qc_frm_unref
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - TRACE_DEVEL
    - TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void qc_frm_unref(struct quic_frame *frm, struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_frame.c:1406,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_frame.c:1410,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_frame.c:1410,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_frame.c:1411,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/quic_frame.c:1411,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1417,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_frame.c:1419,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - qc
    - frm
    argTypes:
    - struct quic_conn*
    - struct quic_frame**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1403
    functionDepth: 1
    functionLinenumber: 1403
    functionLinenumberEnd: 1422
    functionName: qc_frm_free
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 2
    functionsReached:
    - TRACE_LEAVE
    - BUG_ON
    - LIST_DEL_INIT
    - TRACE_ENTER
    - LIST_ISEMPTY
    - LIST_INLIST
    - pool_free
    linkageType: ''
    returnType: void
    signature: void qc_frm_free(struct quic_conn *qc, struct quic_frame **frm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_frame.c:1434,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_frame.c:1436,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_frame.c:1449,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1453,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1455,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1459,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1461,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_frame.c:1462,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1465,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_frame.c:1467,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1468,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_frame.c:1470,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - qc
    - frm
    argTypes:
    - struct quic_conn*
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1425
    functionDepth: 2
    functionLinenumber: 1425
    functionLinenumberEnd: 1473
    functionName: qc_release_frm
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - BUG_ON
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - TRACE_DEVEL
    - TRACE_ENTER
    - qc_frm_free
    - quic_tx_packet_refdec
    linkageType: ''
    returnType: void
    signature: void qc_release_frm(struct quic_conn *qc, struct quic_frame *frm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_frame.c:1491,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_frame.c:1493,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_frame.c:1498,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_frame.c:1503,1
    - Dst: quic_int_cap_length
      Src: /src/haproxy/src/quic_frame.c:1516,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_frame.c:1523,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_frame.c:1528,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - room
    - frm
    - split
    argTypes:
    - size_t
    - struct quic_frame*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1534
    functionName: quic_strm_frm_fillbuf
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 2
    functionsReached:
    - quic_int_getsize
    - ABORT_NOW
    - quic_int_cap_length
    linkageType: ''
    returnType: size_t
    signature: size_t quic_strm_frm_fillbuf(size_t room, struct quic_frame *frm, size_t
      *split)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qc_frm_alloc::qc_frm_alloc
      Src: /src/haproxy/src/quic_frame.c:1547,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1552,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1553,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1554,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1555,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1556,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1559,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1560,1
    - Dst: b_make
      Src: /src/haproxy/src/quic_frame.c:1564,1
    - Dst: b_orig
      Src: /src/haproxy/src/quic_frame.c:1564,1
    - Dst: b_size
      Src: /src/haproxy/src/quic_frame.c:1565,1
    - Dst: b_orig
      Src: /src/haproxy/src/quic_frame.c:1566,1
    - Dst: b_peek
      Src: /src/haproxy/src/quic_frame.c:1569,1
    - Dst: crypto::crypto
      Src: /src/haproxy/src/quic_frame.c:1572,1
    - Dst: crypto::crypto
      Src: /src/haproxy/src/quic_frame.c:1573,1
    - Dst: crypto::crypto
      Src: /src/haproxy/src/quic_frame.c:1574,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_frame.c:1582,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_frame.c:1587,1
    - Dst: ref::ref
      Src: /src/haproxy/src/quic_frame.c:1587,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1589,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - frm
    - split
    argTypes:
    - struct quic_frame*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1542
    functionDepth: 1
    functionLinenumber: 1542
    functionLinenumberEnd: 1594
    functionName: quic_strm_frm_split
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 2
    functionsReached:
    - b_peek
    - b_orig
    - LIST_DEL_INIT
    - qc_frm_alloc::qc_frm_alloc
    - LIST_APPEND
    - crypto::crypto
    - ABORT_NOW
    - b_size
    - ref::ref
    - b_make
    - stream::stream
    linkageType: ''
    returnType: struct quic_frame
    signature: struct quic_frame *quic_strm_frm_split(struct quic_frame *frm, uint64_t
      split)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/backend.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct lb_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: lb_ops_register
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void lb_ops_register(struct lb_ops *ops)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hash_djb2
      Src: /src/haproxy/src/backend.c:81,1
    - Dst: hash_wt6
      Src: /src/haproxy/src/backend.c:84,1
    - Dst: hash_crc32
      Src: /src/haproxy/src/backend.c:87,1
    - Dst: read_int64
      Src: /src/haproxy/src/backend.c:94,1
    - Dst: hash_sdbm
      Src: /src/haproxy/src/backend.c:100,1
    - Dst: full_hash
      Src: /src/haproxy/src/backend.c:105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - px
    - key
    - len
    argTypes:
    - struct proxy*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 108
    functionName: gen_hash
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - hash_djb2
    - read_int64
    - full_hash
    - hash_crc32
    - hash_wt6
    - hash_sdbm
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gen_hash(const struct proxy* px, const char* key, unsigned
      long len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/backend.c:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 147
    functionName: recount_servers
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 4
    functionsReached:
    - srv_willbe_usable
    linkageType: ''
    returnType: void
    signature: void recount_servers(struct proxy *px)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 172
    functionName: update_backend_weight
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_backend_weight(struct proxy *px)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/src/backend.c:195,1
    - Dst: full_hash
      Src: /src/haproxy/src/backend.c:203,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:206,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - px
    - addr
    - len
    - avoid
    argTypes:
    - struct proxy*
    - char*
    - int
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 209
    functionName: get_server_sh
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - full_hash
    - map_get_server_hash
    - ntohl
    - chash_get_server_hash
    linkageType: ''
    returnType: struct server
    signature: struct server *get_server_sh(struct proxy *px, const char *addr, int
      len, const struct server *avoid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/backend.c:240,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:255,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:259,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:261,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - px
    - uri
    - uri_len
    - avoid
    argTypes:
    - struct proxy*
    - char*
    - int
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 262
    functionName: get_server_uh
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - gen_hash
    - map_get_server_hash
    - MIN
    - chash_get_server_hash
    linkageType: ''
    returnType: struct server
    signature: struct server *get_server_uh(struct proxy *px, char *uri, int uri_len,
      const struct server *avoid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/haproxy/src/backend.c:285,1
    - Dst: memcmp
      Src: /src/haproxy/src/backend.c:297,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:310,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:313,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:315,1
    - Dst: memchr
      Src: /src/haproxy/src/backend.c:319,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - px
    - uri
    - uri_len
    - avoid
    argTypes:
    - struct proxy*
    - char*
    - int
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 327
    functionName: get_server_ph
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - memcmp
    - map_get_server_hash
    - gen_hash
    - memchr
    - chash_get_server_hash
    linkageType: ''
    returnType: struct server
    signature: struct server *get_server_ph(struct proxy *px, const char *uri, int
      uri_len, const struct server *avoid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/backend.c:337,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/backend.c:348,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/backend.c:348,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/backend.c:349,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/backend.c:354,1
    - Dst: memcmp
      Src: /src/haproxy/src/backend.c:363,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:373,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/backend.c:373,1
    - Dst: likely
      Src: /src/haproxy/src/backend.c:377,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/backend.c:377,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:387,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:390,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:392,1
    - Dst: memchr
      Src: /src/haproxy/src/backend.c:396,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - s
    - avoid
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 404
    functionName: get_server_ph_post
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_next_blk
    - memcmp
    - htxbuf
    - map_get_server_hash
    - htx_get_first_blk
    - memchr
    - likely
    - chash_get_server_hash
    - htx_get_blk_type
    - gen_hash
    - HTTP_IS_LWS
    - HTTP_IS_TOKEN
    - htx_get_blk_value
    linkageType: ''
    returnType: struct server
    signature: struct server *get_server_ph_post(struct stream *s, const struct server
      *avoid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/backend.c:425,1
    - Dst: http_find_header
      Src: /src/haproxy/src/backend.c:436,1
    - Dst: ist2
      Src: /src/haproxy/src/backend.c:436,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:449,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:479,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:484,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:486,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - s
    - avoid
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 487
    functionName: get_server_hh
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - ist2
    - htxbuf
    - http_find_header
    - gen_hash
    - map_get_server_hash
    - chash_get_server_hash
    linkageType: ''
    returnType: struct server
    signature: struct server *get_server_hh(struct stream *s, const struct server
      *avoid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/backend.c:503,1
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:505,1
    - Dst: c_rew
      Src: /src/haproxy/src/backend.c:506,1
    - Dst: fetch_rdp_cookie_name
      Src: /src/haproxy/src/backend.c:508,1
    - Dst: c_adv
      Src: /src/haproxy/src/backend.c:511,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:523,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:527,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:529,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - s
    - avoid
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 530
    functionName: get_server_rch
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - map_get_server_hash
    - memset
    - co_data
    - chash_get_server_hash
    - gen_hash
    - fetch_rdp_cookie_name
    - c_adv
    - c_rew
    linkageType: ''
    returnType: struct server
    signature: struct server *get_server_rch(struct stream *s, const struct server
      *avoid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/backend.c:554,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:562,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:566,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:568,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - s
    - avoid
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 569
    functionName: get_server_expr
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - gen_hash
    - map_get_server_hash
    - sample_fetch_as_type
    - chash_get_server_hash
    linkageType: ''
    returnType: struct server
    signature: struct server *get_server_expr(struct stream *s, const struct server
      *avoid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: statistical_prng
      Src: /src/haproxy/src/backend.c:586,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:587,1
    - Dst: read_freq_ctr_period_estimate
      Src: /src/haproxy/src/backend.c:602,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/backend.c:602,1
    - Dst: read_freq_ctr_period_estimate
      Src: /src/haproxy/src/backend.c:603,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/backend.c:603,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/backend.c:614,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 2
    argNames:
    - s
    - avoid
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 618
    functionName: get_server_rnd
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - read_freq_ctr_period_estimate
    - MS_TO_TICKS
    - statistical_prng
    - srv_dynamic_maxconn
    - chash_get_server_hash
    linkageType: ''
    returnType: struct server
    signature: struct server *get_server_rnd(struct stream *s, const struct server
      *avoid)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:653,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:656,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:663,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/backend.c:677,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:678,1
    - Dst: server_has_room
      Src: /src/haproxy/src/backend.c:683,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/backend.c:685,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/backend.c:686,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/backend.c:689,1
    - Dst: fwrr_get_next_server
      Src: /src/haproxy/src/backend.c:721,1
    - Dst: fas_get_next_server
      Src: /src/haproxy/src/backend.c:725,1
    - Dst: fwlc_get_next_server
      Src: /src/haproxy/src/backend.c:729,1
    - Dst: get_server_rnd
      Src: /src/haproxy/src/backend.c:737,1
    - Dst: map_get_server_rr
      Src: /src/haproxy/src/backend.c:739,1
    - Dst: sc_src
      Src: /src/haproxy/src/backend.c:752,1
    - Dst: get_server_sh
      Src: /src/haproxy/src/backend.c:754,1
    - Dst: get_server_sh
      Src: /src/haproxy/src/backend.c:759,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:767,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/backend.c:770,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/backend.c:770,1
    - Dst: htxbuf
      Src: /src/haproxy/src/backend.c:770,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/backend.c:773,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/backend.c:775,1
    - Dst: isttest
      Src: /src/haproxy/src/backend.c:776,1
    - Dst: ist
      Src: /src/haproxy/src/backend.c:777,1
    - Dst: get_server_uh
      Src: /src/haproxy/src/backend.c:779,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:785,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/backend.c:788,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/backend.c:788,1
    - Dst: htxbuf
      Src: /src/haproxy/src/backend.c:788,1
    - Dst: get_server_ph
      Src: /src/haproxy/src/backend.c:789,1
    - Dst: get_server_ph_post
      Src: /src/haproxy/src/backend.c:792,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:798,1
    - Dst: get_server_hh
      Src: /src/haproxy/src/backend.c:799,1
    - Dst: get_server_rch
      Src: /src/haproxy/src/backend.c:804,1
    - Dst: get_server_expr
      Src: /src/haproxy/src/backend.c:809,1
    - Dst: chash_get_next_server
      Src: /src/haproxy/src/backend.c:823,1
    - Dst: map_get_server_rr
      Src: /src/haproxy/src/backend.c:825,1
    - Dst: ss_get_server
      Src: /src/haproxy/src/backend.c:836,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:851,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:853,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/backend.c:855,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:875,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:877,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:878,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 156
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 884
    functionName: assign_server
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - unlikely
    - stream_set_srv_target
    - http_uri_parser_init
    - sc_src
    - fas_get_next_server
    - objt_server
    - get_server_hh
    - ss_get_server
    - get_server_rch
    - ist
    - chash_get_next_server
    - get_server_sh
    - IS_HTX_STRM
    - http_parse_path
    - htx_sl_req_uri
    - sess_change_server
    - srv_currently_usable
    - get_server_rnd
    - htxbuf
    - process_srv_queue
    - get_server_ph
    - server_has_room
    - get_server_expr
    - http_get_stline
    - get_server_uh
    - get_server_ph_post
    - fwrr_get_next_server
    - may_dequeue_tasks
    - _HA_ATOMIC_INC
    - fwlc_get_next_server
    - list_for_each_entry
    - map_get_server_rr
    - isttest
    linkageType: ''
    returnType: int
    signature: int assign_server(struct stream *s)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:913,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/backend.c:916,1
    - Dst: set_host_port
      Src: /src/haproxy/src/backend.c:919,1
    - Dst: is_addr
      Src: /src/haproxy/src/backend.c:920,1
    - Dst: sc_dst
      Src: /src/haproxy/src/backend.c:926,1
    - Dst: sc_dst
      Src: /src/haproxy/src/backend.c:943,1
    - Dst: get_host_port
      Src: /src/haproxy/src/backend.c:946,1
    - Dst: get_host_port
      Src: /src/haproxy/src/backend.c:949,1
    - Dst: set_host_port
      Src: /src/haproxy/src/backend.c:950,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:955,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:962,1
    - Dst: sc_dst
      Src: /src/haproxy/src/backend.c:966,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 3
    argNames:
    - ss
    - srv
    - s
    argTypes:
    - struct sockaddr_storage**
    - struct server*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 976
    functionName: alloc_dst_address
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - sockaddr_alloc
    - sc_dst
    - get_host_port
    - set_host_port
    - ASSUME_NONNULL
    - is_addr
    linkageType: ''
    returnType: int
    signature: "int alloc_dst_address(struct sockaddr_storage **ss,\n                             struct
      server *srv, struct stream *s)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:1008,1
    - Dst: assign_server
      Src: /src/haproxy/src/backend.c:1010,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:1021,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1028,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1030,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1033,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1035,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:1043,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:1059,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/backend.c:1079,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/backend.c:1086,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/backend.c:1088,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/backend.c:1089,1
    - Dst: pendconn_add
      Src: /src/haproxy/src/backend.c:1095,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1112,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:1115,1
    - Dst: pendconn_add
      Src: /src/haproxy/src/backend.c:1120,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:1137,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/backend.c:1140,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/backend.c:1144,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/backend.c:1147,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/backend.c:1160,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1162,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1167,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/backend.c:1170,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1171,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1173,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1176,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1178,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1180,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1181,1
    - Dst: pool_free
      Src: /src/haproxy/src/backend.c:1183,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/backend.c:1186,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:1189,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 102
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 997
    functionDepth: 5
    functionLinenumber: 997
    functionLinenumberEnd: 1208
    functionName: assign_server_and_queue
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _HA_ATOMIC_INC
    - _HA_ATOMIC_LOAD
    - srv_dynamic_maxconn
    - HA_SPIN_UNLOCK
    - eb32_delete
    - HA_SPIN_LOCK
    - _HA_ATOMIC_DEC
    - pendconn_add
    - stream_set_srv_target
    - __ha_cpu_relax
    - HA_ATOMIC_XCHG
    - _HA_ATOMIC_CAS
    - objt_server
    - sess_change_server
    - assign_server
    - pool_free
    linkageType: ''
    returnType: int
    signature: int assign_server_and_queue(struct stream *s)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:1238,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:1252,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:1260,1
    - Dst: sc_src
      Src: /src/haproxy/src/backend.c:1263,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:1267,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:1283,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:1285,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:1288,1
    - Dst: http_get_htx_hdr
      Src: /src/haproxy/src/backend.c:1296,1
    - Dst: htxbuf
      Src: /src/haproxy/src/backend.c:1296,1
    - Dst: ist2
      Src: /src/haproxy/src/backend.c:1297,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/backend.c:1299,1
    - Dst: htonl
      Src: /src/haproxy/src/backend.c:1303,1
    - Dst: inetaddr_host_lim
      Src: /src/haproxy/src/backend.c:1303,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 4
    argNames:
    - ss
    - srv
    - be
    - s
    argTypes:
    - struct sockaddr_storage**
    - struct server*
    - struct proxy*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1312
    functionName: alloc_bind_address
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 1
    functionsReached:
    - sockaddr_alloc
    - ist2
    - htxbuf
    - http_get_htx_hdr
    - BUG_ON
    - sc_src
    - IS_HTX_STRM
    - inetaddr_host_lim
    - sockaddr_free
    - htonl
    linkageType: ''
    returnType: int
    signature: "int alloc_bind_address(struct sockaddr_storage **ss,\n                       struct
      server *srv, struct proxy *be,\n                       struct stream *s)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/backend.c:1342,1
    - Dst: srv_lookup_conn
      Src: /src/haproxy/src/backend.c:1343,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1345,1
    - Dst: srv_lookup_conn
      Src: /src/haproxy/src/backend.c:1351,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1353,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1357,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/backend.c:1377,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/backend.c:1402,1
    - Dst: srv_lookup_conn
      Src: /src/haproxy/src/backend.c:1411,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/backend.c:1413,1
    - Dst: takeover
      Src: /src/haproxy/src/backend.c:1413,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1414,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1415,1
    - Dst: srv_lookup_conn_next
      Src: /src/haproxy/src/backend.c:1419,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1423,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/backend.c:1443,1
    - Dst: srv_use_conn
      Src: /src/haproxy/src/backend.c:1445,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1447,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1448,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1449,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/backend.c:1451,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/backend.c:1455,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/backend.c:1458,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 84
    argCount: 5
    argNames:
    - reuse_mode
    - srv
    - sess
    - is_safe
    - hash
    argTypes:
    - int
    - struct server*
    - struct session*
    - int
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1326
    functionDepth: 2
    functionLinenumber: 1326
    functionLinenumberEnd: 1463
    functionName: conn_backend_get
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - session_add_conn
    - _HA_ATOMIC_INC
    - HA_SPIN_UNLOCK
    - conn_delete_from_tree
    - HA_SPIN_LOCK
    - CALL_MUX_WITH_RET
    - _HA_ATOMIC_STORE
    - takeover
    - srv_add_to_avail_list
    - __ha_barrier_atomic_store
    - srv_lookup_conn
    - srv_lookup_conn_next
    - protocol_lookup
    - _HA_ATOMIC_DEC
    - srv_use_conn
    linkageType: ''
    returnType: struct connection
    signature: "struct connection *conn_backend_get(int reuse_mode,\n                                    struct
      server *srv, struct session *sess,\n                                    int
      is_safe, int64_t hash)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:1470,1
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:1473,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/backend.c:1477,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/backend.c:1477,1
    - Dst: struct connection*::ctrl::connect
      Src: /src/haproxy/src/backend.c:1478,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/backend.c:1490,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/backend.c:1498,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - s
    - conn
    argTypes:
    - struct stream*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1501
    functionName: do_connect_server
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - unlikely
    - conn_ctrl_ready
    - struct connection*::ctrl::connect
    - struct connection*::mux::ctl
    - co_data
    - conn_xprt_ready
    - conn_get_src
    linkageType: ''
    returnType: int
    signature: int do_connect_server(struct stream *s, struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ceb64_item_first
      Src: /src/haproxy/src/backend.c:1512,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/backend.c:1514,1
    - Dst: takeover
      Src: /src/haproxy/src/backend.c:1514,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1515,1
    - Dst: ceb64_item_next
      Src: /src/haproxy/src/backend.c:1518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - root
    - curtid
    argTypes:
    - struct ceb_root**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1507
    functionDepth: 2
    functionLinenumber: 1507
    functionLinenumberEnd: 1522
    functionName: takeover_random_idle_conn
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - ceb64_item_next
    - conn_delete_from_tree
    - CALL_MUX_WITH_RET
    - takeover
    - ceb64_item_first
    linkageType: ''
    returnType: struct connection
    signature: 'struct connection *

      takeover_random_idle_conn(struct ceb_root **root, int curtid)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/backend.c:1544,1
    - Dst: takeover_random_idle_conn
      Src: /src/haproxy/src/backend.c:1546,1
    - Dst: takeover_random_idle_conn
      Src: /src/haproxy/src/backend.c:1548,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1549,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1560,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1561,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1562,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1569,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/backend.c:1571,1
    - Dst: destroy
      Src: /src/haproxy/src/backend.c:1571,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1531
    functionDepth: 3
    functionLinenumber: 1531
    functionLinenumberEnd: 1575
    functionName: kill_random_idle_conn
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - _HA_ATOMIC_INC
    - CALL_MUX_NO_RET
    - HA_SPIN_UNLOCK
    - takeover_random_idle_conn
    - destroy
    - _HA_ATOMIC_DEC
    linkageType: ''
    returnType: int
    signature: int kill_random_idle_conn(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - be
    - srv
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1580
    functionDepth: 0
    functionLinenumber: 1580
    functionLinenumberEnd: 1588
    functionName: be_reuse_mode
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int be_reuse_mode(const struct proxy *be, const struct server *srv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/backend.c:1614,1
    - Dst: memset
      Src: /src/haproxy/src/backend.c:1617,1
    - Dst: istlen
      Src: /src/haproxy/src/backend.c:1623,1
    - Dst: conn_hash_prehash
      Src: /src/haproxy/src/backend.c:1625,1
    - Dst: istptr
      Src: /src/haproxy/src/backend.c:1625,1
    - Dst: istlen
      Src: /src/haproxy/src/backend.c:1625,1
    - Dst: objt_conn
      Src: /src/haproxy/src/backend.c:1636,1
    - Dst: strm_orig
      Src: /src/haproxy/src/backend.c:1636,1
    - Dst: make_proxy_line
      Src: /src/haproxy/src/backend.c:1637,1
    - Dst: conn_hash_prehash
      Src: /src/haproxy/src/backend.c:1641,1
    - Dst: conn_calculate_hash
      Src: /src/haproxy/src/backend.c:1675,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 6
    argNames:
    - srv
    - strm
    - sess
    - src
    - dst
    - name
    argTypes:
    - struct server*
    - struct stream*
    - struct session*
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1605
    functionDepth: 3
    functionLinenumber: 1605
    functionLinenumberEnd: 1676
    functionName: be_calculate_conn_hash
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - memset
    - objt_conn
    - BUG_ON_HOT
    - conn_calculate_hash
    - strm_orig
    - make_proxy_line
    - istptr
    - conn_hash_prehash
    - istlen
    linkageType: ''
    returnType: int64_t
    signature: "int64_t be_calculate_conn_hash(struct server *srv, struct stream *strm,\n
      \                              struct session *sess,\n                               struct
      sockaddr_storage *src,\n                               struct sockaddr_storage
      *dst,\n                               struct ist name)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: be_reuse_mode
      Src: /src/haproxy/src/backend.c:1702,1
    - Dst: session_get_conn
      Src: /src/haproxy/src/backend.c:1705,1
    - Dst: ceb_isempty
      Src: /src/haproxy/src/backend.c:1728,1
    - Dst: srv_lookup_conn
      Src: /src/haproxy/src/backend.c:1729,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:1732,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/backend.c:1732,1
    - Dst: conn_backend_get
      Src: /src/haproxy/src/backend.c:1747,1
    - Dst: conn_backend_get
      Src: /src/haproxy/src/backend.c:1753,1
    - Dst: conn_backend_get
      Src: /src/haproxy/src/backend.c:1759,1
    - Dst: struct connection*::mux::avail_streams
      Src: /src/haproxy/src/backend.c:1771,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/backend.c:1775,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1776,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1777,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/backend.c:1781,1
    - Dst: attach
      Src: /src/haproxy/src/backend.c:1781,1
    - Dst: sc_reset_endp
      Src: /src/haproxy/src/backend.c:1782,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/backend.c:1784,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 50
    argCount: 7
    argNames:
    - hash
    - sess
    - be
    - srv
    - sc
    - target
    - not_first_req
    argTypes:
    - int64_t
    - struct session*
    - struct proxy*
    - struct server*
    - struct stconn*
    - enum obj_type*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1697
    functionDepth: 3
    functionLinenumber: 1697
    functionLinenumberEnd: 1801
    functionName: be_reuse_connection
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - be_reuse_mode
    - attach
    - BUG_ON
    - conn_backend_get
    - conn_delete_from_tree
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - CALL_MUX_WITH_RET
    - session_get_conn
    - struct connection*::mux::avail_streams
    - LIST_INLIST
    - srv_lookup_conn
    - sc_reset_endp
    - ceb_isempty
    - sc_ep_clr
    linkageType: ''
    returnType: int
    signature: "int be_reuse_connection(int64_t hash, struct session *sess,\n                        struct
      proxy *be, struct server *srv,\n                        struct stconn *sc, enum
      obj_type *target, int not_first_req)"
  - BBCount: 83
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/backend.c:1819,1
    - Dst: strm_orig
      Src: /src/haproxy/src/backend.c:1819,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:1835,1
    - Dst: be_reuse_mode
      Src: /src/haproxy/src/backend.c:1836,1
    - Dst: alloc_dst_address
      Src: /src/haproxy/src/backend.c:1838,1
    - Dst: alloc_bind_address
      Src: /src/haproxy/src/backend.c:1842,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/backend.c:1847,1
    - Dst: ist2
      Src: /src/haproxy/src/backend.c:1851,1
    - Dst: be_calculate_conn_hash
      Src: /src/haproxy/src/backend.c:1855,1
    - Dst: be_supports_conn_reuse
      Src: /src/haproxy/src/backend.c:1857,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:1863,1
    - Dst: srv_check_reuse_ws
      Src: /src/haproxy/src/backend.c:1863,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:1864,1
    - Dst: be_reuse_connection
      Src: /src/haproxy/src/backend.c:1869,1
    - Dst: sc_conn
      Src: /src/haproxy/src/backend.c:1875,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/backend.c:1886,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/backend.c:1887,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/backend.c:1888,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1889,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1890,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/backend.c:1896,1
    - Dst: destroy
      Src: /src/haproxy/src/backend.c:1896,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1899,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/backend.c:1911,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/backend.c:1913,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/backend.c:1916,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/backend.c:1917,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1918,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1920,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/backend.c:1925,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/backend.c:1927,1
    - Dst: DBG_TRACE_USER
      Src: /src/haproxy/src/backend.c:1943,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/backend.c:1958,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/backend.c:1961,1
    - Dst: kill_random_idle_conn
      Src: /src/haproxy/src/backend.c:1963,1
    - Dst: conn_new
      Src: /src/haproxy/src/backend.c:1983,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:1985,1
    - Dst: conn_set_private
      Src: /src/haproxy/src/backend.c:1992,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:2015,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/backend.c:2019,1
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:2050,1
    - Dst: sc_oc
      Src: /src/haproxy/src/backend.c:2050,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/backend.c:2061,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/backend.c:2068,1
    - Dst: smp_make_safe
      Src: /src/haproxy/src/backend.c:2071,1
    - Dst: ist2
      Src: /src/haproxy/src/backend.c:2072,1
    - Dst: b_orig
      Src: /src/haproxy/src/backend.c:2072,1
    - Dst: b_data
      Src: /src/haproxy/src/backend.c:2072,1
    - Dst: ssl_sock_sni_hash
      Src: /src/haproxy/src/backend.c:2073,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:2087,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/backend.c:2089,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/backend.c:2092,1
    - Dst: conn_prepare
      Src: /src/haproxy/src/backend.c:2098,1
    - Dst: conn_free
      Src: /src/haproxy/src/backend.c:2099,1
    - Dst: isttest
      Src: /src/haproxy/src/backend.c:2103,1
    - Dst: ssl_sock_set_servername
      Src: /src/haproxy/src/backend.c:2104,1
    - Dst: istptr
      Src: /src/haproxy/src/backend.c:2104,1
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:2107,1
    - Dst: conn_prepare
      Src: /src/haproxy/src/backend.c:2111,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/backend.c:2111,1
    - Dst: xprt_get
      Src: /src/haproxy/src/backend.c:2111,1
    - Dst: conn_free
      Src: /src/haproxy/src/backend.c:2113,1
    - Dst: conn_free
      Src: /src/haproxy/src/backend.c:2118,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/backend.c:2122,1
    - Dst: conn_free
      Src: /src/haproxy/src/backend.c:2123,1
    - Dst: conn_select_mux_be
      Src: /src/haproxy/src/backend.c:2143,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:2150,1
    - Dst: conn_update_alpn
      Src: /src/haproxy/src/backend.c:2170,1
    - Dst: ist
      Src: /src/haproxy/src/backend.c:2170,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2171,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:2181,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/backend.c:2183,1
    - Dst: strm_fe
      Src: /src/haproxy/src/backend.c:2188,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2197,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2199,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2202,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2204,1
    - Dst: do_connect_server
      Src: /src/haproxy/src/backend.c:2207,1
    - Dst: xprt_add_hs
      Src: /src/haproxy/src/backend.c:2215,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/backend.c:2216,1
    - Dst: likely
      Src: /src/haproxy/src/backend.c:2228,1
    - Dst: srv_get_ws_proto
      Src: /src/haproxy/src/backend.c:2228,1
    - Dst: conn_install_mux_be
      Src: /src/haproxy/src/backend.c:2229,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/backend.c:2230,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:2233,1
    - Dst: struct connection*::mux::avail_streams
      Src: /src/haproxy/src/backend.c:2244,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/backend.c:2245,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/backend.c:2251,1
    - Dst: xprt_add_l6hs
      Src: /src/haproxy/src/backend.c:2257,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/backend.c:2258,1
    - Dst: conn_xprt_start
      Src: /src/haproxy/src/backend.c:2269,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/backend.c:2290,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/backend.c:2296,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/backend.c:2297,1
    - Dst: struct stream*::be::lbprm::ops::server_take_conn
      Src: /src/haproxy/src/backend.c:2299,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/backend.c:2316,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/backend.c:2318,1
    - Dst: sc_oc
      Src: /src/haproxy/src/backend.c:2321,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/backend.c:2333,1
    - Dst: sc_ic
      Src: /src/haproxy/src/backend.c:2335,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/backend.c:2342,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/backend.c:2344,1
    CyclomaticComplexity: 132
    EdgeCount: 132
    ICount: 272
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 1817
    functionDepth: 4
    functionLinenumber: 1817
    functionLinenumberEnd: 2350
    functionName: connect_server
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 1
    functionsReached:
    - sc_conn
    - sc_ep_test
    - HA_SPIN_LOCK
    - likely
    - _HA_ATOMIC_CAS
    - sample_fetch_as_type
    - ist
    - destroy
    - IS_HTX_STRM
    - struct connection*::mux::avail_streams
    - obj_type
    - sc_state_in
    - b_orig
    - objt_conn
    - conn_set_private
    - be_calculate_conn_hash
    - HA_SPIN_UNLOCK
    - conn_select_mux_be
    - sc_ic
    - co_data
    - smp_make_safe
    - MT_LIST_APPEND
    - ist2
    - conn_install_mux_be
    - DBG_TRACE_USER
    - istptr
    - _HA_ATOMIC_DEC
    - xprt_add_l6hs
    - b_data
    - tick_add_ifset
    - sc_ep_clr
    - session_add_conn
    - BUG_ON
    - struct connection*::mux::ctl
    - LIST_ISEMPTY
    - isttest
    - HA_RWLOCK_RDLOCK
    - LIST_ELEM
    - srv_check_reuse_ws
    - objt_server
    - COUNTERS_UPDATE_MAX
    - strm_fe
    - srv_add_to_avail_list
    - conn_prepare
    - sockaddr_free
    - HA_SPIN_TRYLOCK
    - conn_full_close
    - _HA_ATOMIC_ADD_FETCH
    - ALREADY_CHECKED
    - CALL_MUX_NO_RET
    - sc_attach_mux
    - conn_delete_from_tree
    - do_connect_server
    - conn_update_alpn
    - conn_free
    - task_wakeup
    - conn_create_mux
    - srv_get_ws_proto
    - HA_RWLOCK_RDUNLOCK
    - unlikely
    - sc_oc
    - strm_orig
    - xprt_add_hs
    - kill_random_idle_conn
    - DBG_TRACE_STATE
    - be_reuse_connection
    - be_supports_conn_reuse
    - alloc_dst_address
    - __ha_cpu_relax
    - be_reuse_mode
    - alloc_bind_address
    - _HA_ATOMIC_INC
    - ssl_sock_set_servername
    - xprt_get
    - conn_xprt_start
    - conn_new
    - protocol_lookup
    - ssl_sock_sni_hash
    - struct stream*::be::lbprm::ops::server_take_conn
    linkageType: ''
    returnType: int
    signature: int connect_server(struct stream *s)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assign_server_and_queue
      Src: /src/haproxy/src/backend.c:2370,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2371,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/backend.c:2388,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2397,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2399,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2409,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/backend.c:2413,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:2422,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:2422,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:2423,1
    - Dst: srv_inc_sess_ctr
      Src: /src/haproxy/src/backend.c:2434,1
    - Dst: srv_set_sess_last
      Src: /src/haproxy/src/backend.c:2436,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2438,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2440,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:2443,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:2444,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2361
    functionDepth: 6
    functionLinenumber: 2361
    functionLinenumberEnd: 2451
    functionName: srv_redispatch_connect
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - unlikely
    - may_dequeue_tasks
    - _HA_ATOMIC_INC
    - process_srv_queue
    - assign_server_and_queue
    - srv_inc_sess_ctr
    - srv_set_sess_last
    - sockaddr_free
    - tick_add_ifset
    - objt_server
    linkageType: ''
    returnType: int
    signature: int srv_redispatch_connect(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:2458,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/backend.c:2458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - req
    - s
    argTypes:
    - struct channel*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2454
    functionDepth: 1
    functionLinenumber: 2454
    functionLinenumberEnd: 2459
    functionName: back_may_abort_req
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - proxy_abrt_close
    - co_data
    linkageType: ''
    returnType: int
    signature: int back_may_abort_req(struct channel *req, struct stream *s)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2469,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/backend.c:2473,1
    - Dst: back_may_abort_req
      Src: /src/haproxy/src/backend.c:2482,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2484,1
    - Dst: connect_server
      Src: /src/haproxy/src/backend.c:2488,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2489,1
    - Dst: srv_inc_sess_ctr
      Src: /src/haproxy/src/backend.c:2494,1
    - Dst: srv_set_sess_last
      Src: /src/haproxy/src/backend.c:2496,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2497,1
    - Dst: srv_inc_sess_ctr
      Src: /src/haproxy/src/backend.c:2510,1
    - Dst: srv_set_sess_last
      Src: /src/haproxy/src/backend.c:2512,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2514,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2516,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:2519,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:2520,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:2521,1
    - Dst: sc_abort
      Src: /src/haproxy/src/backend.c:2524,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2525,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2528,1
    - Dst: pendconn_cond_unlink
      Src: /src/haproxy/src/backend.c:2531,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2536,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2537,1
    - Dst: back_handle_st_cer
      Src: /src/haproxy/src/backend.c:2547,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2549,1
    - Dst: pendconn_dequeue
      Src: /src/haproxy/src/backend.c:2554,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:2561,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2564,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2567,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2576,1
    - Dst: pendconn_cond_unlink
      Src: /src/haproxy/src/backend.c:2579,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2582,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2584,1
    - Dst: sc_abort
      Src: /src/haproxy/src/backend.c:2585,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2586,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2592,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2593,1
    - Dst: back_may_abort_req
      Src: /src/haproxy/src/backend.c:2598,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2599,1
    - Dst: pendconn_cond_unlink
      Src: /src/haproxy/src/backend.c:2602,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2605,1
    - Dst: back_may_abort_req
      Src: /src/haproxy/src/backend.c:2613,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2615,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2634,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:2638,1
    - Dst: sc_abort
      Src: /src/haproxy/src/backend.c:2645,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2646,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2649,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/backend.c:2650,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 125
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2467
    functionDepth: 5
    functionLinenumber: 2467
    functionLinenumberEnd: 2652
    functionName: back_try_conn_req
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_shutdown
    - pendconn_cond_unlink
    - back_may_abort_req
    - pendconn_dequeue
    - DBG_TRACE_DEVEL
    - objt_server
    - DBG_TRACE_LEAVE
    - struct stream*::srv_error
    - connect_server
    - DBG_TRACE_STATE
    - srv_set_sess_last
    - sc_abort
    - sess_change_server
    - process_srv_queue
    - ns_to_ms
    - DBG_TRACE_ENTER
    - may_dequeue_tasks
    - _HA_ATOMIC_INC
    - back_handle_st_cer
    - srv_inc_sess_ctr
    linkageType: ''
    returnType: void
    signature: void back_try_conn_req(struct stream *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/backend.c:2667,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:2669,1
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:2669,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:2676,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/backend.c:2676,1
    - Dst: sc_applet_create
      Src: /src/haproxy/src/backend.c:2677,1
    - Dst: objt_applet
      Src: /src/haproxy/src/backend.c:2677,1
    - Dst: sc_abort
      Src: /src/haproxy/src/backend.c:2685,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2686,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2691,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2692,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2696,1
    - Dst: srv_redispatch_connect
      Src: /src/haproxy/src/backend.c:2701,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2706,1
    - Dst: sc_abort
      Src: /src/haproxy/src/backend.c:2711,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2712,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2718,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2719,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2724,1
    - Dst: be_set_sess_last
      Src: /src/haproxy/src/backend.c:2726,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2727,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:2730,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2731
      start: 2660
    functionDepth: 7
    functionLinenumber: 2660
    functionLinenumberEnd: 2731
    functionName: back_handle_st_req
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_shutdown
    - DBG_TRACE_LEAVE
    - BUG_ON
    - struct stream*::srv_error
    - be_set_sess_last
    - ns_to_ms
    - sc_applet_create
    - DBG_TRACE_STATE
    - sc_appctx
    - objt_applet
    - srv_redispatch_connect
    - obj_type
    - sc_abort
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void back_handle_st_req(struct stream *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/backend.c:2745,1
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:2750,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/backend.c:2750,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2752,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2755,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2757,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2772,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:2776,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2777
      start: 2740
    functionDepth: 1
    functionLinenumber: 2740
    functionLinenumberEnd: 2777
    functionName: back_handle_st_con
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - sc_shutdown
    - DBG_TRACE_LEAVE
    - struct stream*::srv_error
    - co_data
    - DBG_TRACE_STATE
    - proxy_abrt_close
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void back_handle_st_con(struct stream *s)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/backend.c:2793,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2799,1
    - Dst: sc_conn
      Src: /src/haproxy/src/backend.c:2800,1
    - Dst: health_adjust
      Src: /src/haproxy/src/backend.c:2802,1
    - Dst: __objt_server
      Src: /src/haproxy/src/backend.c:2802,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:2806,1
    - Dst: __objt_server
      Src: /src/haproxy/src/backend.c:2806,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/backend.c:2828,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2839,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2841,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:2842,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:2843,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2843,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:2844,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2844,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2847,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2852,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2854,1
    - Dst: sc_reset_endp
      Src: /src/haproxy/src/backend.c:2868,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2873,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2875,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:2876,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:2877,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2877,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:2878,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2878,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2881,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2886,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2888,1
    - Dst: stream_choose_redispatch
      Src: /src/haproxy/src/backend.c:2893,1
    - Dst: tick_add
      Src: /src/haproxy/src/backend.c:2918,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/backend.c:2918,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2920,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:2924,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2788
    functionDepth: 1
    functionLinenumber: 2788
    functionLinenumberEnd: 2925
    functionName: back_handle_st_cer
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 1
    functionsReached:
    - sc_shutdown
    - sc_conn
    - stream_choose_redispatch
    - DBG_TRACE_DEVEL
    - objt_server
    - DBG_TRACE_LEAVE
    - struct stream*::srv_error
    - DBG_TRACE_STATE
    - sess_change_server
    - _HA_ATOMIC_DEC
    - tick_add
    - process_srv_queue
    - MS_TO_TICKS
    - sc_reset_endp
    - DBG_TRACE_ENTER
    - __objt_server
    - may_dequeue_tasks
    - _HA_ATOMIC_INC
    - health_adjust
    linkageType: ''
    returnType: void
    signature: void back_handle_st_cer(struct stream *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/backend.c:2939,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:2941,1
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:2941,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:2945,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/backend.c:2945,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2949,1
    - Dst: be_set_sess_last
      Src: /src/haproxy/src/backend.c:2950,1
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:2975,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/backend.c:2975,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2978,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2981,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2982,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2991,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2999,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:3004,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2934
    functionDepth: 1
    functionLinenumber: 2934
    functionLinenumberEnd: 3005
    functionName: back_handle_st_rdy
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_shutdown
    - DBG_TRACE_LEAVE
    - BUG_ON
    - be_set_sess_last
    - struct stream*::srv_error
    - ns_to_ms
    - co_data
    - DBG_TRACE_STATE
    - sc_appctx
    - obj_type
    - proxy_abrt_close
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void back_handle_st_rdy(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns_to_sec
      Src: /src/haproxy/src/backend.c:3012,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/backend.c:3013,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:3014,1
    - Dst: ha_alert
      Src: /src/haproxy/src/backend.c:3017,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/backend.c:3017,1
    - Dst: send_log
      Src: /src/haproxy/src/backend.c:3018,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/backend.c:3018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3020
      start: 3010
    functionDepth: 1
    functionLinenumber: 3010
    functionLinenumberEnd: 3020
    functionName: set_backend_down
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - _HA_ATOMIC_INC
    - ns_to_sec
    - proxy_type_str
    - ha_alert
    - send_log
    linkageType: ''
    returnType: void
    signature: void set_backend_down(struct proxy *be)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/backend.c:3038,1
    - Dst: memset
      Src: /src/haproxy/src/backend.c:3043,1
    - Dst: fetch_rdp_cookie_name
      Src: /src/haproxy/src/backend.c:3045,1
    - Dst: strtoul
      Src: /src/haproxy/src/backend.c:3054,1
    - Dst: ntohs
      Src: /src/haproxy/src/backend.c:3059,1
    - Dst: strtoul
      Src: /src/haproxy/src/backend.c:3059,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/backend.c:3071,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:3081,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3083
      start: 3028
    functionDepth: 1
    functionLinenumber: 3028
    functionLinenumberEnd: 3083
    functionName: tcp_persist_rdp_cookie
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - memset
    - DBG_TRACE_LEAVE
    - strtoul
    - stream_set_srv_target
    - fetch_rdp_cookie_name
    - ntohs
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int tcp_persist_rdp_cookie(struct stream *s, struct channel *req, int
      an_bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns_to_sec
      Src: /src/haproxy/src/backend.c:3086,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/backend.c:3089,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3085
    functionDepth: 1
    functionLinenumber: 3085
    functionLinenumberEnd: 3090
    functionName: be_downtime
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - ns_to_sec
    linkageType: ''
    returnType: int
    signature: int be_downtime(struct proxy *px)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3099,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/backend.c:3100,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3105,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/backend.c:3106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - px
    - msg
    argTypes:
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3096
    functionDepth: 1
    functionLinenumber: 3096
    functionLinenumberEnd: 3111
    functionName: be_supports_dynamic_srv
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - memprintf
    - proxy_cap_str
    linkageType: ''
    returnType: int
    signature: int be_supports_dynamic_srv(struct proxy *px, char **msg)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - algo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3144
      start: 3118
    functionDepth: 0
    functionLinenumber: 3118
    functionLinenumberEnd: 3144
    functionName: backend_lb_algo_str
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *backend_lb_algo_str(int algo)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3162,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3166,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3170,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3174,1
    - Dst: strncmp
      Src: /src/haproxy/src/backend.c:3178,1
    - Dst: strtol
      Src: /src/haproxy/src/backend.c:3188,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3192,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3194,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3199,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3204,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3208,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3218,1
    - Dst: atoi
      Src: /src/haproxy/src/backend.c:3219,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3220,1
    - Dst: atoi
      Src: /src/haproxy/src/backend.c:3223,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3226,1
    - Dst: atoi
      Src: /src/haproxy/src/backend.c:3227,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3228,1
    - Dst: atoi
      Src: /src/haproxy/src/backend.c:3234,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3237,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3241,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3246,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3251,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3253,1
    - Dst: free
      Src: /src/haproxy/src/backend.c:3259,1
    - Dst: strdup
      Src: /src/haproxy/src/backend.c:3260,1
    - Dst: strlen
      Src: /src/haproxy/src/backend.c:3261,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3263,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3264,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3269,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3271,1
    - Dst: ha_free
      Src: /src/haproxy/src/backend.c:3277,1
    - Dst: strdup
      Src: /src/haproxy/src/backend.c:3278,1
    - Dst: strlen
      Src: /src/haproxy/src/backend.c:3279,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3282,1
    - Dst: strncmp
      Src: /src/haproxy/src/backend.c:3286,1
    - Dst: strchr
      Src: /src/haproxy/src/backend.c:3290,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3293,1
    - Dst: free
      Src: /src/haproxy/src/backend.c:3300,1
    - Dst: my_strndup
      Src: /src/haproxy/src/backend.c:3302,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3306,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3307,1
    - Dst: strncmp
      Src: /src/haproxy/src/backend.c:3313,1
    - Dst: strchr
      Src: /src/haproxy/src/backend.c:3321,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3324,1
    - Dst: free
      Src: /src/haproxy/src/backend.c:3328,1
    - Dst: my_strndup
      Src: /src/haproxy/src/backend.c:3329,1
    - Dst: free
      Src: /src/haproxy/src/backend.c:3333,1
    - Dst: strdup
      Src: /src/haproxy/src/backend.c:3334,1
    - Dst: strlen
      Src: /src/haproxy/src/backend.c:3335,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3338,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3342,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3344,1
    - Dst: ha_free
      Src: /src/haproxy/src/backend.c:3350,1
    - Dst: strdup
      Src: /src/haproxy/src/backend.c:3351,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3353,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3358,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 175
    argCount: 3
    argNames:
    - args
    - err
    - curproxy
    argTypes:
    - char**
    - char**
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3362
      start: 3153
    functionDepth: 1
    functionLinenumber: 3153
    functionLinenumberEnd: 3362
    functionName: backend_parse_balance
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - memprintf
    - my_strndup
    - ha_free
    - strcmp
    - free
    - strncmp
    - strchr
    - strlen
    - strtol
    - atoi
    - strdup
    linkageType: ''
    returnType: int
    signature: int backend_parse_balance(const char **args, char **err, struct proxy
      *curproxy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: be_usable_srv
      Src: /src/haproxy/src/backend.c:3386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3389
      start: 3373
    functionDepth: 1
    functionLinenumber: 3373
    functionLinenumberEnd: 3389
    functionName: smp_fetch_nbsrv
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - be_usable_srv
    linkageType: ''
    returnType: int
    signature: int smp_fetch_nbsrv(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3409
      start: 3396
    functionDepth: 0
    functionLinenumber: 3396
    functionLinenumberEnd: 3409
    functionName: smp_fetch_srv_is_up
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_srv_is_up(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3445
      start: 3415
    functionDepth: 0
    functionLinenumber: 3415
    functionLinenumberEnd: 3445
    functionName: smp_fetch_connslots
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_connslots(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:3455,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3464
      start: 3448
    functionDepth: 1
    functionLinenumber: 3448
    functionLinenumberEnd: 3464
    functionName: smp_fetch_be_id
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - __objt_check
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_be_id(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:3474,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3475,1
    - Dst: strlen
      Src: /src/haproxy/src/backend.c:3485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3488
      start: 3467
    functionDepth: 1
    functionLinenumber: 3467
    functionLinenumberEnd: 3488
    functionName: smp_fetch_be_name
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - strlen
    - __objt_check
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_be_name(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:3497,1
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:3498,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3491
    functionDepth: 1
    functionLinenumber: 3491
    functionLinenumberEnd: 3507
    functionName: smp_fetch_srv_id
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - objt_server
    - __objt_check
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_srv_id(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:3516,1
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:3517,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3518,1
    - Dst: strlen
      Src: /src/haproxy/src/backend.c:3527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3510
    functionDepth: 1
    functionLinenumber: 3510
    functionLinenumberEnd: 3530
    functionName: smp_fetch_srv_name
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - objt_server
    - strlen
    - __objt_check
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_srv_name(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/backend.c:3548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3550
      start: 3536
    functionDepth: 1
    functionLinenumber: 3536
    functionLinenumberEnd: 3550
    functionName: smp_fetch_be_sess_rate
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - COUNTERS_SHARED_TOTAL
    linkageType: ''
    returnType: int
    signature: int smp_fetch_be_sess_rate(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3570
      start: 3556
    functionDepth: 0
    functionLinenumber: 3556
    functionLinenumberEnd: 3570
    functionName: smp_fetch_be_conn
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_be_conn(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/backend.c:3598,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/backend.c:3609,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3615
      start: 3577
    functionDepth: 1
    functionLinenumber: 3577
    functionLinenumberEnd: 3615
    functionName: smp_fetch_be_conn_free
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_dynamic_maxconn
    linkageType: ''
    returnType: int
    signature: int smp_fetch_be_conn_free(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3635
      start: 3621
    functionDepth: 0
    functionLinenumber: 3621
    functionLinenumberEnd: 3635
    functionName: smp_fetch_queue_size
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_queue_size(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: be_usable_srv
      Src: /src/haproxy/src/backend.c:3659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3667
      start: 3645
    functionDepth: 1
    functionLinenumber: 3645
    functionLinenumberEnd: 3667
    functionName: smp_fetch_avg_queue_size
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - be_usable_srv
    linkageType: ''
    returnType: int
    signature: int smp_fetch_avg_queue_size(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3680
      start: 3673
    functionDepth: 0
    functionLinenumber: 3673
    functionLinenumberEnd: 3680
    functionName: smp_fetch_srv_conn
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_srv_conn(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/backend.c:3700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3707
      start: 3686
    functionDepth: 1
    functionLinenumber: 3686
    functionLinenumberEnd: 3707
    functionName: smp_fetch_srv_conn_free
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - srv_dynamic_maxconn
    linkageType: ''
    returnType: int
    signature: int smp_fetch_srv_conn_free(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3720
      start: 3713
    functionDepth: 0
    functionLinenumber: 3713
    functionLinenumberEnd: 3720
    functionName: smp_fetch_srv_queue
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_srv_queue(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/backend.c:3731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3726
    functionDepth: 1
    functionLinenumber: 3726
    functionLinenumberEnd: 3733
    functionName: smp_fetch_srv_sess_rate
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - COUNTERS_SHARED_TOTAL
    linkageType: ''
    returnType: int
    signature: int smp_fetch_srv_sess_rate(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3749
      start: 3739
    functionDepth: 0
    functionLinenumber: 3739
    functionLinenumberEnd: 3749
    functionName: smp_fetch_srv_weight
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_srv_weight(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3762
      start: 3755
    functionDepth: 0
    functionLinenumber: 3755
    functionLinenumberEnd: 3762
    functionName: smp_fetch_srv_iweight
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_srv_iweight(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3775
      start: 3768
    functionDepth: 0
    functionLinenumber: 3768
    functionLinenumberEnd: 3775
    functionName: smp_fetch_srv_uweight
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_srv_uweight(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:3784,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3785,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/backend.c:3791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3793
      start: 3777
    functionDepth: 1
    functionLinenumber: 3777
    functionLinenumberEnd: 3793
    functionName: smp_fetch_be_connect_timeout
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - __objt_check
    - TICKS_TO_MS
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_be_connect_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:3802,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3803,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/backend.c:3809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3811
      start: 3795
    functionDepth: 1
    functionLinenumber: 3795
    functionLinenumberEnd: 3811
    functionName: smp_fetch_be_queue_timeout
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - __objt_check
    - TICKS_TO_MS
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_be_queue_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:3820,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3821,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/backend.c:3827,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3829
      start: 3813
    functionDepth: 1
    functionLinenumber: 3813
    functionLinenumberEnd: 3829
    functionName: smp_fetch_be_server_timeout
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - __objt_check
    - TICKS_TO_MS
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_be_server_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:3838,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3839,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/backend.c:3845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3847
      start: 3831
    functionDepth: 1
    functionLinenumber: 3831
    functionLinenumberEnd: 3847
    functionName: smp_fetch_be_tarpit_timeout
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - __objt_check
    - TICKS_TO_MS
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_be_tarpit_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:3856,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3857,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/backend.c:3863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3865
      start: 3849
    functionDepth: 1
    functionLinenumber: 3849
    functionLinenumberEnd: 3865
    functionName: smp_fetch_be_tunnel_timeout
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - __objt_check
    - TICKS_TO_MS
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_be_tunnel_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_make_safe
      Src: /src/haproxy/src/backend.c:3872,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/backend.c:3875,1
    - Dst: be_usable_srv
      Src: /src/haproxy/src/backend.c:3880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3883
      start: 3867
    functionDepth: 1
    functionLinenumber: 3867
    functionLinenumberEnd: 3883
    functionName: sample_conv_nbsrv
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - smp_make_safe
    - be_usable_srv
    - proxy_find_by_name
    linkageType: ''
    returnType: int
    signature: int sample_conv_nbsrv(const struct arg *args, struct sample *smp, void
      *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smp_make_safe
      Src: /src/haproxy/src/backend.c:3890,1
    - Dst: strchr
      Src: /src/haproxy/src/backend.c:3893,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/backend.c:3897,1
    - Dst: server_find
      Src: /src/haproxy/src/backend.c:3907,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3908
      start: 3885
    functionDepth: 1
    functionLinenumber: 3885
    functionLinenumberEnd: 3908
    functionName: sample_conv_srv
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - server_find
    - smp_make_safe
    - proxy_find_by_name
    - strchr
    linkageType: ''
    returnType: struct server
    signature: struct server *sample_conv_srv(struct sample *smp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sample_conv_srv
      Src: /src/haproxy/src/backend.c:3913,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3925
      start: 3910
    functionDepth: 2
    functionLinenumber: 3910
    functionLinenumberEnd: 3925
    functionName: sample_conv_srv_is_up
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - sample_conv_srv
    linkageType: ''
    returnType: int
    signature: int sample_conv_srv_is_up(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sample_conv_srv
      Src: /src/haproxy/src/backend.c:3930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3927
    functionDepth: 2
    functionLinenumber: 3927
    functionLinenumberEnd: 3938
    functionName: sample_conv_srv_queue
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - sample_conv_srv
    linkageType: ''
    returnType: int
    signature: int sample_conv_srv_queue(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: istptr
      Src: /src/haproxy/src/h1.c:48,1
    - Dst: istend
      Src: /src/haproxy/src/h1.c:48,1
    - Dst: istend
      Src: /src/haproxy/src/h1.c:56,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:60,1
    - Dst: http_find_hdr_value_end
      Src: /src/haproxy/src/h1.c:63,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:71,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:79,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:79,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - h1m
    - value
    argTypes:
    - struct h1m*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 109
    functionName: h1_parse_xfer_enc_header
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 0
    functionsReached:
    - isteqi
    - ist
    - istend
    - istptr
    - http_find_hdr_value_end
    - HTTP_IS_LWS
    linkageType: ''
    returnType: int
    signature: int h1_parse_xfer_enc_header(struct h1m *h1m, struct ist value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:119,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:119,1
    - Dst: http_get_host_port
      Src: /src/haproxy/src/h1.c:122,1
    - Dst: istlen
      Src: /src/haproxy/src/h1.c:123,1
    - Dst: istlen
      Src: /src/haproxy/src/h1.c:125,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:127,1
    - Dst: http_get_host_port
      Src: /src/haproxy/src/h1.c:132,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:133,1
    - Dst: istlen
      Src: /src/haproxy/src/h1.c:134,1
    - Dst: istlen
      Src: /src/haproxy/src/h1.c:136,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:137,1
    - Dst: isteq
      Src: /src/haproxy/src/h1.c:137,1
    - Dst: http_is_default_port
      Src: /src/haproxy/src/h1.c:139,1
    - Dst: http_is_default_port
      Src: /src/haproxy/src/h1.c:143,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:143,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 3
    argNames:
    - scheme
    - authority
    - host_hdr
    argTypes:
    - struct ist
    - struct ist
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 155
    functionName: h1_validate_connect_authority
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 0
    functionsReached:
    - isteqi
    - isteq
    - http_get_host_port
    - http_is_default_port
    - istlen
    - isttest
    linkageType: ''
    returnType: int
    signature: int h1_validate_connect_authority(struct ist scheme, struct ist authority,
      struct ist *host_hdr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:168,1
    - Dst: http_get_host_port
      Src: /src/haproxy/src/h1.c:172,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:173,1
    - Dst: istlen
      Src: /src/haproxy/src/h1.c:174,1
    - Dst: http_get_host_port
      Src: /src/haproxy/src/h1.c:177,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:178,1
    - Dst: istlen
      Src: /src/haproxy/src/h1.c:179,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:181,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:181,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:187,1
    - Dst: http_is_default_port
      Src: /src/haproxy/src/h1.c:187,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:193,1
    - Dst: http_is_default_port
      Src: /src/haproxy/src/h1.c:193,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:203,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 3
    argNames:
    - scheme
    - authority
    - host_hdr
    argTypes:
    - struct ist
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 211
    functionName: h1_validate_mismatch_authority
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 0
    functionsReached:
    - isteqi
    - http_is_default_port
    - http_get_host_port
    - istlen
    - isttest
    linkageType: ''
    returnType: int
    signature: int h1_validate_mismatch_authority(struct ist scheme, struct ist authority,
      struct ist host_hdr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:235,1
    - Dst: http_find_hdr_value_end
      Src: /src/haproxy/src/h1.c:238,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:242,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:245,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:245,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:250,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:250,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:255,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:255,1
    - Dst: istcat
      Src: /src/haproxy/src/h1.c:266,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 2
    argNames:
    - h1m
    - value
    argTypes:
    - struct h1m*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 273
    functionName: h1_parse_connection_header
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 1
    functionsReached:
    - isteqi
    - ist
    - istcat
    - http_find_hdr_value_end
    - HTTP_IS_LWS
    linkageType: ''
    returnType: void
    signature: void h1_parse_connection_header(struct h1m *h1m, struct ist *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:291,1
    - Dst: http_find_hdr_value_end
      Src: /src/haproxy/src/h1.c:294,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:298,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:301,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:301,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:303,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:303,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:303,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:303,1
    - Dst: istcat
      Src: /src/haproxy/src/h1.c:313,1
    - Dst: istlen
      Src: /src/haproxy/src/h1.c:320,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - h1m
    - value
    argTypes:
    - struct h1m*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 322
    functionName: h1_parse_upgrade_header
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 1
    functionsReached:
    - isteqi
    - ist
    - istcat
    - http_find_hdr_value_end
    - HTTP_IS_LWS
    - istlen
    linkageType: ''
    returnType: void
    signature: void h1_parse_upgrade_header(struct h1m *h1m, struct ist *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - bad
    - ','
    - state
    - ','
    - where
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 338
    functionName: EXPECT_LF_HERE
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPECT_LF_HERE(ptr, bad, state, where)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - ptr
    - ','
    - end
    - ','
    - more
    - ','
    - stop
    - ','
    - state
    - ','
    - where
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 352
    functionName: EAT_AND_JUMP_OR_RETURN
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EAT_AND_JUMP_OR_RETURN(ptr, end, more, stop, state, where)
  - BBCount: 166
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:442,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:452,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h1.c:452,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:466,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:466,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:471,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:472,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:473,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:478,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:479,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:484,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h1.c:484,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:485,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:487,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:487,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/h1.c:489,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:490,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:493,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:493,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/h1.c:496,1
    - Dst: ist2
      Src: /src/haproxy/src/h1.c:502,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:510,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:510,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:514,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:514,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:515,1
    - Dst: is_char4_outside
      Src: /src/haproxy/src/h1.c:524,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:535,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:542,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:545,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:545,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:547,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:549,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:558,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:561,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:561,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:573,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:573,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:577,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:577,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:578,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:585,1
    - Dst: HTTP_IS_VER_TOKEN
      Src: /src/haproxy/src/h1.c:585,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:586,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:588,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:588,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:598,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:604,1
    - Dst: http_set_hdr
      Src: /src/haproxy/src/h1.c:609,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:609,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:611,1
    - Dst: http_set_hdr
      Src: /src/haproxy/src/h1.c:616,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:616,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:620,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:621,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:640,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:643,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:644,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:652,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h1.c:652,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:666,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:666,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:671,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:672,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:673,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:678,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:679,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:684,1
    - Dst: HTTP_IS_VER_TOKEN
      Src: /src/haproxy/src/h1.c:684,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:685,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:687,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:687,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:695,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:702,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:702,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:707,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:707,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:708,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:715,1
    - Dst: HTTP_IS_DIGIT
      Src: /src/haproxy/src/h1.c:715,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:727,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:730,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:730,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:735,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:735,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:737,1
    - Dst: ist2
      Src: /src/haproxy/src/h1.c:744,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:749,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:749,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:753,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:753,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:754,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:760,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:760,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:761,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:771,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:772,1
    - Dst: http_set_hdr
      Src: /src/haproxy/src/h1.c:777,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:777,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:781,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:782,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:788,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:789,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:795,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:795,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:799,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:800,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:806,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h1.c:806,1
    - Dst: isupper
      Src: /src/haproxy/src/h1.c:809,1
    - Dst: tolower
      Src: /src/haproxy/src/h1.c:810,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:812,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:815,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:821,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:824,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:833,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:838,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:838,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:839,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:844,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:844,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:848,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:849,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:854,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:855,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:859,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:859,1
    - Dst: is_char8_below_opt
      Src: /src/haproxy/src/h1.c:884,1
    - Dst: is_char4_below_opt
      Src: /src/haproxy/src/h1.c:891,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:901,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:912,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:912,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:913,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:920,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:921,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:926,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:927,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:931,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:931,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:949,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:950,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:953,1
    - Dst: ist2
      Src: /src/haproxy/src/h1.c:957,1
    - Dst: ist2
      Src: /src/haproxy/src/h1.c:958,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:963,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:973,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h1.c:975,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:982,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:982,1
    - Dst: h1_parse_xfer_enc_header
      Src: /src/haproxy/src/h1.c:983,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:1000,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:1000,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/h1.c:1003,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:1016,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:1016,1
    - Dst: h1_parse_connection_header
      Src: /src/haproxy/src/h1.c:1017,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:1023,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:1023,1
    - Dst: h1_parse_upgrade_header
      Src: /src/haproxy/src/h1.c:1024,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:1030,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:1030,1
    - Dst: http_authority_has_forbidden_char
      Src: /src/haproxy/src/h1.c:1033,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:1040,1
    - Dst: http_set_hdr
      Src: /src/haproxy/src/h1.c:1050,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:1056,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:1056,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:1059,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:1060,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:1065,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:1071,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:1072,1
    - Dst: http_set_hdr
      Src: /src/haproxy/src/h1.c:1076,1
    - Dst: ist2
      Src: /src/haproxy/src/h1.c:1076,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:1076,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/h1.c:1091,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/h1.c:1099,1
    - Dst: istlen
      Src: /src/haproxy/src/h1.c:1103,1
    - Dst: http_parse_scheme
      Src: /src/haproxy/src/h1.c:1117,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/h1.c:1118,1
    - Dst: http_authority_has_forbidden_char
      Src: /src/haproxy/src/h1.c:1119,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/h1.c:1126,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:1134,1
    - Dst: h1_validate_connect_authority
      Src: /src/haproxy/src/h1.c:1143,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/h1.c:1151,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:1170,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:1170,1
    - Dst: h1_validate_mismatch_authority
      Src: /src/haproxy/src/h1.c:1171,1
    - Dst: http_del_hdr
      Src: /src/haproxy/src/h1.c:1200,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:1200,1
    CyclomaticComplexity: 247
    EdgeCount: 247
    ICount: 695
    argCount: 6
    argNames:
    - start
    - stop
    - hdr
    - hdr_num
    - h1m
    - slp
    argTypes:
    - char*
    - char*
    - struct http_hdr*
    - unsigned int
    - struct h1m*
    - union h1_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 1269
    functionName: h1_headers_to_hdr_list
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 2
    functionsReached:
    - unlikely
    - http_parse_authority
    - h1_parse_connection_header
    - likely
    - http_uri_parser_init
    - istlen
    - EXPECT_LF_HERE
    - EAT_AND_JUMP_OR_RETURN
    - ist2
    - ist
    - h1_parse_xfer_enc_header
    - http_parse_scheme
    - h1_validate_connect_authority
    - is_char4_outside
    - is_char4_below_opt
    - http_del_hdr
    - HTTP_IS_VER_TOKEN
    - find_http_meth
    - h1_validate_mismatch_authority
    - HTTP_IS_CRLF
    - http_set_hdr
    - isteqi
    - http_parse_cont_len_header
    - ALREADY_CHECKED
    - isupper
    - tolower
    - HTTP_IS_DIGIT
    - is_char8_below_opt
    - http_authority_has_forbidden_char
    - HTTP_IS_SPHT
    - HTTP_IS_LWS
    - h1_parse_upgrade_header
    - HTTP_IS_TOKEN
    - isttest
    linkageType: ''
    returnType: int
    signature: "int h1_headers_to_hdr_list(char *start, const char *stop,\n                           struct
      http_hdr *hdr, unsigned int hdr_num,\n                           struct h1m
      *h1m, union h1_sl *slp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_random64_pair_hashed
      Src: /src/haproxy/src/h1.c:1281,1
    - Dst: memcpy
      Src: /src/haproxy/src/h1.c:1282,1
    - Dst: memcpy
      Src: /src/haproxy/src/h1.c:1283,1
    - Dst: a2base64
      Src: /src/haproxy/src/h1.c:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key_out
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1285
    functionName: h1_generate_random_ws_input_key
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 1
    functionsReached:
    - a2base64
    - memcpy
    - ha_random64_pair_hashed
    linkageType: ''
    returnType: void
    signature: void h1_generate_random_ws_input_key(char key_out[25])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/h1.c:1300,1
    - Dst: memcpy
      Src: /src/haproxy/src/h1.c:1301,1
    - Dst: blk_SHA1_Init
      Src: /src/haproxy/src/h1.c:1304,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/h1.c:1305,1
    - Dst: blk_SHA1_Final
      Src: /src/haproxy/src/h1.c:1306,1
    - Dst: a2base64
      Src: /src/haproxy/src/h1.c:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - key
    - result
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1310
    functionName: h1_calculate_ws_output_key
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 2
    functionsReached:
    - a2base64
    - memcpy
    - blk_SHA1_Update
    - blk_SHA1_Init
    - blk_SHA1_Final
    linkageType: ''
    returnType: void
    signature: void h1_calculate_ws_output_key(const char *key, char *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/h1.c:1317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1322
    functionName: cfg_parse_h1_do_not_close_insecure_t_e
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 0
    functionsReached:
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_h1_do_not_close_insecure_t_e(char **args, int section_type,
      struct proxy *curpx,\n                                                const
      struct proxy *defpx, const char *file, int line,\n                                                char
      **err)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strm_sess
      Src: /src/haproxy/src/vars.c:83,1
    - Dst: objt_check
      Src: /src/haproxy/src/vars.c:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - sess
    - strm
    - desc
    argTypes:
    - struct session*
    - struct stream*
    - struct var_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 103
    functionName: get_vars
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - objt_check
    - strm_sess
    linkageType: ''
    returnType: struct vars
    signature: struct vars *get_vars(struct session *sess, struct stream *strm, const
      struct var_desc *desc)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/vars.c:114,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/vars.c:118,1
    - Dst: objt_check
      Src: /src/haproxy/src/vars.c:122,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/vars.c:125,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/vars.c:131,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/vars.c:135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - vars
    - sess
    - strm
    - size
    argTypes:
    - struct vars*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 137
    functionName: var_accounting_diff
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - objt_check
    - _HA_ATOMIC_ADD
    linkageType: ''
    returnType: void
    signature: void var_accounting_diff(struct vars *vars, struct session *sess, struct
      stream *strm, int size)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: objt_check
      Src: /src/haproxy/src/vars.c:159,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:179,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 4
    argNames:
    - vars
    - sess
    - strm
    - size
    argTypes:
    - struct vars*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 181
    functionName: var_accounting_add
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - objt_check
    - var_accounting_diff
    linkageType: ''
    returnType: int
    signature: int var_accounting_add(struct vars *vars, struct session *sess, struct
      stream *strm, int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/vars.c:191,1
    - Dst: ha_free
      Src: /src/haproxy/src/vars.c:194,1
    - Dst: ha_free
      Src: /src/haproxy/src/vars.c:198,1
    - Dst: cebu64_item_delete
      Src: /src/haproxy/src/vars.c:205,1
    - Dst: pool_free
      Src: /src/haproxy/src/vars.c:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - vars
    - var
    - force
    argTypes:
    - struct vars*
    - struct var*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 211
    functionName: var_clear
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - ha_free
    - pool_free
    - cebu64_item_delete
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int var_clear(struct vars *vars, struct var *var, int force)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cebu64_item_first
      Src: /src/haproxy/src/vars.c:223,1
    - Dst: var_clear
      Src: /src/haproxy/src/vars.c:224,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/vars.c:231,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/vars.c:233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - vars
    argTypes:
    - struct vars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: vars_prune_per_sess
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_clear
    - _HA_ATOMIC_SUB
    - cebu64_item_first
    linkageType: ''
    returnType: void
    signature: void vars_prune_per_sess(struct vars *vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/vars.c:239,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/vars.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - vars
    - scope
    argTypes:
    - struct vars*
    - enum vars_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: vars_init_head
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - memset
    linkageType: ''
    returnType: void
    signature: void vars_init_head(struct vars *vars, enum vars_scope scope)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:256,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:261,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:268,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:274,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:280,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:286,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:292,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:297,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:302,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:307,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:312,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:317,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:323,1
    - Dst: isalnum
      Src: /src/haproxy/src/vars.c:330,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:331,1
    - Dst: XXH3
      Src: /src/haproxy/src/vars.c:336,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 77
    argCount: 4
    argNames:
    - name
    - len
    - desc
    - err
    argTypes:
    - char*
    - int
    - struct var_desc*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 340
    functionName: vars_fill_desc
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - memprintf
    - XXH3
    - isalnum
    - strncmp
    linkageType: ''
    returnType: int
    signature: int vars_fill_desc(const char *name, int len, struct var_desc *desc,
      char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cebu64_item_lookup
      Src: /src/haproxy/src/vars.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vars
    - name_hash
    argTypes:
    - struct vars*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: var_get
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - cebu64_item_lookup
    linkageType: ''
    returnType: struct var
    signature: struct var *var_get(struct vars *vars, uint64_t name_hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vars_get_by_desc
      Src: /src/haproxy/src/vars.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 363
    functionName: smp_fetch_var
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_get_by_desc
    linkageType: ''
    returnType: int
    signature: int smp_fetch_var(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/vars.c:388,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/vars.c:389,1
    - Dst: get_vars
      Src: /src/haproxy/src/vars.c:427,1
    - Dst: vars_rdlock
      Src: /src/haproxy/src/vars.c:431,1
    - Dst: cebu64_item_first
      Src: /src/haproxy/src/vars.c:435,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:442,1
    - Dst: cebu64_item_next
      Src: /src/haproxy/src/vars.c:443,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/vars.c:452,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/vars.c:459,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/vars.c:462,1
    - Dst: chunk_escape_string
      Src: /src/haproxy/src/vars.c:469,1
    - Dst: dump_binary
      Src: /src/haproxy/src/vars.c:474,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/vars.c:478,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/vars.c:484,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/vars.c:493,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/vars.c:495,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/vars.c:498,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/vars.c:501,1
    - Dst: chunk_escape_string
      Src: /src/haproxy/src/vars.c:507,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/vars.c:511,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/vars.c:516,1
    - Dst: cebu64_item_next
      Src: /src/haproxy/src/vars.c:520,1
    - Dst: vars_rdunlock
      Src: /src/haproxy/src/vars.c:524,1
    - Dst: vars_rdunlock
      Src: /src/haproxy/src/vars.c:536,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 123
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 539
    functionName: smp_fetch_dump_all_vars
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_rdlock
    - vars_rdunlock
    - chunk_escape_string
    - chunk_appendf
    - get_trash_chunk
    - strncmp
    - chunk_memcat
    - inet_ntop
    - get_vars
    - cebu64_item_first
    - dump_binary
    - chunk_reset
    - cebu64_item_next
    linkageType: ''
    returnType: int
    signature: int smp_fetch_dump_all_vars(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/vars.c:549,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:550,1
    - Dst: ha_free
      Src: /src/haproxy/src/vars.c:554,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - smp
    - vars
    - var
    - var_type
    argTypes:
    - struct sample*
    - struct vars*
    - struct var*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 558
    functionName: var_clear_buffer
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - ha_free
    - var_accounting_diff
    linkageType: ''
    returnType: void
    signature: void var_clear_buffer(struct sample *smp, struct vars *vars, struct
      var *var, int var_type)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: get_vars
      Src: /src/haproxy/src/vars.c:593,1
    - Dst: vars_wrlock
      Src: /src/haproxy/src/vars.c:597,1
    - Dst: var_get
      Src: /src/haproxy/src/vars.c:600,1
    - Dst: var_accounting_add
      Src: /src/haproxy/src/vars.c:615,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/vars.c:619,1
    - Dst: my_strndup
      Src: /src/haproxy/src/vars.c:628,1
    - Dst: pool_free
      Src: /src/haproxy/src/vars.c:630,1
    - Dst: cebu64_item_insert
      Src: /src/haproxy/src/vars.c:635,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:668,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:677,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:681,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:685,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:695,1
    - Dst: var_accounting_add
      Src: /src/haproxy/src/vars.c:696,1
    - Dst: malloc
      Src: /src/haproxy/src/vars.c:701,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:703,1
    - Dst: memcpy
      Src: /src/haproxy/src/vars.c:709,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:713,1
    - Dst: var_accounting_add
      Src: /src/haproxy/src/vars.c:718,1
    - Dst: malloc
      Src: /src/haproxy/src/vars.c:723,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:725,1
    - Dst: memcpy
      Src: /src/haproxy/src/vars.c:732,1
    - Dst: vars_wrunlock
      Src: /src/haproxy/src/vars.c:740,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 131
    argCount: 3
    argNames:
    - desc
    - smp
    - flags
    argTypes:
    - struct var_desc*
    - struct sample*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 742
    functionName: var_set
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - malloc
    - my_strndup
    - cebu64_item_insert
    - vars_wrunlock
    - pool_alloc
    - var_accounting_diff
    - memcpy
    - var_clear_buffer
    - vars_wrlock
    - get_vars
    - var_get
    - var_accounting_add
    - pool_free
    linkageType: ''
    returnType: int
    signature: int var_set(const struct var_desc *desc, struct sample *smp, uint flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_vars
      Src: /src/haproxy/src/vars.c:757,1
    - Dst: vars_wrlock
      Src: /src/haproxy/src/vars.c:762,1
    - Dst: var_get
      Src: /src/haproxy/src/vars.c:763,1
    - Dst: var_clear
      Src: /src/haproxy/src/vars.c:765,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:766,1
    - Dst: vars_wrunlock
      Src: /src/haproxy/src/vars.c:768,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - desc
    - smp
    argTypes:
    - struct var_desc*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 770
    functionName: var_unset
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_wrunlock
    - var_accounting_diff
    - vars_wrlock
    - get_vars
    - var_get
    - var_clear
    linkageType: ''
    returnType: int
    signature: int var_unset(const struct var_desc *desc, struct sample *smp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_strcmp
      Src: /src/haproxy/src/vars.c:785,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:793,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - cond
    - cond_bitmap
    - err
    argTypes:
    - struct buffer*
    - uint*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 796
    functionName: vars_parse_cond_param
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - chunk_strcmp
    - memprintf
    linkageType: ''
    returnType: int
    signature: int vars_parse_cond_param(const struct buffer *cond, uint *cond_bitmap,
      char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vars_parse_cond_param
      Src: /src/haproxy/src/vars.c:805,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 810
    functionName: smp_conv_store
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_set
    - vars_parse_cond_param
    linkageType: ''
    returnType: int
    signature: int smp_conv_store(const struct arg *args, struct sample *smp, void
      *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: var_unset
      Src: /src/haproxy/src/vars.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 813
    functionDepth: 3
    functionLinenumber: 813
    functionLinenumberEnd: 816
    functionName: smp_conv_clear
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_unset
    linkageType: ''
    returnType: int
    signature: int smp_conv_clear(const struct arg *args, struct sample *smp, void
      *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:830,1
    - Dst: vars_fill_desc
      Src: /src/haproxy/src/vars.c:835,1
    - Dst: my_strndup
      Src: /src/haproxy/src/vars.c:840,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:842,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:850,1
    - Dst: ha_free
      Src: /src/haproxy/src/vars.c:852,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/vars.c:857,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - arg
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 822
    functionDepth: 4
    functionLinenumber: 822
    functionLinenumberEnd: 863
    functionName: vars_check_arg
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - memprintf
    - ha_free
    - var_set
    - chunk_destroy
    - vars_fill_desc
    linkageType: ''
    returnType: int
    signature: int vars_check_arg(struct arg *arg, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vars_fill_desc
      Src: /src/haproxy/src/vars.c:875,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - len
    - smp
    argTypes:
    - char*
    - size_t
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 870
    functionDepth: 4
    functionLinenumber: 870
    functionLinenumberEnd: 880
    functionName: vars_set_by_name_ifexist
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_set
    - vars_fill_desc
    linkageType: ''
    returnType: int
    signature: int vars_set_by_name_ifexist(const char *name, size_t len, struct sample
      *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vars_fill_desc
      Src: /src/haproxy/src/vars.c:891,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - len
    - smp
    argTypes:
    - char*
    - size_t
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 886
    functionDepth: 4
    functionLinenumber: 886
    functionLinenumberEnd: 895
    functionName: vars_set_by_name
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_set
    - vars_fill_desc
    linkageType: ''
    returnType: int
    signature: int vars_set_by_name(const char *name, size_t len, struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vars_fill_desc
      Src: /src/haproxy/src/vars.c:905,1
    - Dst: var_unset
      Src: /src/haproxy/src/vars.c:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - len
    - smp
    argTypes:
    - char*
    - size_t
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 900
    functionDepth: 3
    functionLinenumber: 900
    functionLinenumberEnd: 909
    functionName: vars_unset_by_name_ifexist
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_unset
    - vars_fill_desc
    linkageType: ''
    returnType: int
    signature: int vars_unset_by_name_ifexist(const char *name, size_t len, struct
      sample *smp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vars_rdlock
      Src: /src/haproxy/src/vars.c:927,1
    - Dst: var_get
      Src: /src/haproxy/src/vars.c:928,1
    - Dst: vars_rdunlock
      Src: /src/haproxy/src/vars.c:931,1
    - Dst: smp_dup
      Src: /src/haproxy/src/vars.c:943,1
    - Dst: vars_rdunlock
      Src: /src/haproxy/src/vars.c:945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - vars
    - name_hash
    - smp
    - def
    argTypes:
    - struct vars*
    - uint64_t
    - struct sample*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 922
    functionDepth: 2
    functionLinenumber: 922
    functionLinenumberEnd: 947
    functionName: var_to_smp
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_rdlock
    - smp_dup
    - var_get
    - vars_rdunlock
    linkageType: ''
    returnType: int
    signature: int var_to_smp(struct vars *vars, uint64_t name_hash, struct sample
      *smp, const struct buffer *def)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vars_fill_desc
      Src: /src/haproxy/src/vars.c:967,1
    - Dst: get_vars
      Src: /src/haproxy/src/vars.c:971,1
    - Dst: var_to_smp
      Src: /src/haproxy/src/vars.c:975,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - name
    - len
    - smp
    - def
    argTypes:
    - char*
    - size_t
    - struct sample*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 961
    functionDepth: 3
    functionLinenumber: 961
    functionLinenumberEnd: 976
    functionName: vars_get_by_name
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_to_smp
    - vars_fill_desc
    - get_vars
    linkageType: ''
    returnType: int
    signature: int vars_get_by_name(const char *name, size_t len, struct sample *smp,
      const struct buffer *def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_vars
      Src: /src/haproxy/src/vars.c:996,1
    - Dst: var_to_smp
      Src: /src/haproxy/src/vars.c:1002,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - var_desc
    - smp
    - def
    argTypes:
    - struct var_desc*
    - struct sample*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 991
    functionDepth: 3
    functionLinenumber: 991
    functionLinenumberEnd: 1003
    functionName: vars_get_by_desc
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 1
    functionsReached:
    - var_to_smp
    - get_vars
    linkageType: ''
    returnType: int
    signature: int vars_get_by_desc(const struct var_desc *var_desc, struct sample
      *smp, const struct buffer *def)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: send_log
      Src: /src/haproxy/src/vars.c:1024,1
    - Dst: ha_alert
      Src: /src/haproxy/src/vars.c:1026,1
    - Dst: memset
      Src: /src/haproxy/src/vars.c:1031,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/vars.c:1033,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/vars.c:1036,1
    - Dst: send_log
      Src: /src/haproxy/src/vars.c:1038,1
    - Dst: ha_alert
      Src: /src/haproxy/src/vars.c:1040,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/vars.c:1045,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/vars.c:1050,1
    - Dst: sample_process
      Src: /src/haproxy/src/vars.c:1056,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:1062,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/vars.c:1063,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1006
    functionDepth: 4
    functionLinenumber: 1006
    functionLinenumberEnd: 1065
    functionName: action_store
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - sample_process
    - memset
    - free_trash_chunk
    - alloc_trash_chunk
    - sess_build_logline
    - lf_expr_isempty
    - var_set
    - smp_set_owner
    - ha_alert
    - send_log
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_store(struct act_rule *rule, struct proxy *px,\n
      \                                   struct session *sess, struct stream *s,
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/vars.c:1073,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/vars.c:1074,1
    - Dst: var_unset
      Src: /src/haproxy/src/vars.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1068
    functionDepth: 3
    functionLinenumber: 1068
    functionLinenumberEnd: 1079
    functionName: action_clear
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_unset
    - smp_set_owner
    - memset
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_clear(struct act_rule *rule, struct proxy *px,\n
      \                                   struct session *sess, struct stream *s,
      int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/vars.c:1083,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1085,1
    - Dst: ha_free
      Src: /src/haproxy/src/vars.c:1089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1090
    functionName: release_store_rule
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - ha_free
    - lf_expr_deinit
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void release_store_rule(struct act_rule *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vars_check_arg
      Src: /src/haproxy/src/vars.c:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1100
    functionDepth: 5
    functionLinenumber: 1100
    functionLinenumberEnd: 1103
    functionName: smp_check_var
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: int smp_check_var(struct arg *args, char **err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: chunk_destroy
      Src: /src/haproxy/src/vars.c:1120,1
    - Dst: snprintf
      Src: /src/haproxy/src/vars.c:1127,1
    - Dst: strcmp
      Src: /src/haproxy/src/vars.c:1130,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1138,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/vars.c:1142,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1147,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1156,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1162,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1167
    functionName: smp_check_dump_all_vars
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - chunk_destroy
    - snprintf
    linkageType: ''
    returnType: int
    signature: int smp_check_dump_all_vars(struct arg *args, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vars_check_arg
      Src: /src/haproxy/src/vars.c:1174,1
    - Dst: vars_parse_cond_param
      Src: /src/haproxy/src/vars.c:1177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err_msg
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1169
    functionDepth: 5
    functionLinenumber: 1169
    functionLinenumberEnd: 1180
    functionName: conv_check_var
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_parse_cond_param
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: "int conv_check_var(struct arg *args, struct sample_conv *conv,\n                          const
      char *file, int line, char **err_msg)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:1207,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:1211,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:1215,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1221,1
    - Dst: strlen
      Src: /src/haproxy/src/vars.c:1226,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1229,1
    - Dst: ist2
      Src: /src/haproxy/src/vars.c:1235,1
    - Dst: istsplit
      Src: /src/haproxy/src/vars.c:1236,1
    - Dst: istlen
      Src: /src/haproxy/src/vars.c:1237,1
    - Dst: istsplit
      Src: /src/haproxy/src/vars.c:1239,1
    - Dst: istlen
      Src: /src/haproxy/src/vars.c:1241,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1242,1
    - Dst: istlen
      Src: /src/haproxy/src/vars.c:1246,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/vars.c:1249,1
    - Dst: istptr
      Src: /src/haproxy/src/vars.c:1249,1
    - Dst: istlen
      Src: /src/haproxy/src/vars.c:1249,1
    - Dst: vars_parse_cond_param
      Src: /src/haproxy/src/vars.c:1250,1
    - Dst: istsplit
      Src: /src/haproxy/src/vars.c:1253,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/vars.c:1256,1
    - Dst: vars_fill_desc
      Src: /src/haproxy/src/vars.c:1257,1
    - Dst: my_strndup
      Src: /src/haproxy/src/vars.c:1262,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1264,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:1272,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1336,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/vars.c:1343,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/vars.c:1349,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1355,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/vars.c:1357,1
    - Dst: free
      Src: /src/haproxy/src/vars.c:1358,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 130
    argCount: 5
    argNames:
    - args
    - arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1194
    functionDepth: 4
    functionLinenumber: 1194
    functionLinenumberEnd: 1367
    functionName: parse_store
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - parse_logformat_string
    - ist2
    - memprintf
    - my_strndup
    - istsplit
    - sample_src_names
    - strncmp
    - vars_parse_cond_param
    - var_set
    - free
    - istptr
    - sample_parse_expr
    - chunk_initlen
    - istlen
    - vars_fill_desc
    - strlen
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_store(const char **args, int *arg, struct
      proxy *px,\n                                      struct act_rule *rule, char
      **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/vars.c:1401,1
    - Dst: strcmp
      Src: /src/haproxy/src/vars.c:1403,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1407,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1409,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1414,1
    - Dst: parse_store
      Src: /src/haproxy/src/vars.c:1419,1
    - Dst: free
      Src: /src/haproxy/src/vars.c:1420,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1426,1
    - Dst: smp_resolve_args
      Src: /src/haproxy/src/vars.c:1430,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1431,1
    - Dst: indent_msg
      Src: /src/haproxy/src/vars.c:1432,1
    - Dst: session_new
      Src: /src/haproxy/src/vars.c:1436,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1437,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1438,1
    - Dst: action_store
      Src: /src/haproxy/src/vars.c:1442,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1443,1
    - Dst: session_free
      Src: /src/haproxy/src/vars.c:1445,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1378
    functionDepth: 5
    functionLinenumber: 1378
    functionLinenumberEnd: 1450
    functionName: vars_parse_global_set_var
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - memprintf
    - smp_resolve_args
    - action_store
    - session_free
    - strcmp
    - session_new
    - free
    - parse_store
    - indent_msg
    - LIST_INIT
    - release_sample_expr
    linkageType: ''
    returnType: int
    signature: "int vars_parse_global_set_var(char **args, int section_type, struct
      proxy *curpx,\n                                     const struct proxy *defpx,
      const char *file, int line,\n                                     char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/vars.c:1460,1
    - Dst: cli_err
      Src: /src/haproxy/src/vars.c:1464,1
    - Dst: get_vars
      Src: /src/haproxy/src/vars.c:1469,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/src/vars.c:1473,1
    - Dst: strlen
      Src: /src/haproxy/src/vars.c:1473,1
    - Dst: cli_err
      Src: /src/haproxy/src/vars.c:1474,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/vars.c:1479,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/vars.c:1483,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1486,1
    - Dst: isprint
      Src: /src/haproxy/src/vars.c:1488,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1489,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1491,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1493,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1494,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1495,1
    - Dst: cli_msg
      Src: /src/haproxy/src/vars.c:1497,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1453
    functionDepth: 4
    functionLinenumber: 1453
    functionLinenumberEnd: 1498
    functionName: vars_parse_cli_get_var
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - cli_err
    - isprint
    - chunk_printf
    - chunk_appendf
    - vars_get_by_name
    - b_putchr
    - get_vars
    - cli_has_level
    - strlen
    linkageType: ''
    returnType: int
    signature: int vars_parse_cli_get_var(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/vars.c:1527,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/vars.c:1529,1
    - Dst: cli_err
      Src: /src/haproxy/src/vars.c:1533,1
    - Dst: cli_err
      Src: /src/haproxy/src/vars.c:1536,1
    - Dst: strcmp
      Src: /src/haproxy/src/vars.c:1540,1
    - Dst: strcmp
      Src: /src/haproxy/src/vars.c:1542,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1543,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1549,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1550,1
    - Dst: parse_store
      Src: /src/haproxy/src/vars.c:1559,1
    - Dst: free
      Src: /src/haproxy/src/vars.c:1560,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1566,1
    - Dst: smp_resolve_args
      Src: /src/haproxy/src/vars.c:1571,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1573,1
    - Dst: indent_msg
      Src: /src/haproxy/src/vars.c:1574,1
    - Dst: session_new
      Src: /src/haproxy/src/vars.c:1578,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1579,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1580,1
    - Dst: action_store
      Src: /src/haproxy/src/vars.c:1584,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1585,1
    - Dst: session_free
      Src: /src/haproxy/src/vars.c:1587,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/vars.c:1592,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1505
    functionDepth: 5
    functionLinenumber: 1505
    functionLinenumberEnd: 1593
    functionName: vars_parse_cli_set_var
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - memprintf
    - indent_msg
    - smp_resolve_args
    - action_store
    - session_free
    - strcmp
    - session_new
    - cli_dynerr
    - free
    - parse_store
    - cli_has_level
    - LIST_INIT
    - release_sample_expr
    - cli_err
    linkageType: ''
    returnType: int
    signature: int vars_parse_cli_set_var(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/vars.c:1601,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 8
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    - limit
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1595
    functionDepth: 1
    functionLinenumber: 1595
    functionLinenumberEnd: 1607
    functionName: vars_max_size
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strtol
    linkageType: ''
    returnType: int
    signature: "int vars_max_size(char **args, int section_type, struct proxy *curpx,\n
      \                        const struct proxy *defpx, const char *file, int line,\n
      \                        char **err, unsigned int *limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vars_max_size
      Src: /src/haproxy/src/vars.c:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1609
    functionDepth: 2
    functionLinenumber: 1609
    functionLinenumberEnd: 1614
    functionName: vars_max_size_global
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_max_size
    linkageType: ''
    returnType: int
    signature: "int vars_max_size_global(char **args, int section_type, struct proxy
      *curpx,\n                                const struct proxy *defpx, const char
      *file, int line,\n                                char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vars_max_size
      Src: /src/haproxy/src/vars.c:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1616
    functionDepth: 2
    functionLinenumber: 1616
    functionLinenumberEnd: 1621
    functionName: vars_max_size_proc
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_max_size
    linkageType: ''
    returnType: int
    signature: "int vars_max_size_proc(char **args, int section_type, struct proxy
      *curpx,\n                                const struct proxy *defpx, const char
      *file, int line,\n                                char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vars_max_size
      Src: /src/haproxy/src/vars.c:1627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1623
    functionDepth: 2
    functionLinenumber: 1623
    functionLinenumberEnd: 1628
    functionName: vars_max_size_sess
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_max_size
    linkageType: ''
    returnType: int
    signature: "int vars_max_size_sess(char **args, int section_type, struct proxy
      *curpx,\n                              const struct proxy *defpx, const char
      *file, int line,\n                              char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vars_max_size
      Src: /src/haproxy/src/vars.c:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1635
    functionName: vars_max_size_txn
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_max_size
    linkageType: ''
    returnType: int
    signature: "int vars_max_size_txn(char **args, int section_type, struct proxy
      *curpx,\n                             const struct proxy *defpx, const char
      *file, int line,\n                             char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vars_max_size
      Src: /src/haproxy/src/vars.c:1641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1637
    functionDepth: 2
    functionLinenumber: 1637
    functionLinenumberEnd: 1642
    functionName: vars_max_size_reqres
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_max_size
    linkageType: ''
    returnType: int
    signature: "int vars_max_size_reqres(char **args, int section_type, struct proxy
      *curpx,\n                                const struct proxy *defpx, const char
      *file, int line,\n                                char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vars_max_size
      Src: /src/haproxy/src/vars.c:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1644
    functionDepth: 2
    functionLinenumber: 1644
    functionLinenumberEnd: 1649
    functionName: vars_max_size_check
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_max_size
    linkageType: ''
    returnType: int
    signature: "int vars_max_size_check(char **args, int section_type, struct proxy
      *curpx,\n                                const struct proxy *defpx, const char
      *file, int line,\n                                char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_random64
      Src: /src/haproxy/src/vars.c:1654,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/vars.c:1656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1652
    functionDepth: 2
    functionLinenumber: 1652
    functionLinenumberEnd: 1657
    functionName: vars_init
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_init_head
    - ha_random64
    linkageType: ''
    returnType: void
    signature: void vars_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ebmb_lookup
      Src: /src/haproxy/src/ebmbtree.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - root
    - x
    - len
    argTypes:
    - struct eb_root*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: ebmb_lookup
    functionSourceFile: /src/haproxy/src/ebmbtree.c
    functionUses: 4
    functionsReached:
    - __ebmb_lookup
    linkageType: ''
    returnType: struct ebmb_node
    signature: 'struct ebmb_node *

      ebmb_lookup(struct eb_root *root, const void *x, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ebmb_insert
      Src: /src/haproxy/src/ebmbtree.c:42,1
    - Dst: len::len
      Src: /src/haproxy/src/ebmbtree.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - root
    - new
    - len
    argTypes:
    - struct eb_root*
    - struct ebmb_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: ebmb_insert
    functionSourceFile: /src/haproxy/src/ebmbtree.c
    functionUses: 2
    functionsReached:
    - len::len
    - __ebmb_insert
    linkageType: ''
    returnType: struct ebmb_node
    signature: 'struct ebmb_node *

      ebmb_insert(struct eb_root *root, struct ebmb_node *new, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ebmb_lookup_longest
      Src: /src/haproxy/src/ebmbtree.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: ebmb_lookup_longest
    functionSourceFile: /src/haproxy/src/ebmbtree.c
    functionUses: 1
    functionsReached:
    - __ebmb_lookup_longest
    linkageType: ''
    returnType: struct ebmb_node
    signature: 'struct ebmb_node *

      ebmb_lookup_longest(struct eb_root *root, const void *x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ebmb_lookup_prefix
      Src: /src/haproxy/src/ebmbtree.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - root
    - x
    - pfx
    argTypes:
    - struct eb_root*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: ebmb_lookup_prefix
    functionSourceFile: /src/haproxy/src/ebmbtree.c
    functionUses: 1
    functionsReached:
    - __ebmb_lookup_prefix
    linkageType: ''
    returnType: struct ebmb_node
    signature: 'struct ebmb_node *

      ebmb_lookup_prefix(struct eb_root *root, const void *x, unsigned int pfx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ebmb_insert_prefix
      Src: /src/haproxy/src/ebmbtree.c:76,1
    - Dst: len::len
      Src: /src/haproxy/src/ebmbtree.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - root
    - new
    - len
    argTypes:
    - struct eb_root*
    - struct ebmb_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: ebmb_insert_prefix
    functionSourceFile: /src/haproxy/src/ebmbtree.c
    functionUses: 1
    functionsReached:
    - len::len
    - __ebmb_insert_prefix
    linkageType: ''
    returnType: struct ebmb_node
    signature: 'struct ebmb_node *

      ebmb_insert_prefix(struct eb_root *root, struct ebmb_node *new, unsigned int
      len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istclear
      Src: /src/haproxy/src/uri_normalizer.c:26,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:31,1
    - Dst: istsplit
      Src: /src/haproxy/src/uri_normalizer.c:32,1
    - Dst: istcat
      Src: /src/haproxy/src/uri_normalizer.c:34,1
    - Dst: istend
      Src: /src/haproxy/src/uri_normalizer.c:39,1
    - Dst: istend
      Src: /src/haproxy/src/uri_normalizer.c:39,1
    - Dst: istcat
      Src: /src/haproxy/src/uri_normalizer.c:40,1
    - Dst: ist
      Src: /src/haproxy/src/uri_normalizer.c:40,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - input
    - dst
    argTypes:
    - struct ist
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 54
    functionName: uri_normalizer_fragment_encode
    functionSourceFile: /src/haproxy/src/uri_normalizer.c
    functionUses: 0
    functionsReached:
    - ist
    - istclear
    - istend
    - istsplit
    - istcat
    - istlen
    linkageType: ''
    returnType: enum uri_normalizer_err
    signature: enum uri_normalizer_err uri_normalizer_fragment_encode(const struct
      ist input, struct ist *dst)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: is_unreserved_character
    functionSourceFile: /src/haproxy/src/uri_normalizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_unreserved_character(unsigned char c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: istclear
      Src: /src/haproxy/src/uri_normalizer.c:93,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:99,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:104,1
    - Dst: istshift
      Src: /src/haproxy/src/uri_normalizer.c:105,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:108,1
    - Dst: ishex
      Src: /src/haproxy/src/uri_normalizer.c:109,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:109,1
    - Dst: ishex
      Src: /src/haproxy/src/uri_normalizer.c:109,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:109,1
    - Dst: istshift
      Src: /src/haproxy/src/uri_normalizer.c:112,1
    - Dst: istshift
      Src: /src/haproxy/src/uri_normalizer.c:113,1
    - Dst: hex2i
      Src: /src/haproxy/src/uri_normalizer.c:114,1
    - Dst: hex2i
      Src: /src/haproxy/src/uri_normalizer.c:114,1
    - Dst: is_unreserved_character
      Src: /src/haproxy/src/uri_normalizer.c:116,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:117,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:120,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:121,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:122,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:134,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:138,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - input
    - strict
    - dst
    argTypes:
    - struct ist
    - int
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 149
    functionName: uri_normalizer_percent_decode_unreserved
    functionSourceFile: /src/haproxy/src/uri_normalizer.c
    functionUses: 0
    functionsReached:
    - istclear
    - is_unreserved_character
    - hex2i
    - __istappend
    - ishex
    - istptr
    - istshift
    - istlen
    linkageType: ''
    returnType: enum uri_normalizer_err
    signature: enum uri_normalizer_err uri_normalizer_percent_decode_unreserved(const
      struct ist input, int strict, struct ist *dst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: istclear
      Src: /src/haproxy/src/uri_normalizer.c:162,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:168,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:173,1
    - Dst: istshift
      Src: /src/haproxy/src/uri_normalizer.c:174,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:177,1
    - Dst: ishex
      Src: /src/haproxy/src/uri_normalizer.c:178,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:178,1
    - Dst: ishex
      Src: /src/haproxy/src/uri_normalizer.c:178,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:178,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:179,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:180,1
    - Dst: toupper
      Src: /src/haproxy/src/uri_normalizer.c:180,1
    - Dst: istshift
      Src: /src/haproxy/src/uri_normalizer.c:180,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:181,1
    - Dst: toupper
      Src: /src/haproxy/src/uri_normalizer.c:181,1
    - Dst: istshift
      Src: /src/haproxy/src/uri_normalizer.c:181,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:191,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:195,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - input
    - strict
    - dst
    argTypes:
    - struct ist
    - int
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 206
    functionName: uri_normalizer_percent_upper
    functionSourceFile: /src/haproxy/src/uri_normalizer.c
    functionUses: 0
    functionsReached:
    - istclear
    - __istappend
    - ishex
    - toupper
    - istptr
    - istshift
    - istlen
    linkageType: ''
    returnType: enum uri_normalizer_err
    signature: enum uri_normalizer_err uri_normalizer_percent_upper(const struct ist
      input, int strict, struct ist *dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: istclear
      Src: /src/haproxy/src/uri_normalizer.c:213,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:219,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:224,1
    - Dst: istsplit
      Src: /src/haproxy/src/uri_normalizer.c:225,1
    - Dst: isteq
      Src: /src/haproxy/src/uri_normalizer.c:227,1
    - Dst: ist
      Src: /src/haproxy/src/uri_normalizer.c:227,1
    - Dst: istcat
      Src: /src/haproxy/src/uri_normalizer.c:228,1
    - Dst: my_unreachable
      Src: /src/haproxy/src/uri_normalizer.c:230,1
    - Dst: istend
      Src: /src/haproxy/src/uri_normalizer.c:235,1
    - Dst: istend
      Src: /src/haproxy/src/uri_normalizer.c:235,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - path
    - dst
    argTypes:
    - struct ist
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 247
    functionName: uri_normalizer_path_dot
    functionSourceFile: /src/haproxy/src/uri_normalizer.c
    functionUses: 0
    functionsReached:
    - ist
    - istclear
    - istend
    - istsplit
    - istcat
    - __istappend
    - isteq
    - my_unreachable
    - istlen
    linkageType: ''
    returnType: enum uri_normalizer_err
    signature: enum uri_normalizer_err uri_normalizer_path_dot(const struct ist path,
      struct ist *dst)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: istclear
      Src: /src/haproxy/src/uri_normalizer.c:259,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:260,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:263,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:268,1
    - Dst: istmatch
      Src: /src/haproxy/src/uri_normalizer.c:274,1
    - Dst: istadv
      Src: /src/haproxy/src/uri_normalizer.c:274,1
    - Dst: ist
      Src: /src/haproxy/src/uri_normalizer.c:274,1
    - Dst: istmatch
      Src: /src/haproxy/src/uri_normalizer.c:280,1
    - Dst: istadv
      Src: /src/haproxy/src/uri_normalizer.c:280,1
    - Dst: ist
      Src: /src/haproxy/src/uri_normalizer.c:280,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:297,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:303,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:307,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:308,1
    - Dst: ist2
      Src: /src/haproxy/src/uri_normalizer.c:329,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 3
    argNames:
    - path
    - full
    - dst
    argTypes:
    - struct ist
    - int
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 336
    functionName: uri_normalizer_path_dotdot
    functionSourceFile: /src/haproxy/src/uri_normalizer.c
    functionUses: 0
    functionsReached:
    - istadv
    - ist
    - ist2
    - istclear
    - istmatch
    - istptr
    - istlen
    linkageType: ''
    returnType: enum uri_normalizer_err
    signature: enum uri_normalizer_err uri_normalizer_path_dotdot(const struct ist
      path, int full, struct ist *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: istclear
      Src: /src/haproxy/src/uri_normalizer.c:343,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:349,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:354,1
    - Dst: istshift
      Src: /src/haproxy/src/uri_normalizer.c:355,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:358,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:358,1
    - Dst: istnext
      Src: /src/haproxy/src/uri_normalizer.c:359,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:362,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - path
    - dst
    argTypes:
    - struct ist
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 372
    functionName: uri_normalizer_path_merge_slashes
    functionSourceFile: /src/haproxy/src/uri_normalizer.c
    functionUses: 0
    functionsReached:
    - istclear
    - __istappend
    - istnext
    - istptr
    - istshift
    - istlen
    linkageType: ''
    returnType: enum uri_normalizer_err
    signature: enum uri_normalizer_err uri_normalizer_path_merge_slashes(const struct
      ist path, struct ist *dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iststop
      Src: /src/haproxy/src/uri_normalizer.c:383,1
    - Dst: iststop
      Src: /src/haproxy/src/uri_normalizer.c:384,1
    - Dst: istdiff
      Src: /src/haproxy/src/uri_normalizer.c:386,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:392,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:392,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:395,1
    - Dst: istptr
      Src: /src/haproxy/src/uri_normalizer.c:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 399
    functionName: query_param_cmp
    functionSourceFile: /src/haproxy/src/uri_normalizer.c
    functionUses: 0
    functionsReached:
    - istdiff
    - iststop
    - istptr
    linkageType: ''
    returnType: int
    signature: int query_param_cmp(const void *a, const void *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: istclear
      Src: /src/haproxy/src/uri_normalizer.c:406,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/uri_normalizer.c:411,1
    - Dst: b_orig
      Src: /src/haproxy/src/uri_normalizer.c:412,1
    - Dst: b_size
      Src: /src/haproxy/src/uri_normalizer.c:413,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:419,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:425,1
    - Dst: istshift
      Src: /src/haproxy/src/uri_normalizer.c:425,1
    - Dst: istlen
      Src: /src/haproxy/src/uri_normalizer.c:427,1
    - Dst: istsplit
      Src: /src/haproxy/src/uri_normalizer.c:428,1
    - Dst: qsort
      Src: /src/haproxy/src/uri_normalizer.c:439,1
    - Dst: __istappend
      Src: /src/haproxy/src/uri_normalizer.c:443,1
    - Dst: istcat
      Src: /src/haproxy/src/uri_normalizer.c:445,1
    - Dst: my_unreachable
      Src: /src/haproxy/src/uri_normalizer.c:447,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - query
    - delim
    - dst
    argTypes:
    - struct ist
    - char
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 460
    functionName: uri_normalizer_query_sort
    functionSourceFile: /src/haproxy/src/uri_normalizer.c
    functionUses: 0
    functionsReached:
    - istclear
    - b_orig
    - istsplit
    - qsort
    - istcat
    - get_trash_chunk
    - __istappend
    - b_size
    - my_unreachable
    - istshift
    - istlen
    linkageType: ''
    returnType: enum uri_normalizer_err
    signature: enum uri_normalizer_err uri_normalizer_query_sort(const struct ist
      query, const char delim, struct ist *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/httpclient_cli.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: hc_cli_res_stline_cb
    functionSourceFile: /src/haproxy/src/httpclient_cli.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    linkageType: ''
    returnType: void
    signature: void hc_cli_res_stline_cb(struct httpclient *hc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/httpclient_cli.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: hc_cli_res_headers_cb
    functionSourceFile: /src/haproxy/src/httpclient_cli.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    linkageType: ''
    returnType: void
    signature: void hc_cli_res_headers_cb(struct httpclient *hc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/httpclient_cli.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: hc_cli_res_body_cb
    functionSourceFile: /src/haproxy/src/httpclient_cli.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    linkageType: ''
    returnType: void
    signature: void hc_cli_res_body_cb(struct httpclient *hc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/httpclient_cli.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: hc_cli_res_end_cb
    functionSourceFile: /src/haproxy/src/httpclient_cli.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    linkageType: ''
    returnType: void
    signature: void hc_cli_res_end_cb(struct httpclient *hc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/httpclient_cli.c:93,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/httpclient_cli.c:102,1
    - Dst: strcmp
      Src: /src/haproxy/src/httpclient_cli.c:107,1
    - Dst: strcmp
      Src: /src/haproxy/src/httpclient_cli.c:110,1
    - Dst: memprintf
      Src: /src/haproxy/src/httpclient_cli.c:114,1
    - Dst: memprintf
      Src: /src/haproxy/src/httpclient_cli.c:121,1
    - Dst: ist
      Src: /src/haproxy/src/httpclient_cli.c:126,1
    - Dst: ist
      Src: /src/haproxy/src/httpclient_cli.c:129,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/httpclient_cli.c:131,1
    - Dst: strlen
      Src: /src/haproxy/src/httpclient_cli.c:131,1
    - Dst: httpclient_new
      Src: /src/haproxy/src/httpclient_cli.c:133,1
    - Dst: httpclient_req_gen
      Src: /src/haproxy/src/httpclient_cli.c:151,1
    - Dst: httpclient_start
      Src: /src/haproxy/src/httpclient_cli.c:155,1
    - Dst: memprintf
      Src: /src/haproxy/src/httpclient_cli.c:161,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/httpclient_cli.c:162,1
    - Dst: cli_err
      Src: /src/haproxy/src/httpclient_cli.c:163,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 164
    functionName: hc_cli_parse
    functionSourceFile: /src/haproxy/src/httpclient_cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ist
    - httpclient_new
    - cli_err
    - httpclient_req_gen
    - strcmp
    - applet_reserve_svcctx
    - httpclient_start
    - find_http_meth
    - httpclient_destroy
    - cli_has_level
    - strlen
    linkageType: ''
    returnType: int
    signature: int hc_cli_parse(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/httpclient_cli.c:180,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/httpclient_cli.c:185,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/httpclient_cli.c:190,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/httpclient_cli.c:192,1
    - Dst: istlen
      Src: /src/haproxy/src/httpclient_cli.c:192,1
    - Dst: istptr
      Src: /src/haproxy/src/httpclient_cli.c:192,1
    - Dst: istlen
      Src: /src/haproxy/src/httpclient_cli.c:193,1
    - Dst: istptr
      Src: /src/haproxy/src/httpclient_cli.c:193,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/httpclient_cli.c:195,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/httpclient_cli.c:202,1
    - Dst: isttest
      Src: /src/haproxy/src/httpclient_cli.c:204,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/httpclient_cli.c:205,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/httpclient_cli.c:208,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/httpclient_cli.c:210,1
    - Dst: httpclient_res_xfer
      Src: /src/haproxy/src/httpclient_cli.c:218,1
    - Dst: httpclient_data
      Src: /src/haproxy/src/httpclient_cli.c:220,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/httpclient_cli.c:227,1
    - Dst: htx_dump
      Src: /src/haproxy/src/httpclient_cli.c:228,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/httpclient_cli.c:229,1
    - Dst: htx_reset
      Src: /src/haproxy/src/httpclient_cli.c:231,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/httpclient_cli.c:232,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/httpclient_cli.c:244,1
    - Dst: cli_err
      Src: /src/haproxy/src/httpclient_cli.c:250,1
    - Dst: cli_err
      Src: /src/haproxy/src/httpclient_cli.c:252,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 75
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 253
    functionName: hc_cli_io_handler
    functionSourceFile: /src/haproxy/src/httpclient_cli.c
    functionUses: 0
    functionsReached:
    - applet_have_no_more_data
    - htxbuf
    - isttest
    - htx_to_buf
    - cli_err
    - chunk_printf
    - istptr
    - httpclient_res_xfer
    - htx_reset
    - chunk_memcat
    - h1_format_htx_hdr
    - chunk_reset
    - httpclient_data
    - istlen
    - htx_is_empty
    - htx_dump
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int hc_cli_io_handler(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_stop_and_destroy
      Src: /src/haproxy/src/httpclient_cli.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 264
    functionName: hc_cli_release
    functionSourceFile: /src/haproxy/src/httpclient_cli.c
    functionUses: 0
    functionsReached:
    - httpclient_stop_and_destroy
    linkageType: ''
    returnType: void
    signature: void hc_cli_release(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: qpack_debug_printf
    functionSourceFile: /src/haproxy/src/qpack-dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: qpack_debug_printf(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: qpack_debug_hexdump
    functionSourceFile: /src/haproxy/src/qpack-dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: qpack_debug_hexdump(...)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - buf
    - len_in
    - b
    argTypes:
    - unsigned char**
    - uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 94
    functionName: qpack_get_varint
    functionSourceFile: /src/haproxy/src/qpack-dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t qpack_get_varint(const unsigned char **buf, uint64_t *len_in,
      int b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: qcc_set_error
      Src: /src/haproxy/src/qpack-dec.c:114,1
    - Dst: b_data
      Src: /src/haproxy/src/qpack-dec.c:119,1
    - Dst: qpack_debug_hexdump
      Src: /src/haproxy/src/qpack-dec.c:120,1
    - Dst: b_head
      Src: /src/haproxy/src/qpack-dec.c:120,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:123,1
    - Dst: b_head
      Src: /src/haproxy/src/qpack-dec.c:127,1
    - Dst: b_head
      Src: /src/haproxy/src/qpack-dec.c:139,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/qpack-dec.c:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - buf
    - fin
    - ctx
    argTypes:
    - struct buffer*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 156
    functionName: qpack_decode_enc
    functionSourceFile: /src/haproxy/src/qpack-dec.c
    functionUses: 0
    functionsReached:
    - b_head
    - qpack_debug_printf
    - qpack_debug_hexdump
    - b_data
    - qcc_set_error
    linkageType: ''
    returnType: int
    signature: int qpack_decode_enc(struct buffer *buf, int fin, void *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qcc_set_error
      Src: /src/haproxy/src/qpack-dec.c:176,1
    - Dst: b_data
      Src: /src/haproxy/src/qpack-dec.c:181,1
    - Dst: qpack_debug_hexdump
      Src: /src/haproxy/src/qpack-dec.c:182,1
    - Dst: b_head
      Src: /src/haproxy/src/qpack-dec.c:182,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:185,1
    - Dst: b_head
      Src: /src/haproxy/src/qpack-dec.c:189,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/qpack-dec.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - buf
    - fin
    - ctx
    argTypes:
    - struct buffer*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 214
    functionName: qpack_decode_dec
    functionSourceFile: /src/haproxy/src/qpack-dec.c
    functionUses: 0
    functionsReached:
    - b_head
    - qpack_debug_printf
    - qpack_debug_hexdump
    - b_data
    - qcc_set_error
    linkageType: ''
    returnType: int
    signature: int qpack_decode_dec(struct buffer *buf, int fin, void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:223,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - enc_ric
    - db
    - sign_bit
    - raw
    - len
    argTypes:
    - uint64_t*
    - uint64_t*
    - int*
    - unsigned char**
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 240
    functionName: qpack_decode_fs_pfx
    functionSourceFile: /src/haproxy/src/qpack-dec.c
    functionUses: 0
    functionsReached:
    - qpack_get_varint
    linkageType: ''
    returnType: int
    signature: "int qpack_decode_fs_pfx(uint64_t *enc_ric, uint64_t *db, int *sign_bit,\n
      \                              const unsigned char **raw, uint64_t *len)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: qpack_debug_hexdump
      Src: /src/haproxy/src/qpack-dec.c:260,1
    - Dst: qpack_decode_fs_pfx
      Src: /src/haproxy/src/qpack-dec.c:263,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:265,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/qpack-dec.c:269,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:270,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:275,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:282,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:292,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:294,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:296,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:301,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:303,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:305,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:310,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:313,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:339,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:340,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:342,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:347,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:365,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:367,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:369,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:392,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:399,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:402,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:407,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:429,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:431,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:433,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:438,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/qpack-dec.c:443,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:445,1
    - Dst: huff_dec
      Src: /src/haproxy/src/qpack-dec.c:450,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:452,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:457,1
    - Dst: b_add
      Src: /src/haproxy/src/qpack-dec.c:459,1
    - Dst: ist2
      Src: /src/haproxy/src/qpack-dec.c:460,1
    - Dst: ist2
      Src: /src/haproxy/src/qpack-dec.c:463,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:474,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:477,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:482,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:487,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/qpack-dec.c:494,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:496,1
    - Dst: huff_dec
      Src: /src/haproxy/src/qpack-dec.c:500,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:502,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:507,1
    - Dst: b_add
      Src: /src/haproxy/src/qpack-dec.c:509,1
    - Dst: ist2
      Src: /src/haproxy/src/qpack-dec.c:510,1
    - Dst: ist2
      Src: /src/haproxy/src/qpack-dec.c:513,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:520,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:522,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:527,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/qpack-dec.c:533,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:535,1
    - Dst: huff_dec
      Src: /src/haproxy/src/qpack-dec.c:539,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:541,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:546,1
    - Dst: b_add
      Src: /src/haproxy/src/qpack-dec.c:548,1
    - Dst: ist2
      Src: /src/haproxy/src/qpack-dec.c:549,1
    - Dst: ist2
      Src: /src/haproxy/src/qpack-dec.c:552,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:563,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:572,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:576,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:586,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 220
    argCount: 5
    argNames:
    - raw
    - len
    - tmp
    - list
    - list_size
    argTypes:
    - unsigned char*
    - uint64_t
    - struct buffer*
    - struct http_hdr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 588
    functionName: qpack_decode_fs
    functionSourceFile: /src/haproxy/src/qpack-dec.c
    functionUses: 1
    functionsReached:
    - ist2
    - qpack_decode_fs_pfx
    - qpack_debug_printf
    - qpack_debug_hexdump
    - b_add
    - huff_dec
    - chunk_reset
    - chunk_newstr
    - qpack_get_varint
    linkageType: ''
    returnType: int
    signature: "int qpack_decode_fs(const unsigned char *raw, uint64_t len, struct
      buffer *tmp,\n                    struct http_hdr *list, int list_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: qpack_err_decode
    functionSourceFile: /src/haproxy/src/qpack-dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qpack_err_decode(const int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pat
    argTypes:
    - struct pattern*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: pat2acl
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum acl_test_res
    signature: enum acl_test_res pat2acl(struct pattern *pat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct acl_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: acl_register_keywords
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void acl_register_keywords(struct acl_kw_list *kwl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/acl.c:61,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct acl_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: acl_unregister_keywords
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void acl_unregister_keywords(struct acl_kw_list *kwl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - name
    - head
    argTypes:
    - char*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: find_acl_by_name
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct acl
    signature: struct acl *find_acl_by_name(const char *name, struct list *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 18
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(acl, head, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_idchar
      Src: /src/haproxy/src/acl.c:89,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:92,1
    - Dst: strncmp
      Src: /src/haproxy/src/acl.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 100
    functionName: find_acl_kw
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - strncmp
    - is_idchar
    - list_for_each_entry
    linkageType: ''
    returnType: struct acl_keyword
    signature: struct acl_keyword *find_acl_kw(const char *kw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pattern_prune
      Src: /src/haproxy/src/acl.c:106,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/acl.c:112,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/acl.c:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct acl_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 120
    functionName: prune_acl_expr
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - pattern_prune
    - release_sample_expr
    - chunk_destroy
    linkageType: ''
    returnType: struct acl_expr
    signature: struct acl_expr *prune_acl_expr(struct acl_expr *expr)
  - BBCount: 64
    BranchProfiles: []
    Callsites:
    - Dst: find_acl_kw
      Src: /src/haproxy/src/acl.c:169,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:177,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:179,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:182,1
    - Dst: is_idchar
      Src: /src/haproxy/src/acl.c:187,1
    - Dst: make_arg_list
      Src: /src/haproxy/src/acl.c:194,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:198,1
    - Dst: struct sample_expr*::fetch::val_args
      Src: /src/haproxy/src/acl.c:205,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:209,1
    - Dst: sample_parse_expr_cnv
      Src: /src/haproxy/src/acl.c:218,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:220,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/acl.c:223,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/acl.c:231,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:233,1
    - Dst: smp_expr_output_type
      Src: /src/haproxy/src/acl.c:239,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:241,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:243,1
    - Dst: pattern_init_head
      Src: /src/haproxy/src/acl.c:247,1
    - Dst: ha_warning
      Src: /src/haproxy/src/acl.c:303,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:328,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:330,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:332,1
    - Dst: strtol
      Src: /src/haproxy/src/acl.c:333,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:335,1
    - Dst: pat_ref_lookupid
      Src: /src/haproxy/src/acl.c:340,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:341,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:347,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:349,1
    - Dst: pattern_read_from_file
      Src: /src/haproxy/src/acl.c:353,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:358,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:362,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:366,1
    - Dst: pat_find_match_name
      Src: /src/haproxy/src/acl.c:371,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:373,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:379,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:390,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:394,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:399,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:407,1
    - Dst: ha_warning
      Src: /src/haproxy/src/acl.c:417,1
    - Dst: snprintf
      Src: /src/haproxy/src/acl.c:422,1
    - Dst: pat_ref_newid
      Src: /src/haproxy/src/acl.c:427,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:429,1
    - Dst: pattern_new_expr
      Src: /src/haproxy/src/acl.c:434,1
    - Dst: get_std_op
      Src: /src/haproxy/src/acl.c:475,1
    - Dst: strchr
      Src: /src/haproxy/src/acl.c:483,1
    - Dst: strchr
      Src: /src/haproxy/src/acl.c:483,1
    - Dst: strchr
      Src: /src/haproxy/src/acl.c:491,1
    - Dst: strlen
      Src: /src/haproxy/src/acl.c:495,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/acl.c:502,1
    - Dst: strlen
      Src: /src/haproxy/src/acl.c:502,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:503,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:507,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/acl.c:515,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:516,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:521,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:530,1
    - Dst: snprintf
      Src: /src/haproxy/src/acl.c:539,1
    - Dst: snprintf
      Src: /src/haproxy/src/acl.c:541,1
    - Dst: snprintf
      Src: /src/haproxy/src/acl.c:552,1
    - Dst: snprintf
      Src: /src/haproxy/src/acl.c:554,1
    - Dst: pat_ref_add
      Src: /src/haproxy/src/acl.c:565,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:569,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:569,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:570,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:570,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/acl.c:571,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:572,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:572,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/acl.c:573,1
    - Dst: find_acl_kw
      Src: /src/haproxy/src/acl.c:574,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/acl.c:575,1
    - Dst: is_idchar
      Src: /src/haproxy/src/acl.c:579,1
    - Dst: find_sample_fetch
      Src: /src/haproxy/src/acl.c:582,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/acl.c:583,1
    - Dst: prune_acl_expr
      Src: /src/haproxy/src/acl.c:592,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:593,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:595,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 306
    argCount: 5
    argNames:
    - args
    - err
    - al
    - file
    - line
    argTypes:
    - char**
    - char**
    - struct arg_list*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 598
    functionName: parse_acl_expr
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - pattern_init_head
    - LIST_INIT
    - strl2llrc
    - snprintf
    - strcmp
    - strchr
    - pat_ref_add
    - get_std_op
    - strtol
    - smp_expr_output_type
    - sample_parse_expr
    - make_arg_list
    - calloc
    - pattern_read_from_file
    - prune_acl_expr
    - ha_diag_warning
    - struct sample_expr*::fetch::val_args
    - find_sample_fetch
    - find_acl_kw
    - is_idchar
    - pat_ref_lookupid
    - pat_ref_newid
    - LIST_ISEMPTY
    - sample_parse_expr_cnv
    - pat_find_match_name
    - ha_warning
    - pattern_new_expr
    - strlen
    linkageType: ''
    returnType: struct acl_expr
    signature: "struct acl_expr *parse_acl_expr(const char **args, char **err, struct
      arg_list *al,\n                                const char *file, int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/acl.c:605,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/acl.c:607,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/acl.c:608,1
    - Dst: prune_acl_expr
      Src: /src/haproxy/src/acl.c:609,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - acl
    argTypes:
    - struct acl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 614
    functionName: prune_acl
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - prune_acl_expr
    - free
    linkageType: ''
    returnType: struct acl
    signature: struct acl *prune_acl(struct acl *acl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:625,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:632,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:635,1
    - Dst: parse_acl_recurse
      Src: /src/haproxy/src/acl.c:636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - acl
    - expr
    - max_recurse
    argTypes:
    - struct acl*
    - struct acl_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 643
    functionName: parse_acl_recurse
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 1
    functionsReached:
    - strcmp
    - parse_acl_recurse
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int parse_acl_recurse(struct acl *acl, struct acl_expr *expr, int max_recurse)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: invalid_char
      Src: /src/haproxy/src/acl.c:664,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:665,1
    - Dst: parse_acl_expr
      Src: /src/haproxy/src/acl.c:669,1
    - Dst: strchr
      Src: /src/haproxy/src/acl.c:679,1
    - Dst: ha_warning
      Src: /src/haproxy/src/acl.c:680,1
    - Dst: find_acl_by_name
      Src: /src/haproxy/src/acl.c:688,1
    - Dst: parse_acl_recurse
      Src: /src/haproxy/src/acl.c:693,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:696,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:698,1
    - Dst: strdup
      Src: /src/haproxy/src/acl.c:702,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:704,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:707,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:709,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:713,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:714,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:724,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:728,1
    - Dst: prune_acl_expr
      Src: /src/haproxy/src/acl.c:730,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:731,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 6
    argNames:
    - args
    - known_acl
    - err
    - al
    - file
    - line
    argTypes:
    - char**
    - struct list*
    - char**
    - struct arg_list*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 734
    functionName: parse_acl
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - invalid_char
    - memprintf
    - find_acl_by_name
    - calloc
    - strchr
    - LIST_APPEND
    - free
    - prune_acl_expr
    - ha_warning
    - parse_acl_expr
    - LIST_INIT
    - parse_acl_recurse
    - strdup
    linkageType: ''
    returnType: struct acl
    signature: "struct acl *parse_acl(const char **args, struct list *known_acl, char
      **err, struct arg_list *al,\n                      const char *file, int line)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:788,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:793,1
    - Dst: parse_acl_expr
      Src: /src/haproxy/src/acl.c:797,1
    - Dst: strdup
      Src: /src/haproxy/src/acl.c:803,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:805,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:809,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:811,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:818,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:819,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:821,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:826,1
    - Dst: prune_acl_expr
      Src: /src/haproxy/src/acl.c:828,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:829,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 6
    argNames:
    - acl_name
    - known_acl
    - err
    - al
    - file
    - line
    argTypes:
    - char*
    - struct list*
    - char**
    - struct arg_list*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 832
    functionName: find_acl_default
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - calloc
    - strcmp
    - LIST_APPEND
    - free
    - prune_acl_expr
    - parse_acl_expr
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: struct acl
    signature: "struct acl *find_acl_default(const char *acl_name, struct list *known_acl,\n
      \                            char **err, struct arg_list *al,\n                             const
      char *file, int line)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:856,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:858,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:862,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:863,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acl.c:885,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:885,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:894,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:901,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:905,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:909,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:911,1
    - Dst: memcpy
      Src: /src/haproxy/src/acl.c:916,1
    - Dst: parse_acl
      Src: /src/haproxy/src/acl.c:918,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:919,1
    - Dst: find_acl_by_name
      Src: /src/haproxy/src/acl.c:933,1
    - Dst: find_acl_default
      Src: /src/haproxy/src/acl.c:935,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:943,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:945,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:965,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:967,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:970,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:971,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:973,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:981,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/acl.c:983,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 97
    argCount: 7
    argNames:
    - args
    - known_acl
    - pol
    - err
    - al
    - file
    - line
    argTypes:
    - char**
    - struct list*
    - enum acl_cond_pol
    - char**
    - struct arg_list*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 843
    functionDepth: 4
    functionLinenumber: 843
    functionLinenumberEnd: 986
    functionName: parse_acl_cond
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - memcpy
    - find_acl_by_name
    - calloc
    - strcmp
    - parse_acl
    - free
    - strcasecmp
    - LIST_APPEND
    - free_acl_cond
    - LIST_INIT
    - find_acl_default
    linkageType: ''
    returnType: struct acl_cond
    signature: "struct acl_cond *parse_acl_cond(const char **args, struct list *known_acl,\n
      \                               enum acl_cond_pol pol, char **err, struct arg_list
      *al,\n                                const char *file, int line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:1006,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:1010,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:1015,1
    - Dst: parse_acl_cond
      Src: /src/haproxy/src/acl.c:1019,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - file
    - line
    - known_acl
    - px
    - args
    - err
    argTypes:
    - char*
    - int
    - struct list*
    - struct proxy*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 997
    functionDepth: 5
    functionLinenumber: 997
    functionLinenumberEnd: 1029
    functionName: build_acl_cond
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - parse_acl_cond
    linkageType: ''
    returnType: struct acl_cond
    signature: "struct acl_cond *build_acl_cond(const char *file, int line, struct
      list *known_acl,\n\t\t\t\tstruct proxy *px, const char **args, char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1063,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1073,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1084,1
    - Dst: memset
      Src: /src/haproxy/src/acl.c:1086,1
    - Dst: sample_process
      Src: /src/haproxy/src/acl.c:1088,1
    - Dst: pat2acl
      Src: /src/haproxy/src/acl.c:1095,1
    - Dst: pattern_exec_match
      Src: /src/haproxy/src/acl.c:1095,1
    - Dst: acl_neg
      Src: /src/haproxy/src/acl.c:1127,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 5
    argNames:
    - cond
    - px
    - sess
    - strm
    - opt
    argTypes:
    - struct acl_cond*
    - struct proxy*
    - struct session*
    - struct stream*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1142
    functionName: acl_exec_cond
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - sample_process
    - memset
    - list_for_each_entry
    - acl_neg
    - pattern_exec_match
    - pat2acl
    linkageType: ''
    returnType: enum acl_test_res
    signature: enum acl_test_res acl_exec_cond(struct acl_cond *cond, struct proxy
      *px, struct session *sess, struct stream *strm, unsigned int opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1155,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - cond
    - where
    argTypes:
    - struct acl_cond*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1163
    functionName: acl_cond_conflicts
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct acl
    signature: struct acl *acl_cond_conflicts(const struct acl_cond *cond, unsigned
      int where)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1177,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1178,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - cond
    - where
    - acl
    - kw
    argTypes:
    - struct acl_cond*
    - unsigned int
    - struct acl**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1191
    functionName: acl_cond_kw_conflicts
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int acl_cond_kw_conflicts(const struct acl_cond *cond, unsigned int
      where, struct acl const **acl, char const **kw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1207,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1208,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:1209,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acl.c:1214,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/acl.c:1221,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acl.c:1222,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1229,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/acl.c:1230,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acl.c:1231,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1237,1
    - Dst: check_group
      Src: /src/haproxy/src/acl.c:1239,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acl.c:1240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1251
    functionName: acl_find_targets
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - strcmp
    - LIST_ISEMPTY
    - ha_alert
    - check_group
    linkageType: ''
    returnType: int
    signature: int acl_find_targets(struct proxy *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1264,1
    - Dst: find_sample_fetch
      Src: /src/haproxy/src/acl.c:1270,1
    - Dst: strlen
      Src: /src/haproxy/src/acl.c:1270,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acl.c:1272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1281
    functionName: init_acl
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - ha_alert
    - find_sample_fetch
    - strlen
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int init_acl()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1292,1
    - Dst: strordered
      Src: /src/haproxy/src/acl.c:1294,1
    - Dst: printf
      Src: /src/haproxy/src/acl.c:1308,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1310
    functionName: acl_dump_kwd
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - strordered
    - printf
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void acl_dump_kwd(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/acl.c:1321,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/acl.c:1322,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/acl.c:1323,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:1324,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/acl.c:1326,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:1327,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:1330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - cond
    argTypes:
    - struct acl_cond*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1331
    functionName: free_acl_cond
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 3
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - free
    linkageType: ''
    returnType: void
    signature: void free_acl_cond(struct acl_cond *cond)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acl_exec_cond
      Src: /src/haproxy/src/acl.c:1339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1334
    functionDepth: 2
    functionLinenumber: 1334
    functionLinenumberEnd: 1345
    functionName: smp_fetch_acl
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - acl_exec_cond
    linkageType: ''
    returnType: int
    signature: int smp_fetch_acl(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:1355,1
    - Dst: unlikely
      Src: /src/haproxy/src/acl.c:1356,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:1357,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:1360,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:1361,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:1362,1
    - Dst: find_acl_by_name
      Src: /src/haproxy/src/acl.c:1374,1
    - Dst: find_acl_default
      Src: /src/haproxy/src/acl.c:1375,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:1377,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:1384,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:1393,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - args
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1347
    functionDepth: 4
    functionLinenumber: 1347
    functionLinenumberEnd: 1395
    functionName: smp_fetch_acl_parse
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memprintf
    - find_acl_by_name
    - calloc
    - LIST_APPEND
    - free
    - LIST_INIT
    - find_acl_default
    linkageType: ''
    returnType: int
    signature: int smp_fetch_acl_parse(struct arg *args, char **err_msg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_kqueue.c:42,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_kqueue.c:43,1
    - Dst: EV_SET
      Src: /src/haproxy/src/ev_kqueue.c:51,1
    - Dst: EV_SET
      Src: /src/haproxy/src/ev_kqueue.c:52,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_kqueue.c:54,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_kqueue.c:56,1
    - Dst: EV_SET
      Src: /src/haproxy/src/ev_kqueue.c:63,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_kqueue.c:64,1
    - Dst: EV_SET
      Src: /src/haproxy/src/ev_kqueue.c:68,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_kqueue.c:69,1
    - Dst: EV_SET
      Src: /src/haproxy/src/ev_kqueue.c:74,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_kqueue.c:75,1
    - Dst: EV_SET
      Src: /src/haproxy/src/ev_kqueue.c:79,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_kqueue.c:80,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - fd
    - start
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 85
    functionName: _update_fd
    functionSourceFile: /src/haproxy/src/ev_kqueue.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - HA_ATOMIC_AND
    - _HA_ATOMIC_OR
    - EV_SET
    linkageType: ''
    returnType: int
    signature: int _update_fd(int fd, int start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - poller
    - fd
    - old_ltid
    - old_tgid
    argTypes:
    - struct poller*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: _do_fixup_tgid_takeover
    functionSourceFile: /src/haproxy/src/ev_kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _do_fixup_tgid_takeover(struct poller *poller, const int fd, const
      int old_ltid, const int old_tgid)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fd_grab_tgid
      Src: /src/haproxy/src/ev_kqueue.c:113,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_kqueue.c:119,1
    - Dst: _update_fd
      Src: /src/haproxy/src/ev_kqueue.c:122,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/ev_kqueue.c:126,1
    - Dst: fd_grab_tgid
      Src: /src/haproxy/src/ev_kqueue.c:139,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/ev_kqueue.c:146,1
    - Dst: done_update_polling
      Src: /src/haproxy/src/ev_kqueue.c:150,1
    - Dst: _update_fd
      Src: /src/haproxy/src/ev_kqueue.c:153,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/ev_kqueue.c:157,1
    - Dst: thread_idle_now
      Src: /src/haproxy/src/ev_kqueue.c:160,1
    - Dst: thread_harmless_now
      Src: /src/haproxy/src/ev_kqueue.c:161,1
    - Dst: EV_SET
      Src: /src/haproxy/src/ev_kqueue.c:171,1
    - Dst: kevent
      Src: /src/haproxy/src/ev_kqueue.c:173,1
    - Dst: compute_poll_timeout
      Src: /src/haproxy/src/ev_kqueue.c:178,1
    - Dst: clock_entering_poll
      Src: /src/haproxy/src/ev_kqueue.c:180,1
    - Dst: kevent
      Src: /src/haproxy/src/ev_kqueue.c:188,1
    - Dst: clock_update_local_date
      Src: /src/haproxy/src/ev_kqueue.c:194,1
    - Dst: tick_isset
      Src: /src/haproxy/src/ev_kqueue.c:202,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/ev_kqueue.c:202,1
    - Dst: clock_update_global_date
      Src: /src/haproxy/src/ev_kqueue.c:206,1
    - Dst: fd_leaving_poll
      Src: /src/haproxy/src/ev_kqueue.c:207,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ev_kqueue.c:216,1
    - Dst: fd_tgid
      Src: /src/haproxy/src/ev_kqueue.c:218,1
    - Dst: EV_SET
      Src: /src/haproxy/src/ev_kqueue.c:225,1
    - Dst: EV_SET
      Src: /src/haproxy/src/ev_kqueue.c:226,1
    - Dst: kevent
      Src: /src/haproxy/src/ev_kqueue.c:227,1
    - Dst: fd_update_events
      Src: /src/haproxy/src/ev_kqueue.c:243,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 87
    argCount: 3
    argNames:
    - p
    - exp
    - wake
    argTypes:
    - struct poller*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 245
    functionName: _do_poll
    functionSourceFile: /src/haproxy/src/ev_kqueue.c
    functionUses: 0
    functionsReached:
    - fd_leaving_poll
    - clock_entering_poll
    - thread_harmless_now
    - fd_tgid
    - thread_idle_now
    - tick_is_expired
    - EV_SET
    - done_update_polling
    - _HA_ATOMIC_AND
    - compute_poll_timeout
    - _update_fd
    - _HA_ATOMIC_INC
    - kevent
    - fd_grab_tgid
    - fd_update_events
    - fd_drop_tgid
    - clock_update_global_date
    - tick_isset
    - clock_update_local_date
    linkageType: ''
    returnType: void
    signature: void _do_poll(struct poller *p, int exp, int wake)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ev_kqueue.c:255,1
    - Dst: kqueue
      Src: /src/haproxy/src/ev_kqueue.c:260,1
    - Dst: fd_reregister_all
      Src: /src/haproxy/src/ev_kqueue.c:270,1
    - Dst: free
      Src: /src/haproxy/src/ev_kqueue.c:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 277
    functionName: init_kqueue_per_thread
    functionSourceFile: /src/haproxy/src/ev_kqueue.c
    functionUses: 0
    functionsReached:
    - calloc
    - kqueue
    - free
    - fd_reregister_all
    linkageType: ''
    returnType: int
    signature: int init_kqueue_per_thread()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/src/ev_kqueue.c:282,1
    - Dst: ha_free
      Src: /src/haproxy/src/ev_kqueue.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: deinit_kqueue_per_thread
    functionSourceFile: /src/haproxy/src/ev_kqueue.c
    functionUses: 0
    functionsReached:
    - ha_free
    - close
    linkageType: ''
    returnType: void
    signature: void deinit_kqueue_per_thread()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ev_kqueue.c:301,1
    - Dst: kqueue
      Src: /src/haproxy/src/ev_kqueue.c:305,1
    - Dst: hap_register_per_thread_init
      Src: /src/haproxy/src/ev_kqueue.c:309,1
    - Dst: hap_register_per_thread_deinit
      Src: /src/haproxy/src/ev_kqueue.c:310,1
    - Dst: ha_free
      Src: /src/haproxy/src/ev_kqueue.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 318
    functionName: _do_init
    functionSourceFile: /src/haproxy/src/ev_kqueue.c
    functionUses: 0
    functionsReached:
    - kqueue
    - ha_free
    - calloc
    - hap_register_per_thread_deinit
    - hap_register_per_thread_init
    linkageType: ''
    returnType: int
    signature: int _do_init(struct poller *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/src/ev_kqueue.c:327,1
    - Dst: ha_free
      Src: /src/haproxy/src/ev_kqueue.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 336
    functionName: _do_term
    functionSourceFile: /src/haproxy/src/ev_kqueue.c
    functionUses: 0
    functionsReached:
    - ha_free
    - close
    linkageType: ''
    returnType: void
    signature: void _do_term(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kqueue
      Src: /src/haproxy/src/ev_kqueue.c:346,1
    - Dst: close
      Src: /src/haproxy/src/ev_kqueue.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 351
    functionName: _do_test
    functionSourceFile: /src/haproxy/src/ev_kqueue.c
    functionUses: 0
    functionsReached:
    - kqueue
    - close
    linkageType: ''
    returnType: int
    signature: int _do_test(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kqueue
      Src: /src/haproxy/src/ev_kqueue.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 364
    functionName: _do_fork
    functionSourceFile: /src/haproxy/src/ev_kqueue.c
    functionUses: 0
    functionsReached:
    - kqueue
    linkageType: ''
    returnType: int
    signature: int _do_fork(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 394
    functionName: _do_register
    functionSourceFile: /src/haproxy/src/ev_kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _do_register(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: cmp_kw_entries
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmp_kw_entries(const void *a, const void *b)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cli.c:138,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:146,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:148,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:154,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:169,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/cli.c:178,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:180,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:182,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:184,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:185,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:188,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:190,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:202,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:216,1
    - Dst: memset
      Src: /src/haproxy/src/cli.c:233,1
    - Dst: update_word_fingerprint
      Src: /src/haproxy/src/cli.c:235,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:236,1
    - Dst: memset
      Src: /src/haproxy/src/cli.c:239,1
    - Dst: update_word_fingerprint
      Src: /src/haproxy/src/cli.c:241,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:242,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/cli.c:245,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:281,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:308,1
    - Dst: qsort
      Src: /src/haproxy/src/cli.c:317,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:320,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:323,1
    - Dst: chunk_init
      Src: /src/haproxy/src/cli.c:328,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/cli.c:329,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:332,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 121
    argCount: 2
    argNames:
    - appctx
    - args
    argTypes:
    - struct appctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 334
    functionName: cli_gen_usage_msg
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - memset
    - chunk_dup
    - list_for_each_entry
    - ha_free
    - chunk_strcat
    - update_word_fingerprint
    - strcmp
    - qsort
    - chunk_appendf
    - get_trash_chunk
    - chunk_init
    - word_fingerprint_distance
    - chunk_reset
    - strlen
    linkageType: ''
    returnType: char
    signature: char *cli_gen_usage_msg(struct appctx *appctx, char * const *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cli.c:344,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:347,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - args
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 368
    functionName: cli_find_kw
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct cli_kw
    signature: struct cli_kw * cli_find_kw(char **args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cli.c:377,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:380,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:391,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - args
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 401
    functionName: cli_find_kw_exact
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct cli_kw
    signature: struct cli_kw * cli_find_kw_exact(char **args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cli.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct cli_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 421
    functionName: cli_register_kw
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void cli_register_kw(struct cli_kw_list *kw_list)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:431,1
    - Dst: strordered
      Src: /src/haproxy/src/cli.c:436,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:447,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:450,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:452,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:454,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:456,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:457,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 459
    functionName: cli_list_keywords
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strordered
    - printf
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void cli_list_keywords(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/cli.c:469,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:471,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/cli.c:478,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/cli.c:479,1
    - Dst: proxy_index_id
      Src: /src/haproxy/src/cli.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - name
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 488
    functionName: cli_alloc_fe
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - proxy_index_id
    - ha_free
    - MS_TO_TICKS
    - copy_file_name
    - alloc_new_proxy
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *cli_alloc_fe(const char *name, const char *file, int
      line)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:503,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:507,1
    - Dst: cli_alloc_fe
      Src: /src/haproxy/src/cli.c:512,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:513,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/cli.c:518,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cli.c:518,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:520,1
    - Dst: str2listener
      Src: /src/haproxy/src/cli.c:526,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:527,1
    - Dst: bind_find_kw
      Src: /src/haproxy/src/cli.c:538,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:541,1
    - Dst: struct bind_kw*::parse
      Src: /src/haproxy/src/cli.c:546,1
    - Dst: indent_msg
      Src: /src/haproxy/src/cli.c:553,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:554,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:555,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:560,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:562,1
    - Dst: bind_find_best_kw
      Src: /src/haproxy/src/cli.c:571,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:573,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:576,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:585,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:589,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cli.c:591,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:594,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:599,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:604,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:609,1
    - Dst: cli_alloc_fe
      Src: /src/haproxy/src/cli.c:613,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:614,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/cli.c:618,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:620,1
    - Dst: atol
      Src: /src/haproxy/src/cli.c:621,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:624,1
    - Dst: cli_alloc_fe
      Src: /src/haproxy/src/cli.c:629,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:630,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:636,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cli.c:637,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cli.c:639,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:643,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:646,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:647,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:651,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 115
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 655
    functionName: cli_parse_global
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - str2listener
    - memprintf
    - list_for_each_entry
    - ha_free
    - atol
    - strcmp
    - xprt_get
    - struct bind_kw*::parse
    - MS_TO_TICKS
    - bind_find_kw
    - bind_conf_alloc
    - ha_warning
    - bind_find_best_kw
    - indent_msg
    - parse_time_err
    - strcasecmp
    - cli_alloc_fe
    linkageType: ''
    returnType: int
    signature: "int cli_parse_global(char **args, int section_type, struct proxy *curpx,\n
      \                           const struct proxy *defpx, const char *file, int
      line,\n                            char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cli.c:669,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:673,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cli.c:676,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 682
    functionName: cli_parse_global_max_payload_size
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - parse_size_err
    linkageType: ''
    returnType: int
    signature: "int cli_parse_global_max_payload_size(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t     const struct proxy *defpx, const char *file,
      int line,\n\t\t\t\t\t     char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cli.c:693,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:697,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:700,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:712,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:714,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/cli.c:717,1
    - Dst: port_to_str
      Src: /src/haproxy/src/cli.c:718,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:719,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/cli.c:721,1
    - Dst: port_to_str
      Src: /src/haproxy/src/cli.c:722,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:723,1
    - Dst: setenv
      Src: /src/haproxy/src/cli.c:731,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - frontend
    - varname
    argTypes:
    - struct proxy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 736
    functionName: listeners_setenv
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - setenv
    - port_to_str
    - chunk_appendf
    - get_trash_chunk
    - addr_to_str
    linkageType: ''
    returnType: int
    signature: int listeners_setenv(struct proxy *frontend, const char *varname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: listeners_setenv
      Src: /src/haproxy/src/cli.c:740,1
    - Dst: listeners_setenv
      Src: /src/haproxy/src/cli.c:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 738
    functionDepth: 3
    functionLinenumber: 738
    functionLinenumberEnd: 746
    functionName: cli_socket_setenv
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - listeners_setenv
    linkageType: ''
    returnType: int
    signature: int cli_socket_setenv()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - appctx
    - level
    argTypes:
    - struct appctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 763
    functionName: cli_has_level
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 4
    functionsReached:
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_has_level(struct appctx *appctx, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - level
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 772
    functionName: pcli_has_level
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pcli_has_level(struct stream *s, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strm_li
      Src: /src/haproxy/src/cli.c:779,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/cli.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 780
    functionName: cli_get_severity_output
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - strm_li
    linkageType: ''
    returnType: int
    signature: int cli_get_severity_output(struct appctx *appctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/cli.c:799,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:800,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:801,1
    - Dst: b_tail
      Src: /src/haproxy/src/cli.c:801,1
    - Dst: strspn
      Src: /src/haproxy/src/cli.c:810,1
    - Dst: strcspn
      Src: /src/haproxy/src/cli.c:817,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:851,1
    - Dst: b_head
      Src: /src/haproxy/src/cli.c:852,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:859,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:859,1
    - Dst: cli_find_kw
      Src: /src/haproxy/src/cli.c:871,1
    - Dst: cli_gen_usage_msg
      Src: /src/haproxy/src/cli.c:877,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:883,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:888,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/cli.c:893,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/cli.c:895,1
    - Dst: struct cli_kw*::parse
      Src: /src/haproxy/src/cli.c:901,1
    - Dst: b_del
      Src: /src/haproxy/src/cli.c:923,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 95
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 925
    functionName: cli_process_cmdline
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cli_find_kw
    - b_head
    - cli_err
    - struct cli_kw*::parse
    - strcspn
    - strspn
    - cli_gen_usage_msg
    - b_tail
    - mark_tainted
    - b_data
    - b_del
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_process_cmdline(struct appctx *appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cli.c:933,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/cli.c:934,1
    - Dst: likely
      Src: /src/haproxy/src/cli.c:936,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:940,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:941,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:946,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:949,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:952,1
    - Dst: ist
      Src: /src/haproxy/src/cli.c:961,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/cli.c:964,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/cli.c:965,1
    - Dst: ist
      Src: /src/haproxy/src/cli.c:965,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cli.c:967,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - appctx
    - msg
    - severity
    - severity_output
    argTypes:
    - struct appctx*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 968
    functionName: cli_output_msg
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - ist
    - chunk_istcat
    - chunk_printf
    - get_trash_chunk
    - likely
    - ha_warning
    - chunk_reset
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_output_msg(struct appctx *appctx, const char *msg, int severity,
      int severity_output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/cli.c:972,1
    - Dst: strm_li
      Src: /src/haproxy/src/cli.c:973,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/cli.c:973,1
    - Dst: applet_reset_svcctx
      Src: /src/haproxy/src/cli.c:976,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/cli.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 988
    functionName: cli_init
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - applet_need_more_data
    - __sc_strm
    - appctx_sc
    - strm_li
    - applet_reset_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_init(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_orig
      Src: /src/haproxy/src/cli.c:997,1
    - Dst: my_realloc2::my_realloc2
      Src: /src/haproxy/src/cli.c:998,1
    - Dst: b_make
      Src: /src/haproxy/src/cli.c:1009,1
    - Dst: new_size::new_size
      Src: /src/haproxy/src/cli.c:1009,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - appctx
    - buf
    - new_size
    argTypes:
    - struct appctx*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1011
    functionName: cli_try_realloc_payload
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - b_make
    - b_orig
    - new_size::new_size
    - b_data
    - my_realloc2::my_realloc2
    linkageType: ''
    returnType: int
    signature: int cli_try_realloc_payload(struct appctx *appctx, struct buffer *buf,
      size_t new_size)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1019,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/cli.c:1024,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1026,1
    - Dst: b_tail
      Src: /src/haproxy/src/cli.c:1041,1
    - Dst: b_getdelim
      Src: /src/haproxy/src/cli.c:1043,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1043,1
    - Dst: b_room
      Src: /src/haproxy/src/cli.c:1043,1
    - Dst: b_getline
      Src: /src/haproxy/src/cli.c:1045,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1045,1
    - Dst: b_room
      Src: /src/haproxy/src/cli.c:1045,1
    - Dst: b_room
      Src: /src/haproxy/src/cli.c:1048,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1048,1
    - Dst: b_room
      Src: /src/haproxy/src/cli.c:1048,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1051,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1058,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1058,1
    - Dst: cli_try_realloc_payload
      Src: /src/haproxy/src/cli.c:1059,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1059,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1059,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1061,1
    - Dst: b_xfer
      Src: /src/haproxy/src/cli.c:1067,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1067,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/cli.c:1068,1
    - Dst: b_del
      Src: /src/haproxy/src/cli.c:1073,1
    - Dst: b_add
      Src: /src/haproxy/src/cli.c:1074,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/cli.c:1075,1
    - Dst: strncmp
      Src: /src/haproxy/src/cli.c:1120,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1120,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1121,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1121,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1128,1
    - Dst: b_make
      Src: /src/haproxy/src/cli.c:1137,1
    - Dst: b_tail
      Src: /src/haproxy/src/cli.c:1137,1
    - Dst: b_room
      Src: /src/haproxy/src/cli.c:1137,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1152,1
    - Dst: strncmp
      Src: /src/haproxy/src/cli.c:1153,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1157,1
    - Dst: b_sub
      Src: /src/haproxy/src/cli.c:1158,1
    - Dst: b_sub
      Src: /src/haproxy/src/cli.c:1160,1
    - Dst: b_tail
      Src: /src/haproxy/src/cli.c:1161,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/cli.c:1182,1
    - Dst: b_reset
      Src: /src/haproxy/src/cli.c:1183,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 98
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1185
    functionName: cli_parse_cmdline
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - b_getline
    - b_xfer
    - applet_fl_clr
    - applet_set_error
    - b_sub
    - alloc_trash_chunk
    - b_tail
    - b_getdelim
    - b_room
    - b_add
    - b_data
    - strncmp
    - cli_try_realloc_payload
    - strlen
    - b_reset
    - b_make
    - b_del
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_cmdline(struct appctx *appctx)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/cli.c:1199,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cli.c:1199,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cli.c:1204,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/cli.c:1205,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/cli.c:1206,1
    - Dst: cli_init
      Src: /src/haproxy/src/cli.c:1213,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/cli.c:1216,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/cli.c:1220,1
    - Dst: cli_parse_cmdline
      Src: /src/haproxy/src/cli.c:1221,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/cli.c:1227,1
    - Dst: buffer_almost_full
      Src: /src/haproxy/src/cli.c:1238,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/cli.c:1239,1
    - Dst: cli_process_cmdline
      Src: /src/haproxy/src/cli.c:1246,1
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cli.c:1263,1
    - Dst: usermsgs_str
      Src: /src/haproxy/src/cli.c:1282,1
    - Dst: cli_output_msg
      Src: /src/haproxy/src/cli.c:1289,1
    - Dst: cli_get_severity_output
      Src: /src/haproxy/src/cli.c:1289,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:1292,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/cli.c:1296,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cli.c:1301,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/cli.c:1310,1
    - Dst: struct appctx*::cli_ctx::io_handler
      Src: /src/haproxy/src/cli.c:1310,1
    - Dst: EXEC_CTX_NO_RET
      Src: /src/haproxy/src/cli.c:1314,1
    - Dst: struct appctx*::cli_ctx::io_release
      Src: /src/haproxy/src/cli.c:1314,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/cli.c:1326,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1341,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/cli.c:1346,1
    - Dst: snprintf
      Src: /src/haproxy/src/cli.c:1347,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/cli.c:1360,1
    - Dst: applet_reset_svcctx
      Src: /src/haproxy/src/cli.c:1361,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/cli.c:1369,1
    - Dst: applet_reset_svcctx
      Src: /src/haproxy/src/cli.c:1378,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/cli.c:1379,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:1381,1
    - Dst: b_orig
      Src: /src/haproxy/src/cli.c:1381,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/cli.c:1388,1
    - Dst: applet_expect_data
      Src: /src/haproxy/src/cli.c:1389,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/cli.c:1392,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1398,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/cli.c:1400,1
    - Dst: b_reset
      Src: /src/haproxy/src/cli.c:1416,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/cli.c:1417,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 164
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1195
    functionDepth: 4
    functionLinenumber: 1195
    functionLinenumberEnd: 1420
    functionName: cli_io_handler
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - unlikely
    - cli_output_msg
    - usermsgs_str
    - free
    - applet_reserve_svcctx
    - EXEC_CTX_WITH_RET
    - se_fl_test
    - snprintf
    - applet_putstr
    - applet_fl_clr
    - ha_free
    - struct appctx*::cli_ctx::io_release
    - applet_fl_set
    - applet_set_eos
    - struct appctx*::cli_ctx::io_handler
    - buffer_almost_full
    - applet_set_error
    - ns_to_sec
    - b_orig
    - free_trash_chunk
    - cli_init
    - usermsgs_clr
    - appctx_get_buf
    - b_data
    - applet_expect_data
    - cli_get_severity_output
    - cli_parse_cmdline
    - cli_process_cmdline
    - applet_reset_svcctx
    - applet_fl_test
    - appctx_wakeup
    - applet_wont_consume
    - applet_set_eoi
    - b_reset
    - EXEC_CTX_NO_RET
    - applet_will_consume
    linkageType: ''
    returnType: void
    signature: void cli_io_handler(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/cli.c:1428,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:1430,1
    - Dst: b_orig
      Src: /src/haproxy/src/cli.c:1430,1
    - Dst: EXEC_CTX_NO_RET
      Src: /src/haproxy/src/cli.c:1435,1
    - Dst: struct appctx*::cli_ctx::io_release
      Src: /src/haproxy/src/cli.c:1435,1
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cli.c:1440,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:1442,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/cli.c:1445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1426
    functionDepth: 1
    functionLinenumber: 1426
    functionLinenumberEnd: 1447
    functionName: cli_release_handler
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - b_orig
    - free_trash_chunk
    - ha_free
    - struct appctx*::cli_ctx::io_release
    - usermsgs_clr
    - free
    - applet_reserve_svcctx
    - EXEC_CTX_NO_RET
    linkageType: ''
    returnType: void
    signature: void cli_release_handler(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/cli.c:1459,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:1465,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cli.c:1467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1454
    functionDepth: 1
    functionLinenumber: 1454
    functionLinenumberEnd: 1478
    functionName: cli_io_handler_show_env
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - applet_putchk
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_env(struct appctx *appctx)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/cli.c:1493,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/cli.c:1498,1
    - Dst: objt_listener
      Src: /src/haproxy/src/cli.c:1538,1
    - Dst: objt_server
      Src: /src/haproxy/src/cli.c:1539,1
    - Dst: objt_proxy
      Src: /src/haproxy/src/cli.c:1540,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/cli.c:1541,1
    - Dst: atleast2
      Src: /src/haproxy/src/cli.c:1542,1
    - Dst: objt_server
      Src: /src/haproxy/src/cli.c:1551,1
    - Dst: objt_listener
      Src: /src/haproxy/src/cli.c:1561,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:1581,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/cli.c:1607,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1610,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1613,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1616,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1619,1
    - Dst: getsockname
      Src: /src/haproxy/src/cli.c:1626,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1629,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1629,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1631,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1631,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1633,1
    - Dst: getpeername
      Src: /src/haproxy/src/cli.c:1637,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1639,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1639,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1641,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1641,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1646,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1648,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1650,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1653,1
    - Dst: struct mux_ops*::show_fd
      Src: /src/haproxy/src/cli.c:1657,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1660,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1662,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1665,1
    - Dst: struct xprt_ops*::show_fd
      Src: /src/haproxy/src/cli.c:1667,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1674,1
    - Dst: listener_state_str
      Src: /src/haproxy/src/cli.c:1675,1
    - Dst: getsockname
      Src: /src/haproxy/src/cli.c:1679,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1682,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1682,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1684,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1684,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1686,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1690,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1693,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1697,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cli.c:1699,1
    - Dst: thread_release
      Src: /src/haproxy/src/cli.c:1714,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 131
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1716
    functionName: cli_io_handler_show_fd
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - struct mux_ops*::show_fd
    - getpeername
    - thread_isolate
    - chunk_printf
    - chunk_appendf
    - atleast2
    - thread_release
    - applet_putchk
    - listener_state_str
    - getsockname
    - chunk_reset
    - struct xprt_ops*::show_fd
    - ntohs
    - objt_server
    - objt_listener
    - objt_proxy
    - resolve_sym_name
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_fd(struct appctx *appctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cli.c:1725,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/cli.c:1731,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/cli.c:1735,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cli.c:1737,1
    - Dst: typeof
      Src: /src/haproxy/src/cli.c:1737,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/cli.c:1740,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cli.c:1744,1
    - Dst: typeof
      Src: /src/haproxy/src/cli.c:1744,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/cli.c:1746,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1758,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1760,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/cli.c:1763,1
    - Dst: port_to_str
      Src: /src/haproxy/src/cli.c:1764,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1765,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/cli.c:1767,1
    - Dst: port_to_str
      Src: /src/haproxy/src/cli.c:1768,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1769,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1771,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1773,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1776,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1778,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1780,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1782,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1784,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cli.c:1786,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1797
    functionName: cli_io_handler_show_cli_sock
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - typeof
    - list_for_each_entry_from
    - port_to_str
    - chunk_appendf
    - applet_reserve_svcctx
    - applet_putchk
    - chunk_reset
    - addr_to_str
    - applet_putstr
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_cli_sock(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cli.c:1807,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:1811,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1817,1
    - Dst: strncmp
      Src: /src/haproxy/src/cli.c:1820,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1825,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1805
    functionDepth: 2
    functionLinenumber: 1805
    functionLinenumberEnd: 1831
    functionName: cli_parse_show_env
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_err
    - strncmp
    - applet_reserve_svcctx
    - cli_has_level
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_env(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cli.c:1839,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:1843,1
    - Dst: isdigit
      Src: /src/haproxy/src/cli.c:1852,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1866,1
    - Dst: strchr
      Src: /src/haproxy/src/cli.c:1882,1
    - Dst: atoi
      Src: /src/haproxy/src/cli.c:1894,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1896,1
    - Dst: atoi
      Src: /src/haproxy/src/cli.c:1900,1
    - Dst: atoi
      Src: /src/haproxy/src/cli.c:1904,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1837
    functionDepth: 2
    functionLinenumber: 1837
    functionLinenumberEnd: 1910
    functionName: cli_parse_show_fd
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strchr
    - applet_reserve_svcctx
    - isdigit
    - atoi
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_fd(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: appctx_strm
      Src: /src/haproxy/src/cli.c:1915,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1917,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1922,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cli.c:1924,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1926,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/cli.c:1928,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/cli.c:1929,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1933,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1913
    functionDepth: 1
    functionLinenumber: 1913
    functionLinenumberEnd: 1934
    functionName: cli_parse_set_timeout
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - task_wakeup
    - strcmp
    - MS_TO_TICKS
    - parse_time_err
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_timeout(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:1941,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1945,1
    - Dst: atoi
      Src: /src/haproxy/src/cli.c:1947,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1949,1
    - Dst: dequeue_all_listeners
      Src: /src/haproxy/src/cli.c:1958,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1937
    functionDepth: 2
    functionLinenumber: 1937
    functionLinenumberEnd: 1961
    functionName: cli_parse_set_maxconn_global
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - atoi
    - cli_has_level
    - dequeue_all_listeners
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_maxconn_global(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1965,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1969,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - target
    - argument
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1963
    functionDepth: 0
    functionLinenumber: 1963
    functionLinenumberEnd: 1978
    functionName: set_severity_output
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int set_severity_output(int *target, char *argument)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1984,1
    - Dst: set_severity_output
      Src: /src/haproxy/src/cli.c:1987,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1981
    functionDepth: 1
    functionLinenumber: 1981
    functionLinenumberEnd: 1991
    functionName: cli_parse_set_severity_output
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - set_severity_output
    - strcmp
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_severity_output(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:1998,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:2000,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:2002,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:2004,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2005
    functionName: cli_parse_show_lvl
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_msg
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_lvl(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2011,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2014,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:2015,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2021,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:2022,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2008
    functionDepth: 2
    functionLinenumber: 2008
    functionLinenumberEnd: 2030
    functionName: cli_parse_set_lvl
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_lvl(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2041,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:2044,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2047,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2051,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2055,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2064,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/cli.c:2066,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2070,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2034
    functionDepth: 2
    functionLinenumber: 2034
    functionLinenumberEnd: 2073
    functionName: cli_parse_expert_experimental_mode
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - strcmp
    - cli_dynmsg
    - memprintf
    linkageType: ''
    returnType: int
    signature: int cli_parse_expert_experimental_mode(char **args, char *payload,
      struct appctx *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/cli.c:2080,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2076
    functionDepth: 1
    functionLinenumber: 2076
    functionLinenumberEnd: 2081
    functionName: cli_parse_show_version
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cli_dynmsg
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_version(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2083
    functionDepth: 0
    functionLinenumber: 2083
    functionLinenumberEnd: 2086
    functionName: cli_parse_default
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_parse_default(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2094,1
    - Dst: atoll
      Src: /src/haproxy/src/cli.c:2097,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2099,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/cli.c:2103,1
    - Dst: ha_random32
      Src: /src/haproxy/src/cli.c:2107,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2110,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2113,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2089
    functionDepth: 1
    functionLinenumber: 2089
    functionLinenumberEnd: 2126
    functionName: cli_parse_set_anon
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - atoll
    - HA_ATOMIC_LOAD
    - strcmp
    - ha_random32
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_anon(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:2133,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2134,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2136,1
    - Dst: atoll
      Src: /src/haproxy/src/cli.c:2138,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2140,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/cli.c:2142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2129
    functionDepth: 2
    functionLinenumber: 2129
    functionLinenumberEnd: 2144
    functionName: cli_parse_set_global_key
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - HA_ATOMIC_STORE
    - atoll
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_global_key(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/cli.c:2159,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2159,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/cli.c:2162,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2147
    functionDepth: 1
    functionLinenumber: 2147
    functionLinenumberEnd: 2166
    functionName: cli_parse_show_anon
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cli_dynmsg
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_anon(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:2175,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2178,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2178,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2180,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2180,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2183,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2183,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2186,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2186,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2169
    functionDepth: 2
    functionLinenumber: 2169
    functionLinenumberEnd: 2199
    functionName: cli_parse_set_ratelimit
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - strcmp
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_ratelimit(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cli.c:2222,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:2226,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2230,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cli.c:2232,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2235,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2238,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2241,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2245,1
    - Dst: ist
      Src: /src/haproxy/src/cli.c:2247,1
    - Dst: istsplit
      Src: /src/haproxy/src/cli.c:2248,1
    - Dst: istlen
      Src: /src/haproxy/src/cli.c:2249,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2250,1
    - Dst: istdup
      Src: /src/haproxy/src/cli.c:2252,1
    - Dst: istdup
      Src: /src/haproxy/src/cli.c:2253,1
    - Dst: isttest
      Src: /src/haproxy/src/cli.c:2254,1
    - Dst: isttest
      Src: /src/haproxy/src/cli.c:2254,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:2255,1
    - Dst: istptr
      Src: /src/haproxy/src/cli.c:2255,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:2256,1
    - Dst: istptr
      Src: /src/haproxy/src/cli.c:2256,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2257,1
    - Dst: ist0
      Src: /src/haproxy/src/cli.c:2260,1
    - Dst: ist0
      Src: /src/haproxy/src/cli.c:2261,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2264,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2266,1
    - Dst: strdup
      Src: /src/haproxy/src/cli.c:2267,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2269,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2284,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:2285,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2287,1
    - Dst: tick_add
      Src: /src/haproxy/src/cli.c:2291,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2220
    functionDepth: 2
    functionLinenumber: 2220
    functionLinenumberEnd: 2295
    functionName: cli_parse_wait
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - ist
    - isttest
    - ist0
    - istsplit
    - strcmp
    - free
    - applet_reserve_svcctx
    - strdup
    - istdup
    - istptr
    - cli_has_level
    - parse_time_err
    - istlen
    - tick_add
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_wait(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/src/cli.c:2311,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/cli.c:2312,1
    - Dst: srv_check_for_deletion
      Src: /src/haproxy/src/cli.c:2321,1
    - Dst: be_check_for_deletion
      Src: /src/haproxy/src/cli.c:2324,1
    - Dst: tick_remain
      Src: /src/haproxy/src/cli.c:2340,1
    - Dst: tick_remain
      Src: /src/haproxy/src/cli.c:2352,1
    - Dst: tick_add
      Src: /src/haproxy/src/cli.c:2360,1
    - Dst: unlikely
      Src: /src/haproxy/src/cli.c:2364,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/cli.c:2364,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:2364,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2370
      start: 2304
    functionDepth: 1
    functionLinenumber: 2304
    functionLinenumberEnd: 2370
    functionName: cli_io_handler_wait
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - unlikely
    - be_check_for_deletion
    - tick_remain
    - b_data
    - tick_isset
    - tick_is_expired
    - srv_check_for_deletion
    - se_fl_test
    - tick_add
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_wait(struct appctx *appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2381,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2382,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2383,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2384,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:2388,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/cli.c:2391,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/cli.c:2393,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2374
    functionDepth: 1
    functionLinenumber: 2374
    functionLinenumberEnd: 2394
    functionName: cli_release_wait
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - cli_dynmsg
    - cli_dynerr
    linkageType: ''
    returnType: void
    signature: void cli_release_wait(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2400,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2403,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2397
    functionDepth: 1
    functionLinenumber: 2397
    functionLinenumberEnd: 2412
    functionName: bind_parse_expose_fd
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int bind_parse_expose_fd(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2418,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2422,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2425,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2428,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2438
    functionName: bind_parse_level
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int bind_parse_level(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2443,1
    - Dst: set_severity_output
      Src: /src/haproxy/src/cli.c:2447,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2440
    functionDepth: 1
    functionLinenumber: 2440
    functionLinenumberEnd: 2454
    functionName: bind_parse_severity_output
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - set_severity_output
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_severity_output(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/cli.c:2463,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/cli.c:2464,1
    - Dst: sc_conn
      Src: /src/haproxy/src/cli.c:2465,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/cli.c:2465,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2481,1
    - Dst: fcntl
      Src: /src/haproxy/src/cli.c:2488,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2490,1
    - Dst: malloc
      Src: /src/haproxy/src/cli.c:2493,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/cli.c:2493,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2495,1
    - Dst: fcntl
      Src: /src/haproxy/src/cli.c:2498,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2499,1
    - Dst: setsockopt
      Src: /src/haproxy/src/cli.c:2502,1
    - Dst: strm_li
      Src: /src/haproxy/src/cli.c:2505,1
    - Dst: memset
      Src: /src/haproxy/src/cli.c:2507,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2517,1
    - Dst: sendmsg
      Src: /src/haproxy/src/cli.c:2526,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2528,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/cli.c:2534,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/cli.c:2535,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/cli.c:2536,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/cli.c:2539,1
    - Dst: malloc
      Src: /src/haproxy/src/cli.c:2551,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/cli.c:2551,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2553,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/cli.c:2564,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:2577,1
    - Dst: memcpy
      Src: /src/haproxy/src/cli.c:2594,1
    - Dst: memcpy
      Src: /src/haproxy/src/cli.c:2600,1
    - Dst: memset
      Src: /src/haproxy/src/cli.c:2604,1
    - Dst: sendmsg
      Src: /src/haproxy/src/cli.c:2610,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2611,1
    - Dst: recv
      Src: /src/haproxy/src/cli.c:2617,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2621,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/cli.c:2634,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/cli.c:2635,1
    - Dst: sendmsg
      Src: /src/haproxy/src/cli.c:2636,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2637,1
    - Dst: recv
      Src: /src/haproxy/src/cli.c:2643,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2647,1
    - Dst: fcntl
      Src: /src/haproxy/src/cli.c:2653,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2654,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/cli.c:2655,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:2657,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:2658,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 136
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2457
    functionDepth: 1
    functionLinenumber: 2457
    functionLinenumberEnd: 2660
    functionName: _getsocks
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - free
    - appctx_sc
    - HA_ATOMIC_OR
    - sendmsg
    - CMSG_LEN
    - recv
    - setsockopt
    - __sc_strm
    - CMSG_SPACE
    - strm_li
    - malloc
    - memcpy
    - fcntl
    - CMSG_DATA
    - sc_opposite
    - memset
    - CMSG_FIRSTHDR
    - applet_set_eoi
    - ha_warning
    - array_size_or_fail
    - strlen
    linkageType: ''
    returnType: int
    signature: int _getsocks(char **args, char *payload, struct appctx *appctx, void
      *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cli_gen_usage_msg
      Src: /src/haproxy/src/cli.c:2666,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2684,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2686,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2688,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2690,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2692,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:2693,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2695,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/cli.c:2718,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2662
    functionDepth: 3
    functionLinenumber: 2662
    functionLinenumberEnd: 2723
    functionName: cli_parse_simple
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - strcmp
    - cli_gen_usage_msg
    - applet_set_eoi
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_simple(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/cli.c:2729,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:2734,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2736,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2739,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:2741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2725
    functionDepth: 1
    functionLinenumber: 2725
    functionLinenumberEnd: 2744
    functionName: cli_parse_echo
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - chunk_appendf
    - cli_msg
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int cli_parse_echo(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/cli.c:2749,1
    - Dst: strm_li
      Src: /src/haproxy/src/cli.c:2750,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/cli.c:2750,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cli.c:2754,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2754,1
    - Dst: atoi
      Src: /src/haproxy/src/cli.c:2757,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:2759,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cli.c:2768,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cli.c:2769,1
    - Dst: kill
      Src: /src/haproxy/src/cli.c:2777,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cli.c:2789,1
    - Dst: stop_listener
      Src: /src/haproxy/src/cli.c:2790,1
    - Dst: handle_pidfile
      Src: /src/haproxy/src/cli.c:2797,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:2798,1
    - Dst: exit
      Src: /src/haproxy/src/cli.c:2799,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/cli.c:2807,1
    - Dst: write
      Src: /src/haproxy/src/cli.c:2811,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:2811,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:2812,1
    - Dst: strerror
      Src: /src/haproxy/src/cli.c:2812,1
    - Dst: exit
      Src: /src/haproxy/src/cli.c:2813,1
    - Dst: close
      Src: /src/haproxy/src/cli.c:2815,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cli.c:2820,1
    - Dst: sd_notifyf
      Src: /src/haproxy/src/cli.c:2823,1
    - Dst: getpid
      Src: /src/haproxy/src/cli.c:2823,1
    - Dst: mworker_unblock_signals
      Src: /src/haproxy/src/cli.c:2825,1
    - Dst: getenv
      Src: /src/haproxy/src/cli.c:2833,1
    - Dst: stdio_quiet
      Src: /src/haproxy/src/cli.c:2834,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2746
    functionDepth: 1
    functionLinenumber: 2746
    functionLinenumberEnd: 2840
    functionName: _send_status
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - getpid
    - ha_notice
    - exit
    - appctx_sc
    - atoi
    - close
    - strerror
    - strcmp
    - stdio_quiet
    - __sc_strm
    - tell_old_pids
    - strm_li
    - sd_notifyf
    - write
    - getenv
    - mworker_unblock_signals
    - handle_pidfile
    - BUG_ON
    - list_for_each_entry
    - stop_listener
    - kill
    - ha_alert
    - strlen
    linkageType: ''
    returnType: int
    signature: int _send_status(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cli.c:2845,1
    - Dst: sc_oc
      Src: /src/haproxy/src/cli.c:2846,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2852,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/cli.c:2857,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2858,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2862,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:2873,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2883,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2888,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2892,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2896,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2899,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2902,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2905,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2907,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2910,1
    - Dst: co_inject
      Src: /src/haproxy/src/cli.c:2914,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2842
    functionDepth: 2
    functionLinenumber: 2842
    functionLinenumberEnd: 2915
    functionName: pcli_write_prompt
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - sc_oc
    - ns_to_sec
    - list_for_each_entry
    - chunk_appendf
    - get_trash_chunk
    - co_inject
    linkageType: ''
    returnType: void
    signature: void pcli_write_prompt(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cli.c:2923,1
    - Dst: chunk_initstr
      Src: /src/haproxy/src/cli.c:2927,1
    - Dst: likely
      Src: /src/haproxy/src/cli.c:2929,1
    - Dst: co_inject
      Src: /src/haproxy/src/cli.c:2930,1
    - Dst: channel_erase
      Src: /src/haproxy/src/cli.c:2932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - struct stream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2921
    functionDepth: 2
    functionLinenumber: 2921
    functionLinenumberEnd: 2934
    functionName: pcli_error
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - chunk_initstr
    - get_trash_chunk
    - likely
    - co_inject
    - channel_erase
    linkageType: ''
    returnType: void
    signature: void pcli_error(struct stream *s, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cli.c:2939,1
    - Dst: chunk_initstr
      Src: /src/haproxy/src/cli.c:2941,1
    - Dst: stream_retnclose
      Src: /src/haproxy/src/cli.c:2942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - struct stream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2937
    functionDepth: 2
    functionLinenumber: 2937
    functionLinenumberEnd: 2943
    functionName: pcli_reply_and_close
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - chunk_initstr
    - get_trash_chunk
    - stream_retnclose
    linkageType: ''
    returnType: void
    signature: void pcli_reply_and_close(struct stream *s, const char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:2953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - proc_pid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2959
      start: 2945
    functionDepth: 0
    functionLinenumber: 2945
    functionLinenumberEnd: 2959
    functionName: pcli_pid_to_server
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: enum obj_type
    signature: enum obj_type *pcli_pid_to_server(int proc_pid)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2980,1
    - Dst: strtol
      Src: /src/haproxy/src/cli.c:2987,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:2990,1
    - Dst: strtol
      Src: /src/haproxy/src/cli.c:3001,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:3013,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3025
      start: 2967
    functionDepth: 0
    functionLinenumber: 2967
    functionLinenumberEnd: 3025
    functionName: pcli_prefix_to_pid
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strtol
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int pcli_prefix_to_pid(const char *prefix)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: pcli_prefix_to_pid
      Src: /src/haproxy/src/cli.c:3045,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3048,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3058,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3074,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3076,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3078,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3081,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3105,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/cli.c:3106,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/cli.c:3107,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3109,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3110,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3111,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3118,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3119,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3120,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3127,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3128,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3129,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3134,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3138,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3139,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3140,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3144,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3147,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3148,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3149,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3153,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3156,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3157,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3158,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3160,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:3162,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3165,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 109
    argCount: 5
    argNames:
    - s
    - args
    - argl
    - errmsg
    - next_pid
    argTypes:
    - struct stream*
    - char**
    - int
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3036
    functionDepth: 1
    functionLinenumber: 3036
    functionLinenumberEnd: 3174
    functionName: pcli_find_and_exec_kw
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - pcli_prefix_to_pid
    - strcmp
    - sc_schedule_abort
    - pcli_has_level
    - sc_schedule_shutdown
    linkageType: ''
    returnType: int
    signature: int pcli_find_and_exec_kw(struct stream *s, char **args, int argl,
      char **errmsg, int *next_pid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/haproxy/src/cli.c:3196,1
    - Dst: pcli_prefix_to_pid
      Src: /src/haproxy/src/cli.c:3217,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3219,1
    - Dst: b_del
      Src: /src/haproxy/src/cli.c:3229,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3243,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3243,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3246,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3246,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3250,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3250,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3254,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3254,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 6
    argNames:
    - s
    - req
    - str
    - end
    - errmsg
    - next_pid
    argTypes:
    - struct stream*
    - struct channel*
    - char**
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3262
      start: 3185
    functionDepth: 1
    functionLinenumber: 3185
    functionLinenumberEnd: 3262
    functionName: pcli_find_bidir_prefix
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - pcli_prefix_to_pid
    - ci_insert
    - b_del
    - memchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int pcli_find_bidir_prefix(struct stream *s, struct channel *req, char
      **str, const char *end, char **errmsg, int *next_pid)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/cli.c:3290,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:3290,1
    - Dst: b_wrap
      Src: /src/haproxy/src/cli.c:3290,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/cli.c:3291,1
    - Dst: co_data
      Src: /src/haproxy/src/cli.c:3291,1
    - Dst: ci_head
      Src: /src/haproxy/src/cli.c:3293,1
    - Dst: ci_stop
      Src: /src/haproxy/src/cli.c:3294,1
    - Dst: pcli_find_bidir_prefix
      Src: /src/haproxy/src/cli.c:3300,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3310,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3312,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3314,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3314,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3318,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3319,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3321,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3321,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3325,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3370,1
    - Dst: strncmp
      Src: /src/haproxy/src/cli.c:3372,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3372,1
    - Dst: strspn
      Src: /src/haproxy/src/cli.c:3385,1
    - Dst: strcspn
      Src: /src/haproxy/src/cli.c:3391,1
    - Dst: strncmp
      Src: /src/haproxy/src/cli.c:3408,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3408,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3409,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3409,1
    - Dst: strncpy
      Src: /src/haproxy/src/cli.c:3418,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3418,1
    - Dst: pcli_find_and_exec_kw
      Src: /src/haproxy/src/cli.c:3426,1
    - Dst: b_del
      Src: /src/haproxy/src/cli.c:3444,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3461,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3461,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3465,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3469,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3469,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3473,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3477,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3477,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3481,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3485,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3485,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3489,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3493,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3493,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3497,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3500,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3502,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3504,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3504,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3508,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3509,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3511,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3511,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3515,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 189
    argCount: 4
    argNames:
    - s
    - req
    - errmsg
    - next_pid
    argTypes:
    - struct stream*
    - struct channel*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3273
    functionDepth: 2
    functionLinenumber: 3273
    functionLinenumberEnd: 3521
    functionName: pcli_parse_request
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strncpy
    - b_head
    - ci_head
    - pcli_find_and_exec_kw
    - co_data
    - strspn
    - strcspn
    - strncmp
    - pcli_has_level
    - b_data
    - pcli_find_bidir_prefix
    - b_slow_realign
    - strlen
    - ci_insert
    - b_del
    - b_wrap
    - ci_stop
    linkageType: ''
    returnType: int
    signature: int pcli_parse_request(struct stream *s, struct channel *req, char
      **errmsg, int *next_pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/cli.c:3530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3541
      start: 3523
    functionDepth: 1
    functionLinenumber: 3523
    functionLinenumberEnd: 3541
    functionName: pcli_create_txn
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    linkageType: ''
    returnType: struct pcli_txn
    signature: struct pcli_txn *pcli_create_txn(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/cli.c:3547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3550
      start: 3543
    functionDepth: 1
    functionLinenumber: 3543
    functionLinenumberEnd: 3550
    functionName: pcli_destroy_txn
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - pool_free
    linkageType: ''
    returnType: void
    signature: void pcli_destroy_txn(struct stream *s)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strm_li
      Src: /src/haproxy/src/cli.c:3568,1
    - Dst: strm_li
      Src: /src/haproxy/src/cli.c:3573,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/cli.c:3581,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/cli.c:3584,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3589,1
    - Dst: c_data
      Src: /src/haproxy/src/cli.c:3593,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/cli.c:3594,1
    - Dst: pcli_parse_request
      Src: /src/haproxy/src/cli.c:3596,1
    - Dst: channel_forward
      Src: /src/haproxy/src/cli.c:3603,1
    - Dst: channel_forward_forever
      Src: /src/haproxy/src/cli.c:3605,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/cli.c:3612,1
    - Dst: pcli_write_prompt
      Src: /src/haproxy/src/cli.c:3614,1
    - Dst: pcli_pid_to_server
      Src: /src/haproxy/src/cli.c:3626,1
    - Dst: objt_server
      Src: /src/haproxy/src/cli.c:3627,1
    - Dst: __objt_server
      Src: /src/haproxy/src/cli.c:3628,1
    - Dst: channel_auto_connect
      Src: /src/haproxy/src/cli.c:3640,1
    - Dst: pcli_write_prompt
      Src: /src/haproxy/src/cli.c:3645,1
    - Dst: pcli_error
      Src: /src/haproxy/src/cli.c:3652,1
    - Dst: pcli_write_prompt
      Src: /src/haproxy/src/cli.c:3653,1
    - Dst: b_reset
      Src: /src/haproxy/src/cli.c:3659,1
    - Dst: b_putblk
      Src: /src/haproxy/src/cli.c:3660,1
    - Dst: b_reset
      Src: /src/haproxy/src/cli.c:3666,1
    - Dst: b_putblk
      Src: /src/haproxy/src/cli.c:3667,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/cli.c:3674,1
    - Dst: channel_full
      Src: /src/haproxy/src/cli.c:3678,1
    - Dst: pcli_reply_and_close
      Src: /src/haproxy/src/cli.c:3685,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3687
      start: 3552
    functionDepth: 3
    functionLinenumber: 3552
    functionLinenumberEnd: 3687
    functionName: pcli_wait_for_request
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - channel_dont_close
    - channel_dont_connect
    - channel_forward
    - pcli_reply_and_close
    - c_data
    - objt_server
    - pcli_pid_to_server
    - channel_forward_forever
    - strm_li
    - sc_schedule_shutdown
    - pcli_parse_request
    - ns_to_ms
    - pcli_write_prompt
    - channel_full
    - pcli_error
    - __objt_server
    - ci_data
    - channel_auto_connect
    - b_putblk
    - b_reset
    linkageType: ''
    returnType: int
    signature: int pcli_wait_for_request(struct stream *s, struct channel *req, int
      an_bit)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/cli.c:3692,1
    - Dst: co_data
      Src: /src/haproxy/src/cli.c:3696,1
    - Dst: pcli_reply_and_close
      Src: /src/haproxy/src/cli.c:3697,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/cli.c:3706,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/cli.c:3707,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3716,1
    - Dst: c_adv
      Src: /src/haproxy/src/cli.c:3717,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3717,1
    - Dst: pcli_write_prompt
      Src: /src/haproxy/src/cli.c:3726,1
    - Dst: sc_abort
      Src: /src/haproxy/src/cli.c:3729,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/cli.c:3730,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/cli.c:3741,1
    - Dst: unlikely
      Src: /src/haproxy/src/cli.c:3742,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/cli.c:3743,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/cli.c:3746,1
    - Dst: stream_process_counters
      Src: /src/haproxy/src/cli.c:3747,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3750,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3751,1
    - Dst: pendconn_free
      Src: /src/haproxy/src/cli.c:3754,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/cli.c:3758,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/cli.c:3761,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/cli.c:3767,1
    - Dst: log_orig
      Src: /src/haproxy/src/cli.c:3767,1
    - Dst: stream_stop_content_counters
      Src: /src/haproxy/src/cli.c:3771,1
    - Dst: stream_update_time_stats
      Src: /src/haproxy/src/cli.c:3772,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3786,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3787,1
    - Dst: stream_del_srv_conn
      Src: /src/haproxy/src/cli.c:3789,1
    - Dst: objt_server
      Src: /src/haproxy/src/cli.c:3790,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/cli.c:3793,1
    - Dst: __objt_server
      Src: /src/haproxy/src/cli.c:3793,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/cli.c:3795,1
    - Dst: __objt_server
      Src: /src/haproxy/src/cli.c:3795,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/cli.c:3796,1
    - Dst: __objt_server
      Src: /src/haproxy/src/cli.c:3796,1
    - Dst: sc_reset_endp
      Src: /src/haproxy/src/cli.c:3803,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/cli.c:3807,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/cli.c:3810,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/cli.c:3812,1
    - Dst: sc_set_state
      Src: /src/haproxy/src/cli.c:3814,1
    - Dst: strm_fe
      Src: /src/haproxy/src/cli.c:3834,1
    - Dst: strm_fe
      Src: /src/haproxy/src/cli.c:3835,1
    - Dst: stream_del_srv_conn
      Src: /src/haproxy/src/cli.c:3837,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/cli.c:3841,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/cli.c:3847,1
    - Dst: unlikely
      Src: /src/haproxy/src/cli.c:3861,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3861,1
    - Dst: b_set_data
      Src: /src/haproxy/src/cli.c:3862,1
    - Dst: co_data
      Src: /src/haproxy/src/cli.c:3862,1
    - Dst: c_realign_if_empty
      Src: /src/haproxy/src/cli.c:3865,1
    - Dst: strm_fe
      Src: /src/haproxy/src/cli.c:3867,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/cli.c:3877,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/cli.c:3878,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/cli.c:3879,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 120
    argCount: 3
    argNames:
    - s
    - rep
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3885
      start: 3689
    functionDepth: 3
    functionLinenumber: 3689
    functionLinenumberEnd: 3885
    functionName: pcli_wait_for_response
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_shutdown
    - channel_dont_close
    - struct stream*::do_log
    - co_data
    - stream_update_time_stats
    - lf_expr_isempty
    - stream_del_srv_conn
    - pcli_reply_and_close
    - objt_server
    - strm_fe
    - struct stream*::srv_error
    - log_orig_proxy
    - channel_auto_close
    - se_have_more_data
    - sockaddr_free
    - _HA_ATOMIC_FETCH_ADD
    - sc_abort
    - sess_change_server
    - c_adv
    - channel_auto_read
    - c_realign_if_empty
    - stream_process_counters
    - process_srv_queue
    - ns_to_ms
    - pcli_write_prompt
    - log_orig
    - sc_set_state
    - sc_reset_endp
    - __objt_server
    - may_dequeue_tasks
    - pendconn_free
    - ci_data
    - HA_ATOMIC_DEC
    - se_fl_clr
    - b_set_data
    - stream_stop_content_counters
    linkageType: ''
    returnType: int
    signature: int pcli_wait_for_response(struct stream *s, struct channel *rep, int
      an_bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stop_proxy
      Src: /src/haproxy/src/cli.c:3897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3898
      start: 3894
    functionDepth: 1
    functionLinenumber: 3894
    functionLinenumberEnd: 3898
    functionName: mworker_cli_proxy_stop
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - stop_proxy
    linkageType: ''
    returnType: void
    signature: void mworker_cli_proxy_stop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/cli.c:3905,1
    - Dst: strdup
      Src: /src/haproxy/src/cli.c:3915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - errmsg
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3927
      start: 3903
    functionDepth: 1
    functionLinenumber: 3903
    functionLinenumberEnd: 3927
    functionName: mworker_cli_create_master_proxy
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - alloc_new_proxy
    - strdup
    linkageType: ''
    returnType: int
    signature: int mworker_cli_create_master_proxy(char **errmsg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/cli.c:3940,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:3944,1
    - Dst: new_server
      Src: /src/haproxy/src/cli.c:3954,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3959,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3961,1
    - Dst: strdup
      Src: /src/haproxy/src/cli.c:3963,1
    - Dst: strdup
      Src: /src/haproxy/src/cli.c:3964,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3967,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cli.c:3968,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:3972,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/cli.c:3984,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:3993,1
    - Dst: srv_detach
      Src: /src/haproxy/src/cli.c:3994,1
    - Dst: srv_drop
      Src: /src/haproxy/src/cli.c:3995,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:3997,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - errmsg
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4000
      start: 3935
    functionDepth: 1
    functionLinenumber: 3935
    functionLinenumberEnd: 4000
    functionName: mworker_cli_attach_server
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - srv_detach
    - BUG_ON
    - list_for_each_entry
    - ha_free
    - free
    - srv_drop
    - str2sa_range
    - srv_lb_commit_status
    - new_server
    - strdup
    linkageType: ''
    returnType: int
    signature: int mworker_cli_attach_server(char **errmsg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/cli.c:4031,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cli.c:4031,1
    - Dst: str2listener
      Src: /src/haproxy/src/cli.c:4039,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:4040,1
    - Dst: bind_find_kw
      Src: /src/haproxy/src/cli.c:4050,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:4053,1
    - Dst: struct bind_kw*::parse
      Src: /src/haproxy/src/cli.c:4058,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:4060,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:4062,1
    - Dst: bind_find_best_kw
      Src: /src/haproxy/src/cli.c:4071,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:4073,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:4076,1
    - Dst: thread_set_pin_grp1
      Src: /src/haproxy/src/cli.c:4087,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:4089,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:4098,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:4099,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:4100,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4103
      start: 4005
    functionDepth: 1
    functionLinenumber: 4005
    functionLinenumberEnd: 4103
    functionName: mworker_cli_master_proxy_new_listener
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - str2listener
    - memprintf
    - list_for_each_entry
    - thread_set_pin_grp1
    - xprt_get
    - struct bind_kw*::parse
    - free
    - bind_find_kw
    - ha_alert
    - bind_conf_alloc
    - bind_find_best_kw
    linkageType: ''
    returnType: struct bind_conf
    signature: struct bind_conf *mworker_cli_master_proxy_new_listener(char *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_alloc_fe
      Src: /src/haproxy/src/cli.c:4119,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:4120,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/cli.c:4125,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cli.c:4125,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:4133,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:4134,1
    - Dst: str2listener
      Src: /src/haproxy/src/cli.c:4138,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:4139,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:4140,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:4143,1
    - Dst: thread_set_pin_grp1
      Src: /src/haproxy/src/cli.c:4150,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:4152,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/cli.c:4153,1
    - Dst: close
      Src: /src/haproxy/src/cli.c:4162,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:4163,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 1
    argNames:
    - proc
    argTypes:
    - struct mworker_proc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4166
      start: 4110
    functionDepth: 2
    functionLinenumber: 4110
    functionLinenumberEnd: 4166
    functionName: mworker_cli_global_proxy_new_listener
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - str2listener
    - memprintf
    - list_for_each_entry
    - ha_free
    - thread_set_pin_grp1
    - xprt_get
    - free
    - ha_alert
    - bind_conf_alloc
    - HA_ATOMIC_INC
    - close
    - cli_alloc_fe
    linkageType: ''
    returnType: int
    signature: int mworker_cli_global_proxy_new_listener(struct mworker_proc *proc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/cli.c:4172,1
    - Dst: b_xfer
      Src: /src/haproxy/src/cli.c:4176,1
    - Dst: MIN
      Src: /src/haproxy/src/cli.c:4176,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:4176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - appctx
    - buf
    - count
    - flags
    argTypes:
    - struct appctx*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4177
      start: 4168
    functionDepth: 1
    functionLinenumber: 4168
    functionLinenumberEnd: 4177
    functionName: cli_raw_rcv_buf
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - applet_have_no_more_data
    - b_xfer
    - b_data
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t cli_raw_rcv_buf(struct appctx *appctx, struct buffer *buf, size_t
      count, unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/haproxy/src/cfgcond.c:44,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgcond.c:47,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgcond.c:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: cfg_lookup_cond_pred
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - strcspn
    - strncmp
    - strlen
    linkageType: ''
    returnType: struct cond_pred_kw
    signature: struct cond_pred_kw *cfg_lookup_cond_pred(const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cfg_free_cond_expr
      Src: /src/haproxy/src/cfgcond.c:63,1
    - Dst: free_args
      Src: /src/haproxy/src/cfgcond.c:67,1
    - Dst: free
      Src: /src/haproxy/src/cfgcond.c:68,1
    - Dst: free
      Src: /src/haproxy/src/cfgcond.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - term
    argTypes:
    - struct cfg_cond_term*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: cfg_free_cond_term
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - free
    - free_args
    - cfg_free_cond_expr
    linkageType: ''
    returnType: void
    signature: void cfg_free_cond_term(struct cfg_cond_term *term)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/cfgcond.c:103,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:105,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgcond.c:119,1
    - Dst: cfg_parse_cond_expr
      Src: /src/haproxy/src/cfgcond.c:134,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:144,1
    - Dst: cfg_lookup_cond_pred
      Src: /src/haproxy/src/cfgcond.c:155,1
    - Dst: make_arg_list
      Src: /src/haproxy/src/cfgcond.c:158,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgcond.c:158,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:162,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:172,1
    - Dst: cfg_free_cond_term
      Src: /src/haproxy/src/cfgcond.c:177,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 82
    argCount: 5
    argNames:
    - text
    - term
    - err
    - errptr
    - maxdepth
    argTypes:
    - char**
    - struct cfg_cond_term**
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 180
    functionName: cfg_parse_cond_term
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cfg_lookup_cond_pred
    - make_arg_list
    - cfg_parse_cond_expr
    - calloc
    - cfg_free_cond_term
    - strtol
    - strlen
    linkageType: ''
    returnType: int
    signature: int cfg_parse_cond_term(const char **text, struct cfg_cond_term **term,
      char **err, const char **errptr, int maxdepth)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:188,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:190,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:192,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:194,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:196,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:198,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:200,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:202,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:204,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 207
    functionName: cfg_eval_cond_enabled
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cfg_eval_cond_enabled(const char *str)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/haproxy/src/cfgcond.c:228,1
    - Dst: strstr
      Src: /src/haproxy/src/cfgcond.c:235,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:253,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:257,1
    - Dst: strstr
      Src: /src/haproxy/src/cfgcond.c:261,1
    - Dst: compare_current_version
      Src: /src/haproxy/src/cfgcond.c:265,1
    - Dst: compare_current_version
      Src: /src/haproxy/src/cfgcond.c:269,1
    - Dst: openssl_compare_current_version
      Src: /src/haproxy/src/cfgcond.c:273,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:276,1
    - Dst: openssl_compare_current_version
      Src: /src/haproxy/src/cfgcond.c:284,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:287,1
    - Dst: awslc_compare_current_api
      Src: /src/haproxy/src/cfgcond.c:295,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:298,1
    - Dst: awslc_compare_current_api
      Src: /src/haproxy/src/cfgcond.c:306,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:309,1
    - Dst: openssl_compare_current_name
      Src: /src/haproxy/src/cfgcond.c:317,1
    - Dst: cfg_eval_cond_enabled
      Src: /src/haproxy/src/cfgcond.c:321,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:325,1
    - Dst: cfg_eval_cond_expr
      Src: /src/haproxy/src/cfgcond.c:330,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:333,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 94
    argCount: 2
    argNames:
    - term
    - err
    argTypes:
    - struct cfg_cond_term*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 339
    functionName: cfg_eval_cond_term
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cfg_eval_cond_enabled
    - compare_current_version
    - strcmp
    - openssl_compare_current_version
    - cfg_eval_cond_expr
    - getenv
    - openssl_compare_current_name
    - strstr
    - awslc_compare_current_api
    linkageType: ''
    returnType: int
    signature: int cfg_eval_cond_term(const struct cfg_cond_term *term, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfg_free_cond_term
      Src: /src/haproxy/src/cfgcond.c:348,1
    - Dst: free
      Src: /src/haproxy/src/cfgcond.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct cfg_cond_and*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 353
    functionName: cfg_free_cond_and
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - cfg_free_cond_term
    - free
    linkageType: ''
    returnType: void
    signature: void cfg_free_cond_and(struct cfg_cond_and *expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfg_free_cond_and
      Src: /src/haproxy/src/cfgcond.c:361,1
    - Dst: free
      Src: /src/haproxy/src/cfgcond.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct cfg_cond_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 366
    functionName: cfg_free_cond_expr
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 1
    functionsReached:
    - cfg_free_cond_and
    - free
    linkageType: ''
    returnType: void
    signature: void cfg_free_cond_expr(struct cfg_cond_expr *expr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:390,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgcond.c:396,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:398,1
    - Dst: cfg_parse_cond_term
      Src: /src/haproxy/src/cfgcond.c:402,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:408,1
    - Dst: cfg_parse_cond_and
      Src: /src/haproxy/src/cfgcond.c:430,1
    - Dst: cfg_free_cond_and
      Src: /src/haproxy/src/cfgcond.c:435,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 5
    argNames:
    - text
    - expr
    - err
    - errptr
    - maxdepth
    argTypes:
    - char**
    - struct cfg_cond_and**
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 439
    functionName: cfg_parse_cond_and
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 1
    functionsReached:
    - memprintf
    - calloc
    - cfg_parse_cond_and
    - cfg_free_cond_and
    - cfg_parse_cond_term
    linkageType: ''
    returnType: int
    signature: int cfg_parse_cond_and(const char **text, struct cfg_cond_and **expr,
      char **err, const char **errptr, int maxdepth)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:463,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgcond.c:469,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:471,1
    - Dst: cfg_parse_cond_and
      Src: /src/haproxy/src/cfgcond.c:475,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:481,1
    - Dst: cfg_parse_cond_expr
      Src: /src/haproxy/src/cfgcond.c:503,1
    - Dst: cfg_free_cond_expr
      Src: /src/haproxy/src/cfgcond.c:508,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 5
    argNames:
    - text
    - expr
    - err
    - errptr
    - maxdepth
    argTypes:
    - char**
    - struct cfg_cond_expr**
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 512
    functionName: cfg_parse_cond_expr
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 2
    functionsReached:
    - memprintf
    - cfg_parse_cond_expr
    - calloc
    - cfg_parse_cond_and
    - cfg_free_cond_expr
    linkageType: ''
    returnType: int
    signature: int cfg_parse_cond_expr(const char **text, struct cfg_cond_expr **expr,
      char **err, const char **errptr, int maxdepth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfg_eval_cond_term
      Src: /src/haproxy/src/cfgcond.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - expr
    - err
    argTypes:
    - struct cfg_cond_and*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 529
    functionName: cfg_eval_cond_and
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - cfg_eval_cond_term
    linkageType: ''
    returnType: int
    signature: int cfg_eval_cond_and(struct cfg_cond_and *expr, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfg_eval_cond_and
      Src: /src/haproxy/src/cfgcond.c:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - expr
    - err
    argTypes:
    - struct cfg_cond_expr*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 544
    functionName: cfg_eval_cond_expr
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 1
    functionsReached:
    - cfg_eval_cond_and
    linkageType: ''
    returnType: int
    signature: int cfg_eval_cond_expr(struct cfg_cond_expr *expr, char **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cfg_parse_cond_expr
      Src: /src/haproxy/src/cfgcond.c:560,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:569,1
    - Dst: cfg_eval_cond_expr
      Src: /src/haproxy/src/cfgcond.c:574,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:582,1
    - Dst: cfg_free_cond_expr
      Src: /src/haproxy/src/cfgcond.c:587,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - args
    - err
    - errptr
    argTypes:
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 551
    functionDepth: 5
    functionLinenumber: 551
    functionLinenumberEnd: 589
    functionName: cfg_eval_condition
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - cfg_parse_cond_expr
    - cfg_eval_cond_expr
    - memprintf
    - cfg_free_cond_expr
    linkageType: ''
    returnType: int
    signature: int cfg_eval_condition(char **args, char **err, const char **errptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: WILL_LJMP
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WILL_LJMP(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: MAY_LJMP
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAY_LJMP(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: hlua_panic_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlua_panic_safe(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:171,1
    - Dst: longjmp
      Src: /src/haproxy/src/hlua.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: hlua_panic_ljmp
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - WILL_LJMP
    - longjmp
    linkageType: ''
    returnType: int
    signature: int hlua_panic_ljmp(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: lua_take_global_lock
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: void
    signature: void lua_take_global_lock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: lua_drop_global_lock
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void lua_drop_global_lock()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_take_global_lock
      Src: /src/haproxy/src/hlua.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: hlua_lock
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_take_global_lock
    linkageType: ''
    returnType: void
    signature: void hlua_lock(struct hlua *hlua)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua.c:226,1
    - Dst: lua_drop_global_lock
      Src: /src/haproxy/src/hlua.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 231
    functionName: hlua_unlock
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_drop_global_lock
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void hlua_unlock(struct hlua *hlua)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:244,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:245,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: _hlua_tostring_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - lua_tostring
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP _hlua_tostring_safe(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:255,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:261,1
    - Dst: lua_pushcfunction
      Src: /src/haproxy/src/hlua.c:266,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:267,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:268,1
    - Dst: lua_remove
      Src: /src/haproxy/src/hlua.c:270,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:275,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - L
    - index
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 284
    functionName: hlua_tostring_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushlightuserdata
    - lua_pcall
    - lua_pop
    - lua_pushvalue
    - lua_checkstack
    - lua_pushcfunction
    - lua_remove
    linkageType: ''
    returnType: char
    signature: char *hlua_tostring_safe(lua_State *L, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:298,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:299,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:300,1
    - Dst: lua_pushvfstring
      Src: /src/haproxy/src/hlua.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: _hlua_pushvfstring_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - lua_pushvfstring
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP _hlua_pushvfstring_safe(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:310,1
    - Dst: va_copy
      Src: /src/haproxy/src/hlua.c:313,1
    - Dst: lua_pushcfunction
      Src: /src/haproxy/src/hlua.c:318,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:319,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:320,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:321,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:326,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:331,1
    - Dst: va_end
      Src: /src/haproxy/src/hlua.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - L
    - fmt
    - argp
    argTypes:
    - lua_State*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 337
    functionName: hlua_pushvfstring_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushlightuserdata
    - va_copy
    - lua_pcall
    - va_end
    - lua_pop
    - lua_checkstack
    - lua_pushcfunction
    linkageType: ''
    returnType: char
    signature: char *hlua_pushvfstring_safe(lua_State *L, const char *fmt, va_list
      argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/hlua.c:344,1
    - Dst: hlua_pushvfstring_safe
      Src: /src/haproxy/src/hlua.c:345,1
    - Dst: va_end
      Src: /src/haproxy/src/hlua.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - L
    - fmt
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 349
    functionName: hlua_pushfstring_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - hlua_pushvfstring_safe
    linkageType: ''
    returnType: char
    signature: char *hlua_pushfstring_safe(lua_State *L, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - __L
    - ','
    - __HLUA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: SET_SAFE_LJMP_L
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SAFE_LJMP_L(__L, __HLUA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - __L
    - ','
    - __HLUA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: RESET_SAFE_LJMP_L
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESET_SAFE_LJMP_L(__L, __HLUA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __HLUA
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: SET_SAFE_LJMP
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SAFE_LJMP(__HLUA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __HLUA
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 380
    functionName: RESET_SAFE_LJMP
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESET_SAFE_LJMP(__HLUA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __HLUA
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: SET_SAFE_LJMP_PARENT
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SAFE_LJMP_PARENT(__HLUA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __HLUA
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: RESET_SAFE_LJMP_PARENT
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESET_SAFE_LJMP_PARENT(__HLUA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: now_cpu_time_fast
      Src: /src/haproxy/src/hlua.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 571
    functionName: _hlua_time_ms
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - now_cpu_time_fast
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _hlua_time_ms()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hlua_time_ms
      Src: /src/haproxy/src/hlua.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct hlua_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 584
    functionName: _hlua_time_burst
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - _hlua_time_ms
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _hlua_time_burst(const struct hlua_timer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - timer
    - max
    argTypes:
    - struct hlua_timer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: hlua_timer_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hlua_timer_init(struct hlua_timer *timer, unsigned int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct hlua_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 598
    functionName: hlua_timer_reset
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hlua_timer_reset(struct hlua_timer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hlua_time_ms
      Src: /src/haproxy/src/hlua.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct hlua_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 604
    functionName: hlua_timer_start
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - _hlua_time_ms
    linkageType: ''
    returnType: void
    signature: void hlua_timer_start(struct hlua_timer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hlua_time_burst
      Src: /src/haproxy/src/hlua.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct hlua_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: hlua_timer_stop
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - _hlua_time_burst
    linkageType: ''
    returnType: void
    signature: void hlua_timer_stop(struct hlua_timer *timer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _hlua_time_burst
      Src: /src/haproxy/src/hlua.c:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct hlua_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 630
    functionName: hlua_timer_check
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - _hlua_time_burst
    linkageType: ''
    returnType: int
    signature: int hlua_timer_check(const struct hlua_timer *timer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua.c:683,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 698
    functionName: hlua_get_nb_instruction
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAX
    - BUG_ON
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hlua_get_nb_instruction(struct hlua *hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - __be
    - ','
    - __fmt
    - ','
    - __args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 758
    functionName: SEND_ERR
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEND_ERR(__be, __fmt, __args...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:764,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua.c:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 771
    functionName: new_hlua_function
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - calloc
    - LIST_APPEND
    linkageType: ''
    returnType: struct hlua_function
    signature: struct hlua_function *new_hlua_function()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:778,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/hlua.c:779,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fcn
    argTypes:
    - struct hlua_function*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 781
    functionName: release_hlua_function
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - ha_free
    - LIST_DELETE
    linkageType: ''
    returnType: void
    signature: void release_hlua_function(struct hlua_function *fcn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fcn
    argTypes:
    - struct hlua_function*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 789
    functionName: fcn_ref_to_stack_id
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fcn_ref_to_stack_id(struct hlua_function *fcn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:797,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:800,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:802,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 811
    functionName: new_hlua_reg_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - calloc
    - free
    - strdup
    linkageType: ''
    returnType: struct hlua_reg_filter
    signature: struct hlua_reg_filter *new_hlua_reg_filter(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:819,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/hlua.c:820,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - reg_flt
    argTypes:
    - struct hlua_reg_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 822
    functionName: release_hlua_reg_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - ha_free
    - LIST_DELETE
    linkageType: ''
    returnType: void
    signature: void release_hlua_reg_filter(struct hlua_reg_filter *reg_flt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - reg_flt
    argTypes:
    - struct hlua_reg_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: reg_flt_to_stack_id
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int reg_flt_to_stack_id(struct hlua_reg_filter *reg_flt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_isfunction
      Src: /src/haproxy/src/hlua.c:839,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:840,1
    - Dst: luaL_typename
      Src: /src/haproxy/src/hlua.c:840,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:841,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:841,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:843,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - L
    - argno
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 845
    functionName: hlua_checkfunction
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_typename
    - lua_pushvalue
    - luaL_argerror
    - lua_pushfstring
    - luaL_ref
    - WILL_LJMP
    - lua_isfunction
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_checkfunction(lua_State *L, int argno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:854,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:855,1
    - Dst: luaL_typename
      Src: /src/haproxy/src/hlua.c:855,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:856,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:856,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:858,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - L
    - argno
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 860
    functionName: hlua_checktable
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_typename
    - lua_pushvalue
    - luaL_argerror
    - lua_pushfstring
    - luaL_ref
    - WILL_LJMP
    - lua_istable
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_checktable(lua_State *L, int argno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:870,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 871
    functionName: hlua_ref
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_ref
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_ref(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ref
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 886
    functionName: hlua_pushref
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_rawgeti
    linkageType: ''
    returnType: void
    signature: void hlua_pushref(lua_State *L, int ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ref
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 900
    functionName: hlua_unref
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_unref
    linkageType: ''
    returnType: void
    signature: void hlua_unref(lua_State *L, int ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:904,1
    - Dst: lua_getinfo
      Src: /src/haproxy/src/hlua.c:913,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:915,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 917
    functionName: _hlua_traceback
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - WILL_LJMP
    - lua_getinfo
    - luaL_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP _hlua_traceback(lua_State *L)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:925,1
    - Dst: lua_getstack
      Src: /src/haproxy/src/hlua.c:927,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:928,1
    - Dst: lua_pushcfunction
      Src: /src/haproxy/src/hlua.c:931,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:932,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:935,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:939,1
    - Dst: b_data
      Src: /src/haproxy/src/hlua.c:948,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:949,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:953,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:955,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:965,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:968,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:971,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:974,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:979,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 2
    argNames:
    - L
    - sep
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 984
    functionName: hlua_traceback
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushlightuserdata
    - lua_pcall
    - lua_pop
    - chunk_appendf
    - get_trash_chunk
    - lua_checkstack
    - lua_pushcfunction
    - b_data
    - lua_getstack
    linkageType: ''
    returnType: char
    signature: char *hlua_traceback(lua_State *L, const char* sep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:993,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:995,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - L
    - nb
    - fcn
    argTypes:
    - lua_State*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 996
    functionName: check_args
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - WILL_LJMP
    - lua_gettop
    - luaL_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP check_args(lua_State *L, int nb, char *fcn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:1005,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:1006,1
    - Dst: luaL_where
      Src: /src/haproxy/src/hlua.c:1008,1
    - Dst: lua_pushvfstring
      Src: /src/haproxy/src/hlua.c:1009,1
    - Dst: lua_concat
      Src: /src/haproxy/src/hlua.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1013
    functionName: _hlua_pusherror
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - luaL_where
    - lua_concat
    - lua_pushvfstring
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP _hlua_pusherror(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:1019,1
    - Dst: va_start
      Src: /src/haproxy/src/hlua.c:1022,1
    - Dst: lua_pushcfunction
      Src: /src/haproxy/src/hlua.c:1027,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:1028,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:1029,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:1034,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:1038,1
    - Dst: va_end
      Src: /src/haproxy/src/hlua.c:1042,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - L
    - fmt
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1045
    functionName: hlua_pusherror
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushlightuserdata
    - lua_pcall
    - va_end
    - lua_pop
    - va_start
    - lua_checkstack
    - lua_pushcfunction
    linkageType: ''
    returnType: int
    signature: int hlua_pusherror(lua_State *L, const char *fmt, ...)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:1060,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1064,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:1078,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - L
    - arg
    argTypes:
    - lua_State*
    - struct arg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1082
    functionName: hlua_arg2lua
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - lua_pushlstring
    - lua_pushnil
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_arg2lua(lua_State *L, const struct arg *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:1106,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:1111,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:1116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - L
    - ud
    - arg
    argTypes:
    - lua_State*
    - int
    - struct arg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1133
    functionName: hlua_lua2arg
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_type
    - lua_tolstring
    - lua_tointeger
    linkageType: ''
    returnType: int
    signature: int hlua_lua2arg(lua_State *L, int ud, struct arg *arg)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:1143,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:1147,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:1149,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1154,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1159,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1160,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1161,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1162,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1163,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1164,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1165,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1166,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1168,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:1171,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1181,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:1183,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:1186,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 2
    argNames:
    - L
    - smp
    argTypes:
    - lua_State*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1190
    functionName: hlua_smp2lua
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - lua_pushstring
    - lua_pushboolean
    - lua_pushnil
    - lua_pushinteger
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_smp2lua(lua_State *L, struct sample *smp)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1202,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1207,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1208,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1209,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1210,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1211,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1212,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1213,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1214,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1216,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1219,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1231,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1233,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1236,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 2
    argNames:
    - L
    - smp
    argTypes:
    - lua_State*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1240
    functionName: hlua_smp2lua_str
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - lua_pushstring
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_smp2lua_str(lua_State *L, struct sample *smp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:1267,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:1271,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua.c:1277,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:1283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - L
    - ud
    - smp
    argTypes:
    - lua_State*
    - int
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1302
    functionName: hlua_lua2smp
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_toboolean
    - lua_type
    - lua_tolstring
    - lua_tointeger
    linkageType: ''
    returnType: int
    signature: int hlua_lua2smp(lua_State *L, int ud, struct sample *smp)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: ARGM
      Src: /src/haproxy/src/hlua.c:1323,1
    - Dst: proxy_fe_by_name
      Src: /src/haproxy/src/hlua.c:1428,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/hlua.c:1441,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/hlua.c:1454,1
    - Dst: strrchr
      Src: /src/haproxy/src/hlua.c:1467,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/hlua.c:1471,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/hlua.c:1481,1
    - Dst: inet_pton
      Src: /src/haproxy/src/hlua.c:1494,1
    - Dst: len2mask4
      Src: /src/haproxy/src/hlua.c:1503,1
    - Dst: str2mask
      Src: /src/haproxy/src/hlua.c:1505,1
    - Dst: inet_pton
      Src: /src/haproxy/src/hlua.c:1522,1
    - Dst: len2mask6
      Src: /src/haproxy/src/hlua.c:1531,1
    - Dst: str2mask6
      Src: /src/haproxy/src/hlua.c:1533,1
    - Dst: regex_comp
      Src: /src/haproxy/src/hlua.c:1550,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:1552,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:1554,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:1567,1
    - Dst: auth_find_userlist
      Src: /src/haproxy/src/hlua.c:1570,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:1573,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/hlua.c:1582,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:1598,1
    - Dst: free_args
      Src: /src/haproxy/src/hlua.c:1612,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:1613,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:1613,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 275
    argCount: 5
    argNames:
    - L
    - first
    - argp
    - mask
    - p
    argTypes:
    - lua_State*
    - int
    - struct arg*
    - uint64_t
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1311
    functionDepth: 2
    functionLinenumber: 1311
    functionLinenumberEnd: 1615
    functionName: hlua_lua2arg_check
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - proxy_fe_by_name
    - luaL_argerror
    - free
    - hlua_pushfstring_safe
    - inet_pton
    - strcmp
    - stktable_find_by_name
    - auth_find_userlist
    - str2mask
    - len2mask6
    - WILL_LJMP
    - regex_comp
    - strrchr
    - ARGM
    - len2mask4
    - chunk_dup
    - str2mask6
    - free_args
    - server_find_by_name
    - proxy_be_by_name
    linkageType: ''
    returnType: __LJMP
    signature: "__LJMP hlua_lua2arg_check(lua_State *L, int first, struct arg *argp,\n
      \                             uint64_t mask, struct proxy *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_getextraspace
      Src: /src/haproxy/src/hlua.c:1626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1624
    functionDepth: 0
    functionLinenumber: 1624
    functionLinenumberEnd: 1628
    functionName: hlua_gethlua
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_getextraspace
    linkageType: ''
    returnType: struct hlua
    signature: struct hlua *hlua_gethlua(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_getextraspace
      Src: /src/haproxy/src/hlua.c:1631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1629
    functionDepth: 0
    functionLinenumber: 1629
    functionLinenumberEnd: 1633
    functionName: hlua_sethlua
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_getextraspace
    linkageType: ''
    returnType: void
    signature: void hlua_sethlua(struct hlua *hlua)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_getstack
      Src: /src/haproxy/src/hlua.c:1646,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:1647,1
    - Dst: lua_getstack
      Src: /src/haproxy/src/hlua.c:1650,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:1651,1
    - Dst: lua_getstack
      Src: /src/haproxy/src/hlua.c:1654,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:1655,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 1
    argNames:
    - pfx
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1640
    functionDepth: 3
    functionLinenumber: 1640
    functionLinenumberEnd: 1658
    functionName: hlua_show_current_location
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_getstack
    - hlua_traceback
    linkageType: ''
    returnType: char
    signature: char *hlua_show_current_location(const char *pfx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: isprint
      Src: /src/haproxy/src/hlua.c:1680,1
    - Dst: send_log
      Src: /src/haproxy/src/hlua.c:1688,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/hlua.c:1701,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/hlua.c:1705,1
    - Dst: get_localtime
      Src: /src/haproxy/src/hlua.c:1712,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:1713,1
    - Dst: getpid
      Src: /src/haproxy/src/hlua.c:1715,1
    - Dst: fflush
      Src: /src/haproxy/src/hlua.c:1716,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 3
    argNames:
    - px
    - level
    - msg
    argTypes:
    - struct proxy*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1718
    functionName: hlua_sendlog
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - getpid
    - fflush
    - get_localtime
    - isprint
    - LIST_ISEMPTY
    - fprintf
    - send_log
    linkageType: ''
    returnType: void
    signature: void hlua_sendlog(struct proxy *px, int level, const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:1730,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:1743,1
    - Dst: lua_yieldk
      Src: /src/haproxy/src/hlua.c:1743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - L
    - nresults
    - ctx
    - k
    - timeout
    - flags
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    - lua_KFunction
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1724
    functionDepth: 1
    functionLinenumber: 1724
    functionLinenumberEnd: 1744
    functionName: hlua_yieldk
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_yieldk
    - hlua_gethlua
    linkageType: ''
    returnType: __LJMP
    signature: "__LJMP hlua_yieldk(lua_State *L, int nresults, lua_KContext ctx,\n
      \                       lua_KFunction k, int timeout, unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:1766,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/hlua.c:1767,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/hlua.c:1768,1
    - Dst: SET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1769,1
    - Dst: lua_newthread
      Src: /src/haproxy/src/hlua.c:1773,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1776,1
    - Dst: hlua_sethlua
      Src: /src/haproxy/src/hlua.c:1779,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:1780,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - lua
    - state_id
    - task
    argTypes:
    - struct hlua*
    - int
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1759
    functionDepth: 1
    functionLinenumber: 1759
    functionLinenumberEnd: 1784
    functionName: hlua_ctx_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_ref
    - hlua_timer_init
    - MT_LIST_INIT
    - RESET_SAFE_LJMP_PARENT
    - hlua_sethlua
    - LIST_INIT
    - SET_SAFE_LJMP_PARENT
    - lua_newthread
    linkageType: ''
    returnType: int
    signature: int hlua_ctx_init(struct hlua *lua, int state_id, struct task *task)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/hlua.c:1807,1
    - Dst: typeof
      Src: /src/haproxy/src/hlua.c:1807,1
    - Dst: httpclient_stop_and_destroy
      Src: /src/haproxy/src/hlua.c:1808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1790
    functionDepth: 1
    functionLinenumber: 1790
    functionLinenumberEnd: 1811
    functionName: hlua_httpclient_destroy_all
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - typeof
    - MT_LIST_POP
    - httpclient_stop_and_destroy
    linkageType: ''
    returnType: void
    signature: void hlua_httpclient_destroy_all(struct hlua *hlua)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hlua_httpclient_destroy_all
      Src: /src/haproxy/src/hlua.c:1827,1
    - Dst: notification_purge
      Src: /src/haproxy/src/hlua.c:1830,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:1832,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:1834,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:1835,1
    - Dst: SET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1837,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:1839,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1840,1
    - Dst: SET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1851,1
    - Dst: lua_gc
      Src: /src/haproxy/src/hlua.c:1853,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1854,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:1860,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - lua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1818
    functionDepth: 2
    functionLinenumber: 1818
    functionLinenumberEnd: 1861
    functionName: hlua_ctx_destroy
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_unref
    - hlua_httpclient_destroy_all
    - SET_SAFE_LJMP_PARENT
    - lua_gc
    - RESET_SAFE_LJMP_PARENT
    - RESET_SAFE_LJMP
    - notification_purge
    - SET_SAFE_LJMP
    - pool_free
    linkageType: ''
    returnType: void
    signature: void hlua_ctx_destroy(struct hlua *lua)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1875,1
    - Dst: lua_newthread
      Src: /src/haproxy/src/hlua.c:1879,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1881,1
    - Dst: lua_xmove
      Src: /src/haproxy/src/hlua.c:1887,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:1890,1
    - Dst: lua_xmove
      Src: /src/haproxy/src/hlua.c:1891,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:1892,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:1895,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:1898,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:1903,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1905,1
    - Dst: hlua_sethlua
      Src: /src/haproxy/src/hlua.c:1908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - lua
    - keep_msg
    argTypes:
    - struct hlua*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1870
    functionDepth: 1
    functionLinenumber: 1870
    functionLinenumberEnd: 1911
    functionName: hlua_ctx_renew
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_xmove
    - luaL_unref
    - lua_rawgeti
    - SET_SAFE_LJMP_PARENT
    - luaL_ref
    - RESET_SAFE_LJMP_PARENT
    - hlua_sethlua
    - lua_newthread
    linkageType: ''
    returnType: int
    signature: int hlua_ctx_renew(struct hlua *lua, int keep_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - state_id
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1920
    functionName: hlua_stream_ctx_get
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct hlua
    signature: struct hlua *hlua_stream_ctx_get(struct stream *s, int state_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:1939,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:1942,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:1943,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:1944,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - state_id
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1929
    functionDepth: 2
    functionLinenumber: 1929
    functionLinenumberEnd: 1950
    functionName: hlua_stream_ctx_prepare
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_ctx_init
    - HLUA_INIT
    - pool_alloc
    - pool_free
    linkageType: ''
    returnType: struct hlua
    signature: struct hlua *hlua_stream_ctx_prepare(struct stream *s, int state_id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:1958,1
    - Dst: lua_gethookmask
      Src: /src/haproxy/src/hlua.c:1978,1
    - Dst: lua_sethook
      Src: /src/haproxy/src/hlua.c:1979,1
    - Dst: lua_isyieldable
      Src: /src/haproxy/src/hlua.c:1986,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:1993,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:1993,1
    - Dst: hlua_timer_check
      Src: /src/haproxy/src/hlua.c:2010,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:2013,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:2015,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2016,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:2016,1
    - Dst: lua_sethook
      Src: /src/haproxy/src/hlua.c:2022,1
    - Dst: hlua_get_nb_instruction
      Src: /src/haproxy/src/hlua.c:2022,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - L
    - ar
    argTypes:
    - lua_State*
    - lua_Debug*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1952
    functionDepth: 4
    functionLinenumber: 1952
    functionLinenumberEnd: 2023
    functionName: hlua_hook
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_get_nb_instruction
    - hlua_gethlua
    - hlua_timer_check
    - lua_gethookmask
    - WILL_LJMP
    - lua_sethook
    - lua_pushfstring
    - hlua_yieldk
    - lua_isyieldable
    linkageType: ''
    returnType: void
    signature: void hlua_hook(lua_State *L, lua_Debug *ar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:2031,1
    - Dst: lua_sethook
      Src: /src/haproxy/src/hlua.c:2036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2026
    functionDepth: 1
    functionLinenumber: 2026
    functionLinenumberEnd: 2037
    functionName: hlua_yield_asap
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_sethook
    - hlua_gethlua
    linkageType: ''
    returnType: void
    signature: void hlua_yield_asap(lua_State *L)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:2066,1
    - Dst: hlua_timer_reset
      Src: /src/haproxy/src/hlua.c:2072,1
    - Dst: lua_sethook
      Src: /src/haproxy/src/hlua.c:2079,1
    - Dst: hlua_get_nb_instruction
      Src: /src/haproxy/src/hlua.c:2079,1
    - Dst: HLUA_SET_RUN
      Src: /src/haproxy/src/hlua.c:2082,1
    - Dst: HLUA_CLR_CTRLYIELD
      Src: /src/haproxy/src/hlua.c:2083,1
    - Dst: HLUA_CLR_WAKERESWR
      Src: /src/haproxy/src/hlua.c:2084,1
    - Dst: HLUA_CLR_WAKEREQWR
      Src: /src/haproxy/src/hlua.c:2085,1
    - Dst: HLUA_CLR_NOYIELD
      Src: /src/haproxy/src/hlua.c:2086,1
    - Dst: HLUA_SET_NOYIELD
      Src: /src/haproxy/src/hlua.c:2088,1
    - Dst: hlua_timer_start
      Src: /src/haproxy/src/hlua.c:2094,1
    - Dst: HLUA_SET_BUSY
      Src: /src/haproxy/src/hlua.c:2096,1
    - Dst: lua_resume
      Src: /src/haproxy/src/hlua.c:2100,1
    - Dst: lua_resume
      Src: /src/haproxy/src/hlua.c:2102,1
    - Dst: HLUA_CLR_BUSY
      Src: /src/haproxy/src/hlua.c:2105,1
    - Dst: hlua_timer_stop
      Src: /src/haproxy/src/hlua.c:2108,1
    - Dst: hlua_timer_check
      Src: /src/haproxy/src/hlua.c:2131,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2137,1
    - Dst: HLUA_IS_CTRLYIELDING
      Src: /src/haproxy/src/hlua.c:2147,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:2150,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2153,1
    - Dst: hlua_ctx_renew
      Src: /src/haproxy/src/hlua.c:2168,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:2173,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:2177,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:2178,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:2180,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:2183,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:2187,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2188,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2194,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:2200,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:2204,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:2206,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:2209,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:2213,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2214,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2220,1
    - Dst: notification_purge
      Src: /src/haproxy/src/hlua.c:2230,1
    - Dst: hlua_ctx_renew
      Src: /src/haproxy/src/hlua.c:2231,1
    - Dst: HLUA_CLR_RUN
      Src: /src/haproxy/src/hlua.c:2232,1
    - Dst: HLUA_CLR_RUN
      Src: /src/haproxy/src/hlua.c:2240,1
    - Dst: notification_purge
      Src: /src/haproxy/src/hlua.c:2241,1
    - Dst: hlua_ctx_renew
      Src: /src/haproxy/src/hlua.c:2242,1
    - Dst: HLUA_CLR_RUN
      Src: /src/haproxy/src/hlua.c:2246,1
    - Dst: notification_purge
      Src: /src/haproxy/src/hlua.c:2247,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:2252,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 117
    argCount: 2
    argNames:
    - lua
    - yield_allowed
    argTypes:
    - struct hlua*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2054
    functionDepth: 4
    functionLinenumber: 2054
    functionLinenumberEnd: 2255
    functionName: hlua_ctx_resume
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - HLUA_SET_NOYIELD
    - HLUA_SET_RUN
    - hlua_get_nb_instruction
    - HLUA_CLR_WAKERESWR
    - lua_settop
    - lua_insert
    - hlua_pushfstring_safe
    - lua_sethook
    - hlua_traceback
    - hlua_timer_stop
    - HLUA_CLR_RUN
    - HLUA_IS_CTRLYIELDING
    - hlua_lock
    - HLUA_SET_BUSY
    - hlua_timer_reset
    - hlua_tostring_safe
    - hlua_timer_start
    - HLUA_CLR_BUSY
    - hlua_timer_check
    - hlua_unlock
    - lua_checkstack
    - HLUA_CLR_NOYIELD
    - task_wakeup
    - hlua_ctx_renew
    - HLUA_CLR_CTRLYIELD
    - HLUA_CLR_WAKEREQWR
    - notification_purge
    - lua_resume
    linkageType: ''
    returnType: enum hlua_exec
    signature: enum hlua_exec hlua_ctx_resume(struct hlua *lua, int yield_allowed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:2263,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2268,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:2268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2258
    functionDepth: 1
    functionLinenumber: 2258
    functionLinenumberEnd: 2271
    functionName: hlua_done
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_error
    - WILL_LJMP
    - hlua_gethlua
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_done(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2282,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2282,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2284,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2284,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2285,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2285,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/hlua.c:2287,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2289,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2289,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua.c:2291,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/hlua.c:2292,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua.c:2293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2276
    functionDepth: 2
    functionLinenumber: 2276
    functionLinenumberEnd: 2295
    functionName: hlua_del_acl
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_lookup
    - check_args
    - luaL_error
    - pat_ref_delete
    - luaL_checkstring
    - HA_RWLOCK_WRLOCK
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_del_acl(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2306,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2306,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2308,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2308,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2309,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2309,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/hlua.c:2311,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2313,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2313,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua.c:2315,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/hlua.c:2316,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua.c:2317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2300
    functionDepth: 2
    functionLinenumber: 2300
    functionLinenumberEnd: 2319
    functionName: hlua_del_map
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_lookup
    - check_args
    - luaL_error
    - pat_ref_delete
    - luaL_checkstring
    - HA_RWLOCK_WRLOCK
    - WILL_LJMP
    linkageType: ''
    returnType: int
    signature: int hlua_del_map(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2330,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2330,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2332,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2332,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2333,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2333,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/hlua.c:2335,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2337,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2337,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua.c:2339,1
    - Dst: pat_ref_find_elt
      Src: /src/haproxy/src/hlua.c:2340,1
    - Dst: pat_ref_add
      Src: /src/haproxy/src/hlua.c:2341,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua.c:2342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2324
    functionDepth: 2
    functionLinenumber: 2324
    functionLinenumberEnd: 2344
    functionName: hlua_add_acl
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_lookup
    - check_args
    - luaL_error
    - pat_ref_add
    - luaL_checkstring
    - pat_ref_find_elt
    - HA_RWLOCK_WRLOCK
    - WILL_LJMP
    linkageType: ''
    returnType: int
    signature: int hlua_add_acl(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2358,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2358,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2360,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2360,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2361,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2361,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2362,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2362,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/hlua.c:2364,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2366,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2366,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua.c:2368,1
    - Dst: pat_ref_find_elt
      Src: /src/haproxy/src/hlua.c:2369,1
    - Dst: pat_ref_set_elt_duplicate
      Src: /src/haproxy/src/hlua.c:2371,1
    - Dst: pat_ref_add
      Src: /src/haproxy/src/hlua.c:2373,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua.c:2374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2350
    functionDepth: 2
    functionLinenumber: 2350
    functionLinenumberEnd: 2376
    functionName: hlua_set_map
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_lookup
    - check_args
    - luaL_error
    - pat_ref_add
    - luaL_checkstring
    - pat_ref_find_elt
    - pat_ref_set_elt_duplicate
    - HA_RWLOCK_WRLOCK
    - WILL_LJMP
    linkageType: ''
    returnType: int
    signature: int hlua_set_map(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2386,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2386,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2388,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2388,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/hlua.c:2390,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2392,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2392,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2395,1
    - Dst: hlua_fcn_new_patref
      Src: /src/haproxy/src/hlua.c:2395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2381
    functionDepth: 2
    functionLinenumber: 2381
    functionLinenumberEnd: 2398
    functionName: hlua_get_patref
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - pat_ref_lookup
    - check_args
    - hlua_fcn_new_patref
    - luaL_error
    - luaL_checkstring
    - WILL_LJMP
    linkageType: ''
    returnType: int
    signature: int hlua_get_patref(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2409,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2409,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2411,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:2411,1
    - Dst: strncmp
      Src: /src/haproxy/src/hlua.c:2415,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2416,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2416,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:2418,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/src/hlua.c:2419,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:2420,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2424,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:2424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2403
    functionDepth: 4
    functionLinenumber: 2403
    functionLinenumberEnd: 2425
    functionName: hlua_core_get_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - memset
    - check_args
    - luaL_error
    - strncmp
    - lua_pushnil
    - hlua_smp2lua
    - WILL_LJMP
    - vars_get_by_name
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_core_get_var(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2435,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2432
    functionDepth: 1
    functionLinenumber: 2432
    functionLinenumberEnd: 2439
    functionName: hlua_use_native_mailers_config
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - WILL_LJMP
    - luaL_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_use_native_mailers_config(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2545,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:2545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2543
    functionDepth: 1
    functionLinenumber: 2543
    functionLinenumberEnd: 2546
    functionName: hlua_checkmap
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkudata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP *hlua_checkmap(lua_State *L, int ud)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:2564,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:2564,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2565,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2565,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2567,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2567,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:2569,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2570,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:2570,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2572,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2572,1
    - Dst: lua_getstack
      Src: /src/haproxy/src/hlua.c:2576,1
    - Dst: lua_getinfo
      Src: /src/haproxy/src/hlua.c:2577,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2602,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2602,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:2607,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:2608,1
    - Dst: sample_load_map
      Src: /src/haproxy/src/hlua.c:2613,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:2617,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:2618,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/hlua.c:2619,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2620,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:2620,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:2624,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:2625,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:2626,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:2629,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:2630,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2553
    functionDepth: 1
    functionLinenumber: 2553
    functionLinenumberEnd: 2634
    functionName: hlua_map_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_error
    - free
    - hlua_pusherror
    - lua_setmetatable
    - chunk_destroy
    - lua_getstack
    - lua_rawseti
    - lua_rawgeti
    - sample_load_map
    - lua_error
    - WILL_LJMP
    - luaL_checkstring
    - lua_newtable
    - lua_getinfo
    - strdup
    - lua_pushlightuserdata
    - luaL_checkinteger
    - lua_gettop
    - strlen
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_map_new(struct lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2642,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2642,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2643,1
    - Dst: hlua_checkmap
      Src: /src/haproxy/src/hlua.c:2643,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2646,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:2646,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2651,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:2651,1
    - Dst: pattern_exec_match
      Src: /src/haproxy/src/hlua.c:2655,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:2658,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:2660,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:2665,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - L
    - str
    argTypes:
    - struct lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2636
    functionDepth: 2
    functionLinenumber: 2636
    functionLinenumberEnd: 2667
    functionName: _hlua_map_lookup
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkmap
    - luaL_checklstring
    - lua_pushlstring
    - check_args
    - lua_pushstring
    - lua_pushnil
    - luaL_checkinteger
    - pattern_exec_match
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP _hlua_map_lookup(struct lua_State *L, int str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hlua_map_lookup
      Src: /src/haproxy/src/hlua.c:2671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2669
    functionDepth: 3
    functionLinenumber: 2669
    functionLinenumberEnd: 2672
    functionName: hlua_map_lookup
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 1
    functionsReached:
    - _hlua_map_lookup
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_map_lookup(struct lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hlua_map_lookup
      Src: /src/haproxy/src/hlua.c:2676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2674
    functionDepth: 3
    functionLinenumber: 2674
    functionLinenumberEnd: 2677
    functionName: hlua_map_slookup
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - _hlua_map_lookup
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_map_slookup(struct lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2689,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:2689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2687
    functionDepth: 1
    functionLinenumber: 2687
    functionLinenumberEnd: 2690
    functionName: hlua_checksocket
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkudata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP *hlua_checksocket(lua_State *L, int ud)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:2700,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/hlua.c:2700,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/hlua.c:2701,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2702,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2703,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/hlua.c:2708,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2709,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2710,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/hlua.c:2715,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2716,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2717,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/hlua.c:2723,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:2724,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:2725,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:2733,1
    - Dst: applet_output_room
      Src: /src/haproxy/src/hlua.c:2733,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2734,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/hlua.c:2737,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/hlua.c:2737,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2738,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/hlua.c:2739,1
    - Dst: notification_registered
      Src: /src/haproxy/src/hlua.c:2745,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:2746,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2696
    functionDepth: 1
    functionLinenumber: 2696
    functionLinenumberEnd: 2747
    functionName: hlua_socket_handler
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - unlikely
    - applet_need_more_data
    - applet_have_more_data
    - applet_fl_test
    - applet_output_room
    - notification_wake
    - applet_input_data
    - applet_wont_consume
    - notification_registered
    - applet_get_outbuf
    - applet_get_inbuf
    - applet_reset_input
    - applet_set_eos
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void hlua_socket_handler(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: appctx_finalize_startup
      Src: /src/haproxy/src/hlua.c:2754,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/hlua.c:2757,1
    - Dst: sc_set_state
      Src: /src/haproxy/src/hlua.c:2763,1
    - Dst: se_need_remote_conn
      Src: /src/haproxy/src/hlua.c:2764,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/hlua.c:2768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2749
    functionDepth: 1
    functionLinenumber: 2749
    functionLinenumberEnd: 2780
    functionName: hlua_socket_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - se_need_remote_conn
    - appctx_finalize_startup
    - stream_set_srv_target
    - sc_set_state
    linkageType: ''
    returnType: int
    signature: int hlua_socket_init(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:2792,1
    - Dst: xref_disconnect
      Src: /src/haproxy/src/hlua.c:2794,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2797,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2786
    functionDepth: 1
    functionLinenumber: 2786
    functionLinenumberEnd: 2799
    functionName: hlua_socket_release
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - xref_disconnect
    - xref_get_peer_and_lock
    - notification_wake
    linkageType: ''
    returnType: void
    signature: void hlua_socket_release(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2813,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2813,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2815,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:2815,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:2816,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:2820,1
    - Dst: xref_disconnect
      Src: /src/haproxy/src/hlua.c:2823,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/hlua.c:2825,1
    - Dst: appctx_free
      Src: /src/haproxy/src/hlua.c:2827,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/hlua.c:2832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2836
      start: 2807
    functionDepth: 2
    functionLinenumber: 2807
    functionLinenumberEnd: 2836
    functionName: hlua_socket_gc
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - appctx_free
    - hlua_checksocket
    - check_args
    - appctx_wakeup
    - container_of
    - xref_disconnect
    - xref_get_peer_and_lock
    - se_fl_test
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_gc(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:2849,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2853,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:2853,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2859,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2859,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:2861,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:2866,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/hlua.c:2870,1
    - Dst: xref_disconnect
      Src: /src/haproxy/src/hlua.c:2873,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2875
      start: 2841
    functionDepth: 2
    functionLinenumber: 2841
    functionLinenumberEnd: 2875
    functionName: hlua_socket_close_helper
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_gethlua
    - hlua_checksocket
    - appctx_wakeup
    - luaL_error
    - container_of
    - xref_disconnect
    - xref_get_peer_and_lock
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_close_helper(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2881,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2881,1
    - Dst: hlua_socket_close_helper
      Src: /src/haproxy/src/hlua.c:2882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2883
      start: 2879
    functionDepth: 3
    functionLinenumber: 2879
    functionLinenumberEnd: 2883
    functionName: hlua_socket_close
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - hlua_socket_close_helper
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_close(lua_State *L)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2898,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:2898,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:2899,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:2915,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2919,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2919,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2926,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2926,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:2929,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:2933,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/hlua.c:2938,1
    - Dst: applet_getline_nc
      Src: /src/haproxy/src/hlua.c:2944,1
    - Dst: applet_getblk_nc
      Src: /src/haproxy/src/hlua.c:2975,1
    - Dst: applet_getblk_nc
      Src: /src/haproxy/src/hlua.c:2984,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:3000,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:3003,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/hlua.c:3007,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:3011,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/hlua.c:3012,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:3023,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3024,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3029,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:3035,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3038,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:3039,1
    - Dst: notification_new
      Src: /src/haproxy/src/hlua.c:3044,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3045,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3046,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3046,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3048,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:3049,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3050,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:3050,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 111
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - struct lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3052
      start: 2896
    functionDepth: 2
    functionLinenumber: 2896
    functionLinenumberEnd: 3052
    functionName: hlua_socket_receive_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - applet_need_more_data
    - hlua_checksocket
    - applet_skip_input
    - luaL_error
    - lua_pushnil
    - applet_getline_nc
    - applet_getblk_nc
    - xref_unlock
    - hlua_gethlua
    - container_of
    - luaL_pushresult
    - luaL_addlstring
    - WILL_LJMP
    - lua_tointeger
    - lua_pushstring
    - notification_new
    - appctx_wakeup
    - xref_get_peer_and_lock
    - applet_get_inbuf
    - applet_will_consume
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_receive_yield(struct lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3078,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3078,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3079,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3079,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3081,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3081,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3087,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3087,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3090,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:3091,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:3093,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:3094,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:3096,1
    - Dst: strtoll
      Src: /src/haproxy/src/hlua.c:3099,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3101,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3101,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:3105,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3107,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3107,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3112,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3115,1
    - Dst: lua_replace
      Src: /src/haproxy/src/hlua.c:3116,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3121,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:3124,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:3128,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3129,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3129,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:3130,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:3131,1
    - Dst: __LJMP
      Src: /src/haproxy/src/hlua.c:3134,1
    - Dst: hlua_socket_receive_yield
      Src: /src/haproxy/src/hlua.c:3134,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3135
      start: 3069
    functionDepth: 3
    functionLinenumber: 3069
    functionLinenumberEnd: 3135
    functionName: hlua_socket_receive
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_tointeger
    - __LJMP
    - hlua_checksocket
    - lua_type
    - strcmp
    - luaL_addlstring
    - hlua_socket_receive_yield
    - luaL_error
    - strtoll
    - lua_tostring
    - lua_gettop
    - lua_pushinteger
    - luaL_buffinit
    - lua_tolstring
    - lua_replace
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_receive(struct lua_State *L)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:3155,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3159,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3159,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3163,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3163,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3164,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:3164,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3165,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3165,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3171,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3171,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3174,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3176,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3180,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3182,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3183,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:3188,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3198,1
    - Dst: applet_output_room
      Src: /src/haproxy/src/hlua.c:3203,1
    - Dst: applet_putblk
      Src: /src/haproxy/src/hlua.c:3210,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3218,1
    - Dst: hlua_socket_close_helper
      Src: /src/haproxy/src/hlua.c:3218,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3219,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3220,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3221,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/hlua.c:3226,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3229,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3230,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3234,1
    - Dst: notification_new
      Src: /src/haproxy/src/hlua.c:3239,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3240,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3241,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3241,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3243,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:3244,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3245,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:3245,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - struct lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3140
    functionDepth: 3
    functionLinenumber: 3140
    functionLinenumberEnd: 3247
    functionName: hlua_socket_write_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checksocket
    - applet_output_room
    - luaL_error
    - xref_unlock
    - luaL_checklstring
    - hlua_gethlua
    - container_of
    - lua_pushinteger
    - WILL_LJMP
    - applet_have_more_data
    - lua_pop
    - hlua_socket_close_helper
    - notification_new
    - applet_putblk
    - appctx_wakeup
    - luaL_checkinteger
    - xref_get_peer_and_lock
    - applet_get_outbuf
    - hlua_yieldk
    linkageType: ''
    returnType: int
    signature: int hlua_socket_write_yield(struct lua_State *L,int status, lua_KContext
      ctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3270,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3270,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3271,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3271,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3274,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:3274,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3277,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3278,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3278,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3283,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3289,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3290,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3290,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3295,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3301,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3305,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3314,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:3319,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3322,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3324,1
    - Dst: hlua_socket_write_yield
      Src: /src/haproxy/src/hlua.c:3324,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3262
    functionDepth: 4
    functionLinenumber: 3262
    functionLinenumberEnd: 3325
    functionName: hlua_socket_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - lua_pushlstring
    - hlua_socket_write_yield
    - lua_pop
    - luaL_error
    - luaL_checkinteger
    - lua_gettop
    - lua_pushinteger
    - WILL_LJMP
    linkageType: ''
    returnType: int
    signature: int hlua_socket_send(struct lua_State *L)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: addr_to_str
      Src: /src/haproxy/src/hlua.c:3335,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3337,1
    - Dst: real_family
      Src: /src/haproxy/src/hlua.c:3341,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:3344,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:3349,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:3358,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3363,1
    - Dst: port_to_str
      Src: /src/haproxy/src/hlua.c:3367,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3368,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:3372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - L
    - addr
    argTypes:
    - struct lua_State*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3374
      start: 3328
    functionDepth: 1
    functionLinenumber: 3328
    functionLinenumberEnd: 3374
    functionName: hlua_socket_info
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - port_to_str
    - lua_pushstring
    - lua_pushnil
    - addr_to_str
    - real_family
    - strlen
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_info(struct lua_State *L, const struct sockaddr_storage
      *addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3387,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:3387,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3389,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3389,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3395,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3395,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3398,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3400,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3404,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3406,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3407,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:3412,1
    - Dst: sc_dst
      Src: /src/haproxy/src/hlua.c:3413,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/hlua.c:3413,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3415,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3416,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3420,1
    - Dst: hlua_socket_info
      Src: /src/haproxy/src/hlua.c:3420,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3423
      start: 3377
    functionDepth: 2
    functionLinenumber: 3377
    functionLinenumberEnd: 3423
    functionName: hlua_socket_getpeername
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - sc_opposite
    - xref_unlock
    - hlua_socket_info
    - hlua_checksocket
    - check_args
    - luaL_error
    - lua_pushnil
    - container_of
    - xref_get_peer_and_lock
    - appctx_sc
    - WILL_LJMP
    - sc_dst
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_getpeername(struct lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3436,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:3436,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3438,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3438,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3444,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3444,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3447,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3449,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3453,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3455,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3456,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/hlua.c:3461,1
    - Dst: sc_conn
      Src: /src/haproxy/src/hlua.c:3463,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/hlua.c:3464,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3465,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3466,1
    - Dst: hlua_socket_info
      Src: /src/haproxy/src/hlua.c:3470,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3471,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3473
      start: 3426
    functionDepth: 2
    functionLinenumber: 3426
    functionLinenumberEnd: 3473
    functionName: hlua_socket_getsockname
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - appctx_strm
    - sc_conn
    - xref_unlock
    - hlua_socket_info
    - hlua_checksocket
    - check_args
    - luaL_error
    - lua_pushnil
    - container_of
    - xref_get_peer_and_lock
    - WILL_LJMP
    - conn_get_src
    linkageType: ''
    returnType: int
    signature: int hlua_socket_getsockname(struct lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3489,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3489,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:3496,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3504,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3504,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3507,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3509,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:3510,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3514,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3521,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3522,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3522,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/hlua.c:3526,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3527,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3528,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:3529,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3535,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3536,1
    - Dst: notification_new
      Src: /src/haproxy/src/hlua.c:3540,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3541,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3542,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3542,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3544,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3545,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:3545,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - struct lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3547
      start: 3487
    functionDepth: 2
    functionLinenumber: 3487
    functionLinenumberEnd: 3547
    functionName: hlua_socket_connect_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - xref_unlock
    - hlua_gethlua
    - hlua_checksocket
    - notification_new
    - lua_pushstring
    - luaL_error
    - lua_pushnil
    - container_of
    - xref_get_peer_and_lock
    - lua_pushinteger
    - WILL_LJMP
    - se_fl_test
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_connect_yield(struct lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:3564,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3568,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3569,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3569,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3572,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3572,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3578,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3578,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3580,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:3580,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3581,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3583,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3583,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:3589,1
    - Dst: luaL_addstring
      Src: /src/haproxy/src/hlua.c:3590,1
    - Dst: luaL_addchar
      Src: /src/haproxy/src/hlua.c:3591,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:3592,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:3593,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3593,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3598,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3600,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3604,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/hlua.c:3609,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3612,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3613,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3613,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3620,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3621,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3621,1
    - Dst: htons
      Src: /src/haproxy/src/hlua.c:3623,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3626,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3627,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3627,1
    - Dst: htons
      Src: /src/haproxy/src/hlua.c:3629,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:3634,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3635,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3636,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3636,1
    - Dst: appctx_init
      Src: /src/haproxy/src/hlua.c:3639,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3640,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3641,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3641,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:3644,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/hlua.c:3646,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/hlua.c:3646,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3647,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3648,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3648,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:3654,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:3655,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/hlua.c:3656,1
    - Dst: notification_new
      Src: /src/haproxy/src/hlua.c:3658,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3659,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3660,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3660,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3662,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3665,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:3665,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 73
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3550
    functionDepth: 2
    functionLinenumber: 3550
    functionLinenumberEnd: 3668
    functionName: hlua_socket_connect
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - applet_need_more_data
    - hlua_checksocket
    - luaL_addstring
    - luaL_error
    - lua_pushnil
    - appctx_sc
    - luaL_buffinit
    - sockaddr_alloc
    - xref_unlock
    - hlua_gethlua
    - container_of
    - luaL_pushresult
    - lua_tolstring
    - str2sa_range
    - WILL_LJMP
    - applet_have_more_data
    - luaL_checkstring
    - htons
    - sc_opposite
    - luaL_addchar
    - notification_new
    - appctx_init
    - appctx_wakeup
    - luaL_checkinteger
    - xref_get_peer_and_lock
    - lua_gettop
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_connect(struct lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3676,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:3676,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3677,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3677,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3680,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3682,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3688,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3689,1
    - Dst: hlua_socket_connect
      Src: /src/haproxy/src/hlua.c:3689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3690
      start: 3671
    functionDepth: 3
    functionLinenumber: 3671
    functionLinenumberEnd: 3690
    functionName: hlua_socket_connect_ssl
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - xref_unlock
    - hlua_checksocket
    - hlua_socket_connect
    - check_args
    - lua_pushnil
    - xref_get_peer_and_lock
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_connect_ssl(struct lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3696
      start: 3693
    functionDepth: 0
    functionLinenumber: 3693
    functionLinenumberEnd: 3696
    functionName: hlua_socket_setoption
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_setoption(struct lua_State *L)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3708,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:3708,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3710,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3710,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3713,1
    - Dst: luaL_checknumber
      Src: /src/haproxy/src/hlua.c:3713,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3717,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3717,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3720,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3720,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/hlua.c:3722,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3730,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3730,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3733,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:3735,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3736,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:3736,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3740,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:3744,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/hlua.c:3747,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:3753,1
    - Dst: tick_first
      Src: /src/haproxy/src/hlua.c:3754,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/hlua.c:3754,1
    - Dst: task_queue
      Src: /src/haproxy/src/hlua.c:3755,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3758,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3759,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3761
      start: 3698
    functionDepth: 2
    functionLinenumber: 3698
    functionLinenumberEnd: 3761
    functionName: hlua_socket_settimeout
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checksocket
    - task_queue
    - luaL_error
    - appctx_sc
    - hlua_pusherror
    - luaL_checknumber
    - xref_unlock
    - container_of
    - lua_pushinteger
    - tick_is_expired
    - lua_error
    - WILL_LJMP
    - appctx_strm
    - MS_TO_TICKS
    - tick_first
    - tick_add_ifset
    - check_args
    - xref_get_peer_and_lock
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_settimeout(struct lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:3771,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:3776,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:3777,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:3782,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3783,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:3783,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:3784,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:3785,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:3790,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:3795,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:3796,1
    - Dst: appctx_new_here
      Src: /src/haproxy/src/hlua.c:3799,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:3801,1
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/hlua.c:3804,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/hlua.c:3810,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/hlua.c:3811,1
    - Dst: xref_create
      Src: /src/haproxy/src/hlua.c:3816,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3820,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:3820,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3822
      start: 3763
    functionDepth: 1
    functionLinenumber: 3763
    functionLinenumberEnd: 3822
    functionName: hlua_socket_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - lua_rawseti
    - memset
    - hlua_gethlua
    - xref_create
    - lua_rawgeti
    - MT_LIST_INIT
    - lua_checkstack
    - applet_reserve_svcctx
    - hlua_pusherror
    - lua_newtable
    - lua_setmetatable
    - appctx_new_here
    - lua_newuserdata
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_new(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3837,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:3837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3838
      start: 3835
    functionDepth: 1
    functionLinenumber: 3835
    functionLinenumberEnd: 3838
    functionName: hlua_checkchannel
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkudata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP *hlua_checkchannel(lua_State *L, int ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:3846,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:3849,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:3850,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:3851,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:3854,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:3855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - L
    - channel
    argTypes:
    - lua_State*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3857
      start: 3843
    functionDepth: 0
    functionLinenumber: 3843
    functionLinenumberEnd: 3857
    functionName: hlua_channel_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushlightuserdata
    - lua_rawseti
    - lua_rawgeti
    - lua_checkstack
    - lua_setmetatable
    - lua_newtable
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_new(lua_State *L, struct channel *channel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:3868,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:3871,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:3873,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:3874,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:3875,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - L
    - ud
    - chn
    - offset
    - len
    argTypes:
    - lua_State*
    - int
    - struct channel*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3881
      start: 3864
    functionDepth: 1
    functionLinenumber: 3864
    functionLinenumberEnd: 3881
    functionName: hlua_channel_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_pop
    - hlua_filter_from_payload
    - lua_touserdata
    - CHN_IDX
    linkageType: ''
    returnType: struct filter
    signature: struct filter *hlua_channel_filter(lua_State *L, int ud, struct channel
      *chn, size_t *offset, size_t *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_contig_data
      Src: /src/haproxy/src/hlua.c:3895,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/hlua.c:3895,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/hlua.c:3896,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/hlua.c:3896,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:3899,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:3900,1
    - Dst: b_peek
      Src: /src/haproxy/src/hlua.c:3900,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:3902,1
    - Dst: b_orig
      Src: /src/haproxy/src/hlua.c:3902,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:3903,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - chn
    - L
    - offset
    - len
    argTypes:
    - struct channel*
    - lua_State*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3905
      start: 3889
    functionDepth: 1
    functionLinenumber: 3889
    functionLinenumberEnd: 3905
    functionName: _hlua_channel_dup
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_orig
    - b_contig_data
    - b_peek_ofs
    - luaL_pushresult
    - luaL_buffinit
    - luaL_addlstring
    linkageType: ''
    returnType: int
    signature: int _hlua_channel_dup(struct channel *chn, lua_State *L, size_t offset,
      size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:3916,1
    - Dst: istlen
      Src: /src/haproxy/src/hlua.c:3916,1
    - Dst: istlen
      Src: /src/haproxy/src/hlua.c:3919,1
    - Dst: c_room
      Src: /src/haproxy/src/hlua.c:3919,1
    - Dst: b_insert_blk
      Src: /src/haproxy/src/hlua.c:3923,1
    - Dst: istptr
      Src: /src/haproxy/src/hlua.c:3923,1
    - Dst: istlen
      Src: /src/haproxy/src/hlua.c:3923,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - chn
    - L
    - str
    - offset
    argTypes:
    - struct channel*
    - lua_State*
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3927
      start: 3911
    functionDepth: 1
    functionLinenumber: 3911
    functionLinenumberEnd: 3927
    functionName: _hlua_channel_insert
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_insert_blk
    - istptr
    - c_room
    - istlen
    linkageType: ''
    returnType: int
    signature: int _hlua_channel_insert(struct channel *chn, lua_State *L, struct
      ist str, size_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/src/hlua.c:3935,1
    - Dst: b_tail
      Src: /src/haproxy/src/hlua.c:3935,1
    - Dst: b_move
      Src: /src/haproxy/src/hlua.c:3936,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/hlua.c:3936,1
    - Dst: b_data
      Src: /src/haproxy/src/hlua.c:3937,1
    - Dst: b_sub
      Src: /src/haproxy/src/hlua.c:3938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - chn
    - offset
    - len
    argTypes:
    - struct channel*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3939
      start: 3931
    functionDepth: 1
    functionLinenumber: 3931
    functionLinenumberEnd: 3939
    functionName: _hlua_channel_delete
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_sub
    - b_tail
    - b_move
    - b_peek_ofs
    - b_data
    linkageType: ''
    returnType: void
    signature: void _hlua_channel_delete(struct channel *chn, size_t offset, size_t
      len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3956,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:3956,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:3958,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:3959,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:3961,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:3962,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3963,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:3963,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3966,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3967,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3967,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:3969,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:3972,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3973,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:3973,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3980,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3981,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3981,1
    - Dst: c_size
      Src: /src/haproxy/src/hlua.c:3985,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:3987,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3988,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:3988,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:3997,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:3997,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:3997,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/hlua.c:3997,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3999,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:3999,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4004,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:4009,1
    - Dst: _hlua_channel_dup
      Src: /src/haproxy/src/hlua.c:4018,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4020
      start: 3949
    functionDepth: 2
    functionLinenumber: 3949
    functionLinenumberEnd: 4020
    functionName: hlua_channel_get_data_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - _hlua_channel_dup
    - hlua_checkchannel
    - co_data
    - lua_pushnil
    - hlua_filter_from_payload
    - hlua_gethlua
    - channel_input_closed
    - hlua_channel_filter
    - lua_error
    - WILL_LJMP
    - channel_may_recv
    - lua_pushstring
    - lua_pushfstring
    - HLUA_CANT_YIELD
    - ci_data
    - c_size
    - MAX
    - luaL_checkinteger
    - lua_gettop
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_get_data_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4040,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4040,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4041,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4042,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4044,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4045,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4046,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4046,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4049,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4050,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4050,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:4052,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4055,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4056,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4056,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4063,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4064,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4064,1
    - Dst: c_size
      Src: /src/haproxy/src/hlua.c:4068,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4070,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4071,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4071,1
    - Dst: b_peek
      Src: /src/haproxy/src/hlua.c:4078,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4087,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:4089,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:4089,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4089,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/hlua.c:4089,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4091,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:4091,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4096,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:4101,1
    - Dst: _hlua_channel_dup
      Src: /src/haproxy/src/hlua.c:4110,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4112
      start: 4033
    functionDepth: 2
    functionLinenumber: 4033
    functionLinenumberEnd: 4112
    functionName: hlua_channel_get_line_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - _hlua_channel_dup
    - hlua_checkchannel
    - co_data
    - lua_pushnil
    - hlua_filter_from_payload
    - b_peek
    - hlua_gethlua
    - channel_input_closed
    - hlua_channel_filter
    - lua_error
    - WILL_LJMP
    - channel_may_recv
    - lua_pushstring
    - lua_pushfstring
    - HLUA_CANT_YIELD
    - ci_data
    - c_size
    - MAX
    - luaL_checkinteger
    - lua_gettop
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_get_line_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4128,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4128,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4129,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4129,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4130,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4130,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4131,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4132,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4132,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4135,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4136,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4138,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4139,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4140,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4140,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4142,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4142,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4143,1
    - Dst: _hlua_channel_dup
      Src: /src/haproxy/src/hlua.c:4147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4149
      start: 4122
    functionDepth: 2
    functionLinenumber: 4122
    functionLinenumberEnd: 4149
    functionName: hlua_channel_dup
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 3
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - lua_error
    - _hlua_channel_dup
    - ci_data
    - hlua_checkchannel
    - co_data
    - check_args
    - lua_pushnil
    - channel_input_closed
    - hlua_channel_filter
    - hlua_filter_from_payload
    - IS_HTX_STRM
    - lua_pushfstring
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_dup(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4167,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4167,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4168,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4168,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4169,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4169,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4170,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4171,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4171,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4174,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4175,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4177,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4178,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4179,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4179,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4181,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4181,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4182,1
    - Dst: _hlua_channel_dup
      Src: /src/haproxy/src/hlua.c:4186,1
    - Dst: _hlua_channel_delete
      Src: /src/haproxy/src/hlua.c:4187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4189
      start: 4160
    functionDepth: 2
    functionLinenumber: 4160
    functionLinenumberEnd: 4189
    functionName: hlua_channel_get
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - lua_error
    - _hlua_channel_dup
    - ci_data
    - hlua_checkchannel
    - co_data
    - check_args
    - lua_pushnil
    - channel_input_closed
    - hlua_channel_filter
    - _hlua_channel_delete
    - hlua_filter_from_payload
    - IS_HTX_STRM
    - lua_pushfstring
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_get(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4206,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4206,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4208,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4209,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4211,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4212,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4213,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4213,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4215,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4215,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4216,1
    - Dst: b_peek
      Src: /src/haproxy/src/hlua.c:4221,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:4227,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:4227,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4227,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/hlua.c:4227,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4229,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:4229,1
    - Dst: _hlua_channel_dup
      Src: /src/haproxy/src/hlua.c:4233,1
    - Dst: _hlua_channel_delete
      Src: /src/haproxy/src/hlua.c:4234,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4236
      start: 4199
    functionDepth: 2
    functionLinenumber: 4199
    functionLinenumberEnd: 4236
    functionName: hlua_channel_getline_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - b_peek
    - _hlua_channel_dup
    - ci_data
    - hlua_gethlua
    - hlua_checkchannel
    - co_data
    - channel_may_recv
    - lua_pushnil
    - channel_input_closed
    - hlua_channel_filter
    - _hlua_channel_delete
    - hlua_filter_from_payload
    - HLUA_CANT_YIELD
    - WILL_LJMP
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_getline_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4246,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4246,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4247,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4247,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4248,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4248,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4249,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4250,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4250,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4252,1
    - Dst: hlua_channel_getline_yield
      Src: /src/haproxy/src/hlua.c:4252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4253
      start: 4242
    functionDepth: 3
    functionLinenumber: 4242
    functionLinenumberEnd: 4253
    functionName: hlua_channel_getline
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - lua_error
    - hlua_checkchannel
    - check_args
    - hlua_channel_getline_yield
    - IS_HTX_STRM
    - lua_pushfstring
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_getline(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4264,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4264,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4265,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:4265,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4266,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4266,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4267,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4267,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4268,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4269,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4269,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4271,1
    - Dst: hlua_channel_get_data_yield
      Src: /src/haproxy/src/hlua.c:4271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4272
      start: 4260
    functionDepth: 3
    functionLinenumber: 4260
    functionLinenumberEnd: 4272
    functionName: hlua_channel_get_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - lua_error
    - hlua_channel_get_data_yield
    - hlua_checkchannel
    - luaL_error
    - lua_gettop
    - IS_HTX_STRM
    - lua_pushfstring
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_get_data(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4283,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4283,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4284,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:4284,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4285,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4285,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4286,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4286,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4287,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4288,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4288,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4290,1
    - Dst: hlua_channel_get_line_yield
      Src: /src/haproxy/src/hlua.c:4290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4291
      start: 4279
    functionDepth: 3
    functionLinenumber: 4279
    functionLinenumberEnd: 4291
    functionName: hlua_channel_get_line
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - lua_error
    - hlua_checkchannel
    - hlua_channel_get_line_yield
    - luaL_error
    - lua_gettop
    - IS_HTX_STRM
    - lua_pushfstring
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_get_line(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4308,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4308,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4309,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4309,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4310,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:4310,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4311,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4311,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4312,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4313,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4313,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4316,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4317,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4319,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4320,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4321,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4321,1
    - Dst: _hlua_channel_insert
      Src: /src/haproxy/src/hlua.c:4323,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:4323,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4327,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4328,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4332
      start: 4300
    functionDepth: 2
    functionLinenumber: 4300
    functionLinenumberEnd: 4332
    functionName: hlua_channel_append
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - lua_error
    - ist2
    - luaL_checklstring
    - ci_data
    - _hlua_channel_insert
    - hlua_checkchannel
    - flt_update_offsets
    - co_data
    - check_args
    - hlua_channel_filter
    - lua_pushinteger
    - hlua_filter_from_payload
    - IS_HTX_STRM
    - lua_pushfstring
    - WILL_LJMP
    - CHN_IDX
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_append(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4349,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4349,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4350,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4350,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4351,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:4351,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4352,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4352,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4353,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4354,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4354,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4357,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4358,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4360,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4361,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4362,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4362,1
    - Dst: _hlua_channel_insert
      Src: /src/haproxy/src/hlua.c:4364,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:4364,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4368,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4369,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4374
      start: 4341
    functionDepth: 2
    functionLinenumber: 4341
    functionLinenumberEnd: 4374
    functionName: hlua_channel_prepend
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - lua_error
    - ist2
    - luaL_checklstring
    - ci_data
    - _hlua_channel_insert
    - hlua_checkchannel
    - flt_update_offsets
    - co_data
    - check_args
    - hlua_channel_filter
    - lua_pushinteger
    - hlua_filter_from_payload
    - IS_HTX_STRM
    - lua_pushfstring
    - WILL_LJMP
    - CHN_IDX
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_prepend(lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4391,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4391,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4392,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:4392,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4393,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4393,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4394,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:4394,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4396,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4397,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4399,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4400,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4401,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4401,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4404,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4405,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4405,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:4407,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4410,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4411,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4411,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4414,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4414,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4415,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4416,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4416,1
    - Dst: _hlua_channel_insert
      Src: /src/haproxy/src/hlua.c:4419,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:4419,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4423,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4424,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4427,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4429
      start: 4383
    functionDepth: 2
    functionLinenumber: 4383
    functionLinenumberEnd: 4429
    functionName: hlua_channel_insert_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkchannel
    - co_data
    - luaL_error
    - hlua_filter_from_payload
    - CHN_IDX
    - ist2
    - luaL_checklstring
    - hlua_channel_filter
    - lua_pushinteger
    - IS_HTX_STRM
    - lua_error
    - WILL_LJMP
    - flt_update_offsets
    - lua_pushfstring
    - chn_strm
    - ci_data
    - _hlua_channel_insert
    - MAX
    - luaL_checkinteger
    - lua_gettop
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_insert_data(lua_State *L)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4445,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4445,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4446,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:4446,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4447,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4447,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4448,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:4448,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4450,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4450,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4451,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4452,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4452,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4455,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4456,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4458,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4459,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4460,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4460,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4463,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4464,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4464,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:4466,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4469,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4470,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4470,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4475,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4476,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4476,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4482,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4483,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4483,1
    - Dst: c_room
      Src: /src/haproxy/src/hlua.c:4489,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4490,1
    - Dst: _hlua_channel_delete
      Src: /src/haproxy/src/hlua.c:4492,1
    - Dst: _hlua_channel_insert
      Src: /src/haproxy/src/hlua.c:4493,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:4493,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4498,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4499,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4502,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4505
      start: 4437
    functionDepth: 2
    functionLinenumber: 4437
    functionLinenumberEnd: 4505
    functionName: hlua_channel_set_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkchannel
    - co_data
    - luaL_error
    - _hlua_channel_delete
    - hlua_filter_from_payload
    - CHN_IDX
    - ist2
    - luaL_checklstring
    - hlua_channel_filter
    - lua_pushinteger
    - IS_HTX_STRM
    - lua_error
    - WILL_LJMP
    - flt_update_offsets
    - lua_pushfstring
    - c_room
    - chn_strm
    - ci_data
    - _hlua_channel_insert
    - MAX
    - luaL_checkinteger
    - lua_gettop
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_set_data(lua_State *L)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4520,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4520,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4521,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:4521,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4522,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4522,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4524,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4524,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4525,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4526,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4526,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4529,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4530,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4532,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4533,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4534,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4534,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4537,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4538,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4538,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:4540,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4543,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4544,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4544,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4549,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4550,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4550,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4556,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4557,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4557,1
    - Dst: _hlua_channel_delete
      Src: /src/haproxy/src/hlua.c:4561,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4565,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4566,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4570,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4572
      start: 4513
    functionDepth: 2
    functionLinenumber: 4513
    functionLinenumberEnd: 4572
    functionName: hlua_channel_del_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkchannel
    - co_data
    - luaL_error
    - _hlua_channel_delete
    - hlua_filter_from_payload
    - CHN_IDX
    - hlua_channel_filter
    - lua_pushinteger
    - IS_HTX_STRM
    - lua_error
    - WILL_LJMP
    - flt_update_offsets
    - lua_pushfstring
    - chn_strm
    - ci_data
    - MAX
    - luaL_checkinteger
    - lua_gettop
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_del_data(lua_State *L)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:4589,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4591,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4595,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4595,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4596,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:4596,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4597,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4597,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4599,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4600,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4602,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4603,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4604,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4604,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:4607,1
    - Dst: channel_output_closed
      Src: /src/haproxy/src/hlua.c:4607,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4608,1
    - Dst: c_room
      Src: /src/haproxy/src/hlua.c:4612,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4615,1
    - Dst: _hlua_channel_insert
      Src: /src/haproxy/src/hlua.c:4621,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:4621,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:4623,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4624,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4632,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/hlua.c:4633,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4634,1
    - Dst: c_adv
      Src: /src/haproxy/src/hlua.c:4637,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:4640,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4641,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4647,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:4647,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:4647,1
    - Dst: HLUA_SET_WAKERESWR
      Src: /src/haproxy/src/hlua.c:4655,1
    - Dst: HLUA_SET_WAKEREQWR
      Src: /src/haproxy/src/hlua.c:4657,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4658,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:4658,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4662
      start: 4579
    functionDepth: 2
    functionLinenumber: 4579
    functionLinenumberEnd: 4662
    functionName: hlua_channel_send_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - unlikely
    - HLUA_SET_WAKEREQWR
    - hlua_checkchannel
    - co_data
    - lua_pushnil
    - hlua_filter_from_payload
    - CHN_IDX
    - ist2
    - luaL_checklstring
    - hlua_gethlua
    - hlua_channel_filter
    - lua_pushinteger
    - lua_error
    - WILL_LJMP
    - c_adv
    - flt_update_offsets
    - lua_pop
    - HLUA_CANT_YIELD
    - c_room
    - channel_output_closed
    - FLT_OFF
    - ci_data
    - _hlua_channel_insert
    - luaL_checkinteger
    - HLUA_SET_WAKERESWR
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_send_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4674,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4674,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4675,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4675,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4676,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4676,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4677,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4678,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4678,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4680,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4681,1
    - Dst: hlua_channel_send_yield
      Src: /src/haproxy/src/hlua.c:4681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4682
      start: 4670
    functionDepth: 3
    functionLinenumber: 4670
    functionLinenumberEnd: 4682
    functionName: hlua_channel_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - lua_error
    - hlua_checkchannel
    - check_args
    - lua_pushinteger
    - hlua_channel_send_yield
    - IS_HTX_STRM
    - lua_pushfstring
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_send(lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:4700,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4702,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4706,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4706,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4707,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4707,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4708,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4708,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4710,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4711,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4713,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4714,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4715,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4715,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/hlua.c:4724,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4725,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4726,1
    - Dst: channel_forward
      Src: /src/haproxy/src/hlua.c:4729,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:4732,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4733,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4740,1
    - Dst: channel_output_closed
      Src: /src/haproxy/src/hlua.c:4740,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:4740,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:4740,1
    - Dst: HLUA_SET_WAKERESWR
      Src: /src/haproxy/src/hlua.c:4748,1
    - Dst: HLUA_SET_WAKEREQWR
      Src: /src/haproxy/src/hlua.c:4750,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4753,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:4753,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4757
      start: 4691
    functionDepth: 2
    functionLinenumber: 4691
    functionLinenumberEnd: 4757
    functionName: hlua_channel_forward_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - HLUA_SET_WAKEREQWR
    - hlua_checkchannel
    - co_data
    - lua_pushnil
    - hlua_filter_from_payload
    - channel_forward
    - CHN_IDX
    - hlua_gethlua
    - channel_input_closed
    - hlua_channel_filter
    - lua_pushinteger
    - lua_error
    - WILL_LJMP
    - lua_pop
    - HLUA_CANT_YIELD
    - channel_output_closed
    - FLT_OFF
    - ci_data
    - luaL_checkinteger
    - HLUA_SET_WAKERESWR
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_forward_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4768,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4768,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4769,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4769,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4770,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4770,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4771,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4772,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4772,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4774,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4775,1
    - Dst: hlua_channel_forward_yield
      Src: /src/haproxy/src/hlua.c:4775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4776
      start: 4764
    functionDepth: 3
    functionLinenumber: 4764
    functionLinenumberEnd: 4776
    functionName: hlua_channel_forward
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - lua_error
    - hlua_checkchannel
    - check_args
    - lua_pushinteger
    - IS_HTX_STRM
    - lua_pushfstring
    - WILL_LJMP
    - hlua_channel_forward_yield
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_forward(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4787,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4787,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4788,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4788,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4790,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4791,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4792,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4793,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4793,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4794,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:4796,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4798,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4801
      start: 4781
    functionDepth: 2
    functionLinenumber: 4781
    functionLinenumberEnd: 4801
    functionName: hlua_channel_get_in_len
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - htxbuf
    - ci_data
    - hlua_checkchannel
    - co_data
    - check_args
    - hlua_channel_filter
    - lua_pushinteger
    - IS_HTX_STRM
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_get_in_len(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4808,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4808,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4809,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4809,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:4813,1
    - Dst: channel_full
      Src: /src/haproxy/src/hlua.c:4813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4815
      start: 4804
    functionDepth: 2
    functionLinenumber: 4804
    functionLinenumberEnd: 4815
    functionName: hlua_channel_is_full
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkchannel
    - check_args
    - channel_full
    - lua_pushboolean
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_is_full(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4822,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4822,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4823,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4823,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:4824,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4824,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/hlua.c:4824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4826
      start: 4818
    functionDepth: 2
    functionLinenumber: 4818
    functionLinenumberEnd: 4826
    functionName: hlua_channel_may_recv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkchannel
    - channel_may_recv
    - check_args
    - lua_pushboolean
    - channel_input_closed
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_may_recv(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4833,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4833,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4834,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4834,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:4836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4838
      start: 4829
    functionDepth: 2
    functionLinenumber: 4829
    functionLinenumberEnd: 4838
    functionName: hlua_channel_is_resp
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkchannel
    - check_args
    - lua_pushboolean
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_is_resp(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4848,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4848,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4849,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4849,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4851,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4852,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4853,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4857
      start: 4843
    functionDepth: 2
    functionLinenumber: 4843
    functionLinenumberEnd: 4857
    functionName: hlua_channel_get_out_len
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - ci_data
    - hlua_checkchannel
    - co_data
    - check_args
    - hlua_channel_filter
    - lua_pushinteger
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_get_out_len(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4872,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:4872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4873
      start: 4870
    functionDepth: 1
    functionLinenumber: 4870
    functionLinenumberEnd: 4873
    functionName: hlua_checkfetches
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkudata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP *hlua_checkfetches(lua_State *L, int ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:4883,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:4890,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:4891,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:4892,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:4900,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:4901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - L
    - txn
    - flags
    argTypes:
    - lua_State*
    - struct hlua_txn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4904
      start: 4878
    functionDepth: 0
    functionLinenumber: 4878
    functionLinenumberEnd: 4904
    functionName: hlua_fetches_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - lua_rawgeti
    - lua_checkstack
    - lua_setmetatable
    - lua_newtable
    - lua_newuserdata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_fetches_new(lua_State *L, struct hlua_txn *txn, unsigned
      int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:4922,1
    - Dst: lua_upvalueindex
      Src: /src/haproxy/src/hlua.c:4922,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4925,1
    - Dst: hlua_checkfetches
      Src: /src/haproxy/src/hlua.c:4925,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4930,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4932,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4932,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4936,1
    - Dst: hlua_lua2arg
      Src: /src/haproxy/src/hlua.c:4939,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4945,1
    - Dst: hlua_lua2arg_check
      Src: /src/haproxy/src/hlua.c:4945,1
    - Dst: struct sample_fetch*::val_args
      Src: /src/haproxy/src/hlua.c:4948,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:4949,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:4950,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:4955,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:4958,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/hlua.c:4959,1
    - Dst: struct sample_fetch*::process
      Src: /src/haproxy/src/hlua.c:4959,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:4961,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4963,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4969,1
    - Dst: hlua_smp2lua_str
      Src: /src/haproxy/src/hlua.c:4969,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4971,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:4971,1
    - Dst: free_args
      Src: /src/haproxy/src/hlua.c:4974,1
    - Dst: free_args
      Src: /src/haproxy/src/hlua.c:4978,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4979,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4979,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4981
      start: 4912
    functionDepth: 3
    functionLinenumber: 4912
    functionLinenumberEnd: 4981
    functionName: hlua_run_sample_fetch
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_pushnil
    - EXEC_CTX_WITH_RET
    - hlua_pushfstring_safe
    - ha_free
    - struct sample_fetch*::process
    - smp_set_owner
    - hlua_lua2arg
    - lua_error
    - WILL_LJMP
    - hlua_checkfetches
    - lua_pushstring
    - hlua_smp2lua_str
    - hlua_lua2arg_check
    - lua_pushfstring
    - memset
    - free_args
    - lua_upvalueindex
    - hlua_smp2lua
    - lua_gettop
    - struct sample_fetch*::val_args
    - lua_touserdata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_run_sample_fetch(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4996,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:4996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4997
      start: 4994
    functionDepth: 1
    functionLinenumber: 4994
    functionLinenumberEnd: 4997
    functionName: hlua_checkconverters
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkudata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP *hlua_checkconverters(lua_State *L, int ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:5007,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:5014,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:5015,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:5016,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:5024,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:5025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - L
    - txn
    - flags
    argTypes:
    - lua_State*
    - struct hlua_txn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5028
      start: 5002
    functionDepth: 0
    functionLinenumber: 5002
    functionLinenumberEnd: 5028
    functionName: hlua_converters_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - lua_rawgeti
    - lua_checkstack
    - lua_setmetatable
    - lua_newtable
    - lua_newuserdata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_converters_new(lua_State *L, struct hlua_txn *txn, unsigned
      int flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:5046,1
    - Dst: lua_upvalueindex
      Src: /src/haproxy/src/hlua.c:5046,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5049,1
    - Dst: hlua_checkconverters
      Src: /src/haproxy/src/hlua.c:5049,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5052,1
    - Dst: hlua_lua2arg
      Src: /src/haproxy/src/hlua.c:5055,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5061,1
    - Dst: hlua_lua2arg_check
      Src: /src/haproxy/src/hlua.c:5061,1
    - Dst: struct sample_conv*::val_args
      Src: /src/haproxy/src/hlua.c:5064,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:5065,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:5066,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:5071,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:5072,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:5073,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5077,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:5081,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:5087,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/hlua.c:5092,1
    - Dst: struct sample_conv*::process
      Src: /src/haproxy/src/hlua.c:5092,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5094,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5096,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5102,1
    - Dst: hlua_smp2lua_str
      Src: /src/haproxy/src/hlua.c:5102,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5104,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:5104,1
    - Dst: free_args
      Src: /src/haproxy/src/hlua.c:5106,1
    - Dst: free_args
      Src: /src/haproxy/src/hlua.c:5110,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5111,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:5111,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5113
      start: 5036
    functionDepth: 3
    functionLinenumber: 5036
    functionLinenumberEnd: 5113
    functionName: hlua_run_sample_conv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkconverters
    - lua_pushnil
    - EXEC_CTX_WITH_RET
    - hlua_pusherror
    - hlua_pushfstring_safe
    - ha_free
    - smp_set_owner
    - hlua_lua2arg
    - hlua_lua2smp
    - WILL_LJMP
    - lua_error
    - lua_pushstring
    - hlua_smp2lua_str
    - hlua_lua2arg_check
    - struct sample_conv*::process
    - memset
    - free_args
    - lua_upvalueindex
    - hlua_smp2lua
    - lua_gettop
    - lua_touserdata
    - struct sample_conv*::val_args
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_run_sample_conv(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5128,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:5128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5129
      start: 5126
    functionDepth: 1
    functionLinenumber: 5126
    functionLinenumberEnd: 5129
    functionName: hlua_checkapplet_tcp
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkudata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP *hlua_checkapplet_tcp(lua_State *L, int ud)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/hlua.c:5137,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/hlua.c:5137,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:5143,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:5150,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:5151,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:5152,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5158,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:5159,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5161,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5164,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:5165,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5167,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5170,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:5171,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5173,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5176,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:5177,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5179,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:5182,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:5183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - L
    - ctx
    argTypes:
    - lua_State*
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5186
      start: 5134
    functionDepth: 1
    functionLinenumber: 5134
    functionLinenumberEnd: 5186
    functionName: hlua_applet_tcp_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - lua_rawseti
    - lua_rawgeti
    - lua_pushstring
    - lua_checkstack
    - lua_setmetatable
    - lua_newtable
    - lua_settable
    - lua_newuserdata
    - hlua_fetches_new
    - ASSUME_NONNULL
    - hlua_converters_new
    linkageType: ''
    returnType: int
    signature: int hlua_applet_tcp_new(lua_State *L, struct appctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5196,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5196,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5197,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:5197,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5202,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5202,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5203,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5203,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:5207,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:5208,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5213,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5215,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua.c:5215,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5216,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:5216,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5218,1
    - Dst: vars_set_by_name
      Src: /src/haproxy/src/hlua.c:5218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5221
      start: 5188
    functionDepth: 5
    functionLinenumber: 5188
    functionLinenumberEnd: 5221
    functionName: hlua_applet_tcp_set_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - memset
    - lua_toboolean
    - lua_pushboolean
    - luaL_error
    - hlua_checkapplet_tcp
    - lua_gettop
    - smp_set_owner
    - vars_set_by_name
    - vars_set_by_name_ifexist
    - hlua_lua2smp
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_set_var(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5231,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5231,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5236,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5236,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5237,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5237,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5241,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5242,1
    - Dst: vars_unset_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:5242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5244
      start: 5223
    functionDepth: 4
    functionLinenumber: 5223
    functionLinenumberEnd: 5244
    functionName: hlua_applet_tcp_unset_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - check_args
    - lua_pushboolean
    - vars_unset_by_name_ifexist
    - hlua_checkapplet_tcp
    - smp_set_owner
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_unset_var(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5254,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5254,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5259,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5259,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5260,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5260,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5263,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/src/hlua.c:5264,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5265,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5269,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:5269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5270
      start: 5246
    functionDepth: 4
    functionLinenumber: 5246
    functionLinenumberEnd: 5270
    functionName: hlua_applet_tcp_get_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - check_args
    - lua_pushnil
    - hlua_checkapplet_tcp
    - smp_set_owner
    - hlua_smp2lua
    - vars_get_by_name
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_get_var(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5274,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5274,1
    - Dst: hlua_stream_ctx_get
      Src: /src/haproxy/src/hlua.c:5277,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5283,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5283,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:5286,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:5289,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:5290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5293
      start: 5272
    functionDepth: 2
    functionLinenumber: 5272
    functionLinenumberEnd: 5293
    functionName: hlua_applet_tcp_set_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_unref
    - lua_pushvalue
    - check_args
    - hlua_stream_ctx_get
    - hlua_checkapplet_tcp
    - luaL_ref
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_set_priv(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5297,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5297,1
    - Dst: hlua_stream_ctx_get
      Src: /src/haproxy/src/hlua.c:5300,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5304,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:5309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5312
      start: 5295
    functionDepth: 2
    functionLinenumber: 5295
    functionLinenumberEnd: 5312
    functionName: hlua_applet_tcp_get_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_rawgeti
    - lua_pushnil
    - hlua_stream_ctx_get
    - hlua_checkapplet_tcp
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_get_priv(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5320,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5320,1
    - Dst: applet_getline_nc
      Src: /src/haproxy/src/hlua.c:5328,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:5332,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5333,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:5333,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/hlua.c:5340,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5342,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5351,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5353,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/hlua.c:5355,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/hlua.c:5358,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5362
      start: 5318
    functionDepth: 2
    functionLinenumber: 5318
    functionLinenumberEnd: 5362
    functionName: hlua_applet_tcp_getline_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - applet_need_more_data
    - luaL_addlstring
    - applet_skip_input
    - applet_wont_consume
    - hlua_checkapplet_tcp
    - applet_getline_nc
    - luaL_pushresult
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_getline_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5367,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5367,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:5370,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:5373,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5375,1
    - Dst: hlua_applet_tcp_getline_yield
      Src: /src/haproxy/src/hlua.c:5375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5376
      start: 5365
    functionDepth: 3
    functionLinenumber: 5365
    functionLinenumberEnd: 5376
    functionName: hlua_applet_tcp_getline
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkapplet_tcp
    - luaL_buffinit
    - applet_will_consume
    - hlua_applet_tcp_getline_yield
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_getline(lua_State *L)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5383,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5383,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5384,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5384,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5385,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5385,1
    - Dst: applet_getblk_nc
      Src: /src/haproxy/src/hlua.c:5393,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:5397,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/hlua.c:5399,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5402,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:5406,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/hlua.c:5413,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5415,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5429,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5431,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/hlua.c:5432,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:5434,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/hlua.c:5436,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5439,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:5443,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5451,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5458,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/hlua.c:5462,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:5465,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5466,1
    - Dst: lua_replace
      Src: /src/haproxy/src/hlua.c:5467,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:5468,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/hlua.c:5473,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5476,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:5481,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5482,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:5482,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5484
      start: 5381
    functionDepth: 2
    functionLinenumber: 5381
    functionLinenumberEnd: 5484
    functionName: hlua_applet_tcp_recv_try
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - applet_need_more_data
    - applet_skip_input
    - lua_pushnil
    - luaL_checkinteger
    - applet_wont_consume
    - WILL_LJMP
    - hlua_checkapplet_tcp
    - luaL_pushresult
    - tick_is_expired
    - lua_pushinteger
    - hlua_pusherror
    - lua_replace
    - luaL_addlstring
    - applet_getblk_nc
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_recv_try(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5492,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5492,1
    - Dst: hlua_applet_tcp_recv_try
      Src: /src/haproxy/src/hlua.c:5495,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5498,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:5498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5501
      start: 5490
    functionDepth: 3
    functionLinenumber: 5490
    functionLinenumberEnd: 5501
    functionName: hlua_applet_tcp_recv_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_applet_tcp_recv_try
    - hlua_yieldk
    - luaL_checkinteger
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_recv_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5506,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5506,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5511,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5512,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:5512,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5513,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5514,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5515,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5515,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:5516,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5518,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5518,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:5519,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5523,1
    - Dst: tick_add
      Src: /src/haproxy/src/hlua.c:5526,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5527,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:5530,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:5533,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5535,1
    - Dst: hlua_applet_tcp_recv_yield
      Src: /src/haproxy/src/hlua.c:5535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5536
      start: 5504
    functionDepth: 4
    functionLinenumber: 5504
    functionLinenumberEnd: 5536
    functionName: hlua_applet_tcp_recv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_applet_tcp_recv_yield
    - lua_pop
    - luaL_error
    - luaL_checkinteger
    - hlua_checkapplet_tcp
    - lua_gettop
    - lua_pushinteger
    - luaL_buffinit
    - applet_will_consume
    - WILL_LJMP
    - tick_add
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_recv(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5541,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5541,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5544,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5545,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:5545,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5548,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5551,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:5554,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:5557,1
    - Dst: hlua_applet_tcp_recv_try
      Src: /src/haproxy/src/hlua.c:5559,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5567
      start: 5539
    functionDepth: 3
    functionLinenumber: 5539
    functionLinenumberEnd: 5567
    functionName: hlua_applet_tcp_try_recv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_applet_tcp_recv_try
    - luaL_error
    - hlua_checkapplet_tcp
    - lua_gettop
    - lua_pushinteger
    - luaL_buffinit
    - luaL_pushresult
    - applet_will_consume
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_try_recv(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5577,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5577,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5578,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5578,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5579,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5579,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:5582,1
    - Dst: applet_output_room
      Src: /src/haproxy/src/hlua.c:5586,1
    - Dst: applet_putblk
      Src: /src/haproxy/src/hlua.c:5592,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:5596,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5597,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:5604,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5605,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:5605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5609
      start: 5574
    functionDepth: 2
    functionLinenumber: 5574
    functionLinenumberEnd: 5609
    functionName: hlua_applet_tcp_send_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - applet_have_more_data
    - lua_pop
    - applet_output_room
    - applet_putblk
    - luaL_checkinteger
    - hlua_checkapplet_tcp
    - applet_get_outbuf
    - lua_pushinteger
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_send_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5617,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5617,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5618,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5620,1
    - Dst: hlua_applet_tcp_send_yield
      Src: /src/haproxy/src/hlua.c:5620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5621
      start: 5615
    functionDepth: 3
    functionLinenumber: 5615
    functionLinenumberEnd: 5621
    functionName: hlua_applet_tcp_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_pushinteger
    - check_args
    - hlua_applet_tcp_send_yield
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_tcp_send(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5636,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:5636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5637
      start: 5634
    functionDepth: 1
    functionLinenumber: 5634
    functionLinenumberEnd: 5637
    functionName: hlua_checkapplet_http
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkudata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP *hlua_checkapplet_http(lua_State *L, int ud)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: appctx_strm
      Src: /src/haproxy/src/hlua.c:5648,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:5652,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:5659,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:5660,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:5661,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5669,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:5670,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5672,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5675,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:5676,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5678,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5681,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:5682,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5684,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5687,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:5688,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5690,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:5693,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:5694,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - L
    - ctx
    argTypes:
    - lua_State*
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5697
      start: 5644
    functionDepth: 1
    functionLinenumber: 5644
    functionLinenumberEnd: 5697
    functionName: hlua_applet_http_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - lua_rawseti
    - lua_rawgeti
    - lua_pushstring
    - lua_checkstack
    - lua_setmetatable
    - lua_newtable
    - lua_settable
    - lua_newuserdata
    - hlua_fetches_new
    - hlua_converters_new
    linkageType: ''
    returnType: int
    signature: int hlua_applet_http_new(lua_State *L, struct appctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5707,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5707,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5708,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:5708,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5713,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5713,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5714,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5714,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:5718,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:5719,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5724,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5726,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua.c:5726,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5727,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:5727,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5729,1
    - Dst: vars_set_by_name
      Src: /src/haproxy/src/hlua.c:5729,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5732
      start: 5699
    functionDepth: 5
    functionLinenumber: 5699
    functionLinenumberEnd: 5732
    functionName: hlua_applet_http_set_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - memset
    - lua_toboolean
    - lua_pushboolean
    - luaL_error
    - hlua_checkapplet_http
    - lua_gettop
    - smp_set_owner
    - vars_set_by_name
    - vars_set_by_name_ifexist
    - hlua_lua2smp
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_set_var(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5742,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5742,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5747,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5747,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5748,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5748,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5752,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5753,1
    - Dst: vars_unset_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:5753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5755
      start: 5734
    functionDepth: 4
    functionLinenumber: 5734
    functionLinenumberEnd: 5755
    functionName: hlua_applet_http_unset_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - check_args
    - lua_pushboolean
    - hlua_checkapplet_http
    - vars_unset_by_name_ifexist
    - smp_set_owner
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_unset_var(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5765,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5765,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5770,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5770,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5771,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5771,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5774,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/src/hlua.c:5775,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5776,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5780,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:5780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5781
      start: 5757
    functionDepth: 4
    functionLinenumber: 5757
    functionLinenumberEnd: 5781
    functionName: hlua_applet_http_get_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - check_args
    - lua_pushnil
    - hlua_checkapplet_http
    - hlua_smp2lua
    - smp_set_owner
    - vars_get_by_name
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_get_var(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5785,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5785,1
    - Dst: hlua_stream_ctx_get
      Src: /src/haproxy/src/hlua.c:5788,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5794,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5794,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:5797,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:5800,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:5801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5804
      start: 5783
    functionDepth: 2
    functionLinenumber: 5783
    functionLinenumberEnd: 5804
    functionName: hlua_applet_http_set_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_unref
    - lua_pushvalue
    - check_args
    - hlua_checkapplet_http
    - hlua_stream_ctx_get
    - luaL_ref
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_set_priv(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5808,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5808,1
    - Dst: hlua_stream_ctx_get
      Src: /src/haproxy/src/hlua.c:5811,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5815,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:5820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5823
      start: 5806
    functionDepth: 2
    functionLinenumber: 5806
    functionLinenumberEnd: 5823
    functionName: hlua_applet_http_get_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_rawgeti
    - lua_pushnil
    - hlua_checkapplet_http
    - hlua_stream_ctx_get
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_get_priv(lua_State *L)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5831,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5831,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/hlua.c:5833,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:5844,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/hlua.c:5845,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:5847,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/hlua.c:5848,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:5859,1
    - Dst: istchr
      Src: /src/haproxy/src/hlua.c:5861,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5866,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/hlua.c:5879,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/hlua.c:5881,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/hlua.c:5889,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:5894,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:5897,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5898,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:5898,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/hlua.c:5903,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5906,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5908
      start: 5829
    functionDepth: 2
    functionLinenumber: 5829
    functionLinenumberEnd: 5908
    functionName: hlua_applet_http_getline_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - htx_get_blksz
    - htx_to_buf
    - applet_need_more_data
    - htx_cut_data_blk
    - hlua_yieldk
    - htx_get_blk_value
    - htx_get_first_blk
    - hlua_checkapplet_http
    - htx_get_blk_type
    - applet_wont_consume
    - htx_remove_blk
    - applet_get_inbuf
    - luaL_pushresult
    - luaL_addlstring
    - istchr
    - htx_is_empty
    - htx_from_buf
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_getline_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5914,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5914,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:5917,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:5920,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5922,1
    - Dst: hlua_applet_http_getline_yield
      Src: /src/haproxy/src/hlua.c:5922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5923
      start: 5912
    functionDepth: 3
    functionLinenumber: 5912
    functionLinenumberEnd: 5923
    functionName: hlua_applet_http_getline
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_applet_http_getline_yield
    - hlua_checkapplet_http
    - luaL_buffinit
    - applet_will_consume
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_getline(lua_State *L)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5931,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5931,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/hlua.c:5933,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:5944,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5945,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5945,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/hlua.c:5946,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:5948,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/hlua.c:5949,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:5959,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5963,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/hlua.c:5978,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/hlua.c:5980,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/hlua.c:5988,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:5993,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/hlua.c:5994,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5999,1
    - Dst: lua_replace
      Src: /src/haproxy/src/hlua.c:6000,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:6003,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6004,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:6004,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/hlua.c:6009,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:6012,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6014
      start: 5929
    functionDepth: 2
    functionLinenumber: 5929
    functionLinenumberEnd: 6014
    functionName: hlua_applet_http_recv_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - htx_get_blksz
    - applet_need_more_data
    - htx_is_empty
    - applet_fl_clr
    - htx_get_blk_type
    - lua_pushinteger
    - luaL_pushresult
    - lua_replace
    - luaL_addlstring
    - htx_get_head_blk
    - htx_from_buf
    - htx_get_blk_value
    - htx_to_buf
    - htx_cut_data_blk
    - luaL_checkinteger
    - hlua_checkapplet_http
    - applet_wont_consume
    - htx_remove_blk
    - applet_get_inbuf
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_recv_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6019,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6019,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:6023,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6024,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:6024,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:6025,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6026,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:6026,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6027,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:6030,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:6033,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:6036,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6037,1
    - Dst: hlua_applet_http_recv_yield
      Src: /src/haproxy/src/hlua.c:6037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6038
      start: 6017
    functionDepth: 3
    functionLinenumber: 6017
    functionLinenumberEnd: 6038
    functionName: hlua_applet_http_recv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_pop
    - luaL_error
    - luaL_checkinteger
    - hlua_checkapplet_http
    - lua_gettop
    - lua_pushinteger
    - luaL_buffinit
    - hlua_applet_http_recv_yield
    - applet_will_consume
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_recv(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6047,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6047,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6052,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:6052,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:6055,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/src/hlua.c:6060,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:6064,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6065,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6065,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/hlua.c:6072,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6072,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6076,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:6077,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/hlua.c:6083,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:6085,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6086,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:6086,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:6090,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6092
      start: 6045
    functionDepth: 2
    functionLinenumber: 6045
    functionLinenumberEnd: 6092
    functionName: hlua_applet_http_send_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - ist2
    - htx_to_buf
    - luaL_checklstring
    - applet_have_more_data
    - lua_pop
    - luaL_checkinteger
    - hlua_checkapplet_http
    - htx_add_data
    - applet_get_outbuf
    - lua_pushinteger
    - applet_fl_set
    - applet_htx_output_room
    - hlua_yieldk
    - htx_from_buf
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_send_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6100,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6100,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6105,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6106,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6106,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:6110,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6112,1
    - Dst: hlua_applet_http_send_yield
      Src: /src/haproxy/src/hlua.c:6112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6113
      start: 6098
    functionDepth: 3
    functionLinenumber: 6098
    functionLinenumberEnd: 6113
    functionName: hlua_applet_http_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_applet_http_send_yield
    - hlua_checkapplet_http
    - WILL_LJMP
    - hlua_pusherror
    - lua_pushinteger
    - lua_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_send(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6120,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6120,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6121,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:6121,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6122,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:6122,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:6125,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6127,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6128,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6129,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6129,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:6135,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6139,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:6144,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:6145,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:6146,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6147,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6152,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6153,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6154,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6154,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:6160,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:6161,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:6162,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6165
      start: 6115
    functionDepth: 2
    functionLinenumber: 6115
    functionLinenumberEnd: 6165
    functionName: hlua_applet_http_addheader
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - lua_rawseti
    - lua_getfield
    - lua_pop
    - lua_pushvalue
    - lua_pushboolean
    - lua_rawlen
    - luaL_checkstring
    - hlua_checkapplet_http
    - hlua_pusherror
    - lua_newtable
    - lua_settable
    - WILL_LJMP
    - lua_typename
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_addheader(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6169,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6169,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6170,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:6170,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6171,1
    - Dst: luaL_optlstring
      Src: /src/haproxy/src/hlua.c:6171,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6175,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:6185,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:6187,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:6189,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6190,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6194
      start: 6167
    functionDepth: 2
    functionLinenumber: 6167
    functionLinenumberEnd: 6194
    functionName: hlua_applet_http_status
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_pushlightuserdata
    - lua_pushvalue
    - lua_pushboolean
    - lua_pushnil
    - luaL_checkinteger
    - hlua_checkapplet_http
    - lua_settable
    - luaL_optlstring
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_status(lua_State *L)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6199,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6199,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/hlua.c:6211,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:6211,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:6214,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/hlua.c:6215,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/hlua.c:6218,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/hlua.c:6221,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/hlua.c:6224,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6224,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6224,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6224,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/hlua.c:6228,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6228,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6228,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6228,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6231,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6233,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6233,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:6238,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6239,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6241,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6241,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:6245,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:6246,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6248,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6249,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6251,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6251,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6252,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6252,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:6254,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6257,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6258,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6261,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6261,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6262,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6262,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:6266,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:6267,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6271,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6272,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6275,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6275,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6276,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6276,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:6278,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6281,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6282,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6285,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6285,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6286,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6286,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:6288,1
    - Dst: isteqi
      Src: /src/haproxy/src/hlua.c:6291,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6291,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6291,1
    - Dst: h1_parse_xfer_enc_header
      Src: /src/haproxy/src/hlua.c:6294,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6294,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6296,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6299,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6299,1
    - Dst: isteqi
      Src: /src/haproxy/src/hlua.c:6304,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6304,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6304,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6306,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/hlua.c:6309,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6311,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6314,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6314,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/hlua.c:6323,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6323,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6323,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6324,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6327,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6327,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6331,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6335,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/hlua.c:6367,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6367,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6367,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6368,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6370,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6370,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/hlua.c:6375,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6376,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6378,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6378,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/hlua.c:6381,1
    - Dst: b_size
      Src: /src/haproxy/src/hlua.c:6381,1
    - Dst: b_reset
      Src: /src/haproxy/src/hlua.c:6382,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6383,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6384,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6384,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:6387,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 114
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6392
      start: 6197
    functionDepth: 2
    functionLinenumber: 6197
    functionLinenumberEnd: 6392
    functionName: hlua_applet_http_send_response
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - DISGUISE
    - lua_pushnil
    - hlua_pusherror
    - ist
    - ist2
    - h1_parse_xfer_enc_header
    - htx_add_header
    - lua_tolstring
    - htx_used_space
    - lua_error
    - WILL_LJMP
    - htx_from_buf
    - isteqi
    - lua_getfield
    - lua_tointeger
    - http_parse_cont_len_header
    - lua_pop
    - b_size
    - htx_add_stline
    - h1m_init_res
    - ultoa_r
    - lua_typename
    - http_get_reason
    - htx_to_buf
    - lua_type
    - hlua_checkapplet_http
    - applet_get_outbuf
    - b_reset
    - htx_add_endof
    - lua_next
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_send_response(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6400,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6400,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:6402,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:6403,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6404,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:6404,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6406,1
    - Dst: hlua_applet_http_send_response
      Src: /src/haproxy/src/hlua.c:6406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6407
      start: 6398
    functionDepth: 3
    functionLinenumber: 6398
    functionLinenumberEnd: 6407
    functionName: hlua_applet_http_start_response_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - applet_have_more_data
    - hlua_checkapplet_http
    - applet_get_outbuf
    - hlua_yieldk
    - hlua_applet_http_send_response
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_start_response_yield(lua_State *L, int status,
      lua_KContext ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6412,1
    - Dst: hlua_applet_http_start_response_yield
      Src: /src/haproxy/src/hlua.c:6412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6413
      start: 6410
    functionDepth: 4
    functionLinenumber: 6410
    functionLinenumberEnd: 6413
    functionName: hlua_applet_http_start_response
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_applet_http_start_response_yield
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_start_response(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6428,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:6428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6429
      start: 6426
    functionDepth: 1
    functionLinenumber: 6426
    functionLinenumberEnd: 6429
    functionName: hlua_checkhttp
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkudata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP *hlua_checkhttp(lua_State *L, int ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:6439,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:6446,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:6447,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:6448,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:6456,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:6457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - L
    - txn
    argTypes:
    - lua_State*
    - struct hlua_txn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6460
      start: 6434
    functionDepth: 0
    functionLinenumber: 6434
    functionLinenumberEnd: 6460
    functionName: hlua_http_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - lua_rawgeti
    - lua_checkstack
    - lua_setmetatable
    - lua_newtable
    - lua_newuserdata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_new(lua_State *L, struct hlua_txn *txn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:6468,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6471,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6472,1
    - Dst: HTX_SL_RES_VPTR
      Src: /src/haproxy/src/hlua.c:6472,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/hlua.c:6472,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6473,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6474,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6475,1
    - Dst: HTX_SL_RES_CPTR
      Src: /src/haproxy/src/hlua.c:6475,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/hlua.c:6475,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6476,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6477,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6478,1
    - Dst: HTX_SL_RES_RPTR
      Src: /src/haproxy/src/hlua.c:6478,1
    - Dst: HTX_SL_RES_RLEN
      Src: /src/haproxy/src/hlua.c:6478,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6479,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6482,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6483,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/hlua.c:6483,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/hlua.c:6483,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6484,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6485,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6486,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/hlua.c:6486,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/hlua.c:6486,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6487,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6488,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6489,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/hlua.c:6489,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/hlua.c:6489,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - L
    - sl
    argTypes:
    - lua_State*
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6493
      start: 6465
    functionDepth: 1
    functionLinenumber: 6465
    functionLinenumberEnd: 6493
    functionName: hlua_http_get_stline
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - HTX_SL_REQ_VLEN
    - HTX_SL_REQ_ULEN
    - HTX_SL_RES_VLEN
    - HTX_SL_RES_RLEN
    - HTX_SL_REQ_MLEN
    - HTX_SL_REQ_UPTR
    - lua_pushstring
    - HTX_SL_RES_RPTR
    - HTX_SL_RES_VPTR
    - lua_newtable
    - HTX_SL_RES_CPTR
    - lua_settable
    - HTX_SL_RES_CLEN
    - HTX_SL_REQ_MPTR
    - HTX_SL_REQ_VPTR
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_get_stline(lua_State *L, struct htx_sl *sl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:6505,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:6508,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/hlua.c:6509,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/hlua.c:6509,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/hlua.c:6510,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:6511,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/hlua.c:6516,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:6517,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6529,1
    - Dst: lua_gettable
      Src: /src/haproxy/src/hlua.c:6530,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6532,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6535,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6536,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:6537,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6538,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:6539,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:6540,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:6545,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6546,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:6547,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6548,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6553,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6554,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6554,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - L
    - buf
    argTypes:
    - lua_State*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6558
      start: 6499
    functionDepth: 1
    functionLinenumber: 6499
    functionLinenumberEnd: 6558
    functionName: hlua_http_get_headers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_error
    - htxbuf
    - lua_pushlstring
    - lua_rawseti
    - lua_pop
    - htx_get_blk
    - htx_get_blk_value
    - lua_type
    - htx_get_first
    - lua_rawlen
    - lua_rawset
    - htx_get_blk_type
    - hlua_pusherror
    - lua_newtable
    - WILL_LJMP
    - lua_gettable
    - htx_get_blk_name
    - htx_get_next
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_get_headers(lua_State *L, struct buffer *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6564,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6564,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6565,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6565,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6567,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6568,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6568,1
    - Dst: hlua_http_get_headers
      Src: /src/haproxy/src/hlua.c:6570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6571
      start: 6560
    functionDepth: 2
    functionLinenumber: 6560
    functionLinenumberEnd: 6571
    functionName: hlua_http_req_get_headers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - IS_HTX_STRM
    - hlua_http_get_headers
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_req_get_headers(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6577,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6577,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6578,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6578,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6580,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6581,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6581,1
    - Dst: hlua_http_get_headers
      Src: /src/haproxy/src/hlua.c:6583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6584
      start: 6573
    functionDepth: 2
    functionLinenumber: 6573
    functionLinenumberEnd: 6584
    functionName: hlua_http_res_get_headers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - IS_HTX_STRM
    - hlua_http_get_headers
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_res_get_headers(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6593,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6593,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6594,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:6594,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6595,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:6595,1
    - Dst: regex_comp
      Src: /src/haproxy/src/hlua.c:6599,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6600,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:6600,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:6602,1
    - Dst: http_replace_hdrs
      Src: /src/haproxy/src/hlua.c:6603,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:6603,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6603,1
    - Dst: regex_free
      Src: /src/haproxy/src/hlua.c:6604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - L
    - msg
    - full
    argTypes:
    - lua_State*
    - struct http_msg*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6606
      start: 6590
    functionDepth: 2
    functionLinenumber: 6590
    functionLinenumberEnd: 6606
    functionName: hlua_http_rep_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - ist2
    - htxbuf
    - luaL_checklstring
    - regex_comp
    - luaL_argerror
    - luaL_checkstring
    - regex_free
    - http_replace_hdrs
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_rep_hdr(lua_State *L, struct http_msg *msg, int full)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6612,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6612,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6613,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6613,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6615,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6616,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6616,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6618,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:6618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6619
      start: 6608
    functionDepth: 3
    functionLinenumber: 6608
    functionLinenumberEnd: 6619
    functionName: hlua_http_req_rep_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - hlua_http_rep_hdr
    - IS_HTX_STRM
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_req_rep_hdr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6625,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6625,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6626,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6626,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6628,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6629,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6629,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6631,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:6631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6632
      start: 6621
    functionDepth: 3
    functionLinenumber: 6621
    functionLinenumberEnd: 6632
    functionName: hlua_http_res_rep_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - hlua_http_rep_hdr
    - IS_HTX_STRM
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_res_rep_hdr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6638,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6638,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6639,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6639,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6641,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6642,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6642,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6644,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:6644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6645
      start: 6634
    functionDepth: 3
    functionLinenumber: 6634
    functionLinenumberEnd: 6645
    functionName: hlua_http_req_rep_val
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - hlua_http_rep_hdr
    - IS_HTX_STRM
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_req_rep_val(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6651,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6651,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6652,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6652,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6654,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6655,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6655,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6657,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:6657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6658
      start: 6647
    functionDepth: 3
    functionLinenumber: 6647
    functionLinenumberEnd: 6658
    functionName: hlua_http_res_rep_val
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - hlua_http_rep_hdr
    - IS_HTX_STRM
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_res_rep_val(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6666,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6666,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:6667,1
    - Dst: http_find_header
      Src: /src/haproxy/src/hlua.c:6671,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6671,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/hlua.c:6672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - L
    - msg
    argTypes:
    - lua_State*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6674
      start: 6663
    functionDepth: 1
    functionLinenumber: 6663
    functionLinenumberEnd: 6674
    functionName: hlua_http_del_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - ist2
    - htxbuf
    - luaL_checklstring
    - http_find_header
    - http_remove_header
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_del_hdr(lua_State *L, struct http_msg *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6680,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6680,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6681,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6681,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6683,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6684,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6684,1
    - Dst: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:6686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6687
      start: 6676
    functionDepth: 2
    functionLinenumber: 6676
    functionLinenumberEnd: 6687
    functionName: hlua_http_req_del_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - hlua_http_del_hdr
    - IS_HTX_STRM
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_req_del_hdr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6693,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6693,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6694,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6694,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6696,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6697,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6697,1
    - Dst: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:6699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6700
      start: 6689
    functionDepth: 2
    functionLinenumber: 6689
    functionLinenumberEnd: 6700
    functionName: hlua_http_res_del_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - hlua_http_del_hdr
    - IS_HTX_STRM
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_res_del_hdr(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6708,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6708,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6710,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6710,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:6711,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6719,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6719,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6724,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6724,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6727,1
    - Dst: http_add_header
      Src: /src/haproxy/src/hlua.c:6727,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6727,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6728,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - L
    - msg
    argTypes:
    - lua_State*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6730
      start: 6705
    functionDepth: 1
    functionLinenumber: 6705
    functionLinenumberEnd: 6730
    functionName: hlua_http_add_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - ist2
    - htxbuf
    - luaL_checklstring
    - lua_pushboolean
    - WILL_LJMP
    - http_add_header
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_add_hdr(lua_State *L, struct http_msg *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6736,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6736,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6737,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6737,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6739,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6740,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6740,1
    - Dst: hlua_http_add_hdr
      Src: /src/haproxy/src/hlua.c:6742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6743
      start: 6732
    functionDepth: 2
    functionLinenumber: 6732
    functionLinenumberEnd: 6743
    functionName: hlua_http_req_add_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - IS_HTX_STRM
    - WILL_LJMP
    - hlua_http_add_hdr
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_req_add_hdr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6749,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6749,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6750,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6750,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6752,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6753,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6753,1
    - Dst: hlua_http_add_hdr
      Src: /src/haproxy/src/hlua.c:6755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6756
      start: 6745
    functionDepth: 2
    functionLinenumber: 6745
    functionLinenumberEnd: 6756
    functionName: hlua_http_res_add_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - IS_HTX_STRM
    - WILL_LJMP
    - hlua_http_add_hdr
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_res_add_hdr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6762,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6762,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6763,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6763,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6765,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6766,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6766,1
    - Dst: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:6768,1
    - Dst: hlua_http_add_hdr
      Src: /src/haproxy/src/hlua.c:6769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6770
      start: 6758
    functionDepth: 2
    functionLinenumber: 6758
    functionLinenumberEnd: 6770
    functionName: hlua_http_req_set_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - hlua_http_del_hdr
    - IS_HTX_STRM
    - WILL_LJMP
    - hlua_http_add_hdr
    linkageType: ''
    returnType: int
    signature: int hlua_http_req_set_hdr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6776,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6776,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6777,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6777,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6779,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6780,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6780,1
    - Dst: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:6782,1
    - Dst: hlua_http_add_hdr
      Src: /src/haproxy/src/hlua.c:6783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6784
      start: 6772
    functionDepth: 2
    functionLinenumber: 6772
    functionLinenumberEnd: 6784
    functionName: hlua_http_res_set_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttp
    - check_args
    - hlua_http_del_hdr
    - IS_HTX_STRM
    - WILL_LJMP
    - hlua_http_add_hdr
    linkageType: ''
    returnType: int
    signature: int hlua_http_res_set_hdr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6789,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6789,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6791,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6791,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6793,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6794,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6794,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6796,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:6796,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6798
      start: 6787
    functionDepth: 2
    functionLinenumber: 6787
    functionLinenumberEnd: 6798
    functionName: hlua_http_req_set_meth
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - luaL_checklstring
    - hlua_checkhttp
    - http_req_replace_stline
    - lua_pushboolean
    - IS_HTX_STRM
    - WILL_LJMP
    linkageType: ''
    returnType: int
    signature: int hlua_http_req_set_meth(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6803,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6803,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6805,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6805,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6807,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6808,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6808,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6810,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:6810,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6812
      start: 6801
    functionDepth: 2
    functionLinenumber: 6801
    functionLinenumberEnd: 6812
    functionName: hlua_http_req_set_path
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - luaL_checklstring
    - hlua_checkhttp
    - http_req_replace_stline
    - lua_pushboolean
    - IS_HTX_STRM
    - WILL_LJMP
    linkageType: ''
    returnType: int
    signature: int hlua_http_req_set_path(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6817,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6817,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6819,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6819,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6821,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6822,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6822,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6826,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/hlua.c:6831,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:6833,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6836,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:6837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6839
      start: 6815
    functionDepth: 2
    functionLinenumber: 6815
    functionLinenumberEnd: 6839
    functionName: hlua_http_req_set_query
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - luaL_checklstring
    - memcpy
    - hlua_checkhttp
    - http_req_replace_stline
    - lua_pushboolean
    - IS_HTX_STRM
    - chunk_reset
    - WILL_LJMP
    linkageType: ''
    returnType: int
    signature: int hlua_http_req_set_query(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6844,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6844,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6846,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6846,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6848,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6849,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6849,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6851,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:6851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6853
      start: 6842
    functionDepth: 2
    functionLinenumber: 6842
    functionLinenumberEnd: 6853
    functionName: hlua_http_req_set_uri
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - luaL_checklstring
    - hlua_checkhttp
    - http_req_replace_stline
    - lua_pushboolean
    - IS_HTX_STRM
    - WILL_LJMP
    linkageType: ''
    returnType: int
    signature: int hlua_http_req_set_uri(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6858,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6858,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6859,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:6859,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6860,1
    - Dst: luaL_optlstring
      Src: /src/haproxy/src/hlua.c:6860,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6861,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:6861,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6863,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6864,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6864,1
    - Dst: http_res_set_status
      Src: /src/haproxy/src/hlua.c:6866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6868
      start: 6856
    functionDepth: 2
    functionLinenumber: 6856
    functionLinenumberEnd: 6868
    functionName: hlua_http_res_set_status
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - ist2
    - http_res_set_status
    - hlua_checkhttp
    - luaL_checkinteger
    - IS_HTX_STRM
    - luaL_optlstring
    - WILL_LJMP
    - strlen
    linkageType: ''
    returnType: int
    signature: int hlua_http_res_set_status(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6883,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:6883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6884
      start: 6881
    functionDepth: 1
    functionLinenumber: 6881
    functionLinenumberEnd: 6884
    functionName: hlua_checkhttpmsg
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkudata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP *hlua_checkhttpmsg(lua_State *L, int ud)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:6891,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:6894,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:6895,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:6896,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6899,1
    - Dst: hlua_channel_new
      Src: /src/haproxy/src/hlua.c:6900,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:6902,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:6905,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:6906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - L
    - msg
    argTypes:
    - lua_State*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6909
      start: 6888
    functionDepth: 1
    functionLinenumber: 6888
    functionLinenumberEnd: 6909
    functionName: hlua_http_msg_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushlightuserdata
    - lua_rawseti
    - hlua_channel_new
    - lua_rawgeti
    - lua_pushstring
    - lua_checkstack
    - lua_rawset
    - lua_setmetatable
    - lua_newtable
    linkageType: ''
    returnType: int
    signature: int hlua_http_msg_new(lua_State *L, struct http_msg *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:6919,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:6922,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:6923,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:6925,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:6926,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:6930,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:6931,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - L
    - ud
    - msg
    - offset
    - len
    argTypes:
    - lua_State*
    - int
    - struct http_msg*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6937
      start: 6916
    functionDepth: 1
    functionLinenumber: 6916
    functionLinenumberEnd: 6937
    functionName: hlua_http_msg_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - lua_getfield
    - lua_pop
    - co_data
    - lua_touserdata
    - CHN_IDX
    linkageType: ''
    returnType: struct filter
    signature: struct filter *hlua_http_msg_filter(lua_State *L, int ud, struct http_msg
      *msg, size_t *offset, size_t *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6946,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6946,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6947,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6947,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6951
      start: 6942
    functionDepth: 2
    functionLinenumber: 6942
    functionLinenumberEnd: 6951
    functionName: hlua_http_msg_is_resp
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - lua_pushboolean
    - hlua_checkhttpmsg
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_is_resp(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6962,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6962,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6963,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6963,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6966,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6966,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:6968,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/hlua.c:6969,1
    - Dst: hlua_http_get_stline
      Src: /src/haproxy/src/hlua.c:6972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6973
      start: 6956
    functionDepth: 2
    functionLinenumber: 6956
    functionLinenumberEnd: 6973
    functionName: hlua_http_msg_get_stline
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - htxbuf
    - hlua_checkhttpmsg
    - http_get_stline
    - check_args
    - hlua_http_get_stline
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_get_stline(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6982,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6982,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6983,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6983,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6986,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6986,1
    - Dst: hlua_http_get_headers
      Src: /src/haproxy/src/hlua.c:6988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6989
      start: 6978
    functionDepth: 2
    functionLinenumber: 6978
    functionLinenumberEnd: 6989
    functionName: hlua_http_msg_get_headers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    - check_args
    - hlua_http_get_headers
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_get_headers(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6998,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6998,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6999,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6999,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7002,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7002,1
    - Dst: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:7004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7005
      start: 6994
    functionDepth: 2
    functionLinenumber: 6994
    functionLinenumberEnd: 7005
    functionName: hlua_http_msg_del_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    - check_args
    - hlua_http_del_hdr
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_del_hdr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7015,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7015,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7016,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7016,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7019,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7019,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:7021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7022
      start: 7011
    functionDepth: 3
    functionLinenumber: 7011
    functionLinenumberEnd: 7022
    functionName: hlua_http_msg_rep_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    - check_args
    - hlua_http_rep_hdr
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_rep_hdr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7032,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7032,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7033,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7033,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7036,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7036,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:7038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7039
      start: 7028
    functionDepth: 3
    functionLinenumber: 7028
    functionLinenumberEnd: 7039
    functionName: hlua_http_msg_rep_val
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    - check_args
    - hlua_http_rep_hdr
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_rep_val(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7046,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7046,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7047,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7047,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7050,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7050,1
    - Dst: hlua_http_add_hdr
      Src: /src/haproxy/src/hlua.c:7052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7053
      start: 7042
    functionDepth: 2
    functionLinenumber: 7042
    functionLinenumberEnd: 7053
    functionName: hlua_http_msg_add_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    - check_args
    - WILL_LJMP
    - hlua_http_add_hdr
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_add_hdr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7062,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7062,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7063,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7063,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7066,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7066,1
    - Dst: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:7068,1
    - Dst: hlua_http_add_hdr
      Src: /src/haproxy/src/hlua.c:7069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7070
      start: 7058
    functionDepth: 2
    functionLinenumber: 7058
    functionLinenumberEnd: 7070
    functionName: hlua_http_msg_set_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    - check_args
    - hlua_http_del_hdr
    - WILL_LJMP
    - hlua_http_add_hdr
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_set_hdr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7080,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7080,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7081,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7081,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7082,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7082,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7085,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7085,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:7087,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7088,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:7088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7090
      start: 7073
    functionDepth: 2
    functionLinenumber: 7073
    functionLinenumberEnd: 7090
    functionName: hlua_http_msg_set_meth
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - chn_strm
    - luaL_checklstring
    - hlua_checkhttpmsg
    - check_args
    - http_req_replace_stline
    - lua_pushboolean
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_set_meth(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7100,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7100,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7101,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7101,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7102,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7102,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7105,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7105,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:7107,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7108,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:7108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7110
      start: 7093
    functionDepth: 2
    functionLinenumber: 7093
    functionLinenumberEnd: 7110
    functionName: hlua_http_msg_set_path
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - chn_strm
    - luaL_checklstring
    - hlua_checkhttpmsg
    - check_args
    - http_req_replace_stline
    - lua_pushboolean
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_set_path(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7120,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7120,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7121,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7121,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7122,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7122,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7125,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7125,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7129,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/hlua.c:7134,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:7136,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:7139,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7140,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:7140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7142
      start: 7113
    functionDepth: 2
    functionLinenumber: 7113
    functionLinenumberEnd: 7142
    functionName: hlua_http_msg_set_query
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - chn_strm
    - luaL_checklstring
    - hlua_checkhttpmsg
    - memcpy
    - check_args
    - http_req_replace_stline
    - lua_pushboolean
    - chunk_reset
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_set_query(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7152,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7152,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7153,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7153,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7154,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7154,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7157,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7157,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:7159,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7160,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:7160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7162
      start: 7145
    functionDepth: 2
    functionLinenumber: 7145
    functionLinenumberEnd: 7162
    functionName: hlua_http_msg_set_uri
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - chn_strm
    - luaL_checklstring
    - hlua_checkhttpmsg
    - check_args
    - http_req_replace_stline
    - lua_pushboolean
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_set_uri(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7172,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7172,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7173,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7173,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7174,1
    - Dst: luaL_optlstring
      Src: /src/haproxy/src/hlua.c:7174,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7177,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7177,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7179,1
    - Dst: http_res_set_status
      Src: /src/haproxy/src/hlua.c:7179,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7179,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:7179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7181
      start: 7165
    functionDepth: 2
    functionLinenumber: 7165
    functionLinenumberEnd: 7181
    functionName: hlua_http_msg_set_status
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - ist2
    - chn_strm
    - http_res_set_status
    - hlua_checkhttpmsg
    - lua_pushboolean
    - luaL_checkinteger
    - luaL_optlstring
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_set_status(lua_State *L)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7191,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7191,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7192,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7192,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7194,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7194,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:7195,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/hlua.c:7196,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/hlua.c:7196,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:7197,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:7199,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:7202,1
    - Dst: http_add_header
      Src: /src/haproxy/src/hlua.c:7210,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7210,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7210,1
    - Dst: http_find_header
      Src: /src/haproxy/src/hlua.c:7218,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7218,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/hlua.c:7219,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:7229,1
    - Dst: ultoa
      Src: /src/haproxy/src/hlua.c:7232,1
    - Dst: http_find_header
      Src: /src/haproxy/src/hlua.c:7237,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7237,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/hlua.c:7238,1
    - Dst: http_add_header
      Src: /src/haproxy/src/hlua.c:7242,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7242,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7242,1
    - Dst: http_find_header
      Src: /src/haproxy/src/hlua.c:7250,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7250,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/hlua.c:7251,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7258,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7258,1
    - Dst: chn_prod
      Src: /src/haproxy/src/hlua.c:7262,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7263,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7267,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7269
      start: 7184
    functionDepth: 2
    functionLinenumber: 7184
    functionLinenumberEnd: 7269
    functionName: hlua_http_msg_set_body_len
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - http_find_header
    - http_remove_header
    - lua_pushboolean
    - luaL_error
    - ASSUME_NONNULL
    - http_add_header
    - ist
    - strcmp
    - WILL_LJMP
    - htxbuf
    - lua_tointeger
    - http_get_stline
    - hlua_checkhttpmsg
    - lua_type
    - check_args
    - chn_prod
    - lua_tostring
    - ultoa
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_set_body_len(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7276,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7276,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7277,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7277,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7278,1
    - Dst: channel_full
      Src: /src/haproxy/src/hlua.c:7278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7280
      start: 7272
    functionDepth: 2
    functionLinenumber: 7272
    functionLinenumberEnd: 7280
    functionName: hlua_http_msg_is_full
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkhttpmsg
    - check_args
    - channel_full
    - lua_pushboolean
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_is_full(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7288,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7288,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7289,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7289,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:7290,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7291,1
    - Dst: htx_expect_more
      Src: /src/haproxy/src/hlua.c:7291,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:7291,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/hlua.c:7291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7293
      start: 7283
    functionDepth: 2
    functionLinenumber: 7283
    functionLinenumberEnd: 7293
    functionName: hlua_http_msg_may_recv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - htx_expect_more
    - htxbuf
    - hlua_checkhttpmsg
    - channel_may_recv
    - check_args
    - lua_pushboolean
    - channel_input_closed
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_may_recv(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7301,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7301,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7302,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7302,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:7303,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7304,1
    - Dst: htx_expect_more
      Src: /src/haproxy/src/hlua.c:7304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7306
      start: 7296
    functionDepth: 2
    functionLinenumber: 7296
    functionLinenumberEnd: 7306
    functionName: hlua_http_msg_is_eom
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - htx_expect_more
    - htxbuf
    - hlua_checkhttpmsg
    - check_args
    - lua_pushboolean
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_is_eom(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7316,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7316,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7317,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7317,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7318,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7321
      start: 7311
    functionDepth: 2
    functionLinenumber: 7311
    functionLinenumberEnd: 7321
    functionName: hlua_http_msg_get_in_len
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_http_msg_filter
    - hlua_checkhttpmsg
    - check_args
    - lua_pushinteger
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_get_in_len(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7331,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7331,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7332,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7332,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7333,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7336
      start: 7326
    functionDepth: 2
    functionLinenumber: 7326
    functionLinenumberEnd: 7336
    functionName: hlua_http_msg_get_out_len
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_http_msg_filter
    - hlua_checkhttpmsg
    - check_args
    - lua_pushinteger
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_get_out_len(lua_State *L)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:7346,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:7352,1
    - Dst: htx_find_offset
      Src: /src/haproxy/src/hlua.c:7353,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/hlua.c:7354,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:7355,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:7363,1
    - Dst: istadv
      Src: /src/haproxy/src/hlua.c:7364,1
    - Dst: isttrim
      Src: /src/haproxy/src/hlua.c:7365,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:7367,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:7382,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:7387,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:7388,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 4
    argNames:
    - msg
    - L
    - offset
    - len
    argTypes:
    - struct http_msg*
    - lua_State*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7390
      start: 7344
    functionDepth: 1
    functionLinenumber: 7344
    functionLinenumberEnd: 7390
    functionName: _hlua_http_msg_dup
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htx_find_offset
    - htx_get_next_blk
    - istadv
    - htxbuf
    - isttrim
    - lua_pop
    - lua_pushnil
    - htx_get_blk_type
    - luaL_pushresult
    - luaL_buffinit
    - luaL_addlstring
    - htx_get_blk_value
    linkageType: ''
    returnType: int
    signature: int _hlua_http_msg_dup(struct http_msg *msg, lua_State *L, size_t offset,
      size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:7399,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:7404,1
    - Dst: istlen
      Src: /src/haproxy/src/hlua.c:7404,1
    - Dst: istlen
      Src: /src/haproxy/src/hlua.c:7407,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/hlua.c:7407,1
    - Dst: htx_find_offset
      Src: /src/haproxy/src/hlua.c:7412,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:7413,1
    - Dst: htx_add_last_data
      Src: /src/haproxy/src/hlua.c:7414,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:7418,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/hlua.c:7421,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:7427,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7428,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:7432,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - msg
    - filter
    - str
    - offset
    argTypes:
    - struct http_msg*
    - struct filter*
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7434
      start: 7397
    functionDepth: 1
    functionLinenumber: 7397
    functionLinenumberEnd: 7434
    functionName: _hlua_http_msg_insert
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_find_offset
    - htx_to_buf
    - CHN_IDX
    - flt_update_offsets
    - htx_replace_blk_value
    - htx_get_blk_value
    - htx_get_blk_type
    - htx_free_data_space
    - htx_add_last_data
    - istlen
    - htx_from_buf
    linkageType: ''
    returnType: int
    signature: int _hlua_http_msg_insert(struct http_msg *msg, struct filter *filter,
      struct ist str, size_t offset)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:7445,1
    - Dst: htx_get_tail_type
      Src: /src/haproxy/src/hlua.c:7451,1
    - Dst: htx_truncate
      Src: /src/haproxy/src/hlua.c:7457,1
    - Dst: htx_find_offset
      Src: /src/haproxy/src/hlua.c:7462,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:7468,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:7471,1
    - Dst: istadv
      Src: /src/haproxy/src/hlua.c:7472,1
    - Dst: isttrim
      Src: /src/haproxy/src/hlua.c:7474,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/hlua.c:7478,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/hlua.c:7484,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:7493,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/hlua.c:7494,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/hlua.c:7505,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/hlua.c:7519,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:7523,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7524,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 4
    argNames:
    - msg
    - filter
    - offset
    - len
    argTypes:
    - struct http_msg*
    - struct filter*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7528
      start: 7442
    functionDepth: 1
    functionLinenumber: 7442
    functionLinenumberEnd: 7528
    functionName: _hlua_http_msg_delete
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htx_find_offset
    - htx_get_next_blk
    - istadv
    - htx_get_blksz
    - isttrim
    - htx_get_tail_type
    - htx_cut_data_blk
    - htx_replace_blk_value
    - flt_update_offsets
    - htx_get_blk_value
    - htx_get_blk_type
    - htx_remove_blk
    - htx_truncate
    - CHN_IDX
    - htx_from_buf
    linkageType: ''
    returnType: void
    signature: void _hlua_http_msg_delete(struct http_msg *msg, struct filter *filter,
      size_t offset, size_t len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7543,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7543,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7544,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7544,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7545,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7545,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7548,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7548,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7550,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7551,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7552,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7552,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:7554,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:7554,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:7555,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7560,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7561,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7561,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:7563,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7566,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7567,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7567,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7571,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7572,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7572,1
    - Dst: c_size
      Src: /src/haproxy/src/hlua.c:7576,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7578,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7579,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7579,1
    - Dst: _hlua_http_msg_dup
      Src: /src/haproxy/src/hlua.c:7584,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7586
      start: 7536
    functionDepth: 2
    functionLinenumber: 7536
    functionLinenumberEnd: 7586
    functionName: hlua_http_msg_get_body
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_http_msg_filter
    - hlua_checkhttpmsg
    - ci_data
    - c_size
    - luaL_error
    - channel_input_closed
    - lua_pushnil
    - luaL_checkinteger
    - MAX
    - lua_gettop
    - hlua_filter_from_payload
    - lua_pushfstring
    - _hlua_http_msg_dup
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_get_body(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7602,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7602,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7603,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7603,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7606,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7606,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7608,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7608,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7609,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7610,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7611,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7611,1
    - Dst: _hlua_http_msg_insert
      Src: /src/haproxy/src/hlua.c:7613,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7613,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7616
      start: 7594
    functionDepth: 2
    functionLinenumber: 7594
    functionLinenumberEnd: 7616
    functionName: hlua_http_msg_append
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - ist2
    - hlua_http_msg_filter
    - luaL_checklstring
    - hlua_checkhttpmsg
    - check_args
    - _hlua_http_msg_insert
    - lua_pushinteger
    - hlua_filter_from_payload
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_append(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7632,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7632,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7633,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7633,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7636,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7636,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7638,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7638,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7639,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7640,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7641,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7641,1
    - Dst: _hlua_http_msg_insert
      Src: /src/haproxy/src/hlua.c:7643,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7643,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7646
      start: 7624
    functionDepth: 2
    functionLinenumber: 7624
    functionLinenumberEnd: 7646
    functionName: hlua_http_msg_prepend
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - ist2
    - hlua_http_msg_filter
    - luaL_checklstring
    - hlua_checkhttpmsg
    - check_args
    - _hlua_http_msg_insert
    - lua_pushinteger
    - hlua_filter_from_payload
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_prepend(lua_State *L)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7664,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7664,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7665,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7665,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7666,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7666,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7669,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7669,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7671,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7671,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7672,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7673,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7674,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7674,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7677,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7678,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7678,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:7680,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7683,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7684,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7684,1
    - Dst: _hlua_http_msg_insert
      Src: /src/haproxy/src/hlua.c:7688,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7688,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7689,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7691
      start: 7655
    functionDepth: 2
    functionLinenumber: 7655
    functionLinenumberEnd: 7691
    functionName: hlua_http_msg_insert_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - ist2
    - hlua_http_msg_filter
    - luaL_checklstring
    - hlua_checkhttpmsg
    - _hlua_http_msg_insert
    - luaL_error
    - luaL_checkinteger
    - MAX
    - lua_gettop
    - hlua_filter_from_payload
    - lua_pushinteger
    - lua_pushfstring
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_insert_data(lua_State *L)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7706,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7706,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7707,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7707,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7708,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7708,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7711,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7711,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7713,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7714,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7715,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7715,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7718,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7719,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7719,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:7721,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7724,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7725,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7725,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7730,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7731,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7731,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7737,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7738,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7738,1
    - Dst: _hlua_http_msg_delete
      Src: /src/haproxy/src/hlua.c:7742,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7745,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7747
      start: 7699
    functionDepth: 2
    functionLinenumber: 7699
    functionLinenumberEnd: 7747
    functionName: hlua_http_msg_del_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - hlua_http_msg_filter
    - hlua_checkhttpmsg
    - luaL_error
    - luaL_checkinteger
    - MAX
    - lua_gettop
    - hlua_filter_from_payload
    - lua_pushinteger
    - lua_pushfstring
    - WILL_LJMP
    - _hlua_http_msg_delete
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_del_data(lua_State *L)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7766,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7766,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7767,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7767,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7768,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7768,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7771,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7771,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7773,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7773,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7774,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7775,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7776,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7776,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7779,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7780,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7780,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:7782,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7785,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7786,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7786,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7791,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7792,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7792,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7798,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7799,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7799,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:7805,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/hlua.c:7806,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7807,1
    - Dst: _hlua_http_msg_delete
      Src: /src/haproxy/src/hlua.c:7809,1
    - Dst: _hlua_http_msg_insert
      Src: /src/haproxy/src/hlua.c:7810,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7810,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7811,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7814
      start: 7756
    functionDepth: 2
    functionLinenumber: 7756
    functionLinenumberEnd: 7814
    functionName: hlua_http_msg_set_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - ist2
    - hlua_http_msg_filter
    - luaL_checklstring
    - hlua_checkhttpmsg
    - _hlua_http_msg_insert
    - luaL_error
    - luaL_checkinteger
    - MAX
    - lua_gettop
    - hlua_filter_from_payload
    - lua_pushinteger
    - lua_pushfstring
    - htx_free_data_space
    - WILL_LJMP
    - _hlua_http_msg_delete
    - htx_from_buf
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_set_data(lua_State *L)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7831,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7831,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7832,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7832,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7835,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7835,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7837,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7837,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7838,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7839,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7840,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7840,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:7843,1
    - Dst: channel_output_closed
      Src: /src/haproxy/src/hlua.c:7843,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7844,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:7848,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/hlua.c:7849,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7850,1
    - Dst: _hlua_http_msg_insert
      Src: /src/haproxy/src/hlua.c:7854,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7854,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/hlua.c:7858,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7859,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7860,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7863,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7865
      start: 7822
    functionDepth: 2
    functionLinenumber: 7822
    functionLinenumberEnd: 7865
    functionName: hlua_http_msg_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - unlikely
    - hlua_http_msg_filter
    - luaL_checklstring
    - ist2
    - hlua_checkhttpmsg
    - FLT_OFF
    - check_args
    - _hlua_http_msg_insert
    - lua_pushinteger
    - hlua_filter_from_payload
    - htx_free_data_space
    - WILL_LJMP
    - CHN_IDX
    - channel_output_closed
    - htx_from_buf
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_send(lua_State *L)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7881,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7881,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7882,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7882,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7885,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7885,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7887,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7887,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7888,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7889,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7890,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7890,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:7897,1
    - Dst: channel_output_closed
      Src: /src/haproxy/src/hlua.c:7897,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/hlua.c:7909,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7910,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7911,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7915,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7917
      start: 7874
    functionDepth: 2
    functionLinenumber: 7874
    functionLinenumberEnd: 7917
    functionName: hlua_http_msg_forward
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - unlikely
    - hlua_http_msg_filter
    - FLT_OFF
    - hlua_checkhttpmsg
    - check_args
    - luaL_checkinteger
    - lua_pushinteger
    - hlua_filter_from_payload
    - WILL_LJMP
    - CHN_IDX
    - channel_output_closed
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_forward(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7929,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7929,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7930,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7930,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:7931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7934
      start: 7924
    functionDepth: 2
    functionLinenumber: 7924
    functionLinenumberEnd: 7934
    functionName: hlua_http_msg_set_eom
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - htxbuf
    - check_args
    - hlua_checkhttpmsg
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_set_eom(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7946,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7946,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7947,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7947,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:7948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7951
      start: 7941
    functionDepth: 2
    functionLinenumber: 7941
    functionLinenumberEnd: 7951
    functionName: hlua_http_msg_unset_eom
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - htxbuf
    - check_args
    - hlua_checkhttpmsg
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_msg_unset_eom(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7962,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:7962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7963
      start: 7960
    functionDepth: 1
    functionLinenumber: 7960
    functionLinenumberEnd: 7963
    functionName: hlua_checkhttpclient
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkudata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP *hlua_checkhttpclient(lua_State *L, int ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7971,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7971,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7973,1
    - Dst: hlua_checkhttpclient
      Src: /src/haproxy/src/hlua.c:7973,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/hlua.c:7975,1
    - Dst: httpclient_stop_and_destroy
      Src: /src/haproxy/src/hlua.c:7977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7982
      start: 7967
    functionDepth: 2
    functionLinenumber: 7967
    functionLinenumberEnd: 7982
    functionName: hlua_httpclient_gc
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - MT_LIST_DELETE
    - check_args
    - httpclient_stop_and_destroy
    - hlua_checkhttpclient
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_gc(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:7991,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:7996,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:7997,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:8001,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8002,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:8002,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:8003,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:8004,1
    - Dst: httpclient_new
      Src: /src/haproxy/src/hlua.c:8006,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/hlua.c:8010,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:8013,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:8014,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8019,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:8019,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8021
      start: 7985
    functionDepth: 1
    functionLinenumber: 7985
    functionLinenumberEnd: 8021
    functionName: hlua_httpclient_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - lua_rawseti
    - memset
    - httpclient_new
    - hlua_gethlua
    - lua_rawgeti
    - MT_LIST_APPEND
    - lua_checkstack
    - hlua_pusherror
    - lua_newtable
    - lua_setmetatable
    - lua_newuserdata
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_new(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:8037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8038
      start: 8030
    functionDepth: 1
    functionLinenumber: 8030
    functionLinenumberEnd: 8038
    functionName: hlua_httpclient_cb
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    linkageType: ''
    returnType: void
    signature: void hlua_httpclient_cb(struct httpclient *hc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:8048,1
    - Dst: isttest
      Src: /src/haproxy/src/hlua.c:8050,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:8063,1
    - Dst: lua_gettable
      Src: /src/haproxy/src/hlua.c:8064,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:8066,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8069,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:8070,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:8071,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:8072,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:8073,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8074,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:8079,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:8080,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:8081,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8082,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:8087,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8088,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:8088,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - L
    - hlua_hc
    argTypes:
    - lua_State*
    - struct hlua_httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8092
      start: 8044
    functionDepth: 1
    functionLinenumber: 8044
    functionLinenumberEnd: 8092
    functionName: hlua_httpclient_get_headers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_error
    - lua_rawseti
    - lua_pushlstring
    - lua_pop
    - lua_type
    - lua_rawlen
    - lua_rawset
    - WILL_LJMP
    - hlua_pusherror
    - lua_newtable
    - lua_gettable
    - isttest
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_get_headers(lua_State *L, struct hlua_httpclient
      *hlua_hc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8105,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:8106,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:8111,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:8111,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8116,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8117,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8120,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:8121,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:8122,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8128,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8132,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8133,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8134,1
    - Dst: istdup
      Src: /src/haproxy/src/hlua.c:8136,1
    - Dst: istdup
      Src: /src/haproxy/src/hlua.c:8137,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8142,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8146,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:8152,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:8155,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8164
      start: 8099
    functionDepth: 1
    functionLinenumber: 8099
    functionLinenumberEnd: 8164
    functionName: hlua_httpclient_table_to_hdrs
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - ist2
    - memcpy
    - lua_pop
    - calloc
    - lua_pushnil
    - istdup
    - lua_tolstring
    - lua_istable
    - lua_isstring
    - lua_next
    linkageType: ''
    returnType: struct http_hdr
    signature: struct http_hdr *hlua_httpclient_table_to_hdrs(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:8176,1
    - Dst: hlua_checkhttpclient
      Src: /src/haproxy/src/hlua.c:8177,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:8180,1
    - Dst: httpclient_res_xfer
      Src: /src/haproxy/src/hlua.c:8182,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:8183,1
    - Dst: b_orig
      Src: /src/haproxy/src/hlua.c:8183,1
    - Dst: httpclient_data
      Src: /src/haproxy/src/hlua.c:8185,1
    - Dst: httpclient_ended
      Src: /src/haproxy/src/hlua.c:8185,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:8187,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:8188,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8190,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:8191,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:8192,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8195,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:8196,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:8197,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8199,1
    - Dst: hlua_httpclient_get_headers
      Src: /src/haproxy/src/hlua.c:8200,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:8201,1
    - Dst: httpclient_data
      Src: /src/haproxy/src/hlua.c:8206,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:8207,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8209,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:8209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8212
      start: 8172
    functionDepth: 2
    functionLinenumber: 8172
    functionLinenumberEnd: 8212
    functionName: hlua_httpclient_rcv_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_pushlstring
    - b_orig
    - httpclient_ended
    - hlua_gethlua
    - hlua_httpclient_get_headers
    - task_wakeup
    - httpclient_res_xfer
    - lua_pushstring
    - get_trash_chunk
    - luaL_pushresult
    - lua_pushinteger
    - lua_settable
    - httpclient_data
    - luaL_addlstring
    - hlua_checkhttpclient
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_rcv_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkhttpclient
      Src: /src/haproxy/src/hlua.c:8220,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:8227,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8230,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8230,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8233,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8237,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8238,1
    - Dst: httpclient_req_xfer
      Src: /src/haproxy/src/hlua.c:8246,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8246,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8250,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:8250,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:8260,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8262,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:8263,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:8265,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8266,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:8266,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8269
      start: 8217
    functionDepth: 2
    functionLinenumber: 8217
    functionLinenumberEnd: 8269
    functionName: hlua_httpclient_snd_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - ist2
    - lua_getfield
    - hlua_gethlua
    - lua_pop
    - httpclient_req_xfer
    - task_wakeup
    - lua_pushstring
    - luaL_error
    - lua_tolstring
    - lua_newtable
    - luaL_buffinit
    - WILL_LJMP
    - hlua_checkhttpclient
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_snd_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:8286,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8289,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8289,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:8292,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:8292,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8293,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8293,1
    - Dst: hlua_checkhttpclient
      Src: /src/haproxy/src/hlua.c:8295,1
    - Dst: httpclient_started
      Src: /src/haproxy/src/hlua.c:8300,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8301,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8301,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8303,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:8304,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:8305,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8305,1
    - Dst: httpclient_set_dst
      Src: /src/haproxy/src/hlua.c:8306,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8306,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8307,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8307,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:8309,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8309,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:8310,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8311,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8311,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8312,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:8314,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8314,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:8315,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8316,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8316,1
    - Dst: httpclient_set_timeout
      Src: /src/haproxy/src/hlua.c:8317,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:8317,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:8319,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8319,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:8320,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8321,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8321,1
    - Dst: hlua_httpclient_table_to_hdrs
      Src: /src/haproxy/src/hlua.c:8322,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:8324,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8324,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:8325,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8326,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8326,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8327,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8330,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8330,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8330,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8333,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8337,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8337,1
    - Dst: istfree
      Src: /src/haproxy/src/hlua.c:8343,1
    - Dst: istdup
      Src: /src/haproxy/src/hlua.c:8344,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8344,1
    - Dst: httpclient_req_gen
      Src: /src/haproxy/src/hlua.c:8358,1
    - Dst: isttest
      Src: /src/haproxy/src/hlua.c:8362,1
    - Dst: istfree
      Src: /src/haproxy/src/hlua.c:8363,1
    - Dst: istfree
      Src: /src/haproxy/src/hlua.c:8364,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:8367,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8371,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8371,1
    - Dst: httpclient_start
      Src: /src/haproxy/src/hlua.c:8375,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8376,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8376,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8378,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:8378,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 2
    argNames:
    - L
    - meth
    argTypes:
    - lua_State*
    - enum http_meth_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8381
      start: 8275
    functionDepth: 2
    functionLinenumber: 8275
    functionLinenumberEnd: 8381
    functionName: hlua_httpclient_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_httpclient_table_to_hdrs
    - luaL_error
    - lua_pushnil
    - ist
    - hlua_gethlua
    - ha_free
    - istfree
    - strcmp
    - lua_tolstring
    - WILL_LJMP
    - lua_tointeger
    - httpclient_req_gen
    - lua_pop
    - httpclient_set_dst
    - httpclient_set_timeout
    - httpclient_start
    - lua_type
    - lua_tostring
    - istdup
    - lua_gettop
    - httpclient_started
    - hlua_yieldk
    - lua_next
    - hlua_checkhttpclient
    - isttest
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_send(lua_State *L, enum http_meth_t meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_httpclient_send
      Src: /src/haproxy/src/hlua.c:8390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8391
      start: 8388
    functionDepth: 3
    functionLinenumber: 8388
    functionLinenumberEnd: 8391
    functionName: hlua_httpclient_head
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_httpclient_send
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_head(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_httpclient_send
      Src: /src/haproxy/src/hlua.c:8400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8402
      start: 8398
    functionDepth: 3
    functionLinenumber: 8398
    functionLinenumberEnd: 8402
    functionName: hlua_httpclient_get
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_httpclient_send
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_get(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_httpclient_send
      Src: /src/haproxy/src/hlua.c:8411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8412
      start: 8409
    functionDepth: 3
    functionLinenumber: 8409
    functionLinenumberEnd: 8412
    functionName: hlua_httpclient_put
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_httpclient_send
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_put(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_httpclient_send
      Src: /src/haproxy/src/hlua.c:8421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8422
      start: 8419
    functionDepth: 3
    functionLinenumber: 8419
    functionLinenumberEnd: 8422
    functionName: hlua_httpclient_post
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_httpclient_send
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_post(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_httpclient_send
      Src: /src/haproxy/src/hlua.c:8432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8433
      start: 8430
    functionDepth: 3
    functionLinenumber: 8430
    functionLinenumberEnd: 8433
    functionName: hlua_httpclient_delete
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_httpclient_send
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_delete(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8448,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:8448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8449
      start: 8446
    functionDepth: 1
    functionLinenumber: 8446
    functionLinenumberEnd: 8449
    functionName: hlua_checktxn
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkudata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP *hlua_checktxn(lua_State *L, int ud)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:8458,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:8458,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8459,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8459,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8464,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8464,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8465,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:8465,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:8468,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:8469,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:8474,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:8476,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua.c:8476,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:8477,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:8477,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:8479,1
    - Dst: vars_set_by_name
      Src: /src/haproxy/src/hlua.c:8479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8482
      start: 8451
    functionDepth: 5
    functionLinenumber: 8451
    functionLinenumberEnd: 8482
    functionName: hlua_set_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - memset
    - lua_toboolean
    - lua_pushboolean
    - luaL_error
    - lua_gettop
    - smp_set_owner
    - vars_set_by_name
    - vars_set_by_name_ifexist
    - hlua_lua2smp
    - WILL_LJMP
    - hlua_checktxn
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_set_var(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8491,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8491,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8496,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8496,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8497,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:8497,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:8500,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:8501,1
    - Dst: vars_unset_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:8501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8503
      start: 8484
    functionDepth: 4
    functionLinenumber: 8484
    functionLinenumberEnd: 8503
    functionName: hlua_unset_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - check_args
    - lua_pushboolean
    - vars_unset_by_name_ifexist
    - smp_set_owner
    - hlua_checktxn
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_unset_var(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8512,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8512,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8517,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8517,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8518,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:8518,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:8520,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/src/hlua.c:8521,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8522,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8526,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:8526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8527
      start: 8505
    functionDepth: 4
    functionLinenumber: 8505
    functionLinenumberEnd: 8527
    functionName: hlua_get_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checklstring
    - check_args
    - lua_pushnil
    - hlua_smp2lua
    - smp_set_owner
    - hlua_checktxn
    - vars_get_by_name
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_get_var(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8533,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8533,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8538,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8538,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:8541,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:8546,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:8549,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:8550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8553
      start: 8529
    functionDepth: 2
    functionLinenumber: 8529
    functionLinenumberEnd: 8553
    functionName: hlua_set_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_unref
    - hlua_gethlua
    - lua_pushvalue
    - check_args
    - luaL_ref
    - hlua_checktxn
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_set_priv(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8559,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8559,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8564,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8564,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:8567,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8569,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:8574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8577
      start: 8555
    functionDepth: 2
    functionLinenumber: 8555
    functionLinenumberEnd: 8577
    functionName: hlua_get_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_gethlua
    - check_args
    - lua_rawgeti
    - lua_pushnil
    - hlua_checktxn
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_get_priv(lua_State *L)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:8588,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:8596,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:8597,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:8598,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8606,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:8607,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8609,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8612,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:8613,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8615,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8618,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:8619,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8621,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8624,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:8625,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8627,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8630,1
    - Dst: hlua_channel_new
      Src: /src/haproxy/src/hlua.c:8631,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8633,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8636,1
    - Dst: hlua_channel_new
      Src: /src/haproxy/src/hlua.c:8637,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8639,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8642,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:8643,1
    - Dst: hlua_http_new
      Src: /src/haproxy/src/hlua.c:8644,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8648,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8649,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8657,1
    - Dst: hlua_http_msg_new
      Src: /src/haproxy/src/hlua.c:8659,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8663,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8664,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8667,1
    - Dst: hlua_http_msg_new
      Src: /src/haproxy/src/hlua.c:8669,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8673,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8674,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:8678,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:8679,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 5
    argNames:
    - L
    - s
    - p
    - dir
    - flags
    argTypes:
    - lua_State*
    - struct stream*
    - struct proxy*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8682
      start: 8583
    functionDepth: 2
    functionLinenumber: 8583
    functionLinenumberEnd: 8682
    functionName: hlua_txn_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - hlua_channel_new
    - lua_rawgeti
    - lua_pushstring
    - lua_pushnil
    - lua_checkstack
    - lua_rawset
    - hlua_http_msg_new
    - lua_setmetatable
    - lua_newtable
    - IS_HTX_STRM
    - hlua_http_new
    - lua_newuserdata
    - hlua_fetches_new
    - hlua_converters_new
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_new(lua_State *L, struct stream *s, struct proxy *p,
      int dir, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8689,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8689,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8690,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8690,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8691,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8691,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8695
      start: 8684
    functionDepth: 2
    functionLinenumber: 8684
    functionLinenumberEnd: 8695
    functionName: hlua_txn_deflog
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_checkstring
    - hlua_checktxn
    - hlua_sendlog
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_deflog(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8703,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8703,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8704,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8704,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8705,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8705,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8706,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8706,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8709,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:8709,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8713
      start: 8697
    functionDepth: 2
    functionLinenumber: 8697
    functionLinenumberEnd: 8713
    functionName: hlua_txn_log
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_argerror
    - luaL_checkinteger
    - luaL_checkstring
    - WILL_LJMP
    - hlua_checktxn
    - hlua_sendlog
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_log(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8720,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8720,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8721,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8721,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8722,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8722,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8725
      start: 8715
    functionDepth: 2
    functionLinenumber: 8715
    functionLinenumberEnd: 8725
    functionName: hlua_txn_log_debug
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_checkstring
    - hlua_checktxn
    - hlua_sendlog
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_log_debug(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8732,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8732,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8733,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8733,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8734,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8734,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8737
      start: 8727
    functionDepth: 2
    functionLinenumber: 8727
    functionLinenumberEnd: 8737
    functionName: hlua_txn_log_info
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_checkstring
    - hlua_checktxn
    - hlua_sendlog
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_log_info(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8744,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8744,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8745,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8745,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8746,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8746,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8749
      start: 8739
    functionDepth: 2
    functionLinenumber: 8739
    functionLinenumberEnd: 8749
    functionName: hlua_txn_log_warning
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_checkstring
    - hlua_checktxn
    - hlua_sendlog
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_log_warning(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8756,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8756,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8757,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8757,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8758,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8758,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8761
      start: 8751
    functionDepth: 2
    functionLinenumber: 8751
    functionLinenumberEnd: 8761
    functionName: hlua_txn_log_alert
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_checkstring
    - hlua_checktxn
    - hlua_sendlog
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_log_alert(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8768,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8768,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8769,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8769,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8770,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8770,1
    - Dst: conn_set_mark
      Src: /src/haproxy/src/hlua.c:8772,1
    - Dst: objt_conn
      Src: /src/haproxy/src/hlua.c:8772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8774
      start: 8763
    functionDepth: 2
    functionLinenumber: 8763
    functionLinenumberEnd: 8774
    functionName: hlua_txn_set_fc_mark
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_checkinteger
    - objt_conn
    - conn_set_mark
    - hlua_checktxn
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_set_fc_mark(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8781,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8781,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8782,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8782,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8783,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8783,1
    - Dst: conn_set_tos
      Src: /src/haproxy/src/hlua.c:8785,1
    - Dst: objt_conn
      Src: /src/haproxy/src/hlua.c:8785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8787
      start: 8776
    functionDepth: 2
    functionLinenumber: 8776
    functionLinenumberEnd: 8787
    functionName: hlua_txn_set_fc_tos
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - conn_set_tos
    - check_args
    - luaL_checkinteger
    - objt_conn
    - hlua_checktxn
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_set_fc_tos(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8794,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8794,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8795,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8795,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8796,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8796,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8799,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:8799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8805
      start: 8789
    functionDepth: 2
    functionLinenumber: 8789
    functionLinenumberEnd: 8805
    functionName: hlua_txn_set_loglevel
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_argerror
    - luaL_checkinteger
    - WILL_LJMP
    - hlua_checktxn
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_set_loglevel(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8811,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8811,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8812,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8812,1
    - Dst: queue_limit_class
      Src: /src/haproxy/src/hlua.c:8813,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8813,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8815
      start: 8807
    functionDepth: 2
    functionLinenumber: 8807
    functionLinenumberEnd: 8815
    functionName: hlua_txn_set_priority_class
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_checkinteger
    - queue_limit_class
    - hlua_checktxn
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_set_priority_class(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8821,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8821,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8822,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8822,1
    - Dst: queue_limit_offset
      Src: /src/haproxy/src/hlua.c:8823,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8823,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8825
      start: 8817
    functionDepth: 2
    functionLinenumber: 8817
    functionLinenumberEnd: 8825
    functionName: hlua_txn_set_priority_offset
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_checkinteger
    - hlua_checktxn
    - queue_limit_offset
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_set_priority_offset(lua_State *L)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8844,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:8846,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8847,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8849,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/hlua.c:8851,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:8852,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8853,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8855,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8856,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8860,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8862,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8863,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/hlua.c:8866,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:8867,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/hlua.c:8868,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/hlua.c:8871,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8871,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8872,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8872,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/hlua.c:8876,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8876,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8877,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8877,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8884,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8888,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:8889,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:8894,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:8894,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8899,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8900,1
    - Dst: isteqi
      Src: /src/haproxy/src/hlua.c:8901,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8901,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8909,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:8910,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:8911,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8916,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8917,1
    - Dst: isteqi
      Src: /src/haproxy/src/hlua.c:8919,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8919,1
    - Dst: h1_parse_xfer_enc_header
      Src: /src/haproxy/src/hlua.c:8920,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/hlua.c:8921,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8921,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8921,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8925,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8929,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8932,1
    - Dst: ultoa
      Src: /src/haproxy/src/hlua.c:8936,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/hlua.c:8939,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8939,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8939,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/hlua.c:8960,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/hlua.c:8961,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8961,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:8968,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/hlua.c:8969,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/hlua.c:8975,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 110
    argCount: 2
    argNames:
    - L
    - s
    argTypes:
    - lua_State*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8977
      start: 8832
    functionDepth: 2
    functionLinenumber: 8832
    functionLinenumberEnd: 8977
    functionName: hlua_txn_forward_reply
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushnil
    - htx_add_data_atonce
    - http_forward_proxy_resp
    - ist
    - ist2
    - h1_parse_xfer_enc_header
    - htx_add_header
    - lua_tolstring
    - lua_istable
    - ultoa
    - htx_from_buf
    - isteqi
    - lua_getfield
    - lua_tointeger
    - lua_pop
    - channel_htx_truncate
    - htx_add_stline
    - lua_isstring
    - h1m_init_res
    - http_get_reason
    - htx_to_buf
    - htx_add_endof
    - lua_next
    - strlen
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_forward_reply(lua_State *L, struct stream *s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8993,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8993,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8998,1
    - Dst: hlua_done
      Src: /src/haproxy/src/hlua.c:8998,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:9001,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/hlua.c:9005,1
    - Dst: channel_abort
      Src: /src/haproxy/src/hlua.c:9006,1
    - Dst: channel_erase
      Src: /src/haproxy/src/hlua.c:9007,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/hlua.c:9009,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/hlua.c:9010,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/hlua.c:9011,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:9017,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:9017,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/hlua.c:9020,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:9024,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9025,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:9025,1
    - Dst: hlua_txn_forward_reply
      Src: /src/haproxy/src/hlua.c:9027,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9030,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9031,1
    - Dst: hlua_done
      Src: /src/haproxy/src/hlua.c:9031,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/hlua.c:9042,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9052,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9054,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9055,1
    - Dst: hlua_done
      Src: /src/haproxy/src/hlua.c:9055,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9057
      start: 8987
    functionDepth: 3
    functionLinenumber: 8987
    functionLinenumberEnd: 9057
    functionName: hlua_txn_done
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - channel_erase
    - _HA_ATOMIC_INC
    - hlua_done
    - http_reply_and_close
    - lua_pop
    - hlua_txn_forward_reply
    - sc_schedule_abort
    - lua_gettop
    - channel_abort
    - IS_HTX_STRM
    - lua_pushinteger
    - lua_istable
    - channel_auto_close
    - WILL_LJMP
    - hlua_checktxn
    - channel_auto_read
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_done(lua_State *L)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9076,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:9076,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:9077,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:9078,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9079,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:9079,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/hlua.c:9084,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:9086,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:9088,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:9095,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9098,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:9099,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:9101,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9104,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:9105,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:9107,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9108,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9112,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9115,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9116,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9117,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/hlua.c:9120,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9121,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9122,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9123,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9126,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9128,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9130,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9131,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9134,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9135,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:9138,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:9140,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9143,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:9144,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:9146,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:9146,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9148,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:9154,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:9155,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9158,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:9159,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:9162,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:9164,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9167,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:9168,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:9170,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9172,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:9176,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:9176,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9179,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9186,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9190,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9193,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:9197,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:9198,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 82
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9200
      start: 9070
    functionDepth: 2
    functionLinenumber: 9070
    functionLinenumberEnd: 9200
    functionName: hlua_txn_reply_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_pushnil
    - lua_insert
    - hlua_pusherror
    - lua_setmetatable
    - lua_rawseti
    - lua_rawgeti
    - lua_pushinteger
    - IS_HTX_STRM
    - lua_istable
    - lua_error
    - WILL_LJMP
    - hlua_checktxn
    - lua_getfield
    - lua_tointeger
    - lua_pop
    - lua_pushvalue
    - lua_pushstring
    - lua_newtable
    - lua_isstring
    - http_get_reason
    - lua_rawlen
    - lua_tostring
    - lua_settable
    - lua_next
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_reply_new(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9207,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9207,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9208,1
    - Dst: luaL_optlstring
      Src: /src/haproxy/src/hlua.c:9208,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9211,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:9211,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9214,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/hlua.c:9218,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9220,1
    - Dst: lua_setfield
      Src: /src/haproxy/src/hlua.c:9221,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9223,1
    - Dst: lua_setfield
      Src: /src/haproxy/src/hlua.c:9224,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9228
      start: 9205
    functionDepth: 1
    functionLinenumber: 9205
    functionLinenumberEnd: 9228
    functionName: hlua_txn_reply_set_status
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checktype
    - lua_pushboolean
    - lua_pushstring
    - luaL_checkinteger
    - lua_pushinteger
    - luaL_optlstring
    - lua_setfield
    - http_get_reason
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_reply_set_status(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9236,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9236,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9237,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9237,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9241,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:9241,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:9244,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:9246,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:9246,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9247,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:9247,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:9251,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9254,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9259,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9260,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:9261,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9262,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:9265,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:9265,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9266,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:9266,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9272,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:9273,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:9274,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9278
      start: 9234
    functionDepth: 1
    functionLinenumber: 9234
    functionLinenumberEnd: 9278
    functionName: hlua_txn_reply_add_header
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - lua_rawseti
    - lua_getfield
    - luaL_checktype
    - lua_pop
    - lua_pushvalue
    - lua_pushstring
    - lua_pushboolean
    - lua_rawlen
    - luaL_checkstring
    - hlua_pusherror
    - lua_newtable
    - lua_settable
    - WILL_LJMP
    - lua_typename
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_reply_add_header(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9283,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9283,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9287,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:9287,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:9290,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:9292,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:9292,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9293,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:9293,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9296,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9297,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9298,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9302
      start: 9281
    functionDepth: 1
    functionLinenumber: 9281
    functionLinenumberEnd: 9302
    functionName: hlua_txn_reply_del_header
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - lua_getfield
    - luaL_checktype
    - lua_pushstring
    - lua_pushnil
    - lua_pushboolean
    - luaL_checkstring
    - hlua_pusherror
    - lua_settable
    - WILL_LJMP
    - lua_typename
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_reply_del_header(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9307,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9307,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9310,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:9310,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9312,1
    - Dst: lua_setfield
      Src: /src/haproxy/src/hlua.c:9313,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9317
      start: 9305
    functionDepth: 1
    functionLinenumber: 9305
    functionLinenumberEnd: 9317
    functionName: hlua_txn_reply_set_body
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checktype
    - lua_pushstring
    - lua_pushboolean
    - luaL_checkstring
    - lua_setfield
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_reply_set_body(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9324,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9324,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9325,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9325,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9326,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9326,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9329,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:9329,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:9331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9333
      start: 9319
    functionDepth: 2
    functionLinenumber: 9319
    functionLinenumberEnd: 9333
    functionName: hlua_log
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_argerror
    - luaL_checkinteger
    - luaL_checkstring
    - WILL_LJMP
    - hlua_sendlog
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_log(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9339,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9339,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9340,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9340,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:9341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9343
      start: 9335
    functionDepth: 2
    functionLinenumber: 9335
    functionLinenumberEnd: 9343
    functionName: hlua_log_debug
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - hlua_sendlog
    - luaL_checkstring
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_log_debug(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9349,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9349,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9350,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9350,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:9351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9353
      start: 9345
    functionDepth: 2
    functionLinenumber: 9345
    functionLinenumberEnd: 9353
    functionName: hlua_log_info
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - hlua_sendlog
    - luaL_checkstring
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_log_info(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9359,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9359,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9360,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9360,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:9361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9363
      start: 9355
    functionDepth: 2
    functionLinenumber: 9355
    functionLinenumberEnd: 9363
    functionName: hlua_log_warning
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - hlua_sendlog
    - luaL_checkstring
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_log_warning(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9369,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9369,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9370,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9370,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:9371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9373
      start: 9365
    functionDepth: 2
    functionLinenumber: 9365
    functionLinenumberEnd: 9373
    functionName: hlua_log_alert
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - hlua_sendlog
    - luaL_checkstring
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_log_alert(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:9377,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:9378,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9379,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:9379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9381
      start: 9375
    functionDepth: 2
    functionLinenumber: 9375
    functionLinenumberEnd: 9381
    functionName: hlua_sleep_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_yieldk
    - lua_tointeger
    - tick_is_expired
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_sleep_yield(lua_State *L, int status, lua_KContext ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9388,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9388,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9390,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9390,1
    - Dst: tick_add
      Src: /src/haproxy/src/hlua.c:9391,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9392,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9394,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:9394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9396
      start: 9383
    functionDepth: 2
    functionLinenumber: 9383
    functionLinenumberEnd: 9396
    functionName: hlua_sleep
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_checkinteger
    - lua_pushinteger
    - hlua_yieldk
    - tick_add
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_sleep(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9403,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9403,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9405,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9405,1
    - Dst: tick_add
      Src: /src/haproxy/src/hlua.c:9406,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9407,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9409,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:9409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9411
      start: 9398
    functionDepth: 2
    functionLinenumber: 9398
    functionLinenumberEnd: 9411
    functionName: hlua_msleep
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - luaL_checkinteger
    - lua_pushinteger
    - hlua_yieldk
    - tick_add
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_msleep(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9420
      start: 9417
    functionDepth: 0
    functionLinenumber: 9417
    functionLinenumberEnd: 9420
    functionName: hlua_yield_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_yield_yield(lua_State *L, int status, lua_KContext ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9424,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:9424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9426
      start: 9422
    functionDepth: 2
    functionLinenumber: 9422
    functionLinenumberEnd: 9426
    functionName: hlua_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_yieldk
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_yield(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:9442,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9444,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9444,1
    - Dst: tick_add
      Src: /src/haproxy/src/hlua.c:9445,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9448,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:9448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9450
      start: 9436
    functionDepth: 2
    functionLinenumber: 9436
    functionLinenumberEnd: 9450
    functionName: hlua_wait
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - luaL_checkinteger
    - lua_gettop
    - hlua_yieldk
    - tick_add
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_wait(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9461,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9461,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9462,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9462,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:9465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9478
      start: 9456
    functionDepth: 2
    functionLinenumber: 9456
    functionLinenumberEnd: 9478
    functionName: hlua_set_nice
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - check_args
    - hlua_gethlua
    - luaL_checkinteger
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_set_nice(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:9490,1
    - Dst: lua_newthread::lua_newthread
      Src: /src/haproxy/src/hlua.c:9492,1
    - Dst: lua_getextraspace
      Src: /src/haproxy/src/hlua.c:9496,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:9508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9513
      start: 9486
    functionDepth: 1
    functionLinenumber: 9486
    functionLinenumberEnd: 9513
    functionName: hlua_coroutine_create
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_getextraspace
    - lua_pushvalue
    - lua_newthread::lua_newthread
    - hlua_gethlua
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_coroutine_create(lua_State *L)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:9534,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:9535,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:9538,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:9543,1
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:9544,1
    - Dst: notification_gc
      Src: /src/haproxy/src/hlua.c:9549,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9555,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9558,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:9561,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9562,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:9562,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:9563,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9567,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:9569,1
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:9570,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9575
      start: 9523
    functionDepth: 5
    functionLinenumber: 9523
    functionLinenumberEnd: 9575
    functionName: hlua_process_task
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - SEND_ERR
    - task_destroy
    - hlua_ctx_resume
    - hlua_timer_init
    - hlua_tostring_safe
    - HLUA_IS_RUNNING
    - hlua_unlock
    - notification_gc
    - hlua_lock
    - hlua_ctx_destroy
    linkageType: ''
    returnType: struct task
    signature: struct task *hlua_process_task(struct task *task, void *context, unsigned
      int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9588,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9588,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:9590,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9592,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9592,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9595,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:9595,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:9597,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9599,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9600,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9600,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua.c:9604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9606
      start: 9583
    functionDepth: 2
    functionLinenumber: 9583
    functionLinenumberEnd: 9606
    functionName: hlua_register_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkfunction
    - hlua_gethlua
    - hlua_unref
    - calloc
    - check_args
    - luaL_error
    - LIST_APPEND
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_init(lua_State *L)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:9629,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9631,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9631,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9633,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9633,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9636,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:9636,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:9641,1
    - Dst: hlua_ref
      Src: /src/haproxy/src/hlua.c:9642,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:9650,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:9658,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:9661,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/hlua.c:9667,1
    - Dst: task_new_here
      Src: /src/haproxy/src/hlua.c:9669,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:9676,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:9682,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:9686,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9688,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:9695,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9697,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:9701,1
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:9706,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9707,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9709,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:9711,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9712,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9712,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9714
      start: 9619
    functionDepth: 2
    functionLinenumber: 9619
    functionLinenumberEnd: 9714
    functionName: hlua_register_task
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkfunction
    - task_new_anywhere
    - luaL_error
    - hlua_ref
    - hlua_pushref
    - hlua_ctx_destroy
    - pool_alloc
    - task_destroy
    - hlua_gethlua
    - WILL_LJMP
    - lua_pushvalue
    - lua_checkstack
    - hlua_unref
    - task_wakeup
    - hlua_ctx_init
    - lua_gettop
    - HLUA_INIT
    - task_new_here
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_task(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:9721,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9723,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:9724,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:9726,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:9729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - hlua_sub
    argTypes:
    - struct hlua_event_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9730
      start: 9717
    functionDepth: 3
    functionLinenumber: 9717
    functionLinenumberEnd: 9730
    functionName: hlua_event_subscription_destroy
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_unref
    - hlua_unlock
    - hlua_lock
    - pool_free
    - hlua_ctx_destroy
    linkageType: ''
    returnType: void
    signature: void hlua_event_subscription_destroy(struct hlua_event_sub *hlua_sub)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:9763,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:9764,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:9775,1
    - Dst: notification_gc
      Src: /src/haproxy/src/hlua.c:9783,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9789,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9793,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:9797,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9798,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:9798,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:9799,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9804,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9807
      start: 9756
    functionDepth: 5
    functionLinenumber: 9756
    functionLinenumberEnd: 9807
    functionName: hlua_event_handler
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - SEND_ERR
    - hlua_ctx_resume
    - hlua_tostring_safe
    - hlua_timer_init
    - HLUA_IS_RUNNING
    - hlua_unlock
    - notification_gc
    - hlua_lock
    linkageType: ''
    returnType: void
    signature: void hlua_event_handler(struct hlua *hlua)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9812,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9813,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9814,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9815,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9818,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9821,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9824,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9827,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9830,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9832,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9833,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9834,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9836,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9837,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9839,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9840,1
    - Dst: get_check_status_info
      Src: /src/haproxy/src/hlua.c:9840,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9841,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9842,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9843,1
    - Dst: get_check_status_description
      Src: /src/haproxy/src/hlua.c:9843,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9844,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9847,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9848,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9849,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9852,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9854,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9855,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9857,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9858,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9859,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9860,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9861,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9862,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9863,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9864,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9865,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9867,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 2
    argNames:
    - L
    - check
    argTypes:
    - lua_State*
    - struct event_hdl_cb_data_server_checkres*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9868
      start: 9809
    functionDepth: 1
    functionLinenumber: 9809
    functionLinenumberEnd: 9868
    functionName: hlua_event_hdl_cb_push_event_checkres
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - get_check_status_info
    - lua_pushboolean
    - lua_pushstring
    - lua_pushnil
    - get_check_status_description
    - lua_pushinteger
    - lua_newtable
    - lua_settable
    linkageType: ''
    returnType: __LJMP
    signature: "__LJMP hlua_event_hdl_cb_push_event_checkres(lua_State *L,\n                                                         struct
      event_hdl_cb_data_server_checkres *check)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9882,1
    - Dst: event_hdl_sub_type_to_string
      Src: /src/haproxy/src/hlua.c:9882,1
    - Dst: event_hdl_sub_family_equal
      Src: /src/haproxy/src/hlua.c:9885,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9891,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9893,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9894,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9895,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9897,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9898,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9899,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9901,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9902,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9903,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9905,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9906,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9907,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9909,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9910,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9911,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:9914,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:9918,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9919,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9919,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9922,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9923,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9925,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9926,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9927,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9934,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9935,1
    - Dst: hlua_event_hdl_cb_push_event_checkres
      Src: /src/haproxy/src/hlua.c:9936,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9937,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9940,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9942,1
    - Dst: srv_adm_st_chg_cause
      Src: /src/haproxy/src/hlua.c:9942,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9944,1
    - Dst: srv_op_st_chg_cause
      Src: /src/haproxy/src/hlua.c:9944,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9945,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9951,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9954,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9957,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9960,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9963,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9966,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9969,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9973,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9974,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9975,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9977,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:9979,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:9983,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9984,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9984,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9987,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9988,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9990,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9991,1
    - Dst: srv_adm_st_chg_cause
      Src: /src/haproxy/src/hlua.c:9991,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9992,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9998,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:10001,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10003,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:10004,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10005,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10006,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:10007,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10008,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10009,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:10010,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10011,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10012,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:10013,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10014,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10015,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:10016,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10017,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10019,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:10020,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10021,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10022,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:10023,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10024,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10025,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:10026,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10027,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10029,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10032,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:10033,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10034,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10036,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:10038,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10041,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10042,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10042,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10045,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:10046,1
    - Dst: hlua_event_hdl_cb_push_event_checkres
      Src: /src/haproxy/src/hlua.c:10049,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10051,1
    - Dst: proxy_find_by_id
      Src: /src/haproxy/src/hlua.c:10057,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua.c:10058,1
    - Dst: server_find_by_id_unique
      Src: /src/haproxy/src/hlua.c:10059,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10061,1
    - Dst: hlua_fcn_new_server
      Src: /src/haproxy/src/hlua.c:10062,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:10063,1
    - Dst: hlua_fcn_new_event_sub
      Src: /src/haproxy/src/hlua.c:10068,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:10072,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 129
    argCount: 2
    argNames:
    - hlua_sub
    - e
    argTypes:
    - struct hlua_event_sub*
    - struct event_hdl_async_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10073
      start: 9873
    functionDepth: 2
    functionLinenumber: 9873
    functionLinenumberEnd: 10073
    functionName: hlua_event_hdl_cb_push_args
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_event_hdl_cb_push_event_checkres
    - lua_pushboolean
    - luaL_error
    - lua_pushnil
    - srv_adm_st_chg_cause
    - server_find_by_id_unique
    - hlua_fcn_new_server
    - event_hdl_sub_family_equal
    - lua_pushinteger
    - WILL_LJMP
    - hlua_fcn_new_event_sub
    - lua_pushstring
    - lua_checkstack
    - lua_newtable
    - srv_op_st_chg_cause
    - proxy_find_by_id
    - BUG_ON
    - event_hdl_sub_type_to_string
    - event_hdl_sub_type_equal
    - lua_settable
    linkageType: ''
    returnType: __LJMP
    signature: "__LJMP hlua_event_hdl_cb_push_args(struct hlua_event_sub *hlua_sub,\n
      \                                              struct event_hdl_async_event
      *e)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: event_hdl_async_equeue_size
      Src: /src/haproxy/src/hlua.c:10090,1
    - Dst: event_hdl_pause
      Src: /src/haproxy/src/hlua.c:10104,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:10107,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:10109,1
    - Dst: event_hdl_async_equeue_size
      Src: /src/haproxy/src/hlua.c:10111,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:10114,1
    - Dst: hlua_event_handler
      Src: /src/haproxy/src/hlua.c:10116,1
    - Dst: event_hdl_async_equeue_pop
      Src: /src/haproxy/src/hlua.c:10117,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:10118,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/hlua.c:10120,1
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:10121,1
    - Dst: hlua_event_subscription_destroy
      Src: /src/haproxy/src/hlua.c:10122,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10128,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10129,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:10130,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10131,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10134,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10135,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10140,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10141,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10142,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:10147,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10151,1
    - Dst: hlua_event_hdl_cb_push_args
      Src: /src/haproxy/src/hlua.c:10151,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10154,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/hlua.c:10159,1
    - Dst: hlua_event_handler
      Src: /src/haproxy/src/hlua.c:10162,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/hlua.c:10165,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:10169,1
    - Dst: event_hdl_async_equeue_isempty
      Src: /src/haproxy/src/hlua.c:10173,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:10177,1
    - Dst: event_hdl_resume
      Src: /src/haproxy/src/hlua.c:10181,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10187
      start: 10084
    functionDepth: 6
    functionLinenumber: 10084
    functionLinenumberEnd: 10187
    functionName: hlua_event_runner
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_event_hdl_cb_push_args
    - event_hdl_async_equeue_pop
    - hlua_pushref
    - SET_SAFE_LJMP
    - event_hdl_pause
    - event_hdl_resume
    - event_hdl_async_equeue_isempty
    - task_destroy
    - event_hdl_async_equeue_size
    - event_hdl_async_free_event
    - hlua_traceback
    - hlua_lock
    - hlua_tostring_safe
    - SEND_ERR
    - HLUA_IS_RUNNING
    - hlua_unlock
    - hlua_event_subscription_destroy
    - hlua_event_handler
    - lua_checkstack
    - task_wakeup
    - lua_type
    - RESET_SAFE_LJMP
    - event_hdl_sub_type_equal
    - ha_warning
    linkageType: ''
    returnType: struct task
    signature: struct task *hlua_event_runner(struct task *task, void *context, unsigned
      int state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:10203,1
    - Dst: task_new_here
      Src: /src/haproxy/src/hlua.c:10209,1
    - Dst: event_hdl_async_equeue_init
      Src: /src/haproxy/src/hlua.c:10213,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:10217,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:10220,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:10221,1
    - Dst: event_hdl_subscribe_ptr
      Src: /src/haproxy/src/hlua.c:10224,1
    - Dst: EVENT_HDL_ASYNC_TASK
      Src: /src/haproxy/src/hlua.c:10225,1
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:10236,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:10238,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:10239,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - list
    - e_type
    - state_id
    - fcn_ref
    argTypes:
    - event_hdl_sub_list*
    - struct event_hdl_sub_type
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10243
      start: 10197
    functionDepth: 2
    functionLinenumber: 10197
    functionLinenumberEnd: 10243
    functionName: hlua_event_subscribe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - event_hdl_subscribe_ptr
    - pool_alloc
    - EVENT_HDL_ASYNC_TASK
    - task_destroy
    - hlua_ctx_init
    - pool_free
    - HLUA_INIT
    - event_hdl_async_equeue_init
    - task_new_here
    - hlua_ctx_destroy
    linkageType: ''
    returnType: struct event_hdl_sub
    signature: "struct event_hdl_sub *hlua_event_subscribe(event_hdl_sub_list *list,
      struct event_hdl_sub_type e_type,\n                                                  int
      state_id, int fcn_ref)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:10253,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:10254,1
    - Dst: luaL_typename
      Src: /src/haproxy/src/hlua.c:10254,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:10255,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:10261,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:10262,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:10263,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:10264,1
    - Dst: luaL_typename
      Src: /src/haproxy/src/hlua.c:10264,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:10265,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:10268,1
    - Dst: event_hdl_string_to_sub_type
      Src: /src/haproxy/src/hlua.c:10268,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:10268,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:10269,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:10269,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:10270,1
    - Dst: event_hdl_sub_type_add
      Src: /src/haproxy/src/hlua.c:10274,1
    - Dst: event_hdl_string_to_sub_type
      Src: /src/haproxy/src/hlua.c:10274,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:10274,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - L
    - index
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10281
      start: 10248
    functionDepth: 1
    functionLinenumber: 10248
    functionLinenumberEnd: 10281
    functionName: hlua_check_event_sub_types
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_typename
    - lua_pop
    - lua_type
    - luaL_argerror
    - lua_pushnil
    - lua_tostring
    - event_hdl_sub_type_equal
    - lua_pushfstring
    - event_hdl_string_to_sub_type
    - event_hdl_sub_type_add
    - lua_next
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_check_event_sub_types(lua_State *L, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:10291,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10294,1
    - Dst: hlua_fcn_new_event_sub
      Src: /src/haproxy/src/hlua.c:10294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10295
      start: 10289
    functionDepth: 1
    functionLinenumber: 10289
    functionLinenumberEnd: 10295
    functionName: _hlua_new_event_sub_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - hlua_fcn_new_event_sub
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP _hlua_new_event_sub_safe(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10298,1
    - Dst: lua_pushcfunction
      Src: /src/haproxy/src/hlua.c:10300,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:10301,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:10302,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - L
    - sub
    argTypes:
    - lua_State*
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10310
      start: 10296
    functionDepth: 0
    functionLinenumber: 10296
    functionLinenumberEnd: 10310
    functionName: hlua_new_event_sub_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushlightuserdata
    - lua_pcall
    - lua_pop
    - lua_checkstack
    - lua_pushcfunction
    linkageType: ''
    returnType: int
    signature: int hlua_new_event_sub_safe(lua_State *L, struct event_hdl_sub *sub)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10329,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:10329,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:10332,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10354,1
    - Dst: hlua_check_event_sub_types
      Src: /src/haproxy/src/hlua.c:10354,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:10356,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10357,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10357,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10362,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:10362,1
    - Dst: hlua_event_subscribe
      Src: /src/haproxy/src/hlua.c:10365,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:10367,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10368,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10368,1
    - Dst: hlua_new_event_sub_safe
      Src: /src/haproxy/src/hlua.c:10377,1
    - Dst: event_hdl_unsubscribe
      Src: /src/haproxy/src/hlua.c:10383,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10384,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10384,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:10384,1
    - Dst: event_hdl_drop
      Src: /src/haproxy/src/hlua.c:10387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - L
    - sub_list
    argTypes:
    - lua_State*
    - event_hdl_sub_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10390
      start: 10321
    functionDepth: 3
    functionLinenumber: 10321
    functionLinenumberEnd: 10390
    functionName: hlua_event_sub
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkfunction
    - hlua_gethlua
    - hlua_unref
    - check_args
    - hlua_event_subscribe
    - hlua_check_event_sub_types
    - luaL_error
    - hlua_new_event_sub_safe
    - lua_tostring
    - event_hdl_sub_type_equal
    - event_hdl_drop
    - event_hdl_unsubscribe
    - WILL_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_event_sub(lua_State *L, event_hdl_sub_list *sub_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10399,1
    - Dst: hlua_event_sub
      Src: /src/haproxy/src/hlua.c:10399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10400
      start: 10396
    functionDepth: 4
    functionLinenumber: 10396
    functionLinenumberEnd: 10400
    functionName: hlua_event_global_sub
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_event_sub
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_event_global_sub(lua_State *L)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: hlua_stream_ctx_prepare
      Src: /src/haproxy/src/hlua.c:10416,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:10416,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10417,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:10422,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10425,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10426,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:10427,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10428,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10431,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10432,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10437,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10438,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10439,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:10444,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10447,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10448,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10449,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10452,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:10452,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10458,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10459,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10460,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10463,1
    - Dst: hlua_arg2lua
      Src: /src/haproxy/src/hlua.c:10463,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:10469,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10472,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:10476,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10479,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:10481,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10482,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:10487,1
    - Dst: smp_dup
      Src: /src/haproxy/src/hlua.c:10491,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10492,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10493,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10498,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10504,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10505,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10506,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10507,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10508,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10512,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10516,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10520,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10524,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10529,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 83
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10535
      start: 10406
    functionDepth: 5
    functionLinenumber: 10406
    functionLinenumberEnd: 10535
    functionName: hlua_sample_conv_wrapper
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_stream_ctx_prepare
    - hlua_timer_init
    - smp_dup
    - hlua_pushref
    - fcn_ref_to_stack_id
    - SET_SAFE_LJMP
    - hlua_arg2lua
    - hlua_lua2smp
    - hlua_lock
    - SEND_ERR
    - hlua_tostring_safe
    - lua_pop
    - HLUA_IS_RUNNING
    - hlua_unlock
    - lua_checkstack
    - hlua_ctx_resume
    - lua_type
    - hlua_smp2lua
    - lua_gettop
    - RESET_SAFE_LJMP
    linkageType: ''
    returnType: int
    signature: int hlua_sample_conv_wrapper(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: hlua_stream_ctx_prepare
      Src: /src/haproxy/src/hlua.c:10554,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:10554,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10555,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:10560,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10563,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10564,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:10565,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10566,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10569,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10570,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10575,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10576,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10577,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:10582,1
    - Dst: hlua_txn_new
      Src: /src/haproxy/src/hlua.c:10585,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10586,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10587,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10595,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10596,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10597,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10600,1
    - Dst: hlua_arg2lua
      Src: /src/haproxy/src/hlua.c:10600,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:10605,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10608,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:10612,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10615,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:10617,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10618,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:10623,1
    - Dst: smp_dup
      Src: /src/haproxy/src/hlua.c:10627,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10628,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10629,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10637,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10643,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10644,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10645,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10646,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10647,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10651,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10655,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10659,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10663,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10668,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 81
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10674
      start: 10542
    functionDepth: 5
    functionLinenumber: 10542
    functionLinenumberEnd: 10674
    functionName: hlua_sample_fetch_wrapper
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_stream_ctx_prepare
    - hlua_timer_init
    - smp_dup
    - hlua_pushref
    - fcn_ref_to_stack_id
    - SET_SAFE_LJMP
    - hlua_arg2lua
    - hlua_lua2smp
    - hlua_lock
    - SEND_ERR
    - hlua_tostring_safe
    - lua_pop
    - HLUA_IS_RUNNING
    - hlua_unlock
    - lua_checkstack
    - hlua_ctx_resume
    - lua_type
    - lua_gettop
    - RESET_SAFE_LJMP
    - hlua_txn_new
    linkageType: ''
    returnType: int
    signature: "int hlua_sample_fetch_wrapper(const struct arg *arg_p, struct sample
      *smp,\n                                     const char *kw, void *private)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10690,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:10690,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:10692,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10694,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10694,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10698,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:10698,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10701,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:10701,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:10704,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:10705,1
    - Dst: find_sample_conv
      Src: /src/haproxy/src/hlua.c:10706,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:10710,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:10712,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:10719,1
    - Dst: new_hlua_function
      Src: /src/haproxy/src/hlua.c:10722,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:10727,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:10736,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:10736,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:10737,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:10741,1
    - Dst: ARG12
      Src: /src/haproxy/src/hlua.c:10743,1
    - Dst: sample_register_convs
      Src: /src/haproxy/src/hlua.c:10750,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:10755,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:10756,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:10757,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10758,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10758,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10760
      start: 10680
    functionDepth: 2
    functionLinenumber: 10680
    functionLinenumberEnd: 10760
    functionName: hlua_register_converters
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkfunction
    - luaL_error
    - get_trash_chunk
    - snprintf
    - hlua_gethlua
    - ha_free
    - chunk_printf
    - ARG12
    - WILL_LJMP
    - sample_register_convs
    - calloc
    - find_sample_conv
    - luaL_checkstring
    - release_hlua_function
    - new_hlua_function
    - strdup
    - hlua_unref
    - check_args
    - ha_warning
    - strlen
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_converters(lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10776,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:10776,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:10778,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10780,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10780,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10784,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:10784,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10787,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:10787,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:10790,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:10791,1
    - Dst: find_sample_fetch
      Src: /src/haproxy/src/hlua.c:10792,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:10796,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:10798,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:10805,1
    - Dst: new_hlua_function
      Src: /src/haproxy/src/hlua.c:10808,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:10813,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:10822,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:10822,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:10823,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:10827,1
    - Dst: ARG12
      Src: /src/haproxy/src/hlua.c:10829,1
    - Dst: sample_register_fetches
      Src: /src/haproxy/src/hlua.c:10837,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:10842,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:10843,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:10844,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10845,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10845,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10847
      start: 10766
    functionDepth: 2
    functionLinenumber: 10766
    functionLinenumberEnd: 10847
    functionName: hlua_register_fetches
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkfunction
    - luaL_error
    - get_trash_chunk
    - snprintf
    - hlua_gethlua
    - ha_free
    - chunk_printf
    - ARG12
    - WILL_LJMP
    - calloc
    - luaL_checkstring
    - release_hlua_function
    - new_hlua_function
    - strdup
    - find_sample_fetch
    - hlua_unref
    - check_args
    - ha_warning
    - sample_register_fetches
    - strlen
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_fetches(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:10858,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10863,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:10863,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10865,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:10865,1
    - Dst: tick_add
      Src: /src/haproxy/src/hlua.c:10866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10869
      start: 10851
    functionDepth: 2
    functionLinenumber: 10851
    functionLinenumberEnd: 10869
    functionName: hlua_set_wake_time
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_gethlua
    - check_args
    - luaL_checkinteger
    - tick_add
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_set_wake_time(lua_State *L)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10892,1
    - Dst: hlua_stream_ctx_prepare
      Src: /src/haproxy/src/hlua.c:10896,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:10896,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10897,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:10903,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10906,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10907,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:10908,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10909,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10912,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10914,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10919,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10920,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10922,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:10927,1
    - Dst: hlua_txn_new
      Src: /src/haproxy/src/hlua.c:10930,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10931,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10933,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10940,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10941,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10943,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10946,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10951,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:10954,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:10958,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10962,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:10963,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:10964,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10965,1
    - Dst: tick_first
      Src: /src/haproxy/src/hlua.c:10973,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:10973,1
    - Dst: tick_first
      Src: /src/haproxy/src/hlua.c:10976,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:10976,1
    - Dst: tick_first
      Src: /src/haproxy/src/hlua.c:10985,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:10985,1
    - Dst: tick_first
      Src: /src/haproxy/src/hlua.c:10988,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:10988,1
    - Dst: HLUA_IS_WAKERESWR
      Src: /src/haproxy/src/hlua.c:10995,1
    - Dst: HLUA_IS_WAKEREQWR
      Src: /src/haproxy/src/hlua.c:10997,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11005,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11006,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11007,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:11008,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11009,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11013,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11017,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11021,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11034,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:11037,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11038,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11042,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11049,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 133
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11060
      start: 10877
    functionDepth: 5
    functionLinenumber: 10877
    functionLinenumberEnd: 11060
    functionName: hlua_action
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_stream_ctx_prepare
    - memprintf
    - hlua_timer_init
    - HLUA_IS_WAKEREQWR
    - hlua_pushref
    - fcn_ref_to_stack_id
    - SET_SAFE_LJMP
    - ha_free
    - tick_is_expired
    - hlua_lock
    - hlua_sendlog
    - lua_tointeger
    - SEND_ERR
    - hlua_tostring_safe
    - lua_pop
    - HLUA_IS_RUNNING
    - lua_pushstring
    - hlua_unlock
    - lua_checkstack
    - tick_first
    - HLUA_IS_WAKERESWR
    - hlua_ctx_resume
    - lua_type
    - lua_gettop
    - RESET_SAFE_LJMP
    - hlua_txn_new
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return hlua_action(struct act_rule *rule, struct proxy *px,\n
      \                                  struct session *sess, struct stream *s, int
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/hlua.c:11066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11069
      start: 11062
    functionDepth: 1
    functionLinenumber: 11062
    functionLinenumberEnd: 11069
    functionName: hlua_applet_wakeup
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    linkageType: ''
    returnType: struct task
    signature: struct task *hlua_applet_wakeup(struct task *t, void *context, unsigned
      int state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/hlua.c:11073,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:11074,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/hlua.c:11075,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:11082,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11084,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:11088,1
    - Dst: task_new_here
      Src: /src/haproxy/src/hlua.c:11093,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11095,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:11109,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:11109,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11110,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:11116,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11119,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11120,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:11121,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11122,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11125,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11127,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:11132,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11133,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11135,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:11140,1
    - Dst: hlua_applet_tcp_new
      Src: /src/haproxy/src/hlua.c:11143,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11144,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11146,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:11153,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11154,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11156,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11159,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11163,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:11166,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:11167,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11170
      start: 11071
    functionDepth: 3
    functionLinenumber: 11071
    functionLinenumberEnd: 11170
    functionName: hlua_applet_tcp_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - applet_need_more_data
    - hlua_timer_init
    - applet_reserve_svcctx
    - appctx_sc
    - hlua_pushref
    - hlua_applet_tcp_new
    - SET_SAFE_LJMP
    - fcn_ref_to_stack_id
    - pool_alloc
    - __sc_strm
    - hlua_lock
    - SEND_ERR
    - hlua_tostring_safe
    - applet_have_more_data
    - lua_pushstring
    - hlua_unlock
    - lua_checkstack
    - lua_type
    - hlua_ctx_init
    - RESET_SAFE_LJMP
    - HLUA_INIT
    - task_new_here
    linkageType: ''
    returnType: int
    signature: int hlua_applet_tcp_init(struct appctx *ctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:11175,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/hlua.c:11176,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:11181,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/hlua.c:11181,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:11187,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:11192,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/hlua.c:11196,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:11199,1
    - Dst: task_schedule
      Src: /src/haproxy/src/hlua.c:11206,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11212,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11213,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11214,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:11215,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11216,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11220,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11225,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11230,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11235,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11241,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/hlua.c:11256,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/hlua.c:11260,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11263
      start: 11172
    functionDepth: 5
    functionLinenumber: 11172
    functionLinenumberEnd: 11263
    functionName: hlua_applet_tcp_fct
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - unlikely
    - applet_set_error
    - SEND_ERR
    - hlua_ctx_resume
    - hlua_tostring_safe
    - lua_pop
    - applet_fl_test
    - applet_set_eos
    - task_schedule
    - hlua_unlock
    - __sc_strm
    - appctx_sc
    - applet_reset_input
    - applet_will_consume
    - hlua_lock
    linkageType: ''
    returnType: void
    signature: void hlua_applet_tcp_fct(struct appctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:11269,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:11271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11273
      start: 11265
    functionDepth: 1
    functionLinenumber: 11265
    functionLinenumberEnd: 11273
    functionName: hlua_applet_tcp_release
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - task_destroy
    - hlua_ctx_destroy
    linkageType: ''
    returnType: void
    signature: void hlua_applet_tcp_release(struct appctx *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/hlua.c:11280,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:11281,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/hlua.c:11282,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:11291,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11293,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:11297,1
    - Dst: task_new_here
      Src: /src/haproxy/src/hlua.c:11306,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11308,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:11322,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:11322,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11323,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:11329,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11332,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11333,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:11334,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11335,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11338,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11340,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:11345,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11346,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11348,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:11353,1
    - Dst: hlua_applet_http_new
      Src: /src/haproxy/src/hlua.c:11356,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11357,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11359,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:11366,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11367,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11369,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11372,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11376,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:11379,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 60
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11382
      start: 11278
    functionDepth: 3
    functionLinenumber: 11278
    functionLinenumberEnd: 11382
    functionName: hlua_applet_http_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - applet_need_more_data
    - hlua_timer_init
    - applet_reserve_svcctx
    - appctx_sc
    - hlua_applet_http_new
    - hlua_pushref
    - SET_SAFE_LJMP
    - fcn_ref_to_stack_id
    - pool_alloc
    - __sc_strm
    - hlua_lock
    - SEND_ERR
    - hlua_tostring_safe
    - lua_pushstring
    - hlua_unlock
    - lua_checkstack
    - lua_type
    - hlua_ctx_init
    - RESET_SAFE_LJMP
    - HLUA_INIT
    - task_new_here
    linkageType: ''
    returnType: int
    signature: int hlua_applet_http_init(struct appctx *ctx)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:11387,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/hlua.c:11388,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:11397,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/hlua.c:11397,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:11404,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:11406,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:11412,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/hlua.c:11422,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:11424,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11429,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11430,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:11431,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11432,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11435,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11436,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:11440,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/hlua.c:11442,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua.c:11443,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:11443,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/hlua.c:11444,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11447,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:11448,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/hlua.c:11448,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/hlua.c:11448,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11449,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11452,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:11453,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/hlua.c:11453,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/hlua.c:11453,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11454,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11459,1
    - Dst: hlua_http_get_headers
      Src: /src/haproxy/src/hlua.c:11460,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11462,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/hlua.c:11464,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/hlua.c:11464,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/hlua.c:11465,1
    - Dst: isttest
      Src: /src/haproxy/src/hlua.c:11466,1
    - Dst: istend
      Src: /src/haproxy/src/hlua.c:11470,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11476,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:11477,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11478,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11481,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:11484,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11485,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11490,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:11491,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11492,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11495,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:11496,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11497,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11500,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:11504,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:11510,1
    - Dst: task_schedule
      Src: /src/haproxy/src/hlua.c:11517,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11523,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11524,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11525,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:11526,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11527,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11531,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11536,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11541,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11546,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11552,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:11572,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/hlua.c:11573,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/hlua.c:11574,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:11575,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:11581,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/hlua.c:11582,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/hlua.c:11593,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:11606,1
    - Dst: htx_reset
      Src: /src/haproxy/src/hlua.c:11607,1
    - Dst: b_data
      Src: /src/haproxy/src/hlua.c:11608,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:11609,1
    - Dst: b_head
      Src: /src/haproxy/src/hlua.c:11609,1
    - Dst: b_data
      Src: /src/haproxy/src/hlua.c:11609,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:11610,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/hlua.c:11611,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/hlua.c:11612,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/hlua.c:11615,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:11622,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 160
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11624
      start: 11384
    functionDepth: 5
    functionLinenumber: 11384
    functionLinenumberEnd: 11624
    functionName: hlua_applet_http_fct
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - unlikely
    - isttest
    - applet_need_more_data
    - task_schedule
    - http_uri_parser_init
    - htx_get_blk_ptr
    - appctx_sc
    - hlua_http_get_headers
    - SET_SAFE_LJMP
    - htx_is_empty
    - lua_pushlstring
    - __sc_strm
    - htx_get_blk_type
    - lua_pushinteger
    - http_parse_path
    - applet_reset_input
    - htx_reset
    - applet_set_eos
    - htx_sl_req_uri
    - hlua_lock
    - htx_from_buf
    - applet_set_error
    - b_head
    - hlua_tostring_safe
    - SEND_ERR
    - applet_have_more_data
    - istend
    - lua_pop
    - HLUA_IS_RUNNING
    - memcpy
    - lua_pushstring
    - hlua_unlock
    - b_data
    - lua_newtable
    - htx_to_buf
    - HTX_SL_REQ_VLEN
    - BUG_ON
    - hlua_ctx_resume
    - HTX_SL_REQ_MLEN
    - applet_fl_test
    - lua_type
    - htx_get_first_blk
    - applet_set_eoi
    - applet_get_outbuf
    - applet_get_inbuf
    - RESET_SAFE_LJMP
    - lua_settable
    - applet_will_consume
    - htx_add_endof
    - HTX_SL_REQ_MPTR
    - HTX_SL_REQ_VPTR
    linkageType: ''
    returnType: void
    signature: void hlua_applet_http_fct(struct appctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:11630,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:11632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11634
      start: 11626
    functionDepth: 1
    functionLinenumber: 11626
    functionLinenumberEnd: 11634
    functionName: hlua_applet_http_release
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - task_destroy
    - hlua_ctx_destroy
    linkageType: ''
    returnType: void
    signature: void hlua_applet_http_release(struct appctx *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11650,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11652,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11657,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11660,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11670,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:11673,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11675,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11690,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11691,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11693,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11696
      start: 11643
    functionDepth: 1
    functionLinenumber: 11643
    functionLinenumberEnd: 11696
    functionName: action_register_lua
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - ha_free
    - calloc
    - memprintf
    - strdup
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret action_register_lua(const char **args, int *cur_arg,
      struct proxy *px,\n                                              struct act_rule
      *rule, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11710,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11715,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11739
      start: 11698
    functionDepth: 1
    functionLinenumber: 11698
    functionLinenumberEnd: 11739
    functionName: action_register_service_http
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - calloc
    - memprintf
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret action_register_service_http(const char **args,
      int *cur_arg, struct proxy *px,\n                                                       struct
      act_rule *rule, char **err)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:11759,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:11759,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11760,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11760,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:11762,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11764,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11764,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11768,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:11768,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:11771,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11772,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11772,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11775,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:11775,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:11778,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11779,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:11779,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:11782,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:11783,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:11784,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11785,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11786,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11786,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:11790,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:11791,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11792,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11792,1
    - Dst: tcp_req_cont_action
      Src: /src/haproxy/src/hlua.c:11793,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11794,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11794,1
    - Dst: tcp_res_cont_action
      Src: /src/haproxy/src/hlua.c:11795,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11796,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11796,1
    - Dst: action_http_req_custom
      Src: /src/haproxy/src/hlua.c:11797,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11798,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11798,1
    - Dst: action_http_res_custom
      Src: /src/haproxy/src/hlua.c:11799,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11800,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11800,1
    - Dst: action_http_after_res_custom
      Src: /src/haproxy/src/hlua.c:11801,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:11808,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11810,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:11815,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11821,1
    - Dst: new_hlua_function
      Src: /src/haproxy/src/hlua.c:11824,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:11829,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11841,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11841,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11842,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:11846,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11853,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11853,1
    - Dst: tcp_req_cont_keywords_register
      Src: /src/haproxy/src/hlua.c:11854,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11855,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11855,1
    - Dst: tcp_res_cont_keywords_register
      Src: /src/haproxy/src/hlua.c:11856,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11857,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11857,1
    - Dst: http_req_keywords_register
      Src: /src/haproxy/src/hlua.c:11858,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11859,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11859,1
    - Dst: http_res_keywords_register
      Src: /src/haproxy/src/hlua.c:11860,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11861,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11861,1
    - Dst: http_after_res_keywords_register
      Src: /src/haproxy/src/hlua.c:11862,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:11864,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11865,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11867,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11868,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11869,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11869,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11872,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:11876,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:11885,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11886,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11887,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11888,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11888,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 102
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11890
      start: 11745
    functionDepth: 2
    functionLinenumber: 11745
    functionLinenumberEnd: 11890
    functionName: hlua_register_action
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkfunction
    - luaL_error
    - lua_pushnil
    - get_trash_chunk
    - action_http_req_custom
    - tcp_res_cont_action
    - action_http_after_res_custom
    - snprintf
    - hlua_gethlua
    - ha_free
    - chunk_printf
    - strcmp
    - http_res_keywords_register
    - WILL_LJMP
    - http_after_res_keywords_register
    - lua_pop
    - calloc
    - tcp_req_cont_keywords_register
    - luaL_checkstring
    - http_req_keywords_register
    - release_hlua_function
    - new_hlua_function
    - hlua_unref
    - lua_type
    - action_http_res_custom
    - luaL_checkinteger
    - lua_tostring
    - lua_gettop
    - strlen
    - tcp_res_cont_keywords_register
    - ha_warning
    - tcp_req_cont_action
    - lua_next
    - strdup
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_action(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11898,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11903,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11927
      start: 11892
    functionDepth: 1
    functionLinenumber: 11892
    functionLinenumberEnd: 11927
    functionName: action_register_service_tcp
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - calloc
    - memprintf
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret action_register_service_tcp(const char **args,
      int *cur_arg, struct proxy *px,\n                                                      struct
      act_rule *rule, char **err)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11944,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:11944,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:11946,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11948,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11948,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11952,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:11952,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11955,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:11955,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11958,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:11958,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:11961,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:11962,1
    - Dst: service_find
      Src: /src/haproxy/src/hlua.c:11963,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:11967,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11969,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11976,1
    - Dst: new_hlua_function
      Src: /src/haproxy/src/hlua.c:11979,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11984,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11984,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11985,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:11988,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11995,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11995,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11996,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:12000,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:12003,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:12005,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:12008,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12009,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12011,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12012,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12013,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:12013,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:12021,1
    - Dst: service_keywords_register
      Src: /src/haproxy/src/hlua.c:12024,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:12029,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12030,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12031,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12032,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:12032,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12034
      start: 11933
    functionDepth: 2
    functionLinenumber: 11933
    functionLinenumberEnd: 12034
    functionName: hlua_register_service
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkfunction
    - service_find
    - luaL_error
    - get_trash_chunk
    - snprintf
    - hlua_gethlua
    - ha_free
    - chunk_printf
    - strcmp
    - WILL_LJMP
    - calloc
    - luaL_checkstring
    - release_hlua_function
    - new_hlua_function
    - memset
    - hlua_unref
    - check_args
    - service_keywords_register
    - ha_warning
    - strlen
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_service(lua_State *L)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/hlua.c:12041,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:12050,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12052,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:12055,1
    - Dst: task_new_here
      Src: /src/haproxy/src/hlua.c:12062,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12064,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:12072,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:12072,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12073,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12078,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12079,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12080,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12081,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12084,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12085,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:12090,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12091,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12096,1
    - Dst: hlua_applet_tcp_new
      Src: /src/haproxy/src/hlua.c:12101,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12102,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:12110,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12111,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:12114,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:12119,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12122,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12129,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12130,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12133
      start: 12039
    functionDepth: 3
    functionLinenumber: 12039
    functionLinenumberEnd: 12133
    functionName: hlua_cli_parse_fct
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_timer_init
    - applet_reserve_svcctx
    - hlua_pushref
    - hlua_applet_tcp_new
    - SET_SAFE_LJMP
    - fcn_ref_to_stack_id
    - hlua_ctx_destroy
    - pool_alloc
    - hlua_lock
    - SEND_ERR
    - hlua_tostring_safe
    - lua_pushstring
    - hlua_unlock
    - lua_checkstack
    - lua_type
    - hlua_ctx_init
    - RESET_SAFE_LJMP
    - HLUA_INIT
    - task_new_here
    linkageType: ''
    returnType: int
    signature: int hlua_cli_parse_fct(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:12145,1
    - Dst: HLUA_IS_WAKERESWR
      Src: /src/haproxy/src/hlua.c:12154,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:12155,1
    - Dst: task_schedule
      Src: /src/haproxy/src/hlua.c:12158,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:12160,1
    - Dst: applet_expect_data
      Src: /src/haproxy/src/hlua.c:12161,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12167,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12168,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12169,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12170,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12171,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12175,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12180,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12185,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12190,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12205
      start: 12135
    functionDepth: 5
    functionLinenumber: 12135
    functionLinenumberEnd: 12205
    functionName: hlua_cli_io_handler_fct
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - SEND_ERR
    - hlua_ctx_resume
    - applet_have_more_data
    - hlua_tostring_safe
    - lua_pop
    - task_schedule
    - hlua_unlock
    - HLUA_IS_WAKERESWR
    - applet_expect_data
    - applet_will_consume
    - hlua_lock
    linkageType: ''
    returnType: int
    signature: int hlua_cli_io_handler_fct(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:12211,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12215
      start: 12207
    functionDepth: 1
    functionLinenumber: 12207
    functionLinenumberEnd: 12215
    functionName: hlua_cli_io_release_fct
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - task_destroy
    - hlua_ctx_destroy
    linkageType: ''
    returnType: void
    signature: void hlua_cli_io_release_fct(struct appctx *appctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12238,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:12238,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:12240,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12242,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:12242,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:12246,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12247,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:12247,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12250,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:12250,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12253,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:12253,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:12256,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:12258,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:12259,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:12260,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12262,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12263,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:12263,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12265,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12266,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12267,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:12267,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:12269,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:12271,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:12273,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12275,1
    - Dst: cli_find_kw_exact
      Src: /src/haproxy/src/hlua.c:12277,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:12281,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12283,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:12290,1
    - Dst: new_hlua_function
      Src: /src/haproxy/src/hlua.c:12295,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:12303,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:12304,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12309,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:12313,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:12313,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12319,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:12323,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:12330,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:12332,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:12333,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:12341,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:12346,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:12347,1
    - Dst: cli_register_kw
      Src: /src/haproxy/src/hlua.c:12362,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:12367,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12368,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12371,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12372,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12374,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12375,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:12375,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 119
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12377
      start: 12223
    functionDepth: 2
    functionLinenumber: 12223
    functionLinenumberEnd: 12377
    functionName: hlua_register_cli
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkfunction
    - cli_find_kw_exact
    - chunk_appendf
    - luaL_argerror
    - luaL_error
    - get_trash_chunk
    - lua_pushnil
    - hlua_gethlua
    - ha_free
    - chunk_printf
    - lua_istable
    - cli_register_kw
    - WILL_LJMP
    - memcpy
    - lua_pop
    - calloc
    - luaL_checkstring
    - release_hlua_function
    - new_hlua_function
    - memset
    - hlua_unref
    - lua_type
    - check_args
    - lua_tostring
    - strlen
    - ha_warning
    - lua_next
    - strdup
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_cli(lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reg_flt_to_stack_id
      Src: /src/haproxy/src/hlua.c:12385,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12387,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12390,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12393,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:12396,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:12397,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:12399,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:12400,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:12401,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:12402,1
    - Dst: hlua_ref
      Src: /src/haproxy/src/hlua.c:12404,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12407,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12410,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:12413,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:12416,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12417,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:12420,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:12421,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:12421,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:12424,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12431,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12431,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12434,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12437,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12437,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12441,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12441,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12445,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12445,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12449,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12453,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12455
      start: 12379
    functionDepth: 2
    functionLinenumber: 12379
    functionLinenumberEnd: 12455
    functionName: hlua_filter_init_per_thread
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pcall
    - lua_settop
    - lua_pushnil
    - hlua_ref
    - lua_insert
    - hlua_pushref
    - lua_rawseti
    - hlua_tostring_safe
    - lua_pop
    - lua_pushvalue
    - lua_pushstring
    - lua_checkstack
    - lua_newtable
    - lua_rawlen
    - lua_gettop
    - ha_alert
    - lua_settable
    - lua_next
    - reg_flt_to_stack_id
    linkageType: ''
    returnType: int
    signature: int hlua_filter_init_per_thread(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reg_flt_to_stack_id
      Src: /src/haproxy/src/hlua.c:12466,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12469
      start: 12457
    functionDepth: 1
    functionLinenumber: 12457
    functionLinenumberEnd: 12469
    functionName: hlua_filter_deinit_per_thread
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_unref
    - reg_flt_to_stack_id
    linkageType: ''
    returnType: void
    signature: void hlua_filter_deinit_per_thread(struct proxy *px, struct flt_conf
      *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reg_flt_to_stack_id
      Src: /src/haproxy/src/hlua.c:12474,1
    - Dst: hlua_filter_init_per_thread
      Src: /src/haproxy/src/hlua.c:12478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12480
      start: 12471
    functionDepth: 3
    functionLinenumber: 12471
    functionLinenumberEnd: 12480
    functionName: hlua_filter_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_init_per_thread
    - reg_flt_to_stack_id
    linkageType: ''
    returnType: int
    signature: int hlua_filter_init(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reg_flt_to_stack_id
      Src: /src/haproxy/src/hlua.c:12487,1
    - Dst: hlua_filter_deinit_per_thread
      Src: /src/haproxy/src/hlua.c:12492,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:12495,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:12496,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12498,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12499,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12500,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12501
      start: 12482
    functionDepth: 2
    functionLinenumber: 12482
    functionLinenumberEnd: 12501
    functionName: hlua_filter_deinit
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - ha_free
    - hlua_filter_deinit_per_thread
    - free
    - reg_flt_to_stack_id
    linkageType: ''
    returnType: void
    signature: void hlua_filter_deinit(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/hlua.c:12505,1
    - Dst: hlua_stream_ctx_prepare
      Src: /src/haproxy/src/hlua.c:12510,1
    - Dst: reg_flt_to_stack_id
      Src: /src/haproxy/src/hlua.c:12510,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12511,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/hlua.c:12517,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12519,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:12525,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:12526,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:12527,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:12528,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12530,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:12536,1
    - Dst: reg_flt_to_stack_id
      Src: /src/haproxy/src/hlua.c:12536,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:12537,1
    - Dst: reg_flt_to_stack_id
      Src: /src/haproxy/src/hlua.c:12537,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12538,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:12544,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12546,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12549,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12550,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12551,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12554,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12555,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:12561,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12562,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12563,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12568,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12569,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12570,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12572,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:12576,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:12582,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12585,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:12588,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12591,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12594,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12595,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12596,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12599,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12600,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12606,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:12606,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12608,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:12613,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:12614,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:12615,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:12618,1
    - Dst: hlua_ref
      Src: /src/haproxy/src/hlua.c:12619,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12622,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12630,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12631,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12631,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12632,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12636,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12640,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12644,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12649,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12654,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12664,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12665,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12666,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12670,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12671,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:12672,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 143
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12676
      start: 12503
    functionDepth: 5
    functionLinenumber: 12503
    functionLinenumberEnd: 12676
    functionName: hlua_filter_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_stream_ctx_prepare
    - lua_settop
    - hlua_timer_init
    - hlua_ref
    - lua_insert
    - hlua_pushref
    - FLT_CONF
    - SET_SAFE_LJMP
    - hlua_ctx_destroy
    - pool_alloc
    - lua_istable
    - hlua_lock
    - pool_free
    - pool_zalloc
    - lua_getfield
    - SEND_ERR
    - hlua_tostring_safe
    - HLUA_IS_RUNNING
    - lua_pushvalue
    - lua_pushstring
    - hlua_unlock
    - lua_checkstack
    - lua_pushlightuserdata
    - hlua_ctx_resume
    - lua_type
    - hlua_ctx_init
    - lua_gettop
    - RESET_SAFE_LJMP
    - lua_settable
    - HLUA_INIT
    - reg_flt_to_stack_id
    linkageType: ''
    returnType: int
    signature: int hlua_filter_new(struct stream *s, struct filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_stream_ctx_get
      Src: /src/haproxy/src/hlua.c:12681,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua.c:12683,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12687,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12688,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12689,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12690,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12691,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:12692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12694
      start: 12678
    functionDepth: 3
    functionLinenumber: 12678
    functionLinenumberEnd: 12694
    functionName: hlua_filter_delete
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - hlua_unref
    - hlua_unlock
    - hlua_stream_ctx_get
    - hlua_lock
    - pool_free
    - hlua_ctx_destroy
    linkageType: ''
    returnType: void
    signature: void hlua_filter_delete(struct stream *s, struct filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12701
      start: 12696
    functionDepth: 0
    functionLinenumber: 12696
    functionLinenumberEnd: 12701
    functionName: hlua_filter_from_payload
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlua_filter_from_payload(struct filter *filter)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/hlua.c:12707,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:12716,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12720,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12723,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12724,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12725,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12728,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12729,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12733,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:12736,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12737,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12738,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12742,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12743,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12744,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:12747,1
    - Dst: hlua_txn_new
      Src: /src/haproxy/src/hlua.c:12749,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12750,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12751,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12758,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12760,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12761,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:12762,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:12763,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:12764,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12770,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12772,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12773,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:12774,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:12775,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:12776,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:12782,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12783,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12784,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:12789,1
    - Dst: lua_remove
      Src: /src/haproxy/src/hlua.c:12790,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:12795,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12798,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:12801,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12804,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12805,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:12806,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12807,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12809,1
    - Dst: HLUA_IS_WAKERESWR
      Src: /src/haproxy/src/hlua.c:12831,1
    - Dst: HLUA_IS_WAKEREQWR
      Src: /src/haproxy/src/hlua.c:12833,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12838,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12839,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12839,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12840,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12844,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12847,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12850,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12853,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12857,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 134
    argCount: 5
    argNames:
    - s
    - filter
    - fun
    - dir
    - flags
    argTypes:
    - struct stream*
    - struct filter*
    - char*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12866
      start: 12703
    functionDepth: 5
    functionLinenumber: 12703
    functionLinenumberEnd: 12866
    functionName: hlua_filter_callback
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_settop
    - hlua_timer_init
    - HLUA_IS_WAKEREQWR
    - lua_insert
    - hlua_pushref
    - FLT_CONF
    - SET_SAFE_LJMP
    - hlua_lock
    - lua_getfield
    - hlua_tostring_safe
    - SEND_ERR
    - lua_tointeger
    - HLUA_IS_RUNNING
    - lua_pushvalue
    - lua_pushstring
    - hlua_unlock
    - lua_checkstack
    - lua_remove
    - HLUA_IS_WAKERESWR
    - lua_pushlightuserdata
    - hlua_ctx_resume
    - lua_type
    - lua_gettop
    - RESET_SAFE_LJMP
    - hlua_txn_new
    - lua_settable
    linkageType: ''
    returnType: int
    signature: "int hlua_filter_callback(struct stream *s, struct filter *filter,
      const char *fun,\n\t\t\t\tint dir, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_filter_callback
      Src: /src/haproxy/src/hlua.c:12873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - filter
    - chn
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12876
      start: 12868
    functionDepth: 6
    functionLinenumber: 12868
    functionLinenumberEnd: 12876
    functionName: hlua_filter_start_analyze
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_callback
    linkageType: ''
    returnType: int
    signature: int hlua_filter_start_analyze(struct stream *s, struct filter *filter,
      struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_filter_callback
      Src: /src/haproxy/src/hlua.c:12883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - filter
    - chn
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12886
      start: 12878
    functionDepth: 6
    functionLinenumber: 12878
    functionLinenumberEnd: 12886
    functionName: hlua_filter_end_analyze
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_callback
    linkageType: ''
    returnType: int
    signature: int hlua_filter_end_analyze(struct stream *s, struct filter *filter,
      struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_filter_callback
      Src: /src/haproxy/src/hlua.c:12893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12896
      start: 12888
    functionDepth: 6
    functionLinenumber: 12888
    functionLinenumberEnd: 12896
    functionName: hlua_filter_http_headers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_callback
    linkageType: ''
    returnType: int
    signature: int hlua_filter_http_headers(struct stream *s, struct filter *filter,
      struct http_msg *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_filter_callback
      Src: /src/haproxy/src/hlua.c:12911,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12914,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:12915,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - s
    - filter
    - msg
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12922
      start: 12898
    functionDepth: 6
    functionLinenumber: 12898
    functionLinenumberEnd: 12922
    functionName: hlua_filter_http_payload
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_gettop
    - lua_tointeger
    - hlua_filter_callback
    - lua_settop
    linkageType: ''
    returnType: int
    signature: "int hlua_filter_http_payload(struct stream *s, struct filter *filter,
      struct http_msg *msg,\n\t\t\t\t     unsigned int offset, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_filter_callback
      Src: /src/haproxy/src/hlua.c:12929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12932
      start: 12924
    functionDepth: 6
    functionLinenumber: 12924
    functionLinenumberEnd: 12932
    functionName: hlua_filter_http_end
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_callback
    linkageType: ''
    returnType: int
    signature: int hlua_filter_http_end(struct stream *s, struct filter *filter, struct
      http_msg *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_filter_callback
      Src: /src/haproxy/src/hlua.c:12947,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12950,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:12951,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12954,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - s
    - filter
    - chn
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12958
      start: 12934
    functionDepth: 6
    functionLinenumber: 12934
    functionLinenumberEnd: 12958
    functionName: hlua_filter_tcp_payload
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_gettop
    - lua_tointeger
    - hlua_filter_callback
    - lua_settop
    linkageType: ''
    returnType: int
    signature: "int hlua_filter_tcp_payload(struct stream *s, struct filter *filter,
      struct channel *chn,\n\t\t\t\t    unsigned int offset, unsigned int len)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: reg_flt_to_stack_id
      Src: /src/haproxy/src/hlua.c:12970,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:12974,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12988,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12990,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12992,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12993,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12995,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12996,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12998,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12999,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13001,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:13002,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13004,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:13005,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13007,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:13010,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:13011,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13012,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:13013,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:13014,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13015,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13018,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13025,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:13029,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:13037,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:13045,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13049,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13050,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13053,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13054,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13056,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13057,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:13058,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 83
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13060
      start: 12960
    functionDepth: 1
    functionLinenumber: 12960
    functionLinenumberEnd: 13060
    functionName: hlua_filter_parse_fct
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memprintf
    - lua_getfield
    - lua_tointeger
    - lua_settop
    - lua_pop
    - calloc
    - free
    - lua_tostring
    - hlua_pushref
    - reg_flt_to_stack_id
    - strdup
    linkageType: ''
    returnType: int
    signature: "int hlua_filter_parse_fct(char **args, int *cur_arg, struct proxy
      *px,\n\t\t\t\t struct flt_conf *fconf, char **err, void *private)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13067,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:13067,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13068,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:13068,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13069,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:13069,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:13071,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13072,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:13072,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:13073,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13074,1
    - Dst: register_data_filter
      Src: /src/haproxy/src/hlua.c:13076,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:13076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13078
      start: 13062
    functionDepth: 2
    functionLinenumber: 13062
    functionLinenumberEnd: 13078
    functionName: hlua_register_data_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - lua_getfield
    - luaL_checktype
    - hlua_checkchannel
    - lua_pop
    - check_args
    - register_data_filter
    - lua_touserdata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_data_filter(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13085,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:13085,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13086,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:13086,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13087,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:13087,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:13089,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13090,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:13090,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:13091,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13092,1
    - Dst: unregister_data_filter
      Src: /src/haproxy/src/hlua.c:13094,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:13094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13096
      start: 13080
    functionDepth: 2
    functionLinenumber: 13080
    functionLinenumberEnd: 13096
    functionName: hlua_unregister_data_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - chn_strm
    - lua_getfield
    - luaL_checktype
    - hlua_checkchannel
    - lua_pop
    - check_args
    - unregister_data_filter
    - lua_touserdata
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_unregister_data_filter(lua_State *L)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13112,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:13112,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:13114,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13116,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:13116,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13120,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:13120,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13123,1
    - Dst: hlua_checktable
      Src: /src/haproxy/src/hlua.c:13123,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13126,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:13126,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:13128,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:13129,1
    - Dst: flt_find_kw
      Src: /src/haproxy/src/hlua.c:13130,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:13134,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:13137,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:13139,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13146,1
    - Dst: new_hlua_reg_filter
      Src: /src/haproxy/src/hlua.c:13151,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:13159,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:13159,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13160,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:13164,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:13168,1
    - Dst: flt_register_keywords
      Src: /src/haproxy/src/hlua.c:13171,1
    - Dst: release_hlua_reg_filter
      Src: /src/haproxy/src/hlua.c:13176,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:13177,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:13178,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:13179,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13180,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:13180,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13182
      start: 13102
    functionDepth: 2
    functionLinenumber: 13102
    functionLinenumberEnd: 13182
    functionName: hlua_register_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - hlua_checkfunction
    - luaL_error
    - get_trash_chunk
    - flt_register_keywords
    - release_hlua_reg_filter
    - snprintf
    - flt_find_kw
    - hlua_gethlua
    - ha_free
    - chunk_printf
    - WILL_LJMP
    - new_hlua_reg_filter
    - hlua_checktable
    - calloc
    - luaL_checkstring
    - memset
    - hlua_unref
    - check_args
    - ha_warning
    - strlen
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_filter(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_time_err
      Src: /src/haproxy/src/hlua.c:13190,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13192,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13197,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 8
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    - timeout
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13206
      start: 13184
    functionDepth: 1
    functionLinenumber: 13184
    functionLinenumberEnd: 13206
    functionName: hlua_read_timeout
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int hlua_read_timeout(char **args, int section_type, struct proxy
      *curpx,\n                             const struct proxy *defpx, const char
      *file, int line,\n                             char **err, unsigned int *timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_read_timeout
      Src: /src/haproxy/src/hlua.c:13212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13214
      start: 13208
    functionDepth: 2
    functionLinenumber: 13208
    functionLinenumberEnd: 13214
    functionName: hlua_burst_timeout
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_read_timeout
    linkageType: ''
    returnType: int
    signature: "int hlua_burst_timeout(char **args, int section_type, struct proxy
      *curpx,\n                              const struct proxy *defpx, const char
      *file, int line,\n                              char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_read_timeout
      Src: /src/haproxy/src/hlua.c:13220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13222
      start: 13216
    functionDepth: 2
    functionLinenumber: 13216
    functionLinenumberEnd: 13222
    functionName: hlua_session_timeout
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_read_timeout
    linkageType: ''
    returnType: int
    signature: "int hlua_session_timeout(char **args, int section_type, struct proxy
      *curpx,\n                                const struct proxy *defpx, const char
      *file, int line,\n                                char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_read_timeout
      Src: /src/haproxy/src/hlua.c:13228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13230
      start: 13224
    functionDepth: 2
    functionLinenumber: 13224
    functionLinenumberEnd: 13230
    functionName: hlua_task_timeout
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_read_timeout
    linkageType: ''
    returnType: int
    signature: "int hlua_task_timeout(char **args, int section_type, struct proxy
      *curpx,\n                             const struct proxy *defpx, const char
      *file, int line,\n                             char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_read_timeout
      Src: /src/haproxy/src/hlua.c:13236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13238
      start: 13232
    functionDepth: 2
    functionLinenumber: 13232
    functionLinenumberEnd: 13238
    functionName: hlua_applet_timeout
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_read_timeout
    linkageType: ''
    returnType: int
    signature: "int hlua_applet_timeout(char **args, int section_type, struct proxy
      *curpx,\n                               const struct proxy *defpx, const char
      *file, int line,\n                               char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/haproxy/src/hlua.c:13246,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13252
      start: 13240
    functionDepth: 1
    functionLinenumber: 13240
    functionLinenumberEnd: 13252
    functionName: hlua_forced_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - strtoll
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int hlua_forced_yield(char **args, int section_type, struct proxy
      *curpx,\n                             const struct proxy *defpx, const char
      *file, int line,\n                             char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13261,1
    - Dst: strtoll
      Src: /src/haproxy/src/hlua.c:13264,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13270
      start: 13254
    functionDepth: 1
    functionLinenumber: 13254
    functionLinenumberEnd: 13270
    functionName: hlua_parse_maxmem
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - strtoll
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int hlua_parse_maxmem(char **args, int section_type, struct proxy
      *curpx,\n                             const struct proxy *defpx, const char
      *file, int line,\n                             char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/hlua.c:13276,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13279,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13281,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13288
      start: 13272
    functionDepth: 1
    functionLinenumber: 13272
    functionLinenumberEnd: 13288
    functionName: hlua_cfg_parse_log_loggers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int hlua_cfg_parse_log_loggers(char **args, int section_type, struct
      proxy *curpx,\n                              const struct proxy *defpx, const
      char *file, int line,\n                              char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/hlua.c:13294,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13297,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13299,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13301,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13308
      start: 13290
    functionDepth: 1
    functionLinenumber: 13290
    functionLinenumberEnd: 13308
    functionName: hlua_cfg_parse_log_stderr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int hlua_cfg_parse_log_stderr(char **args, int section_type, struct
      proxy *curpx,\n                                     const struct proxy *defpx,
      const char *file, int line,\n                                    char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/hlua.c:13316,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13319,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13321,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13324,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:13329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13337
      start: 13310
    functionDepth: 1
    functionLinenumber: 13310
    functionLinenumberEnd: 13337
    functionName: hlua_cfg_parse_bool_sample_conversion
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    - ha_warning
    linkageType: ''
    returnType: int
    signature: "int hlua_cfg_parse_bool_sample_conversion(char **args, int section_type,
      struct proxy *curpx,\n                                                 const
      struct proxy *defpx, const char *file, int line,\n                                                 char
      **err)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/hlua.c:13347,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13351,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13357,1
    - Dst: strtok_r
      Src: /src/haproxy/src/hlua.c:13363,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13366,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13369,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13374,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13381,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13383,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13391,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13400,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13407
      start: 13339
    functionDepth: 1
    functionLinenumber: 13339
    functionLinenumberEnd: 13407
    functionName: hlua_cfg_parse_openlibs
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - strtok_r
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int hlua_cfg_parse_openlibs(char **args, int section_type, struct
      proxy *curpx,\n                                   const struct proxy *defpx,
      const char *file, int line,\n                                   char **err)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ONLY_ONCE
      Src: /src/haproxy/src/hlua.c:13428,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:13439,1
    - Dst: luaL_loadfile
      Src: /src/haproxy/src/hlua.c:13447,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13449,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13449,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13450,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:13457,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13458,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:13461,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:13466,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13471,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13471,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13472,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13475,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13478,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13478,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13479,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13483,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13483,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13484,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13488,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13488,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13489,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 3
    argNames:
    - args
    - L
    - err
    argTypes:
    - char**
    - lua_State*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13494
      start: 13423
    functionDepth: 1
    functionLinenumber: 13423
    functionLinenumberEnd: 13494
    functionName: hlua_load_state
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ONLY_ONCE
    - lua_pcall
    - hlua_tostring_safe
    - lua_pop
    - lua_pushstring
    - lua_checkstack
    - luaL_loadfile
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int hlua_load_state(char **args, lua_State *L, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13501,1
    - Dst: hlua_init
      Src: /src/haproxy/src/hlua.c:13505,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:13509,1
    - Dst: hlua_load_state
      Src: /src/haproxy/src/hlua.c:13510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13511
      start: 13496
    functionDepth: 2
    functionLinenumber: 13496
    functionLinenumberEnd: 13511
    functionName: hlua_load
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - ha_set_thread
    - memprintf
    - hlua_init
    - hlua_load_state
    linkageType: ''
    returnType: int
    signature: "int hlua_load(char **args, int section_type, struct proxy *curpx,\n
      \                    const struct proxy *defpx, const char *file, int line,\n
      \                    char **err)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13521,1
    - Dst: hlua_init
      Src: /src/haproxy/src/hlua.c:13525,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13529,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13531,1
    - Dst: realloc
      Src: /src/haproxy/src/hlua.c:13540,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13542,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13549,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13551,1
    - Dst: getcwd
      Src: /src/haproxy/src/hlua.c:13564,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13566,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13569,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:13572,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13574,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:13578,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13580,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:13586,1
    - Dst: hlua_load_state
      Src: /src/haproxy/src/hlua.c:13587,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13588
      start: 13513
    functionDepth: 2
    functionLinenumber: 13513
    functionLinenumberEnd: 13588
    functionName: hlua_load_per_thread
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - getcwd
    - memprintf
    - calloc
    - hlua_init
    - realloc
    - hlua_load_state
    - ha_set_thread
    - strdup
    linkageType: ''
    returnType: int
    signature: "int hlua_load_per_thread(char **args, int section_type, struct proxy
      *curpx,\n                                const struct proxy *defpx, const char
      *file, int line,\n                                char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_getglobal
      Src: /src/haproxy/src/hlua.c:13595,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:13596,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:13597,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:13598,1
    - Dst: lua_concat
      Src: /src/haproxy/src/hlua.c:13599,1
    - Dst: lua_setfield
      Src: /src/haproxy/src/hlua.c:13600,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - L
    - type
    - path
    argTypes:
    - lua_State*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13604
      start: 13593
    functionDepth: 0
    functionLinenumber: 13593
    functionLinenumberEnd: 13604
    functionName: hlua_prepend_path
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_concat
    - lua_getfield
    - lua_pop
    - lua_getglobal
    - lua_pushstring
    - lua_setfield
    linkageType: ''
    returnType: int
    signature: int hlua_prepend_path(lua_State *L, char *type, char *path)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: hlua_init
      Src: /src/haproxy/src/hlua.c:13615,1
    - Dst: too_many_args
      Src: /src/haproxy/src/hlua.c:13617,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13622,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13628,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13628,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13629,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13635,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13637,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:13640,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13642,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:13645,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13647,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua.c:13650,1
    - Dst: setjmp
      Src: /src/haproxy/src/hlua.c:13660,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:13661,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:13662,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13663,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:13666,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:13667,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:13669,1
    - Dst: hlua_prepend_path
      Src: /src/haproxy/src/hlua.c:13672,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:13674,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13680,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13681,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13683,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13685
      start: 13606
    functionDepth: 1
    functionLinenumber: 13606
    functionLinenumberEnd: 13685
    functionName: hlua_config_prepend_path
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memprintf
    - hlua_tostring_safe
    - exit
    - setjmp
    - calloc
    - lua_type
    - strcmp
    - LIST_APPEND
    - free
    - hlua_init
    - fprintf
    - hlua_prepend_path
    - lua_atpanic
    - too_many_args
    - strdup
    linkageType: ''
    returnType: int
    signature: "int hlua_config_prepend_path(char **args, int section_type, struct
      proxy *curpx,\n                                    const struct proxy *defpx,
      const char *file, int line,\n                                    char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:13717,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:13718,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:13726,1
    - Dst: ckch_store_rebuild_instances
      Src: /src/haproxy/src/hlua.c:13729,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:13736,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13737,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:13737,1
    - Dst: ckch_store_replace
      Src: /src/haproxy/src/hlua.c:13741,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13743,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua.c:13745,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/hlua.c:13750,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua.c:13751,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:13752,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13753,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13754,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:13754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13757
      start: 13715
    functionDepth: 2
    functionLinenumber: 13715
    functionLinenumberEnd: 13757
    functionName: hlua_ckch_commit_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - lua_error
    - ckch_store_free
    - hlua_gethlua
    - lua_pop
    - task_wakeup
    - HA_SPIN_UNLOCK
    - free
    - ckch_store_replace
    - WILL_LJMP
    - hlua_pushfstring_safe
    - lua_touserdata
    - hlua_yieldk
    - ckch_store_rebuild_instances
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_ckch_commit_yield(lua_State *L, int status, lua_KContext
      ctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:13784,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13785,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:13785,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:13787,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:13788,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13793,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:13793,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/hlua.c:13798,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13799,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:13799,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:13801,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13803,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:13807,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/hlua.c:13811,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13813,1
    - Dst: ckchs_dup
      Src: /src/haproxy/src/hlua.c:13819,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13821,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:13830,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:13831,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:13833,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:13834,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13836,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13837,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13842,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13850,1
    - Dst: OCSP_CERTID_free
      Src: /src/haproxy/src/hlua.c:13858,1
    - Dst: struct cert_exts*::load
      Src: /src/haproxy/src/hlua.c:13863,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13864,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13868,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:13872,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:13875,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:13882,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13883,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:13883,1
    - Dst: hlua_ckch_commit_yield
      Src: /src/haproxy/src/hlua.c:13889,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua.c:13893,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/hlua.c:13896,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:13897,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13898,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13899,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:13899,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13901,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 84
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13904
      start: 13770
    functionDepth: 3
    functionLinenumber: 13770
    functionLinenumberEnd: 13904
    functionName: hlua_ckch_set
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MAY_LJMP
    - memprintf
    - luaL_error
    - lua_pushnil
    - ckchs_dup
    - free
    - hlua_pushfstring_safe
    - hlua_gethlua
    - ckchs_lookup
    - strcmp
    - WILL_LJMP
    - lua_error
    - HA_SPIN_TRYLOCK
    - lua_getfield
    - hlua_ckch_commit_yield
    - lua_pop
    - HLUA_CANT_YIELD
    - struct cert_exts*::load
    - OCSP_CERTID_free
    - ckch_store_free
    - task_wakeup
    - lua_type
    - HA_SPIN_UNLOCK
    - lua_tostring
    - lua_newuserdata
    - hlua_yieldk
    - lua_next
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_ckch_set(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13910,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:13910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13913
      start: 13908
    functionDepth: 1
    functionLinenumber: 13908
    functionLinenumberEnd: 13913
    functionName: hlua_ckch_set
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - WILL_LJMP
    - luaL_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_ckch_set(lua_State *L)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: setjmp
      Src: /src/haproxy/src/hlua.c:13940,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:13941,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:13942,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13943,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:13946,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:13947,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:13949,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/hlua.c:13952,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:13953,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:13957,1
    - Dst: lua_resume
      Src: /src/haproxy/src/hlua.c:13960,1
    - Dst: lua_resume
      Src: /src/haproxy/src/hlua.c:13962,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13968,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13977,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:13978,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:13980,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:13982,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:13984,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:14000,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:14001,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:14002,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:14010,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14012
      start: 13922
    functionDepth: 3
    functionLinenumber: 13922
    functionLinenumberEnd: 14012
    functionName: hlua_post_init_state
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_tostring_safe
    - exit
    - list_for_each_entry
    - setjmp
    - hlua_unref
    - lua_type
    - lua_pop
    - lua_settop
    - lua_resume
    - fprintf
    - hlua_traceback
    - hlua_pushref
    - ha_alert
    - lua_atpanic
    linkageType: ''
    returnType: int
    signature: int hlua_post_init_state(lua_State *L)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xprt::prepare_srv
      Src: /src/haproxy/src/hlua.c:14031,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:14038,1
    - Dst: hlua_post_init_state
      Src: /src/haproxy/src/hlua.c:14039,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:14047,1
    - Dst: hlua_init_state
      Src: /src/haproxy/src/hlua.c:14050,1
    - Dst: hlua_load_state
      Src: /src/haproxy/src/hlua.c:14054,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:14056,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:14063,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:14069,1
    - Dst: hlua_post_init_state
      Src: /src/haproxy/src/hlua.c:14072,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:14078,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/hlua.c:14089,1
    - Dst: abs
      Src: /src/haproxy/src/hlua.c:14097,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:14098,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:14105,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/hlua.c:14113,1
    - Dst: abs
      Src: /src/haproxy/src/hlua.c:14121,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:14122,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:14129,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14146
      start: 14014
    functionDepth: 4
    functionLinenumber: 14014
    functionLinenumberEnd: 14146
    functionName: hlua_post_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_init_state
    - list_for_each_entry
    - hlua_post_init_state
    - xprt::prepare_srv
    - abs
    - ha_alert
    - hlua_load_state
    - ha_set_thread
    linkageType: ''
    returnType: int
    signature: int hlua_post_init()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/hlua.c:14170,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:14172,1
    - Dst: realloc
      Src: /src/haproxy/src/hlua.c:14174,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/hlua.c:14183,1
    - Dst: old::old
      Src: /src/haproxy/src/hlua.c:14185,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:14186,1
    - Dst: limit::limit
      Src: /src/haproxy/src/hlua.c:14186,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/hlua.c:14188,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:14191,1
    - Dst: realloc
      Src: /src/haproxy/src/hlua.c:14193,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:14195,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/hlua.c:14196,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/hlua.c:14198,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - ud
    - ptr
    - osize
    - nsize
    argTypes:
    - void*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14200
      start: 14162
    functionDepth: 1
    functionLinenumber: 14162
    functionLinenumberEnd: 14200
    functionName: hlua_alloc
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _HA_ATOMIC_LOAD
    - ha_free
    - old::old
    - likely
    - limit::limit
    - realloc
    - _HA_ATOMIC_CAS
    - __ha_barrier_atomic_store
    - _HA_ATOMIC_SUB
    linkageType: ''
    returnType: void
    signature: void *hlua_alloc(void *ud, void *ptr, size_t osize, size_t nsize)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lua_newstate
      Src: /src/haproxy/src/hlua.c:14220,1
    - Dst: luaL_makeseed
      Src: /src/haproxy/src/hlua.c:14220,1
    - Dst: lua_newstate
      Src: /src/haproxy/src/hlua.c:14222,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14226,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:14229,1
    - Dst: lua_getextraspace
      Src: /src/haproxy/src/hlua.c:14233,1
    - Dst: setjmp
      Src: /src/haproxy/src/hlua.c:14242,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:14243,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:14244,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:14245,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14248,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:14249,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:14251,1
    - Dst: luaL_openlibs
      Src: /src/haproxy/src/hlua.c:14260,1
    - Dst: luaL_requiref
      Src: /src/haproxy/src/hlua.c:14264,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:14264,1
    - Dst: luaL_requiref
      Src: /src/haproxy/src/hlua.c:14265,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:14265,1
    - Dst: luaL_requiref
      Src: /src/haproxy/src/hlua.c:14268,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:14269,1
    - Dst: hlua_prepend_path
      Src: /src/haproxy/src/hlua.c:14276,1
    - Dst: HLUA_PREPEND_PATH_TOSTRING
      Src: /src/haproxy/src/hlua.c:14276,1
    - Dst: hlua_prepend_path
      Src: /src/haproxy/src/hlua.c:14279,1
    - Dst: HLUA_PREPEND_PATH_TOSTRING
      Src: /src/haproxy/src/hlua.c:14279,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/hlua.c:14285,1
    - Dst: hlua_prepend_path
      Src: /src/haproxy/src/hlua.c:14286,1
    - Dst: lua_getglobal
      Src: /src/haproxy/src/hlua.c:14294,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua.c:14295,1
    - Dst: lua_setfield
      Src: /src/haproxy/src/hlua.c:14296,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14305,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14308,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14311,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14313,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14316,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14317,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14318,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14319,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14320,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14321,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14322,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14323,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14324,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14325,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14326,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14327,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14328,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14329,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14330,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14331,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14332,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14333,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14334,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14335,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14336,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14337,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14338,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14339,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14340,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14341,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14342,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14343,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14344,1
    - Dst: hlua_fcn_reg_core_fcn
      Src: /src/haproxy/src/hlua.c:14345,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua.c:14347,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14356,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14359,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14360,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14361,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14362,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14363,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14364,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14365,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14366,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14368,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua.c:14370,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14379,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14382,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14383,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14384,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14386,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14388,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14389,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14390,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua.c:14392,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14401,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14405,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:14407,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14408,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14412,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14415,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14418,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14419,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14422,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14423,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14425,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:14431,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14432,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:14435,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua.c:14438,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14447,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14449,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua.c:14450,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14459,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14462,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14463,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14466,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14467,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14468,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14469,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14470,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14471,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14472,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14473,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14474,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14475,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14476,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14477,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14478,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14479,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14482,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14483,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14484,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14485,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14486,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14488,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14491,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14500,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14503,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14504,1
    - Dst: sample_fetch_getnext
      Src: /src/haproxy/src/hlua.c:14510,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/hlua.c:14514,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14520,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:14521,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua.c:14522,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14523,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14526,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14529,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14538,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14541,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14542,1
    - Dst: sample_conv_getnext
      Src: /src/haproxy/src/hlua.c:14548,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/hlua.c:14552,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14558,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:14559,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua.c:14560,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14561,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14564,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14567,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14576,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14579,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14580,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14583,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14584,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14585,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14586,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14587,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14588,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14589,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14590,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14591,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14592,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14594,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14595,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14596,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14597,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14598,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14599,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14600,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14602,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14605,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14614,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14617,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14618,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14621,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14622,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14623,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14624,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14625,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14626,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14627,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14628,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14629,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14630,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14631,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14632,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14633,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14634,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14635,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14636,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14637,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14638,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14639,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14641,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14642,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14643,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14644,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14645,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14646,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14647,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14648,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14650,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14651,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14653,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14656,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14665,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14666,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14667,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14668,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14669,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14670,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14671,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14672,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:14673,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14675,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua.c:14676,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:14677,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14681,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14689,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14692,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14693,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14696,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14697,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14698,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14699,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14700,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14701,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14702,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14703,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14704,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:14706,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14709,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14718,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14721,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14722,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14725,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14726,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14727,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14728,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14729,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14730,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14731,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14732,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14733,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14734,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14735,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:14737,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14740,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14749,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14752,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14753,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14756,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14757,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14758,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14759,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14760,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14761,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14762,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14763,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14764,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14765,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14766,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14767,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14768,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14769,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14770,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14771,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14772,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14773,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14774,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14775,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14777,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14780,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14787,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14788,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14789,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14790,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14791,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14792,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14793,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:14794,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:14795,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14805,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14808,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14809,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14812,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14814,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14815,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14816,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14817,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14818,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14819,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14820,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14821,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14823,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14826,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua.c:14827,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14828,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14831,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:14833,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 325
    argCount: 1
    argNames:
    - thread_num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14836
      start: 14206
    functionDepth: 1
    functionLinenumber: 14206
    functionLinenumberEnd: 14836
    functionName: hlua_init_state
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 1
    functionsReached:
    - exit
    - lua_setmetatable
    - hlua_prepend_path
    - luaL_requiref
    - lua_getextraspace
    - lua_atpanic
    - snprintf
    - lua_getglobal
    - luaL_makeseed
    - sample_conv_getnext
    - luaL_ref
    - hlua_tostring_safe
    - lua_pop
    - hlua_class_function
    - lua_pushvalue
    - luaL_openlibs
    - lua_pushstring
    - hlua_register_metatable
    - lua_rawset
    - strlcpy2
    - lua_newtable
    - hlua_fcn_reg_core_fcn
    - sample_fetch_getnext
    - lua_pushlightuserdata
    - lua_setglobal
    - list_for_each_entry
    - setjmp
    - lua_type
    - hlua_class_const_int
    - lua_pushcclosure
    - lua_newstate
    - HLUA_PREPEND_PATH_TOSTRING
    - fprintf
    - lua_settable
    - lua_setfield
    linkageType: ''
    returnType: lua_State
    signature: lua_State *hlua_init_state(int thread_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14274
      start: 14273
    functionDepth: 0
    functionLinenumber: 14273
    functionLinenumberEnd: 14274
    functionName: HLUA_PREPEND_PATH_TOSTRING1
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_PREPEND_PATH_TOSTRING1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14275
      start: 14274
    functionDepth: 0
    functionLinenumber: 14274
    functionLinenumberEnd: 14275
    functionName: HLUA_PREPEND_PATH_TOSTRING
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_PREPEND_PATH_TOSTRING(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/hlua.c:14858,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:14862,1
    - Dst: hlua_init_state
      Src: /src/haproxy/src/hlua.c:14863,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:14867,1
    - Dst: hlua_init_state
      Src: /src/haproxy/src/hlua.c:14868,1
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/hlua.c:14871,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14873,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:14874,1
    - Dst: new_server
      Src: /src/haproxy/src/hlua.c:14878,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14880,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:14881,1
    - Dst: new_server
      Src: /src/haproxy/src/hlua.c:14886,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14888,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:14889,1
    - Dst: xprt_get
      Src: /src/haproxy/src/hlua.c:14893,1
    - Dst: srv_find_kw
      Src: /src/haproxy/src/hlua.c:14896,1
    - Dst: struct srv_kw*::parse
      Src: /src/haproxy/src/hlua.c:14904,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14906,1
    - Dst: abort
      Src: /src/haproxy/src/hlua.c:14907,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14915
      start: 14838
    functionDepth: 2
    functionLinenumber: 14838
    functionLinenumberEnd: 14915
    functionName: hlua_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 3
    functionsReached:
    - exit
    - hlua_init_state
    - struct srv_kw*::parse
    - xprt_get
    - abort
    - srv_find_kw
    - alloc_new_proxy
    - fprintf
    - ha_set_thread
    - LIST_INIT
    - new_server
    linkageType: ''
    returnType: void
    signature: void hlua_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/hlua.c:14922,1
    - Dst: release_hlua_reg_filter
      Src: /src/haproxy/src/hlua.c:14923,1
    - Dst: lua_close
      Src: /src/haproxy/src/hlua.c:14927,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/hlua.c:14930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14931
      start: 14917
    functionDepth: 2
    functionLinenumber: 14917
    functionLinenumberEnd: 14931
    functionName: hlua_deinit
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - proxy_drop
    - list_for_each_entry_safe
    - lua_close
    - release_hlua_reg_filter
    linkageType: ''
    returnType: void
    signature: void hlua_deinit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:14939,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/hlua.c:14940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14941
      start: 14935
    functionDepth: 1
    functionLinenumber: 14935
    functionLinenumberEnd: 14941
    functionName: hlua_register_build_options
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memprintf
    - hap_register_build_opts
    linkageType: ''
    returnType: void
    signature: void hlua_register_build_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_init
      Src: /src/haproxy/src/hlua.c:14950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14952
      start: 14948
    functionDepth: 0
    functionLinenumber: 14948
    functionLinenumberEnd: 14952
    functionName: hlua_pre_check
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_init
    linkageType: ''
    returnType: int
    signature: int hlua_pre_check(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isteq
      Src: /src/haproxy/src/hpack-enc.c:167,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-enc.c:167,1
    - Dst: likely
      Src: /src/haproxy/src/hpack-enc.c:178,1
    - Dst: ist2bin
      Src: /src/haproxy/src/hpack-enc.c:181,1
    - Dst: hpack_len_to_bytes
      Src: /src/haproxy/src/hpack-enc.c:184,1
    - Dst: hpack_len_to_bytes
      Src: /src/haproxy/src/hpack-enc.c:185,1
    - Dst: hpack_encode_len
      Src: /src/haproxy/src/hpack-enc.c:187,1
    - Dst: ist2bin
      Src: /src/haproxy/src/hpack-enc.c:188,1
    - Dst: hpack_len_to_bytes
      Src: /src/haproxy/src/hpack-enc.c:198,1
    - Dst: hpack_len_to_bytes
      Src: /src/haproxy/src/hpack-enc.c:199,1
    - Dst: hpack_encode_len
      Src: /src/haproxy/src/hpack-enc.c:204,1
    - Dst: memcpy
      Src: /src/haproxy/src/hpack-enc.c:205,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - out
    - n
    - v
    argTypes:
    - struct buffer*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 210
    functionName: hpack_encode_header
    functionSourceFile: /src/haproxy/src/hpack-enc.c
    functionUses: 0
    functionsReached:
    - ist2
    - memcpy
    - hpack_len_to_bytes
    - likely
    - hpack_encode_len
    - isteq
    - ist2bin
    linkageType: ''
    returnType: int
    signature: "int hpack_encode_header(struct buffer *out, const struct ist n,\n\t\t\tconst
      struct ist v)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:79,1
    - Dst: __ha_barrier_load
      Src: /src/haproxy/src/listener.c:94,1
    - Dst: pl_cpu_relax
      Src: /src/haproxy/src/listener.c:97,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/listener.c:103,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:106,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/listener.c:106,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/listener.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct accept_queue_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 109
    functionName: accept_queue_pop_sc
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _HA_ATOMIC_LOAD
    - __ha_cpu_relax
    - __ha_barrier_store
    - pl_cpu_relax
    - HA_ATOMIC_CAS
    - __ha_barrier_load
    linkageType: ''
    returnType: struct connection
    signature: struct connection *accept_queue_pop_sc(struct accept_queue_ring *ring)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:122,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:132,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/listener.c:132,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/listener.c:132,1
    - Dst: accept_push_cb
      Src: /src/haproxy/src/listener.c:135,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/listener.c:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ring
    - conn
    argTypes:
    - struct accept_queue_ring*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 140
    functionName: accept_queue_push_mp
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _HA_ATOMIC_LOAD
    - __ha_cpu_relax
    - __ha_barrier_store
    - _HA_ATOMIC_CAS
    - accept_push_cb
    linkageType: ''
    returnType: int
    signature: "int accept_queue_push_mp(struct accept_queue_ring *ring, struct connection
      *conn,\n                         void (*accept_push_cb)(struct connection *))"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: accept_queue_pop_sc
      Src: /src/haproxy/src/listener.c:158,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/listener.c:162,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:163,1
    - Dst: struct listener*::bind_conf::accept
      Src: /src/haproxy/src/listener.c:164,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/listener.c:175,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:177,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/listener.c:179,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:180,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/listener.c:187,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 190
    functionName: accept_queue_process
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - __objt_listener
    - tasklet_wakeup
    - struct listener*::bind_conf::accept
    - accept_queue_pop_sc
    - update_freq_ctr
    - COUNTERS_UPDATE_MAX
    linkageType: ''
    returnType: struct task
    signature: struct task *accept_queue_process(struct task *t, void *context, unsigned
      int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_new
      Src: /src/haproxy/src/listener.c:199,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 210
    functionName: accept_queue_init
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - ha_alert
    - tasklet_new
    linkageType: ''
    returnType: int
    signature: int accept_queue_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_free
      Src: /src/haproxy/src/listener.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: accept_queue_deinit
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - tasklet_free
    linkageType: ''
    returnType: void
    signature: void accept_queue_deinit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/listener.c:233,1
    - Dst: calloc
      Src: /src/haproxy/src/listener.c:237,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/listener.c:242,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/listener.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - li
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 249
    functionName: li_init_per_thr
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - calloc
    - MIN
    - MT_LIST_INIT
    linkageType: ''
    returnType: int
    signature: int li_init_per_thr(struct listener *li)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: get_li_status
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum li_status
    signature: enum li_status get_li_status(struct listener *l)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:275,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:281,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:284,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:289,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:300,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:301,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:304,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:305,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:310,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:311,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - l
    - st
    argTypes:
    - struct listener*
    - enum li_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 317
    functionName: listener_set_state
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 4
    functionsReached:
    - _HA_ATOMIC_INC
    - _HA_ATOMIC_DEC
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void listener_set_state(struct listener *l, enum li_state st)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:327,1
    - Dst: do_unbind_listener
      Src: /src/haproxy/src/listener.c:334,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:337,1
    - Dst: do_unbind_listener
      Src: /src/haproxy/src/listener.c:343,1
    - Dst: struct listener*::rx::proto::enable
      Src: /src/haproxy/src/listener.c:346,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:347,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:350,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:354,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 355
    functionName: enable_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - struct listener*::rx::proto::enable
    - BUG_ON
    - HA_RWLOCK_WRUNLOCK
    - listener_set_state
    - do_unbind_listener
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void enable_listener(struct listener *listener)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:378,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/listener.c:381,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:384,1
    - Dst: do_unbind_listener
      Src: /src/haproxy/src/listener.c:387,1
    - Dst: __delete_listener
      Src: /src/haproxy/src/listener.c:390,1
    - Dst: proxy_cond_disable
      Src: /src/haproxy/src/listener.c:393,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:397,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/listener.c:400,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:403,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 4
    argNames:
    - l
    - lpx
    - lpr
    - lli
    argTypes:
    - struct listener*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 404
    functionName: stop_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 1
    functionsReached:
    - proxy_cond_disable
    - HA_RWLOCK_WRUNLOCK
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - do_unbind_listener
    - HA_RWLOCK_WRLOCK
    - __delete_listener
    linkageType: ''
    returnType: void
    signature: void stop_listener(struct listener *l, int lpx, int lpr, int lli)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ceb32_item_lookup_ge
      Src: /src/haproxy/src/listener.c:415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - px
    - from
    argTypes:
    - struct proxy*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 421
    functionName: listener_get_next_id
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - ceb32_item_lookup_ge
    linkageType: ''
    returnType: uint
    signature: uint listener_get_next_id(const struct proxy *px, uint from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:432,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - proto
    - listener
    argTypes:
    - struct protocol*
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 436
    functionName: default_add_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - listener_set_state
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void default_add_listener(struct protocol *proto, struct listener *listener)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct listener*::rx::proto::rx_suspend
      Src: /src/haproxy/src/listener.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: default_suspend_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - struct listener*::rx::proto::rx_suspend
    linkageType: ''
    returnType: int
    signature: int default_suspend_listener(struct listener *l)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: struct listener*::rx::proto::fam::bind
      Src: /src/haproxy/src/listener.c:472,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:475,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:477,1
    - Dst: ha_free
      Src: /src/haproxy/src/listener.c:478,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:489,1
    - Dst: struct listener*::rx::proto::listen
      Src: /src/haproxy/src/listener.c:490,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:492,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:494,1
    - Dst: struct listener*::rx::proto::rx_resume
      Src: /src/haproxy/src/listener.c:508,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 512
    functionName: default_resume_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - ha_free
    - struct listener*::rx::proto::listen
    - struct listener*::rx::proto::fam::bind
    - ha_alert
    - struct listener*::rx::proto::rx_resume
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int default_resume_listener(struct listener *l)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:534,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:537,1
    - Dst: struct listener*::rx::proto::suspend
      Src: /src/haproxy/src/listener.c:543,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/listener.c:551,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:557,1
    - Dst: proxy_cond_pause
      Src: /src/haproxy/src/listener.c:570,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:571,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/listener.c:571,1
    - Dst: send_log
      Src: /src/haproxy/src/listener.c:572,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/listener.c:572,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:576,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:579,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 3
    argNames:
    - l
    - lpx
    - lli
    argTypes:
    - struct listener*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 582
    functionName: suspend_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - HA_RWLOCK_WRUNLOCK
    - ha_warning
    - send_log
    - listener_set_state
    - proxy_cap_str
    - HA_RWLOCK_WRLOCK
    - proxy_cond_pause
    - struct listener*::rx::proto::suspend
    linkageType: ''
    returnType: int
    signature: int suspend_listener(struct listener *l, int lpx, int lli)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:604,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:607,1
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/src/listener.c:612,1
    - Dst: struct listener*::rx::proto::resume
      Src: /src/haproxy/src/listener.c:619,1
    - Dst: struct listener*::rx::proto::disable
      Src: /src/haproxy/src/listener.c:625,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:626,1
    - Dst: struct listener*::rx::proto::enable
      Src: /src/haproxy/src/listener.c:630,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:631,1
    - Dst: proxy_cond_resume
      Src: /src/haproxy/src/listener.c:640,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:641,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/listener.c:641,1
    - Dst: send_log
      Src: /src/haproxy/src/listener.c:642,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/listener.c:642,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:646,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:649,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 3
    argNames:
    - l
    - lpx
    - lli
    argTypes:
    - struct listener*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 652
    functionName: resume_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - struct listener*::rx::proto::enable
    - HA_RWLOCK_WRUNLOCK
    - ha_warning
    - listener_set_state
    - struct listener*::rx::proto::disable
    - MT_LIST_INLIST
    - proxy_cond_resume
    - proxy_cap_str
    - HA_RWLOCK_WRLOCK
    - send_log
    - struct listener*::rx::proto::resume
    linkageType: ''
    returnType: int
    signature: int resume_listener(struct listener *l, int lpx, int lli)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:670,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:673,1
    - Dst: resume_listener
      Src: /src/haproxy/src/listener.c:677,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:681,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:684,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - l
    - lpx
    - lli
    argTypes:
    - struct listener*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 687
    functionName: relax_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - resume_listener
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int relax_listener(struct listener *l, int lpx, int lli)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:694,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/listener.c:696,1
    - Dst: struct listener*::rx::proto::disable
      Src: /src/haproxy/src/listener.c:698,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:699,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 703
    functionName: listener_full
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - HA_RWLOCK_WRUNLOCK
    - listener_set_state
    - struct listener*::rx::proto::disable
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void listener_full(struct listener *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:710,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/src/listener.c:712,1
    - Dst: struct listener*::rx::proto::disable
      Src: /src/haproxy/src/listener.c:713,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:714,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - l
    - list
    argTypes:
    - struct listener*
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 717
    functionName: limit_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - listener_set_state
    - struct listener*::rx::proto::disable
    - HA_RWLOCK_WRLOCK
    - MT_LIST_TRY_APPEND
    linkageType: ''
    returnType: void
    signature: void limit_listener(struct listener *l, struct mt_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/listener.c:724,1
    - Dst: relax_listener
      Src: /src/haproxy/src/listener.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 720
    functionDepth: 4
    functionLinenumber: 720
    functionLinenumberEnd: 730
    functionName: dequeue_all_listeners
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 1
    functionsReached:
    - relax_listener
    - MT_LIST_POP
    linkageType: ''
    returnType: void
    signature: void dequeue_all_listeners()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/listener.c:741,1
    - Dst: relax_listener
      Src: /src/haproxy/src/listener.c:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - px
    - lpx
    argTypes:
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 737
    functionDepth: 4
    functionLinenumber: 737
    functionLinenumberEnd: 747
    functionName: dequeue_proxy_listeners
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - relax_listener
    - MT_LIST_POP
    linkageType: ''
    returnType: void
    signature: void dequeue_proxy_listeners(struct proxy *px, int lpx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:761,1
    - Dst: struct listener*::rx::proto::disable
      Src: /src/haproxy/src/listener.c:766,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:768,1
    - Dst: struct listener*::rx::proto::rx_unbind
      Src: /src/haproxy/src/listener.c:773,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 755
    functionDepth: 2
    functionLinenumber: 755
    functionLinenumberEnd: 774
    functionName: default_unbind_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - listener_set_state
    - struct listener*::rx::proto::disable
    - struct listener*::rx::proto::rx_unbind
    linkageType: ''
    returnType: void
    signature: void default_unbind_listener(struct listener *listener)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/listener.c:784,1
    - Dst: struct listener*::rx::proto::unbind
      Src: /src/haproxy/src/listener.c:787,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 792
    functionName: do_unbind_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 3
    functionsReached:
    - MT_LIST_DELETE
    - struct listener*::rx::proto::unbind
    - listener_set_state
    linkageType: ''
    returnType: void
    signature: void do_unbind_listener(struct listener *listener)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:802,1
    - Dst: do_unbind_listener
      Src: /src/haproxy/src/listener.c:803,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 800
    functionDepth: 3
    functionLinenumber: 800
    functionLinenumberEnd: 805
    functionName: unbind_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 4
    functionsReached:
    - do_unbind_listener
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void unbind_listener(struct listener *listener)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/listener.c:822,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:824,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:828,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:829,1
    - Dst: memcpy
      Src: /src/haproxy/src/listener.c:840,1
    - Dst: struct protocol*::fam::set_port
      Src: /src/haproxy/src/listener.c:842,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/listener.c:844,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:845,1
    - Dst: struct protocol*::add
      Src: /src/haproxy/src/listener.c:847,1
    - Dst: guid_init
      Src: /src/haproxy/src/listener.c:852,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/listener.c:856,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:857,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:858,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 7
    argNames:
    - bc
    - ss
    - portl
    - porth
    - fd
    - proto
    - err
    argTypes:
    - struct bind_conf*
    - struct sockaddr_storage*
    - int
    - int
    - int
    - struct protocol*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 861
    functionName: create_listeners
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - _HA_ATOMIC_INC
    - HA_RWLOCK_INIT
    - struct protocol*::fam::set_port
    - memcpy
    - calloc
    - listener_set_state
    - struct protocol*::add
    - LIST_APPEND
    - MT_LIST_INIT
    - guid_init
    linkageType: ''
    returnType: int
    signature: "int create_listeners(struct bind_conf *bc, const struct sockaddr_storage
      *ss,\n                     int portl, int porth, int fd, struct protocol *proto,
      char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/listener.c:878,1
    - Dst: calloc
      Src: /src/haproxy/src/listener.c:883,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:885,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/listener.c:892,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - rx
    - si
    argTypes:
    - struct receiver*
    - struct shard_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 895
    functionName: shard_info_attach
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - calloc
    - my_popcountl
    - free
    linkageType: ''
    returnType: struct shard_info
    signature: struct shard_info *shard_info_attach(struct receiver *rx, struct shard_info
      *si)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:917,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/listener.c:919,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:931,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:932,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 934
    functionName: shard_info_detach
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - free
    - my_popcountl
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void shard_info_detach(struct receiver *rx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/listener.c:950,1
    - Dst: memcpy
      Src: /src/haproxy/src/listener.c:953,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:957,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:962,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:973,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:974,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/listener.c:976,1
    - Dst: struct listener*::rx::proto::add
      Src: /src/haproxy/src/listener.c:978,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/listener.c:980,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:981,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:982,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:987,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 992
    functionName: clone_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - HA_RWLOCK_INIT
    - memcpy
    - calloc
    - struct listener*::rx::proto::add
    - LIST_APPEND
    - MT_LIST_INIT
    - free
    - strdup
    linkageType: ''
    returnType: struct listener
    signature: struct listener *clone_listener(struct listener *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:1004,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/listener.c:1005,1
    - Dst: shard_info_detach
      Src: /src/haproxy/src/listener.c:1006,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1008,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1001
    functionDepth: 2
    functionLinenumber: 1001
    functionLinenumberEnd: 1011
    functionName: __delete_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - listener_set_state
    - shard_info_detach
    - _HA_ATOMIC_DEC
    linkageType: ''
    returnType: void
    signature: void __delete_listener(struct listener *listener)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/listener.c:1019,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:1020,1
    - Dst: __delete_listener
      Src: /src/haproxy/src/listener.c:1021,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:1022,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/listener.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1017
    functionDepth: 3
    functionLinenumber: 1017
    functionLinenumberEnd: 1024
    functionName: delete_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 2
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - HA_RWLOCK_WRLOCK
    - __delete_listener
    linkageType: ''
    returnType: void
    signature: void delete_listener(struct listener *listener)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1045
    functionName: listener_backlog
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int listener_backlog(const struct listener *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1051
    functionName: listener_uses_maxconn
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int listener_uses_maxconn(const struct listener *l)
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: freq_ctr_remain
      Src: /src/haproxy/src/listener.c:1078,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1080,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1082,1
    - Dst: next_event_delay
      Src: /src/haproxy/src/listener.c:1082,1
    - Dst: freq_ctr_remain
      Src: /src/haproxy/src/listener.c:1091,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1093,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1095,1
    - Dst: next_event_delay
      Src: /src/haproxy/src/listener.c:1095,1
    - Dst: freq_ctr_remain
      Src: /src/haproxy/src/listener.c:1105,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1107,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1109,1
    - Dst: next_event_delay
      Src: /src/haproxy/src/listener.c:1109,1
    - Dst: freq_ctr_remain
      Src: /src/haproxy/src/listener.c:1122,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1124,1
    - Dst: next_event_delay
      Src: /src/haproxy/src/listener.c:1128,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1134,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1158,1
    - Dst: listener_full
      Src: /src/haproxy/src/listener.c:1163,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/listener.c:1167,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1172,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/listener.c:1181,1
    - Dst: listener_uses_maxconn
      Src: /src/haproxy/src/listener.c:1184,1
    - Dst: increment_actconn
      Src: /src/haproxy/src/listener.c:1185,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1190,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/listener.c:1202,1
    - Dst: struct listener*::rx::proto::accept_conn
      Src: /src/haproxy/src/listener.c:1204,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/listener.c:1205,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1213,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1215,1
    - Dst: listener_uses_maxconn
      Src: /src/haproxy/src/listener.c:1216,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1217,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:1231,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:1234,1
    - Dst: proxy_inc_fe_conn_ctr
      Src: /src/haproxy/src/listener.c:1235,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/listener.c:1239,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:1240,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1243,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1248,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1248,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1249,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1269,1
    - Dst: atleast2
      Src: /src/haproxy/src/listener.c:1270,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1318,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1338,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1342,1
    - Dst: my_ffsl
      Src: /src/haproxy/src/listener.c:1354,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1388,1
    - Dst: nbits
      Src: /src/haproxy/src/listener.c:1389,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1392,1
    - Dst: my_flsl
      Src: /src/haproxy/src/listener.c:1408,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1418,1
    - Dst: accept_queue_ring_len
      Src: /src/haproxy/src/listener.c:1426,1
    - Dst: accept_queue_ring_len
      Src: /src/haproxy/src/listener.c:1427,1
    - Dst: accept_queue_ring_len
      Src: /src/haproxy/src/listener.c:1428,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1431,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1433,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1434,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1436,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1437,1
    - Dst: likely
      Src: /src/haproxy/src/listener.c:1504,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/listener.c:1504,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/listener.c:1508,1
    - Dst: struct listener*::rx::proto::bind_tid_prep
      Src: /src/haproxy/src/listener.c:1522,1
    - Dst: accept_queue_push_mp
      Src: /src/haproxy/src/listener.c:1535,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1537,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1538,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1541,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/listener.c:1542,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1549,1
    - Dst: struct listener*::rx::proto::bind_tid_reset
      Src: /src/haproxy/src/listener.c:1552,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1559,1
    - Dst: struct listener*::bind_conf::accept
      Src: /src/haproxy/src/listener.c:1560,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1561,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/listener.c:1578,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:1579,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/listener.c:1584,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:1585,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/listener.c:1589,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1594,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1597,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1600,1
    - Dst: tick_isset
      Src: /src/haproxy/src/listener.c:1605,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/listener.c:1606,1
    - Dst: relax_listener
      Src: /src/haproxy/src/listener.c:1608,1
    - Dst: dequeue_all_listeners
      Src: /src/haproxy/src/listener.c:1611,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/listener.c:1613,1
    - Dst: COUNTERS_SHARED_TOTAL_ARG2
      Src: /src/haproxy/src/listener.c:1614,1
    - Dst: dequeue_proxy_listeners
      Src: /src/haproxy/src/listener.c:1615,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1621,1
    - Dst: struct listener*::rx::proto::rx_listening
      Src: /src/haproxy/src/listener.c:1626,1
    - Dst: suspend_listener
      Src: /src/haproxy/src/listener.c:1627,1
    - Dst: limit_listener
      Src: /src/haproxy/src/listener.c:1635,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/listener.c:1636,1
    - Dst: task_schedule
      Src: /src/haproxy/src/listener.c:1637,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/listener.c:1638,1
    - Dst: limit_listener
      Src: /src/haproxy/src/listener.c:1645,1
    - Dst: tick_isset
      Src: /src/haproxy/src/listener.c:1646,1
    - Dst: task_schedule
      Src: /src/haproxy/src/listener.c:1647,1
    CyclomaticComplexity: 141
    EdgeCount: 141
    ICount: 330
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1057
    functionDepth: 5
    functionLinenumber: 1057
    functionLinenumberEnd: 1649
    functionName: listener_accept
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 2
    functionsReached:
    - unlikely
    - task_schedule
    - likely
    - _HA_ATOMIC_CAS
    - my_ffsl
    - MT_LIST_ISEMPTY
    - COUNTERS_UPDATE_MAX
    - increment_actconn
    - dequeue_all_listeners
    - nbits
    - relax_listener
    - struct listener*::rx::proto::accept_conn
    - listener_full
    - tick_is_expired
    - my_flsl
    - _HA_ATOMIC_DEC
    - tick_add
    - struct listener*::rx::proto::bind_tid_reset
    - struct listener*::rx::proto::bind_tid_prep
    - accept_queue_push_mp
    - limit_listener
    - tasklet_wakeup
    - _HA_ATOMIC_AND
    - __ha_cpu_relax
    - atleast2
    - update_freq_ctr
    - freq_ctr_remain
    - accept_queue_ring_len
    - COUNTERS_SHARED_TOTAL_ARG2
    - dequeue_proxy_listeners
    - proxy_inc_fe_conn_ctr
    - suspend_listener
    - _HA_ATOMIC_INC
    - HA_RWLOCK_RDLOCK
    - next_event_delay
    - _HA_ATOMIC_LOAD
    - struct listener*::bind_conf::accept
    - tick_isset
    - struct listener*::rx::proto::rx_listening
    - listener_uses_maxconn
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: void
    signature: void listener_accept(struct listener *l)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: listener_uses_maxconn
      Src: /src/haproxy/src/listener.c:1659,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1660,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1662,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1663,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1664,1
    - Dst: relax_listener
      Src: /src/haproxy/src/listener.c:1667,1
    - Dst: dequeue_all_listeners
      Src: /src/haproxy/src/listener.c:1670,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/listener.c:1672,1
    - Dst: COUNTERS_SHARED_TOTAL_ARG2
      Src: /src/haproxy/src/listener.c:1673,1
    - Dst: dequeue_proxy_listeners
      Src: /src/haproxy/src/listener.c:1674,1
    - Dst: COUNTERS_SHARED_TOTAL_ARG2
      Src: /src/haproxy/src/listener.c:1680,1
    - Dst: tick_first
      Src: /src/haproxy/src/listener.c:1686,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1686,1
    - Dst: tick_isset
      Src: /src/haproxy/src/listener.c:1687,1
    - Dst: task_schedule
      Src: /src/haproxy/src/listener.c:1688,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1655
    functionDepth: 5
    functionLinenumber: 1655
    functionLinenumberEnd: 1691
    functionName: listener_release
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - COUNTERS_SHARED_TOTAL_ARG2
    - task_schedule
    - relax_listener
    - tick_first
    - tick_isset
    - MT_LIST_ISEMPTY
    - tick_add
    - _HA_ATOMIC_DEC
    - dequeue_all_listeners
    - listener_uses_maxconn
    - dequeue_proxy_listeners
    linkageType: ''
    returnType: void
    signature: void listener_release(struct listener *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/listener.c:1696,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1698,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/listener.c:1704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1707
    functionName: listener_queue_init
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - task_new_anywhere
    - HA_RWLOCK_INIT
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int listener_queue_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_destroy
      Src: /src/haproxy/src/listener.c:1711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1713
    functionName: listener_queue_deinit
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - task_destroy
    linkageType: ''
    returnType: void
    signature: void listener_queue_deinit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1730,1
    - Dst: dequeue_all_listeners
      Src: /src/haproxy/src/listener.c:1739,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:1742,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:1744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1724
    functionDepth: 5
    functionLinenumber: 1724
    functionLinenumberEnd: 1746
    functionName: manage_global_listener_queue
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - unlikely
    - dequeue_all_listeners
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: struct task
    signature: struct task *manage_global_listener_queue(struct task *t, void *context,
      unsigned int state)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: thread_resolve_group_mask
      Src: /src/haproxy/src/listener.c:1766,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1767,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1768,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:1770,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:1776,1
    - Dst: thread_set_count
      Src: /src/haproxy/src/listener.c:1778,1
    - Dst: protocol_supports_flag
      Src: /src/haproxy/src/listener.c:1782,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/listener.c:1786,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1788,1
    - Dst: protocol_supports_flag
      Src: /src/haproxy/src/listener.c:1793,1
    - Dst: protocol_supports_flag
      Src: /src/haproxy/src/listener.c:1800,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:1801,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1802,1
    - Dst: memset
      Src: /src/haproxy/src/listener.c:1810,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:1834,1
    - Dst: thread_set_nth_tmask
      Src: /src/haproxy/src/listener.c:1846,1
    - Dst: thread_set_nth_group
      Src: /src/haproxy/src/listener.c:1847,1
    - Dst: shard_info_attach
      Src: /src/haproxy/src/listener.c:1851,1
    - Dst: clone_listener
      Src: /src/haproxy/src/listener.c:1866,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1869,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1870,1
    - Dst: shard_info_attach
      Src: /src/haproxy/src/listener.c:1880,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1881,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1882,1
    - Dst: ceb32_item_delete
      Src: /src/haproxy/src/listener.c:1888,1
    - Dst: listener_index_id
      Src: /src/haproxy/src/listener.c:1892,1
    - Dst: clone_listener
      Src: /src/haproxy/src/listener.c:1903,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1905,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1906,1
    - Dst: ceb32_item_delete
      Src: /src/haproxy/src/listener.c:1912,1
    - Dst: listener_index_id
      Src: /src/haproxy/src/listener.c:1916,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 97
    argCount: 2
    argNames:
    - bind_conf
    - err_code
    argTypes:
    - struct bind_conf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1754
    functionDepth: 2
    functionLinenumber: 1754
    functionLinenumberEnd: 1922
    functionName: bind_complete_thread_setup
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - thread_set_nth_group
    - memset
    - proxy_type_str
    - BUG_ON
    - list_for_each_entry
    - clone_listener
    - protocol_supports_flag
    - thread_set_nth_tmask
    - free
    - shard_info_attach
    - ha_diag_warning
    - ceb32_item_delete
    - ha_alert
    - ha_warning
    - thread_set_count
    - listener_index_id
    - thread_resolve_group_mask
    linkageType: ''
    returnType: int
    signature: int bind_complete_thread_setup(struct bind_conf *bind_conf, int *err_code)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:1937,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1939,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/listener.c:1944,1
    - Dst: guid_insert
      Src: /src/haproxy/src/listener.c:1947,1
    - Dst: b_head
      Src: /src/haproxy/src/listener.c:1947,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1948,1
    - Dst: ha_free
      Src: /src/haproxy/src/listener.c:1951,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1929
    functionDepth: 1
    functionLinenumber: 1929
    functionLinenumberEnd: 1959
    functionName: bind_generate_guid
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - b_head
    - list_for_each_entry
    - ha_free
    - chunk_printf
    - ha_alert
    - guid_insert
    linkageType: ''
    returnType: int
    signature: int bind_generate_guid(struct bind_conf *bind_conf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/listener.c:1986,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:1996,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:2003,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2004,1
    - Dst: strncmp
      Src: /src/haproxy/src/listener.c:2010,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - front
    - name
    argTypes:
    - struct proxy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 2016
    functionName: bind_conf_find_by_name
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncmp
    - strtol
    - list_for_each_entry
    linkageType: ''
    returnType: struct bind_conf
    signature: struct bind_conf *bind_conf_find_by_name(struct proxy *front, const
      char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct bind_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2022
    functionDepth: 1
    functionLinenumber: 2022
    functionLinenumberEnd: 2025
    functionName: bind_register_keywords
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void bind_register_keywords(struct bind_kw_list *kwl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/listener.c:2041,1
    - Dst: strlen
      Src: /src/haproxy/src/listener.c:2043,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:2045,1
    - Dst: strncmp
      Src: /src/haproxy/src/listener.c:2047,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2034
    functionDepth: 0
    functionLinenumber: 2034
    functionLinenumberEnd: 2057
    functionName: bind_find_kw
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 2
    functionsReached:
    - list_for_each_entry
    - strncmp
    - strchr
    - strlen
    linkageType: ''
    returnType: struct bind_kw
    signature: struct bind_kw *bind_find_kw(const char *kw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:2072,1
    - Dst: bind_find_kw
      Src: /src/haproxy/src/listener.c:2075,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2063
    functionDepth: 1
    functionLinenumber: 2063
    functionLinenumberEnd: 2084
    functionName: bind_dump_kws
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - bind_find_kw
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void bind_dump_kws(char **out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/listener.c:2099,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:2100,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/listener.c:2102,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/listener.c:2103,1
    - Dst: strlen
      Src: /src/haproxy/src/listener.c:2111,1
    - Dst: strlen
      Src: /src/haproxy/src/listener.c:2111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2090
    functionDepth: 1
    functionLinenumber: 2090
    functionLinenumberEnd: 2115
    functionName: bind_find_best_kw
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 2
    functionsReached:
    - strlen
    - word_fingerprint_distance
    - make_word_fingerprint
    - list_for_each_entry
    linkageType: ''
    returnType: char
    signature: char *bind_find_best_kw(const char *word)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/listener.c:2124,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:2129,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:2134,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:2139,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/listener.c:2149,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/listener.c:2158,1
    - Dst: ha_free
      Src: /src/haproxy/src/listener.c:2172,1
    - Dst: ha_free
      Src: /src/haproxy/src/listener.c:2173,1
    - Dst: ha_free
      Src: /src/haproxy/src/listener.c:2175,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 5
    argNames:
    - fe
    - file
    - line
    - arg
    - xprt
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - struct xprt_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2121
    functionDepth: 1
    functionLinenumber: 2121
    functionLinenumberEnd: 2177
    functionName: bind_conf_alloc
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 3
    functionsReached:
    - HA_RWLOCK_INIT
    - ha_free
    - calloc
    - LIST_APPEND
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: struct bind_conf
    signature: "struct bind_conf *bind_conf_alloc(struct proxy *fe, const char *file,\n
      \                                 int line, const char *arg, struct xprt_ops
      *xprt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2179
    functionDepth: 0
    functionLinenumber: 2179
    functionLinenumberEnd: 2189
    functionName: listener_state_str
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *listener_state_str(const struct listener *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2196
    functionDepth: 0
    functionLinenumber: 2196
    functionLinenumberEnd: 2202
    functionName: smp_fetch_dconn
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_dconn(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2205
    functionDepth: 0
    functionLinenumber: 2205
    functionLinenumberEnd: 2211
    functionName: smp_fetch_so_id
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_so_id(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/listener.c:2221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2212
    functionDepth: 0
    functionLinenumber: 2212
    functionLinenumberEnd: 2223
    functionName: smp_fetch_so_name
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_so_name(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2226
    functionDepth: 0
    functionLinenumber: 2226
    functionLinenumberEnd: 2230
    functionName: bind_parse_accept_proxy
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bind_parse_accept_proxy(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2238,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2242,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2233
    functionDepth: 1
    functionLinenumber: 2233
    functionLinenumberEnd: 2251
    functionName: bind_parse_accept_netscaler_cip
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_accept_netscaler_cip(char **args, int cur_arg, struct
      proxy *px, struct bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2259,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2263,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2254
    functionDepth: 1
    functionLinenumber: 2254
    functionLinenumberEnd: 2271
    functionName: bind_parse_backlog
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_backlog(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2279,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:2283,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2274
    functionDepth: 1
    functionLinenumber: 2274
    functionLinenumberEnd: 2291
    functionName: bind_parse_guid_prefix
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int bind_parse_guid_prefix(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2300,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2305,1
    - Dst: LIST_NEXT::LIST_NEXT
      Src: /src/haproxy/src/listener.c:2309,1
    - Dst: strtol
      Src: /src/haproxy/src/listener.c:2310,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2312,1
    - Dst: luid::luid
      Src: /src/haproxy/src/listener.c:2316,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2317,1
    - Dst: ceb32_item_lookup
      Src: /src/haproxy/src/listener.c:2321,1
    - Dst: luid::luid
      Src: /src/haproxy/src/listener.c:2321,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2294
    functionDepth: 1
    functionLinenumber: 2294
    functionLinenumberEnd: 2331
    functionName: bind_parse_id
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - luid::luid
    - memprintf
    - strtol
    - ceb32_item_lookup
    - LIST_NEXT::LIST_NEXT
    linkageType: ''
    returnType: int
    signature: int bind_parse_id(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2342,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/listener.c:2346,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2348,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2353,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2369
    functionName: bind_parse_idle_ping
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int bind_parse_idle_ping(char **args, int cur_arg,\n                                struct
      proxy *px, struct bind_conf *conf,\n                                char **err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: bind_find_kw
      Src: /src/haproxy/src/listener.c:2386,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2392,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2400,1
    - Dst: struct bind_kw*::parse
      Src: /src/haproxy/src/listener.c:2406,1
    - Dst: indent_msg
      Src: /src/haproxy/src/listener.c:2411,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:2413,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2415,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2418,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:2421,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:2426,1
    - Dst: bind_find_best_kw
      Src: /src/haproxy/src/listener.c:2431,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2433,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2436,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2445,1
    - Dst: xprt_get
      Src: /src/haproxy/src/listener.c:2460,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:2463,1
    - Dst: quic_transport_params_init
      Src: /src/haproxy/src/listener.c:2466,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:2469,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/listener.c:2470,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:2471,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2479,1
    - Dst: xprt_get
      Src: /src/haproxy/src/listener.c:2486,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 76
    argCount: 6
    argNames:
    - bind_conf
    - args
    - cur_arg
    - section
    - file
    - linenum
    argTypes:
    - struct bind_conf*
    - char**
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2378
    functionDepth: 2
    functionLinenumber: 2378
    functionLinenumberEnd: 2491
    functionName: bind_parse_args_list
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - struct bind_kw*::parse
    - xprt_get
    - free
    - bind_find_kw
    - quic_transport_params_init
    - is_inet_addr
    - ha_alert
    - bind_find_best_kw
    - ha_warning
    - indent_msg
    linkageType: ''
    returnType: int
    signature: int bind_parse_args_list(struct bind_conf *bind_conf, char **args,
      int cur_arg, const char *section, const char *file, int linenum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2499,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2503,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2494
    functionDepth: 1
    functionLinenumber: 2494
    functionLinenumberEnd: 2511
    functionName: bind_parse_maxconn
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_maxconn(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2519,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:2523,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:2524,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2514
    functionDepth: 1
    functionLinenumber: 2514
    functionLinenumberEnd: 2532
    functionName: bind_parse_name
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int bind_parse_name(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2540,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:2544,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:2545,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:2546,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2535
    functionDepth: 1
    functionLinenumber: 2535
    functionLinenumberEnd: 2554
    functionName: bind_parse_label
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    - free
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int bind_parse_label(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2564,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/listener.c:2568,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/listener.c:2570,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2572,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2577,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2581,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2583,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2557
    functionDepth: 1
    functionLinenumber: 2557
    functionLinenumberEnd: 2589
    functionName: bind_parse_nbconn
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    - LIST_NEXT
    - mark_tainted
    linkageType: ''
    returnType: int
    signature: int bind_parse_nbconn(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2597,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2601,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2592
    functionDepth: 1
    functionLinenumber: 2592
    functionLinenumberEnd: 2609
    functionName: bind_parse_nice
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_nice(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2612
    functionDepth: 1
    functionLinenumber: 2612
    functionLinenumberEnd: 2616
    functionName: bind_parse_process
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_process(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2624,1
    - Dst: ist
      Src: /src/haproxy/src/listener.c:2628,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/listener.c:2629,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2631,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2637,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/listener.c:2641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2619
    functionDepth: 1
    functionLinenumber: 2619
    functionLinenumberEnd: 2645
    functionName: bind_parse_proto
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - get_mux_proto
    - ist
    - mark_tainted
    linkageType: ''
    returnType: int
    signature: int bind_parse_proto(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2653,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2657,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2659,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2662,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2671
      start: 2648
    functionDepth: 1
    functionLinenumber: 2648
    functionLinenumberEnd: 2671
    functionName: bind_parse_shards
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int bind_parse_shards(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_thread_set
      Src: /src/haproxy/src/listener.c:2682,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/listener.c:2685,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2674
    functionDepth: 1
    functionLinenumber: 2674
    functionLinenumberEnd: 2693
    functionName: bind_parse_thread
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - LIST_NEXT
    - parse_thread_set
    linkageType: ''
    returnType: int
    signature: int bind_parse_thread(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/listener.c:2700,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2703,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2705,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2707,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2710,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2696
    functionDepth: 1
    functionLinenumber: 2696
    functionLinenumberEnd: 2714
    functionName: cfg_parse_tune_listener_shards
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_tune_listener_shards(char **args, int section_type,
      struct proxy *curpx,\n                                          const struct
      proxy *defpx, const char *file, int line,\n                                          char
      **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/listener.c:2721,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2724,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2726,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2728,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2717
    functionDepth: 1
    functionLinenumber: 2717
    functionLinenumberEnd: 2735
    functionName: cfg_parse_tune_listener_mq
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_tune_listener_mq(char **args, int section_type, struct
      proxy *curpx,\n                                      const struct proxy *defpx,
      const char *file, int line,\n                                      char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/task.c:63,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/task.c:72,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/task.c:80,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/task.c:88,1
    - Dst: list_to_mt_list
      Src: /src/haproxy/src/task.c:89,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:90,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:91,1
    - Dst: wake_thread
      Src: /src/haproxy/src/task.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 96
    functionName: task_kill
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_INC
    - BUG_ON
    - wake_thread
    - MT_LIST_APPEND
    - _HA_ATOMIC_CAS
    - list_to_mt_list
    linkageType: ''
    returnType: void
    signature: void task_kill(struct task *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/task.c:107,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/task.c:115,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/task.c:122,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/task.c:124,1
    - Dst: list_to_mt_list
      Src: /src/haproxy/src/task.c:125,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:126,1
    - Dst: wake_thread
      Src: /src/haproxy/src/task.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 131
    functionName: tasklet_kill
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - BUG_ON
    - wake_thread
    - MT_LIST_APPEND
    - _HA_ATOMIC_CAS
    - list_to_mt_list
    linkageType: ''
    returnType: void
    signature: void tasklet_kill(struct tasklet *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/task.c:140,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:143,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:147,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:151,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:155,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:159,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:162,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/task.c:165,1
    - Dst: list_to_mt_list
      Src: /src/haproxy/src/task.c:165,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:166,1
    - Dst: wake_thread
      Src: /src/haproxy/src/task.c:167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - tl
    - thr
    argTypes:
    - struct tasklet*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 169
    functionName: __tasklet_wakeup_on
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - wake_thread
    - MT_LIST_APPEND
    - LIST_APPEND
    - likely
    - list_to_mt_list
    linkageType: ''
    returnType: void
    signature: void __tasklet_wakeup_on(struct tasklet *tl, int thr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/task.c:177,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/task.c:181,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/task.c:185,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/task.c:189,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/task.c:193,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/task.c:197,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:202,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - head
    - tl
    argTypes:
    - struct list*
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 206
    functionName: __tasklet_wakeup_after
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - LIST_INSERT
    - _HA_ATOMIC_INC
    - BUG_ON
    - LIST_APPEND
    linkageType: ''
    returnType: struct list
    signature: struct list *__tasklet_wakeup_after(struct list *head, struct tasklet
      *tl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:225,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/task.c:226,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/task.c:228,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/task.c:229,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:233,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/task.c:234,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:237,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:240,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:245,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/task.c:246,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/task.c:248,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/task.c:252,1
    - Dst: wake_thread
      Src: /src/haproxy/src/task.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 261
    functionName: __task_wakeup
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_ADD_FETCH
    - _HA_ATOMIC_INC
    - eb32_insert
    - _HA_ATOMIC_LOAD
    - wake_thread
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - now_mono_time
    - likely
    - __ha_barrier_store
    linkageType: ''
    returnType: void
    signature: void __task_wakeup(struct task *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/task.c:281,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/task.c:288,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:290,1
    - Dst: task_in_wq
      Src: /src/haproxy/src/task.c:290,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/task.c:291,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/task.c:296,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/task.c:301,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - task
    - wq
    argTypes:
    - struct task*
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 302
    functionName: __task_queue
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - eb32_insert
    - BUG_ON
    - tick_is_lt
    - likely
    - task_in_wq
    - __task_unlink_wq
    linkageType: ''
    returnType: void
    signature: void __task_queue(struct task *task, struct eb_root *wq)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:320,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:326,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:327,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:349,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/task.c:350,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/task.c:352,1
    - Dst: _task_wakeup
      Src: /src/haproxy/src/task.c:353,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/task.c:359,1
    - Dst: tick_isset
      Src: /src/haproxy/src/task.c:360,1
    - Dst: __task_queue
      Src: /src/haproxy/src/task.c:361,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/task.c:365,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:371,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/task.c:374,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:375,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:377,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:378,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/task.c:379,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/task.c:385,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/task.c:386,1
    - Dst: HA_RWLOCK_TRYRDTOSK
      Src: /src/haproxy/src/task.c:392,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/task.c:396,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:404,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:410,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:411,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:415,1
    - Dst: HA_ATOMIC_FETCH_OR
      Src: /src/haproxy/src/task.c:430,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/task.c:433,1
    - Dst: HA_RWLOCK_SKTOWR
      Src: /src/haproxy/src/task.c:435,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/task.c:436,1
    - Dst: HA_RWLOCK_WRTOSK
      Src: /src/haproxy/src/task.c:437,1
    - Dst: task_drop_running
      Src: /src/haproxy/src/task.c:438,1
    - Dst: HA_RWLOCK_SKTOWR
      Src: /src/haproxy/src/task.c:444,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/task.c:445,1
    - Dst: tick_isset
      Src: /src/haproxy/src/task.c:446,1
    - Dst: __task_queue
      Src: /src/haproxy/src/task.c:447,1
    - Dst: HA_RWLOCK_WRTOSK
      Src: /src/haproxy/src/task.c:448,1
    - Dst: task_drop_running
      Src: /src/haproxy/src/task.c:449,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/task.c:454,1
    - Dst: task_drop_running
      Src: /src/haproxy/src/task.c:455,1
    - Dst: HA_RWLOCK_SKUNLOCK
      Src: /src/haproxy/src/task.c:460,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 464
    functionName: wake_expired_tasks
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - likely
    - HA_RWLOCK_SKTOWR
    - __task_unlink_wq
    - eb_is_empty
    - _task_wakeup
    - tick_is_lt
    - __task_queue
    - HA_RWLOCK_TRYRDTOSK
    - eb32_lookup_ge
    - tick_is_expired
    - HA_RWLOCK_WRTOSK
    - HA_ATOMIC_FETCH_OR
    - eb32_entry
    - HA_RWLOCK_SKUNLOCK
    - HA_RWLOCK_RDLOCK
    - BUG_ON
    - tick_isset
    - task_drop_running
    - eb32_first
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: void
    signature: void wake_expired_tasks()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:478,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:484,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:491,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/task.c:492,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:493,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:495,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/task.c:498,1
    - Dst: tick_first
      Src: /src/haproxy/src/task.c:500,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 504
    functionName: next_timer_expiry
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDLOCK
    - eb_is_empty
    - tick_first
    - eb32_lookup_ge
    - eb32_first
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: int
    signature: int next_timer_expiry()
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:528,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:537,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/task.c:539,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:544,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:546,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:546,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/task.c:552,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/task.c:564,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/task.c:589,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:590,1
    - Dst: sched_activity_entry
      Src: /src/haproxy/src/task.c:596,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:598,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:599,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/task.c:602,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/task.c:605,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/task.c:607,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/task.c:608,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/task.c:609,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:619,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:621,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/task.c:622,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:623,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/task.c:625,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/task.c:627,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/task.c:631,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:640,1
    - Dst: pool_free
      Src: /src/haproxy/src/task.c:643,1
    - Dst: task_unlink_wq
      Src: /src/haproxy/src/task.c:645,1
    - Dst: __task_free
      Src: /src/haproxy/src/task.c:646,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/task.c:659,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/task.c:659,1
    - Dst: process
      Src: /src/haproxy/src/task.c:660,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/task.c:662,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/task.c:667,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/task.c:667,1
    - Dst: process_stream
      Src: /src/haproxy/src/task.c:668,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/task.c:670,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/task.c:670,1
    - Dst: process
      Src: /src/haproxy/src/task.c:671,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:677,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:678,1
    - Dst: task_unlink_wq
      Src: /src/haproxy/src/task.c:679,1
    - Dst: __task_free
      Src: /src/haproxy/src/task.c:680,1
    - Dst: task_queue
      Src: /src/haproxy/src/task.c:683,1
    - Dst: task_drop_running
      Src: /src/haproxy/src/task.c:684,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/task.c:692,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:695,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:696,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/task.c:696,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:698,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:700,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:702,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 116
    argCount: 1
    argNames:
    - budgets
    argTypes:
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 709
    functionName: run_tasks_from_lists
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - unlikely
    - task_unlink_wq
    - task_queue
    - EXEC_CTX_WITH_RET
    - _HA_ATOMIC_CAS
    - MT_LIST_ISEMPTY
    - HA_ATOMIC_INC
    - __task_free
    - eb_is_empty
    - now_mono_time
    - __ha_barrier_store
    - process_stream
    - _HA_ATOMIC_DEC
    - pool_free
    - LIST_DEL_INIT
    - _HA_ATOMIC_AND
    - EXEC_CTX_MAKE
    - __ha_cpu_relax
    - __ha_barrier_atomic_store
    - _HA_ATOMIC_LOAD
    - sched_activity_entry
    - process
    - LIST_ISEMPTY
    - task_drop_running
    - HA_ATOMIC_ADD
    - LIST_ELEM
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int run_tasks_from_lists(unsigned int budgets[])
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/task.c:745,1
    - Dst: swrate_add_peak_local
      Src: /src/haproxy/src/task.c:747,1
    - Dst: thread_has_tasks
      Src: /src/haproxy/src/task.c:749,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:756,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/task.c:771,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:776,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:776,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:838,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/task.c:840,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:841,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:841,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:842,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:843,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/task.c:845,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:855,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:855,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:856,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:857,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:863,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:864,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:865,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/task.c:866,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:871,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:872,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/task.c:873,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:875,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:876,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/task.c:878,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/task.c:884,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:887,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/task.c:892,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:898,1
    - Dst: MT_LIST_BEHEAD
      Src: /src/haproxy/src/task.c:905,1
    - Dst: LIST_SPLICE_END_DETACHED
      Src: /src/haproxy/src/task.c:907,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/task.c:908,1
    - Dst: run_tasks_from_lists
      Src: /src/haproxy/src/task.c:913,1
    - Dst: thread_has_tasks
      Src: /src/haproxy/src/task.c:917,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 923
    functionName: process_runnable_tasks
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - unlikely
    - MT_LIST_BEHEAD
    - _HA_ATOMIC_ADD
    - HA_SPIN_LOCK
    - eb32_next
    - likely
    - LIST_APPEND
    - MT_LIST_ISEMPTY
    - LIST_SPLICE_END_DETACHED
    - eb_is_empty
    - eb32_lookup_ge
    - thread_has_tasks
    - _HA_ATOMIC_DEC
    - swrate_add_peak_local
    - _HA_ATOMIC_AND
    - eb32_entry
    - _HA_ATOMIC_LOAD
    - HA_SPIN_UNLOCK
    - eb32_delete
    - LIST_ISEMPTY
    - eb32_first
    - run_tasks_from_lists
    linkageType: ''
    returnType: void
    signature: void process_runnable_tasks()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/task.c:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 932
    functionName: is_sched_alive
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_XCHG
    linkageType: ''
    returnType: int
    signature: int is_sched_alive(int thr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:946,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:948,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:949,1
    - Dst: task_destroy
      Src: /src/haproxy/src/task.c:950,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:953,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:955,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:956,1
    - Dst: task_destroy
      Src: /src/haproxy/src/task.c:957,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:962,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:964,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:965,1
    - Dst: task_destroy
      Src: /src/haproxy/src/task.c:966,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:969,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:971,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:972,1
    - Dst: task_destroy
      Src: /src/haproxy/src/task.c:973,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 976
    functionName: mworker_cleantasks
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - eb32_entry
    - eb32_first
    - task_destroy
    - eb32_next
    linkageType: ''
    returnType: void
    signature: void mworker_cleantasks()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/task.c:984,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/task.c:988,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/task.c:989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 991
    functionName: init_task
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - memset
    - MT_LIST_INIT
    linkageType: ''
    returnType: void
    signature: void init_task()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/task.c:998,1
    - Dst: strcmp
      Src: /src/haproxy/src/task.c:1001,1
    - Dst: strcmp
      Src: /src/haproxy/src/task.c:1003,1
    - Dst: memprintf
      Src: /src/haproxy/src/task.c:1006,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1010
    functionName: cfg_parse_tune_sched_low_latency
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_tune_sched_low_latency(char **args, int section_type,
      struct proxy *curpx,\n                                      const struct proxy
      *defpx, const char *file, int line,\n                                      char
      **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: bind_parse_quic_force_retry
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bind_parse_quic_force_retry(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/haproxy/src/cfgparse-quic.c:71,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:73,1
    - Dst: size < 10240 || size >
      Src: /src/haproxy/src/cfgparse-quic.c:90,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:91,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - kw
    - value
    - end_opt
    - err
    argTypes:
    - char*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 99
    functionName: parse_window_size
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - memprintf
    - size < 10240 || size >
    - strtoul
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long parse_window_size(const char *kw, char *value,\n                                       char
      **end_opt, char **err)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:116,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-quic.c:121,1
    - Dst: istsplit
      Src: /src/haproxy/src/cfgparse-quic.c:122,1
    - Dst: isteq
      Src: /src/haproxy/src/cfgparse-quic.c:123,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-quic.c:123,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-quic.c:127,1
    - Dst: isteq
      Src: /src/haproxy/src/cfgparse-quic.c:129,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-quic.c:129,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-quic.c:133,1
    - Dst: isteq
      Src: /src/haproxy/src/cfgparse-quic.c:135,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-quic.c:135,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-quic.c:139,1
    - Dst: isteq
      Src: /src/haproxy/src/cfgparse-quic.c:141,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-quic.c:141,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-quic.c:144,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-quic.c:151,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/cfgparse-quic.c:152,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:155,1
    - Dst: parse_window_size
      Src: /src/haproxy/src/cfgparse-quic.c:166,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:174,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:181,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 4
    argNames:
    - args
    - cur_arg
    - err
    - max_cwnd
    argTypes:
    - char**
    - int
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 194
    functionName: parse_cc_algo
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ist
    - istsplit
    - mark_tainted
    - isteq
    - ha_alert
    - parse_window_size
    - strlen
    linkageType: ''
    returnType: struct quic_cc_algo
    signature: "struct quic_cc_algo *parse_cc_algo(char **args, int cur_arg, char
      **err,\n                                                size_t *max_cwnd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_cc_algo
      Src: /src/haproxy/src/cfgparse-quic.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 212
    functionName: bind_parse_quic_cc_algo
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - parse_cc_algo
    linkageType: ''
    returnType: int
    signature: "int bind_parse_quic_cc_algo(char **args, int cur_arg, struct proxy
      *px,\n                                   struct bind_conf *conf, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:219,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:224,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:227,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 236
    functionName: bind_parse_quic_socket
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int bind_parse_quic_socket(char **args, int cur_arg, struct proxy
      *px,\n                                  struct bind_conf *conf, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_cc_algo
      Src: /src/haproxy/src/cfgparse-quic.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - srv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 254
    functionName: srv_parse_quic_cc_algo
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - parse_cc_algo
    linkageType: ''
    returnType: int
    signature: "int srv_parse_quic_cc_algo(char **args, int *cur_arg, struct proxy
      *px,\n                                  struct server *srv, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-quic.c:278,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:281,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:284,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 293
    functionName: cfg_parse_quic_tune_sock_per_conn
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_quic_tune_sock_per_conn(char **args, int section_type,\n
      \                                            struct proxy *curpx,\n                                             const
      struct proxy *defpx,\n                                             const char
      *file, int line, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-quic.c:301,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:304,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:307,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:310,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 320
    functionName: cfg_parse_quic_tune_socket_owner
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_quic_tune_socket_owner(char **args, int section_type,\n
      \                                           struct proxy *curpx,\n                                            const
      struct proxy *defpx,\n                                            const char
      *file, int line, char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-quic.c:334,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-quic.c:337,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-quic.c:342,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:344,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:349,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:354,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:359,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:360,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:366,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:367,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:373,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 378
    functionName: cfg_parse_quic_time
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - too_many_args
    - parse_time_err
    - strlen
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_quic_time(char **args, int section_type,\n                               struct
      proxy *curpx,\n                               const struct proxy *defpx,\n                               const
      char *file, int line, char **err)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-quic.c:391,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-quic.c:394,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-quic.c:398,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:401,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:406,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-quic.c:409,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:410,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:417,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:418,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:423,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:424,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:429,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:430,1
    - Dst: parse_window_size
      Src: /src/haproxy/src/cfgparse-quic.c:436,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:440,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:446,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:447,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:452,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:453,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:458,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:461,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:462,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:466,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:471,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:472,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:477,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:480,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:481,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-quic.c:484,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:485,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:494,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:495,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:500,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:504,1
    - Dst: parse_window_size
      Src: /src/haproxy/src/cfgparse-quic.c:507,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:511,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:518,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:519,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:524,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:525,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-quic.c:527,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:528,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:536,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:537,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:542,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:545,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-quic.c:548,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:549,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:557,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:558,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:562,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:568,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:569,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:574,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:575,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:578,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:585,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:586,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:592,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 139
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 597
    functionName: cfg_parse_quic_tune_setting
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_size_err
    - strcmp
    - atoi
    - too_many_args
    - parse_window_size
    - strlen
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_quic_tune_setting(char **args, int section_type,\n                                       struct
      proxy *curpx,\n                                       const struct proxy *defpx,\n
      \                                      const char *file, int line, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-quic.c:605,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-quic.c:608,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:612,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:613,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:618,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:619,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 630
    functionName: cfg_parse_quic_tune_setting0
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_quic_tune_setting0(char **args, int section_type,\n
      \                                       struct proxy *curpx,\n                                        const
      struct proxy *defpx,\n                                        const char *file,
      int line, char **err)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-quic.c:638,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-quic.c:642,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:645,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:647,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:650,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:655,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:661,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:667,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:668,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:676,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:677,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:685,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:686,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:694,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:695,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 705
    functionName: cfg_parse_quic_tune_on_off
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_quic_tune_on_off(char **args, int section_type, struct
      proxy *curpx,\n                                      const struct proxy *defpx,
      const char *file, int line,\n                                      char **err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-quic.c:777,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:778,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:784,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:790,1
    - Dst: new_act_rule
      Src: /src/haproxy/src/cfgparse-quic.c:795,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:797,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-quic.c:801,1
    - Dst: action_quic_init_custom
      Src: /src/haproxy/src/cfgparse-quic.c:804,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/cfgparse-quic.c:809,1
    - Dst: action_suggest
      Src: /src/haproxy/src/cfgparse-quic.c:813,1
    - Dst: action_build_list
      Src: /src/haproxy/src/cfgparse-quic.c:815,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:816,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:825,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:825,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-quic.c:826,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:827,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-quic.c:829,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:834,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-quic.c:836,1
    - Dst: acl_cond_conflicts
      Src: /src/haproxy/src/cfgparse-quic.c:840,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:843,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse-quic.c:845,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:847,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cfgparse-quic.c:850,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse-quic.c:851,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/cfgparse-quic.c:855,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:857,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse-quic.c:859,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:861,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse-quic.c:863,1
    - Dst: warnif_misplaced_quic_init
      Src: /src/haproxy/src/cfgparse-quic.c:868,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-quic.c:870,1
    - Dst: free_act_rule
      Src: /src/haproxy/src/cfgparse-quic.c:875,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 763
    functionDepth: 6
    functionLinenumber: 763
    functionLinenumberEnd: 877
    functionName: quic_parse_quic_initial
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - memprintf
    - LIST_ELEM
    - free_act_rule
    - new_act_rule
    - proxy_type_str
    - struct action_kw*::parse
    - sample_ckp_names
    - action_suggest
    - strcmp
    - action_quic_init_custom
    - LIST_APPEND
    - warnif_misplaced_quic_init
    - acl_cond_kw_conflicts
    - acl_cond_conflicts
    - action_build_list
    - build_acl_cond
    - LIST_INIT
    - strlen
    linkageType: ''
    returnType: int
    signature: "int quic_parse_quic_initial(char **args, int section_type, struct
      proxy *curpx,\n                                   const struct proxy *defpx,
      const char *file, int line,\n                                   char **err)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EXTRA_COUNTERS_BASE
      Src: /src/haproxy/src/ssl_sock.c:209,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/ssl_sock.c:213,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/ssl_sock.c:213,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/ssl_sock.c:216,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/ssl_sock.c:216,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/ssl_sock.c:219,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/ssl_sock.c:219,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/ssl_sock.c:222,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/ssl_sock.c:222,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/ssl_sock.c:225,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/ssl_sock.c:225,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 4
    argNames:
    - mod
    - ctr
    - stats
    - selected_field
    argTypes:
    - struct stats_module*
    - struct extra_counters*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 242
    functionName: ssl_fill_stats
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - EXTRA_COUNTERS_AGGR
    - mkf_u64
    - EXTRA_COUNTERS_BASE
    linkageType: ''
    returnType: int
    signature: "int ssl_fill_stats(struct stats_module *mod, struct extra_counters
      *ctr,\n                          struct field *stats, unsigned int *selected_field)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ssl_sock_ctx*::xprt::snd_pipe
      Src: /src/haproxy/src/ssl_sock.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - pipe
    - count
    argTypes:
    - struct connection*
    - void*
    - struct pipe*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: ssl_sock_to_pipe
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - struct ssl_sock_ctx*::xprt::snd_pipe
    linkageType: ''
    returnType: int
    signature: int ssl_sock_to_pipe(struct connection *conn, void *xprt_ctx, struct
      pipe *pipe, unsigned int count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ssl_sock_ctx*::xprt::rcv_pipe
      Src: /src/haproxy/src/ssl_sock.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - pipe
    - count
    argTypes:
    - struct connection*
    - void*
    - struct pipe*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: ssl_sock_from_pipe
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - struct ssl_sock_ctx*::xprt::rcv_pipe
    linkageType: ''
    returnType: int
    signature: int ssl_sock_from_pipe(struct connection *conn, void *xprt_ctx, struct
      pipe *pipe, unsigned int count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/ssl_sock.c:299,1
    - Dst: BIO_get_data
      Src: /src/haproxy/src/ssl_sock.c:309,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/ssl_sock.c:317,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/ssl_sock.c:318,1
    - Dst: struct ssl_sock_ctx*::xprt::snd_buf
      Src: /src/haproxy/src/ssl_sock.c:329,1
    - Dst: BIO_clear_retry_flags
      Src: /src/haproxy/src/ssl_sock.c:330,1
    - Dst: BIO_set_retry_write
      Src: /src/haproxy/src/ssl_sock.c:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - h
    - buf
    - num
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 340
    functionName: ha_ssl_write
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - struct ssl_sock_ctx*::xprt::snd_buf
    - CMSG_LEN
    - BIO_set_retry_write
    - CMSG_SPACE
    - CMSG_DATA
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int ha_ssl_write(BIO *h, const char *buf, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 346
    functionName: ha_ssl_gets
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ha_ssl_gets(BIO *h, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_ssl_write
      Src: /src/haproxy/src/ssl_sock.c:351,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: ha_ssl_puts
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ha_ssl_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int ha_ssl_puts(BIO *h, const char *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/ssl_sock.c:361,1
    - Dst: BIO_get_data
      Src: /src/haproxy/src/ssl_sock.c:373,1
    - Dst: BIO_set_retry_read
      Src: /src/haproxy/src/ssl_sock.c:384,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/ssl_sock.c:403,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/ssl_sock.c:404,1
    - Dst: struct ssl_sock_ctx*::xprt::rcv_buf
      Src: /src/haproxy/src/ssl_sock.c:409,1
    - Dst: BIO_clear_retry_flags
      Src: /src/haproxy/src/ssl_sock.c:413,1
    - Dst: BIO_set_retry_read
      Src: /src/haproxy/src/ssl_sock.c:415,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/ssl_sock.c:428,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - h
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 439
    functionName: ha_ssl_read
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - BIO_get_data
    - proxy_abrt_close_def
    - CMSG_SPACE
    - BIO_set_retry_read
    - CMSG_DATA
    - struct ssl_sock_ctx*::xprt::rcv_buf
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int ha_ssl_read(BIO *h, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/src/ssl_sock.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - info
    - info_len
    - is_tx
    argTypes:
    - struct ssl_sock_ctx*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: ktls_set_key
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int ktls_set_key(struct ssl_sock_ctx *ctx, void *info, size_t info_len,
      int is_tx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/haproxy/src/ssl_sock.c:453,1
    - Dst: ktls_set_key
      Src: /src/haproxy/src/ssl_sock.c:550,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 4
    argNames:
    - h
    - cmd
    - arg1
    - arg2
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 560
    functionName: ha_ssl_ctrl
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ktls_set_key
    - BIO_get_data
    linkageType: ''
    returnType: long
    signature: long ha_ssl_ctrl(BIO *h, int cmd, long arg1, void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/haproxy/src/ssl_sock.c:564,1
    - Dst: BIO_set_data
      Src: /src/haproxy/src/ssl_sock.c:565,1
    - Dst: BIO_clear_flags
      Src: /src/haproxy/src/ssl_sock.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 568
    functionName: ha_ssl_new
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_clear_flags
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int ha_ssl_new(BIO *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: ha_ssl_free
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ha_ssl_free(BIO *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 585
    functionName: ssl_id_function
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ssl_id_function(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:591,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:593,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:597,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - mode
    - n
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 601
    functionName: ssl_locking_function
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_RDUNLOCK
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void ssl_locking_function(int mode, int n, const char * file, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/ssl_sock.c:607,1
    - Dst: CRYPTO_num_locks
      Src: /src/haproxy/src/ssl_sock.c:607,1
    - Dst: CRYPTO_num_locks
      Src: /src/haproxy/src/ssl_sock.c:611,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/ssl_sock.c:612,1
    - Dst: CRYPTO_set_id_callback
      Src: /src/haproxy/src/ssl_sock.c:614,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/haproxy/src/ssl_sock.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 618
    functionName: ssl_locking_init
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - malloc
    - HA_RWLOCK_INIT
    - CRYPTO_set_id_callback
    - CRYPTO_num_locks
    - CRYPTO_set_locking_callback
    linkageType: ''
    returnType: int
    signature: int ssl_locking_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3
      Src: /src/haproxy/src/ssl_sock.c:627,1
    - Dst: istptr
      Src: /src/haproxy/src/ssl_sock.c:627,1
    - Dst: istlen
      Src: /src/haproxy/src/ssl_sock.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sni
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 628
    functionName: ssl_sock_sni_hash
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - XXH3
    - istlen
    - istptr
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ssl_sock_sni_hash(const struct ist sni)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_sock.c:634,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:640,1
    - Dst: X509_STORE_getX_objects
      Src: /src/haproxy/src/ssl_sock.c:640,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_sock.c:641,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_sock.c:642,1
    - Dst: X509_OBJECT_get_type
      Src: /src/haproxy/src/ssl_sock.c:643,1
    - Dst: X509_STORE_add_cert
      Src: /src/haproxy/src/ssl_sock.c:645,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/haproxy/src/ssl_sock.c:645,1
    - Dst: X509_STORE_add_crl
      Src: /src/haproxy/src/ssl_sock.c:648,1
    - Dst: X509_OBJECT_get0_X509_CRL
      Src: /src/haproxy/src/ssl_sock.c:648,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_sock.c:654,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - store_ctx
    - path
    argTypes:
    - X509_STORE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 658
    functionName: ssl_set_cert_crl_file
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - X509_STORE_add_cert
    - sk_X509_OBJECT_num
    - X509_OBJECT_get0_X509
    - X509_OBJECT_get0_X509_CRL
    - X509_STORE_getX_objects
    - sk_X509_OBJECT_popX_free
    - STACK_OF
    - X509_STORE_add_crl
    - ssl_store_get_cafile_entry
    - X509_OBJECT_get_type
    - sk_X509_OBJECT_value
    linkageType: ''
    returnType: int
    signature: int ssl_set_cert_crl_file(X509_STORE *store_ctx, char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_cert_store
      Src: /src/haproxy/src/ssl_sock.c:663,1
    - Dst: ssl_set_cert_crl_file
      Src: /src/haproxy/src/ssl_sock.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - path
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 665
    functionName: ssl_set_verify_locations_file
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_set_cert_crl_file
    - SSL_CTX_get_cert_store
    linkageType: ''
    returnType: int
    signature: int ssl_set_verify_locations_file(SSL_CTX *ctx, char *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_sock.c:677,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:680,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:691,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:692,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/haproxy/src/ssl_sock.c:697,1
    - Dst: X509_STORE_getX_objects
      Src: /src/haproxy/src/ssl_sock.c:699,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_sock.c:700,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/haproxy/src/ssl_sock.c:701,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_sock.c:701,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:704,1
    - Dst: X509_NAME_hash
      Src: /src/haproxy/src/ssl_sock.c:708,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/ssl_sock.c:709,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_sock.c:711,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:712,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_sock.c:712,1
    - Dst: X509_NAME_cmp
      Src: /src/haproxy/src/ssl_sock.c:713,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:719,1
    - Dst: X509_NAME_dup
      Src: /src/haproxy/src/ssl_sock.c:720,1
    - Dst: sk_X509_NAME_push
      Src: /src/haproxy/src/ssl_sock.c:723,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:724,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_sock.c:725,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/haproxy/src/ssl_sock.c:726,1
    - Dst: sk_X509_NAME_free
      Src: /src/haproxy/src/ssl_sock.c:727,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/ssl_sock.c:733,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_sock.c:735,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_sock.c:738,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:740,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_sock.c:740,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_sock.c:741,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_sock.c:742,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:743,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 748
    functionName: ssl_get_client_ca_file
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - eb64_delete
    - free
    - ebmb_entry
    - sk_X509_NAME_pop_free
    - X509_STORE_getX_objects
    - STACK_OF
    - sk_X509_NAME_free
    - X509_OBJECT_get0_X509
    - sk_X509_NAME_new_null
    - sk_X509_OBJECT_value
    - eb64_next
    - X509_NAME_hash
    - eb64_lookup
    - ebst_lookup
    - eb64_first
    - container_of
    - sk_X509_NAME_push
    - typeof
    - eb64_insert
    - calloc
    - X509_NAME_free
    - X509_NAME_dup
    - sk_X509_OBJECT_popX_free
    - X509_NAME_cmp
    - sk_X509_OBJECT_num
    - X509_get_subject_name
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF * ssl_get_client_ca_file(char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:842,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:844,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - func
    argTypes:
    - ssl_sock_msg_callback_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 853
    functionName: ssl_sock_register_msg_callback
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - calloc
    - ha_alert
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int ssl_sock_register_msg_callback(ssl_sock_msg_callback_func func)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_register_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:860,1
    - Dst: ssl_sock_register_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:864,1
    - Dst: ssl_sock_register_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:869,1
    - Dst: ssl_sock_register_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:874,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 879
    functionName: ssl_sock_register_msg_callbacks
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_sock_register_msg_callback
    linkageType: ''
    returnType: int
    signature: int ssl_sock_register_msg_callbacks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_sock.c:888,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:889,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 892
    functionName: ssl_sock_unregister_msg_callbacks
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - free
    linkageType: ''
    returnType: void
    signature: void ssl_sock_unregister_msg_callbacks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xprt_get
      Src: /src/haproxy/src/ssl_sock.c:896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 900
    functionName: ssl_sock_get_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - xprt_get
    linkageType: ''
    returnType: struct ssl_sock_ctx
    signature: struct ssl_sock_ctx *ssl_sock_get_ctx(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 907
    functionName: ssl_sock_get_ssl_object
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: SSL
    signature: SSL *ssl_sock_get_ssl_object(struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/ssl_sock.c:918,1
    - Dst: ERR_peek_error_func
      Src: /src/haproxy/src/ssl_sock.c:921,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_sock.c:923,1
    - Dst: fprintf
      Src: /src/haproxy/src/ssl_sock.c:927,1
    - Dst: conn_fd
      Src: /src/haproxy/src/ssl_sock.c:928,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_sock.c:929,1
    - Dst: fprintf
      Src: /src/haproxy/src/ssl_sock.c:934,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_sock.c:935,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - qc
    argTypes:
    - struct connection*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 940
    functionName: ssl_sock_dump_errors
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERR_reason_error_string
    - conn_fd
    - fprintf
    - ERR_get_error
    - ERR_peek_error_func
    linkageType: ''
    returnType: forceinline
    signature: "forceinline ssl_sock_dump_errors(struct connection *conn,\n                                             struct
      quic_conn *qc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_by_id
      Src: /src/haproxy/src/ssl_sock.c:951,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:953,1
    - Dst: ENGINE_init
      Src: /src/haproxy/src/ssl_sock.c:957,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:959,1
    - Dst: ENGINE_set_default_string
      Src: /src/haproxy/src/ssl_sock.c:963,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:964,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:968,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/ssl_sock.c:972,1
    - Dst: ENGINE_finish
      Src: /src/haproxy/src/ssl_sock.c:981,1
    - Dst: ENGINE_free
      Src: /src/haproxy/src/ssl_sock.c:985,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - engine_id
    - def_algorithms
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 989
    functionName: ssl_init_single_engine
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ENGINE_init
    - calloc
    - ENGINE_free
    - ENGINE_finish
    - ENGINE_set_default_string
    - ha_alert
    - LIST_INSERT
    - ENGINE_by_id
    linkageType: ''
    returnType: int
    signature: int ssl_init_single_engine(const char *engine_id, const char *def_algorithms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:998,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:1000,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/haproxy/src/ssl_sock.c:1004,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:1005,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/ssl_sock.c:1009,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:1014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - provider_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1016
    functionName: ssl_init_provider
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ha_free
    - calloc
    - OSSL_PROVIDER_load
    - ha_alert
    - LIST_INSERT
    linkageType: ''
    returnType: int
    signature: int ssl_init_provider(const char *provider_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/ssl_sock.c:1030,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/ssl_sock.c:1031,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1037
    functionName: ssl_async_fd_handler
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - fd_cant_recv
    - tasklet_wakeup
    - fd_stop_recv
    linkageType: ''
    returnType: void
    signature: void ssl_async_fd_handler(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_all_async_fds
      Src: /src/haproxy/src/ssl_sock.c:1054,1
    - Dst: send_log
      Src: /src/haproxy/src/ssl_sock.c:1056,1
    - Dst: SSL_get_all_async_fds
      Src: /src/haproxy/src/ssl_sock.c:1060,1
    - Dst: fd_delete
      Src: /src/haproxy/src/ssl_sock.c:1067,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:1071,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/ssl_sock.c:1072,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/ssl_sock.c:1073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1074
    functionName: ssl_async_fd_free
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_get_all_async_fds
    - fd_delete
    - SSL_free
    - send_log
    - _HA_ATOMIC_DEC
    linkageType: ''
    returnType: void
    signature: void ssl_async_fd_free(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_changed_async_fds
      Src: /src/haproxy/src/ssl_sock.c:1088,1
    - Dst: send_log
      Src: /src/haproxy/src/ssl_sock.c:1091,1
    - Dst: SSL_get_changed_async_fds
      Src: /src/haproxy/src/ssl_sock.c:1095,1
    - Dst: fd_delete
      Src: /src/haproxy/src/ssl_sock.c:1104,1
    - Dst: fd_insert
      Src: /src/haproxy/src/ssl_sock.c:1109,1
    - Dst: SSL_get_all_async_fds
      Src: /src/haproxy/src/ssl_sock.c:1113,1
    - Dst: send_log
      Src: /src/haproxy/src/ssl_sock.c:1115,1
    - Dst: SSL_get_all_async_fds
      Src: /src/haproxy/src/ssl_sock.c:1120,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/ssl_sock.c:1122,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/ssl_sock.c:1129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ssl_sock_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1132
    functionName: ssl_async_process_fds
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_get_all_async_fds
    - fd_delete
    - fd_want_recv
    - SSL_get_changed_async_fds
    - send_log
    - fd_cant_recv
    - fd_insert
    linkageType: ''
    returnType: void
    signature: void ssl_async_process_fds(struct ssl_sock_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/haproxy/src/ssl_sock.c:1145,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/haproxy/src/ssl_sock.c:1146,1
    - Dst: EVP_MD_name
      Src: /src/haproxy/src/ssl_sock.c:1146,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/haproxy/src/ssl_sock.c:1147,1
    - Dst: EVP_MAC_CTX_set_params
      Src: /src/haproxy/src/ssl_sock.c:1148,1
    - Dst: HMAC_Init_ex
      Src: /src/haproxy/src/ssl_sock.c:1152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - hctx
    - key
    - key_len
    - md
    argTypes:
    - MAC_CTX*
    - unsigned char*
    - int
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1155
    functionName: ssl_hmac_init
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_end
    - EVP_MD_name
    - OSSL_PARAM_construct_octet_string
    - EVP_MAC_CTX_set_params
    - OSSL_PARAM_construct_utf8_string
    - HMAC_Init_ex
    linkageType: ''
    returnType: int
    signature: int ssl_hmac_init(MAC_CTX *hctx, unsigned char *key, int key_len, const
      EVP_MD *md)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_get_listener
      Src: /src/haproxy/src/ssl_sock.c:1168,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:1169,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:1171,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:1173,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:1179,1
    - Dst: RAND_pseudo_bytes
      Src: /src/haproxy/src/ssl_sock.c:1181,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/ssl_sock.c:1186,1
    - Dst: EVP_aes_128_cbc
      Src: /src/haproxy/src/ssl_sock.c:1186,1
    - Dst: ssl_hmac_init
      Src: /src/haproxy/src/ssl_sock.c:1189,1
    - Dst: TLS_TICKET_HASH_FUNCT
      Src: /src/haproxy/src/ssl_sock.c:1189,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/ssl_sock.c:1195,1
    - Dst: EVP_aes_256_cbc
      Src: /src/haproxy/src/ssl_sock.c:1195,1
    - Dst: ssl_hmac_init
      Src: /src/haproxy/src/ssl_sock.c:1198,1
    - Dst: TLS_TICKET_HASH_FUNCT
      Src: /src/haproxy/src/ssl_sock.c:1198,1
    - Dst: memcmp
      Src: /src/haproxy/src/ssl_sock.c:1204,1
    - Dst: ssl_hmac_init
      Src: /src/haproxy/src/ssl_sock.c:1212,1
    - Dst: TLS_TICKET_HASH_FUNCT
      Src: /src/haproxy/src/ssl_sock.c:1212,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/haproxy/src/ssl_sock.c:1214,1
    - Dst: EVP_aes_128_cbc
      Src: /src/haproxy/src/ssl_sock.c:1214,1
    - Dst: ssl_hmac_init
      Src: /src/haproxy/src/ssl_sock.c:1220,1
    - Dst: TLS_TICKET_HASH_FUNCT
      Src: /src/haproxy/src/ssl_sock.c:1220,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/haproxy/src/ssl_sock.c:1222,1
    - Dst: EVP_aes_256_cbc
      Src: /src/haproxy/src/ssl_sock.c:1222,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:1230,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 65
    argCount: 6
    argNames:
    - s
    - key_name
    - iv
    - ectx
    - hctx
    - enc
    argTypes:
    - SSL*
    - unsigned char[]
    - unsigned char*
    - EVP_CIPHER_CTX*
    - MAC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1232
    functionName: ssl_tlsext_ticket_key_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - RAND_pseudo_bytes
    - memcmp
    - EVP_EncryptInit_ex
    - memcpy
    - BUG_ON
    - EVP_aes_128_cbc
    - TLS_TICKET_HASH_FUNCT
    - EVP_aes_256_cbc
    - EVP_DecryptInit_ex
    - HA_RWLOCK_RDUNLOCK
    - ssl_hmac_init
    - ssl_sock_get_listener
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int ssl_tlsext_ticket_key_cb(SSL *s, unsigned char key_name[16], unsigned
      char *iv, EVP_CIPHER_CTX *ectx, MAC_CTX *hctx, int enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:1238,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sock.c:1239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1242
    functionName: tlskeys_ref_lookup
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct tls_keys_ref
    signature: struct tls_keys_ref *tlskeys_ref_lookup(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unique_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1252
    functionName: tlskeys_ref_lookupid
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct tls_keys_ref
    signature: struct tls_keys_ref *tlskeys_ref_lookupid(int unique_id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:1272,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:1273,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:1276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ref
    - tlskey
    argTypes:
    - struct tls_keys_ref*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1279
    functionName: ssl_sock_update_tlskey_ref
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - memcpy
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_update_tlskey_ref(struct tls_keys_ref *ref,\n\t\t\t\tstruct
      buffer *tlskey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tlskeys_ref_lookup
      Src: /src/haproxy/src/ssl_sock.c:1283,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:1286,1
    - Dst: ssl_sock_update_tlskey_ref
      Src: /src/haproxy/src/ssl_sock.c:1289,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:1290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - filename
    - tlskey
    - err
    argTypes:
    - char*
    - struct buffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1295
    functionName: ssl_sock_update_tlskey
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memprintf
    - tlskeys_ref_lookup
    - ssl_sock_update_tlskey_ref
    linkageType: ''
    returnType: int
    signature: int ssl_sock_update_tlskey(char *filename, struct buffer *tlskey, char
      **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/ssl_sock.c:1305,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:1307,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:1311,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_sock.c:1328,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:1329,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:1330,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:1332,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:1337,1
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/ssl_sock.c:1341,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1343
    functionName: tlskeys_finalize_config
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - LIST_SPLICE
    - list_for_each_entry
    - list_for_each_entry_safe
    - LIST_APPEND
    - LIST_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int tlskeys_finalize_config(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sock.c:1378,1
    - Dst: ssl_ocsp_get_uri_from_cert
      Src: /src/haproxy/src/ssl_sock.c:1390,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:1395,1
    - Dst: sk_X509_num
      Src: /src/haproxy/src/ssl_sock.c:1405,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_sock.c:1406,1
    - Dst: X509_check_issued
      Src: /src/haproxy/src/ssl_sock.c:1407,1
    - Dst: OCSP_cert_to_id
      Src: /src/haproxy/src/ssl_sock.c:1417,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_sock.c:1423,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:1427,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:1428,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_sock.c:1433,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_sock.c:1435,1
    - Dst: ebmb_insert
      Src: /src/haproxy/src/ssl_sock.c:1436,1
    - Dst: SSL_CTX_get_tlsext_status_cb
      Src: /src/haproxy/src/ssl_sock.c:1440,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:1449,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_sock.c:1451,1
    - Dst: X509_get_pubkey
      Src: /src/haproxy/src/ssl_sock.c:1459,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_sock.c:1460,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_sock.c:1461,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/haproxy/src/ssl_sock.c:1463,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1464,1
    - Dst: SSL_CTX_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1477,1
    - Dst: ssl_sock_get_ocsp_arg_kt_index
      Src: /src/haproxy/src/ssl_sock.c:1484,1
    - Dst: X509_get_pubkey
      Src: /src/haproxy/src/ssl_sock.c:1490,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_sock.c:1491,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_sock.c:1492,1
    - Dst: ssl_sock_get_ocsp_arg_kt_index
      Src: /src/haproxy/src/ssl_sock.c:1494,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_sock.c:1500,1
    - Dst: ssl_sock_load_ocsp_response
      Src: /src/haproxy/src/ssl_sock.c:1505,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:1506,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:1507,1
    - Dst: X509_up_ref
      Src: /src/haproxy/src/ssl_sock.c:1519,1
    - Dst: X509_chain_up_ref
      Src: /src/haproxy/src/ssl_sock.c:1522,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:1524,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_sock.c:1525,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:1526,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:1536,1
    - Dst: ssl_ocsp_update_insert
      Src: /src/haproxy/src/ssl_sock.c:1539,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/ssl_sock.c:1548,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_sock.c:1557,1
    - Dst: __ssl_ocsp_update_insert_unlocked
      Src: /src/haproxy/src/ssl_sock.c:1566,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/ssl_sock.c:1575,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_sock.c:1578,1
    - Dst: OCSP_CERTID_free
      Src: /src/haproxy/src/ssl_sock.c:1583,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:1588,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:1589,1
    - Dst: ssl_sock_free_ocsp
      Src: /src/haproxy/src/ssl_sock.c:1593,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:1595,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:1596,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 135
    argCount: 4
    argNames:
    - path
    - ctx
    - store
    - chain
    argTypes:
    - char*
    - SSL_CTX*
    - struct ckch_store*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1362
    functionDepth: 2
    functionLinenumber: 1362
    functionLinenumberEnd: 1599
    functionName: ssl_sock_load_ocsp
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ssl_sock_get_ocsp_arg_kt_index
    - HA_SPIN_LOCK
    - get_trash_chunk
    - free
    - ebmb_insert
    - X509_get_pubkey
    - ha_free
    - OCSP_cert_to_id
    - sk_X509_num
    - ssl_sock_load_ocsp_response
    - ssl_sock_free_ocsp
    - sk_X509_value
    - memcpy
    - ssl_ocsp_update_insert
    - calloc
    - SSL_CTX_set_tlsext_status_cb
    - X509_up_ref
    - ssl_ocsp_get_uri_from_cert
    - i2d_OCSP_CERTID
    - b_data
    - EVP_PKEY_free
    - SSL_CTX_get_ex_data
    - OCSP_CERTID_free
    - X509_chain_up_ref
    - X509_check_issued
    - SSL_CTX_get_tlsext_status_cb
    - chunk_dup
    - task_wakeup
    - HA_SPIN_UNLOCK
    - SSL_CTX_set_ex_data
    - __ssl_ocsp_update_insert_unlocked
    - ha_warning
    - EVP_PKEY_base_id
    - strlen
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_ocsp(const char *path, SSL_CTX *ctx, struct ckch_store
      *store, STACK_OF(X509) *chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_ocsp_response
      Src: /src/haproxy/src/ssl_sock.c:1606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - path
    - ctx
    - data
    - chain
    argTypes:
    - char*
    - SSL_CTX*
    - struct ckch_data*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1604
    functionDepth: 0
    functionLinenumber: 1604
    functionLinenumberEnd: 1607
    functionName: ssl_sock_load_ocsp
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_ocsp_response
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_ocsp(const char *path, SSL_CTX *ctx, struct ckch_data
      *data, STACK_OF(X509) *chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ssl
    - ext_type
    - out
    - outlen
    - al
    - add_arg
    argTypes:
    - SSL*
    - unsigned
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1625
    functionName: ssl_sock_sctl_add_cbk
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused ssl_sock_sctl_add_cbk(SSL *ssl, unsigned ext_type, const
      unsigned char **out, size_t *outlen, int *al, void *add_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - parse_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1630
    functionName: ssl_sock_sctl_parse_cbk
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused ssl_sock_sctl_parse_cbk(SSL *s, unsigned int ext_type,
      const unsigned char *in, size_t inlen, int *al, void *parse_arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_add_server_custom_ext
      Src: /src/haproxy/src/ssl_sock.c:1636,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - sctl
    argTypes:
    - SSL_CTX*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1632
    functionDepth: 0
    functionLinenumber: 1632
    functionLinenumberEnd: 1645
    functionName: ssl_sock_load_sctl
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_ex_data
    - SSL_CTX_add_server_custom_ext
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_sctl(SSL_CTX *ctx, struct buffer *sctl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_get_conn
      Src: /src/haproxy/src/ssl_sock.c:1658,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:1665,1
    - Dst: SSL_get_wbio
      Src: /src/haproxy/src/ssl_sock.c:1686,1
    - Dst: SSL_get_rbio
      Src: /src/haproxy/src/ssl_sock.c:1687,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/haproxy/src/ssl_sock.c:1688,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - ssl
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1693
    functionName: ssl_sock_infocbk
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - BUG_ON
    - ssl_sock_get_conn
    - BIO_set_write_buffer_size
    - SSL_get_rbio
    linkageType: ''
    returnType: void
    signature: void ssl_sock_infocbk(const SSL *ssl, int where, int ret)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:1705,1
    - Dst: X509_STORE_CTX_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1709,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/haproxy/src/ssl_sock.c:1709,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1710,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1711,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/ssl_sock.c:1714,1
    - Dst: __conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:1715,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:1716,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1720,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:1721,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:1727,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/haproxy/src/ssl_sock.c:1731,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/haproxy/src/ssl_sock.c:1732,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:1735,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sock.c:1743,1
    - Dst: X509_STORE_CTX_get0_cert
      Src: /src/haproxy/src/ssl_sock.c:1744,1
    - Dst: X509_up_ref
      Src: /src/haproxy/src/ssl_sock.c:1746,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1747,1
    - Dst: X509_STORE_CTX_get1_chain
      Src: /src/haproxy/src/ssl_sock.c:1755,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_sock.c:1757,1
    - Dst: X509_up_ref
      Src: /src/haproxy/src/ssl_sock.c:1759,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1760,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_sock.c:1762,1
    - Dst: SSL_SOCK_ST_TO_CA_ERROR
      Src: /src/haproxy/src/ssl_sock.c:1768,1
    - Dst: SSL_SOCK_CA_ERROR_TO_ST
      Src: /src/haproxy/src/ssl_sock.c:1769,1
    - Dst: SSL_SOCK_CAEDEPTH_TO_ST
      Src: /src/haproxy/src/ssl_sock.c:1770,1
    - Dst: cert_ignerr_bitfield_get
      Src: /src/haproxy/src/ssl_sock.c:1774,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:1775,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:1782,1
    - Dst: SSL_SOCK_ST_TO_CRTERROR
      Src: /src/haproxy/src/ssl_sock.c:1787,1
    - Dst: SSL_SOCK_CRTERROR_TO_ST
      Src: /src/haproxy/src/ssl_sock.c:1788,1
    - Dst: cert_ignerr_bitfield_get
      Src: /src/haproxy/src/ssl_sock.c:1792,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:1793,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:1800,1
    - Dst: ssl_sock_dump_errors
      Src: /src/haproxy/src/ssl_sock.c:1805,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:1806,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:1807,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 2
    argNames:
    - ok
    - x_store
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1698
    functionDepth: 2
    functionLinenumber: 1698
    functionLinenumberEnd: 1809
    functionName: ssl_sock_bind_verifycbk
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - sk_X509_pop_free
    - SSL_set_ex_data
    - SSL_SOCK_ST_TO_CRTERROR
    - __conn_get_ssl_sock_ctx
    - TRACE_ENTER
    - STACK_OF
    - SSL_SOCK_CAEDEPTH_TO_ST
    - ssl_sock_dump_errors
    - X509_STORE_CTX_get_ex_data
    - X509_STORE_CTX_get_error_depth
    - cert_ignerr_bitfield_get
    - SSL_SOCK_CA_ERROR_TO_ST
    - TRACE_LEAVE
    - sk_X509_value
    - TRACE_ERROR
    - X509_STORE_CTX_get_error
    - X509_up_ref
    - __objt_listener
    - SSL_SOCK_ST_TO_CA_ERROR
    - ERR_clear_error
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - SSL_get_ex_data
    - X509_free
    - TRACE_STATE
    - BUG_ON
    - X509_STORE_CTX_get0_cert
    - X509_STORE_CTX_get1_chain
    - SSL_SOCK_CRTERROR_TO_ST
    linkageType: ''
    returnType: int
    signature: int ssl_sock_bind_verifycbk(int ok, X509_STORE_CTX *x_store)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_get_conn
      Src: /src/haproxy/src/ssl_sock.c:1819,1
    - Dst: __conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:1826,1
    - Dst: SSLerr
      Src: /src/haproxy/src/ssl_sock.c:1854,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 6
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1812
    functionDepth: 1
    functionLinenumber: 1812
    functionLinenumberEnd: 1856
    functionName: ssl_sock_parse_heartbeat
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - __conn_get_ssl_sock_ctx
    - SSLerr
    - ssl_sock_get_conn
    linkageType: ''
    returnType: void
    signature: "void ssl_sock_parse_heartbeat(int write_p, int version,\n                                     int
      content_type, const void *buf, size_t len,\n                                     SSL
      *ssl)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1982,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/ssl_sock.c:1984,1
    - Dst: memset
      Src: /src/haproxy/src/ssl_sock.c:1988,1
    - Dst: XXH64
      Src: /src/haproxy/src/ssl_sock.c:1990,1
    - Dst: MIN
      Src: /src/haproxy/src/ssl_sock.c:1993,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:1995,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:2113,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:2122,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:2131,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:2140,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:2148,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 171
    argCount: 6
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 1859
    functionDepth: 1
    functionLinenumber: 1859
    functionLinenumberEnd: 2149
    functionName: ssl_sock_parse_clienthello
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memset
    - pool_alloc
    - memcpy
    - SSL_set_ex_data
    - MIN
    - SSL_get_ex_data
    - XXH64
    linkageType: ''
    returnType: void
    signature: "void ssl_sock_parse_clienthello(int write_p, int version,\n                                       int
      content_type, const void *buf, size_t len,\n                                       SSL
      *ssl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:2159,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/ssl_sock.c:2162,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:2166,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:2167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2153
    functionDepth: 1
    functionLinenumber: 2153
    functionLinenumberEnd: 2170
    functionName: ssl_init_keylog
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_set_ex_data
    - pool_zalloc
    - pool_free
    - SSL_get_ex_data
    linkageType: ''
    returnType: void
    signature: "void ssl_init_keylog(int write_p, int version,\n                            int
      content_type, const void *buf, size_t len,\n                            SSL
      *ssl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:2181,1
    - Dst: EXEC_CTX_NO_RET
      Src: /src/haproxy/src/ssl_sock.c:2182,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/ssl_sock.c:2182,1
    - Dst: struct ssl_sock_msg_callback*::func
      Src: /src/haproxy/src/ssl_sock.c:2183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    - arg
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2174
    functionDepth: 1
    functionLinenumber: 2174
    functionLinenumberEnd: 2185
    functionName: ssl_sock_msgcbk
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - struct ssl_sock_msg_callback*::func
    - EXEC_CTX_NO_RET
    - EXEC_CTX_MAKE
    - list_for_each_entry
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused ssl_sock_msgcbk(int write_p, int version, int content_type,
      const void *buf, size_t len, SSL *ssl, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_select_next_proto
      Src: /src/haproxy/src/ssl_sock.c:2194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2188
    functionDepth: 0
    functionLinenumber: 2188
    functionLinenumberEnd: 2198
    functionName: ssl_sock_srv_select_protos
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_select_next_proto
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_srv_select_protos(SSL *s, unsigned char **out, unsigned
      char *outlen,\n                                      const unsigned char *in,
      unsigned int inlen,\n\t\t\t\t      void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2205
    functionDepth: 0
    functionLinenumber: 2205
    functionLinenumberEnd: 2213
    functionName: ssl_sock_advertise_npn_protos
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_advertise_npn_protos(SSL *s, const unsigned char **data,\n
      \                                        unsigned int *len, void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:2230,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:2235,1
    - Dst: __conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:2236,1
    - Dst: SSL_select_next_proto
      Src: /src/haproxy/src/ssl_sock.c:2239,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/ssl_sock.c:2243,1
    - Dst: qc_register_alpn
      Src: /src/haproxy/src/ssl_sock.c:2249,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/ssl_sock.c:2250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - server
    - server_len
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2220
    functionDepth: 1
    functionLinenumber: 2220
    functionLinenumberEnd: 2258
    functionName: ssl_sock_advertise_alpn_protos
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - qc_register_alpn
    - __conn_get_ssl_sock_ctx
    - quic_set_tls_alert
    - SSL_select_next_proto
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_advertise_alpn_protos(SSL *s, const unsigned char **out,\n
      \                                         unsigned char *outlen,\n                                          const
      unsigned char *server,\n                                          unsigned int
      server_len, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2266,1
    - Dst: SSLv3_server_method
      Src: /src/haproxy/src/ssl_sock.c:2266,1
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2267,1
    - Dst: SSLv3_client_method
      Src: /src/haproxy/src/ssl_sock.c:2267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2269
    functionName: ctx_set_SSLv3_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSLv3_client_method
    - SSL_CTX_set_ssl_version
    - SSLv3_server_method
    linkageType: ''
    returnType: void
    signature: void ctx_set_SSLv3_func(SSL_CTX *ctx, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2271,1
    - Dst: TLSv1_server_method
      Src: /src/haproxy/src/ssl_sock.c:2271,1
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2272,1
    - Dst: TLSv1_client_method
      Src: /src/haproxy/src/ssl_sock.c:2272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2270
    functionDepth: 0
    functionLinenumber: 2270
    functionLinenumberEnd: 2273
    functionName: ctx_set_TLSv10_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_ssl_version
    - TLSv1_client_method
    - TLSv1_server_method
    linkageType: ''
    returnType: void
    signature: void ctx_set_TLSv10_func(SSL_CTX *ctx, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2276,1
    - Dst: TLSv1_1_server_method
      Src: /src/haproxy/src/ssl_sock.c:2276,1
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2277,1
    - Dst: TLSv1_1_client_method
      Src: /src/haproxy/src/ssl_sock.c:2277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2274
    functionDepth: 0
    functionLinenumber: 2274
    functionLinenumberEnd: 2279
    functionName: ctx_set_TLSv11_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - TLSv1_1_client_method
    - SSL_CTX_set_ssl_version
    - TLSv1_1_server_method
    linkageType: ''
    returnType: void
    signature: void ctx_set_TLSv11_func(SSL_CTX *ctx, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2282,1
    - Dst: TLSv1_2_server_method
      Src: /src/haproxy/src/ssl_sock.c:2282,1
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2283,1
    - Dst: TLSv1_2_client_method
      Src: /src/haproxy/src/ssl_sock.c:2283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2280
    functionDepth: 0
    functionLinenumber: 2280
    functionLinenumberEnd: 2285
    functionName: ctx_set_TLSv12_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - TLSv1_2_server_method
    - SSL_CTX_set_ssl_version
    - TLSv1_2_client_method
    linkageType: ''
    returnType: void
    signature: void ctx_set_TLSv12_func(SSL_CTX *ctx, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2287
    functionDepth: 0
    functionLinenumber: 2287
    functionLinenumberEnd: 2287
    functionName: ctx_set_TLSv13_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctx_set_TLSv13_func(SSL_CTX *ctx, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2289
    functionDepth: 0
    functionLinenumber: 2289
    functionLinenumberEnd: 2289
    functionName: ssl_set_SSLv3_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_set_SSLv3_func(SSL *ssl, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2290
    functionDepth: 0
    functionLinenumber: 2290
    functionLinenumberEnd: 2290
    functionName: ssl_set_TLSv10_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_set_TLSv10_func(SSL *ssl, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2291
    functionDepth: 0
    functionLinenumber: 2291
    functionLinenumberEnd: 2291
    functionName: ssl_set_TLSv11_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_set_TLSv11_func(SSL *ssl, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2292
    functionDepth: 0
    functionLinenumber: 2292
    functionLinenumberEnd: 2292
    functionName: ssl_set_TLSv12_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_set_TLSv12_func(SSL *ssl, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2293
    functionDepth: 0
    functionLinenumber: 2293
    functionLinenumberEnd: 2293
    functionName: ssl_set_TLSv13_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_set_TLSv13_func(SSL *ssl, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2297,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2296
    functionDepth: 0
    functionLinenumber: 2296
    functionLinenumberEnd: 2299
    functionName: ctx_set_SSLv3_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_set_max_proto_version
    linkageType: ''
    returnType: void
    signature: void ctx_set_SSLv3_func(SSL_CTX *ctx, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_max_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2301,1
    - Dst: SSL_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2300
    functionDepth: 0
    functionLinenumber: 2300
    functionLinenumberEnd: 2303
    functionName: ssl_set_SSLv3_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_set_max_proto_version
    - SSL_set_min_proto_version
    linkageType: ''
    returnType: void
    signature: void ssl_set_SSLv3_func(SSL *ssl, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2305,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2307
    functionName: ctx_set_TLSv10_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_set_max_proto_version
    linkageType: ''
    returnType: void
    signature: void ctx_set_TLSv10_func(SSL_CTX *ctx, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_max_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2309,1
    - Dst: SSL_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2308
    functionDepth: 0
    functionLinenumber: 2308
    functionLinenumberEnd: 2311
    functionName: ssl_set_TLSv10_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_set_max_proto_version
    - SSL_set_min_proto_version
    linkageType: ''
    returnType: void
    signature: void ssl_set_TLSv10_func(SSL *ssl, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2313,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2312
    functionDepth: 0
    functionLinenumber: 2312
    functionLinenumberEnd: 2315
    functionName: ctx_set_TLSv11_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_set_max_proto_version
    linkageType: ''
    returnType: void
    signature: void ctx_set_TLSv11_func(SSL_CTX *ctx, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_max_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2317,1
    - Dst: SSL_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2316
    functionDepth: 0
    functionLinenumber: 2316
    functionLinenumberEnd: 2319
    functionName: ssl_set_TLSv11_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_set_max_proto_version
    - SSL_set_min_proto_version
    linkageType: ''
    returnType: void
    signature: void ssl_set_TLSv11_func(SSL *ssl, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2321,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2320
    functionDepth: 0
    functionLinenumber: 2320
    functionLinenumberEnd: 2323
    functionName: ctx_set_TLSv12_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_set_max_proto_version
    linkageType: ''
    returnType: void
    signature: void ctx_set_TLSv12_func(SSL_CTX *ctx, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_max_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2325,1
    - Dst: SSL_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2324
    functionDepth: 0
    functionLinenumber: 2324
    functionLinenumberEnd: 2327
    functionName: ssl_set_TLSv12_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_set_max_proto_version
    - SSL_set_min_proto_version
    linkageType: ''
    returnType: void
    signature: void ssl_set_TLSv12_func(SSL *ssl, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2330,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2328
    functionDepth: 0
    functionLinenumber: 2328
    functionLinenumberEnd: 2333
    functionName: ctx_set_TLSv13_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_set_max_proto_version
    linkageType: ''
    returnType: void
    signature: void ctx_set_TLSv13_func(SSL_CTX *ctx, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_max_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2336,1
    - Dst: SSL_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2339
    functionName: ssl_set_TLSv13_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_set_max_proto_version
    - SSL_set_min_proto_version
    linkageType: ''
    returnType: void
    signature: void ssl_set_TLSv13_func(SSL *ssl, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2341
    functionDepth: 0
    functionLinenumber: 2341
    functionLinenumberEnd: 2341
    functionName: ctx_set_None_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctx_set_None_func(SSL_CTX *ctx, set_context_func c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2342
    functionDepth: 0
    functionLinenumber: 2342
    functionLinenumberEnd: 2342
    functionName: ssl_set_None_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_set_None_func(SSL *ssl, set_context_func c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/haproxy/src/ssl_sock.c:2363,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/haproxy/src/ssl_sock.c:2364,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/haproxy/src/ssl_sock.c:2365,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/haproxy/src/ssl_sock.c:2366,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/haproxy/src/ssl_sock.c:2369,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/haproxy/src/ssl_sock.c:2371,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/haproxy/src/ssl_sock.c:2372,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:2377,1
    - Dst: OSSL_PARAM_free
      Src: /src/haproxy/src/ssl_sock.c:2378,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/haproxy/src/ssl_sock.c:2379,1
    - Dst: BN_free
      Src: /src/haproxy/src/ssl_sock.c:2380,1
    - Dst: BN_free
      Src: /src/haproxy/src/ssl_sock.c:2381,1
    - Dst: DH_new
      Src: /src/haproxy/src/ssl_sock.c:2385,1
    - Dst: DH_set0_pqg
      Src: /src/haproxy/src/ssl_sock.c:2390,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - p
    - g
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2355
    functionDepth: 1
    functionLinenumber: 2355
    functionLinenumberEnd: 2394
    functionName: ssl_new_dh_fromdata
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_fromdata
    - DH_set0_pqg
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_free
    - DH_new
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_free
    - BN_free
    - OSSL_PARAM_BLD_to_param
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_fromdata_init
    linkageType: ''
    returnType: HASSL_DH
    signature: HASSL_DH *ssl_new_dh_fromdata(BIGNUM *p, BIGNUM *g)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/haproxy/src/ssl_sock.c:2402,1
    - Dst: OBJ_nid2ln
      Src: /src/haproxy/src/ssl_sock.c:2408,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/haproxy/src/ssl_sock.c:2413,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/haproxy/src/ssl_sock.c:2414,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/haproxy/src/ssl_sock.c:2416,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/haproxy/src/ssl_sock.c:2416,1
    - Dst: EVP_PKEY_generate
      Src: /src/haproxy/src/ssl_sock.c:2417,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:2420,1
    - Dst: DH_new_by_nid
      Src: /src/haproxy/src/ssl_sock.c:2425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2397
    functionDepth: 0
    functionLinenumber: 2397
    functionLinenumberEnd: 2428
    functionName: ssl_get_dh_by_nid
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - DH_new_by_nid
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_set_params
    - EVP_PKEY_keygen_init
    - EVP_PKEY_generate
    - OSSL_PARAM_construct_utf8_string
    - OBJ_nid2ln
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_new_from_name
    linkageType: ''
    returnType: HASSL_DH
    signature: HASSL_DH *ssl_get_dh_by_nid(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/ssl_sock.c:2456,1
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/ssl_sock.c:2457,1
    - Dst: ssl_new_dh_fromdata
      Src: /src/haproxy/src/ssl_sock.c:2460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2432
    functionDepth: 2
    functionLinenumber: 2432
    functionLinenumberEnd: 2463
    functionName: ssl_get_dh_1024
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - ssl_new_dh_fromdata
    linkageType: ''
    returnType: HASSL_DH
    signature: HASSL_DH * ssl_get_dh_1024(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/ssl_sock.c:2501,1
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/ssl_sock.c:2502,1
    - Dst: ssl_new_dh_fromdata
      Src: /src/haproxy/src/ssl_sock.c:2505,1
    - Dst: ssl_get_dh_by_nid
      Src: /src/haproxy/src/ssl_sock.c:2509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2465
    functionDepth: 2
    functionLinenumber: 2465
    functionLinenumberEnd: 2511
    functionName: ssl_get_dh_2048
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - ssl_new_dh_fromdata
    - ssl_get_dh_by_nid
    linkageType: ''
    returnType: HASSL_DH
    signature: HASSL_DH *ssl_get_dh_2048(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/ssl_sock.c:2570,1
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/ssl_sock.c:2571,1
    - Dst: ssl_new_dh_fromdata
      Src: /src/haproxy/src/ssl_sock.c:2574,1
    - Dst: ssl_get_dh_by_nid
      Src: /src/haproxy/src/ssl_sock.c:2578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2513
    functionDepth: 2
    functionLinenumber: 2513
    functionLinenumberEnd: 2580
    functionName: ssl_get_dh_4096
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - ssl_new_dh_fromdata
    - ssl_get_dh_by_nid
    linkageType: ''
    returnType: HASSL_DH
    signature: HASSL_DH *ssl_get_dh_4096(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_sock.c:2588,1
    - Dst: EVP_PKEY_bits
      Src: /src/haproxy/src/ssl_sock.c:2598,1
    - Dst: ssl_get_dh_4096
      Src: /src/haproxy/src/ssl_sock.c:2607,1
    - Dst: ssl_get_dh_2048
      Src: /src/haproxy/src/ssl_sock.c:2612,1
    - Dst: ssl_get_dh_1024
      Src: /src/haproxy/src/ssl_sock.c:2617,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2582
    functionDepth: 3
    functionLinenumber: 2582
    functionLinenumberEnd: 2622
    functionName: ssl_get_tmp_dh
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_get_dh_2048
    - EVP_PKEY_bits
    - ssl_get_dh_1024
    - EVP_PKEY_base_id
    - ssl_get_dh_4096
    linkageType: ''
    returnType: HASSL_DH
    signature: HASSL_DH *ssl_get_tmp_dh(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_privatekey
      Src: /src/haproxy/src/ssl_sock.c:2629,1
    - Dst: ssl_get_tmp_dh
      Src: /src/haproxy/src/ssl_sock.c:2631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - export
    - keylen
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2627
    functionDepth: 4
    functionLinenumber: 2627
    functionLinenumberEnd: 2632
    functionName: ssl_get_tmp_dh_cbk
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_get_privatekey
    - ssl_get_tmp_dh
    linkageType: ''
    returnType: HASSL_DH
    signature: HASSL_DH *ssl_get_tmp_dh_cbk(SSL *ssl, int export, int keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_tmp_dh
      Src: /src/haproxy/src/ssl_sock.c:2638,1
    - Dst: HASSL_DH_up_ref
      Src: /src/haproxy/src/ssl_sock.c:2641,1
    - Dst: SSL_CTX_set0_tmp_dh_pkey
      Src: /src/haproxy/src/ssl_sock.c:2643,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:2646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - dh
    argTypes:
    - SSL_CTX*
    - HASSL_DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2635
    functionDepth: 0
    functionLinenumber: 2635
    functionLinenumberEnd: 2650
    functionName: ssl_sock_set_tmp_dh
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HASSL_DH_free
    - SSL_CTX_set_tmp_dh
    - HASSL_DH_up_ref
    - SSL_CTX_set0_tmp_dh_pkey
    linkageType: ''
    returnType: int
    signature: int ssl_sock_set_tmp_dh(SSL_CTX *ctx, HASSL_DH *dh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_tmp_dh
      Src: /src/haproxy/src/ssl_sock.c:2656,1
    - Dst: HASSL_DH_up_ref
      Src: /src/haproxy/src/ssl_sock.c:2657,1
    - Dst: SSL_CTX_set0_tmp_dh_pkey
      Src: /src/haproxy/src/ssl_sock.c:2658,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:2659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - SSL_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2653
    functionDepth: 4
    functionLinenumber: 2653
    functionLinenumberEnd: 2661
    functionName: ssl_sock_set_tmp_dh_from_pkey
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HASSL_DH_free
    - HASSL_DH_up_ref
    - SSL_CTX_set0_tmp_dh_pkey
    - ssl_get_tmp_dh
    linkageType: ''
    returnType: void
    signature: void ssl_sock_set_tmp_dh_from_pkey(SSL_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/haproxy/src/ssl_sock.c:2672,1
    - Dst: OSSL_DECODER_CTX_get_num_decoders
      Src: /src/haproxy/src/ssl_sock.c:2676,1
    - Dst: BIO_eof
      Src: /src/haproxy/src/ssl_sock.c:2683,1
    - Dst: OSSL_DECODER_from_bio
      Src: /src/haproxy/src/ssl_sock.c:2684,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:2687,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/haproxy/src/ssl_sock.c:2692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2664
    functionDepth: 0
    functionLinenumber: 2664
    functionLinenumberEnd: 2696
    functionName: ssl_sock_get_dh_from_bio
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER_CTX_free
    - OSSL_DECODER_CTX_get_num_decoders
    - PEM_read_bio_DHparams
    - BIO_eof
    - OSSL_DECODER_from_bio
    - OSSL_DECODER_CTX_new_for_pkey
    linkageType: ''
    returnType: HASSL_DH
    signature: HASSL_DH *ssl_sock_get_dh_from_bio(BIO *bio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_sock.c:2701,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/ssl_sock.c:2701,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/ssl_sock.c:2706,1
    - Dst: ssl_sock_get_dh_from_bio
      Src: /src/haproxy/src/ssl_sock.c:2709,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_sock.c:2713,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:2715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2698
    functionDepth: 1
    functionLinenumber: 2698
    functionLinenumberEnd: 2718
    functionName: ssl_sock_get_dh_from_file
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - BIO_free
    - BIO_new
    - BIO_read_filename
    - ssl_sock_get_dh_from_bio
    - BIO_s_file
    linkageType: ''
    returnType: HASSL_DH
    signature: HASSL_DH * ssl_sock_get_dh_from_file(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_get_dh_from_file
      Src: /src/haproxy/src/ssl_sock.c:2722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2729
      start: 2720
    functionDepth: 2
    functionLinenumber: 2720
    functionLinenumberEnd: 2729
    functionName: ssl_sock_load_global_dh_param_from_file
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_sock_get_dh_from_file
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_global_dh_param_from_file(const char *filename)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:2754,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:2759,1
    - Dst: tolower
      Src: /src/haproxy/src/ssl_sock.c:2761,1
    - Dst: malloc
      Src: /src/haproxy/src/ssl_sock.c:2766,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:2769,1
    - Dst: SSL_CTX_up_ref
      Src: /src/haproxy/src/ssl_sock.c:2770,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:2779,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 7
    argNames:
    - ctx
    - ckch_inst
    - s
    - conf
    - kinfo
    - name
    - order
    argTypes:
    - SSL_CTX*
    - struct ckch_inst*
    - struct bind_conf*
    - struct ssl_bind_conf*
    - struct pkey_info
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2733
    functionDepth: 1
    functionLinenumber: 2733
    functionLinenumberEnd: 2782
    functionName: ckch_inst_add_cert_sni
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - tolower
    - SSL_CTX_up_ref
    - LIST_APPEND
    - ha_warning
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ckch_inst_add_cert_sni(SSL_CTX *ctx, struct ckch_inst *ckch_inst,\n
      \                                struct bind_conf *s, struct ssl_bind_conf *conf,\n
      \                                struct pkey_info kinfo, char *name, int order)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_sock.c:2797,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_sock.c:2805,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_sock.c:2807,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_sock.c:2809,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:2810,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:2814,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:2815,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:2816,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_sock.c:2831,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_sock.c:2833,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:2837,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 2
    argNames:
    - ckch_inst
    - bind_conf
    argTypes:
    - struct ckch_inst*
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2790
    functionDepth: 1
    functionLinenumber: 2790
    functionLinenumberEnd: 2840
    functionName: ssl_sock_load_cert_sni
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - SSL_CTX_free
    - ha_free
    - list_for_each_entry_safe
    - ebst_lookup
    - ebmb_entry
    - ebst_insert
    - ebmb_next_dup
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void ssl_sock_load_cert_sni(struct ckch_inst *ckch_inst, struct bind_conf
      *bind_conf)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_set_tmp_dh
      Src: /src/haproxy/src/ssl_sock.c:2871,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2872,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2874,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:2883,1
    - Dst: ssl_sock_set_tmp_dh
      Src: /src/haproxy/src/ssl_sock.c:2887,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2888,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2890,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:2898,1
    - Dst: ssl_get_dh_1024
      Src: /src/haproxy/src/ssl_sock.c:2907,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2910,1
    - Dst: ssl_sock_set_tmp_dh
      Src: /src/haproxy/src/ssl_sock.c:2916,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2917,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2919,1
    - Dst: SSL_CTX_set_tmp_dh_callback
      Src: /src/haproxy/src/ssl_sock.c:2928,1
    - Dst: ssl_sock_set_tmp_dh_from_pkey
      Src: /src/haproxy/src/ssl_sock.c:2930,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:2938,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 4
    argNames:
    - ctx
    - data
    - path
    - err
    argTypes:
    - SSL_CTX*
    - struct ckch_data*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2863
    functionDepth: 5
    functionLinenumber: 2863
    functionLinenumberEnd: 2940
    functionName: ssl_sock_load_dh_params
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_sock_set_tmp_dh
    - memprintf
    - ssl_sock_set_tmp_dh_from_pkey
    - ssl_get_dh_1024
    - SSL_CTX_set_ex_data
    - ERR_clear_error
    - SSL_CTX_set_tmp_dh_callback
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_load_dh_params(SSL_CTX *ctx, const struct ckch_data *data,\n
      \                                  const char *path, char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:2960,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/haproxy/src/ssl_sock.c:2967,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_sock.c:2968,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2969,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_sock.c:2970,1
    - Dst: X509_chain_up_ref
      Src: /src/haproxy/src/ssl_sock.c:2976,1
    - Dst: sk_X509_new_null
      Src: /src/haproxy/src/ssl_sock.c:2982,1
    - Dst: SSL_CTX_set1_chain
      Src: /src/haproxy/src/ssl_sock.c:2987,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_sock.c:2988,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2989,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_sock.c:2990,1
    - Dst: sk_X509_shift
      Src: /src/haproxy/src/ssl_sock.c:2997,1
    - Dst: SSL_CTX_add_extra_chain_cert
      Src: /src/haproxy/src/ssl_sock.c:2998,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2999,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sock.c:3001,1
    - Dst: SSL_CTX_build_cert_chain
      Src: /src/haproxy/src/ssl_sock.c:3011,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3012,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 5
    argNames:
    - path
    - data
    - ctx
    - find_chain
    - err
    argTypes:
    - char*
    - struct ckch_data*
    - SSL_CTX*
    - STACK_OF**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3022
      start: 2954
    functionDepth: 1
    functionLinenumber: 2954
    functionLinenumberEnd: 3022
    functionName: ssl_sock_load_cert_chain
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memprintf
    - X509_chain_up_ref
    - X509_free
    - SSL_CTX_add_extra_chain_cert
    - ERR_reason_error_string
    - sk_X509_new_null
    - sk_X509_shift
    - SSL_CTX_build_cert_chain
    - SSL_CTX_use_certificate
    - ERR_clear_error
    - ERR_get_error
    - SSL_CTX_set1_chain
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_load_cert_chain(const char *path, const struct ckch_data
      *data,\n\t\t\t\t    SSL_CTX *ctx, STACK_OF(X509) **find_chain, char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:3037,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:3039,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/haproxy/src/ssl_sock.c:3041,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_sock.c:3044,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3045,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_sock.c:3046,1
    - Dst: ssl_sock_load_cert_chain
      Src: /src/haproxy/src/ssl_sock.c:3052,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:3060,1
    - Dst: ssl_sock_load_dh_params
      Src: /src/haproxy/src/ssl_sock.c:3063,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3065,1
    - Dst: ssl_sock_load_sctl
      Src: /src/haproxy/src/ssl_sock.c:3073,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3074,1
    - Dst: ssl_sock_load_ocsp
      Src: /src/haproxy/src/ssl_sock.c:3088,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3090,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3093,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_sock.c:3101,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 4
    argNames:
    - path
    - store
    - ctx
    - err
    argTypes:
    - char*
    - struct ckch_store*
    - SSL_CTX*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3103
      start: 3033
    functionDepth: 6
    functionLinenumber: 3033
    functionLinenumberEnd: 3103
    functionName: ssl_sock_put_ckch_into_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memprintf
    - SSL_CTX_use_PrivateKey
    - sk_X509_pop_free
    - ssl_sock_load_cert_chain
    - ssl_sock_load_ocsp
    - ERR_reason_error_string
    - ssl_sock_load_sctl
    - SSL_CTX_set_ex_data
    - ssl_sock_load_dh_params
    - STACK_OF
    - ERR_clear_error
    - ERR_get_error
    linkageType: ''
    returnType: int
    signature: int ssl_sock_put_ckch_into_ctx(const char *path, struct ckch_store
      *store, SSL_CTX *ctx, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:3118,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/haproxy/src/ssl_sock.c:3121,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3122,1
    - Dst: ssl_sock_load_cert_chain
      Src: /src/haproxy/src/ssl_sock.c:3128,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/haproxy/src/ssl_sock.c:3132,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3133,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_sock.c:3139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - path
    - data
    - ctx
    - err
    argTypes:
    - char*
    - struct ckch_data*
    - SSL_CTX*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3141
      start: 3114
    functionDepth: 2
    functionLinenumber: 3114
    functionLinenumberEnd: 3141
    functionName: ssl_sock_put_srv_ckch_into_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memprintf
    - SSL_CTX_use_PrivateKey
    - sk_X509_pop_free
    - ssl_sock_load_cert_chain
    - SSL_CTX_check_private_key
    - STACK_OF
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_put_srv_ckch_into_ctx(const char *path, const struct
      ckch_data *data,\n\t\t\t\t\t  SSL_CTX *ctx, char **err)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:3163,1
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/ssl_sock.c:3177,1
    - Dst: SSLv23_server_method
      Src: /src/haproxy/src/ssl_sock.c:3177,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3179,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:3185,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3187,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:3193,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_sock.c:3196,1
    - Dst: ssl_sock_put_ckch_into_ctx
      Src: /src/haproxy/src/ssl_sock.c:3198,1
    - Dst: ckch_inst_new
      Src: /src/haproxy/src/ssl_sock.c:3202,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3204,1
    - Dst: X509_get_pubkey
      Src: /src/haproxy/src/ssl_sock.c:3210,1
    - Dst: EVP_PKEY_bits
      Src: /src/haproxy/src/ssl_sock.c:3212,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_sock.c:3213,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_sock.c:3224,1
    - Dst: ckch_inst_add_cert_sni
      Src: /src/haproxy/src/ssl_sock.c:3229,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3231,1
    - Dst: X509_get_ext_d2i
      Src: /src/haproxy/src/ssl_sock.c:3239,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/haproxy/src/ssl_sock.c:3241,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/haproxy/src/ssl_sock.c:3242,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_sock.c:3244,1
    - Dst: ckch_inst_add_cert_sni
      Src: /src/haproxy/src/ssl_sock.c:3245,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ssl_sock.c:3246,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3248,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/haproxy/src/ssl_sock.c:3255,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:3258,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/haproxy/src/ssl_sock.c:3260,1
    - Dst: X509_NAME_get_entry
      Src: /src/haproxy/src/ssl_sock.c:3261,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/haproxy/src/ssl_sock.c:3264,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_sock.c:3265,1
    - Dst: ckch_inst_add_cert_sni
      Src: /src/haproxy/src/ssl_sock.c:3266,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ssl_sock.c:3267,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3269,1
    - Dst: ckch_inst_add_cert_sni
      Src: /src/haproxy/src/ssl_sock.c:3284,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3286,1
    - Dst: SSL_CTX_up_ref
      Src: /src/haproxy/src/ssl_sock.c:3295,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:3303,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_sock.c:3311,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:3314,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 121
    argCount: 9
    argNames:
    - path
    - ckchs
    - bind_conf
    - ssl_conf
    - sni_filter
    - fcount
    - is_default
    - ckchi
    - err
    argTypes:
    - char*
    - struct ckch_store*
    - struct bind_conf*
    - struct ssl_bind_conf*
    - char**
    - int
    - int
    - struct ckch_inst**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3317
      start: 3152
    functionDepth: 7
    functionLinenumber: 3152
    functionLinenumberEnd: 3317
    functionName: ckch_inst_new_load_store
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memprintf
    - SSL_CTX_set_security_level
    - SSL_CTX_free
    - X509_NAME_ENTRY_get_data
    - X509_get_pubkey
    - STACK_OF
    - ckch_inst_free
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - ckch_inst_new
    - ssl_sock_put_ckch_into_ctx
    - ckch_inst_add_cert_sni
    - OPENSSL_free
    - SSL_CTX_up_ref
    - X509_NAME_get_entry
    - sk_GENERAL_NAME_pop_free
    - SSL_CTX_new
    - X509_NAME_get_index_by_NID
    - X509_get_ext_d2i
    - EVP_PKEY_free
    - SSLv23_server_method
    - EVP_PKEY_bits
    - SSL_CTX_set_ex_data
    - ASN1_STRING_to_UTF8
    - EVP_PKEY_base_id
    - X509_get_subject_name
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ckch_inst_new_load_store(const char *path, struct ckch_store *ckchs,
      struct bind_conf *bind_conf,\n                                    struct ssl_bind_conf
      *ssl_conf, char **sni_filter, int fcount, int is_default, struct ckch_inst **ckchi,
      char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_quic_srv_new_ssl_ctx
      Src: /src/haproxy/src/ssl_sock.c:3323,1
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/ssl_sock.c:3325,1
    - Dst: SSLv23_client_method
      Src: /src/haproxy/src/ssl_sock.c:3325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - is_quic
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3326
      start: 3320
    functionDepth: 1
    functionLinenumber: 3320
    functionLinenumberEnd: 3326
    functionName: ssl_sock_new_ssl_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_new
    - ssl_quic_srv_new_ssl_ctx
    - SSLv23_client_method
    linkageType: ''
    returnType: SSL_CTX
    signature: SSL_CTX *ssl_sock_new_ssl_ctx(int is_quic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/ssl_sock.c:3330,1
    - Dst: SSLv23_client_method
      Src: /src/haproxy/src/ssl_sock.c:3330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_quic
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3331
      start: 3328
    functionDepth: 0
    functionLinenumber: 3328
    functionLinenumberEnd: 3331
    functionName: ssl_sock_new_ssl_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_new
    - SSLv23_client_method
    linkageType: ''
    returnType: SSL_CTX
    signature: SSL_CTX *ssl_sock_new_ssl_ctx(int is_quic)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_new_ssl_ctx
      Src: /src/haproxy/src/ssl_sock.c:3358,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3360,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_sock.c:3367,1
    - Dst: ssl_sock_put_srv_ckch_into_ctx
      Src: /src/haproxy/src/ssl_sock.c:3369,1
    - Dst: ckch_inst_new
      Src: /src/haproxy/src/ssl_sock.c:3373,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3375,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:3392,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - path
    - ckchs
    - ckchi
    - err
    - is_quic
    argTypes:
    - char*
    - struct ckch_store*
    - struct ckch_inst**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3343
    functionDepth: 3
    functionLinenumber: 3343
    functionLinenumberEnd: 3395
    functionName: ckch_inst_new_load_srv_store
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memprintf
    - SSL_CTX_set_security_level
    - ssl_sock_put_srv_ckch_into_ctx
    - ssl_sock_new_ssl_ctx
    - SSL_CTX_free
    - ckch_inst_new
    linkageType: ''
    returnType: int
    signature: "int ckch_inst_new_load_srv_store(const char *path, struct ckch_store
      *ckchs,\n\t\t\t\t struct ckch_inst **ckchi, char **err, int is_quic)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ckch_inst_new_load_store
      Src: /src/haproxy/src/ssl_sock.c:3407,1
    - Dst: ssl_sock_load_cert_sni
      Src: /src/haproxy/src/ssl_sock.c:3412,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:3415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 9
    argNames:
    - path
    - ckchs
    - bind_conf
    - ssl_conf
    - sni_filter
    - fcount
    - is_default
    - ckch_inst
    - err
    argTypes:
    - char*
    - struct ckch_store*
    - struct bind_conf*
    - struct ssl_bind_conf*
    - char**
    - int
    - int
    - struct ckch_inst**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3417
      start: 3398
    functionDepth: 8
    functionLinenumber: 3398
    functionLinenumberEnd: 3417
    functionName: ssl_sock_load_ckchs
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_sock_load_cert_sni
    - ckch_inst_new_load_store
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_load_ckchs(const char *path, struct ckch_store *ckchs,\n
      \                              struct bind_conf *bind_conf, struct ssl_bind_conf
      *ssl_conf,\n                               char **sni_filter, int fcount,\n
      \                              int is_default,\n                               struct
      ckch_inst **ckch_inst, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ckch_inst_new_load_srv_store
      Src: /src/haproxy/src/ssl_sock.c:3429,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:3430,1
    - Dst: SSL_CTX_up_ref
      Src: /src/haproxy/src/ssl_sock.c:3437,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:3440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - path
    - ckchs
    - server
    - ckch_inst
    - err
    argTypes:
    - char*
    - struct ckch_store*
    - struct server*
    - struct ckch_inst**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3442
      start: 3423
    functionDepth: 4
    functionLinenumber: 3423
    functionLinenumberEnd: 3442
    functionName: ssl_sock_load_srv_ckchs
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - srv_is_quic
    - SSL_CTX_up_ref
    - ckch_inst_new_load_srv_store
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_load_srv_ckchs(const char *path, struct ckch_store *ckchs,\n\t\t\t\t
      \  struct server *server, struct ckch_inst **ckch_inst, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/haproxy/src/ssl_sock.c:3457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3461
      start: 3452
    functionDepth: 0
    functionLinenumber: 3452
    functionLinenumberEnd: 3461
    functionName: ssl_initialize_random
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    linkageType: ''
    returnType: int
    signature: int ssl_initialize_random(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/ssl_sock.c:3480,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3482,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:3490,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_sock.c:3494,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:3496,1
    - Dst: crtlist_load_cert_dir
      Src: /src/haproxy/src/ssl_sock.c:3500,1
    - Dst: crtlist_parse_file
      Src: /src/haproxy/src/ssl_sock.c:3502,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_sock.c:3505,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:3514,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:3523,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:3523,1
    - Dst: ssl_sock_load_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3527,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3529,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:3532,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:3548,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_sock.c:3552,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_sock.c:3559,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:3563,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 5
    argNames:
    - file
    - dir
    - bind_conf
    - curproxy
    - err
    argTypes:
    - char*
    - int
    - struct bind_conf*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3566
      start: 3471
    functionDepth: 9
    functionLinenumber: 3471
    functionLinenumberEnd: 3566
    functionName: ssl_sock_load_cert_list_file
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - malloc
    - memprintf
    - crtlist_load_cert_dir
    - list_for_each_entry
    - eb_is_empty
    - list_for_each_entry_safe
    - ebst_lookup
    - crtlist_parse_file
    - LIST_APPEND
    - ebmb_entry
    - ebst_insert
    - free
    - ssl_sock_load_ckchs
    - ckch_inst_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_cert_list_file(char *file, int dir, struct bind_conf
      *bind_conf, struct proxy *curproxy, char **err)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:3580,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:3580,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_sock.c:3584,1
    - Dst: ckch_conf_cmp_empty
      Src: /src/haproxy/src/ssl_sock.c:3586,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3588,1
    - Dst: ssl_sock_load_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3593,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_sock.c:3596,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/ssl_sock.c:3598,1
    - Dst: ckch_store_new_load_files_path
      Src: /src/haproxy/src/ssl_sock.c:3599,1
    - Dst: ssl_sock_load_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3602,1
    - Dst: ssl_sock_load_cert_list_file
      Src: /src/haproxy/src/ssl_sock.c:3604,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_sock.c:3617,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_sock.c:3621,1
    - Dst: ssl_sock_load_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3622,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_sock.c:3625,1
    - Dst: ckch_store_new_load_files_path
      Src: /src/haproxy/src/ssl_sock.c:3627,1
    - Dst: ssl_sock_load_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3630,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3636,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3644,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_sock.c:3645,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 4
    argNames:
    - path
    - bind_conf
    - is_default
    - err
    argTypes:
    - char*
    - struct bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3650
      start: 3569
    functionDepth: 10
    functionLinenumber: 3569
    functionLinenumberEnd: 3650
    functionName: ssl_sock_load_cert
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ckch_store_new_load_files_path
    - eb_is_empty
    - strerror
    - ckch_conf_cmp_empty
    - ckchs_lookup
    - stat
    - S_ISDIR
    - ssl_sock_load_cert_list_file
    - ssl_sock_load_ckchs
    - snprintf
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_cert(char *path, struct bind_conf *bind_conf, int
      is_default, char **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_sock.c:3664,1
    - Dst: ssl_sock_load_srv_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3666,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3670,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_sock.c:3676,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/ssl_sock.c:3678,1
    - Dst: ckch_store_new_load_files_path
      Src: /src/haproxy/src/ssl_sock.c:3680,1
    - Dst: ssl_sock_load_srv_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3683,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3688,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_sock.c:3689,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - path
    - server
    - create_if_none
    - err
    argTypes:
    - char*
    - struct server*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3695
      start: 3657
    functionDepth: 5
    functionLinenumber: 3657
    functionLinenumberEnd: 3695
    functionName: ssl_sock_load_srv_cert
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ckch_store_new_load_files_path
    - strerror
    - ckchs_lookup
    - S_ISDIR
    - stat
    - ssl_sock_load_srv_ckchs
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_srv_cert(char *path, struct server *server, int create_if_none,
      char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:3713,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:3718,1
    - Dst: ha_random64
      Src: /src/haproxy/src/ssl_sock.c:3724,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:3730,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:3731,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:3732,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3736
      start: 3708
    functionDepth: 1
    functionLinenumber: 3708
    functionLinenumberEnd: 3736
    functionName: ssl_sock_create_passphrase_cache
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ha_free
    - calloc
    - ha_alert
    - ha_random64
    linkageType: ''
    returnType: int
    signature: int ssl_sock_create_passphrase_cache(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: my_realloc2
      Src: /src/haproxy/src/ssl_sock.c:3746,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/ssl_sock.c:3746,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:3748,1
    - Dst: ha_random64
      Src: /src/haproxy/src/ssl_sock.c:3756,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/ssl_sock.c:3762,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/ssl_sock.c:3762,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:3764,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3769
      start: 3741
    functionDepth: 1
    functionLinenumber: 3741
    functionLinenumberEnd: 3769
    functionName: ssl_sock_resize_passphrase_cache
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - array_size_or_fail
    - my_realloc2
    - ha_alert
    - ha_random64
    linkageType: ''
    returnType: void
    signature: void ssl_sock_resize_passphrase_cache(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/src/ssl_sock.c:3777,1
    - Dst: ha_memset_s
      Src: /src/haproxy/src/ssl_sock.c:3782,1
    - Dst: istfree
      Src: /src/haproxy/src/ssl_sock.c:3783,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:3785,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:3790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3793
      start: 3771
    functionDepth: 1
    functionLinenumber: 3771
    functionLinenumberEnd: 3793
    functionName: ssl_sock_clear_passphrase_cache
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ha_free
    - ha_memset_s
    - istfree
    - isttest
    linkageType: ''
    returnType: int
    signature: int ssl_sock_clear_passphrase_cache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - string
    - len
    - random
    - random_len
    argTypes:
    - char*
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3812
      start: 3801
    functionDepth: 0
    functionLinenumber: 3801
    functionLinenumberEnd: 3812
    functionName: obfuscate_str
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void obfuscate_str(char *string, int len, uint8_t *random, int random_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: obfuscate_str
      Src: /src/haproxy/src/ssl_sock.c:3816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - string
    - len
    - random
    - random_len
    argTypes:
    - char*
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3817
      start: 3814
    functionDepth: 1
    functionLinenumber: 3814
    functionLinenumberEnd: 3817
    functionName: deobfuscate_str
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - obfuscate_str
    linkageType: ''
    returnType: void
    signature: void deobfuscate_str(char *string, int len, uint8_t *random, int random_len)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:3848,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:3856,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:3857,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:3861,1
    - Dst: ssl_sock_create_passphrase_cache
      Src: /src/haproxy/src/ssl_sock.c:3866,1
    - Dst: istdup
      Src: /src/haproxy/src/ssl_sock.c:3873,1
    - Dst: isttest
      Src: /src/haproxy/src/ssl_sock.c:3875,1
    - Dst: deobfuscate_str
      Src: /src/haproxy/src/ssl_sock.c:3876,1
    - Dst: istptr
      Src: /src/haproxy/src/ssl_sock.c:3876,1
    - Dst: istlen
      Src: /src/haproxy/src/ssl_sock.c:3876,1
    - Dst: strncpy
      Src: /src/haproxy/src/ssl_sock.c:3879,1
    - Dst: istptr
      Src: /src/haproxy/src/ssl_sock.c:3879,1
    - Dst: istlen
      Src: /src/haproxy/src/ssl_sock.c:3880,1
    - Dst: istfree
      Src: /src/haproxy/src/ssl_sock.c:3881,1
    - Dst: MIN
      Src: /src/haproxy/src/ssl_sock.c:3884,1
    - Dst: pipe
      Src: /src/haproxy/src/ssl_sock.c:3892,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:3893,1
    - Dst: fork
      Src: /src/haproxy/src/ssl_sock.c:3897,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:3901,1
    - Dst: dup2
      Src: /src/haproxy/src/ssl_sock.c:3906,1
    - Dst: dup2
      Src: /src/haproxy/src/ssl_sock.c:3907,1
    - Dst: execvp
      Src: /src/haproxy/src/ssl_sock.c:3909,1
    - Dst: exit
      Src: /src/haproxy/src/ssl_sock.c:3910,1
    - Dst: close
      Src: /src/haproxy/src/ssl_sock.c:3915,1
    - Dst: read
      Src: /src/haproxy/src/ssl_sock.c:3918,1
    - Dst: ssl_sock_resize_passphrase_cache
      Src: /src/haproxy/src/ssl_sock.c:3929,1
    - Dst: istdup
      Src: /src/haproxy/src/ssl_sock.c:3932,1
    - Dst: ist2
      Src: /src/haproxy/src/ssl_sock.c:3932,1
    - Dst: isttest
      Src: /src/haproxy/src/ssl_sock.c:3933,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:3934,1
    - Dst: obfuscate_str
      Src: /src/haproxy/src/ssl_sock.c:3937,1
    - Dst: istptr
      Src: /src/haproxy/src/ssl_sock.c:3937,1
    - Dst: istlen
      Src: /src/haproxy/src/ssl_sock.c:3938,1
    - Dst: close
      Src: /src/haproxy/src/ssl_sock.c:3947,1
    - Dst: waitpid
      Src: /src/haproxy/src/ssl_sock.c:3948,1
    - Dst: WEXITSTATUS
      Src: /src/haproxy/src/ssl_sock.c:3949,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:3950,1
    - Dst: WEXITSTATUS
      Src: /src/haproxy/src/ssl_sock.c:3950,1
    - Dst: close
      Src: /src/haproxy/src/ssl_sock.c:3958,1
    - Dst: close
      Src: /src/haproxy/src/ssl_sock.c:3959,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 89
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3962
      start: 3824
    functionDepth: 2
    functionLinenumber: 3824
    functionLinenumberEnd: 3962
    functionName: ssl_sock_passwd_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - exit
    - execvp
    - close
    - istlen
    - ist2
    - ha_free
    - istfree
    - pipe
    - istptr
    - strncpy
    - fork
    - ssl_sock_create_passphrase_cache
    - read
    - deobfuscate_str
    - strdup
    - waitpid
    - ssl_sock_resize_passphrase_cache
    - istdup
    - dup2
    - obfuscate_str
    - MIN
    - ha_alert
    - WEXITSTATUS
    - isttest
    linkageType: ''
    returnType: int
    signature: int ssl_sock_passwd_cb(char *buf, int size, int rwflag, void *userdata)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/ssl_sock.c:3990,1
    - Dst: SSLv23_server_method
      Src: /src/haproxy/src/ssl_sock.c:3990,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:3993,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_sock.c:4001,1
    - Dst: load_echkeys
      Src: /src/haproxy/src/ssl_sock.c:4007,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4009,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:4017,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:4031,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:4050,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4067,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:4079,1
    - Dst: SSL_CTX_clear_options
      Src: /src/haproxy/src/ssl_sock.c:4084,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:4092,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:4093,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/ssl_sock.c:4110,1
    - Dst: SSL_CTX_set_mode
      Src: /src/haproxy/src/ssl_sock.c:4116,1
    - Dst: SSL_CTX_set_timeout
      Src: /src/haproxy/src/ssl_sock.c:4118,1
    - Dst: SSL_CTX_set_select_certificate_cb
      Src: /src/haproxy/src/ssl_sock.c:4122,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/ssl_sock.c:4123,1
    - Dst: SSL_CTX_set_early_data_enabled
      Src: /src/haproxy/src/ssl_sock.c:4125,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/ssl_sock.c:4129,1
    - Dst: SSL_CTX_set_client_hello_cb
      Src: /src/haproxy/src/ssl_sock.c:4131,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/ssl_sock.c:4132,1
    - Dst: SSL_CTX_set_cert_cb
      Src: /src/haproxy/src/ssl_sock.c:4134,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/ssl_sock.c:4137,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/haproxy/src/ssl_sock.c:4139,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 93
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4143
      start: 3966
    functionDepth: 1
    functionLinenumber: 3966
    functionLinenumberEnd: 4143
    functionName: ssl_sock_initial_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ctx_set_version
    - SSL_CTX_set_security_level
    - SSLv23_server_method
    - SSL_CTX_set_client_hello_cb
    - SSL_CTX_set_mode
    - SSL_CTX_set_select_certificate_cb
    - SSL_CTX_new
    - SSL_CTX_set_cert_cb
    - load_echkeys
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_CTX_set_early_data_enabled
    - SSL_CTX_clear_options
    - ha_alert
    - ha_warning
    - SSL_CTX_set_tlsext_servername_arg
    - SSL_CTX_set_options
    - SSL_CTX_set_timeout
    linkageType: ''
    returnType: int
    signature: int ssl_sock_initial_ctx(struct bind_conf *bind_conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sh_ssl_sess_tree_delete
      Src: /src/haproxy/src/ssl_sock.c:4150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - first
    - data
    argTypes:
    - struct shared_block*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4151
      start: 4146
    functionDepth: 1
    functionLinenumber: 4146
    functionLinenumberEnd: 4151
    functionName: sh_ssl_sess_free_blocks
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - sh_ssl_sess_tree_delete
    linkageType: ''
    returnType: void
    signature: void sh_ssl_sess_free_blocks(struct shared_block *first, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sh_ssl_sess
    argTypes:
    - struct sh_ssl_sess_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4158
      start: 4154
    functionDepth: 0
    functionLinenumber: 4154
    functionLinenumberEnd: 4158
    functionName: sh_ssl_sess_first_block
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct shared_block
    signature: struct shared_block *sh_ssl_sess_first_block(struct sh_ssl_sess_hdr
      *sh_ssl_sess)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: shctx_row_reserve_hot
      Src: /src/haproxy/src/ssl_sock.c:4171,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/ssl_sock.c:4177,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:4181,1
    - Dst: sh_ssl_sess_tree_insert
      Src: /src/haproxy/src/ssl_sock.c:4186,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/ssl_sock.c:4191,1
    - Dst: sh_ssl_sess_first_block
      Src: /src/haproxy/src/ssl_sock.c:4195,1
    - Dst: shctx_row_detach
      Src: /src/haproxy/src/ssl_sock.c:4196,1
    - Dst: shctx_row_data_append
      Src: /src/haproxy/src/ssl_sock.c:4200,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/ssl_sock.c:4201,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/ssl_sock.c:4205,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/ssl_sock.c:4207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - s_id
    - data
    - data_len
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4210
      start: 4166
    functionDepth: 1
    functionLinenumber: 4166
    functionLinenumberEnd: 4210
    functionName: sh_ssl_sess_store
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - shctx_row_data_append
    - memcpy
    - shctx_row_reattach
    - sh_ssl_sess_first_block
    - shctx_row_reserve_hot
    - shctx_wrunlock
    - shctx_row_detach
    - sh_ssl_sess_tree_insert
    - shctx_wrlock
    linkageType: ''
    returnType: int
    signature: int sh_ssl_sess_store(unsigned char *s_id, unsigned char *data, int
      data_len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_get_conn
      Src: /src/haproxy/src/ssl_sock.c:4215,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:4225,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:4239,1
    - Dst: i2d_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:4243,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:4244,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:4249,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/ssl_sock.c:4254,1
    - Dst: i2d_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:4264,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:4273,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:4275,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:4277,1
    - Dst: ssl_sock_get_alpn
      Src: /src/haproxy/src/ssl_sock.c:4287,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4292,1
    - Dst: memcmp
      Src: /src/haproxy/src/ssl_sock.c:4293,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:4294,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:4295,1
    - Dst: qc_early_transport_params_cpy
      Src: /src/haproxy/src/ssl_sock.c:4299,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:4300,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:4305,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:4306,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:4308,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:4311,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:4312,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:4313,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:4316,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:4318,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:4320,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4213
    functionDepth: 2
    functionLinenumber: 4213
    functionLinenumberEnd: 4324
    functionName: ssl_sess_new_srv_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - memcmp
    - my_realloc2
    - ssl_sock_get_alpn
    - HA_ATOMIC_LOAD
    - ssl_sock_get_conn
    - memcpy
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_RDUNLOCK
    - ha_free
    - strlen
    - HA_ATOMIC_CAS
    - i2d_SSL_SESSION
    - HA_RWLOCK_WRLOCK
    - qc_early_transport_params_cpy
    - SSL_get_ex_data
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int ssl_sess_new_srv_cb(SSL *ssl, SSL_SESSION *sess)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_id
      Src: /src/haproxy/src/ssl_sock.c:4345,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:4348,1
    - Dst: memset
      Src: /src/haproxy/src/ssl_sock.c:4352,1
    - Dst: SSL_SESSION_set1_id
      Src: /src/haproxy/src/ssl_sock.c:4355,1
    - Dst: SSL_SESSION_set1_id_context
      Src: /src/haproxy/src/ssl_sock.c:4358,1
    - Dst: i2d_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:4361,1
    - Dst: i2d_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:4368,1
    - Dst: sh_ssl_sess_store
      Src: /src/haproxy/src/ssl_sock.c:4372,1
    - Dst: SSL_SESSION_set1_id
      Src: /src/haproxy/src/ssl_sock.c:4375,1
    - Dst: SSL_SESSION_set1_id_context
      Src: /src/haproxy/src/ssl_sock.c:4376,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4379
      start: 4328
    functionDepth: 2
    functionLinenumber: 4328
    functionLinenumberEnd: 4379
    functionName: sh_ssl_sess_new_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - SSL_SESSION_set1_id
    - SSL_SESSION_get_id
    - SSL_SESSION_set1_id_context
    - i2d_SSL_SESSION
    - sh_ssl_sess_store
    - strlen
    linkageType: ''
    returnType: int
    signature: int sh_ssl_sess_new_cb(SSL *ssl, SSL_SESSION *sess)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:4390,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:4397,1
    - Dst: memset
      Src: /src/haproxy/src/ssl_sock.c:4398,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/ssl_sock.c:4403,1
    - Dst: sh_ssl_sess_tree_lookup
      Src: /src/haproxy/src/ssl_sock.c:4406,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/ssl_sock.c:4409,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:4410,1
    - Dst: sh_ssl_sess_first_block
      Src: /src/haproxy/src/ssl_sock.c:4415,1
    - Dst: shctx_row_data_get
      Src: /src/haproxy/src/ssl_sock.c:4417,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/ssl_sock.c:4419,1
    - Dst: d2i_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:4423,1
    - Dst: SSL_SESSION_set1_id
      Src: /src/haproxy/src/ssl_sock.c:4426,1
    - Dst: SSL_SESSION_set1_id_context
      Src: /src/haproxy/src/ssl_sock.c:4427,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 4
    argNames:
    - ssl
    - key
    - key_len
    - do_copy
    argTypes:
    - SSL*
    - __OPENSSL_110_CONST__ unsigned*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4431
      start: 4382
    functionDepth: 1
    functionLinenumber: 4382
    functionLinenumberEnd: 4431
    functionName: sh_ssl_sess_get_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - sh_ssl_sess_tree_lookup
    - _HA_ATOMIC_INC
    - memset
    - memcpy
    - d2i_SSL_SESSION
    - sh_ssl_sess_first_block
    - SSL_SESSION_set1_id
    - strlen
    - shctx_wrunlock
    - SSL_SESSION_set1_id_context
    - shctx_row_data_get
    - shctx_wrlock
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *sh_ssl_sess_get_cb(SSL *ssl, __OPENSSL_110_CONST__ unsigned
      char *key, int key_len, int *do_copy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_id
      Src: /src/haproxy/src/ssl_sock.c:4443,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:4446,1
    - Dst: memset
      Src: /src/haproxy/src/ssl_sock.c:4447,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/ssl_sock.c:4451,1
    - Dst: sh_ssl_sess_tree_lookup
      Src: /src/haproxy/src/ssl_sock.c:4454,1
    - Dst: sh_ssl_sess_tree_delete
      Src: /src/haproxy/src/ssl_sock.c:4457,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/ssl_sock.c:4461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - sess
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4462
      start: 4435
    functionDepth: 1
    functionLinenumber: 4435
    functionLinenumberEnd: 4462
    functionName: sh_ssl_sess_remove_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - sh_ssl_sess_tree_lookup
    - memset
    - memcpy
    - sh_ssl_sess_tree_delete
    - SSL_SESSION_get_id
    - shctx_wrunlock
    - shctx_wrlock
    linkageType: ''
    returnType: void
    signature: void sh_ssl_sess_remove_cb(SSL_CTX *ctx, SSL_SESSION *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/haproxy/src/ssl_sock.c:4469,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4469,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/haproxy/src/ssl_sock.c:4472,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/haproxy/src/ssl_sock.c:4476,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/haproxy/src/ssl_sock.c:4481,1
    - Dst: SSL_CTX_sess_set_get_cb
      Src: /src/haproxy/src/ssl_sock.c:4482,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/haproxy/src/ssl_sock.c:4483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4484
      start: 4467
    functionDepth: 0
    functionLinenumber: 4467
    functionLinenumberEnd: 4484
    functionName: ssl_set_shctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_session_cache_mode
    - SSL_CTX_sess_set_get_cb
    - SSL_CTX_sess_set_new_cb
    - SSL_CTX_sess_set_remove_cb
    - SSL_CTX_set_session_id_context
    - strlen
    linkageType: ''
    returnType: void
    signature: void ssl_set_shctx(SSL_CTX *ctx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: quic_tls_compat_keylog_callback
      Src: /src/haproxy/src/ssl_sock.c:4502,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:4504,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_sock.c:4508,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/ssl_sock.c:4512,1
    - Dst: strncpy
      Src: /src/haproxy/src/ssl_sock.c:4516,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4519,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4519,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4524,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4524,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4529,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4529,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4534,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4534,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4539,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4539,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4544,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4544,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4549,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4549,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4554,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4554,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:4565,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4568
      start: 4495
    functionDepth: 1
    functionLinenumber: 4495
    functionLinenumberEnd: 4568
    functionName: SSL_CTX_keylog
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - strncpy
    - pool_alloc
    - strrchr
    - strncmp
    - pool_free
    - quic_tls_compat_keylog_callback
    - SSL_get_ex_data
    - strlen
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_keylog(const SSL *ssl, const char *line)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_cert_store
      Src: /src/haproxy/src/ssl_sock.c:4586,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4618,1
    - Dst: SSL_CTX_set_verify
      Src: /src/haproxy/src/ssl_sock.c:4635,1
    - Dst: ssl_set_verify_locations_file
      Src: /src/haproxy/src/ssl_sock.c:4642,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4643,1
    - Dst: ssl_set_verify_locations_file
      Src: /src/haproxy/src/ssl_sock.c:4647,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4648,1
    - Dst: SSL_CTX_set_client_CA_list
      Src: /src/haproxy/src/ssl_sock.c:4654,1
    - Dst: SSL_dup_CA_list
      Src: /src/haproxy/src/ssl_sock.c:4654,1
    - Dst: ssl_get_client_ca_file
      Src: /src/haproxy/src/ssl_sock.c:4654,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:4658,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4662,1
    - Dst: ssl_set_cert_crl_file
      Src: /src/haproxy/src/ssl_sock.c:4669,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4670,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:4675,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:4679,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_evp_cb
      Src: /src/haproxy/src/ssl_sock.c:4683,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4684,1
    - Dst: ssl_set_shctx
      Src: /src/haproxy/src/ssl_sock.c:4691,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/haproxy/src/ssl_sock.c:4694,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4695,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/haproxy/src/ssl_sock.c:4703,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4704,1
    - Dst: ssl_get_dh_1024
      Src: /src/haproxy/src/ssl_sock.c:4712,1
    - Dst: ssl_get_dh_2048
      Src: /src/haproxy/src/ssl_sock.c:4714,1
    - Dst: ssl_get_dh_4096
      Src: /src/haproxy/src/ssl_sock.c:4716,1
    - Dst: SSL_CTX_set_info_callback
      Src: /src/haproxy/src/ssl_sock.c:4719,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:4721,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/haproxy/src/ssl_sock.c:4726,1
    - Dst: SSL_CTX_set_next_protos_advertised_cb
      Src: /src/haproxy/src/ssl_sock.c:4736,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/haproxy/src/ssl_sock.c:4745,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/haproxy/src/ssl_sock.c:4750,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4751,1
    - Dst: SSL_CTX_set_ecdh_auto
      Src: /src/haproxy/src/ssl_sock.c:4755,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/haproxy/src/ssl_sock.c:4766,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4767,1
    - Dst: OBJ_sn2nid
      Src: /src/haproxy/src/ssl_sock.c:4781,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/haproxy/src/ssl_sock.c:4782,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4783,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/haproxy/src/ssl_sock.c:4788,1
    - Dst: EC_KEY_free
      Src: /src/haproxy/src/ssl_sock.c:4789,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:4798,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4799,1
    - Dst: SSL_CTX_set1_client_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:4809,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4810,1
    - Dst: quic_tls_compat_init
      Src: /src/haproxy/src/ssl_sock.c:4818,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 142
    argCount: 4
    argNames:
    - bind_conf
    - ssl_conf
    - ctx
    - err
    argTypes:
    - struct bind_conf*
    - struct ssl_bind_conf*
    - SSL_CTX*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4823
      start: 4575
    functionDepth: 3
    functionLinenumber: 4575
    functionLinenumberEnd: 4823
    functionName: ssl_sock_prepare_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_get_dh_2048
    - memprintf
    - SSL_CTX_set_cipher_list
    - SSL_CTX_set1_client_sigalgs_list
    - OBJ_sn2nid
    - SSL_dup_CA_list
    - SSL_CTX_set_keylog_callback
    - ssl_set_cert_crl_file
    - EC_KEY_new_by_curve_name
    - ssl_set_verify_locations_file
    - SSL_CTX_set_tlsext_ticket_key_evp_cb
    - SSL_CTX_set1_curves_list
    - X509_STORE_set_flags
    - SSL_CTX_set_verify
    - SSL_CTX_set_ecdh_auto
    - ssl_get_dh_1024
    - SSL_CTX_set_client_CA_list
    - SSL_CTX_get_cert_store
    - SSL_CTX_set_info_callback
    - quic_tls_compat_init
    - ssl_get_client_ca_file
    - ERR_clear_error
    - SSL_CTX_set_msg_callback
    - EC_KEY_free
    - ssl_set_shctx
    - SSL_CTX_set_alpn_select_cb
    - SSL_CTX_set1_sigalgs_list
    - SSL_CTX_set_ciphersuites
    - ssl_get_dh_4096
    - SSL_CTX_set_next_protos_advertised_cb
    - SSL_CTX_set_tmp_ecdh
    linkageType: ''
    returnType: int
    signature: int ssl_sock_prepare_ctx(struct bind_conf *bind_conf, struct ssl_bind_conf
      *ssl_conf, SSL_CTX *ctx, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_prepare_ctx
      Src: /src/haproxy/src/ssl_sock.c:4840,1
    - Dst: ckch_inst_add_cafile_link
      Src: /src/haproxy/src/ssl_sock.c:4842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - bind_conf
    - ssl_conf
    - ctx
    - ckch_inst
    - err
    argTypes:
    - struct bind_conf*
    - struct ssl_bind_conf*
    - SSL_CTX*
    - struct ckch_inst*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4845
      start: 4835
    functionDepth: 4
    functionLinenumber: 4835
    functionLinenumberEnd: 4845
    functionName: ssl_sock_prep_ctx_and_inst
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ckch_inst_add_cafile_link
    - ssl_sock_prepare_ctx
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_prep_ctx_and_inst(struct bind_conf *bind_conf, struct
      ssl_bind_conf *ssl_conf,\n\t\t\t       SSL_CTX *ctx, struct ckch_inst *ckch_inst,
      char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/haproxy/src/ssl_sock.c:4853,1
    - Dst: strchr
      Src: /src/haproxy/src/ssl_sock.c:4882,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/ssl_sock.c:4884,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/ssl_sock.c:4896,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/ssl_sock.c:4897,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - pattern
    - hostname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4901
      start: 4847
    functionDepth: 0
    functionLinenumber: 4847
    functionLinenumberEnd: 4901
    functionName: ssl_sock_srv_hostcheck
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - strcasecmp
    - strchr
    linkageType: ''
    returnType: int
    signature: int ssl_sock_srv_hostcheck(const char *pattern, const char *hostname)
  - BBCount: 174
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:4913,1
    - Dst: X509_STORE_CTX_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:4921,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/haproxy/src/ssl_sock.c:4921,1
    - Dst: ssl_sock_get_conn
      Src: /src/haproxy/src/ssl_sock.c:4922,1
    - Dst: __conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:4929,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_sock.c:4937,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:4940,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/haproxy/src/ssl_sock.c:4947,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/haproxy/src/ssl_sock.c:4955,1
    - Dst: X509_get_ext_d2i
      Src: /src/haproxy/src/ssl_sock.c:4960,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/haproxy/src/ssl_sock.c:4962,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/haproxy/src/ssl_sock.c:4963,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_sock.c:4966,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_sock.c:4968,1
    - Dst: ssl_sock_srv_hostcheck
      Src: /src/haproxy/src/ssl_sock.c:4970,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ssl_sock.c:4971,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/haproxy/src/ssl_sock.c:4975,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:4978,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/haproxy/src/ssl_sock.c:4980,1
    - Dst: X509_NAME_get_entry
      Src: /src/haproxy/src/ssl_sock.c:4981,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/haproxy/src/ssl_sock.c:4983,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_sock.c:4984,1
    - Dst: ssl_sock_srv_hostcheck
      Src: /src/haproxy/src/ssl_sock.c:4985,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ssl_sock.c:4986,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:5008,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5009,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:5016,1
    - Dst: ssl_sock_load_srv_cert
      Src: /src/haproxy/src/ssl_sock.c:5025,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5028,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5030,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5035,1
    - Dst: ssl_sock_new_ssl_ctx
      Src: /src/haproxy/src/ssl_sock.c:5043,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:5043,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5045,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_sock.c:5050,1
    - Dst: ssl_sock_prep_srv_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:5055,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/haproxy/src/ssl_sock.c:5089,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:5092,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5096,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5115,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/ssl_sock.c:5117,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5132,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/ssl_sock.c:5133,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:5141,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:5148,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:5149,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/ssl_sock.c:5168,1
    - Dst: SSL_CTX_set_mode
      Src: /src/haproxy/src/ssl_sock.c:5174,1
    - Dst: SSL_CTX_set_verify
      Src: /src/haproxy/src/ssl_sock.c:5186,1
    - Dst: ssl_set_verify_locations_file
      Src: /src/haproxy/src/ssl_sock.c:5191,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5192,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:5198,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5203,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5205,1
    - Dst: ssl_set_cert_crl_file
      Src: /src/haproxy/src/ssl_sock.c:5210,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5211,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:5216,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/haproxy/src/ssl_sock.c:5222,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/haproxy/src/ssl_sock.c:5223,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/haproxy/src/ssl_sock.c:5225,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5226,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:5232,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/haproxy/src/ssl_sock.c:5238,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/haproxy/src/ssl_sock.c:5243,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5244,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/haproxy/src/ssl_sock.c:5251,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/haproxy/src/ssl_sock.c:5255,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:5261,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5262,1
    - Dst: SSL_CTX_set1_client_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:5271,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5272,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/haproxy/src/ssl_sock.c:5282,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5283,1
    - Dst: ssl_sock_prepare_srv_ssl_ctx
      Src: /src/haproxy/src/ssl_sock.c:5308,1
    - Dst: ckch_inst_add_cafile_link
      Src: /src/haproxy/src/ssl_sock.c:5310,1
    - Dst: xprt_get
      Src: /src/haproxy/src/ssl_sock.c:5324,1
    - Dst: ssl_quic_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:5325,1
    - Dst: ssl_sock_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:5327,1
    - Dst: ssl_sock_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:5332,1
    - Dst: ssl_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:5353,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:5357,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5360,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5362,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:5365,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5367,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5370,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5372,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:5375,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5377,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5381,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5383,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5387,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5403,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5403,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5404,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5411,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5411,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5413,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5420,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_sock.c:5435,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_sock.c:5436,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:5439,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5450,1
    - Dst: ssl_sock_choose_sni_ctx
      Src: /src/haproxy/src/ssl_sock.c:5461,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5463,1
    - Dst: shctx_init
      Src: /src/haproxy/src/ssl_sock.c:5470,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5475,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5477,1
    - Dst: ssl_sock_prepare_all_ctx
      Src: /src/haproxy/src/ssl_sock.c:5488,1
    - Dst: ssl_sock_gencert_load_ca
      Src: /src/haproxy/src/ssl_sock.c:5492,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5503,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5506,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5512,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5513,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5517,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5521,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5522,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5523,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5524,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5526,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/ssl_sock.c:5527,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5530,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5532,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_sock.c:5535,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5546,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5548,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5549,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_sock.c:5550,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5551,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5552,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5553,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5557,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5559,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5560,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_sock.c:5561,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5562,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5563,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5564,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5568,1
    - Dst: crtlist_deinit
      Src: /src/haproxy/src/ssl_sock.c:5575,1
    - Dst: ckch_deinit
      Src: /src/haproxy/src/ssl_sock.c:5576,1
    - Dst: REGISTER_POST_DEINIT
      Src: /src/haproxy/src/ssl_sock.c:5578,1
    - Dst: ssl_sock_gencert_free_ca
      Src: /src/haproxy/src/ssl_sock.c:5584,1
    - Dst: ssl_sock_free_all_ctx
      Src: /src/haproxy/src/ssl_sock.c:5586,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_sock.c:5587,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5588,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5589,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5591,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5592,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5593,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5594,1
    - Dst: SSL_new
      Src: /src/haproxy/src/ssl_sock.c:5618,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5623,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_sock.c:5627,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:5629,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5634,1
    - Dst: BIO_set_data
      Src: /src/haproxy/src/ssl_sock.c:5638,1
    - Dst: SSL_set_bio
      Src: /src/haproxy/src/ssl_sock.c:5639,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:5642,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:5643,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5648,1
    - Dst: struct ssl_sock_ctx*::xprt::start
      Src: /src/haproxy/src/ssl_sock.c:5669,1
    - Dst: setsockopt
      Src: /src/haproxy/src/ssl_sock.c:5678,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:5681,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:5701,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/ssl_sock.c:5701,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5723,1
    - Dst: d2i_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:5741,1
    - Dst: SSL_set_session
      Src: /src/haproxy/src/ssl_sock.c:5743,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:5744,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:5746,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5747,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:5748,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5749,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5750,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5753,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:5764,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5767,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5773,1
    - Dst: d2i_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:5779,1
    - Dst: SSL_set_session
      Src: /src/haproxy/src/ssl_sock.c:5781,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:5782,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5783,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5787,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5791,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:5805,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/ssl_sock.c:5811,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5814,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/ssl_sock.c:5817,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:5820,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5821,1
    - Dst: increment_sslconn
      Src: /src/haproxy/src/ssl_sock.c:5843,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5846,1
    - Dst: xprt_get
      Src: /src/haproxy/src/ssl_sock.c:5853,1
    - Dst: struct ssl_sock_ctx*::xprt::init
      Src: /src/haproxy/src/ssl_sock.c:5855,1
    - Dst: objt_server
      Src: /src/haproxy/src/ssl_sock.c:5861,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:5862,1
    - Dst: ssl_bio_and_sess_init
      Src: /src/haproxy/src/ssl_sock.c:5864,1
    - Dst: SSL_set_connect_state
      Src: /src/haproxy/src/ssl_sock.c:5868,1
    - Dst: SSL_set_renegotiate_mode
      Src: /src/haproxy/src/ssl_sock.c:5872,1
    - Dst: ssl_sock_srv_try_reuse_sess
      Src: /src/haproxy/src/ssl_sock.c:5874,1
    - Dst: SSL_set_options
      Src: /src/haproxy/src/ssl_sock.c:5879,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5887,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:5890,1
    - Dst: objt_listener
      Src: /src/haproxy/src/ssl_sock.c:5893,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/ssl_sock.c:5894,1
    - Dst: ssl_bio_and_sess_init
      Src: /src/haproxy/src/ssl_sock.c:5896,1
    - Dst: b_alloc
      Src: /src/haproxy/src/ssl_sock.c:5902,1
    - Dst: SSL_set_max_early_data
      Src: /src/haproxy/src/ssl_sock.c:5904,1
    - Dst: b_is_null
      Src: /src/haproxy/src/ssl_sock.c:5908,1
    - Dst: SSL_set_accept_state
      Src: /src/haproxy/src/ssl_sock.c:5914,1
    - Dst: SSL_set_options
      Src: /src/haproxy/src/ssl_sock.c:5926,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5931,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:5934,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/ssl_sock.c:5941,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/ssl_sock.c:5943,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:5944,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5945,1
    - Dst: SSL_session_reused
      Src: /src/haproxy/src/ssl_sock.c:5958,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/ssl_sock.c:5960,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/ssl_sock.c:5965,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5971,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5972,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5976,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5977,1
    - Dst: ssl_sock_get_stats_counters
      Src: /src/haproxy/src/ssl_sock.c:5990,1
    - Dst: objt_server
      Src: /src/haproxy/src/ssl_sock.c:5993,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:5994,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5999,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:6000,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:6001,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:6002,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:6003,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:6007,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:6008,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/ssl_sock.c:6013,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:6029,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:6036,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/ssl_sock.c:6038,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6046,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6055,1
    - Dst: getsockopt
      Src: /src/haproxy/src/ssl_sock.c:6059,1
    - Dst: SSL_read
      Src: /src/haproxy/src/ssl_sock.c:6073,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:6073,1
    - Dst: b_room
      Src: /src/haproxy/src/ssl_sock.c:6074,1
    - Dst: SSL_in_early_data
      Src: /src/haproxy/src/ssl_sock.c:6076,1
    - Dst: b_add
      Src: /src/haproxy/src/ssl_sock.c:6078,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/ssl_sock.c:6080,1
    - Dst: SSL_in_init
      Src: /src/haproxy/src/ssl_sock.c:6082,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:6084,1
    - Dst: b_free
      Src: /src/haproxy/src/ssl_sock.c:6085,1
    - Dst: SSL_read_early_data
      Src: /src/haproxy/src/ssl_sock.c:6093,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:6094,1
    - Dst: b_room
      Src: /src/haproxy/src/ssl_sock.c:6094,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6097,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6101,1
    - Dst: b_add
      Src: /src/haproxy/src/ssl_sock.c:6103,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:6107,1
    - Dst: b_free
      Src: /src/haproxy/src/ssl_sock.c:6108,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:6109,1
    - Dst: SSL_renegotiate_pending
      Src: /src/haproxy/src/ssl_sock.c:6122,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:6125,1
    - Dst: SSL_peek
      Src: /src/haproxy/src/ssl_sock.c:6127,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/ssl_sock.c:6130,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:6135,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6136,1
    - Dst: SSL_renegotiate_pending
      Src: /src/haproxy/src/ssl_sock.c:6143,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6145,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:6150,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6151,1
    - Dst: ssl_async_process_fds
      Src: /src/haproxy/src/ssl_sock.c:6156,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6157,1
    - Dst: SSL_get_state
      Src: /src/haproxy/src/ssl_sock.c:6173,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6201,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/ssl_sock.c:6211,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6215,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:6219,1
    - Dst: SSL_do_handshake
      Src: /src/haproxy/src/ssl_sock.c:6224,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/ssl_sock.c:6228,1
    - Dst: ERR_peek_error
      Src: /src/haproxy/src/ssl_sock.c:6231,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:6236,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6237,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:6243,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6245,1
    - Dst: ssl_async_process_fds
      Src: /src/haproxy/src/ssl_sock.c:6250,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6251,1
    - Dst: SSL_get_state
      Src: /src/haproxy/src/ssl_sock.c:6267,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6295,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/ssl_sock.c:6301,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6303,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6309,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/ssl_sock.c:6320,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6324,1
    CyclomaticComplexity: 252
    EdgeCount: 252
    ICount: 796
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6327
      start: 4903
    functionDepth: 6
    functionLinenumber: 4903
    functionLinenumberEnd: 6327
    functionName: ssl_sock_srv_verifycbk
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ctx_set_version
    - SSL_read_early_data
    - SSL_CTX_set_security_level
    - proxy_type_str
    - ssl_quic_initial_ctx
    - SSL_CTX_set1_client_sigalgs_list
    - HA_ATOMIC_LOAD
    - _HA_ATOMIC_CAS
    - ckch_deinit
    - ssl_sock_prep_ctx_and_inst
    - pool_alloc
    - setsockopt
    - container_of
    - getsockopt
    - b_tail
    - SSL_free
    - HA_ATOMIC_CAS
    - SSL_set_accept_state
    - SSL_renegotiate_pending
    - ERR_peek_error
    - ssl_sock_srv_try_reuse_sess
    - __objt_listener
    - SSL_session_reused
    - ssl_sock_initial_ctx
    - ebmb_delete
    - LIST_DELETE
    - pool_gc
    - d2i_SSL_SESSION
    - SSL_read
    - ssl_sock_prepare_srv_ssl_ctx
    - ha_warning
    - BIO_set_data
    - X509_get_subject_name
    - SSL_new
    - REGISTER_POST_DEINIT
    - SSL_set_ex_data
    - __conn_get_ssl_sock_ctx
    - TRACE_ENTER
    - b_room
    - SSL_CTX_set_keylog_callback
    - ebmb_next_dup
    - BIO_new
    - ssl_sock_srv_hostcheck
    - ckch_inst_free
    - objt_listener
    - sk_GENERAL_NAME_num
    - OPENSSL_free
    - SSL_CTX_set_mode
    - TRACE_DEVEL
    - tasklet_new
    - ebmb_next
    - X509_STORE_set_flags
    - SSL_CTX_set_verify
    - SSL_set_bio
    - struct ssl_sock_ctx*::xprt::init
    - _HA_ATOMIC_DEC
    - pool_free
    - b_alloc
    - SSL_set_connect_state
    - calloc
    - SSL_SESSION_free
    - struct ssl_sock_ctx*::xprt::subscribe
    - conn_report_term_evt
    - X509_get_ext_d2i
    - b_data
    - ebmb_first
    - SSL_CTX_set_msg_callback
    - SSL_set_session
    - update_freq_ctr
    - SSL_CTX_set_options
    - SSL_set_renegotiate_mode
    - X509_STORE_CTX_get_current_cert
    - struct ssl_sock_ctx*::xprt::start
    - ssl_initial_ctx
    - BUG_ON
    - shctx_init
    - ha_alert
    - SSL_get_error
    - tasklet_free
    - HA_RWLOCK_RDLOCK
    - SSL_CTX_set_session_cache_mode
    - ssl_bio_and_sess_init
    - X509_NAME_ENTRY_get_data
    - SSL_CTX_set_cipher_list
    - HA_RWLOCK_WRUNLOCK
    - ebmb_entry
    - increment_sslconn
    - ssl_sock_prepare_all_ctx
    - STACK_OF
    - objt_server
    - b_is_null
    - eb_is_empty
    - X509_STORE_CTX_get_error_depth
    - ssl_sock_get_stats_counters
    - conn_get_ssl_sock_ctx
    - ssl_sock_free_all_ctx
    - TRACE_LEAVE
    - ssl_sock_gencert_load_ca
    - SSL_in_init
    - b_free
    - b_add
    - SSL_in_early_data
    - SSL_get_state
    - __objt_server
    - TRACE_STATE
    - SSL_set_options
    - X509_NAME_get_entry
    - HA_RWLOCK_RDUNLOCK
    - SSL_set_max_early_data
    - SSL_CTX_free
    - conn_ctrl_ready
    - srv_is_quic
    - free
    - ssl_set_cert_crl_file
    - HA_ATOMIC_INC
    - sk_GENERAL_NAME_value
    - ssl_sock_load_srv_cert
    - ssl_set_verify_locations_file
    - ha_free
    - SSL_CTX_set_next_proto_select_cb
    - ckch_inst_add_cafile_link
    - ebst_lookup
    - SSL_CTX_set1_curves_list
    - ssl_sock_gencert_free_ca
    - X509_STORE_CTX_get_ex_data
    - crtlist_deinit
    - SSL_get_servername
    - SSL_CTX_get_cert_store
    - ssl_sock_prep_srv_ctx_and_inst
    - ssl_sock_choose_sni_ctx
    - ssl_sock_new_ssl_ctx
    - TRACE_ERROR
    - ssl_sock_free_ssl_conf
    - sk_GENERAL_NAME_pop_free
    - tasklet_wakeup
    - X509_NAME_get_index_by_NID
    - SSL_CTX_sess_set_new_cb
    - __ha_cpu_relax
    - SSL_peek
    - HA_RWLOCK_WRLOCK
    - SSL_do_handshake
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - SSL_CTX_set_alpn_protos
    - release_sample_expr
    - _HA_ATOMIC_INC
    - SSL_CTX_set1_sigalgs_list
    - ssl_sock_get_conn
    - SSL_CTX_set_ciphersuites
    - xprt_get
    - ASN1_STRING_to_UTF8
    - conn_ctrl_drain
    - ssl_async_process_fds
    linkageType: ''
    returnType: int
    signature: int ssl_sock_srv_verifycbk(int ok, X509_STORE_CTX *ctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:5008,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5009,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:5016,1
    - Dst: ssl_sock_load_srv_cert
      Src: /src/haproxy/src/ssl_sock.c:5025,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5028,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5030,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5035,1
    - Dst: ssl_sock_new_ssl_ctx
      Src: /src/haproxy/src/ssl_sock.c:5043,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:5043,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5045,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_sock.c:5050,1
    - Dst: ssl_sock_prep_srv_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:5055,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5058
      start: 4997
    functionDepth: 6
    functionLinenumber: 4997
    functionLinenumberEnd: 5058
    functionName: ssl_sock_prepare_srv_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_sock_prep_srv_ctx_and_inst
    - ssl_sock_load_srv_cert
    - SSL_CTX_set_security_level
    - ssl_sock_new_ssl_ctx
    - ha_free
    - calloc
    - srv_is_quic
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int ssl_sock_prepare_srv_ctx(struct server *srv)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_cert_store
      Src: /src/haproxy/src/ssl_sock.c:5089,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:5092,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5096,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5115,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/ssl_sock.c:5117,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5132,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/ssl_sock.c:5133,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:5141,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:5148,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:5149,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/ssl_sock.c:5168,1
    - Dst: SSL_CTX_set_mode
      Src: /src/haproxy/src/ssl_sock.c:5174,1
    - Dst: SSL_CTX_set_verify
      Src: /src/haproxy/src/ssl_sock.c:5186,1
    - Dst: ssl_set_verify_locations_file
      Src: /src/haproxy/src/ssl_sock.c:5191,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5192,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:5198,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5203,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5205,1
    - Dst: ssl_set_cert_crl_file
      Src: /src/haproxy/src/ssl_sock.c:5210,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5211,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:5216,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/haproxy/src/ssl_sock.c:5222,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/haproxy/src/ssl_sock.c:5223,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/haproxy/src/ssl_sock.c:5225,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5226,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:5232,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/haproxy/src/ssl_sock.c:5238,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/haproxy/src/ssl_sock.c:5243,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5244,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/haproxy/src/ssl_sock.c:5251,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/haproxy/src/ssl_sock.c:5255,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:5261,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5262,1
    - Dst: SSL_CTX_set1_client_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:5271,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5272,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/haproxy/src/ssl_sock.c:5282,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5283,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 125
    argCount: 2
    argNames:
    - srv
    - ctx
    argTypes:
    - struct server*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5291
      start: 5063
    functionDepth: 3
    functionLinenumber: 5063
    functionLinenumberEnd: 5291
    functionName: ssl_sock_prepare_srv_ssl_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - ctx_set_version
    - SSL_CTX_set_session_cache_mode
    - proxy_type_str
    - SSL_CTX_set_cipher_list
    - SSL_CTX_set1_client_sigalgs_list
    - srv_is_quic
    - SSL_CTX_set_keylog_callback
    - ssl_set_cert_crl_file
    - ssl_set_verify_locations_file
    - SSL_CTX_set_mode
    - SSL_CTX_set_next_proto_select_cb
    - SSL_CTX_set1_curves_list
    - X509_STORE_set_flags
    - SSL_CTX_set_verify
    - SSL_CTX_get_cert_store
    - SSL_CTX_sess_set_new_cb
    - SSL_CTX_set_msg_callback
    - SSL_CTX_set_options
    - SSL_CTX_set_alpn_protos
    - SSL_CTX_set1_sigalgs_list
    - SSL_CTX_set_ciphersuites
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int ssl_sock_prepare_srv_ssl_ctx(const struct server *srv, SSL_CTX
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_prepare_srv_ssl_ctx
      Src: /src/haproxy/src/ssl_sock.c:5308,1
    - Dst: ckch_inst_add_cafile_link
      Src: /src/haproxy/src/ssl_sock.c:5310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - srv
    - ctx
    - ckch_inst
    argTypes:
    - struct server*
    - SSL_CTX*
    - struct ckch_inst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5313
      start: 5303
    functionDepth: 4
    functionLinenumber: 5303
    functionLinenumberEnd: 5313
    functionName: ssl_sock_prep_srv_ctx_and_inst
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 2
    functionsReached:
    - ckch_inst_add_cafile_link
    - ssl_sock_prepare_srv_ssl_ctx
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_prep_srv_ctx_and_inst(const struct server *srv, SSL_CTX
      *ctx,\n\t\t\t\t   struct ckch_inst *ckch_inst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xprt_get
      Src: /src/haproxy/src/ssl_sock.c:5324,1
    - Dst: ssl_quic_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:5325,1
    - Dst: ssl_sock_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:5327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5328
      start: 5322
    functionDepth: 2
    functionLinenumber: 5322
    functionLinenumberEnd: 5328
    functionName: ssl_initial_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - ssl_sock_initial_ctx
    - xprt_get
    - ssl_quic_initial_ctx
    linkageType: ''
    returnType: int
    signature: int ssl_initial_ctx(struct bind_conf *bind_conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:5332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5333
      start: 5330
    functionDepth: 2
    functionLinenumber: 5330
    functionLinenumberEnd: 5333
    functionName: ssl_initial_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - ssl_sock_initial_ctx
    linkageType: ''
    returnType: int
    signature: int ssl_initial_ctx(struct bind_conf *bind_conf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:5353,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:5357,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5360,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5362,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:5365,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5367,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5370,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5372,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:5375,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5377,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5381,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5383,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5387,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5389
      start: 5340
    functionDepth: 5
    functionLinenumber: 5340
    functionLinenumberEnd: 5389
    functionName: ssl_sock_prepare_all_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - ssl_sock_prep_ctx_and_inst
    - ssl_initial_ctx
    - free
    - ebmb_entry
    - ebmb_next
    - ebmb_first
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int ssl_sock_prepare_all_ctx(struct bind_conf *bind_conf)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5403,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5403,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5404,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5411,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5411,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5413,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5420,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_sock.c:5435,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_sock.c:5436,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:5439,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5450,1
    - Dst: ssl_sock_choose_sni_ctx
      Src: /src/haproxy/src/ssl_sock.c:5461,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5463,1
    - Dst: shctx_init
      Src: /src/haproxy/src/ssl_sock.c:5470,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5475,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5477,1
    - Dst: ssl_sock_prepare_all_ctx
      Src: /src/haproxy/src/ssl_sock.c:5488,1
    - Dst: ssl_sock_gencert_load_ca
      Src: /src/haproxy/src/ssl_sock.c:5492,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5496
      start: 5395
    functionDepth: 6
    functionLinenumber: 5395
    functionLinenumberEnd: 5496
    functionName: ssl_sock_prepare_bind_conf
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_sock_choose_sni_ctx
    - eb_is_empty
    - shctx_init
    - ssl_sock_gencert_load_ca
    - ebst_lookup
    - container_of
    - ebmb_next_dup
    - ha_alert
    - ssl_sock_prepare_all_ctx
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int ssl_sock_prepare_bind_conf(struct bind_conf *bind_conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5503,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5506,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5512,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5513,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5517,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5521,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5522,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5523,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5524,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5526,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/ssl_sock.c:5527,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5530,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5532,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_sock.c:5535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5536
      start: 5500
    functionDepth: 1
    functionLinenumber: 5500
    functionLinenumberEnd: 5536
    functionName: ssl_sock_free_srv_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ha_free
    - ckch_inst_free
    - SSL_CTX_free
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void ssl_sock_free_srv_ctx(struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5546,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5548,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5549,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_sock.c:5550,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5551,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5552,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5553,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5557,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5559,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5560,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_sock.c:5561,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5562,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5563,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5564,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5570
      start: 5541
    functionDepth: 1
    functionLinenumber: 5541
    functionLinenumberEnd: 5570
    functionName: ssl_sock_free_all_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - SSL_CTX_free
    - free
    - ebmb_entry
    - ebmb_next
    - ebmb_first
    - ebmb_delete
    linkageType: ''
    returnType: void
    signature: void ssl_sock_free_all_ctx(struct bind_conf *bind_conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crtlist_deinit
      Src: /src/haproxy/src/ssl_sock.c:5575,1
    - Dst: ckch_deinit
      Src: /src/haproxy/src/ssl_sock.c:5576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5577
      start: 5573
    functionDepth: 1
    functionLinenumber: 5573
    functionLinenumberEnd: 5577
    functionName: ssl_sock_deinit
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ckch_deinit
    - crtlist_deinit
    linkageType: ''
    returnType: void
    signature: void ssl_sock_deinit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_gencert_free_ca
      Src: /src/haproxy/src/ssl_sock.c:5584,1
    - Dst: ssl_sock_free_all_ctx
      Src: /src/haproxy/src/ssl_sock.c:5586,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_sock.c:5587,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5588,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5589,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5591,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5592,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5593,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5599
      start: 5581
    functionDepth: 2
    functionLinenumber: 5581
    functionLinenumberEnd: 5599
    functionName: ssl_sock_destroy_bind_conf
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - ssl_sock_free_all_ctx
    - ssl_sock_free_ssl_conf
    - free
    - ssl_sock_gencert_free_ca
    linkageType: ''
    returnType: void
    signature: void ssl_sock_destroy_bind_conf(struct bind_conf *bind_conf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/haproxy/src/ssl_sock.c:5618,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5623,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_sock.c:5627,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:5629,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5634,1
    - Dst: BIO_set_data
      Src: /src/haproxy/src/ssl_sock.c:5638,1
    - Dst: SSL_set_bio
      Src: /src/haproxy/src/ssl_sock.c:5639,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:5642,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:5643,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5648,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 6
    argNames:
    - conn
    - ssl_ctx
    - ssl
    - bio
    - bio_meth
    - ctx
    argTypes:
    - struct connection*
    - SSL_CTX*
    - SSL**
    - BIO**
    - BIO_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5657
      start: 5611
    functionDepth: 1
    functionLinenumber: 5611
    functionLinenumberEnd: 5657
    functionName: ssl_bio_and_sess_init
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - SSL_new
    - pool_gc
    - SSL_set_ex_data
    - SSL_free
    - BIO_new
    - SSL_set_bio
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: "int ssl_bio_and_sess_init(struct connection *conn, SSL_CTX *ssl_ctx,\n
      \                         SSL **ssl, BIO **bio, BIO_METHOD *bio_meth, void *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct ssl_sock_ctx*::xprt::start
      Src: /src/haproxy/src/ssl_sock.c:5669,1
    - Dst: setsockopt
      Src: /src/haproxy/src/ssl_sock.c:5678,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:5681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5684
      start: 5662
    functionDepth: 1
    functionLinenumber: 5662
    functionLinenumberEnd: 5684
    functionName: ssl_sock_start
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - struct ssl_sock_ctx*::xprt::start
    - setsockopt
    - tasklet_wakeup
    linkageType: ''
    returnType: int
    signature: int ssl_sock_start(struct connection *conn, void *xprt_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:5701,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/ssl_sock.c:5701,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5705
      start: 5687
    functionDepth: 1
    functionLinenumber: 5687
    functionLinenumberEnd: 5705
    functionName: increment_sslconn
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - __ha_cpu_relax
    - _HA_ATOMIC_CAS
    linkageType: ''
    returnType: int
    signature: int increment_sslconn()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5723,1
    - Dst: d2i_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:5741,1
    - Dst: SSL_set_session
      Src: /src/haproxy/src/ssl_sock.c:5743,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:5744,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:5746,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5747,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:5748,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5749,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5750,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5753,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:5764,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5767,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5773,1
    - Dst: d2i_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:5779,1
    - Dst: SSL_set_session
      Src: /src/haproxy/src/ssl_sock.c:5781,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:5782,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5783,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5787,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5791,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - ctx
    - srv
    argTypes:
    - struct ssl_sock_ctx*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5792
      start: 5710
    functionDepth: 1
    functionLinenumber: 5710
    functionLinenumberEnd: 5792
    functionName: ssl_sock_srv_try_reuse_sess
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_LOAD
    - HA_RWLOCK_WRUNLOCK
    - ha_free
    - d2i_SSL_SESSION
    - HA_RWLOCK_RDUNLOCK
    - SSL_SESSION_free
    - HA_ATOMIC_CAS
    - HA_RWLOCK_WRLOCK
    - SSL_set_session
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void ssl_sock_srv_try_reuse_sess(struct ssl_sock_ctx *ctx, struct server
      *srv)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:5805,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/ssl_sock.c:5811,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5814,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/ssl_sock.c:5817,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:5820,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5821,1
    - Dst: increment_sslconn
      Src: /src/haproxy/src/ssl_sock.c:5843,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5846,1
    - Dst: xprt_get
      Src: /src/haproxy/src/ssl_sock.c:5853,1
    - Dst: struct ssl_sock_ctx*::xprt::init
      Src: /src/haproxy/src/ssl_sock.c:5855,1
    - Dst: objt_server
      Src: /src/haproxy/src/ssl_sock.c:5861,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:5862,1
    - Dst: ssl_bio_and_sess_init
      Src: /src/haproxy/src/ssl_sock.c:5864,1
    - Dst: SSL_set_connect_state
      Src: /src/haproxy/src/ssl_sock.c:5868,1
    - Dst: SSL_set_renegotiate_mode
      Src: /src/haproxy/src/ssl_sock.c:5872,1
    - Dst: ssl_sock_srv_try_reuse_sess
      Src: /src/haproxy/src/ssl_sock.c:5874,1
    - Dst: SSL_set_options
      Src: /src/haproxy/src/ssl_sock.c:5879,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5887,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:5890,1
    - Dst: objt_listener
      Src: /src/haproxy/src/ssl_sock.c:5893,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/ssl_sock.c:5894,1
    - Dst: ssl_bio_and_sess_init
      Src: /src/haproxy/src/ssl_sock.c:5896,1
    - Dst: b_alloc
      Src: /src/haproxy/src/ssl_sock.c:5902,1
    - Dst: SSL_set_max_early_data
      Src: /src/haproxy/src/ssl_sock.c:5904,1
    - Dst: b_is_null
      Src: /src/haproxy/src/ssl_sock.c:5908,1
    - Dst: SSL_set_accept_state
      Src: /src/haproxy/src/ssl_sock.c:5914,1
    - Dst: SSL_set_options
      Src: /src/haproxy/src/ssl_sock.c:5926,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5931,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:5934,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/ssl_sock.c:5941,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/ssl_sock.c:5943,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:5944,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5945,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 93
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5947
      start: 5800
    functionDepth: 3
    functionLinenumber: 5800
    functionLinenumberEnd: 5947
    functionName: ssl_sock_init
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_bio_and_sess_init
    - TRACE_ENTER
    - increment_sslconn
    - objt_server
    - objt_listener
    - b_is_null
    - pool_alloc
    - TRACE_DEVEL
    - tasklet_new
    - struct ssl_sock_ctx*::xprt::init
    - _HA_ATOMIC_DEC
    - pool_free
    - b_alloc
    - SSL_set_connect_state
    - TRACE_LEAVE
    - TRACE_ERROR
    - SSL_set_accept_state
    - ssl_sock_srv_try_reuse_sess
    - __objt_listener
    - SSL_set_renegotiate_mode
    - __objt_server
    - _HA_ATOMIC_INC
    - xprt_get
    - SSL_set_options
    - tasklet_free
    - SSL_set_max_early_data
    linkageType: ''
    returnType: int
    signature: int ssl_sock_init(struct connection *conn, void **xprt_ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_session_reused
      Src: /src/haproxy/src/ssl_sock.c:5958,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/ssl_sock.c:5960,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/ssl_sock.c:5965,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5971,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5972,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5976,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5977,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - ssl
    - counters
    - counters_px
    - backend
    argTypes:
    - SSL*
    - struct ssl_counters*
    - struct ssl_counters*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5979
      start: 5953
    functionDepth: 1
    functionLinenumber: 5953
    functionLinenumberEnd: 5979
    functionName: ssl_sock_update_counters
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - update_freq_ctr
    - SSL_session_reused
    linkageType: ''
    returnType: void
    signature: "void ssl_sock_update_counters(SSL *ssl,\n                              struct
      ssl_counters *counters,\n                              struct ssl_counters *counters_px,\n
      \                             int backend)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_get_stats_counters
      Src: /src/haproxy/src/ssl_sock.c:5990,1
    - Dst: objt_server
      Src: /src/haproxy/src/ssl_sock.c:5993,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:5994,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5999,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:6000,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:6001,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:6002,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:6003,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:6007,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:6008,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/ssl_sock.c:6013,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6019
      start: 5984
    functionDepth: 1
    functionLinenumber: 5984
    functionLinenumberEnd: 6019
    functionName: ssl_sock_handle_hs_error
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_RDUNLOCK
    - ha_free
    - conn_report_term_evt
    - ssl_sock_get_stats_counters
    - HA_RWLOCK_WRLOCK
    - HA_ATOMIC_INC
    - objt_server
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void ssl_sock_handle_hs_error(struct connection *conn)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:6029,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:6036,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/ssl_sock.c:6038,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6046,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6055,1
    - Dst: getsockopt
      Src: /src/haproxy/src/ssl_sock.c:6059,1
    - Dst: SSL_read
      Src: /src/haproxy/src/ssl_sock.c:6073,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:6073,1
    - Dst: b_room
      Src: /src/haproxy/src/ssl_sock.c:6074,1
    - Dst: SSL_in_early_data
      Src: /src/haproxy/src/ssl_sock.c:6076,1
    - Dst: b_add
      Src: /src/haproxy/src/ssl_sock.c:6078,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/ssl_sock.c:6080,1
    - Dst: SSL_in_init
      Src: /src/haproxy/src/ssl_sock.c:6082,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:6084,1
    - Dst: b_free
      Src: /src/haproxy/src/ssl_sock.c:6085,1
    - Dst: SSL_read_early_data
      Src: /src/haproxy/src/ssl_sock.c:6093,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:6094,1
    - Dst: b_room
      Src: /src/haproxy/src/ssl_sock.c:6094,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6097,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6101,1
    - Dst: b_add
      Src: /src/haproxy/src/ssl_sock.c:6103,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:6107,1
    - Dst: b_free
      Src: /src/haproxy/src/ssl_sock.c:6108,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:6109,1
    - Dst: SSL_renegotiate_pending
      Src: /src/haproxy/src/ssl_sock.c:6122,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:6125,1
    - Dst: SSL_peek
      Src: /src/haproxy/src/ssl_sock.c:6127,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/ssl_sock.c:6130,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:6135,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6136,1
    - Dst: SSL_renegotiate_pending
      Src: /src/haproxy/src/ssl_sock.c:6143,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6145,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:6150,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6151,1
    - Dst: ssl_async_process_fds
      Src: /src/haproxy/src/ssl_sock.c:6156,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6157,1
    - Dst: SSL_get_state
      Src: /src/haproxy/src/ssl_sock.c:6173,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6201,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/ssl_sock.c:6211,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6215,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:6219,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 118
    argCount: 2
    argNames:
    - conn
    - flag
    argTypes:
    - struct connection*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6222
      start: 6027
    functionDepth: 2
    functionLinenumber: 6027
    functionLinenumberEnd: 6222
    functionName: ssl_sock_handshake
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_read_early_data
    - conn_ctrl_ready
    - TRACE_ENTER
    - b_room
    - TRACE_DEVEL
    - getsockopt
    - b_tail
    - conn_get_ssl_sock_ctx
    - TRACE_ERROR
    - SSL_renegotiate_pending
    - SSL_in_init
    - b_free
    - b_add
    - struct ssl_sock_ctx*::xprt::subscribe
    - b_data
    - SSL_in_early_data
    - SSL_peek
    - SSL_get_state
    - TRACE_STATE
    - BUG_ON
    - SSL_read
    - conn_ctrl_drain
    - SSL_get_error
    - ssl_async_process_fds
    linkageType: ''
    returnType: int
    signature: int ssl_sock_handshake(struct connection *conn, unsigned int flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6393,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6394,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:6402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - event_type
    - es
    argTypes:
    - struct connection*
    - void*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6404
      start: 6386
    functionDepth: 0
    functionLinenumber: 6386
    functionLinenumberEnd: 6404
    functionName: ssl_subscribe
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - struct ssl_sock_ctx*::xprt::subscribe
    linkageType: ''
    returnType: int
    signature: int ssl_subscribe(struct connection *conn, void *xprt_ctx, int event_type,
      struct wait_event *es)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6414,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6415,1
    - Dst: conn_unsubscribe
      Src: /src/haproxy/src/ssl_sock.c:6428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - event_type
    - es
    argTypes:
    - struct connection*
    - void*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6431
      start: 6410
    functionDepth: 2
    functionLinenumber: 6410
    functionLinenumberEnd: 6431
    functionName: ssl_unsubscribe
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - conn_unsubscribe
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int ssl_unsubscribe(struct connection *conn, void *xprt_ctx, int event_type,
      struct wait_event *es)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_new
      Src: /src/haproxy/src/ssl_sock.c:6444,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/ssl_sock.c:6450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - orig_tid
    - release
    argTypes:
    - struct connection*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6459
      start: 6438
    functionDepth: 1
    functionLinenumber: 6438
    functionLinenumberEnd: 6459
    functionName: ssl_takeover
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - tasklet_new
    - tasklet_wakeup_on
    linkageType: ''
    returnType: int
    signature: int ssl_takeover(struct connection *conn, void *xprt_ctx, int orig_tid,
      int release)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/ssl_sock.c:6472,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/ssl_sock.c:6474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6475
      start: 6465
    functionDepth: 1
    functionLinenumber: 6465
    functionLinenumberEnd: 6475
    functionName: ssl_set_idle
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_OR
    - xprt_set_idle
    linkageType: ''
    returnType: void
    signature: void ssl_set_idle(struct connection *conn, void *xprt_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/ssl_sock.c:6487,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/ssl_sock.c:6489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6490
      start: 6480
    functionDepth: 1
    functionLinenumber: 6480
    functionLinenumberEnd: 6490
    functionName: ssl_set_used
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_AND
    - xprt_set_used
    linkageType: ''
    returnType: void
    signature: void ssl_set_used(struct connection *conn, void *xprt_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - conn
    - xprt_ctx
    - toadd_ctx
    - toadd_ops
    - oldxprt_ctx
    - oldxprt_ops
    argTypes:
    - struct connection*
    - void*
    - void*
    - struct xprt_ops*
    - void**
    - struct xprt_ops**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6506
      start: 6495
    functionDepth: 0
    functionLinenumber: 6495
    functionLinenumberEnd: 6506
    functionName: ssl_add_xprt
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_add_xprt(struct connection *conn, void *xprt_ctx, void *toadd_ctx,
      const struct xprt_ops *toadd_ops, void **oldxprt_ctx, const struct xprt_ops
      **oldxprt_ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ssl_sock_ctx*::xprt::remove_xprt
      Src: /src/haproxy/src/ssl_sock.c:6521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - conn
    - xprt_ctx
    - toremove_ctx
    - newops
    - newctx
    argTypes:
    - struct connection*
    - void*
    - void*
    - struct xprt_ops*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6522
      start: 6512
    functionDepth: 0
    functionLinenumber: 6512
    functionLinenumberEnd: 6522
    functionName: ssl_remove_xprt
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - struct ssl_sock_ctx*::xprt::remove_xprt
    linkageType: ''
    returnType: int
    signature: int ssl_remove_xprt(struct connection *conn, void *xprt_ctx, void *toremove_ctx,
      const struct xprt_ops *newops, void *newctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/haproxy/src/ssl_sock.c:6537,1
    - Dst: SSL_CIPHER_get_handshake_digest
      Src: /src/haproxy/src/ssl_sock.c:6539,1
    - Dst: SSL_get_current_cipher
      Src: /src/haproxy/src/ssl_sock.c:6539,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6541,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6551,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6553,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6554,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6555,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6557,1
    - Dst: HKDF_expand
      Src: /src/haproxy/src/ssl_sock.c:6559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 7
    argNames:
    - ctx
    - secret
    - secret_len
    - label
    - label_len
    - out
    - out_len
    argTypes:
    - struct ssl_sock_ctx*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6560
      start: 6526
    functionDepth: 0
    functionLinenumber: 6526
    functionLinenumberEnd: 6560
    functionName: ssl_sock_hkdf_expand_label
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BUG_ON
    - SSL_CIPHER_get_handshake_digest
    - HKDF_expand
    - SSL_get_current_cipher
    - htons
    linkageType: ''
    returnType: int
    signature: int ssl_sock_hkdf_expand_label(struct ssl_sock_ctx *ctx, uint8_t *secret,
      size_t secret_len, uint8_t *label, size_t label_len, uint8_t *out, size_t out_len)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/haproxy/src/ssl_sock.c:6594,1
    - Dst: defined
      Src: /src/haproxy/src/ssl_sock.c:6597,1
    - Dst: defined
      Src: /src/haproxy/src/ssl_sock.c:6600,1
    - Dst: defined
      Src: /src/haproxy/src/ssl_sock.c:6603,1
    - Dst: SSL_version
      Src: /src/haproxy/src/ssl_sock.c:6620,1
    - Dst: SSL_CIPHER_get_cipher_nid
      Src: /src/haproxy/src/ssl_sock.c:6643,1
    - Dst: SSL_get_current_cipher
      Src: /src/haproxy/src/ssl_sock.c:6643,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6664,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6676,1
    - Dst: SSL_get_key_block_len
      Src: /src/haproxy/src/ssl_sock.c:6678,1
    - Dst: SSL_generate_key_block
      Src: /src/haproxy/src/ssl_sock.c:6683,1
    - Dst: SSL_get_read_sequence
      Src: /src/haproxy/src/ssl_sock.c:6700,1
    - Dst: my_htonll
      Src: /src/haproxy/src/ssl_sock.c:6701,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6704,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/ssl_sock.c:6706,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6708,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6710,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6713,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6715,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6718,1
    - Dst: ktls_set_key
      Src: /src/haproxy/src/ssl_sock.c:6719,1
    - Dst: SSL_get_write_sequence
      Src: /src/haproxy/src/ssl_sock.c:6726,1
    - Dst: my_htonll
      Src: /src/haproxy/src/ssl_sock.c:6727,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6729,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/ssl_sock.c:6730,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6732,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6734,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6737,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6739,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6741,1
    - Dst: ktls_set_key
      Src: /src/haproxy/src/ssl_sock.c:6742,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6764,1
    - Dst: SSL_get_read_traffic_secret
      Src: /src/haproxy/src/ssl_sock.c:6765,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6773,1
    - Dst: SSL_get_read_traffic_secret
      Src: /src/haproxy/src/ssl_sock.c:6775,1
    - Dst: ssl_sock_hkdf_expand_label
      Src: /src/haproxy/src/ssl_sock.c:6780,1
    - Dst: ssl_sock_hkdf_expand_label
      Src: /src/haproxy/src/ssl_sock.c:6784,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6792,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6793,1
    - Dst: SSL_get_read_sequence
      Src: /src/haproxy/src/ssl_sock.c:6794,1
    - Dst: my_htonll
      Src: /src/haproxy/src/ssl_sock.c:6795,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6796,1
    - Dst: ktls_set_key
      Src: /src/haproxy/src/ssl_sock.c:6797,1
    - Dst: SSL_get_write_traffic_secret
      Src: /src/haproxy/src/ssl_sock.c:6801,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6805,1
    - Dst: SSL_get_write_traffic_secret
      Src: /src/haproxy/src/ssl_sock.c:6807,1
    - Dst: ssl_sock_hkdf_expand_label
      Src: /src/haproxy/src/ssl_sock.c:6812,1
    - Dst: ssl_sock_hkdf_expand_label
      Src: /src/haproxy/src/ssl_sock.c:6816,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6824,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6825,1
    - Dst: SSL_get_write_sequence
      Src: /src/haproxy/src/ssl_sock.c:6826,1
    - Dst: my_htonll
      Src: /src/haproxy/src/ssl_sock.c:6827,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6828,1
    - Dst: ktls_set_key
      Src: /src/haproxy/src/ssl_sock.c:6829,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 146
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ssl_sock_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6839
      start: 6564
    functionDepth: 1
    functionLinenumber: 6564
    functionLinenumberEnd: 6839
    functionName: ssl_sock_setup_ktls
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_get_read_sequence
    - defined
    - conn_is_back
    - BUG_ON
    - memcpy
    - SSL_get_write_sequence
    - my_htonll
    - SSL_get_write_traffic_secret
    - ssl_sock_hkdf_expand_label
    - ktls_set_key
    - SSL_get_key_block_len
    - SSL_generate_key_block
    - SSL_version
    - SSL_get_current_cipher
    - SSL_get_read_traffic_secret
    - SSL_CIPHER_get_cipher_nid
    linkageType: ''
    returnType: void
    signature: void ssl_sock_setup_ktls(struct ssl_sock_ctx *ctx)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_sock.c:6856,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_sock.c:6858,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/ssl_sock.c:6859,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/ssl_sock.c:6868,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6870,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/ssl_sock.c:6871,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/ssl_sock.c:6873,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6875,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/ssl_sock.c:6877,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_sock.c:6883,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:6890,1
    - Dst: ssl_sock_handshake
      Src: /src/haproxy/src/ssl_sock.c:6894,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ssl_sock.c:6897,1
    - Dst: ssl_sock_setup_ktls
      Src: /src/haproxy/src/ssl_sock.c:6901,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/ssl_sock.c:6918,1
    - Dst: objt_server
      Src: /src/haproxy/src/ssl_sock.c:6923,1
    - Dst: ssl_sock_get_alpn
      Src: /src/haproxy/src/ssl_sock.c:6924,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:6927,1
    - Dst: memcmp
      Src: /src/haproxy/src/ssl_sock.c:6928,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:6929,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6930,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:6933,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:6948,1
    - Dst: objt_listener
      Src: /src/haproxy/src/ssl_sock.c:6949,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/ssl_sock.c:6950,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:6957,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/ssl_sock.c:6973,1
    - Dst: conn_select_mux_fe
      Src: /src/haproxy/src/ssl_sock.c:6974,1
    - Dst: conn_select_mux_be
      Src: /src/haproxy/src/ssl_sock.c:6974,1
    - Dst: xprt_add_l6hs
      Src: /src/haproxy/src/ssl_sock.c:6977,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/ssl_sock.c:6980,1
    - Dst: conn_complete_session
      Src: /src/haproxy/src/ssl_sock.c:6982,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6983,1
    - Dst: conn_xprt_start
      Src: /src/haproxy/src/ssl_sock.c:6989,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/ssl_sock.c:6996,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/ssl_sock.c:7001,1
    - Dst: wake
      Src: /src/haproxy/src/ssl_sock.c:7001,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:7012,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:7014,1
    - Dst: objt_server
      Src: /src/haproxy/src/ssl_sock.c:7022,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:7025,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:7029,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/ssl_sock.c:7030,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/ssl_sock.c:7032,1
    - Dst: destroy
      Src: /src/haproxy/src/ssl_sock.c:7032,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/ssl_sock.c:7037,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:7038,1
    - Dst: srv_add_idle
      Src: /src/haproxy/src/ssl_sock.c:7039,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/ssl_sock.c:7044,1
    - Dst: destroy
      Src: /src/haproxy/src/ssl_sock.c:7044,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:7048,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 115
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7050
      start: 6844
    functionDepth: 4
    functionLinenumber: 6844
    functionLinenumberEnd: 7050
    functionName: ssl_sock_io_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - memcmp
    - HA_RWLOCK_WRUNLOCK
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - ssl_sock_get_alpn
    - objt_server
    - objt_listener
    - ASSUME_NONNULL
    - session_reinsert_idle_conn
    - ssl_sock_handshake
    - srv_add_idle
    - TRACE_DEVEL
    - destroy
    - xprt_add_l6hs
    - conn_select_mux_fe
    - TRACE_LEAVE
    - memcpy
    - CALL_MUX_NO_RET
    - conn_delete_from_tree
    - __objt_listener
    - tasklet_wakeup
    - _HA_ATOMIC_AND
    - CALL_MUX_WITH_RET
    - b_data
    - LIST_INLIST
    - HA_RWLOCK_WRLOCK
    - BUG_ON
    - ssl_sock_setup_ktls
    - HA_SPIN_UNLOCK
    - wake
    - conn_complete_session
    - conn_select_mux_be
    - conn_create_mux
    - session_detach_idle_conn
    - conn_xprt_start
    - tasklet_free
    - strlen
    linkageType: ''
    returnType: struct task
    signature: struct task *ssl_sock_io_cb(struct task *t, void *context, unsigned
      int state)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:7066,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ssl_sock.c:7071,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:7074,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/ssl_sock.c:7075,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:7076,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:7077,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:7078,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:7078,1
    - Dst: b_head
      Src: /src/haproxy/src/ssl_sock.c:7078,1
    - Dst: b_add
      Src: /src/haproxy/src/ssl_sock.c:7079,1
    - Dst: b_del
      Src: /src/haproxy/src/ssl_sock.c:7080,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:7081,1
    - Dst: b_free
      Src: /src/haproxy/src/ssl_sock.c:7082,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:7083,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:7095,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/ssl_sock.c:7105,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:7115,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/ssl_sock.c:7116,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/ssl_sock.c:7117,1
    - Dst: struct ssl_sock_ctx*::xprt::rcv_buf
      Src: /src/haproxy/src/ssl_sock.c:7119,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/ssl_sock.c:7124,1
    - Dst: b_del
      Src: /src/haproxy/src/ssl_sock.c:7133,1
    - Dst: b_del
      Src: /src/haproxy/src/ssl_sock.c:7143,1
    - Dst: SSL_read
      Src: /src/haproxy/src/ssl_sock.c:7156,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:7156,1
    - Dst: b_add
      Src: /src/haproxy/src/ssl_sock.c:7172,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:7175,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/ssl_sock.c:7190,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:7194,1
    - Dst: SSL_set_mode
      Src: /src/haproxy/src/ssl_sock.c:7198,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:7200,1
    - Dst: SSL_renegotiate_pending
      Src: /src/haproxy/src/ssl_sock.c:7204,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:7205,1
    - Dst: SSL_set_mode
      Src: /src/haproxy/src/ssl_sock.c:7213,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:7217,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:7220,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7223,1
    - Dst: ERR_peek_error
      Src: /src/haproxy/src/ssl_sock.c:7225,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/ssl_sock.c:7232,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:7236,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:7241,1
    - Dst: ssl_sock_dump_errors
      Src: /src/haproxy/src/ssl_sock.c:7246,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:7247,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/ssl_sock.c:7249,1
    - Dst: conn_sock_read0
      Src: /src/haproxy/src/ssl_sock.c:7250,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:7254,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/ssl_sock.c:7255,1
    - Dst: ssl_sock_dump_errors
      Src: /src/haproxy/src/ssl_sock.c:7258,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:7259,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 128
    argCount: 7
    argNames:
    - conn
    - xprt_ctx
    - buf
    - count
    - msg_control
    - msg_controllen
    - flags
    argTypes:
    - struct connection*
    - void*
    - struct buffer*
    - size_t
    - void*
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7261
      start: 7060
    functionDepth: 2
    functionLinenumber: 7060
    functionLinenumberEnd: 7261
    functionName: ssl_sock_to_buf
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - b_contig_space
    - CMSG_LEN
    - struct ssl_sock_ctx*::xprt::rcv_buf
    - ssl_sock_dump_errors
    - SSL_set_mode
    - TRACE_DEVEL
    - b_tail
    - CMSG_SPACE
    - conn_sock_read0
    - conn_get_ssl_sock_ctx
    - BUG_ON_HOT
    - TRACE_PROTO
    - b_head
    - TRACE_LEAVE
    - memcpy
    - SSL_renegotiate_pending
    - ERR_peek_error
    - TRACE_ERROR
    - b_free
    - b_add
    - struct ssl_sock_ctx*::xprt::subscribe
    - conn_report_term_evt
    - b_data
    - b_del
    - ERR_clear_error
    - CMSG_DATA
    - TRACE_STATE
    - SSL_read
    - SSL_get_error
    linkageType: ''
    returnType: size_t
    signature: size_t ssl_sock_to_buf(struct connection *conn, void *xprt_ctx, struct
      buffer *buf, size_t count, void *msg_control, size_t *msg_controllen, int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:7476,1
    - Dst: struct ssl_sock_ctx*::xprt::unsubscribe
      Src: /src/haproxy/src/ssl_sock.c:7480,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:7485,1
    - Dst: struct ssl_sock_ctx*::xprt::close
      Src: /src/haproxy/src/ssl_sock.c:7489,1
    - Dst: SSL_get_all_async_fds
      Src: /src/haproxy/src/ssl_sock.c:7496,1
    - Dst: send_log
      Src: /src/haproxy/src/ssl_sock.c:7498,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:7499,1
    - Dst: SSL_get_all_async_fds
      Src: /src/haproxy/src/ssl_sock.c:7503,1
    - Dst: SSL_waiting_for_async
      Src: /src/haproxy/src/ssl_sock.c:7508,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/ssl_sock.c:7516,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/ssl_sock.c:7520,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/ssl_sock.c:7522,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7523,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:7524,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:7525,1
    - Dst: fd_delete
      Src: /src/haproxy/src/ssl_sock.c:7540,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:7544,1
    - Dst: b_free
      Src: /src/haproxy/src/ssl_sock.c:7545,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/ssl_sock.c:7546,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7547,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/ssl_sock.c:7548,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:7550,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7551
      start: 7472
    functionDepth: 1
    functionLinenumber: 7472
    functionLinenumberEnd: 7551
    functionName: ssl_sock_close
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - TRACE_ENTER
    - struct ssl_sock_ctx*::xprt::unsubscribe
    - SSL_waiting_for_async
    - fd_want_recv
    - TRACE_DEVEL
    - SSL_free
    - fd_cant_recv
    - _HA_ATOMIC_DEC
    - pool_free
    - SSL_get_all_async_fds
    - TRACE_LEAVE
    - TRACE_ERROR
    - tasklet_wakeup
    - b_free
    - send_log
    - _HA_ATOMIC_INC
    - struct ssl_sock_ctx*::xprt::close
    - tasklet_free
    linkageType: ''
    returnType: void
    signature: void ssl_sock_close(struct connection *conn, void *xprt_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:7560,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/ssl_sock.c:7565,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/ssl_sock.c:7569,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/ssl_sock.c:7577,1
    - Dst: struct ssl_sock_ctx*::xprt::snd_buf
      Src: /src/haproxy/src/ssl_sock.c:7584,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/ssl_sock.c:7591,1
    - Dst: SSL_set_quiet_shutdown
      Src: /src/haproxy/src/ssl_sock.c:7594,1
    - Dst: SSL_shutdown
      Src: /src/haproxy/src/ssl_sock.c:7596,1
    - Dst: ssl_sock_dump_errors
      Src: /src/haproxy/src/ssl_sock.c:7598,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:7599,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:7602,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - conn
    - xprt_ctx
    - clean
    argTypes:
    - struct connection*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7603
      start: 7556
    functionDepth: 2
    functionLinenumber: 7556
    functionLinenumberEnd: 7603
    functionName: ssl_sock_shutw
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_sock_dump_errors
    - SSL_shutdown
    - TRACE_LEAVE
    - struct ssl_sock_ctx*::xprt::snd_buf
    - TRACE_ENTER
    - CMSG_DATA
    - conn_report_term_evt
    - SSL_set_quiet_shutdown
    - CMSG_SPACE
    - ERR_clear_error
    - CMSG_LEN
    linkageType: ''
    returnType: void
    signature: void ssl_sock_shutw(struct connection *conn, void *xprt_ctx, int clean)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7609,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sock.c:7614,1
    - Dst: cert_get_pkey_algo
      Src: /src/haproxy/src/ssl_sock.c:7618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - conn
    - out
    argTypes:
    - struct connection*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7619
      start: 7607
    functionDepth: 1
    functionLinenumber: 7607
    functionLinenumberEnd: 7619
    functionName: ssl_sock_get_pkey_algo
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - SSL_get_certificate
    - cert_get_pkey_algo
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_pkey_algo(struct connection *conn, struct buffer *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7624,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sock.c:7631,1
    - Dst: X509_ALGOR_get0
      Src: /src/haproxy/src/ssl_sock.c:7634,1
    - Dst: X509_get0_tbs_sigalg
      Src: /src/haproxy/src/ssl_sock.c:7634,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_sock.c:7635,1
    - Dst: OBJ_obj2nid
      Src: /src/haproxy/src/ssl_sock.c:7635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7636
      start: 7622
    functionDepth: 1
    functionLinenumber: 7622
    functionLinenumberEnd: 7636
    functionName: ssl_sock_get_cert_sig
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2sn
    - X509_get0_tbs_sigalg
    - SSL_get_certificate
    - X509_ALGOR_get0
    - conn_get_ssl_sock_ctx
    - OBJ_obj2nid
    linkageType: ''
    returnType: char
    signature: char *ssl_sock_get_cert_sig(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7642,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_sock.c:7646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7650
      start: 7639
    functionDepth: 1
    functionLinenumber: 7639
    functionLinenumberEnd: 7650
    functionName: ssl_sock_get_sni
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - SSL_get_servername
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: char
    signature: char *ssl_sock_get_sni(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7655,1
    - Dst: SSL_get_cipher_name
      Src: /src/haproxy/src/ssl_sock.c:7659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7660
      start: 7653
    functionDepth: 1
    functionLinenumber: 7653
    functionLinenumberEnd: 7660
    functionName: ssl_sock_get_cipher_name
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - SSL_get_cipher_name
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: char
    signature: char *ssl_sock_get_cipher_name(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7665,1
    - Dst: SSL_get_version
      Src: /src/haproxy/src/ssl_sock.c:7669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7670
      start: 7663
    functionDepth: 1
    functionLinenumber: 7663
    functionLinenumberEnd: 7670
    functionName: ssl_sock_get_proto_version
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - SSL_get_version
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: char
    signature: char *ssl_sock_get_proto_version(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7675,1
    - Dst: SSL_set_alpn_protos
      Src: /src/haproxy/src/ssl_sock.c:7679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - conn
    - alpn
    - len
    argTypes:
    - struct connection*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7681
      start: 7672
    functionDepth: 1
    functionLinenumber: 7672
    functionLinenumberEnd: 7681
    functionName: ssl_sock_set_alpn
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - SSL_set_alpn_protos
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: void
    signature: void ssl_sock_set_alpn(struct connection *conn, const unsigned char
      *alpn, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7688,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:7693,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:7694,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/haproxy/src/ssl_sock.c:7696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - hostname
    argTypes:
    - struct connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7698
      start: 7685
    functionDepth: 1
    functionLinenumber: 7685
    functionLinenumberEnd: 7698
    functionName: ssl_sock_set_servername
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 2
    functionsReached:
    - SSL_set_tlsext_host_name
    - BUG_ON
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: void
    signature: void ssl_sock_set_servername(struct connection *conn, const char *hostname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7709,1
    - Dst: SSL_get_peer_certificate
      Src: /src/haproxy/src/ssl_sock.c:7723,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:7727,1
    - Dst: ssl_sock_get_dn_entry
      Src: /src/haproxy/src/ssl_sock.c:7731,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sock.c:7734,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - conn
    - dest
    argTypes:
    - struct connection*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7737
      start: 7706
    functionDepth: 1
    functionLinenumber: 7706
    functionLinenumberEnd: 7737
    functionName: ssl_sock_get_remote_common_name
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - X509_free
    - conn_get_ssl_sock_ctx
    - ssl_sock_get_dn_entry
    - X509_get_subject_name
    - SSL_get_peer_certificate
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_get_remote_common_name(struct connection *conn,\n\t\t\t\t
      \   struct buffer *dest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7742,1
    - Dst: SSL_get_peer_certificate
      Src: /src/haproxy/src/ssl_sock.c:7749,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sock.c:7753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7755
      start: 7740
    functionDepth: 1
    functionLinenumber: 7740
    functionLinenumberEnd: 7755
    functionName: ssl_sock_get_cert_used_sess
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - X509_free
    - SSL_get_peer_certificate
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_cert_used_sess(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7765
      start: 7758
    functionDepth: 1
    functionLinenumber: 7758
    functionLinenumberEnd: 7765
    functionName: ssl_sock_get_cert_used_conn
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_cert_used_conn(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7770,1
    - Dst: SSL_get_verify_result
      Src: /src/haproxy/src/ssl_sock.c:7774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7775
      start: 7768
    functionDepth: 1
    functionLinenumber: 7768
    functionLinenumberEnd: 7775
    functionName: ssl_sock_get_verify_result
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - SSL_get_verify_result
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ssl_sock_get_verify_result(struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_alpn_selected
      Src: /src/haproxy/src/ssl_sock.c:7794,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/haproxy/src/ssl_sock.c:7799,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - str
    - len
    argTypes:
    - struct connection*
    - void*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7805
      start: 7783
    functionDepth: 0
    functionLinenumber: 7783
    functionLinenumberEnd: 7805
    functionName: ssl_sock_get_alpn
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 2
    functionsReached:
    - SSL_get0_alpn_selected
    - SSL_get0_next_proto_negotiated
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_alpn(const struct connection *conn, void *xprt_ctx,
      const char **str, int *len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:7813,1
    - Dst: PEM_read_bio_X509
      Src: /src/haproxy/src/ssl_sock.c:7820,1
    - Dst: sk_X509_new_null
      Src: /src/haproxy/src/ssl_sock.c:7822,1
    - Dst: X509_get_ext_d2i
      Src: /src/haproxy/src/ssl_sock.c:7823,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:7824,1
    - Dst: sk_X509_push
      Src: /src/haproxy/src/ssl_sock.c:7826,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sock.c:7827,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:7832,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:7836,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:7840,1
    - Dst: XXH3
      Src: /src/haproxy/src/ssl_sock.c:7843,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_sock.c:7843,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_sock.c:7843,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/ssl_sock.c:7844,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_sock.c:7844,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:7845,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_sock.c:7845,1
    - Dst: X509_NAME_cmp
      Src: /src/haproxy/src/ssl_sock.c:7846,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:7846,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_sock.c:7846,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:7847,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:7851,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:7852,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:7854,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:7855,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/ssl_sock.c:7862,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/haproxy/src/ssl_sock.c:7866,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_sock.c:7868,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 3
    argNames:
    - in
    - fp
    - err
    argTypes:
    - BIO*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7870
      start: 7808
    functionDepth: 1
    functionLinenumber: 7808
    functionLinenumberEnd: 7870
    functionName: ssl_load_global_issuer_from_BIO
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memprintf
    - sk_X509_pop_free
    - sk_X509_new_null
    - free
    - STACK_OF
    - PEM_read_bio_X509
    - eb64_next
    - XXH3
    - eb64_lookup
    - container_of
    - ASN1_OCTET_STRING_free
    - typeof
    - sk_X509_value
    - eb64_insert
    - calloc
    - ASN1_STRING_length
    - X509_get_ext_d2i
    - X509_NAME_cmp
    - X509_free
    - ASN1_STRING_get0_data
    - sk_X509_push
    - X509_get_subject_name
    - strdup
    linkageType: ''
    returnType: int
    signature: int ssl_load_global_issuer_from_BIO(BIO *in, char *fp, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_d2i
      Src: /src/haproxy/src/ssl_sock.c:7877,1
    - Dst: XXH3
      Src: /src/haproxy/src/ssl_sock.c:7881,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_sock.c:7881,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_sock.c:7881,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/ssl_sock.c:7882,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_sock.c:7882,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:7883,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_sock.c:7883,1
    - Dst: X509_check_issued
      Src: /src/haproxy/src/ssl_sock.c:7884,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_sock.c:7884,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/haproxy/src/ssl_sock.c:7890,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7892
      start: 7872
    functionDepth: 1
    functionLinenumber: 7872
    functionLinenumberEnd: 7892
    functionName: ssl_get0_issuer_chain
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - AUTHORITY_KEYID_free
    - typeof
    - eb64_next
    - X509_check_issued
    - sk_X509_value
    - XXH3
    - eb64_lookup
    - ASN1_STRING_get0_data
    - container_of
    - ASN1_STRING_length
    - X509_get_ext_d2i
    linkageType: ''
    returnType: struct issuer_chain
    signature: struct issuer_chain * ssl_get0_issuer_chain(X509 *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_sock.c:7899,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:7901,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_sock.c:7901,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_sock.c:7902,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_sock.c:7903,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:7904,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_sock.c:7905,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:7906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7909
      start: 7894
    functionDepth: 1
    functionLinenumber: 7894
    functionLinenumberEnd: 7909
    functionName: ssl_free_global_issuers
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - typeof
    - eb64_next
    - sk_X509_pop_free
    - eb64_delete
    - eb64_first
    - container_of
    - free
    linkageType: ''
    returnType: void
    signature: void ssl_free_global_issuers(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:7916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7920
      start: 7912
    functionDepth: 1
    functionLinenumber: 7912
    functionLinenumberEnd: 7920
    functionName: ssl_check_async_engine_count
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int ssl_check_async_engine_count(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7935,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7938,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7941,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7943,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7946,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7957,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7959,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7962,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/ssl_sock.c:7965,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7966,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7968,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7969,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - buf
    - conn
    - ctx
    argTypes:
    - struct buffer*
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7971
      start: 7926
    functionDepth: 1
    functionLinenumber: 7926
    functionLinenumberEnd: 7971
    functionName: ssl_sock_show_fd
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - resolve_sym_name
    linkageType: ''
    returnType: int
    signature: int ssl_sock_show_fd(struct buffer *buf, const struct connection *conn,
      const void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_sock.c:7988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ref
    - end
    argTypes:
    - struct list*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7989
      start: 7978
    functionDepth: 1
    functionLinenumber: 7978
    functionLinenumberEnd: 7989
    functionName: tlskeys_list_get_next
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_ELEM
    linkageType: ''
    returnType: struct tls_keys_ref
    signature: struct tls_keys_ref *tlskeys_list_get_next(struct list *ref, struct
      list *end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/ssl_sock.c:8000,1
    - Dst: tlskeys_ref_lookupid
      Src: /src/haproxy/src/ssl_sock.c:8005,1
    - Dst: tlskeys_ref_lookup
      Src: /src/haproxy/src/ssl_sock.c:8009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - reference
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8010
      start: 7991
    functionDepth: 1
    functionLinenumber: 7991
    functionLinenumberEnd: 8010
    functionName: tlskeys_ref_lookup_ref
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - tlskeys_ref_lookupid
    - tlskeys_ref_lookup
    - strtol
    linkageType: ''
    returnType: struct tls_keys_ref
    signature: struct tls_keys_ref *tlskeys_ref_lookup_ref(const char *reference)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_sock.c:8027,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:8030,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:8032,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_sock.c:8034,1
    - Dst: tlskeys_list_get_next
      Src: /src/haproxy/src/ssl_sock.c:8043,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_sock.c:8052,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:8054,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:8057,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:8062,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sock.c:8065,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_sock.c:8067,1
    - Dst: a2base64
      Src: /src/haproxy/src/ssl_sock.c:8070,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:8073,1
    - Dst: a2base64
      Src: /src/haproxy/src/ssl_sock.c:8077,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:8080,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:8085,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_sock.c:8088,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:8092,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:8097,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_sock.c:8100,1
    - Dst: tlskeys_list_get_next
      Src: /src/haproxy/src/ssl_sock.c:8111,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8120
      start: 8017
    functionDepth: 2
    functionLinenumber: 8017
    functionLinenumberEnd: 8120
    functionName: cli_io_handler_tlskeys_files
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - a2base64
    - HA_RWLOCK_RDLOCK
    - HA_RWLOCK_RDUNLOCK
    - chunk_appendf
    - get_trash_chunk
    - chunk_reset
    - tlskeys_list_get_next
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_tlskeys_files(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_sock.c:8125,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_sock.c:8127,1
    - Dst: tlskeys_ref_lookup_ref
      Src: /src/haproxy/src/ssl_sock.c:8140,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_sock.c:8142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8147
      start: 8123
    functionDepth: 2
    functionLinenumber: 8123
    functionLinenumberEnd: 8147
    functionName: cli_parse_show_tlskeys
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - tlskeys_ref_lookup_ref
    - cli_err
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_tlskeys(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_sock.c:8154,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_sock.c:8159,1
    - Dst: tlskeys_ref_lookup_ref
      Src: /src/haproxy/src/ssl_sock.c:8161,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_sock.c:8163,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sock.c:8165,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:8165,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_sock.c:8167,1
    - Dst: ssl_sock_update_tlskey_ref
      Src: /src/haproxy/src/ssl_sock.c:8170,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_sock.c:8171,1
    - Dst: cli_msg
      Src: /src/haproxy/src/ssl_sock.c:8173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8174
      start: 8149
    functionDepth: 2
    functionLinenumber: 8149
    functionLinenumberEnd: 8174
    functionName: cli_parse_set_tlskeys
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - base64dec
    - cli_err
    - ssl_sock_update_tlskey_ref
    - cli_has_level
    - tlskeys_ref_lookup_ref
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_tlskeys(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_get0_name
      Src: /src/haproxy/src/ssl_sock.c:8189,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:8194,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:8200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - provider
    - cbdata
    argTypes:
    - OSSL_PROVIDER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8203
      start: 8185
    functionDepth: 1
    functionLinenumber: 8185
    functionLinenumberEnd: 8203
    functionName: ssl_provider_get_name_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - calloc
    - OSSL_PROVIDER_get0_name
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int ssl_provider_get_name_cb(OSSL_PROVIDER *provider, void *cbdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_do_all
      Src: /src/haproxy/src/ssl_sock.c:8210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - provider_names
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8211
      start: 8205
    functionDepth: 0
    functionLinenumber: 8205
    functionLinenumberEnd: 8211
    functionName: ssl_provider_get_name_list
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_do_all
    linkageType: ''
    returnType: void
    signature: void ssl_provider_get_name_list(struct list *provider_names)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:8219,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:8220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - provider_names
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8223
      start: 8213
    functionDepth: 1
    functionLinenumber: 8213
    functionLinenumberEnd: 8223
    functionName: ssl_provider_clear_name_list
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - free
    linkageType: ''
    returnType: void
    signature: void ssl_provider_clear_name_list(struct list *provider_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:8219,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:8220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8221
      start: 8218
    functionDepth: 1
    functionLinenumber: 8218
    functionLinenumberEnd: 8221
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 15
    functionsReached:
    - LIST_DELETE
    - free
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(item, item_s, provider_names, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sock.c:8227,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_sock.c:8231,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:8233,1
    - Dst: ssl_provider_get_name_list
      Src: /src/haproxy/src/ssl_sock.c:8235,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:8237,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:8238,1
    - Dst: ssl_provider_clear_name_list
      Src: /src/haproxy/src/ssl_sock.c:8241,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_sock.c:8243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8250
      start: 8225
    functionDepth: 2
    functionLinenumber: 8225
    functionLinenumberEnd: 8250
    functionName: cli_io_handler_show_providers
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - chunk_appendf
    - ssl_provider_get_name_list
    - get_trash_chunk
    - ssl_provider_clear_name_list
    - LIST_INIT
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_providers(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_has_pending
      Src: /src/haproxy/src/ssl_sock.c:8269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - cap
    - arg
    argTypes:
    - struct connection*
    - void*
    - enum xprt_capabilities
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8285
      start: 8253
    functionDepth: 0
    functionLinenumber: 8253
    functionLinenumberEnd: 8285
    functionName: ssl_sock_get_capability
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_has_pending
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_capability(struct connection *conn, void *xprt_ctx,
      enum xprt_capabilities cap, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sock.c:8337,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/ssl_sock.c:8341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8347
      start: 8332
    functionDepth: 1
    functionLinenumber: 8332
    functionLinenumberEnd: 8347
    functionName: ssl_action_wait_for_hs
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - sc_ep_set
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return ssl_action_wait_for_hs(struct act_rule *rule, struct
      proxy *px,\n                                       struct session *sess, struct
      stream *s, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8354
      start: 8349
    functionDepth: 0
    functionLinenumber: 8349
    functionLinenumberEnd: 8354
    functionName: ssl_parse_wait_for_hs
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_parse_ret
    signature: enum act_parse_ret ssl_parse_wait_for_hs(const char **args, int *orig_arg,
      struct proxy *px, struct act_rule *rule, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_destroy
      Src: /src/haproxy/src/ssl_sock.c:8368,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:8369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8371
      start: 8365
    functionDepth: 1
    functionLinenumber: 8365
    functionLinenumberEnd: 8371
    functionName: ssl_sock_sctl_free_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - free
    - chunk_destroy
    linkageType: ''
    returnType: void
    signature: void ssl_sock_sctl_free_func(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:8378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8379
      start: 8376
    functionDepth: 1
    functionLinenumber: 8376
    functionLinenumberEnd: 8379
    functionName: ssl_sock_capture_free_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - pool_free
    linkageType: ''
    returnType: void
    signature: void ssl_sock_capture_free_func(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:8383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8384
      start: 8381
    functionDepth: 1
    functionLinenumber: 8381
    functionLinenumberEnd: 8384
    functionName: ssl_sock_free_crtname
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ssl_sock_free_crtname(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:8396,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:8397,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:8398,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:8399,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:8400,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:8401,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:8402,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:8403,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:8405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8406
      start: 8387
    functionDepth: 1
    functionLinenumber: 8387
    functionLinenumberEnd: 8406
    functionName: ssl_sock_keylog_free_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - pool_free
    linkageType: ''
    returnType: void
    signature: void ssl_sock_keylog_free_func(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sock.c:8414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8415
      start: 8409
    functionDepth: 0
    functionLinenumber: 8409
    functionLinenumberEnd: 8415
    functionName: ssl_sock_clt_crt_free_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: void
    signature: void ssl_sock_clt_crt_free_func(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:8419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8420
      start: 8417
    functionDepth: 1
    functionLinenumber: 8417
    functionLinenumberEnd: 8420
    functionName: ssl_sock_clt_sni_free_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - pool_free
    linkageType: ''
    returnType: void
    signature: void ssl_sock_clt_sni_free_func(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8424,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8425,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8426,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8428,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8430,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8431,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8434,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8435,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8439,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8440,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8444,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8445,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8447,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8448,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8454,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8458
      start: 8422
    functionDepth: 1
    functionLinenumber: 8422
    functionLinenumberEnd: 8458
    functionName: ssl_free_global
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void ssl_free_global(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:8463,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:8468,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:8470,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:8473,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:8475,1
    - Dst: xprt_register
      Src: /src/haproxy/src/ssl_sock.c:8478,1
    - Dst: SSL_library_init
      Src: /src/haproxy/src/ssl_sock.c:8480,1
    - Dst: OPENSSL_init_ssl
      Src: /src/haproxy/src/ssl_sock.c:8482,1
    - Dst: SSL_COMP_get_compression_methods
      Src: /src/haproxy/src/ssl_sock.c:8485,1
    - Dst: sk_SSL_COMP_num
      Src: /src/haproxy/src/ssl_sock.c:8486,1
    - Dst: sk_SSL_COMP_pop
      Src: /src/haproxy/src/ssl_sock.c:8488,1
    - Dst: ssl_locking_init
      Src: /src/haproxy/src/ssl_sock.c:8493,1
    - Dst: SSL_CTX_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8496,1
    - Dst: SSL_CTX_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8500,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8503,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8504,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8506,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8509,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8511,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8512,1
    - Dst: SSL_CTX_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8513,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/haproxy/src/ssl_sock.c:8516,1
    - Dst: hap_register_post_check
      Src: /src/haproxy/src/ssl_sock.c:8517,1
    - Dst: hap_register_post_check
      Src: /src/haproxy/src/ssl_sock.c:8520,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8526,1
    - Dst: SSL_CTX_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8529,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8530,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8533,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8536,1
    - Dst: ERR_load_SSL_strings
      Src: /src/haproxy/src/ssl_sock.c:8540,1
    - Dst: BIO_meth_new
      Src: /src/haproxy/src/ssl_sock.c:8542,1
    - Dst: BIO_meth_set_write
      Src: /src/haproxy/src/ssl_sock.c:8544,1
    - Dst: BIO_meth_set_read
      Src: /src/haproxy/src/ssl_sock.c:8545,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/haproxy/src/ssl_sock.c:8546,1
    - Dst: BIO_meth_set_create
      Src: /src/haproxy/src/ssl_sock.c:8547,1
    - Dst: BIO_meth_set_destroy
      Src: /src/haproxy/src/ssl_sock.c:8548,1
    - Dst: BIO_meth_set_puts
      Src: /src/haproxy/src/ssl_sock.c:8549,1
    - Dst: BIO_meth_set_gets
      Src: /src/haproxy/src/ssl_sock.c:8550,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/ssl_sock.c:8553,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/ssl_sock.c:8556,1
    - Dst: ha_random64
      Src: /src/haproxy/src/ssl_sock.c:8559,1
    - Dst: hap_register_post_check
      Src: /src/haproxy/src/ssl_sock.c:8564,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8569,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8571,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8572
      start: 8460
    functionDepth: 2
    functionLinenumber: 8460
    functionLinenumberEnd: 8572
    functionName: __ssl_sock_init
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - hap_register_post_deinit
    - OPENSSL_init_ssl
    - hap_register_post_check
    - BIO_meth_set_puts
    - STACK_OF
    - BIO_meth_set_create
    - xprt_register
    - SSL_library_init
    - ENGINE_load_builtin_engines
    - BIO_meth_set_ctrl
    - sk_SSL_COMP_pop
    - SSL_CTX_get_ex_new_index
    - BIO_meth_set_gets
    - BIO_meth_new
    - ssl_locking_init
    - SSL_COMP_get_compression_methods
    - ha_random64
    - BIO_meth_set_destroy
    - BIO_meth_set_read
    - BIO_meth_set_write
    - sk_SSL_COMP_num
    - SSL_get_ex_new_index
    - HA_SPIN_INIT
    - ERR_load_SSL_strings
    - strdup
    linkageType: ''
    returnType: void
    signature: void __ssl_sock_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8581,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/ssl_sock.c:8587,1
    - Dst: OpenSSL_version_num
      Src: /src/haproxy/src/ssl_sock.c:8588,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8590,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8612,1
    - Dst: FIPS_mode
      Src: /src/haproxy/src/ssl_sock.c:8612,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8614,1
    - Dst: ha_default_cert_dir
      Src: /src/haproxy/src/ssl_sock.c:8614,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8615,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8618,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_sock.c:8624,1
    - Dst: ssl_provider_get_name_list
      Src: /src/haproxy/src/ssl_sock.c:8625,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8627,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:8629,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8630,1
    - Dst: ssl_provider_clear_name_list
      Src: /src/haproxy/src/ssl_sock.c:8633,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/ssl_sock.c:8637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8638
      start: 8576
    functionDepth: 2
    functionLinenumber: 8576
    functionLinenumberEnd: 8638
    functionName: ssl_register_build_options
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ha_default_cert_dir
    - list_for_each_entry
    - OpenSSL_version_num
    - ssl_provider_get_name_list
    - OpenSSL_version
    - ssl_provider_clear_name_list
    - FIPS_mode
    - hap_register_build_opts
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void ssl_register_build_options()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_sock.c:8646,1
    - Dst: ENGINE_finish
      Src: /src/haproxy/src/ssl_sock.c:8647,1
    - Dst: ENGINE_free
      Src: /src/haproxy/src/ssl_sock.c:8648,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:8649,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:8650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8652
      start: 8643
    functionDepth: 1
    functionLinenumber: 8643
    functionLinenumberEnd: 8652
    functionName: ssl_free_engines
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - ENGINE_free
    - list_for_each_entry_safe
    - free
    - ENGINE_finish
    linkageType: ''
    returnType: void
    signature: void ssl_free_engines(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_sock.c:8658,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/haproxy/src/ssl_sock.c:8659,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:8660,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:8661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8663
      start: 8656
    functionDepth: 1
    functionLinenumber: 8656
    functionLinenumberEnd: 8663
    functionName: ssl_unload_providers
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_unload
    - list_for_each_entry_safe
    - LIST_DELETE
    - free
    linkageType: ''
    returnType: void
    signature: void ssl_unload_providers(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:8669,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:8673,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:8677,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:8681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8684
      start: 8667
    functionDepth: 0
    functionLinenumber: 8667
    functionLinenumberEnd: 8684
    functionName: ssl_free_dh
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HASSL_DH_free
    linkageType: ''
    returnType: void
    signature: void ssl_free_dh(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_remove_state
      Src: /src/haproxy/src/ssl_sock.c:8691,1
    - Dst: ERR_free_strings
      Src: /src/haproxy/src/ssl_sock.c:8692,1
    - Dst: EVP_cleanup
      Src: /src/haproxy/src/ssl_sock.c:8694,1
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/haproxy/src/ssl_sock.c:8698,1
    - Dst: BIO_meth_free
      Src: /src/haproxy/src/ssl_sock.c:8700,1
    - Dst: ssl_destroy_ocsp_update_task
      Src: /src/haproxy/src/ssl_sock.c:8703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8705
      start: 8687
    functionDepth: 1
    functionLinenumber: 8687
    functionLinenumberEnd: 8705
    functionName: __ssl_sock_deinit
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - BIO_meth_free
    - ERR_free_strings
    - ERR_remove_state
    - ssl_destroy_ocsp_update_task
    - CRYPTO_cleanup_all_ex_data
    - EVP_cleanup
    linkageType: ''
    returnType: void
    signature: void __ssl_sock_deinit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/haproxy/src/clock.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: now_mono_time
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 2
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t now_mono_time(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/haproxy/src/clock.c:79,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/clock.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: now_mono_time_fast
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    - now_mono_time
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t now_mono_time_fast(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/haproxy/src/clock.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: now_cpu_time
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 1
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t now_cpu_time(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: now_mono_time_fast
      Src: /src/haproxy/src/clock.c:117,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:118,1
    - Dst: now_cpu_time
      Src: /src/haproxy/src/clock.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: now_cpu_time_fast
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 1
    functionsReached:
    - unlikely
    - now_mono_time_fast
    - now_cpu_time
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t now_cpu_time_fast(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/haproxy/src/clock.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - thr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: now_cpu_time_thread
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 1
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t now_cpu_time_thread(int thr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getcpuclockid
      Src: /src/haproxy/src/clock.c:143,1
    - Dst: pthread_self
      Src: /src/haproxy/src/clock.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: clock_set_local_source
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - pthread_getcpuclockid
    linkageType: ''
    returnType: void
    signature: void clock_set_local_source(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/haproxy/src/clock.c:164,1
    - Dst: sigaddset
      Src: /src/haproxy/src/clock.c:165,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/clock.c:166,1
    - Dst: timer_create
      Src: /src/haproxy/src/clock.c:174,1
    - Dst: timer_create
      Src: /src/haproxy/src/clock.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - tmr
    - sig
    - val
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 179
    functionName: clock_setup_signal_timer
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 1
    functionsReached:
    - ha_sigmask
    - timer_create
    - sigaddset
    - sigemptyset
    linkageType: ''
    returnType: int
    signature: int clock_setup_signal_timer(void *tmr, int sig, int val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/clock.c:206,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/clock.c:209,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/clock.c:210,1
    - Dst: _tv_ms_add
      Src: /src/haproxy/src/clock.c:231,1
    - Dst: _tv_ms_add
      Src: /src/haproxy/src/clock.c:232,1
    - Dst: tv_to_ns
      Src: /src/haproxy/src/clock.c:233,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:235,1
    - Dst: __tv_islt
      Src: /src/haproxy/src/clock.c:235,1
    - Dst: __tv_islt
      Src: /src/haproxy/src/clock.c:236,1
    - Dst: ms_to_ns
      Src: /src/haproxy/src/clock.c:237,1
    - Dst: __tv_islt
      Src: /src/haproxy/src/clock.c:238,1
    - Dst: ms_to_ns
      Src: /src/haproxy/src/clock.c:240,1
    - Dst: MAX
      Src: /src/haproxy/src/clock.c:243,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/clock.c:243,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/clock.c:249,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/clock.c:258,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:261,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - max_wait
    - interrupted
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 263
    functionName: clock_update_local_date
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 1
    functionsReached:
    - unlikely
    - HA_ATOMIC_STORE
    - _tv_ms_add
    - HA_ATOMIC_LOAD
    - tv_to_ns
    - ns_to_ms
    - gettimeofday
    - now_mono_time
    - MAX
    - ms_to_ns
    - __tv_islt
    linkageType: ''
    returnType: void
    signature: void clock_update_local_date(int max_wait, int interrupted)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/clock.c:275,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/clock.c:276,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/clock.c:296,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:298,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/clock.c:310,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/clock.c:311,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/clock.c:312,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/clock.c:322,1
    - Dst: tv_to_ns
      Src: /src/haproxy/src/clock.c:322,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/clock.c:332,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 334
    functionName: clock_update_global_date
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 1
    functionsReached:
    - unlikely
    - HA_ATOMIC_STORE
    - _HA_ATOMIC_LOAD
    - tv_to_ns
    - ns_to_ms
    - __ha_cpu_relax
    - _HA_ATOMIC_CAS
    linkageType: ''
    returnType: void
    signature: void clock_update_global_date()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: now_mono_time
      Src: /src/haproxy/src/clock.c:340,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/clock.c:342,1
    - Dst: tv_to_ns
      Src: /src/haproxy/src/clock.c:346,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/clock.c:349,1
    - Dst: sec_to_ns
      Src: /src/haproxy/src/clock.c:357,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/clock.c:360,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/clock.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 373
    functionName: clock_init_process_date
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - tv_to_ns
    - ns_to_ms
    - gettimeofday
    - clock_update_date
    - now_mono_time
    - sec_to_ns
    linkageType: ''
    returnType: void
    signature: void clock_init_process_date(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/clock.c:381,1
    - Dst: tv_to_ns
      Src: /src/haproxy/src/clock.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 382
    functionName: clock_adjust_now_offset
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - tv_to_ns
    - HA_ATOMIC_STORE
    linkageType: ''
    returnType: void
    signature: void clock_adjust_now_offset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/clock.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ofs
    argTypes:
    - llong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: clock_set_now_offset
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    linkageType: ''
    returnType: void
    signature: void clock_set_now_offset(llong ofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/clock.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: clock_get_now_offset
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: llong
    signature: llong clock_get_now_offset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/haproxy/src/clock.c:399,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/clock.c:402,1
    - Dst: now_cpu_time
      Src: /src/haproxy/src/clock.c:404,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/clock.c:405,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/clock.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 409
    functionName: clock_init_thread_date
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - now_cpu_time
    - _HA_ATOMIC_LOAD
    - gettimeofday
    - clock_update_date
    - now_mono_time
    linkageType: ''
    returnType: void
    signature: void clock_init_thread_date(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/clock.c:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 426
    functionName: clock_report_idle
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint
    signature: uint clock_report_idle(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/clock.c:462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 464
    functionName: clock_measure_idle
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    linkageType: ''
    returnType: void
    signature: void clock_measure_idle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_measure_idle
      Src: /src/haproxy/src/clock.c:473,1
    - Dst: now_cpu_time
      Src: /src/haproxy/src/clock.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - timeout
    - interrupted
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 476
    functionName: clock_leaving_poll
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - now_cpu_time
    - clock_measure_idle
    linkageType: ''
    returnType: void
    signature: void clock_leaving_poll(int timeout, int interrupted)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: now_cpu_time
      Src: /src/haproxy/src/clock.c:491,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/clock.c:492,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/clock.c:511,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:513,1
    - Dst: __tv_islt
      Src: /src/haproxy/src/clock.c:513,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:515,1
    - Dst: __tv_ms_elapsed
      Src: /src/haproxy/src/clock.c:515,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/clock.c:516,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:525,1
    - Dst: report_stolen_time
      Src: /src/haproxy/src/clock.c:530,1
    - Dst: activity_count_runtime
      Src: /src/haproxy/src/clock.c:535,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 536
    functionName: clock_entering_poll
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 1
    functionsReached:
    - unlikely
    - tv_ms_add
    - now_cpu_time
    - __tv_ms_elapsed
    - gettimeofday
    - now_mono_time
    - report_stolen_time
    - activity_count_runtime
    - __tv_islt
    linkageType: ''
    returnType: void
    signature: void clock_entering_poll(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/haproxy/src/clock.c:553,1
    - Dst: get_localtime
      Src: /src/haproxy/src/clock.c:555,1
    - Dst: get_gmt_offset
      Src: /src/haproxy/src/clock.c:556,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:557,1
    - Dst: strftime
      Src: /src/haproxy/src/clock.c:557,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/clock.c:558,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/clock.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - pad
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 576
    functionName: timeofday_as_iso_us
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - strftime
    - gettimeofday
    - get_gmt_offset
    - utoa_pad
    - strlcpy2
    - get_localtime
    linkageType: ''
    returnType: char
    signature: char *timeofday_as_iso_us(int pad)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: sock_inet4_make_foreign
      Src: /src/haproxy/src/proto_quic.c:189,1
    - Dst: sock_inet6_make_foreign
      Src: /src/haproxy/src/proto_quic.c:197,1
    - Dst: memset
      Src: /src/haproxy/src/proto_quic.c:206,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:227,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_quic.c:229,1
    - Dst: bind
      Src: /src/haproxy/src/proto_quic.c:230,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_quic.c:230,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_quic.c:236,1
    - Dst: bind
      Src: /src/haproxy/src/proto_quic.c:237,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_quic.c:237,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 4
    argNames:
    - fd
    - flags
    - local
    - remote
    argTypes:
    - int
    - int
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 251
    functionName: quic_bind_socket
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - sock_inet4_make_foreign
    - memset
    - get_addr_len
    - sock_inet6_make_foreign
    - setsockopt
    - is_inet_addr
    - bind
    linkageType: ''
    returnType: int
    signature: int quic_bind_socket(int fd, int flags, struct sockaddr_storage *local,
      struct sockaddr_storage *remote)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_quic.c:290,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_quic.c:291,1
    - Dst: obj_type
      Src: /src/haproxy/src/proto_quic.c:293,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/proto_quic.c:295,1
    - Dst: __objt_server
      Src: /src/haproxy/src/proto_quic.c:299,1
    - Dst: sock_create_server_socket
      Src: /src/haproxy/src/proto_quic.c:308,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_quic.c:327,1
    - Dst: conn_set_private
      Src: /src/haproxy/src/proto_quic.c:330,1
    - Dst: conn_set_private
      Src: /src/haproxy/src/proto_quic.c:337,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:346,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_quic.c:354,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_quic.c:360,1
    - Dst: port_range_alloc_port
      Src: /src/haproxy/src/proto_quic.c:367,1
    - Dst: set_host_port
      Src: /src/haproxy/src/proto_quic.c:374,1
    - Dst: quic_bind_socket
      Src: /src/haproxy/src/proto_quic.c:376,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:384,1
    - Dst: quic_bind_socket
      Src: /src/haproxy/src/proto_quic.c:386,1
    - Dst: unlikely
      Src: /src/haproxy/src/proto_quic.c:391,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_quic.c:392,1
    - Dst: close
      Src: /src/haproxy/src/proto_quic.c:394,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_quic.c:397,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_quic.c:399,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_quic.c:403,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_quic.c:405,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:415,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:418,1
    - Dst: connect
      Src: /src/haproxy/src/proto_quic.c:421,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_quic.c:421,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_quic.c:422,1
    - Dst: close
      Src: /src/haproxy/src/proto_quic.c:424,1
    - Dst: getsockname
      Src: /src/haproxy/src/proto_quic.c:430,1
    - Dst: fd_insert
      Src: /src/haproxy/src/proto_quic.c:436,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/proto_quic.c:437,1
    - Dst: conn_ctrl_init
      Src: /src/haproxy/src/proto_quic.c:439,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 104
    argCount: 2
    argNames:
    - conn
    - flags
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 441
    functionName: quic_connect_server
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - unlikely
    - close
    - quic_bind_socket
    - get_addr_len
    - fd_want_recv
    - setsockopt
    - __objt_proxy
    - connect
    - obj_type
    - sock_create_server_socket
    - port_range_alloc_port
    - memcpy
    - port_range_release_port
    - conn_set_private
    - conn_ctrl_init
    - send_log
    - fd_insert
    - __objt_server
    - BUG_ON
    - is_inet_addr
    - ha_alert
    - set_host_port
    - getsockname
    linkageType: ''
    returnType: int
    signature: int quic_connect_server(struct connection *conn, int flags)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:484,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:486,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:491,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:499,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:502,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/proto_quic.c:504,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/proto_quic.c:510,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_quic.c:511,1
    - Dst: get_host_port
      Src: /src/haproxy/src/proto_quic.c:511,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - listener
    - errmsg
    - errlen
    argTypes:
    - struct listener*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 514
    functionName: quic_bind_listener
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - listener_set_state
    - setsockopt
    - get_host_port
    - addr_to_str
    - snprintf
    linkageType: ''
    returnType: int
    signature: int quic_bind_listener(struct listener *listener, char *errmsg, int
      errlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fd_want_recv
      Src: /src/haproxy/src/proto_quic.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 527
    functionName: quic_enable_listener
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - fd_want_recv
    linkageType: ''
    returnType: void
    signature: void quic_enable_listener(struct listener *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/proto_quic.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: quic_disable_listener
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    linkageType: ''
    returnType: void
    signature: void quic_disable_listener(struct listener *l)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - conn
    - info
    - info_num
    argTypes:
    - struct connection*
    - long long int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 555
    functionName: quic_get_info
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_get_info(struct connection *conn, long long int *info, int
      info_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qc_bind_tid_prep
      Src: /src/haproxy/src/proto_quic.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - new_tid
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 565
    functionName: quic_bind_tid_prep
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - qc_bind_tid_prep
    linkageType: ''
    returnType: int
    signature: int quic_bind_tid_prep(struct connection *conn, int new_tid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qc_bind_tid_commit
      Src: /src/haproxy/src/proto_quic.c:570,1
    - Dst: objt_listener
      Src: /src/haproxy/src/proto_quic.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 571
    functionName: quic_bind_tid_commit
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - objt_listener
    - qc_bind_tid_commit
    linkageType: ''
    returnType: void
    signature: void quic_bind_tid_commit(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qc_bind_tid_reset
      Src: /src/haproxy/src/proto_quic.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 577
    functionName: quic_bind_tid_reset
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - qc_bind_tid_reset
    linkageType: ''
    returnType: void
    signature: void quic_bind_tid_reset(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cshared_init
      Src: /src/haproxy/src/proto_quic.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: quic_init_mem
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - cshared_init
    linkageType: ''
    returnType: int
    signature: int quic_init_mem(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/proto_quic.c:592,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_quic.c:594,1
    - Dst: malloc
      Src: /src/haproxy/src/proto_quic.c:601,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_quic.c:603,1
    - Dst: mpring_init
      Src: /src/haproxy/src/proto_quic.c:606,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/proto_quic.c:608,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_quic.c:610,1
    - Dst: tasklet_set_tid
      Src: /src/haproxy/src/proto_quic.c:614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 620
    functionName: quic_alloc_dghdlrs
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - malloc
    - calloc
    - tasklet_set_tid
    - tasklet_new
    - ha_alert
    - mpring_init
    linkageType: ''
    returnType: int
    signature: int quic_alloc_dghdlrs(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/proto_quic.c:629,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/proto_quic.c:630,1
    - Dst: free
      Src: /src/haproxy/src/proto_quic.c:632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 636
    functionName: quic_deallocate_dghdlrs
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - free
    - tasklet_free
    linkageType: ''
    returnType: int
    signature: int quic_deallocate_dghdlrs(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/src/proto_quic.c:651,1
    - Dst: socket
      Src: /src/haproxy/src/proto_quic.c:654,1
    - Dst: socket
      Src: /src/haproxy/src/proto_quic.c:655,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:667,1
    - Dst: bind
      Src: /src/haproxy/src/proto_quic.c:668,1
    - Dst: getsockname
      Src: /src/haproxy/src/proto_quic.c:674,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:680,1
    - Dst: bind
      Src: /src/haproxy/src/proto_quic.c:681,1
    - Dst: close
      Src: /src/haproxy/src/proto_quic.c:693,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 697
    functionName: quic_test_conn_socket_owner
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - setsockopt
    - bind
    - socket
    - getsockname
    - ntohl
    - close
    linkageType: ''
    returnType: int
    signature: int quic_test_conn_socket_owner(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/haproxy/src/proto_quic.c:705,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:711,1
    - Dst: close
      Src: /src/haproxy/src/proto_quic.c:722,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 724
    functionName: quic_test_gso
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - close
    - setsockopt
    - socket
    linkageType: ''
    returnType: int
    signature: int quic_test_gso(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: quic_test_conn_socket_owner
      Src: /src/haproxy/src/proto_quic.c:740,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/proto_quic.c:745,1
    - Dst: quic_test_gso
      Src: /src/haproxy/src/proto_quic.c:754,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/proto_quic.c:759,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_quic.c:769,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_quic.c:769,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 771
    functionName: quic_test_socketopts
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - strerror
    - quic_test_gso
    - quic_test_conn_socket_owner
    - ha_diag_warning
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int quic_test_socketopts(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_test_conn_socket_owner
      Src: /src/haproxy/src/proto_quic.c:779,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_quic.c:780,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_quic.c:781,1
    - Dst: quic_test_gso
      Src: /src/haproxy/src/proto_quic.c:784,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_quic.c:785,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_quic.c:786,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/proto_quic.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 790
    functionName: quic_register_build_options
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - quic_test_conn_socket_owner
    - quic_test_gso
    - memprintf
    - hap_register_build_opts
    linkageType: ''
    returnType: void
    signature: void quic_register_build_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_poll.c:45,1
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_poll.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: __fd_clo
    functionSourceFile: /src/haproxy/src/ev_poll.c
    functionUses: 0
    functionsReached:
    - hap_fd_clr
    linkageType: ''
    returnType: void
    signature: void __fd_clo(int fd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_poll.c:55,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_poll.c:56,1
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_poll.c:68,1
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_poll.c:69,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_poll.c:70,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_poll.c:71,1
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_poll.c:76,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_poll.c:78,1
    - Dst: hap_fd_set
      Src: /src/haproxy/src/ev_poll.c:80,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_poll.c:82,1
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_poll.c:86,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_poll.c:88,1
    - Dst: hap_fd_set
      Src: /src/haproxy/src/ev_poll.c:90,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_poll.c:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - fd
    - max_add_fd
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 98
    functionName: _update_fd
    functionSourceFile: /src/haproxy/src/ev_poll.c
    functionUses: 1
    functionsReached:
    - hap_fd_clr
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - hap_fd_set
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void _update_fd(int fd, int *max_add_fd)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_poll.c:121,1
    - Dst: _update_fd
      Src: /src/haproxy/src/ev_poll.c:126,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_poll.c:144,1
    - Dst: done_update_polling
      Src: /src/haproxy/src/ev_poll.c:145,1
    - Dst: _update_fd
      Src: /src/haproxy/src/ev_poll.c:150,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ev_poll.c:155,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ev_poll.c:171,1
    - Dst: thread_idle_now
      Src: /src/haproxy/src/ev_poll.c:173,1
    - Dst: thread_harmless_now
      Src: /src/haproxy/src/ev_poll.c:174,1
    - Dst: compute_poll_timeout
      Src: /src/haproxy/src/ev_poll.c:209,1
    - Dst: clock_entering_poll
      Src: /src/haproxy/src/ev_poll.c:210,1
    - Dst: poll
      Src: /src/haproxy/src/ev_poll.c:211,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/ev_poll.c:212,1
    - Dst: fd_leaving_poll
      Src: /src/haproxy/src/ev_poll.c:214,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_poll.c:226,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ev_poll.c:229,1
    - Dst: fd_update_events
      Src: /src/haproxy/src/ev_poll.c:243,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 84
    argCount: 3
    argNames:
    - p
    - exp
    - wake
    argTypes:
    - struct poller*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 245
    functionName: _do_poll
    functionSourceFile: /src/haproxy/src/ev_poll.c
    functionUses: 0
    functionsReached:
    - fd_leaving_poll
    - _HA_ATOMIC_INC
    - done_update_polling
    - poll
    - thread_harmless_now
    - thread_idle_now
    - clock_update_date
    - fd_update_events
    - _HA_ATOMIC_AND
    - compute_poll_timeout
    - _HA_ATOMIC_CAS
    - _update_fd
    - clock_entering_poll
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void _do_poll(struct poller *p, int exp, int wake)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ev_poll.c:250,1
    - Dst: vma_set_name_id
      Src: /src/haproxy/src/ev_poll.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: init_poll_per_thread
    functionSourceFile: /src/haproxy/src/ev_poll.c
    functionUses: 0
    functionsReached:
    - vma_set_name_id
    - calloc
    linkageType: ''
    returnType: int
    signature: int init_poll_per_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/ev_poll.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: deinit_poll_per_thread
    functionSourceFile: /src/haproxy/src/ev_poll.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void deinit_poll_per_thread()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ev_poll.c:283,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/ev_poll.c:285,1
    - Dst: calloc
      Src: /src/haproxy/src/ev_poll.c:286,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/ev_poll.c:288,1
    - Dst: hap_register_per_thread_init
      Src: /src/haproxy/src/ev_poll.c:290,1
    - Dst: hap_register_per_thread_deinit
      Src: /src/haproxy/src/ev_poll.c:291,1
    - Dst: free
      Src: /src/haproxy/src/ev_poll.c:296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 300
    functionName: _do_init
    functionSourceFile: /src/haproxy/src/ev_poll.c
    functionUses: 0
    functionsReached:
    - vma_set_name
    - calloc
    - free
    - hap_register_per_thread_deinit
    - hap_register_per_thread_init
    linkageType: ''
    returnType: int
    signature: int _do_init(struct poller *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/ev_poll.c:308,1
    - Dst: free
      Src: /src/haproxy/src/ev_poll.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 312
    functionName: _do_term
    functionSourceFile: /src/haproxy/src/ev_poll.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void _do_term(struct poller *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: _do_test
    functionSourceFile: /src/haproxy/src/ev_poll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _do_test(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 344
    functionName: _do_register
    functionSourceFile: /src/haproxy/src/ev_poll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _do_register(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_ZERO
      Src: /src/haproxy/src/cpuset.c:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 16
    functionName: ha_cpuset_zero
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_ZERO
    linkageType: ''
    returnType: void
    signature: void ha_cpuset_zero(struct hap_cpuset *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_size
      Src: /src/haproxy/src/cpuset.c:20,1
    - Dst: CPU_SET
      Src: /src/haproxy/src/cpuset.c:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - set
    - cpu
    argTypes:
    - struct hap_cpuset*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 33
    functionName: ha_cpuset_set
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_SET
    - ha_cpuset_size
    linkageType: ''
    returnType: int
    signature: int ha_cpuset_set(struct hap_cpuset *set, int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_size
      Src: /src/haproxy/src/cpuset.c:37,1
    - Dst: CPU_CLR
      Src: /src/haproxy/src/cpuset.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - set
    - cpu
    argTypes:
    - struct hap_cpuset*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: ha_cpuset_clr
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_CLR
    - ha_cpuset_size
    linkageType: ''
    returnType: int
    signature: int ha_cpuset_clr(struct hap_cpuset *set, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_AND
      Src: /src/haproxy/src/cpuset.c:55,1
    - Dst: CPU_AND
      Src: /src/haproxy/src/cpuset.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct hap_cpuset*
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: ha_cpuset_and
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_AND
    linkageType: ''
    returnType: void
    signature: void ha_cpuset_and(struct hap_cpuset *dst, struct hap_cpuset *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_OR
      Src: /src/haproxy/src/cpuset.c:68,1
    - Dst: CPU_OR
      Src: /src/haproxy/src/cpuset.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct hap_cpuset*
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: ha_cpuset_or
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_OR
    linkageType: ''
    returnType: void
    signature: void ha_cpuset_or(struct hap_cpuset *dst, struct hap_cpuset *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_size
      Src: /src/haproxy/src/cpuset.c:80,1
    - Dst: CPU_ISSET
      Src: /src/haproxy/src/cpuset.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - set
    - cpu
    argTypes:
    - struct hap_cpuset*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: ha_cpuset_isset
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_size
    - CPU_ISSET
    linkageType: ''
    returnType: int
    signature: int ha_cpuset_isset(const struct hap_cpuset *set, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_COUNT
      Src: /src/haproxy/src/cpuset.c:99,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/cpuset.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: ha_cpuset_count
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_COUNT
    - my_popcountl
    linkageType: ''
    returnType: int
    signature: int ha_cpuset_count(const struct hap_cpuset *set)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CPU_COUNT
      Src: /src/haproxy/src/cpuset.c:113,1
    - Dst: CPU_ISSET
      Src: /src/haproxy/src/cpuset.c:116,1
    - Dst: CPU_FFS
      Src: /src/haproxy/src/cpuset.c:122,1
    - Dst: my_ffsl
      Src: /src/haproxy/src/cpuset.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 132
    functionName: ha_cpuset_ffs
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_FFS
    - CPU_COUNT
    - my_ffsl
    - CPU_ISSET
    linkageType: ''
    returnType: int
    signature: int ha_cpuset_ffs(const struct hap_cpuset *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_ZERO
      Src: /src/haproxy/src/cpuset.c:137,1
    - Dst: CPU_OR
      Src: /src/haproxy/src/cpuset.c:138,1
    - Dst: CPU_COPY
      Src: /src/haproxy/src/cpuset.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct hap_cpuset*
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: ha_cpuset_assign
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_ZERO
    - CPU_COPY
    - CPU_OR
    linkageType: ''
    returnType: void
    signature: void ha_cpuset_assign(struct hap_cpuset *dst, struct hap_cpuset *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_EQUAL
      Src: /src/haproxy/src/cpuset.c:152,1
    - Dst: CPU_CMP
      Src: /src/haproxy/src/cpuset.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct hap_cpuset*
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: ha_cpuset_isequal
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_EQUAL
    - CPU_CMP
    linkageType: ''
    returnType: int
    signature: int ha_cpuset_isequal(const struct hap_cpuset *dst, const struct hap_cpuset
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: ha_cpuset_size
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ha_cpuset_size()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpuset.c:188,1
    - Dst: isdigit
      Src: /src/haproxy/src/cpuset.c:195,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpuset.c:196,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpuset.c:200,1
    - Dst: strchr
      Src: /src/haproxy/src/cpuset.c:202,1
    - Dst: strchr
      Src: /src/haproxy/src/cpuset.c:203,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpuset.c:206,1
    - Dst: ha_cpuset_size
      Src: /src/haproxy/src/cpuset.c:206,1
    - Dst: ha_cpuset_size
      Src: /src/haproxy/src/cpuset.c:214,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpuset.c:215,1
    - Dst: ha_cpuset_size
      Src: /src/haproxy/src/cpuset.c:216,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpuset.c:221,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - args
    - cpu_set
    - err
    argTypes:
    - char**
    - struct hap_cpuset*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 228
    functionName: parse_cpu_set
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ha_cpuset_zero
    - ha_cpuset_size
    - strchr
    - str2uic
    - isdigit
    - ha_cpuset_set
    linkageType: ''
    returnType: int
    signature: int parse_cpu_set(const char **args, struct hap_cpuset *cpu_set, char
      **err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_size
      Src: /src/haproxy/src/cpuset.c:239,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpuset.c:245,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpuset.c:248,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpuset.c:253,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpuset.c:258,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpuset.c:266,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpuset.c:268,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpuset.c:274,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 3
    argNames:
    - output
    - size
    - cpu_set
    argTypes:
    - char*
    - size_t
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 282
    functionName: print_cpu_set
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_isset
    - ha_cpuset_size
    - ha_cpuset_count
    - snprintf
    - ha_cpuset_clr
    linkageType: ''
    returnType: int
    signature: int print_cpu_set(char *output, size_t size, const struct hap_cpuset
      *cpu_set)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpuset.c:294,1
    - Dst: strrchr
      Src: /src/haproxy/src/cpuset.c:301,1
    - Dst: strtoul
      Src: /src/haproxy/src/cpuset.c:304,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpuset.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - cpumap_str
    - cpu_set
    argTypes:
    - char*
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 314
    functionName: parse_cpumap
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_set
    - ha_cpuset_zero
    - strtoul
    - strrchr
    linkageType: ''
    returnType: void
    signature: void parse_cpumap(char *cpumap_str, struct hap_cpuset *cpu_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: bbr_min_pipe_cwnd
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bbr_min_pipe_cwnd(const struct quic_cc_path *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct quic_cc_rs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: is_inflight_too_high
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_inflight_too_high(struct quic_cc_rs *rs)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 291
    functionName: bbr_is_in_a_probe_bw_state
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bbr_is_in_a_probe_bw_state(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: bbr_reset_congestion_signals
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_reset_congestion_signals(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: bbr_reset_lower_bounds
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_reset_lower_bounds(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 311
    functionName: bbr_init_round_counting
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_init_round_counting(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: bbr_reset_full_bw
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_reset_full_bw(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_bbr.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - bbr
    argTypes:
    - struct quic_cc*
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: bbr_init_pacing_rate
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: void
    signature: void bbr_init_pacing_rate(struct quic_cc *cc, struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/quic_cc_bbr.c:354,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: bbr_set_send_quantum
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - MIN
    - MAX
    linkageType: ''
    returnType: void
    signature: void bbr_set_send_quantum(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 385
    functionName: bbr_enter_startup
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_enter_startup(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: bbr_enter_drain
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_enter_drain(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: bbr_enter_probe_rtt
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_enter_probe_rtt(struct bbr *bbr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: bbr_save_cwnd
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - MAX
    linkageType: ''
    returnType: void
    signature: void bbr_save_cwnd(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_path_set
      Src: /src/haproxy/src/quic_cc_bbr.c:422,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: bbr_restore_cwnd
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - MAX
    - quic_cc_path_set
    linkageType: ''
    returnType: void
    signature: void bbr_restore_cwnd(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - bbr
    - p
    - bw
    - gain
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 438
    functionName: bbr_bdp_multiple
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bbr_bdp_multiple(struct bbr *bbr, const struct quic_cc_path
      *p,\n                                 uint64_t bw, uint64_t gain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: bbr_update_offload_budget
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_update_offload_budget(struct bbr *bbr, const struct quic_cc_path
      *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bbr_update_offload_budget
      Src: /src/haproxy/src/quic_cc_bbr.c:449,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:450,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:451,1
    - Dst: bbr_min_pipe_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bbr
    - p
    - inflight
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 456
    functionName: bbr_quantization_budget
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - MAX
    - bbr_min_pipe_cwnd
    - bbr_update_offload_budget
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bbr_quantization_budget(struct bbr *bbr,\n                                        const
      struct quic_cc_path *p,\n                                        uint64_t inflight)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bbr_bdp_multiple
      Src: /src/haproxy/src/quic_cc_bbr.c:461,1
    - Dst: bbr_quantization_budget
      Src: /src/haproxy/src/quic_cc_bbr.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bbr
    - p
    - bw
    - gain
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 463
    functionName: bbr_inflight
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_quantization_budget
    - bbr_bdp_multiple
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bbr_inflight(struct bbr *bbr, const struct quic_cc_path *p,\n
      \                            uint64_t bw, uint64_t gain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bbr_bdp_multiple
      Src: /src/haproxy/src/quic_cc_bbr.c:471,1
    - Dst: bbr_quantization_budget
      Src: /src/haproxy/src/quic_cc_bbr.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 474
    functionName: bbr_update_max_inflight
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_quantization_budget
    - bbr_bdp_multiple
    linkageType: ''
    returnType: void
    signature: void bbr_update_max_inflight(struct bbr *bbr, const struct quic_cc_path
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - bbr
    - p
    - pacing_gain
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 490
    functionName: bbr_set_pacing_rate_with_gain
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void bbr_set_pacing_rate_with_gain(struct bbr *bbr,\n                                          struct
      quic_cc_path *p,\n                                          uint64_t pacing_gain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bbr_set_pacing_rate_with_gain
      Src: /src/haproxy/src/quic_cc_bbr.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: bbr_set_pacing_rate
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_set_pacing_rate_with_gain
    linkageType: ''
    returnType: void
    signature: void bbr_set_pacing_rate(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bbr_bdp_multiple
      Src: /src/haproxy/src/quic_cc_bbr.c:500,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:502,1
    - Dst: bbr_min_pipe_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 503
    functionName: bbr_probe_rtt_cwnd
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - MAX
    - bbr_min_pipe_cwnd
    - bbr_bdp_multiple
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bbr_probe_rtt_cwnd(struct bbr *bbr, const struct quic_cc_path
      *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/quic_cc_bbr.c:510,1
    - Dst: bbr_probe_rtt_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bbr
    - p
    - cwnd
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: bbr_bound_cwnd_for_probe_rtt
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - MIN
    - bbr_probe_rtt_cwnd
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bbr_bound_cwnd_for_probe_rtt(struct bbr *bbr,\n                                             const
      struct quic_cc_path *p,\n                                             uint64_t
      cwnd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:528,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:529,1
    - Dst: bbr_min_pipe_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 530
    functionName: bbr_inflight_with_headroom
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_min_pipe_cwnd
    - MAX
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bbr_inflight_with_headroom(struct bbr *bbr,\n                                           const
      struct quic_cc_path *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bbr_is_in_a_probe_bw_state
      Src: /src/haproxy/src/quic_cc_bbr.c:538,1
    - Dst: bbr_inflight_with_headroom
      Src: /src/haproxy/src/quic_cc_bbr.c:541,1
    - Dst: MIN
      Src: /src/haproxy/src/quic_cc_bbr.c:544,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:545,1
    - Dst: bbr_min_pipe_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:545,1
    - Dst: MIN
      Src: /src/haproxy/src/quic_cc_bbr.c:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - bbr
    - p
    - cwnd
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 547
    functionName: bbr_bound_cwnd_for_model
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_min_pipe_cwnd
    - MAX
    - bbr_inflight_with_headroom
    - MIN
    - bbr_is_in_a_probe_bw_state
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bbr_bound_cwnd_for_model(struct bbr *bbr,\n                                         const
      struct quic_cc_path *p,\n                                         uint64_t cwnd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bbr_update_max_inflight
      Src: /src/haproxy/src/quic_cc_bbr.c:553,1
    - Dst: MIN
      Src: /src/haproxy/src/quic_cc_bbr.c:555,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:559,1
    - Dst: bbr_min_pipe_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:559,1
    - Dst: bbr_bound_cwnd_for_probe_rtt
      Src: /src/haproxy/src/quic_cc_bbr.c:560,1
    - Dst: bbr_bound_cwnd_for_model
      Src: /src/haproxy/src/quic_cc_bbr.c:561,1
    - Dst: quic_cc_path_set
      Src: /src/haproxy/src/quic_cc_bbr.c:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - bbr
    - p
    - acked
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 564
    functionName: bbr_set_cwnd
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_bound_cwnd_for_model
    - bbr_min_pipe_cwnd
    - MAX
    - bbr_bound_cwnd_for_probe_rtt
    - MIN
    - bbr_update_max_inflight
    - quic_cc_path_set
    linkageType: ''
    returnType: void
    signature: void bbr_set_cwnd(struct bbr *bbr, struct quic_cc_path *p, uint32_t
      acked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_bbr.c:568,1
    - Dst: quic_cc_drs_init
      Src: /src/haproxy/src/quic_cc_bbr.c:570,1
    - Dst: wf_init
      Src: /src/haproxy/src/quic_cc_bbr.c:571,1
    - Dst: wf_init
      Src: /src/haproxy/src/quic_cc_bbr.c:572,1
    - Dst: bbr_reset_congestion_signals
      Src: /src/haproxy/src/quic_cc_bbr.c:583,1
    - Dst: bbr_reset_lower_bounds
      Src: /src/haproxy/src/quic_cc_bbr.c:584,1
    - Dst: bbr_init_round_counting
      Src: /src/haproxy/src/quic_cc_bbr.c:585,1
    - Dst: bbr_reset_full_bw
      Src: /src/haproxy/src/quic_cc_bbr.c:586,1
    - Dst: bbr_init_pacing_rate
      Src: /src/haproxy/src/quic_cc_bbr.c:587,1
    - Dst: bbr_enter_startup
      Src: /src/haproxy/src/quic_cc_bbr.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 618
    functionName: bbr_init
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_init_round_counting
    - quic_cc_priv
    - bbr_enter_startup
    - bbr_reset_congestion_signals
    - wf_init
    - quic_cc_drs_init
    - bbr_init_pacing_rate
    - bbr_reset_full_bw
    - bbr_reset_lower_bounds
    linkageType: ''
    returnType: int
    signature: int bbr_init(struct quic_cc *cc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bbr_reset_full_bw
      Src: /src/haproxy/src/quic_cc_bbr.c:645,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 657
    functionName: bbr_check_full_bw_reached
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_reset_full_bw
    linkageType: ''
    returnType: void
    signature: void bbr_check_full_bw_reached(struct bbr *bbr, struct quic_cc_path
      *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_inflight_too_high
      Src: /src/haproxy/src/quic_cc_bbr.c:691,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:697,1
    - Dst: bbr_bdp_multiple
      Src: /src/haproxy/src/quic_cc_bbr.c:697,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 698
    functionName: bbr_check_startup_high_loss
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - is_inflight_too_high
    - bbr_bdp_multiple
    - MAX
    linkageType: ''
    returnType: void
    signature: void bbr_check_startup_high_loss(struct bbr *bbr, const struct quic_cc_path
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: bbr_start_round
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_start_round(struct bbr *bbr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bbr_start_round
      Src: /src/haproxy/src/quic_cc_bbr.c:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - bbr
    - delivered
    argTypes:
    - struct bbr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 719
    functionName: bbr_update_round
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_start_round
    linkageType: ''
    returnType: void
    signature: void bbr_update_round(struct bbr *bbr, uint32_t delivered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_random32
      Src: /src/haproxy/src/quic_cc_bbr.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 728
    functionName: bbr_pick_probe_wait
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - ha_random32
    linkageType: ''
    returnType: void
    signature: void bbr_pick_probe_wait(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/quic_cc_bbr.c:734,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 736
    functionName: bbr_raise_inflight_hi_slope
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - MIN
    - MAX
    linkageType: ''
    returnType: void
    signature: void bbr_raise_inflight_hi_slope(struct bbr *bbr, struct quic_cc_path
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 741
    functionName: bbr_advance_max_bw_filter
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_advance_max_bw_filter(struct bbr *bbr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bbr_reset_congestion_signals
      Src: /src/haproxy/src/quic_cc_bbr.c:770,1
    - Dst: bbr_pick_probe_wait
      Src: /src/haproxy/src/quic_cc_bbr.c:772,1
    - Dst: bbr_start_round
      Src: /src/haproxy/src/quic_cc_bbr.c:774,1
    - Dst: bbr_advance_max_bw_filter
      Src: /src/haproxy/src/quic_cc_bbr.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 780
    functionName: bbr_start_probe_bw_down
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_advance_max_bw_filter
    - bbr_pick_probe_wait
    - bbr_reset_congestion_signals
    - bbr_start_round
    linkageType: ''
    returnType: void
    signature: void bbr_start_probe_bw_down(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 801
    functionName: bbr_start_probe_bw_cruise
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_start_probe_bw_cruise(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bbr_reset_lower_bounds
      Src: /src/haproxy/src/quic_cc_bbr.c:805,1
    - Dst: bbr_start_round
      Src: /src/haproxy/src/quic_cc_bbr.c:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 812
    functionName: bbr_start_probe_bw_refill
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_start_round
    - bbr_reset_lower_bounds
    linkageType: ''
    returnType: void
    signature: void bbr_start_probe_bw_refill(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bbr_start_round
      Src: /src/haproxy/src/quic_cc_bbr.c:816,1
    - Dst: bbr_reset_full_bw
      Src: /src/haproxy/src/quic_cc_bbr.c:817,1
    - Dst: bbr_raise_inflight_hi_slope
      Src: /src/haproxy/src/quic_cc_bbr.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 823
    functionName: bbr_start_probe_bw_up
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_raise_inflight_hi_slope
    - bbr_reset_full_bw
    - bbr_start_round
    linkageType: ''
    returnType: void
    signature: void bbr_start_probe_bw_up(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bbr_reset_lower_bounds
      Src: /src/haproxy/src/quic_cc_bbr.c:840,1
    - Dst: bbr_start_probe_bw_down
      Src: /src/haproxy/src/quic_cc_bbr.c:842,1
    - Dst: bbr_start_probe_bw_cruise
      Src: /src/haproxy/src/quic_cc_bbr.c:843,1
    - Dst: bbr_enter_startup
      Src: /src/haproxy/src/quic_cc_bbr.c:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 838
    functionDepth: 3
    functionLinenumber: 838
    functionLinenumberEnd: 847
    functionName: bbr_exit_probe_rtt
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_start_probe_bw_down
    - bbr_start_probe_bw_cruise
    - bbr_enter_startup
    - bbr_reset_lower_bounds
    linkageType: ''
    returnType: void
    signature: void bbr_exit_probe_rtt(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bbr_inflight
      Src: /src/haproxy/src/quic_cc_bbr.c:851,1
    - Dst: MIN
      Src: /src/haproxy/src/quic_cc_bbr.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 853
    functionName: bbr_target_inflight
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_inflight
    - MIN
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bbr_target_inflight(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:862,1
    - Dst: bbr_target_inflight
      Src: /src/haproxy/src/quic_cc_bbr.c:863,1
    - Dst: bbr_start_probe_bw_down
      Src: /src/haproxy/src/quic_cc_bbr.c:866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - bbr
    - p
    - rs
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - struct quic_cc_rs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 855
    functionDepth: 4
    functionLinenumber: 855
    functionLinenumberEnd: 867
    functionName: bbr_handle_inflight_too_high
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_start_probe_bw_down
    - bbr_target_inflight
    - MAX
    linkageType: ''
    returnType: void
    signature: "void bbr_handle_inflight_too_high(struct bbr *bbr,\n                                         struct
      quic_cc_path *p,\n                                         struct quic_cc_rs
      *rs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_inflight_too_high
      Src: /src/haproxy/src/quic_cc_bbr.c:875,1
    - Dst: bbr_handle_inflight_too_high
      Src: /src/haproxy/src/quic_cc_bbr.c:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 873
    functionDepth: 5
    functionLinenumber: 873
    functionLinenumberEnd: 882
    functionName: bbr_is_inflight_too_high
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - is_inflight_too_high
    - bbr_handle_inflight_too_high
    linkageType: ''
    returnType: int
    signature: int bbr_is_inflight_too_high(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bbr_raise_inflight_hi_slope
      Src: /src/haproxy/src/quic_cc_bbr.c:899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - bbr
    - p
    - acked
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 900
    functionName: bbr_probe_inflight_hi_upward
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_raise_inflight_hi_slope
    linkageType: ''
    returnType: void
    signature: void bbr_probe_inflight_hi_upward(struct bbr *bbr, struct quic_cc_path
      *p, uint32_t acked)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bbr_is_inflight_too_high
      Src: /src/haproxy/src/quic_cc_bbr.c:908,1
    - Dst: bbr_probe_inflight_hi_upward
      Src: /src/haproxy/src/quic_cc_bbr.c:918,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - bbr
    - p
    - acked
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 905
    functionDepth: 6
    functionLinenumber: 905
    functionLinenumberEnd: 919
    functionName: bbr_adapt_upper_bounds
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_is_inflight_too_high
    - bbr_probe_inflight_hi_upward
    linkageType: ''
    returnType: void
    signature: "void bbr_adapt_upper_bounds(struct bbr *bbr, struct quic_cc_path *p,\n
      \                                  uint32_t acked)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_lt
      Src: /src/haproxy/src/quic_cc_bbr.c:925,1
    - Dst: tick_add
      Src: /src/haproxy/src/quic_cc_bbr.c:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bbr
    - interval
    argTypes:
    - struct bbr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 926
    functionName: bbr_has_elapsed_in_phase
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - tick_add
    - tick_is_lt
    linkageType: ''
    returnType: int
    signature: "int bbr_has_elapsed_in_phase(struct bbr *bbr,\n                                           uint32_t
      interval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bbr_target_inflight
      Src: /src/haproxy/src/quic_cc_bbr.c:932,1
    - Dst: MIN
      Src: /src/haproxy/src/quic_cc_bbr.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 928
    functionDepth: 4
    functionLinenumber: 928
    functionLinenumberEnd: 934
    functionName: bbr_is_reno_coexistence_probe_time
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - MIN
    - bbr_target_inflight
    linkageType: ''
    returnType: int
    signature: int bbr_is_reno_coexistence_probe_time(struct bbr *bbr, struct quic_cc_path
      *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bbr_has_elapsed_in_phase
      Src: /src/haproxy/src/quic_cc_bbr.c:939,1
    - Dst: bbr_is_reno_coexistence_probe_time
      Src: /src/haproxy/src/quic_cc_bbr.c:940,1
    - Dst: bbr_start_probe_bw_refill
      Src: /src/haproxy/src/quic_cc_bbr.c:941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 937
    functionDepth: 5
    functionLinenumber: 937
    functionLinenumberEnd: 946
    functionName: bbr_is_time_to_probe_bw
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_start_probe_bw_refill
    - bbr_is_reno_coexistence_probe_time
    - bbr_has_elapsed_in_phase
    linkageType: ''
    returnType: int
    signature: int bbr_is_time_to_probe_bw(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bbr_inflight_with_headroom
      Src: /src/haproxy/src/quic_cc_bbr.c:970,1
    - Dst: bbr_inflight
      Src: /src/haproxy/src/quic_cc_bbr.c:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 968
    functionDepth: 3
    functionLinenumber: 968
    functionLinenumberEnd: 977
    functionName: bbr_is_time_to_cruise
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_inflight
    - bbr_inflight_with_headroom
    linkageType: ''
    returnType: int
    signature: int bbr_is_time_to_cruise(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bbr_reset_full_bw
      Src: /src/haproxy/src/quic_cc_bbr.c:983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 991
    functionName: bbr_is_time_to_go_down
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_reset_full_bw
    linkageType: ''
    returnType: int
    signature: int bbr_is_time_to_go_down(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_cc_bbr.c:995,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/quic_cc_bbr.c:996,1
    - Dst: bbr_restore_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:999,1
    - Dst: bbr_exit_probe_rtt
      Src: /src/haproxy/src/quic_cc_bbr.c:1000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 993
    functionDepth: 4
    functionLinenumber: 993
    functionLinenumberEnd: 1002
    functionName: bbr_check_probe_rtt_done
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_exit_probe_rtt
    - tick_isset
    - bbr_restore_cwnd
    - tick_is_lt
    linkageType: ''
    returnType: void
    signature: void bbr_check_probe_rtt_done(struct bbr *bbr, struct quic_cc_path
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1009
    functionName: bbr_mark_connection_app_limited
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_mark_connection_app_limited(struct bbr *bbr, struct quic_cc_path
      *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bbr_update_round
      Src: /src/haproxy/src/quic_cc_bbr.c:1016,1
    - Dst: wf_max_update
      Src: /src/haproxy/src/quic_cc_bbr.c:1018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - bbr
    - p
    - delivered
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1020
    functionName: bbr_update_max_bw
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_update_round
    - wf_max_update
    linkageType: ''
    returnType: void
    signature: "void bbr_update_max_bw(struct bbr *bbr, struct quic_cc_path *p,\n
      \                             uint32_t delivered)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1028
    functionName: bbr_init_lower_bounds
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_init_lower_bounds(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:1032,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1035
    functionName: bbr_loss_lower_bounds
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - MAX
    linkageType: ''
    returnType: void
    signature: void bbr_loss_lower_bounds(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1042
    functionName: bbr_is_probing_bw
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bbr_is_probing_bw(struct bbr *bbr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bbr_is_probing_bw
      Src: /src/haproxy/src/quic_cc_bbr.c:1046,1
    - Dst: bbr_init_lower_bounds
      Src: /src/haproxy/src/quic_cc_bbr.c:1050,1
    - Dst: bbr_loss_lower_bounds
      Src: /src/haproxy/src/quic_cc_bbr.c:1051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1044
    functionDepth: 2
    functionLinenumber: 1044
    functionLinenumberEnd: 1053
    functionName: bbr_adapt_lower_bounds_from_congestion
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_init_lower_bounds
    - bbr_is_probing_bw
    - bbr_loss_lower_bounds
    linkageType: ''
    returnType: void
    signature: void bbr_adapt_lower_bounds_from_congestion(struct bbr *bbr, struct
      quic_cc_path *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:1061,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:1062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1067
    functionName: bbr_update_latest_delivery_signals
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - MAX
    linkageType: ''
    returnType: void
    signature: "void bbr_update_latest_delivery_signals(struct bbr *bbr,\n                                               struct
      quic_cc_path *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bbr_update_max_bw
      Src: /src/haproxy/src/quic_cc_bbr.c:1072,1
    - Dst: bbr_adapt_lower_bounds_from_congestion
      Src: /src/haproxy/src/quic_cc_bbr.c:1086,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - bbr
    - p
    - bytes_lost
    - delivered
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1069
    functionDepth: 3
    functionLinenumber: 1069
    functionLinenumberEnd: 1088
    functionName: bbr_update_congestion_signals
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_adapt_lower_bounds_from_congestion
    - bbr_update_max_bw
    linkageType: ''
    returnType: void
    signature: "void bbr_update_congestion_signals(struct bbr *bbr, struct quic_cc_path
      *p,\n                                          uint64_t bytes_lost, uint64_t
      delivered)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/quic_cc_bbr.c:1106,1
    - Dst: wf_max_update
      Src: /src/haproxy/src/quic_cc_bbr.c:1108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - bbr
    - p
    - acked
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1109
    functionName: bbr_update_ack_aggregation
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - wf_max_update
    - MIN
    linkageType: ''
    returnType: void
    signature: "void bbr_update_ack_aggregation(struct bbr *bbr,\n                                       struct
      quic_cc_path *p,\n                                       uint32_t acked)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bbr_check_startup_high_loss
      Src: /src/haproxy/src/quic_cc_bbr.c:1119,1
    - Dst: bbr_enter_drain
      Src: /src/haproxy/src/quic_cc_bbr.c:1121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1117
    functionDepth: 2
    functionLinenumber: 1117
    functionLinenumberEnd: 1122
    functionName: bbr_check_startup_done
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_enter_drain
    - bbr_check_startup_high_loss
    linkageType: ''
    returnType: void
    signature: void bbr_check_startup_done(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bbr_inflight
      Src: /src/haproxy/src/quic_cc_bbr.c:1133,1
    - Dst: bbr_start_probe_bw_down
      Src: /src/haproxy/src/quic_cc_bbr.c:1134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1135
    functionName: bbr_check_drain_done
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_inflight
    - bbr_start_probe_bw_down
    linkageType: ''
    returnType: void
    signature: "void bbr_check_drain_done(struct bbr *bbr,\n                                 struct
      quic_cc_path *p)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: bbr_adapt_upper_bounds
      Src: /src/haproxy/src/quic_cc_bbr.c:1144,1
    - Dst: bbr_is_in_a_probe_bw_state
      Src: /src/haproxy/src/quic_cc_bbr.c:1145,1
    - Dst: bbr_is_time_to_probe_bw
      Src: /src/haproxy/src/quic_cc_bbr.c:1150,1
    - Dst: bbr_is_time_to_cruise
      Src: /src/haproxy/src/quic_cc_bbr.c:1153,1
    - Dst: bbr_start_probe_bw_cruise
      Src: /src/haproxy/src/quic_cc_bbr.c:1154,1
    - Dst: bbr_is_time_to_probe_bw
      Src: /src/haproxy/src/quic_cc_bbr.c:1158,1
    - Dst: bbr_start_probe_bw_up
      Src: /src/haproxy/src/quic_cc_bbr.c:1166,1
    - Dst: bbr_is_time_to_go_down
      Src: /src/haproxy/src/quic_cc_bbr.c:1171,1
    - Dst: bbr_start_probe_bw_down
      Src: /src/haproxy/src/quic_cc_bbr.c:1172,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - bbr
    - p
    - acked
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1138
    functionDepth: 7
    functionLinenumber: 1138
    functionLinenumberEnd: 1178
    functionName: bbr_update_probe_bw_cycle_phase
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_adapt_upper_bounds
    - bbr_is_time_to_cruise
    - bbr_start_probe_bw_down
    - bbr_start_probe_bw_cruise
    - bbr_is_time_to_go_down
    - bbr_is_in_a_probe_bw_state
    - bbr_start_probe_bw_up
    - bbr_is_time_to_probe_bw
    linkageType: ''
    returnType: void
    signature: "void bbr_update_probe_bw_cycle_phase(struct bbr *bbr, struct quic_cc_path
      *p,\n                                            uint32_t acked)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_lt
      Src: /src/haproxy/src/quic_cc_bbr.c:1194,1
    - Dst: tick_add
      Src: /src/haproxy/src/quic_cc_bbr.c:1194,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/quic_cc_bbr.c:1202,1
    - Dst: tick_add
      Src: /src/haproxy/src/quic_cc_bbr.c:1202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - bbr
    - ack_rtt
    argTypes:
    - struct bbr*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1207
    functionName: bbr_update_min_rtt
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - tick_add
    - tick_is_lt
    linkageType: ''
    returnType: void
    signature: void bbr_update_min_rtt(struct bbr *bbr, uint32_t ack_rtt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bbr_mark_connection_app_limited
      Src: /src/haproxy/src/quic_cc_bbr.c:1212,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_cc_bbr.c:1213,1
    - Dst: bbr_probe_rtt_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:1214,1
    - Dst: tick_add
      Src: /src/haproxy/src/quic_cc_bbr.c:1216,1
    - Dst: bbr_start_round
      Src: /src/haproxy/src/quic_cc_bbr.c:1219,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_cc_bbr.c:1221,1
    - Dst: bbr_check_probe_rtt_done
      Src: /src/haproxy/src/quic_cc_bbr.c:1225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1209
    functionDepth: 5
    functionLinenumber: 1209
    functionLinenumberEnd: 1227
    functionName: bbr_handle_probe_rtt
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_mark_connection_app_limited
    - bbr_check_probe_rtt_done
    - bbr_probe_rtt_cwnd
    - bbr_start_round
    - tick_isset
    - tick_add
    linkageType: ''
    returnType: void
    signature: void bbr_handle_probe_rtt(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bbr_enter_probe_rtt
      Src: /src/haproxy/src/quic_cc_bbr.c:1236,1
    - Dst: bbr_save_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:1237,1
    - Dst: bbr_start_round
      Src: /src/haproxy/src/quic_cc_bbr.c:1239,1
    - Dst: bbr_handle_probe_rtt
      Src: /src/haproxy/src/quic_cc_bbr.c:1243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1232
    functionDepth: 6
    functionLinenumber: 1232
    functionLinenumberEnd: 1246
    functionName: bbr_check_probe_rtt
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_enter_probe_rtt
    - bbr_handle_probe_rtt
    - bbr_save_cwnd
    - bbr_start_round
    linkageType: ''
    returnType: void
    signature: void bbr_check_probe_rtt(struct bbr *bbr, struct quic_cc_path *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1255
    functionName: bbr_advance_latest_delivery_signals
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void bbr_advance_latest_delivery_signals(struct bbr *bbr,\n                                                       struct
      quic_cc_path *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/quic_cc_bbr.c:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1260
    functionName: bbr_bound_bw_for_model
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - MIN
    linkageType: ''
    returnType: void
    signature: void bbr_bound_bw_for_model(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bbr_update_latest_delivery_signals
      Src: /src/haproxy/src/quic_cc_bbr.c:1269,1
    - Dst: bbr_update_congestion_signals
      Src: /src/haproxy/src/quic_cc_bbr.c:1270,1
    - Dst: bbr_update_ack_aggregation
      Src: /src/haproxy/src/quic_cc_bbr.c:1271,1
    - Dst: bbr_check_full_bw_reached
      Src: /src/haproxy/src/quic_cc_bbr.c:1272,1
    - Dst: bbr_check_startup_done
      Src: /src/haproxy/src/quic_cc_bbr.c:1273,1
    - Dst: bbr_check_drain_done
      Src: /src/haproxy/src/quic_cc_bbr.c:1274,1
    - Dst: bbr_update_probe_bw_cycle_phase
      Src: /src/haproxy/src/quic_cc_bbr.c:1275,1
    - Dst: bbr_update_min_rtt
      Src: /src/haproxy/src/quic_cc_bbr.c:1276,1
    - Dst: bbr_check_probe_rtt
      Src: /src/haproxy/src/quic_cc_bbr.c:1277,1
    - Dst: bbr_advance_latest_delivery_signals
      Src: /src/haproxy/src/quic_cc_bbr.c:1278,1
    - Dst: bbr_bound_bw_for_model
      Src: /src/haproxy/src/quic_cc_bbr.c:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 6
    argNames:
    - bbr
    - p
    - acked
    - delivered
    - ack_rtt
    - bytes_lost
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1262
    functionDepth: 8
    functionLinenumber: 1262
    functionLinenumberEnd: 1280
    functionName: bbr_update_model_and_state
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_check_full_bw_reached
    - bbr_check_drain_done
    - bbr_update_min_rtt
    - bbr_update_ack_aggregation
    - bbr_check_probe_rtt
    - bbr_advance_latest_delivery_signals
    - bbr_update_latest_delivery_signals
    - bbr_update_congestion_signals
    - bbr_check_startup_done
    - bbr_bound_bw_for_model
    - bbr_update_probe_bw_cycle_phase
    linkageType: ''
    returnType: void
    signature: "void bbr_update_model_and_state(struct bbr *bbr,\n                                       struct
      quic_cc_path *p,\n                                       uint32_t acked,\n                                       uint32_t
      delivered,\n                                       uint32_t ack_rtt,\n                                       uint32_t
      bytes_lost)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bbr_set_pacing_rate
      Src: /src/haproxy/src/quic_cc_bbr.c:1286,1
    - Dst: bbr_set_send_quantum
      Src: /src/haproxy/src/quic_cc_bbr.c:1287,1
    - Dst: bbr_set_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:1288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - bbr
    - p
    - acked
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1282
    functionDepth: 4
    functionLinenumber: 1282
    functionLinenumberEnd: 1289
    functionName: bbr_update_control_parameters
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_set_cwnd
    - bbr_set_send_quantum
    - bbr_set_pacing_rate
    linkageType: ''
    returnType: void
    signature: "void bbr_update_control_parameters(struct bbr *bbr,\n                                          struct
      quic_cc_path *p,\n                                          uint32_t acked)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_cc_bbr.c:1293,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/quic_cc_bbr.c:1294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - ts
    argTypes:
    - struct quic_cc_path*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1291
    functionDepth: 1
    functionLinenumber: 1291
    functionLinenumberEnd: 1295
    functionName: in_recovery_period
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - tick_isset
    - tick_is_le
    linkageType: ''
    returnType: int
    signature: int in_recovery_period(struct quic_cc_path *p, uint32_t ts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_cc_bbr.c:1302,1
    - Dst: in_recovery_period
      Src: /src/haproxy/src/quic_cc_bbr.c:1303,1
    - Dst: bbr_restore_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:1306,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_cc_bbr.c:1312,1
    - Dst: bbr_save_cwnd
      Src: /src/haproxy/src/quic_cc_bbr.c:1318,1
    - Dst: quic_cc_path_set
      Src: /src/haproxy/src/quic_cc_bbr.c:1319,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_bbr.c:1319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - bbr
    - p
    - largest_pkt_sent_ts
    - acked
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1297
    functionDepth: 4
    functionLinenumber: 1297
    functionLinenumberEnd: 1322
    functionName: bbr_handle_recovery
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_save_cwnd
    - in_recovery_period
    - MAX
    - tick_isset
    - bbr_restore_cwnd
    - quic_cc_path_set
    linkageType: ''
    returnType: void
    signature: "void bbr_handle_recovery(struct bbr *bbr, struct quic_cc_path *p,\n
      \                               unsigned int largest_pkt_sent_ts,\n                                uint32_t
      acked)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_bbr.c:1331,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_bbr.c:1332,1
    - Dst: bbr_handle_recovery
      Src: /src/haproxy/src/quic_cc_bbr.c:1334,1
    - Dst: bbr_update_model_and_state
      Src: /src/haproxy/src/quic_cc_bbr.c:1335,1
    - Dst: bbr_update_control_parameters
      Src: /src/haproxy/src/quic_cc_bbr.c:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - cc
    - acked
    - delivered
    - rtt
    - bytes_lost
    - largest_pkt_sent_ts
    argTypes:
    - struct quic_cc*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1327
    functionDepth: 9
    functionLinenumber: 1327
    functionLinenumberEnd: 1337
    functionName: bbr_update_on_ack
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - quic_cc_priv
    - bbr_update_control_parameters
    - container_of
    - bbr_update_model_and_state
    - bbr_handle_recovery
    linkageType: ''
    returnType: void
    signature: "void bbr_update_on_ack(struct quic_cc *cc,\n                              uint32_t
      acked, uint32_t delivered, uint32_t rtt,\n                              uint32_t
      bytes_lost, unsigned largest_pkt_sent_ts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_cc_bbr.c:1346,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_cc_bbr.c:1349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - rs
    - pkt
    argTypes:
    - struct quic_cc_rs*
    - struct quic_tx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1360
    functionName: bbr_inflight_hi_from_lost_packet
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bbr_inflight_hi_from_lost_packet(struct quic_cc_rs *rs,\n
      \                                                struct quic_tx_packet *pkt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bbr
    - C_delivered
    argTypes:
    - struct bbr*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1367
    functionName: bbr_note_loss
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bbr_note_loss(struct bbr *bbr, uint64_t C_delivered)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bbr_note_loss
      Src: /src/haproxy/src/quic_cc_bbr.c:1376,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_cc_bbr.c:1384,1
    - Dst: is_inflight_too_high
      Src: /src/haproxy/src/quic_cc_bbr.c:1388,1
    - Dst: bbr_inflight_hi_from_lost_packet
      Src: /src/haproxy/src/quic_cc_bbr.c:1389,1
    - Dst: bbr_handle_inflight_too_high
      Src: /src/haproxy/src/quic_cc_bbr.c:1390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - bbr
    - p
    - pkt
    - lost
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    - struct quic_tx_packet*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1369
    functionDepth: 5
    functionLinenumber: 1369
    functionLinenumberEnd: 1392
    functionName: bbr_handle_lost_packet
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_note_loss
    - bbr_inflight_hi_from_lost_packet
    - is_inflight_too_high
    - BUG_ON
    - bbr_handle_inflight_too_high
    linkageType: ''
    returnType: void
    signature: "void bbr_handle_lost_packet(struct bbr *bbr, struct quic_cc_path *p,\n
      \                                  struct quic_tx_packet *pkt,\n                                   uint32_t
      lost)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_bbr.c:1403,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_bbr.c:1404,1
    - Dst: bbr_handle_lost_packet
      Src: /src/haproxy/src/quic_cc_bbr.c:1413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cc
    - pkt
    - lost
    argTypes:
    - struct quic_cc*
    - struct quic_tx_packet*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1400
    functionDepth: 6
    functionLinenumber: 1400
    functionLinenumberEnd: 1414
    functionName: bbr_update_on_loss
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - container_of
    - quic_cc_priv
    - bbr_handle_lost_packet
    linkageType: ''
    returnType: void
    signature: "void bbr_update_on_loss(struct quic_cc *cc, struct quic_tx_packet
      *pkt,\n                               uint32_t lost)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bbr_is_in_a_probe_bw_state
      Src: /src/haproxy/src/quic_cc_bbr.c:1424,1
    - Dst: bbr_set_pacing_rate_with_gain
      Src: /src/haproxy/src/quic_cc_bbr.c:1425,1
    - Dst: bbr_check_probe_rtt_done
      Src: /src/haproxy/src/quic_cc_bbr.c:1427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - bbr
    - p
    argTypes:
    - struct bbr*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1416
    functionDepth: 5
    functionLinenumber: 1416
    functionLinenumberEnd: 1428
    functionName: bbr_handle_restart_from_idle
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_set_pacing_rate_with_gain
    - bbr_check_probe_rtt_done
    - bbr_is_in_a_probe_bw_state
    linkageType: ''
    returnType: void
    signature: void bbr_handle_restart_from_idle(struct bbr *bbr, struct quic_cc_path
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_bbr.c:1433,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_bbr.c:1434,1
    - Dst: bbr_handle_restart_from_idle
      Src: /src/haproxy/src/quic_cc_bbr.c:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1431
    functionDepth: 6
    functionLinenumber: 1431
    functionLinenumberEnd: 1437
    functionName: bbr_on_transmit
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - container_of
    - bbr_handle_restart_from_idle
    - quic_cc_priv
    linkageType: ''
    returnType: void
    signature: void bbr_on_transmit(struct quic_cc *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_bbr.c:1442,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_bbr.c:1443,1
    - Dst: quic_cc_drs_on_pkt_sent
      Src: /src/haproxy/src/quic_cc_bbr.c:1445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - pkt
    argTypes:
    - struct quic_cc*
    - struct quic_tx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1446
    functionName: bbr_drs_on_transmit
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - container_of
    - quic_cc_drs_on_pkt_sent
    - quic_cc_priv
    linkageType: ''
    returnType: void
    signature: void bbr_drs_on_transmit(struct quic_cc *cc, struct quic_tx_packet
      *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_bbr.c:1451,1
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_bbr.c:1452,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_cc_bbr.c:1455,1
    - Dst: in_recovery_period
      Src: /src/haproxy/src/quic_cc_bbr.c:1455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - cc
    - ts
    argTypes:
    - struct quic_cc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1459
    functionName: bbr_congestion_event
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - quic_cc_priv
    - tick_isset
    - in_recovery_period
    - container_of
    linkageType: ''
    returnType: void
    signature: void bbr_congestion_event(struct quic_cc *cc, uint32_t ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_bbr.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1465
    functionName: bbr_get_drs
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - quic_cc_priv
    linkageType: ''
    returnType: struct quic_cc_drs
    signature: struct quic_cc_drs *bbr_get_drs(struct quic_cc *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_bbr.c:1470,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_bbr.c:1471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1474
    functionName: bbr_pacing_inter
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - container_of
    - quic_cc_priv
    linkageType: ''
    returnType: uint
    signature: uint bbr_pacing_inter(const struct quic_cc *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_bbr.c:1479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1482
    functionName: bbr_pacing_burst
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: uint
    signature: uint bbr_pacing_burst(const struct quic_cc *cc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_bbr.c:1487,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_bbr.c:1489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - cc
    - sent
    argTypes:
    - struct quic_cc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1499
    functionName: bbr_check_app_limited
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - container_of
    - quic_cc_priv
    linkageType: ''
    returnType: void
    signature: void bbr_check_app_limited(const struct quic_cc *cc, int sent)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - bbr
    argTypes:
    - struct bbr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1521
    functionName: bbr_state_str
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *bbr_state_str(struct bbr *bbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_bbr.c:1526,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cc_bbr.c:1528,1
    - Dst: bbr_state_str
      Src: /src/haproxy/src/quic_cc_bbr.c:1530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - p
    argTypes:
    - struct buffer*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1532
    functionName: bbr_state_cli
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - bbr_state_str
    - chunk_appendf
    - quic_cc_priv
    linkageType: ''
    returnType: void
    signature: void bbr_state_cli(struct buffer *buf, const struct quic_cc_path *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_cc_bbr.c:1552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1553
    functionName: bbr_check
    functionSourceFile: /src/haproxy/src/quic_cc_bbr.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void bbr_check(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/ring.c:49,1
    - Dst: memset
      Src: /src/haproxy/src/ring.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - ring
    - area
    - size
    - reset
    argTypes:
    - struct ring*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 67
    functionName: ring_init
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 1
    functionsReached:
    - memset
    - MT_LIST_INIT
    linkageType: ''
    returnType: void
    signature: void ring_init(struct ring *ring, void *area, size_t size, int reset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ha_aligned_alloc_typed
      Src: /src/haproxy/src/ring.c:86,1
    - Dst: typeof
      Src: /src/haproxy/src/ring.c:86,1
    - Dst: ha_aligned_alloc
      Src: /src/haproxy/src/ring.c:91,1
    - Dst: ring_init
      Src: /src/haproxy/src/ring.c:98,1
    - Dst: ha_aligned_free
      Src: /src/haproxy/src/ring.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - area
    - size
    - reset
    argTypes:
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 104
    functionName: ring_make_from_area
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - typeof
    - ring_init
    - ha_aligned_alloc_typed
    - ha_aligned_free
    - ha_aligned_alloc
    linkageType: ''
    returnType: struct ring
    signature: struct ring *ring_make_from_area(void *area, size_t size, int reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ring_make_from_area
      Src: /src/haproxy/src/ring.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: ring_new
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - ring_make_from_area
    linkageType: ''
    returnType: struct ring
    signature: struct ring *ring_new(size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ring_data
      Src: /src/haproxy/src/ring.c:124,1
    - Dst: ha_aligned_alloc::ha_aligned_alloc
      Src: /src/haproxy/src/ring.c:128,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/ring.c:132,1
    - Dst: ring_data
      Src: /src/haproxy/src/ring.c:135,1
    - Dst: vp_ring_to_data
      Src: /src/haproxy/src/ring.c:140,1
    - Dst: vp_size
      Src: /src/haproxy/src/ring.c:141,1
    - Dst: vp_peek_ofs
      Src: /src/haproxy/src/ring.c:142,1
    - Dst: area::area
      Src: /src/haproxy/src/ring.c:142,1
    - Dst: HA_ATOMIC_XCHG::HA_ATOMIC_XCHG
      Src: /src/haproxy/src/ring.c:147,1
    - Dst: thread_release
      Src: /src/haproxy/src/ring.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ring
    - size
    argTypes:
    - struct ring*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 155
    functionName: ring_resize
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - vp_peek_ofs
    - thread_isolate
    - vp_ring_to_data
    - ring_data
    - ha_aligned_alloc::ha_aligned_alloc
    - vp_size
    - area::area
    - HA_ATOMIC_XCHG::HA_ATOMIC_XCHG
    - thread_release
    linkageType: ''
    returnType: struct ring
    signature: struct ring *ring_resize(struct ring *ring, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_aligned_free
      Src: /src/haproxy/src/ring.c:165,1
    - Dst: ha_aligned_free
      Src: /src/haproxy/src/ring.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: ring_free
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - ha_aligned_free
    linkageType: ''
    returnType: void
    signature: void ring_free(struct ring *ring)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: DISGUISE
      Src: /src/haproxy/src/ring.c:179,1
    - Dst: varint_bytes
      Src: /src/haproxy/src/ring.c:212,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/ring.c:246,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:253,1
    - Dst: __ha_cpu_relax_for_read
      Src: /src/haproxy/src/ring.c:254,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:261,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ring.c:285,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:287,1
    - Dst: HA_ATOMIC_FETCH_OR
      Src: /src/haproxy/src/ring.c:300,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ring.c:304,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/ring.c:308,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ring.c:315,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:320,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:324,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/ring.c:332,1
    - Dst: vp_ring_to_data
      Src: /src/haproxy/src/ring.c:334,1
    - Dst: vp_size
      Src: /src/haproxy/src/ring.c:336,1
    - Dst: _vp_head
      Src: /src/haproxy/src/ring.c:344,1
    - Dst: vp_peek_varint_ofs
      Src: /src/haproxy/src/ring.c:346,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ring.c:349,1
    - Dst: vp_size
      Src: /src/haproxy/src/ring.c:349,1
    - Dst: vp_skip
      Src: /src/haproxy/src/ring.c:350,1
    - Dst: vp_size
      Src: /src/haproxy/src/ring.c:355,1
    - Dst: vp_data_to_ring
      Src: /src/haproxy/src/ring.c:356,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:359,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:367,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:373,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:377,1
    - Dst: vp_ring_to_room
      Src: /src/haproxy/src/ring.c:379,1
    - Dst: likely
      Src: /src/haproxy/src/ring.c:381,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:383,1
    - Dst: vp_put_varint
      Src: /src/haproxy/src/ring.c:391,1
    - Dst: vp_putblk
      Src: /src/haproxy/src/ring.c:401,1
    - Dst: vp_putblk
      Src: /src/haproxy/src/ring.c:411,1
    - Dst: vp_putchr
      Src: /src/haproxy/src/ring.c:419,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:424,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:425,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:429,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:433,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:434,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:435,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:448,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ring.c:449,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:450,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/ring.c:450,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:454,1
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/ring.c:455,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/ring.c:456,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/ring.c:457,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:471,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/ring.c:472,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:479,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 133
    argCount: 6
    argNames:
    - ring
    - maxlen
    - pfx
    - npfx
    - msg
    - nmsg
    argTypes:
    - struct ring*
    - size_t
    - struct ist[]
    - size_t
    - struct ist[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 480
    functionName: ring_write
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - DISGUISE
    - vp_skip
    - HA_ATOMIC_LOAD
    - likely
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - HA_ATOMIC_INC
    - varint_bytes
    - HA_ATOMIC_STORE
    - vp_data_to_ring
    - HA_ATOMIC_CAS
    - HA_ATOMIC_XCHG
    - BUG_ON_HOT
    - vp_put_varint
    - _vp_head
    - vp_ring_to_room
    - HA_ATOMIC_FETCH_OR
    - vp_ring_to_data
    - __ha_cpu_relax
    - __ha_cpu_relax_for_read
    - vp_putblk
    - vp_peek_varint_ofs
    - _HA_ATOMIC_STORE
    - appctx_wakeup
    - vp_putchr
    - vp_size
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t ring_write(struct ring *ring, size_t maxlen, const struct ist
      pfx[], size_t npfx, const struct ist msg[], size_t nmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ring.c:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 498
    functionName: ring_attach
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_CAS
    linkageType: ''
    returnType: int
    signature: int ring_attach(struct ring *ring)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/ring.c:509,1
    - Dst: ring_area
      Src: /src/haproxy/src/ring.c:513,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ring.c:516,1
    - Dst: ring_size
      Src: /src/haproxy/src/ring.c:516,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/ring.c:517,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:521,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ring.c:523,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/ring.c:523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ring
    - appctx
    - ofs
    argTypes:
    - struct ring*
    - struct appctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 525
    functionName: ring_detach_appctx
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - BUG_ON
    - _HA_ATOMIC_LOAD
    - ring_size
    - HA_ATOMIC_DEC
    - __ha_cpu_relax
    - _HA_ATOMIC_CAS
    - ring_area
    linkageType: ''
    returnType: void
    signature: void ring_detach_appctx(struct ring *ring, struct appctx *appctx, size_t
      ofs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ring.c:535,1
    - Dst: ring_attach
      Src: /src/haproxy/src/ring.c:537,1
    - Dst: cli_err
      Src: /src/haproxy/src/ring.c:538,1
    - Dst: TOSTR
      Src: /src/haproxy/src/ring.c:539,1
    - Dst: memset
      Src: /src/haproxy/src/ring.c:547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ring
    - appctx
    - flags
    argTypes:
    - struct ring*
    - struct appctx*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 552
    functionName: ring_attach_cli
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_err
    - applet_reserve_svcctx
    - TOSTR
    - ring_attach
    linkageType: ''
    returnType: int
    signature: int ring_attach_cli(struct ring *ring, struct appctx *appctx, uint
      flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/ring.c:594,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/ring.c:595,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:597,1
    - Dst: ring_tail
      Src: /src/haproxy/src/ring.c:598,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:609,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ring.c:611,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/ring.c:611,1
    - Dst: thread_release
      Src: /src/haproxy/src/ring.c:613,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ring.c:621,1
    - Dst: ring_tail
      Src: /src/haproxy/src/ring.c:626,1
    - Dst: vp_ring_to_data
      Src: /src/haproxy/src/ring.c:639,1
    - Dst: vp_size
      Src: /src/haproxy/src/ring.c:642,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:647,1
    - Dst: _vp_addr
      Src: /src/haproxy/src/ring.c:647,1
    - Dst: vp_peek_varint_ofs
      Src: /src/haproxy/src/ring.c:654,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ring.c:659,1
    - Dst: vp_size
      Src: /src/haproxy/src/ring.c:659,1
    - Dst: msg_handler
      Src: /src/haproxy/src/ring.c:661,1
    - Dst: vp_skip
      Src: /src/haproxy/src/ring.c:673,1
    - Dst: vp_data_to_ring
      Src: /src/haproxy/src/ring.c:676,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:681,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ring.c:683,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/ring.c:683,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ring.c:687,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ring.c:689,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/ring.c:689,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 7
    argNames:
    - ring
    - ctx
    - ofs_ptr
    - last_ofs_ptr
    - flags
    - delim
    - processed
    argTypes:
    - struct ring*
    - void*
    - size_t*
    - size_t*
    - uint
    - char
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 698
    functionName: ring_dispatch_messages
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - unlikely
    - msg_handler
    - vp_skip
    - thread_isolate
    - _HA_ATOMIC_LOAD
    - HA_ATOMIC_LOAD
    - BUG_ON
    - vp_peek_varint_ofs
    - vp_data_to_ring
    - _vp_addr
    - vp_ring_to_data
    - __ha_cpu_relax
    - ring_tail
    - _HA_ATOMIC_CAS
    - vp_size
    - thread_release
    linkageType: ''
    returnType: int
    signature: "int ring_dispatch_messages(struct ring *ring, void *ctx, size_t *ofs_ptr,
      size_t *last_ofs_ptr, uint flags,\n                           ssize_t (*msg_handler)(void
      *ctx, struct ist v1, struct ist v2, size_t ofs, size_t len, char delim),\n                           char
      delim,\n                           size_t *processed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/ring.c:717,1
    - Dst: ring_dispatch_messages
      Src: /src/haproxy/src/ring.c:719,1
    - Dst: b_data
      Src: /src/haproxy/src/ring.c:726,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/ring.c:726,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/ring.c:728,1
    - Dst: ring_tail
      Src: /src/haproxy/src/ring.c:729,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/ring.c:735,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/ring.c:737,1
    - Dst: b_reset
      Src: /src/haproxy/src/ring.c:741,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/ring.c:742,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/ring.c:745,1
    - Dst: applet_expect_no_data
      Src: /src/haproxy/src/ring.c:746,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 748
    functionName: cli_io_handler_show_ring
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - applet_have_no_more_data
    - MT_LIST_DELETE
    - applet_fl_clr
    - ring_dispatch_messages
    - applet_have_more_data
    - MT_LIST_APPEND
    - b_data
    - b_reset
    - ring_tail
    - applet_expect_no_data
    - applet_will_consume
    - se_fl_test
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_ring(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ring_detach_appctx
      Src: /src/haproxy/src/ring.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 758
    functionName: cli_io_release_show_ring
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - ring_detach_appctx
    linkageType: ''
    returnType: void
    signature: void cli_io_release_show_ring(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ring_size
      Src: /src/haproxy/src/ring.c:770,1
    - Dst: varint_bytes
      Src: /src/haproxy/src/ring.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 775
    functionName: ring_max_payload
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - ring_size
    - varint_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ring_max_payload(const struct ring *ring)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/ring.c:784,1
    - Dst: atoi
      Src: /src/haproxy/src/ring.c:787,1
    - Dst: memprintf
      Src: /src/haproxy/src/ring.c:789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 795
    functionName: cfg_parse_tune_ring_queues
    functionSourceFile: /src/haproxy/src/ring.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_tune_ring_queues(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hpack_get_dte
      Src: /src/haproxy/src/hpack-tbl.c:113,1
    - Dst: fprintf
      Src: /src/haproxy/src/hpack-tbl.c:114,1
    - Dst: istpad
      Src: /src/haproxy/src/hpack-tbl.c:116,1
    - Dst: hpack_idx_to_name
      Src: /src/haproxy/src/hpack-tbl.c:116,1
    - Dst: istpad
      Src: /src/haproxy/src/hpack-tbl.c:117,1
    - Dst: hpack_idx_to_value
      Src: /src/haproxy/src/hpack-tbl.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out
    - dht
    argTypes:
    - FILE*
    - struct hpack_dht*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 120
    functionName: hpack_dht_dump
    functionSourceFile: /src/haproxy/src/hpack-tbl.c
    functionUses: 1
    functionsReached:
    - hpack_get_dte
    - istpad
    - hpack_idx_to_name
    - fprintf
    - hpack_idx_to_value
    linkageType: ''
    returnType: void
    signature: void hpack_dht_dump(FILE *out, const struct hpack_dht *dht)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hpack_dht_get_tail
      Src: /src/haproxy/src/hpack-tbl.c:125,1
    - Dst: abort
      Src: /src/haproxy/src/hpack-tbl.c:133,1
    - Dst: abort
      Src: /src/haproxy/src/hpack-tbl.c:136,1
    - Dst: abort
      Src: /src/haproxy/src/hpack-tbl.c:139,1
    - Dst: fprintf
      Src: /src/haproxy/src/hpack-tbl.c:149,1
    - Dst: abort
      Src: /src/haproxy/src/hpack-tbl.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - dht
    argTypes:
    - struct hpack_dht*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 152
    functionName: hpack_dht_check_consistency
    functionSourceFile: /src/haproxy/src/hpack-tbl.c
    functionUses: 0
    functionsReached:
    - hpack_dht_get_tail
    - abort
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hpack_dht_check_consistency(const struct hpack_dht *dht)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hpack_dht_alloc
      Src: /src/haproxy/src/hpack-tbl.c:168,1
    - Dst: hpack_dht_get_tail
      Src: /src/haproxy/src/hpack-tbl.c:181,1
    - Dst: memcpy
      Src: /src/haproxy/src/hpack-tbl.c:188,1
    - Dst: dht::dht
      Src: /src/haproxy/src/hpack-tbl.c:196,1
    - Dst: memcpy
      Src: /src/haproxy/src/hpack-tbl.c:201,1
    - Dst: hpack_dht_free
      Src: /src/haproxy/src/hpack-tbl.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - dht
    argTypes:
    - struct hpack_dht*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 205
    functionName: hpack_dht_defrag
    functionSourceFile: /src/haproxy/src/hpack-tbl.c
    functionUses: 0
    functionsReached:
    - hpack_dht_get_tail
    - hpack_dht_free
    - memcpy
    - dht::dht
    - hpack_dht_alloc
    linkageType: ''
    returnType: struct hpack_dht
    signature: struct hpack_dht *hpack_dht_defrag(struct hpack_dht *dht)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - dht
    - needed
    argTypes:
    - struct hpack_dht*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 239
    functionName: __hpack_dht_make_room
    functionSourceFile: /src/haproxy/src/hpack-tbl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __hpack_dht_make_room(struct hpack_dht *dht, unsigned int needed)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: hpack_dht_make_room
      Src: /src/haproxy/src/hpack-tbl.c:253,1
    - Dst: hpack_dht_get_tail
      Src: /src/haproxy/src/hpack-tbl.c:274,1
    - Dst: hpack_dht_defrag
      Src: /src/haproxy/src/hpack-tbl.c:293,1
    - Dst: hpack_dht_defrag
      Src: /src/haproxy/src/hpack-tbl.c:306,1
    - Dst: hpack_dht_defrag
      Src: /src/haproxy/src/hpack-tbl.c:353,1
    - Dst: memcpy
      Src: /src/haproxy/src/hpack-tbl.c:369,1
    - Dst: memcpy
      Src: /src/haproxy/src/hpack-tbl.c:370,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 70
    argCount: 3
    argNames:
    - dht
    - name
    - value
    argTypes:
    - struct hpack_dht*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 372
    functionName: hpack_dht_insert
    functionSourceFile: /src/haproxy/src/hpack-tbl.c
    functionUses: 1
    functionsReached:
    - hpack_dht_get_tail
    - hpack_dht_defrag
    - memcpy
    - hpack_dht_make_room
    linkageType: ''
    returnType: int
    signature: int hpack_dht_insert(struct hpack_dht *dht, struct ist name, struct
      ist value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_isboolean
      Src: /src/haproxy/src/hlua_fcn.c:64,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua_fcn.c:65,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua_fcn.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - L
    - index
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: hlua_checkboolean
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_toboolean
    - lua_isboolean
    - luaL_argerror
    linkageType: ''
    returnType: int
    signature: int hlua_checkboolean(lua_State *L, int index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:73,1
    - Dst: lua_pushnumber
      Src: /src/haproxy/src/hlua_fcn.c:76,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - L
    - val
    argTypes:
    - lua_State*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: hlua_fcn_pushunsigned
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - lua_pushnumber
    linkageType: ''
    returnType: int
    signature: int hlua_fcn_pushunsigned(lua_State *L, unsigned int val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushnumber
      Src: /src/haproxy/src/hlua_fcn.c:88,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:90,1
    - Dst: lua_pushnumber
      Src: /src/haproxy/src/hlua_fcn.c:94,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - L
    - val
    argTypes:
    - lua_State*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 99
    functionName: hlua_fcn_pushunsigned_ll
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - lua_pushnumber
    linkageType: ''
    returnType: int
    signature: int hlua_fcn_pushunsigned_ll(lua_State *L, unsigned long long val)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: field_format
      Src: /src/haproxy/src/hlua_fcn.c:112,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:115,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:120,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:126,1
    - Dst: lua_pushnumber
      Src: /src/haproxy/src/hlua_fcn.c:130,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:132,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:139,1
    - Dst: lua_pushnumber
      Src: /src/haproxy/src/hlua_fcn.c:143,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:145,1
    - Dst: lua_pushnumber
      Src: /src/haproxy/src/hlua_fcn.c:153,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:155,1
    - Dst: lua_pushnumber
      Src: /src/haproxy/src/hlua_fcn.c:159,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:161,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:166,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:174,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - L
    - field
    argTypes:
    - lua_State*
    - struct field*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 176
    functionName: hlua_fcn_pushfield
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushstring
    - lua_pushnil
    - lua_pushinteger
    - field_format
    - lua_pushnumber
    linkageType: ''
    returnType: int
    signature: int hlua_fcn_pushfield(lua_State *L, struct field *field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/hlua_fcn.c:189,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua_fcn.c:191,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/hlua_fcn.c:191,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua_fcn.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - L
    - str
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: hlua_pushstrippedstring
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - strlen
    - lua_pushlstring
    - HTTP_IS_LWS
    linkageType: ''
    returnType: char
    signature: char *hlua_pushstrippedstring(lua_State *L, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:206,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:207,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua_fcn.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - L
    - name
    - value
    argTypes:
    - lua_State*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: hlua_class_const_int
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - lua_rawset
    - lua_pushinteger
    - lua_pushstring
    linkageType: ''
    returnType: void
    signature: void hlua_class_const_int(lua_State *L, const char *name, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:212,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:213,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua_fcn.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - L
    - name
    - value
    argTypes:
    - lua_State*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: hlua_class_const_str
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawset
    - lua_pushstring
    linkageType: ''
    returnType: void
    signature: void hlua_class_const_str(lua_State *L, const char *name, const char
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:218,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua_fcn.c:219,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua_fcn.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - L
    - name
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: hlua_class_function
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - lua_rawset
    - lua_pushcclosure
    - lua_pushstring
    linkageType: ''
    returnType: void
    signature: void hlua_class_function(lua_State *L, const char *name, int (*function)(lua_State
      *L))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua_fcn.c:226,1
    - Dst: lua_upvalueindex
      Src: /src/haproxy/src/hlua_fcn.c:226,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua_fcn.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: hlua_dump_object
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_tostring
    - lua_upvalueindex
    - lua_pushfstring
    linkageType: ''
    returnType: int
    signature: int hlua_dump_object(struct lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/haproxy/src/hlua_fcn.c:241,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua_fcn.c:242,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:248,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:249,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua_fcn.c:250,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua_fcn.c:251,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua_fcn.c:257,1
    - Dst: lua_setfield
      Src: /src/haproxy/src/hlua_fcn.c:258,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua_fcn.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - L
    - name
    argTypes:
    - struct lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 264
    functionName: hlua_register_metatable
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - lua_type
    - lua_pushvalue
    - lua_pushstring
    - luaL_error
    - lua_rawset
    - lua_pushcclosure
    - luaL_ref
    - lua_setfield
    linkageType: ''
    returnType: int
    signature: int hlua_register_metatable(struct lua_State *L, char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua_fcn.c:273,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua_fcn.c:274,1
    - Dst: lua_getmetatable
      Src: /src/haproxy/src/hlua_fcn.c:277,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua_fcn.c:278,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:281,1
    - Dst: lua_rawequal
      Src: /src/haproxy/src/hlua_fcn.c:284,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua_fcn.c:285,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua_fcn.c:287,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:290,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:293,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua_fcn.c:295,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua_fcn.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - L
    - ud
    - class_ref
    argTypes:
    - lua_State*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 302
    functionName: hlua_checkudata
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 11
    functionsReached:
    - lua_pop
    - lua_rawgeti
    - luaL_argerror
    - lua_rawequal
    - lua_istable
    - lua_touserdata
    - lua_getmetatable
    linkageType: ''
    returnType: void
    signature: void *hlua_checkudata(lua_State *L, int ud, int class_ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NS_TO_TV
      Src: /src/haproxy/src/hlua_fcn.c:312,1
    - Dst: tv_add
      Src: /src/haproxy/src/hlua_fcn.c:313,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:315,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:316,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:317,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua_fcn.c:318,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:319,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:320,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua_fcn.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 323
    functionName: hlua_now
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushstring
    - lua_rawset
    - NS_TO_TV
    - lua_pushinteger
    - lua_newtable
    - tv_add
    linkageType: ''
    returnType: int
    signature: int hlua_now(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua_fcn.c:336,1
    - Dst: fcn
      Src: /src/haproxy/src/hlua_fcn.c:338,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:339,1
    - Dst: my_timegm
      Src: /src/haproxy/src/hlua_fcn.c:349,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:351,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 357
    functionName: hlua_parse_date
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - luaL_checklstring
    - my_timegm
    - lua_pushnil
    - lua_pushinteger
    - fcn
    linkageType: ''
    returnType: int
    signature: int hlua_parse_date(lua_State *L, int (*fcn)(const char *, int, struct
      tm*))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_parse_date
      Src: /src/haproxy/src/hlua_fcn.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: hlua_http_date
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_parse_date
    linkageType: ''
    returnType: int
    signature: int hlua_http_date(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_parse_date
      Src: /src/haproxy/src/hlua_fcn.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: hlua_imf_date
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_parse_date
    linkageType: ''
    returnType: int
    signature: int hlua_imf_date(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_parse_date
      Src: /src/haproxy/src/hlua_fcn.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: hlua_rfc850_date
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_parse_date
    linkageType: ''
    returnType: int
    signature: int hlua_rfc850_date(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_parse_date
      Src: /src/haproxy/src/hlua_fcn.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: hlua_asctime_date
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_parse_date
    linkageType: ''
    returnType: int
    signature: int hlua_asctime_date(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stats_fill_info
      Src: /src/haproxy/src/hlua_fcn.c:379,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:381,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:383,1
    - Dst: hlua_fcn_pushfield
      Src: /src/haproxy/src/hlua_fcn.c:384,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 388
    functionName: hlua_get_info
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_pushfield
    - stats_fill_info
    - lua_pushstring
    - lua_newtable
    - lua_settable
    linkageType: ''
    returnType: int
    signature: int hlua_get_info(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: hlua_check_concat
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    linkageType: ''
    returnType: struct hlua_concat
    signature: struct hlua_concat *hlua_check_concat(lua_State *L, int ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_concat
      Src: /src/haproxy/src/hlua_fcn.c:404,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua_fcn.c:407,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:410,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:411,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua_fcn.c:412,1
    - Dst: buffer::buffer
      Src: /src/haproxy/src/hlua_fcn.c:423,1
    - Dst: lua_newuserdata::lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:426,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:428,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua_fcn.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 436
    functionName: hlua_concat_add
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - luaL_checklstring
    - memcpy
    - lua_pop
    - lua_newuserdata::lua_newuserdata
    - lua_rawgeti
    - buffer::buffer
    - lua_touserdata
    - hlua_check_concat
    linkageType: ''
    returnType: int
    signature: int hlua_concat_add(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_concat
      Src: /src/haproxy/src/hlua_fcn.c:444,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:447,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:448,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua_fcn.c:449,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua_fcn.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 454
    functionName: hlua_concat_dump
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushlstring
    - lua_pop
    - lua_rawgeti
    - lua_touserdata
    - hlua_check_concat
    linkageType: ''
    returnType: int
    signature: int hlua_concat_dump(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:460,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:461,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:464,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:465,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:466,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:468,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 472
    functionName: hlua_concat_new
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - lua_rawgeti
    - lua_setmetatable
    - lua_newtable
    - lua_newuserdata
    linkageType: ''
    returnType: int
    signature: int hlua_concat_new(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_topointer
      Src: /src/haproxy/src/hlua_fcn.c:476,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua_fcn.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: concat_tostring
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_topointer
    - lua_pushfstring
    linkageType: ''
    returnType: int
    signature: int concat_tostring(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:484,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:486,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua_fcn.c:487,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:488,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:490,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:491,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:493,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua_fcn.c:494,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:495,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:497,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua_fcn.c:498,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:499,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:501,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua_fcn.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 503
    functionName: hlua_concat_init
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushstring
    - lua_pushcclosure
    - lua_newtable
    - lua_settable
    - luaL_ref
    linkageType: ''
    returnType: void
    signature: void hlua_concat_init(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 525
    functionName: hlua_check_queue
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    linkageType: ''
    returnType: struct hlua_queue
    signature: struct hlua_queue *hlua_check_queue(lua_State *L, int ud)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_queue
      Src: /src/haproxy/src/hlua_fcn.c:532,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:534,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:535,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/hlua_fcn.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: hlua_queue_size
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_queue
    - lua_pushinteger
    - BUG_ON
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int hlua_queue_size(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_queue
      Src: /src/haproxy/src/hlua_fcn.c:545,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:549,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua_fcn.c:552,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua_fcn.c:554,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua_fcn.c:555,1
    - Dst: notification_new
      Src: /src/haproxy/src/hlua_fcn.c:560,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua_fcn.c:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 564
    functionName: hlua_queue_alarm
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_queue
    - BUG_ON
    - hlua_gethlua
    - notification_new
    - luaL_error
    - HLUA_CANT_YIELD
    linkageType: ''
    returnType: int
    signature: int hlua_queue_alarm(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_queue
      Src: /src/haproxy/src/hlua_fcn.c:572,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua_fcn.c:575,1
    - Dst: lua_isnoneornil
      Src: /src/haproxy/src/hlua_fcn.c:575,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua_fcn.c:576,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:580,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua_fcn.c:582,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:585,1
    - Dst: hlua_ref
      Src: /src/haproxy/src/hlua_fcn.c:590,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/hlua_fcn.c:593,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/hlua_fcn.c:594,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/hlua_fcn.c:595,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua_fcn.c:598,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 602
    functionName: hlua_queue_push
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_queue
    - pool_alloc
    - BUG_ON
    - notification_wake
    - lua_pushboolean
    - luaL_error
    - hlua_ref
    - MT_LIST_INIT
    - MT_LIST_APPEND
    - lua_gettop
    - HA_ATOMIC_INC
    - lua_isnoneornil
    linkageType: ''
    returnType: int
    signature: int hlua_queue_push(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/hlua_fcn.c:613,1
    - Dst: typeof
      Src: /src/haproxy/src/hlua_fcn.c:613,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/hlua_fcn.c:617,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua_fcn.c:619,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua_fcn.c:624,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua_fcn.c:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - L
    - queue
    argTypes:
    - lua_State*
    - struct hlua_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 630
    functionName: _hlua_queue_pop
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - typeof
    - MT_LIST_POP
    - hlua_unref
    - HA_ATOMIC_DEC
    - hlua_pushref
    - pool_free
    linkageType: ''
    returnType: int
    signature: int _hlua_queue_pop(lua_State *L, struct hlua_queue *queue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_queue
      Src: /src/haproxy/src/hlua_fcn.c:637,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:639,1
    - Dst: _hlua_queue_pop
      Src: /src/haproxy/src/hlua_fcn.c:640,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 645
    functionName: hlua_queue_pop
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - _hlua_queue_pop
    - hlua_check_queue
    - BUG_ON
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_queue_pop(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_queue
      Src: /src/haproxy/src/hlua_fcn.c:653,1
    - Dst: _hlua_queue_pop
      Src: /src/haproxy/src/hlua_fcn.c:656,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua_fcn.c:659,1
    - Dst: notification_new
      Src: /src/haproxy/src/hlua_fcn.c:660,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:661,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua_fcn.c:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 669
    functionName: _hlua_queue_pop_wait
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_queue
    - hlua_gethlua
    - notification_new
    - lua_pushnil
    - _hlua_queue_pop
    - hlua_yieldk
    linkageType: ''
    returnType: int
    signature: int _hlua_queue_pop_wait(lua_State *L, int status, lua_KContext ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_queue
      Src: /src/haproxy/src/hlua_fcn.c:672,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:675,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua_fcn.c:678,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua_fcn.c:680,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua_fcn.c:681,1
    - Dst: _hlua_queue_pop
      Src: /src/haproxy/src/hlua_fcn.c:687,1
    - Dst: _hlua_queue_pop_wait
      Src: /src/haproxy/src/hlua_fcn.c:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 670
    functionDepth: 3
    functionLinenumber: 670
    functionLinenumberEnd: 706
    functionName: hlua_queue_pop_wait
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - hlua_check_queue
    - _hlua_queue_pop_wait
    - BUG_ON
    - hlua_gethlua
    - _hlua_queue_pop
    - luaL_error
    - HLUA_CANT_YIELD
    linkageType: ''
    returnType: int
    signature: int hlua_queue_pop_wait(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:712,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:715,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:716,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:719,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/hlua_fcn.c:720,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/hlua_fcn.c:721,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:723,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:726,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:727,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:728,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:729,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 733
    functionName: hlua_queue_new
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - hlua_class_function
    - lua_rawgeti
    - MT_LIST_INIT
    - lua_setmetatable
    - lua_newtable
    - lua_newuserdata
    linkageType: ''
    returnType: int
    signature: int hlua_queue_new(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_queue
      Src: /src/haproxy/src/hlua_fcn.c:737,1
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/hlua_fcn.c:741,1
    - Dst: typeof
      Src: /src/haproxy/src/hlua_fcn.c:741,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua_fcn.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 749
    functionName: hlua_queue_gc
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_queue
    - typeof
    - pool_free
    - MT_LIST_POP
    linkageType: ''
    returnType: int
    signature: int hlua_queue_gc(struct lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:754,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:756,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 759
    functionName: hlua_queue_init
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_class_function
    - lua_newtable
    - hlua_register_metatable
    linkageType: ''
    returnType: void
    signature: void hlua_queue_init(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:763,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:766,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:767,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua_fcn.c:769,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - L
    - tbl
    argTypes:
    - lua_State*
    - struct stktable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 772
    functionName: hlua_fcn_new_stktable
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushlightuserdata
    - lua_rawseti
    - lua_rawgeti
    - lua_setmetatable
    - lua_newtable
    linkageType: ''
    returnType: int
    signature: int hlua_fcn_new_stktable(lua_State *L, struct stktable *tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 777
    functionName: hlua_check_stktable
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    linkageType: ''
    returnType: struct stktable
    signature: struct stktable *hlua_check_stktable(lua_State *L, int ud)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_stktable
      Src: /src/haproxy/src/hlua_fcn.c:785,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:788,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:792,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:794,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:795,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:796,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:798,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:799,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:800,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:802,1
    - Dst: hlua_fcn_pushunsigned
      Src: /src/haproxy/src/hlua_fcn.c:803,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:804,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:806,1
    - Dst: hlua_fcn_pushunsigned
      Src: /src/haproxy/src/hlua_fcn.c:807,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:808,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:810,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:811,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:812,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:814,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:815,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:816,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:819,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:820,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:826,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:829,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:831,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:833,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:836,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 839
    functionName: hlua_stktable_info
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_pushunsigned
    - lua_pushstring
    - lua_pushnil
    - lua_pushboolean
    - lua_newtable
    - lua_pushinteger
    - lua_settable
    - hlua_check_stktable
    linkageType: ''
    returnType: int
    signature: int hlua_stktable_info(lua_State *L)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/hlua_fcn.c:849,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:853,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:857,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/hlua_fcn.c:857,1
    - Dst: hlua_fcn_pushunsigned
      Src: /src/haproxy/src/hlua_fcn.c:860,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/hlua_fcn.c:860,1
    - Dst: hlua_fcn_pushunsigned_ll
      Src: /src/haproxy/src/hlua_fcn.c:863,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/hlua_fcn.c:863,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:866,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/hlua_fcn.c:866,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/hlua_fcn.c:866,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/hlua_fcn.c:871,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:872,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:877,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - L
    - t
    - ts
    argTypes:
    - lua_State*
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 879
    functionName: hlua_stktable_entry
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - read_freq_ctr_period
    - hlua_fcn_pushunsigned
    - lua_pushstring
    - lua_pushinteger
    - stktable_data_ptr
    - stktable_data_cast
    - hlua_fcn_pushunsigned_ll
    - lua_settable
    linkageType: ''
    returnType: void
    signature: void hlua_stktable_entry(lua_State *L, struct stktable *t, struct stksess
      *ts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_stktable
      Src: /src/haproxy/src/hlua_fcn.c:895,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua_fcn.c:898,1
    - Dst: smp_to_stkey
      Src: /src/haproxy/src/hlua_fcn.c:900,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:902,1
    - Dst: stktable_lookup_key
      Src: /src/haproxy/src/hlua_fcn.c:906,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:908,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:912,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:913,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:914,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/hlua_fcn.c:914,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:915,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:917,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:918,1
    - Dst: tick_remain
      Src: /src/haproxy/src/hlua_fcn.c:918,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:919,1
    - Dst: hlua_stktable_entry
      Src: /src/haproxy/src/hlua_fcn.c:921,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/hlua_fcn.c:922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 925
    functionName: hlua_stktable_lookup
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - tick_remain
    - HA_ATOMIC_LOAD
    - hlua_stktable_entry
    - lua_pushstring
    - lua_pushnil
    - smp_to_stkey
    - HA_ATOMIC_DEC
    - lua_tolstring
    - hlua_check_stktable
    - lua_newtable
    - lua_pushinteger
    - stktable_lookup_key
    - lua_settable
    linkageType: ''
    returnType: int
    signature: int hlua_stktable_lookup(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/hlua_fcn.c:939,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/hlua_fcn.c:940,1
    - Dst: va_end
      Src: /src/haproxy/src/hlua_fcn.c:941,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua_fcn.c:944,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:945,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua_fcn.c:948,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:950,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - L
    - fmt
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 954
    functionName: hlua_error
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - va_end
    - vsnprintf
    - va_start
    - lua_pushstring
    - lua_pushnil
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int hlua_error(lua_State *L, const char *fmt, ...)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_stktable
      Src: /src/haproxy/src/hlua_fcn.c:974,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua_fcn.c:975,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:982,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua_fcn.c:983,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:987,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua_fcn.c:989,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua_fcn.c:989,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:990,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:992,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua_fcn.c:993,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua_fcn.c:996,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:997,1
    - Dst: stktable_get_data_type
      Src: /src/haproxy/src/hlua_fcn.c:999,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua_fcn.c:999,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:1001,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua_fcn.c:1005,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:1006,1
    - Dst: get_std_op
      Src: /src/haproxy/src/hlua_fcn.c:1008,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua_fcn.c:1008,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:1010,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua_fcn.c:1014,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua_fcn.c:1022,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua_fcn.c:1024,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:1028,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:1031,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1034,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/hlua_fcn.c:1035,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/hlua_fcn.c:1036,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/hlua_fcn.c:1037,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1039,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/hlua_fcn.c:1042,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1043,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/hlua_fcn.c:1048,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/hlua_fcn.c:1054,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/hlua_fcn.c:1057,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/hlua_fcn.c:1060,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/hlua_fcn.c:1063,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/hlua_fcn.c:1063,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1082,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/hlua_fcn.c:1083,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/hlua_fcn.c:1089,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1090,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/hlua_fcn.c:1093,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1094,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:1096,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1098,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:1100,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:1103,1
    - Dst: hlua_stktable_entry
      Src: /src/haproxy/src/hlua_fcn.c:1104,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:1105,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1106,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/hlua_fcn.c:1107,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1109,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 127
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 1116
    functionName: hlua_stktable_dump
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - hlua_error
    - lua_pushnil
    - ebmb_entry
    - stktable_get_data_type
    - HA_ATOMIC_INC
    - hlua_stktable_entry
    - get_std_op
    - ebmb_next
    - stktable_data_ptr
    - inet_ntop
    - lua_pushinteger
    - lua_tointeger
    - lua_pop
    - lua_pushstring
    - lua_newtable
    - ebmb_first
    - stktable_data_cast
    - HA_RWLOCK_WRLOCK
    - read_freq_ctr_period
    - lua_type
    - HA_ATOMIC_DEC
    - lua_rawlen
    - lua_tostring
    - lua_settable
    - hlua_check_stktable
    - lua_next
    linkageType: ''
    returnType: int
    signature: int hlua_stktable_dump(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:1120,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:1123,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:1124,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua_fcn.c:1126,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - L
    - lst
    argTypes:
    - lua_State*
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1129
    functionName: hlua_fcn_new_listener
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushlightuserdata
    - lua_rawseti
    - lua_rawgeti
    - lua_setmetatable
    - lua_newtable
    linkageType: ''
    returnType: int
    signature: int hlua_fcn_new_listener(lua_State *L, struct listener *lst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1134
    functionName: hlua_check_listener
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    linkageType: ''
    returnType: struct listener
    signature: struct listener *hlua_check_listener(lua_State *L, int ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_listener
      Src: /src/haproxy/src/hlua_fcn.c:1141,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1144,1
    - Dst: stats_fill_li_line
      Src: /src/haproxy/src/hlua_fcn.c:1148,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:1151,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1153,1
    - Dst: hlua_fcn_pushfield
      Src: /src/haproxy/src/hlua_fcn.c:1154,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:1155,1
    - Dst: hlua_yield_asap
      Src: /src/haproxy/src/hlua_fcn.c:1157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1136
    functionDepth: 2
    functionLinenumber: 1136
    functionLinenumberEnd: 1160
    functionName: hlua_listener_get_stats
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_pushfield
    - hlua_yield_asap
    - lua_pushstring
    - lua_pushnil
    - hlua_check_listener
    - stats_fill_li_line
    - lua_newtable
    - lua_settable
    linkageType: ''
    returnType: int
    signature: int hlua_listener_get_stats(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:1164,1
    - Dst: srv_drop
      Src: /src/haproxy/src/hlua_fcn.c:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1168
    functionName: hlua_server_gc
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - srv_drop
    - hlua_checkudata
    linkageType: ''
    returnType: int
    signature: int hlua_server_gc(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:1172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1177
    functionName: hlua_check_server
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    linkageType: ''
    returnType: struct server
    signature: struct server *hlua_check_server(lua_State *L, int ud)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1184,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1186,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1191,1
    - Dst: stats_fill_sv_line
      Src: /src/haproxy/src/hlua_fcn.c:1195,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:1198,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1200,1
    - Dst: hlua_fcn_pushfield
      Src: /src/haproxy/src/hlua_fcn.c:1201,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:1202,1
    - Dst: hlua_yield_asap
      Src: /src/haproxy/src/hlua_fcn.c:1204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1207
    functionName: hlua_server_get_stats
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_pushfield
    - hlua_yield_asap
    - lua_pushstring
    - lua_pushnil
    - hlua_check_server
    - lua_newtable
    - stats_fill_sv_line
    - lua_settable
    linkageType: ''
    returnType: int
    signature: int hlua_server_get_stats(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1213,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1215,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1220,1
    - Dst: hlua_fcn_new_proxy
      Src: /src/haproxy/src/hlua_fcn.c:1224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1209
    functionDepth: 2
    functionLinenumber: 1209
    functionLinenumberEnd: 1226
    functionName: hlua_server_get_proxy
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - lua_pushnil
    - hlua_fcn_new_proxy
    linkageType: ''
    returnType: int
    signature: int hlua_server_get_proxy(lua_State *L)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1234,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1236,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua_fcn.c:1240,1
    - Dst: real_family
      Src: /src/haproxy/src/hlua_fcn.c:1242,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/hlua_fcn.c:1244,1
    - Dst: luaL_addstring
      Src: /src/haproxy/src/hlua_fcn.c:1246,1
    - Dst: luaL_addstring
      Src: /src/haproxy/src/hlua_fcn.c:1247,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua_fcn.c:1248,1
    - Dst: luaL_addstring
      Src: /src/haproxy/src/hlua_fcn.c:1249,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/hlua_fcn.c:1252,1
    - Dst: luaL_addstring
      Src: /src/haproxy/src/hlua_fcn.c:1254,1
    - Dst: luaL_addstring
      Src: /src/haproxy/src/hlua_fcn.c:1255,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua_fcn.c:1256,1
    - Dst: luaL_addstring
      Src: /src/haproxy/src/hlua_fcn.c:1257,1
    - Dst: luaL_addstring
      Src: /src/haproxy/src/hlua_fcn.c:1260,1
    - Dst: luaL_addstring
      Src: /src/haproxy/src/hlua_fcn.c:1263,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua_fcn.c:1267,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1228
    functionDepth: 2
    functionLinenumber: 1228
    functionLinenumberEnd: 1269
    functionName: hlua_server_get_addr
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - luaL_addstring
    - lua_pushnil
    - hlua_check_server
    - inet_ntop
    - luaL_buffinit
    - luaL_pushresult
    - real_family
    - snprintf
    linkageType: ''
    returnType: int
    signature: int hlua_server_get_addr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1276,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1278,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua_fcn.c:1282,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1271
    functionDepth: 2
    functionLinenumber: 1271
    functionLinenumberEnd: 1285
    functionName: hlua_server_get_puid
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - lua_pushstring
    - lua_pushnil
    - snprintf
    linkageType: ''
    returnType: int
    signature: int hlua_server_get_puid(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1292,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1294,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua_fcn.c:1298,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1287
    functionDepth: 2
    functionLinenumber: 1287
    functionLinenumberEnd: 1301
    functionName: hlua_server_get_rid
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - lua_pushstring
    - lua_pushnil
    - snprintf
    linkageType: ''
    returnType: int
    signature: int hlua_server_get_rid(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1307,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1309,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1315
    functionName: hlua_server_get_name
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - lua_pushstring
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_server_get_name(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua_fcn.c:1325,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua_fcn.c:1327,1
    - Dst: ONLY_ONCE
      Src: /src/haproxy/src/hlua_fcn.c:1328,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua_fcn.c:1329,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua_fcn.c:1329,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua_fcn.c:1330,1
    - Dst: hlua_server_get_name
      Src: /src/haproxy/src/hlua_fcn.c:1331,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua_fcn.c:1334,1
    - Dst: ONLY_ONCE
      Src: /src/haproxy/src/hlua_fcn.c:1335,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua_fcn.c:1336,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua_fcn.c:1336,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua_fcn.c:1337,1
    - Dst: hlua_server_get_puid
      Src: /src/haproxy/src/hlua_fcn.c:1338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1323
    functionDepth: 3
    functionLinenumber: 1323
    functionLinenumberEnd: 1343
    functionName: hlua_server_index
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_server_get_name
    - ONLY_ONCE
    - hlua_server_get_puid
    - lua_pushvalue
    - strcmp
    - lua_tostring
    - hlua_traceback
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int hlua_server_index(struct lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1349,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1351,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:1355,1
    - Dst: server_is_draining
      Src: /src/haproxy/src/hlua_fcn.c:1355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1345
    functionDepth: 2
    functionLinenumber: 1345
    functionLinenumberEnd: 1357
    functionName: hlua_server_is_draining
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - server_is_draining
    - hlua_check_server
    - lua_pushboolean
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_server_is_draining(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1363,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1365,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1371
    functionName: hlua_server_is_backup
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - lua_pushboolean
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_server_is_backup(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1377,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1379,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:1383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1373
    functionDepth: 2
    functionLinenumber: 1373
    functionLinenumberEnd: 1385
    functionName: hlua_server_is_dynamic
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - lua_pushboolean
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_server_is_dynamic(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1391,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1393,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:1397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1387
    functionDepth: 2
    functionLinenumber: 1387
    functionLinenumberEnd: 1399
    functionName: hlua_server_get_cur_sess
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - lua_pushinteger
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_server_get_cur_sess(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1405,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1407,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:1411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1401
    functionDepth: 2
    functionLinenumber: 1401
    functionLinenumberEnd: 1413
    functionName: hlua_server_get_pend_conn
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - lua_pushinteger
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_server_get_pend_conn(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1421,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1423,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:1427,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1429,1
    - Dst: server_parse_maxconn_change_request
      Src: /src/haproxy/src/hlua_fcn.c:1430,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1431,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1433,1
    - Dst: hlua_pushstrippedstring
      Src: /src/haproxy/src/hlua_fcn.c:1435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1415
    functionDepth: 2
    functionLinenumber: 1415
    functionLinenumberEnd: 1437
    functionName: hlua_server_set_maxconn
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_pushstrippedstring
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - lua_pushnil
    - luaL_checkstring
    - hlua_check_server
    - server_parse_maxconn_change_request
    linkageType: ''
    returnType: int
    signature: int hlua_server_set_maxconn(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1443,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1445,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:1449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1451
    functionName: hlua_server_get_maxconn
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - lua_pushinteger
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_server_get_maxconn(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1459,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1461,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:1465,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1467,1
    - Dst: server_parse_weight_change_request
      Src: /src/haproxy/src/hlua_fcn.c:1468,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1469,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1471,1
    - Dst: hlua_pushstrippedstring
      Src: /src/haproxy/src/hlua_fcn.c:1473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1453
    functionDepth: 2
    functionLinenumber: 1453
    functionLinenumberEnd: 1475
    functionName: hlua_server_set_weight
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_pushstrippedstring
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - lua_pushnil
    - luaL_checkstring
    - hlua_check_server
    - server_parse_weight_change_request
    linkageType: ''
    returnType: int
    signature: int hlua_server_set_weight(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1481,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1483,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:1487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1477
    functionDepth: 2
    functionLinenumber: 1477
    functionLinenumberEnd: 1489
    functionName: hlua_server_get_weight
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - lua_pushinteger
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_server_get_weight(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1498,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1500,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:1504,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua_fcn.c:1505,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:1506,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1510,1
    - Dst: srv_update_addr_port
      Src: /src/haproxy/src/hlua_fcn.c:1511,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1512,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1514,1
    - Dst: hlua_pushstrippedstring
      Src: /src/haproxy/src/hlua_fcn.c:1516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1491
    functionDepth: 2
    functionLinenumber: 1491
    functionLinenumberEnd: 1518
    functionName: hlua_server_set_addr
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_pushstrippedstring
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - lua_pushnil
    - luaL_checkstring
    - hlua_check_server
    - lua_gettop
    - srv_update_addr_port
    linkageType: ''
    returnType: int
    signature: int hlua_server_set_addr(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1524,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1528,1
    - Dst: srv_shutdown_streams
      Src: /src/haproxy/src/hlua_fcn.c:1529,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1532
    functionName: hlua_server_shut_sess
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - srv_shutdown_streams
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: int
    signature: int hlua_server_shut_sess(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1538,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1542,1
    - Dst: srv_adm_set_drain
      Src: /src/haproxy/src/hlua_fcn.c:1543,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1534
    functionDepth: 2
    functionLinenumber: 1534
    functionLinenumberEnd: 1546
    functionName: hlua_server_set_drain
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - HA_SPIN_UNLOCK
    - srv_adm_set_drain
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int hlua_server_set_drain(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1552,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1556,1
    - Dst: srv_adm_set_maint
      Src: /src/haproxy/src/hlua_fcn.c:1557,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1548
    functionDepth: 2
    functionLinenumber: 1548
    functionLinenumberEnd: 1560
    functionName: hlua_server_set_maint
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - srv_adm_set_maint
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int hlua_server_set_maint(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1566,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1570,1
    - Dst: srv_adm_set_ready
      Src: /src/haproxy/src/hlua_fcn.c:1571,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1562
    functionDepth: 2
    functionLinenumber: 1562
    functionLinenumberEnd: 1574
    functionName: hlua_server_set_ready
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - srv_adm_set_ready
    linkageType: ''
    returnType: int
    signature: int hlua_server_set_ready(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1580,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1584,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1576
    functionDepth: 2
    functionLinenumber: 1576
    functionLinenumberEnd: 1590
    functionName: hlua_server_check_enable
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int hlua_server_check_enable(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1596,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1600,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1592
    functionDepth: 2
    functionLinenumber: 1592
    functionLinenumberEnd: 1606
    functionName: hlua_server_check_disable
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int hlua_server_check_disable(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1612,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1616,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/hlua_fcn.c:1619,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1608
    functionDepth: 2
    functionLinenumber: 1608
    functionLinenumberEnd: 1623
    functionName: hlua_server_check_force_up
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - srv_set_running
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: int
    signature: int hlua_server_check_force_up(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1629,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1633,1
    - Dst: srv_set_stopping
      Src: /src/haproxy/src/hlua_fcn.c:1636,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1625
    functionDepth: 2
    functionLinenumber: 1625
    functionLinenumberEnd: 1640
    functionName: hlua_server_check_force_nolb
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - srv_set_stopping
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int hlua_server_check_force_nolb(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1646,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1650,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/hlua_fcn.c:1653,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1642
    functionDepth: 2
    functionLinenumber: 1642
    functionLinenumberEnd: 1657
    functionName: hlua_server_check_force_down
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - srv_set_stopped
    linkageType: ''
    returnType: int
    signature: int hlua_server_check_force_down(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1663,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1667,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1659
    functionDepth: 2
    functionLinenumber: 1659
    functionLinenumberEnd: 1673
    functionName: hlua_server_agent_enable
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int hlua_server_agent_enable(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1679,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1683,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1675
    functionDepth: 2
    functionLinenumber: 1675
    functionLinenumberEnd: 1689
    functionName: hlua_server_agent_disable
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int hlua_server_agent_disable(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1695,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1699,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/hlua_fcn.c:1702,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1691
    functionDepth: 2
    functionLinenumber: 1691
    functionLinenumberEnd: 1706
    functionName: hlua_server_agent_force_up
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - srv_set_running
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: int
    signature: int hlua_server_agent_force_up(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1712,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/hlua_fcn.c:1716,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/hlua_fcn.c:1719,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:1721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1708
    functionDepth: 2
    functionLinenumber: 1708
    functionLinenumberEnd: 1723
    functionName: hlua_server_agent_force_down
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - srv_set_stopped
    linkageType: ''
    returnType: int
    signature: int hlua_server_agent_force_down(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1731,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1738,1
    - Dst: hlua_fcn_new_server
      Src: /src/haproxy/src/hlua_fcn.c:1740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1726
    functionDepth: 2
    functionLinenumber: 1726
    functionLinenumberEnd: 1743
    functionName: hlua_server_tracking
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - hlua_fcn_new_server
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_server_tracking(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1752,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:1757,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua_fcn.c:1760,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua_fcn.c:1761,1
    - Dst: hlua_fcn_new_server
      Src: /src/haproxy/src/hlua_fcn.c:1762,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:1764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1746
    functionDepth: 2
    functionLinenumber: 1746
    functionLinenumberEnd: 1767
    functionName: hlua_server_get_trackers
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - hlua_fcn_new_server
    - luaL_error
    - lua_checkstack
    - hlua_check_server
    - lua_newtable
    linkageType: ''
    returnType: int
    signature: int hlua_server_get_trackers(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server
      Src: /src/haproxy/src/hlua_fcn.c:1779,1
    - Dst: lua_remove
      Src: /src/haproxy/src/hlua_fcn.c:1784,1
    - Dst: hlua_event_sub
      Src: /src/haproxy/src/hlua_fcn.c:1787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1775
    functionDepth: 4
    functionLinenumber: 1775
    functionLinenumberEnd: 1788
    functionName: hlua_server_event_sub
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_server
    - lua_remove
    - hlua_event_sub
    linkageType: ''
    returnType: int
    signature: int hlua_server_event_sub(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:1792,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:1795,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:1796,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua_fcn.c:1798,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:1799,1
    - Dst: srv_take
      Src: /src/haproxy/src/hlua_fcn.c:1802,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1805,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1806,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1807,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1808,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1809,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1810,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1811,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1812,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1813,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1814,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1815,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1816,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1817,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1818,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1819,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1820,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1821,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1822,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1823,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1824,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1825,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1826,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1827,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1828,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1829,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1830,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1831,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1832,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1833,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1834,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1835,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 2
    argNames:
    - L
    - srv
    argTypes:
    - lua_State*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1790
    functionDepth: 1
    functionLinenumber: 1790
    functionLinenumberEnd: 1839
    functionName: hlua_fcn_new_server
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 3
    functionsReached:
    - lua_pushlightuserdata
    - lua_rawseti
    - hlua_class_function
    - lua_rawgeti
    - lua_setmetatable
    - lua_newtable
    - srv_take
    linkageType: ''
    returnType: int
    signature: int hlua_fcn_new_server(lua_State *L, struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:1843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1841
    functionDepth: 1
    functionLinenumber: 1841
    functionLinenumberEnd: 1844
    functionName: hlua_check_server_list
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    linkageType: ''
    returnType: struct hlua_server_list
    signature: struct hlua_server_list *hlua_check_server_list(lua_State *L, int ud)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1849
    functionDepth: 0
    functionLinenumber: 1849
    functionLinenumberEnd: 1851
    functionName: hlua_listable_servers_newindex
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlua_listable_servers_newindex(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server_list
      Src: /src/haproxy/src/hlua_fcn.c:1862,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:1863,1
    - Dst: server_find
      Src: /src/haproxy/src/hlua_fcn.c:1866,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1868,1
    - Dst: hlua_fcn_new_server
      Src: /src/haproxy/src/hlua_fcn.c:1872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1856
    functionDepth: 2
    functionLinenumber: 1856
    functionLinenumberEnd: 1874
    functionName: hlua_listable_servers_index
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_new_server
    - lua_pushnil
    - luaL_checkstring
    - server_find
    - hlua_check_server_list
    linkageType: ''
    returnType: int
    signature: int hlua_listable_servers_index(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_upvalueindex
      Src: /src/haproxy/src/hlua_fcn.c:1888,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:1889,1
    - Dst: watcher_attach
      Src: /src/haproxy/src/hlua_fcn.c:1894,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1904,1
    - Dst: watcher_next
      Src: /src/haproxy/src/hlua_fcn.c:1909,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1911,1
    - Dst: hlua_fcn_new_server
      Src: /src/haproxy/src/hlua_fcn.c:1912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1882
    functionDepth: 2
    functionLinenumber: 1882
    functionLinenumberEnd: 1914
    functionName: hlua_listable_servers_pairs_iterator
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_new_server
    - watcher_attach
    - lua_pushstring
    - lua_pushnil
    - lua_upvalueindex
    - lua_touserdata
    - watcher_next
    linkageType: ''
    returnType: int
    signature: int hlua_listable_servers_pairs_iterator(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:1921,1
    - Dst: watcher_detach
      Src: /src/haproxy/src/hlua_fcn.c:1927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1917
    functionDepth: 1
    functionLinenumber: 1917
    functionLinenumberEnd: 1929
    functionName: hlua_listable_servers_pairs_gc
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - watcher_detach
    linkageType: ''
    returnType: int
    signature: int hlua_listable_servers_pairs_gc(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_server_list
      Src: /src/haproxy/src/hlua_fcn.c:1940,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:1942,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:1945,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:1946,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:1947,1
    - Dst: watcher_init
      Src: /src/haproxy/src/hlua_fcn.c:1951,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua_fcn.c:1953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1935
    functionDepth: 2
    functionLinenumber: 1935
    functionLinenumberEnd: 1955
    functionName: hlua_listable_servers_pairs
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - watcher_init
    - hlua_class_function
    - lua_setmetatable
    - lua_newtable
    - hlua_check_server_list
    - lua_pushcclosure
    - lua_newuserdata
    linkageType: ''
    returnType: int
    signature: int hlua_listable_servers_pairs(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:1961,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:1962,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:1964,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:1965,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:1966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - L
    - px
    argTypes:
    - lua_State*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1957
    functionDepth: 0
    functionLinenumber: 1957
    functionLinenumberEnd: 1967
    functionName: hlua_listable_servers
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - lua_rawgeti
    - lua_setmetatable
    - lua_newtable
    - lua_newuserdata
    linkageType: ''
    returnType: void
    signature: void hlua_listable_servers(lua_State *L, struct proxy *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:1971,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/hlua_fcn.c:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1969
    functionDepth: 1
    functionLinenumber: 1969
    functionLinenumberEnd: 1974
    functionName: hlua_proxy_gc
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - proxy_drop
    - hlua_checkudata
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_gc(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:1978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1976
    functionDepth: 1
    functionLinenumber: 1976
    functionLinenumberEnd: 1982
    functionName: hlua_check_proxy
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *hlua_check_proxy(lua_State *L, int ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:1988,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:1990,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1984
    functionDepth: 2
    functionLinenumber: 1984
    functionLinenumberEnd: 1996
    functionName: hlua_proxy_get_name
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushstring
    - hlua_check_proxy
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_name(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2003,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2005,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua_fcn.c:2009,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1998
    functionDepth: 2
    functionLinenumber: 1998
    functionLinenumberEnd: 2012
    functionName: hlua_proxy_get_uuid
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushstring
    - hlua_check_proxy
    - lua_pushnil
    - snprintf
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_uuid(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua_fcn.c:2022,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua_fcn.c:2024,1
    - Dst: ONLY_ONCE
      Src: /src/haproxy/src/hlua_fcn.c:2025,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua_fcn.c:2026,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua_fcn.c:2026,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua_fcn.c:2027,1
    - Dst: hlua_proxy_get_name
      Src: /src/haproxy/src/hlua_fcn.c:2028,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua_fcn.c:2031,1
    - Dst: ONLY_ONCE
      Src: /src/haproxy/src/hlua_fcn.c:2032,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua_fcn.c:2033,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua_fcn.c:2033,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua_fcn.c:2034,1
    - Dst: hlua_proxy_get_uuid
      Src: /src/haproxy/src/hlua_fcn.c:2035,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2020
    functionDepth: 3
    functionLinenumber: 2020
    functionLinenumberEnd: 2040
    functionName: hlua_proxy_index
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_proxy_get_name
    - ONLY_ONCE
    - hlua_proxy_get_uuid
    - lua_pushvalue
    - strcmp
    - lua_tostring
    - hlua_traceback
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_index(struct lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2046,1
    - Dst: pause_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2042
    functionDepth: 2
    functionLinenumber: 2042
    functionLinenumberEnd: 2053
    functionName: hlua_proxy_pause
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - pause_proxy
    - hlua_check_proxy
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_pause(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2059,1
    - Dst: resume_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2055
    functionDepth: 2
    functionLinenumber: 2055
    functionLinenumberEnd: 2066
    functionName: hlua_proxy_resume
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - resume_proxy
    - hlua_check_proxy
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_resume(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2072,1
    - Dst: stop_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2077,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2068
    functionDepth: 2
    functionLinenumber: 2068
    functionLinenumberEnd: 2079
    functionName: hlua_proxy_stop
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - stop_proxy
    - hlua_check_proxy
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_stop(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2086,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2088,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/hlua_fcn.c:2092,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2081
    functionDepth: 2
    functionLinenumber: 2081
    functionLinenumberEnd: 2095
    functionName: hlua_proxy_get_cap
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushstring
    - proxy_cap_str
    - hlua_check_proxy
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_cap(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2102,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2104,1
    - Dst: stats_fill_be_line
      Src: /src/haproxy/src/hlua_fcn.c:2109,1
    - Dst: stats_fill_fe_line
      Src: /src/haproxy/src/hlua_fcn.c:2111,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2112,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2114,1
    - Dst: hlua_fcn_pushfield
      Src: /src/haproxy/src/hlua_fcn.c:2115,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2116,1
    - Dst: hlua_yield_asap
      Src: /src/haproxy/src/hlua_fcn.c:2118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2097
    functionDepth: 2
    functionLinenumber: 2097
    functionLinenumberEnd: 2120
    functionName: hlua_proxy_get_stats
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_pushfield
    - hlua_yield_asap
    - hlua_check_proxy
    - lua_pushnil
    - lua_pushstring
    - lua_newtable
    - lua_settable
    - stats_fill_be_line
    - stats_fill_fe_line
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_stats(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2127,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2129,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/hlua_fcn.c:2133,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2122
    functionDepth: 2
    functionLinenumber: 2122
    functionLinenumberEnd: 2136
    functionName: hlua_proxy_get_mode
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushstring
    - proxy_mode_str
    - hlua_check_proxy
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_mode(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2142,1
    - Dst: srv_shutdown_backup_streams
      Src: /src/haproxy/src/hlua_fcn.c:2146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2138
    functionDepth: 2
    functionLinenumber: 2138
    functionLinenumberEnd: 2148
    functionName: hlua_proxy_shut_bcksess
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - srv_shutdown_backup_streams
    - hlua_check_proxy
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_shut_bcksess(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2154,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2156,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2150
    functionDepth: 2
    functionLinenumber: 2150
    functionLinenumberEnd: 2162
    functionName: hlua_proxy_get_srv_act
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - hlua_check_proxy
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_srv_act(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2168,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2170,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2164
    functionDepth: 2
    functionLinenumber: 2164
    functionLinenumberEnd: 2176
    functionName: hlua_proxy_get_srv_bck
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - hlua_check_proxy
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_srv_bck(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2187,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2189,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2196,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2199,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2200,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2201,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2204,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2205,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2206,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2209,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2210,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2215,1
    - Dst: sa2str
      Src: /src/haproxy/src/hlua_fcn.c:2225,1
    - Dst: get_host_port
      Src: /src/haproxy/src/hlua_fcn.c:2225,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2227,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua_fcn.c:2228,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2229,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2232,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2235,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2236,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2237,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2240,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2241,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2242,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2245,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2246,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2247,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2250,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2251,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2181
    functionDepth: 2
    functionLinenumber: 2181
    functionLinenumberEnd: 2255
    functionName: hlua_proxy_get_mailers
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - ha_free
    - lua_pushstring
    - lua_pushboolean
    - hlua_check_proxy
    - lua_pushnil
    - get_host_port
    - lua_newtable
    - lua_pushinteger
    - lua_settable
    - sa2str
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_mailers(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2263,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:2266,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:2267,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2269,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2270,1
    - Dst: proxy_take
      Src: /src/haproxy/src/hlua_fcn.c:2272,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2275,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2276,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2277,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2278,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2279,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2280,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2281,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2282,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2283,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2284,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2285,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2286,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2289,1
    - Dst: hlua_listable_servers
      Src: /src/haproxy/src/hlua_fcn.c:2290,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2291,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2294,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2295,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/hlua_fcn.c:2297,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2299,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua_fcn.c:2301,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2303,1
    - Dst: hlua_fcn_new_listener
      Src: /src/haproxy/src/hlua_fcn.c:2305,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2306,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2308,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2311,1
    - Dst: hlua_fcn_new_stktable
      Src: /src/haproxy/src/hlua_fcn.c:2312,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - L
    - px
    argTypes:
    - lua_State*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2257
    functionDepth: 1
    functionLinenumber: 2257
    functionLinenumberEnd: 2317
    functionName: hlua_fcn_new_proxy
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - lua_pushlightuserdata
    - lua_rawseti
    - proxy_take
    - list_for_each_entry
    - hlua_class_function
    - lua_rawgeti
    - lua_pushstring
    - hlua_listable_servers
    - hlua_fcn_new_stktable
    - lua_setmetatable
    - lua_newtable
    - lua_settable
    - hlua_fcn_new_listener
    - snprintf
    linkageType: ''
    returnType: int
    signature: int hlua_fcn_new_proxy(lua_State *L, struct proxy *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2319
    functionDepth: 1
    functionLinenumber: 2319
    functionLinenumberEnd: 2322
    functionName: hlua_check_proxy_list
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    linkageType: ''
    returnType: struct hlua_proxy_list
    signature: struct hlua_proxy_list *hlua_check_proxy_list(lua_State *L, int ud)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2327
    functionDepth: 0
    functionLinenumber: 2327
    functionLinenumberEnd: 2329
    functionName: hlua_listable_proxies_newindex
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlua_listable_proxies_newindex(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy_list
      Src: /src/haproxy/src/hlua_fcn.c:2340,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2341,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/hlua_fcn.c:2345,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/hlua_fcn.c:2348,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2351,1
    - Dst: hlua_fcn_new_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2334
    functionDepth: 2
    functionLinenumber: 2334
    functionLinenumberEnd: 2357
    functionName: hlua_listable_proxies_index
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_new_proxy
    - proxy_find_by_name
    - lua_pushnil
    - luaL_checkstring
    - hlua_check_proxy_list
    linkageType: ''
    returnType: int
    signature: int hlua_listable_proxies_index(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - px
    - cap
    argTypes:
    - struct proxy*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2359
    functionDepth: 0
    functionLinenumber: 2359
    functionLinenumberEnd: 2361
    functionName: hlua_listable_proxies_match
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlua_listable_proxies_match(struct proxy *px, char cap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_upvalueindex
      Src: /src/haproxy/src/hlua_fcn.c:2371,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:2372,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2375,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2379,1
    - Dst: hlua_fcn_new_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2380,1
    - Dst: watcher_next
      Src: /src/haproxy/src/hlua_fcn.c:2382,1
    - Dst: hlua_listable_proxies_match
      Src: /src/haproxy/src/hlua_fcn.c:2384,1
    - Dst: watcher_next
      Src: /src/haproxy/src/hlua_fcn.c:2385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2366
    functionDepth: 2
    functionLinenumber: 2366
    functionLinenumberEnd: 2389
    functionName: hlua_listable_proxies_pairs_iterator
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_new_proxy
    - lua_pushstring
    - lua_upvalueindex
    - lua_pushnil
    - hlua_listable_proxies_match
    - lua_touserdata
    - watcher_next
    linkageType: ''
    returnType: int
    signature: int hlua_listable_proxies_pairs_iterator(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:2396,1
    - Dst: watcher_detach
      Src: /src/haproxy/src/hlua_fcn.c:2402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2392
    functionDepth: 1
    functionLinenumber: 2392
    functionLinenumberEnd: 2404
    functionName: hlua_listable_proxies_pairs_gc
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - watcher_detach
    linkageType: ''
    returnType: int
    signature: int hlua_listable_proxies_pairs_gc(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy_list
      Src: /src/haproxy/src/hlua_fcn.c:2415,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2417,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2420,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2421,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:2422,1
    - Dst: watcher_init
      Src: /src/haproxy/src/hlua_fcn.c:2427,1
    - Dst: watcher_attach
      Src: /src/haproxy/src/hlua_fcn.c:2429,1
    - Dst: hlua_listable_proxies_match
      Src: /src/haproxy/src/hlua_fcn.c:2430,1
    - Dst: watcher_next
      Src: /src/haproxy/src/hlua_fcn.c:2431,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua_fcn.c:2434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2410
    functionDepth: 2
    functionLinenumber: 2410
    functionLinenumberEnd: 2436
    functionName: hlua_listable_proxies_pairs
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - watcher_init
    - watcher_attach
    - hlua_class_function
    - lua_setmetatable
    - lua_newtable
    - hlua_listable_proxies_match
    - watcher_next
    - lua_pushcclosure
    - lua_newuserdata
    - hlua_check_proxy_list
    linkageType: ''
    returnType: int
    signature: int hlua_listable_proxies_pairs(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2442,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2443,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2445,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:2446,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:2447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - L
    - capabilities
    argTypes:
    - lua_State*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2438
    functionDepth: 0
    functionLinenumber: 2438
    functionLinenumberEnd: 2448
    functionName: hlua_listable_proxies
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - lua_rawgeti
    - lua_setmetatable
    - lua_newtable
    - lua_newuserdata
    linkageType: ''
    returnType: void
    signature: void hlua_listable_proxies(lua_State *L, char capabilities)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2452,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2454,1
    - Dst: event_hdl_take
      Src: /src/haproxy/src/hlua_fcn.c:2455,1
    - Dst: event_hdl_unsubscribe
      Src: /src/haproxy/src/hlua_fcn.c:2456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2450
    functionDepth: 1
    functionLinenumber: 2450
    functionLinenumberEnd: 2458
    functionName: hlua_event_sub_unsub
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - event_hdl_unsubscribe
    - event_hdl_take
    - hlua_checkudata
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int hlua_event_sub_unsub(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2462,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2464,1
    - Dst: event_hdl_drop
      Src: /src/haproxy/src/hlua_fcn.c:2465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2460
    functionDepth: 1
    functionLinenumber: 2460
    functionLinenumberEnd: 2467
    functionName: hlua_event_sub_gc
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - event_hdl_drop
    - hlua_checkudata
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int hlua_event_sub_gc(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2471,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:2474,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:2475,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2477,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2478,1
    - Dst: event_hdl_take
      Src: /src/haproxy/src/hlua_fcn.c:2481,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - L
    - sub
    argTypes:
    - lua_State*
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2469
    functionDepth: 1
    functionLinenumber: 2469
    functionLinenumberEnd: 2487
    functionName: hlua_fcn_new_event_sub
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 2
    functionsReached:
    - lua_pushlightuserdata
    - lua_rawseti
    - hlua_class_function
    - lua_rawgeti
    - lua_setmetatable
    - lua_newtable
    - event_hdl_take
    linkageType: ''
    returnType: int
    signature: int hlua_fcn_new_event_sub(lua_State *L, struct event_hdl_sub *sub)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2507,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2508,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua_fcn.c:2509,1
    - Dst: hlua_checkboolean
      Src: /src/haproxy/src/hlua_fcn.c:2510,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2512,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua_fcn.c:2522,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2523,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2495
    functionDepth: 1
    functionLinenumber: 2495
    functionLinenumberEnd: 2534
    functionName: hlua_tokenize
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - lua_pushlstring
    - luaL_checkstring
    - lua_newtable
    - lua_gettop
    - hlua_checkboolean
    linkageType: ''
    returnType: int
    signature: int hlua_tokenize(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2539,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2542,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2544,1
    - Dst: str2net
      Src: /src/haproxy/src/hlua_fcn.c:2548,1
    - Dst: str62net
      Src: /src/haproxy/src/hlua_fcn.c:2553,1
    - Dst: len2mask6
      Src: /src/haproxy/src/hlua_fcn.c:2554,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua_fcn.c:2559,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2536
    functionDepth: 1
    functionLinenumber: 2536
    functionLinenumberEnd: 2562
    functionName: hlua_parse_addr
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - str2net
    - lua_pop
    - lua_pushnil
    - luaL_checkstring
    - lua_newuserdata
    - len2mask6
    - str62net
    linkageType: ''
    returnType: int
    signature: int hlua_parse_addr(lua_State *L)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lua_isuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2569,1
    - Dst: lua_isuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2570,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2571,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:2575,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:2576,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2579,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2586,1
    - Dst: read_u32
      Src: /src/haproxy/src/hlua_fcn.c:2593,1
    - Dst: read_u32
      Src: /src/haproxy/src/hlua_fcn.c:2594,1
    - Dst: read_u32
      Src: /src/haproxy/src/hlua_fcn.c:2595,1
    - Dst: read_u32
      Src: /src/haproxy/src/hlua_fcn.c:2596,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2600,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2605,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2564
    functionDepth: 1
    functionLinenumber: 2564
    functionLinenumberEnd: 2607
    functionName: hlua_match_addr
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - read_u32
    - lua_pushboolean
    - lua_isuserdata
    linkageType: ''
    returnType: int
    signature: int hlua_match_addr(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2609
    functionDepth: 1
    functionLinenumber: 2609
    functionLinenumberEnd: 2612
    functionName: hlua_check_regex
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    linkageType: ''
    returnType: struct my_regex
    signature: struct my_regex **hlua_check_regex(lua_State *L, int ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2621,1
    - Dst: luaL_argcheck
      Src: /src/haproxy/src/hlua_fcn.c:2622,1
    - Dst: lua_isboolean
      Src: /src/haproxy/src/hlua_fcn.c:2622,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua_fcn.c:2623,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2625,1
    - Dst: regex_comp
      Src: /src/haproxy/src/hlua_fcn.c:2628,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2629,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2630,1
    - Dst: free
      Src: /src/haproxy/src/hlua_fcn.c:2631,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2635,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2638,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua_fcn.c:2639,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2640,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:2641,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:2642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2644
      start: 2614
    functionDepth: 2
    functionLinenumber: 2614
    functionLinenumberEnd: 2644
    functionName: hlua_regex_comp
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_isboolean
    - lua_rawseti
    - regex_comp
    - lua_toboolean
    - luaL_argcheck
    - lua_pushvalue
    - lua_rawgeti
    - lua_pushboolean
    - lua_pushstring
    - free
    - luaL_checkstring
    - lua_setmetatable
    - lua_newtable
    - lua_newuserdata
    linkageType: ''
    returnType: int
    signature: int hlua_regex_comp(struct lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_regex
      Src: /src/haproxy/src/hlua_fcn.c:2653,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua_fcn.c:2654,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2657,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua_fcn.c:2664,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2666,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua_fcn.c:2669,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2671,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/hlua_fcn.c:2671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2646
    functionDepth: 2
    functionLinenumber: 2646
    functionLinenumberEnd: 2674
    functionName: hlua_regex_exec
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - regex_exec2
    - luaL_checklstring
    - memcpy
    - lua_pushboolean
    - get_trash_chunk
    - hlua_check_regex
    linkageType: ''
    returnType: int
    signature: int hlua_regex_exec(struct lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_regex
      Src: /src/haproxy/src/hlua_fcn.c:2686,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua_fcn.c:2687,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2690,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua_fcn.c:2697,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2699,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua_fcn.c:2702,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/hlua_fcn.c:2704,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2705,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2706,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua_fcn.c:2709,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2710,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2676
    functionDepth: 2
    functionLinenumber: 2676
    functionLinenumberEnd: 2714
    functionName: hlua_regex_match
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - luaL_checklstring
    - lua_pushlstring
    - memcpy
    - lua_pushboolean
    - get_trash_chunk
    - hlua_check_regex
    - lua_newtable
    - regex_exec_match2
    linkageType: ''
    returnType: int
    signature: int hlua_regex_match(struct lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_regex
      Src: /src/haproxy/src/hlua_fcn.c:2720,1
    - Dst: regex_free
      Src: /src/haproxy/src/hlua_fcn.c:2721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2716
    functionDepth: 2
    functionLinenumber: 2716
    functionLinenumberEnd: 2724
    functionName: hlua_regex_free
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_regex
    - regex_free
    linkageType: ''
    returnType: int
    signature: int hlua_regex_free(struct lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2731,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2732,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2736
      start: 2726
    functionDepth: 1
    functionLinenumber: 2726
    functionLinenumberEnd: 2736
    functionName: hlua_patref_get_name
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushstring
    - hlua_checkudata
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int hlua_patref_get_name(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2742,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2743,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2738
    functionDepth: 1
    functionLinenumber: 2738
    functionLinenumberEnd: 2747
    functionName: hlua_patref_is_map
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushboolean
    - hlua_checkudata
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int hlua_patref_is_map(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2754,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua_fcn.c:2755,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua_fcn.c:2756,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2760,1
    - Dst: pat_ref_purge_range
      Src: /src/haproxy/src/hlua_fcn.c:2761,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2762,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua_fcn.c:2764,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2774
      start: 2752
    functionDepth: 2
    functionLinenumber: 2752
    functionLinenumberEnd: 2774
    functionName: _hlua_patref_clear
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - pat_ref_purge_range
    - lua_tointeger
    - hlua_checkudata
    - HA_RWLOCK_WRUNLOCK
    - lua_pushboolean
    - HA_RWLOCK_WRLOCK
    - hlua_yieldk
    linkageType: ''
    returnType: int
    signature: int _hlua_patref_clear(lua_State *L, int status, lua_KContext ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2781,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2782,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:2785,1
    - Dst: pat_ref_commit
      Src: /src/haproxy/src/hlua_fcn.c:2788,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:2791,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2797,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2798,1
    - Dst: _hlua_patref_clear
      Src: /src/haproxy/src/hlua_fcn.c:2799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2776
    functionDepth: 3
    functionLinenumber: 2776
    functionLinenumberEnd: 2800
    functionName: hlua_patref_commit
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - pat_ref_commit
    - hlua_checkudata
    - BUG_ON
    - _hlua_patref_clear
    - hlua_error
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int hlua_patref_commit(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2806,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2807,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2814,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2815,1
    - Dst: _hlua_patref_clear
      Src: /src/haproxy/src/hlua_fcn.c:2816,1
    - Dst: pat_ref_giveup
      Src: /src/haproxy/src/hlua_fcn.c:2819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2802
    functionDepth: 3
    functionLinenumber: 2802
    functionLinenumberEnd: 2822
    functionName: hlua_patref_giveup
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    - BUG_ON
    - _hlua_patref_clear
    - pat_ref_giveup
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int hlua_patref_giveup(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2828,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2829,1
    - Dst: pat_ref_newgen
      Src: /src/haproxy/src/hlua_fcn.c:2830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2824
    functionDepth: 1
    functionLinenumber: 2824
    functionLinenumberEnd: 2833
    functionName: hlua_patref_prepare
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - pat_ref_newgen
    - hlua_checkudata
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int hlua_patref_prepare(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2839,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2840,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2842,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2843,1
    - Dst: _hlua_patref_clear
      Src: /src/haproxy/src/hlua_fcn.c:2844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2835
    functionDepth: 3
    functionLinenumber: 2835
    functionLinenumberEnd: 2845
    functionName: hlua_patref_purge
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - hlua_checkudata
    - BUG_ON
    - _hlua_patref_clear
    linkageType: ''
    returnType: int
    signature: int hlua_patref_purge(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2855,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2857,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2859,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua_fcn.c:2860,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2861,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2863,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:2865,1
    - Dst: pat_ref_load
      Src: /src/haproxy/src/hlua_fcn.c:2866,1
    - Dst: pat_ref_add
      Src: /src/haproxy/src/hlua_fcn.c:2868,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2869,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:2873,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua_fcn.c:2874,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2847
    functionDepth: 2
    functionLinenumber: 2847
    functionLinenumberEnd: 2879
    functionName: hlua_patref_add
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    - BUG_ON
    - HA_RWLOCK_WRUNLOCK
    - ha_free
    - hlua_error
    - lua_pushboolean
    - pat_ref_add
    - luaL_checkstring
    - pat_ref_may_commit
    - pat_ref_load
    - lua_gettop
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int hlua_patref_add(lua_State *L)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2884,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua_fcn.c:2890,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua_fcn.c:2891,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:2896,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2901,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua_fcn.c:2903,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua_fcn.c:2909,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua_fcn.c:2910,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua_fcn.c:2911,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua_fcn.c:2912,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua_fcn.c:2916,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua_fcn.c:2917,1
    - Dst: pat_ref_load
      Src: /src/haproxy/src/hlua_fcn.c:2920,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2921,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:2922,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua_fcn.c:2923,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua_fcn.c:2929,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua_fcn.c:2935,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2937,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua_fcn.c:2938,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2943,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2944,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2882
    functionDepth: 2
    functionLinenumber: 2882
    functionLinenumberEnd: 2946
    functionName: _hlua_patref_add_bulk
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - luaL_checktype
    - hlua_checkudata
    - HA_RWLOCK_WRUNLOCK
    - hlua_gethlua
    - ha_free
    - lua_pop
    - luaL_argerror
    - lua_next
    - hlua_error
    - pat_ref_load
    - pat_ref_may_commit
    - lua_tostring
    - lua_pushboolean
    - HA_RWLOCK_WRLOCK
    - hlua_yieldk
    - lua_istable
    linkageType: ''
    returnType: int
    signature: int _hlua_patref_add_bulk(lua_State *L, int status, lua_KContext ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2951,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2953,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2956,1
    - Dst: _hlua_patref_add_bulk
      Src: /src/haproxy/src/hlua_fcn.c:2957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2958
      start: 2947
    functionDepth: 3
    functionLinenumber: 2947
    functionLinenumberEnd: 2958
    functionName: hlua_patref_add_bulk
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - _hlua_patref_add_bulk
    - hlua_checkudata
    - BUG_ON
    - lua_pushnil
    linkageType: ''
    returnType: int
    signature: int hlua_patref_add_bulk(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2966,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2968,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2970,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2972,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:2974,1
    - Dst: pat_ref_gen_delete
      Src: /src/haproxy/src/hlua_fcn.c:2975,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/hlua_fcn.c:2977,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2978,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2960
    functionDepth: 1
    functionLinenumber: 2960
    functionLinenumberEnd: 2982
    functionName: hlua_patref_del
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    - BUG_ON
    - HA_RWLOCK_WRUNLOCK
    - lua_pushboolean
    - pat_ref_delete
    - luaL_checkstring
    - pat_ref_may_commit
    - HA_RWLOCK_WRLOCK
    - pat_ref_gen_delete
    linkageType: ''
    returnType: int
    signature: int hlua_patref_del(lua_State *L)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2994,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2996,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2998,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2999,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua_fcn.c:3001,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua_fcn.c:3002,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3004,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:3006,1
    - Dst: pat_ref_gen_find_elt
      Src: /src/haproxy/src/hlua_fcn.c:3014,1
    - Dst: pat_ref_set_elt_duplicate
      Src: /src/haproxy/src/hlua_fcn.c:3016,1
    - Dst: pat_ref_load
      Src: /src/haproxy/src/hlua_fcn.c:3018,1
    - Dst: pat_ref_gen_set
      Src: /src/haproxy/src/hlua_fcn.c:3021,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3023,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:3026,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua_fcn.c:3027,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:3030,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 2984
    functionDepth: 2
    functionLinenumber: 2984
    functionLinenumberEnd: 3032
    functionName: hlua_patref_set
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    - BUG_ON
    - HA_RWLOCK_WRUNLOCK
    - ha_free
    - lua_toboolean
    - hlua_error
    - lua_pushboolean
    - luaL_checkstring
    - pat_ref_may_commit
    - pat_ref_load
    - lua_gettop
    - pat_ref_set_elt_duplicate
    - HA_RWLOCK_WRLOCK
    - pat_ref_gen_find_elt
    - pat_ref_gen_set
    linkageType: ''
    returnType: int
    signature: int hlua_patref_set(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:3044,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:3046,1
    - Dst: lua_remove
      Src: /src/haproxy/src/hlua_fcn.c:3049,1
    - Dst: hlua_event_sub
      Src: /src/haproxy/src/hlua_fcn.c:3052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3053
      start: 3040
    functionDepth: 4
    functionLinenumber: 3040
    functionLinenumberEnd: 3053
    functionName: hlua_patref_event_sub
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_event_sub
    - lua_remove
    - hlua_checkudata
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int hlua_patref_event_sub(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3059,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:3064,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:3065,1
    - Dst: malloc
      Src: /src/haproxy/src/hlua_fcn.c:3069,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua_fcn.c:3071,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua_fcn.c:3075,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:3076,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3080,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3081,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3082,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3083,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3084,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3085,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3086,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3087,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3088,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3089,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - L
    - ref
    argTypes:
    - lua_State*
    - struct pat_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3055
    functionDepth: 1
    functionLinenumber: 3055
    functionLinenumberEnd: 3091
    functionName: hlua_fcn_new_patref
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - malloc
    - lua_pushlightuserdata
    - lua_rawseti
    - hlua_class_function
    - lua_rawgeti
    - luaL_error
    - lua_setmetatable
    - lua_newtable
    linkageType: ''
    returnType: void
    signature: void hlua_fcn_new_patref(lua_State *L, struct pat_ref *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:3095,1
    - Dst: free
      Src: /src/haproxy/src/hlua_fcn.c:3097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3099
      start: 3093
    functionDepth: 1
    functionLinenumber: 3093
    functionLinenumberEnd: 3099
    functionName: hlua_patref_gc
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    - free
    linkageType: ''
    returnType: int
    signature: int hlua_patref_gc(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3104
      start: 3101
    functionDepth: 0
    functionLinenumber: 3101
    functionLinenumberEnd: 3104
    functionName: hlua_listable_patref_newindex
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlua_listable_patref_newindex(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:3116,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:3117,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3120,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:3122,1
    - Dst: pat_ref_gen_find_elt
      Src: /src/haproxy/src/hlua_fcn.c:3123,1
    - Dst: pat_ref_find_elt
      Src: /src/haproxy/src/hlua_fcn.c:3125,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3127,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:3128,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3133,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:3135,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3139
      start: 3110
    functionDepth: 1
    functionLinenumber: 3110
    functionLinenumberEnd: 3139
    functionName: hlua_listable_patref_index
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    - HA_RWLOCK_WRUNLOCK
    - lua_pushstring
    - lua_pushnil
    - lua_pushboolean
    - luaL_checkstring
    - pat_ref_may_commit
    - pat_ref_find_elt
    - HA_RWLOCK_WRLOCK
    - pat_ref_gen_find_elt
    linkageType: ''
    returnType: int
    signature: int hlua_listable_patref_index(lua_State *L)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_upvalueindex
      Src: /src/haproxy/src/hlua_fcn.c:3148,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:3149,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3151,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:3154,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/hlua_fcn.c:3159,1
    - Dst: pat_ref_gen_get
      Src: /src/haproxy/src/hlua_fcn.c:3161,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/hlua_fcn.c:3167,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/hlua_fcn.c:3174,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua_fcn.c:3176,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3177,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3181,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3183,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3189,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:3190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3193
      start: 3141
    functionDepth: 1
    functionLinenumber: 3141
    functionLinenumberEnd: 3193
    functionName: _hlua_listable_patref_pairs_iterator
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - LIST_DEL_INIT
    - lua_pushstring
    - lua_upvalueindex
    - LIST_APPEND
    - lua_pushnil
    - pat_ref_may_commit
    - LIST_ISEMPTY
    - pat_ref_gen_get
    - HA_RWLOCK_WRLOCK
    - lua_touserdata
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int _hlua_listable_patref_pairs_iterator(lua_State *L, int status,
      lua_KContext ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hlua_listable_patref_pairs_iterator
      Src: /src/haproxy/src/hlua_fcn.c:3203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3204
      start: 3201
    functionDepth: 2
    functionLinenumber: 3201
    functionLinenumberEnd: 3204
    functionName: hlua_listable_patref_pairs_iterator
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - _hlua_listable_patref_pairs_iterator
    linkageType: ''
    returnType: int
    signature: int hlua_listable_patref_pairs_iterator(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:3215,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:3217,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/hlua_fcn.c:3219,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua_fcn.c:3221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3223
      start: 3210
    functionDepth: 1
    functionLinenumber: 3210
    functionLinenumberEnd: 3223
    functionName: hlua_listable_patref_pairs
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_newuserdata
    - lua_pushcclosure
    - LIST_INIT
    - hlua_checkudata
    linkageType: ''
    returnType: int
    signature: int hlua_listable_patref_pairs(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_concat_init
      Src: /src/haproxy/src/hlua_fcn.c:3227,1
    - Dst: hlua_queue_init
      Src: /src/haproxy/src/hlua_fcn.c:3228,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3230,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3231,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3232,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3233,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3234,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3235,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3236,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3237,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3238,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3239,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3240,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3243,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3244,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3246,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3247,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3248,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3249,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3250,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua_fcn.c:3251,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3252,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua_fcn.c:3254,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3255,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:3257,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua_fcn.c:3258,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3261,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3262,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3263,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3264,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3265,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3266,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:3267,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3268,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3271,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3272,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3273,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3274,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:3275,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3276,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3279,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3280,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3281,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3284,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3285,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3286,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3287,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3288,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3289,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3292,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3293,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3294,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3295,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3298,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3299,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3300,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3301,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3313,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3314,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3315,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3316,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3317,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3320,1
    - Dst: hlua_listable_proxies
      Src: /src/haproxy/src/hlua_fcn.c:3321,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:3322,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3325,1
    - Dst: hlua_listable_proxies
      Src: /src/haproxy/src/hlua_fcn.c:3326,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:3327,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3330,1
    - Dst: hlua_listable_proxies
      Src: /src/haproxy/src/hlua_fcn.c:3331,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:3332,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3337,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3338,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3339,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3340,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 77
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3225
    functionDepth: 2
    functionLinenumber: 3225
    functionLinenumberEnd: 3342
    functionName: hlua_fcn_reg_core_fcn
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - lua_setglobal
    - hlua_class_function
    - hlua_concat_init
    - lua_pushvalue
    - lua_pushstring
    - hlua_register_metatable
    - hlua_listable_proxies
    - lua_rawset
    - lua_setmetatable
    - lua_newtable
    - lua_settable
    - hlua_queue_init
    linkageType: ''
    returnType: void
    signature: void hlua_fcn_reg_core_fcn(lua_State *L)
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server_state.c:69,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server_state.c:73,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:102,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:108,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:114,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:129,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:135,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:137,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:142,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:144,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:149,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:151,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:156,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:159,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:164,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:171,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:177,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:179,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:184,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:187,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:192,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:195,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:200,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:202,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:207,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:209,1
    - Dst: strlen
      Src: /src/haproxy/src/server_state.c:215,1
    - Dst: invalid_domainchar
      Src: /src/haproxy/src/server_state.c:215,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:216,1
    - Dst: strl2uic
      Src: /src/haproxy/src/server_state.c:222,1
    - Dst: strlen
      Src: /src/haproxy/src/server_state.c:222,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:224,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/server_state.c:247,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/server_state.c:255,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/server_state.c:268,1
    - Dst: srv_set_stopping
      Src: /src/haproxy/src/server_state.c:274,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/server_state.c:278,1
    - Dst: srv_adm_set_maint
      Src: /src/haproxy/src/server_state.c:291,1
    - Dst: srv_adm_set_ready
      Src: /src/haproxy/src/server_state.c:293,1
    - Dst: srv_adm_set_maint
      Src: /src/haproxy/src/server_state.c:298,1
    - Dst: srv_adm_set_ready
      Src: /src/haproxy/src/server_state.c:300,1
    - Dst: srv_adm_set_drain
      Src: /src/haproxy/src/server_state.c:321,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server_state.c:324,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/server_state.c:326,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server_state.c:358,1
    - Dst: strcmp
      Src: /src/haproxy/src/server_state.c:361,1
    - Dst: strdup
      Src: /src/haproxy/src/server_state.c:362,1
    - Dst: strcmp
      Src: /src/haproxy/src/server_state.c:365,1
    - Dst: srv_set_fqdn
      Src: /src/haproxy/src/server_state.c:386,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:400,1
    - Dst: strcmp
      Src: /src/haproxy/src/server_state.c:403,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:404,1
    - Dst: srv_prepare_for_resolution
      Src: /src/haproxy/src/server_state.c:409,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:411,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/server_state.c:418,1
    - Dst: cebis_item_insert
      Src: /src/haproxy/src/server_state.c:421,1
    - Dst: task_schedule
      Src: /src/haproxy/src/server_state.c:422,1
    - Dst: tick_add
      Src: /src/haproxy/src/server_state.c:422,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:440,1
    - Dst: srv_set_ssl
      Src: /src/haproxy/src/server_state.c:444,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:445,1
    - Dst: strcmp
      Src: /src/haproxy/src/server_state.c:453,1
    - Dst: strcmp
      Src: /src/haproxy/src/server_state.c:456,1
    - Dst: srv_update_check_addr_port
      Src: /src/haproxy/src/server_state.c:459,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:461,1
    - Dst: strcmp
      Src: /src/haproxy/src/server_state.c:467,1
    - Dst: strcmp
      Src: /src/haproxy/src/server_state.c:470,1
    - Dst: srv_update_agent_addr_port
      Src: /src/haproxy/src/server_state.c:473,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server_state.c:475,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server_state.c:481,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:484,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:487,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server_state.c:491,1
    CyclomaticComplexity: 142
    EdgeCount: 142
    ICount: 239
    argCount: 3
    argNames:
    - srv
    - version
    - params
    argTypes:
    - struct server*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 492
    functionName: srv_state_srv_update
    functionSourceFile: /src/haproxy/src/server_state.c
    functionUses: 0
    functionsReached:
    - alloc_trash_chunk
    - cebis_item_insert
    - task_schedule
    - chunk_appendf
    - HA_SPIN_LOCK
    - invalid_domainchar
    - srv_set_stopped
    - srv_adm_set_maint
    - srv_set_stopping
    - HA_ATOMIC_STORE
    - strcmp
    - strl2uic
    - strtol
    - tick_add
    - srv_prepare_for_resolution
    - srv_set_running
    - ns_to_sec
    - free_trash_chunk
    - LIST_DEL_INIT
    - srv_set_fqdn
    - srv_adm_set_drain
    - server_recalc_eweight
    - srv_set_ssl
    - srv_update_check_addr_port
    - srv_update_agent_addr_port
    - HA_SPIN_UNLOCK
    - srv_adm_set_ready
    - strlen
    - ha_warning
    - strdup
    linkageType: ''
    returnType: void
    signature: void srv_state_srv_update(struct server *srv, int version, char **params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/server_state.c:507,1
    - Dst: XXH3
      Src: /src/haproxy/src/server_state.c:508,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/server_state.c:509,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/server_state.c:512,1
    - Dst: typeof
      Src: /src/haproxy/src/server_state.c:512,1
    - Dst: srv_state_srv_update
      Src: /src/haproxy/src/server_state.c:513,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/server_state.c:516,1
    - Dst: free
      Src: /src/haproxy/src/server_state.c:517,1
    - Dst: free
      Src: /src/haproxy/src/server_state.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - px
    - vsn
    - st_tree
    argTypes:
    - struct proxy*
    - int
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 520
    functionName: srv_state_px_update
    functionSourceFile: /src/haproxy/src/server_state.c
    functionUses: 0
    functionsReached:
    - typeof
    - eb64_entry
    - srv_state_srv_update
    - eb64_delete
    - chunk_printf
    - XXH3
    - eb64_lookup
    - free
    linkageType: ''
    returnType: void
    signature: void srv_state_px_update(const struct proxy *px, int vsn, struct eb_root
      *st_tree)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/haproxy/src/server_state.c:534,1
    - Dst: strtol
      Src: /src/haproxy/src/server_state.c:537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 549
    functionName: srv_state_get_version
    functionSourceFile: /src/haproxy/src/server_state.c
    functionUses: 0
    functionsReached:
    - strtol
    - fgets
    linkageType: ''
    returnType: int
    signature: int srv_state_get_version(FILE *f)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/server_state.c:563,1
    - Dst: memset
      Src: /src/haproxy/src/server_state.c:587,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 40
    argCount: 3
    argNames:
    - buf
    - version
    - params
    argTypes:
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 653
    functionName: srv_state_parse_line
    functionSourceFile: /src/haproxy/src/server_state.c
    functionUses: 0
    functionsReached:
    - memset
    - strlen
    linkageType: ''
    returnType: int
    signature: int srv_state_parse_line(char *buf, const int version, char **params)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/server_state.c:669,1
    - Dst: strdup
      Src: /src/haproxy/src/server_state.c:672,1
    - Dst: srv_state_parse_line
      Src: /src/haproxy/src/server_state.c:676,1
    - Dst: atoi
      Src: /src/haproxy/src/server_state.c:682,1
    - Dst: strcmp
      Src: /src/haproxy/src/server_state.c:683,1
    - Dst: atoi
      Src: /src/haproxy/src/server_state.c:684,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:693,1
    - Dst: send_log
      Src: /src/haproxy/src/server_state.c:695,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:701,1
    - Dst: send_log
      Src: /src/haproxy/src/server_state.c:703,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server_state.c:715,1
    - Dst: XXH3
      Src: /src/haproxy/src/server_state.c:716,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/server_state.c:717,1
    - Dst: free
      Src: /src/haproxy/src/server_state.c:727,1
    - Dst: free
      Src: /src/haproxy/src/server_state.c:728,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 4
    argNames:
    - line
    - vsn
    - st_tree
    - px
    argTypes:
    - char*
    - int
    - struct eb_root*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 731
    functionName: srv_state_parse_and_store_line
    functionSourceFile: /src/haproxy/src/server_state.c
    functionUses: 0
    functionsReached:
    - eb64_insert
    - calloc
    - srv_state_parse_line
    - strcmp
    - chunk_printf
    - XXH3
    - free
    - ha_warning
    - atoi
    - send_log
    - strdup
    linkageType: ''
    returnType: int
    signature: "int srv_state_parse_and_store_line(char *line, int vsn, struct eb_root
      *st_tree,\n\t\t\t\t\t  struct proxy *px)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy2
      Src: /src/haproxy/src/server_state.c:751,1
    - Dst: strlen
      Src: /src/haproxy/src/server_state.c:755,1
    - Dst: snprintf
      Src: /src/haproxy/src/server_state.c:756,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - dst_path
    - maxpathlen
    - filename
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 759
    functionName: srv_state_get_filepath
    functionSourceFile: /src/haproxy/src/server_state.c
    functionUses: 0
    functionsReached:
    - strlcpy2
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int srv_state_get_filepath(char *dst_path, int maxpathlen, const char
      *filename)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: srv_state_get_filepath
      Src: /src/haproxy/src/server_state.c:791,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:793,1
    - Dst: fopen
      Src: /src/haproxy/src/server_state.c:799,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server_state.c:802,1
    - Dst: strerror
      Src: /src/haproxy/src/server_state.c:802,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:804,1
    - Dst: strerror
      Src: /src/haproxy/src/server_state.c:804,1
    - Dst: srv_state_get_version
      Src: /src/haproxy/src/server_state.c:808,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server_state.c:811,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:814,1
    - Dst: fgets
      Src: /src/haproxy/src/server_state.c:819,1
    - Dst: srv_state_parse_and_store_line
      Src: /src/haproxy/src/server_state.c:822,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:824,1
    - Dst: fclose
      Src: /src/haproxy/src/server_state.c:832,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/server_state.c:844,1
    - Dst: srv_state_px_update
      Src: /src/haproxy/src/server_state.c:857,1
    - Dst: srv_state_get_filepath
      Src: /src/haproxy/src/server_state.c:866,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:868,1
    - Dst: fopen
      Src: /src/haproxy/src/server_state.c:874,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server_state.c:877,1
    - Dst: strerror
      Src: /src/haproxy/src/server_state.c:878,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:880,1
    - Dst: strerror
      Src: /src/haproxy/src/server_state.c:881,1
    - Dst: srv_state_get_version
      Src: /src/haproxy/src/server_state.c:886,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server_state.c:889,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:892,1
    - Dst: fgets
      Src: /src/haproxy/src/server_state.c:898,1
    - Dst: srv_state_parse_and_store_line
      Src: /src/haproxy/src/server_state.c:901,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:903,1
    - Dst: srv_state_px_update
      Src: /src/haproxy/src/server_state.c:911,1
    - Dst: eb64_first
      Src: /src/haproxy/src/server_state.c:914,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/server_state.c:916,1
    - Dst: typeof
      Src: /src/haproxy/src/server_state.c:916,1
    - Dst: eb64_next
      Src: /src/haproxy/src/server_state.c:917,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/server_state.c:918,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server_state.c:922,1
    - Dst: send_log
      Src: /src/haproxy/src/server_state.c:924,1
    - Dst: free
      Src: /src/haproxy/src/server_state.c:928,1
    - Dst: free
      Src: /src/haproxy/src/server_state.c:929,1
    - Dst: fclose
      Src: /src/haproxy/src/server_state.c:934,1
    - Dst: eb64_first
      Src: /src/haproxy/src/server_state.c:937,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/server_state.c:939,1
    - Dst: typeof
      Src: /src/haproxy/src/server_state.c:939,1
    - Dst: eb64_next
      Src: /src/haproxy/src/server_state.c:940,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/server_state.c:941,1
    - Dst: free
      Src: /src/haproxy/src/server_state.c:942,1
    - Dst: free
      Src: /src/haproxy/src/server_state.c:943,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 111
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 776
    functionDepth: 3
    functionLinenumber: 776
    functionLinenumberEnd: 946
    functionName: apply_server_state
    functionSourceFile: /src/haproxy/src/server_state.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - typeof
    - eb64_entry
    - fclose
    - BUG_ON
    - strerror
    - eb64_next
    - eb64_delete
    - srv_state_get_version
    - eb64_first
    - free
    - srv_state_parse_and_store_line
    - srv_state_px_update
    - srv_state_get_filepath
    - ha_warning
    - fopen
    - send_log
    - fgets
    linkageType: ''
    returnType: void
    signature: void apply_server_state(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - evp_keytype
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: ssl_sock_get_ocsp_arg_kt_index
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_ocsp_arg_kt_index(int evp_keytype)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_ocsp.c:111,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_ocsp.c:123,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/haproxy/src/ssl_ocsp.c:125,1
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_ocsp.c:129,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/ssl_ocsp.c:130,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_ocsp.c:133,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/ssl_ocsp.c:141,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/ssl_ocsp.c:142,1
    - Dst: SSL_CTX_get_ex_data
      Src: /src/haproxy/src/ssl_ocsp.c:145,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_ocsp.c:147,1
    - Dst: SSL_get_privatekey
      Src: /src/haproxy/src/ssl_ocsp.c:151,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_ocsp.c:153,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_ocsp.c:157,1
    - Dst: ssl_sock_get_ocsp_arg_kt_index
      Src: /src/haproxy/src/ssl_ocsp.c:165,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_ocsp.c:168,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_ocsp.c:179,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_ocsp.c:183,1
    - Dst: OPENSSL_malloc
      Src: /src/haproxy/src/ssl_ocsp.c:187,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_ocsp.c:189,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_ocsp.c:194,1
    - Dst: SSL_set_tlsext_status_ocsp_resp
      Src: /src/haproxy/src/ssl_ocsp.c:195,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_ocsp.c:198,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_ocsp.c:199,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_ocsp.c:202,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_ocsp.c:210,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_ocsp.c:211,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_ocsp.c:214,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 217
    functionName: ssl_sock_ocsp_stapling_cbk
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - SSL_get_SSL_CTX
    - SSL_set_tlsext_status_ocsp_resp
    - EXTRA_COUNTERS_GET
    - ssl_sock_get_ocsp_arg_kt_index
    - TRACE_ERROR
    - OPENSSL_malloc
    - memcpy
    - TRACE_LEAVE
    - __objt_listener
    - TRACE_ENTER
    - SSL_CTX_get_ex_data
    - obj_type
    - HA_ATOMIC_INC
    - EVP_PKEY_base_id
    - SSL_get_privatekey
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: int ssl_sock_ocsp_stapling_cbk(SSL *ssl, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:250,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ocsp_cid
    - certid
    - key_length
    argTypes:
    - OCSP_CERTID*
    - unsigned char[]
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 259
    functionName: ssl_ocsp_build_response_key
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - i2d_OCSP_CERTID
    linkageType: ''
    returnType: int
    signature: int ssl_ocsp_build_response_key(OCSP_CERTID *ocsp_cid, unsigned char
      certid[OCSP_MAX_CERTID_ASN1_LENGTH], unsigned int *key_length)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: d2i_OCSP_RESPONSE
      Src: /src/haproxy/src/ssl_ocsp.c:297,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:300,1
    - Dst: OCSP_response_status
      Src: /src/haproxy/src/ssl_ocsp.c:304,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:306,1
    - Dst: OCSP_response_get1_basic
      Src: /src/haproxy/src/ssl_ocsp.c:310,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:312,1
    - Dst: OCSP_resp_count
      Src: /src/haproxy/src/ssl_ocsp.c:316,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:318,1
    - Dst: OCSP_resp_get0
      Src: /src/haproxy/src/ssl_ocsp.c:322,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:324,1
    - Dst: OCSP_SINGLERESP_get0_id
      Src: /src/haproxy/src/ssl_ocsp.c:328,1
    - Dst: OCSP_single_get0_status
      Src: /src/haproxy/src/ssl_ocsp.c:330,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:332,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:337,1
    - Dst: OCSP_check_validity
      Src: /src/haproxy/src/ssl_ocsp.c:341,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:343,1
    - Dst: OCSP_id_cmp
      Src: /src/haproxy/src/ssl_ocsp.c:348,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:349,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:358,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:360,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:365,1
    - Dst: memset
      Src: /src/haproxy/src/ssl_ocsp.c:370,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:371,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:372,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:373,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:375,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:376,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:379,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_ocsp.c:384,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:385,1
    - Dst: ASN1_TIME_to_tm
      Src: /src/haproxy/src/ssl_ocsp.c:390,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:391,1
    - Dst: my_timegm
      Src: /src/haproxy/src/ssl_ocsp.c:394,1
    - Dst: asn1_generalizedtime_to_epoch
      Src: /src/haproxy/src/ssl_ocsp.c:396,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:398,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:405,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ocsp.c:411,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/haproxy/src/ssl_ocsp.c:414,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/haproxy/src/ssl_ocsp.c:417,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 113
    argCount: 4
    argNames:
    - ocsp_response
    - ocsp
    - cid
    - err
    argTypes:
    - struct buffer*
    - struct certificate_ocsp*
    - OCSP_CERTID*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 420
    functionName: ssl_sock_load_ocsp_response
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - memprintf
    - HA_SPIN_LOCK
    - d2i_OCSP_RESPONSE
    - OCSP_response_status
    - OCSP_id_cmp
    - OCSP_BASICRESP_free
    - OCSP_resp_count
    - OCSP_response_get1_basic
    - i2d_OCSP_CERTID
    - ERR_clear_error
    - OCSP_RESPONSE_free
    - asn1_generalizedtime_to_epoch
    - OCSP_single_get0_status
    - memset
    - ebmb_lookup
    - chunk_dup
    - OCSP_resp_get0
    - my_timegm
    - OCSP_check_validity
    - HA_SPIN_UNLOCK
    - OCSP_SINGLERESP_get0_id
    - ASN1_TIME_to_tm
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_load_ocsp_response(struct buffer *ocsp_response,\n                                struct
      certificate_ocsp *ocsp,\n                                OCSP_CERTID *cid, char
      **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_load_ocsp_response
      Src: /src/haproxy/src/ssl_ocsp.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ocsp_response
    - err
    argTypes:
    - struct buffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: ssl_sock_update_ocsp_response
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - ssl_sock_load_ocsp_response
    linkageType: ''
    returnType: int
    signature: int ssl_sock_update_ocsp_response(struct buffer *ocsp_response, char
      **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ocsp.c:441,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:442,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ocsp.c:443,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_ocsp.c:445,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/ssl_ocsp.c:447,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ocsp.c:449,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ocsp.c:450,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ocsp.c:452,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ocsp.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: ssl_sock_free_ocsp_data
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - X509_free
    - sk_X509_pop_free
    - eb64_delete
    - ha_free
    - free
    - chunk_destroy
    - ebmb_delete
    linkageType: ''
    returnType: void
    signature: void ssl_sock_free_ocsp_data(struct certificate_ocsp *ocsp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:465,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:468,1
    - Dst: ssl_sock_free_ocsp_data
      Src: /src/haproxy/src/ssl_ocsp.c:475,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 478
    functionName: ssl_sock_free_ocsp
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - ssl_sock_free_ocsp_data
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - eb64_delete
    linkageType: ''
    returnType: void
    signature: void ssl_sock_free_ocsp(struct certificate_ocsp *ocsp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:485,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:488,1
    - Dst: ssl_sock_free_ocsp_data
      Src: /src/haproxy/src/ssl_ocsp.c:495,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 499
    functionName: ssl_sock_free_ocsp_instance
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - ssl_sock_free_ocsp_data
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - eb64_delete
    linkageType: ''
    returnType: void
    signature: void ssl_sock_free_ocsp_instance(struct certificate_ocsp *ocsp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_id_get0_info
      Src: /src/haproxy/src/ssl_ocsp.c:512,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ocsp.c:514,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ocsp.c:516,1
    - Dst: i2a_ASN1_STRING
      Src: /src/haproxy/src/ssl_ocsp.c:518,1
    - Dst: wolfSSL_ASN1_STRING_print
      Src: /src/haproxy/src/ssl_ocsp.c:520,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ocsp.c:522,1
    - Dst: i2a_ASN1_STRING
      Src: /src/haproxy/src/ssl_ocsp.c:524,1
    - Dst: wolfSSL_ASN1_STRING_print
      Src: /src/haproxy/src/ssl_ocsp.c:526,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ocsp.c:528,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/haproxy/src/ssl_ocsp.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - bp
    - certid
    - indent
    argTypes:
    - BIO*
    - OCSP_CERTID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 532
    functionName: ocsp_certid_print
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_INTEGER
    - BIO_printf
    - i2a_ASN1_STRING
    - OCSP_id_get0_info
    - wolfSSL_ASN1_STRING_print
    linkageType: ''
    returnType: int
    signature: int ocsp_certid_print(BIO *bp, OCSP_CERTID *certid, int indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: a2base64
      Src: /src/haproxy/src/ssl_ocsp.c:637,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:637,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:637,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:638,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_ocsp.c:638,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ocsp_response
    - out
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 649
    functionName: ssl_ocsp_response_print_base64
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - a2base64
    - b_orig
    - chunk_appendf
    - b_data
    - b_size
    linkageType: ''
    returnType: int
    signature: int ssl_ocsp_response_print_base64(struct buffer *ocsp_response, struct
      buffer *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:660,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:661,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:663,1
    - Dst: ssl_ocsp_response_print
      Src: /src/haproxy/src/ssl_ocsp.c:667,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ocsp_certid
    - out
    argTypes:
    - unsigned char*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 672
    functionName: ssl_get_ocspresponse_detail
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - ssl_ocsp_response_print
    - HA_SPIN_UNLOCK
    - ebmb_lookup
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int ssl_get_ocspresponse_detail(unsigned char *ocsp_certid, struct
      buffer *out)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:680,1
    - Dst: ssl_ocsp_response_print
      Src: /src/haproxy/src/ssl_ocsp.c:688,1
    - Dst: ssl_ocsp_response_print_base64
      Src: /src/haproxy/src/ssl_ocsp.c:691,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ocsp.c:698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 706
    functionName: cli_io_handler_show_ocspresponse_detail
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - ssl_ocsp_response_print
    - ssl_ocsp_response_print_base64
    - get_trash_chunk
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_ocspresponse_detail(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:716,1
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:722,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ocsp.c:726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 728
    functionName: ssl_sock_ocsp_free_func
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - ssl_sock_free_ocsp_instance
    - free
    linkageType: ''
    returnType: void
    signature: void ssl_sock_ocsp_free_func(void *parent, void *ptr, CRYPTO_EX_DATA
      *ad, int idx, long argl, void *argp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ocsp.c:737,1
    - Dst: X509_get1_ocsp
      Src: /src/haproxy/src/ssl_ocsp.c:743,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:745,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/ssl_ocsp.c:749,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/haproxy/src/ssl_ocsp.c:749,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:750,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:753,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:754,1
    - Dst: X509_email_free
      Src: /src/haproxy/src/ssl_ocsp.c:761,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - cert
    - out
    - err
    argTypes:
    - X509*
    - struct buffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 763
    functionName: ssl_ocsp_get_uri_from_cert
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - sk_OPENSSL_STRING_value
    - memprintf
    - X509_get1_ocsp
    - X509_email_free
    - chunk_strcpy
    - b_data
    - STACK_OF
    linkageType: ''
    returnType: int
    signature: int ssl_ocsp_get_uri_from_cert(X509 *cert, struct buffer *out, char
      **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:779,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:780,1
    - Dst: OCSP_REQUEST_new
      Src: /src/haproxy/src/ssl_ocsp.c:782,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:784,1
    - Dst: OCSP_request_add0_id
      Src: /src/haproxy/src/ssl_ocsp.c:788,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:789,1
    - Dst: i2d_OCSP_REQUEST
      Src: /src/haproxy/src/ssl_ocsp.c:793,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:794,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:795,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:805,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:805,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:806,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ocsp.c:810,1
    - Dst: a2base64
      Src: /src/haproxy/src/ssl_ocsp.c:812,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:812,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:812,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:813,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_ocsp.c:813,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:816,1
    - Dst: encode_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:822,1
    - Dst: b_stop
      Src: /src/haproxy/src/ssl_ocsp.c:822,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:822,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_ocsp.c:822,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:825,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/ssl_ocsp.c:830,1
    - Dst: OCSP_REQUEST_free
      Src: /src/haproxy/src/ssl_ocsp.c:836,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - certid
    - req_url
    - req_body
    - err
    argTypes:
    - OCSP_CERTID*
    - struct buffer*
    - struct buffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 839
    functionName: ssl_ocsp_create_request_details
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - OCSP_request_add0_id
    - memprintf
    - a2base64
    - b_orig
    - i2d_OCSP_REQUEST
    - b_stop
    - chunk_strcat
    - get_trash_chunk
    - OCSP_REQUEST_new
    - b_data
    - b_size
    - chunk_cpy
    - OCSP_REQUEST_free
    - encode_chunk
    linkageType: ''
    returnType: int
    signature: "int ssl_ocsp_create_request_details(const OCSP_CERTID *certid, struct
      buffer *req_url,\n                                    struct buffer *req_body,
      char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/ssl_ocsp.c:976,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - err
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 986
    functionName: ssl_create_ocsp_update_task
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - task_new_anywhere
    - memprintf
    linkageType: ''
    returnType: int
    signature: int ssl_create_ocsp_update_task(char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_schedule
      Src: /src/haproxy/src/ssl_ocsp.c:991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 994
    functionName: ssl_ocsp_task_schedule
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - task_schedule
    linkageType: ''
    returnType: int
    signature: int ssl_ocsp_task_schedule()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1005,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_ocsp.c:1007,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_ocsp.c:1009,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:1010,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1014,1
    - Dst: task_destroy
      Src: /src/haproxy/src/ssl_ocsp.c:1016,1
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:1019,1
    - Dst: httpclient_stop_and_destroy
      Src: /src/haproxy/src/ssl_ocsp.c:1023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 999
    functionDepth: 3
    functionLinenumber: 999
    functionLinenumberEnd: 1026
    functionName: ssl_destroy_ocsp_update_task
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - eb64_next
    - task_destroy
    - eb64_delete
    - HA_SPIN_UNLOCK
    - eb64_first
    - HA_SPIN_LOCK
    - httpclient_stop_and_destroy
    - ssl_sock_free_ocsp_instance
    linkageType: ''
    returnType: void
    signature: void ssl_destroy_ocsp_update_task(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/ssl_ocsp.c:1032,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1039,1
    - Dst: MAX
      Src: /src/haproxy/src/ssl_ocsp.c:1040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1042
    functionName: ssl_ocsp_set_next_update
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - b_data
    - MIN
    - MAX
    linkageType: ''
    returnType: void
    signature: void ssl_ocsp_set_next_update(struct certificate_ocsp *ocsp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ocsp_set_next_update
      Src: /src/haproxy/src/ssl_ocsp.c:1060,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/ssl_ocsp.c:1069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1072
    functionName: __ssl_ocsp_update_insert_unlocked
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - ssl_ocsp_set_next_update
    - eb64_insert
    linkageType: ''
    returnType: int
    signature: int __ssl_ocsp_update_insert_unlocked(struct certificate_ocsp *ocsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1079,1
    - Dst: __ssl_ocsp_update_insert_unlocked
      Src: /src/haproxy/src/ssl_ocsp.c:1080,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1077
    functionDepth: 3
    functionLinenumber: 1077
    functionLinenumberEnd: 1084
    functionName: ssl_ocsp_update_insert
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - __ssl_ocsp_update_insert_unlocked
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int ssl_ocsp_update_insert(struct certificate_ocsp *ocsp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ocsp_set_next_update
      Src: /src/haproxy/src/ssl_ocsp.c:1101,1
    - Dst: MIN
      Src: /src/haproxy/src/ssl_ocsp.c:1112,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1118,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/ssl_ocsp.c:1124,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1128
    functionName: ssl_ocsp_update_insert_after_error
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - eb64_insert
    - ssl_ocsp_set_next_update
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - MIN
    linkageType: ''
    returnType: int
    signature: int ssl_ocsp_update_insert_after_error(struct certificate_ocsp *ocsp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_wakeup
      Src: /src/haproxy/src/ssl_ocsp.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1139
    functionName: ocsp_update_response_stline_cb
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    linkageType: ''
    returnType: void
    signature: void ocsp_update_response_stline_cb(struct httpclient *hc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_wakeup
      Src: /src/haproxy/src/ssl_ocsp.c:1149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1150
    functionName: ocsp_update_response_headers_cb
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    linkageType: ''
    returnType: void
    signature: void ocsp_update_response_headers_cb(struct httpclient *hc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_wakeup
      Src: /src/haproxy/src/ssl_ocsp.c:1160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1161
    functionName: ocsp_update_response_body_cb
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    linkageType: ''
    returnType: void
    signature: void ocsp_update_response_body_cb(struct httpclient *hc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_wakeup
      Src: /src/haproxy/src/ssl_ocsp.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1172
    functionName: ocsp_update_response_end_cb
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    linkageType: ''
    returnType: void
    signature: void ocsp_update_response_end_cb(struct httpclient *hc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1188,1
    - Dst: istlen
      Src: /src/haproxy/src/ssl_ocsp.c:1194,1
    - Dst: istptr
      Src: /src/haproxy/src/ssl_ocsp.c:1195,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_ocsp.c:1199,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1204,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1206,1
    - Dst: send_log
      Src: /src/haproxy/src/ssl_ocsp.c:1209,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1209,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:1209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1182
    functionDepth: 2
    functionLinenumber: 1182
    functionLinenumberEnd: 1210
    functionName: ssl_ocsp_send_log
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - b_orig
    - chunk_printf
    - chunk_appendf
    - get_trash_chunk
    - b_data
    - istptr
    - send_log
    - istlen
    linkageType: ''
    returnType: void
    signature: void ssl_ocsp_send_log()
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/src/ssl_ocsp.c:1261,1
    - Dst: isteqi
      Src: /src/haproxy/src/ssl_ocsp.c:1262,1
    - Dst: ist
      Src: /src/haproxy/src/ssl_ocsp.c:1262,1
    - Dst: isteqi
      Src: /src/haproxy/src/ssl_ocsp.c:1263,1
    - Dst: ist
      Src: /src/haproxy/src/ssl_ocsp.c:1263,1
    - Dst: ssl_ocsp_check_response
      Src: /src/haproxy/src/ssl_ocsp.c:1285,1
    - Dst: ssl_sock_update_ocsp_response
      Src: /src/haproxy/src/ssl_ocsp.c:1290,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ocsp.c:1304,1
    - Dst: ssl_ocsp_send_log
      Src: /src/haproxy/src/ssl_ocsp.c:1306,1
    - Dst: ssl_ocsp_update_insert
      Src: /src/haproxy/src/ssl_ocsp.c:1309,1
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:1311,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1314,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_ocsp.c:1316,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1323,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1334,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_ocsp.c:1336,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1338,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1344,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/ssl_ocsp.c:1348,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:1352,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1359,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1361,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1365,1
    - Dst: d2i_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:1372,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/ssl_ocsp.c:1377,1
    - Dst: ssl_ocsp_create_request_details
      Src: /src/haproxy/src/ssl_ocsp.c:1380,1
    - Dst: httpclient_new_from_proxy
      Src: /src/haproxy/src/ssl_ocsp.c:1387,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1388,1
    - Dst: ist2
      Src: /src/haproxy/src/ssl_ocsp.c:1389,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:1389,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1389,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/ssl_ocsp.c:1397,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ocsp.c:1398,1
    - Dst: httpclient_req_gen
      Src: /src/haproxy/src/ssl_ocsp.c:1403,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1404,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1405,1
    - Dst: ist2
      Src: /src/haproxy/src/ssl_ocsp.c:1405,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:1405,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1405,1
    - Dst: httpclient_start
      Src: /src/haproxy/src/ssl_ocsp.c:1414,1
    - Dst: ssl_ocsp_update_insert_after_error
      Src: /src/haproxy/src/ssl_ocsp.c:1429,1
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:1431,1
    - Dst: httpclient_stop_and_destroy
      Src: /src/haproxy/src/ssl_ocsp.c:1435,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1437,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1438,1
    - Dst: tick_add
      Src: /src/haproxy/src/ssl_ocsp.c:1439,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1443,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1444,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ocsp.c:1453,1
    - Dst: ssl_ocsp_update_insert_after_error
      Src: /src/haproxy/src/ssl_ocsp.c:1455,1
    - Dst: ssl_ocsp_send_log
      Src: /src/haproxy/src/ssl_ocsp.c:1457,1
    - Dst: httpclient_stop_and_destroy
      Src: /src/haproxy/src/ssl_ocsp.c:1460,1
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:1462,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1463,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_ocsp.c:1465,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1472,1
    - Dst: tick_add
      Src: /src/haproxy/src/ssl_ocsp.c:1476,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 181
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1232
    functionDepth: 4
    functionLinenumber: 1232
    functionLinenumberEnd: 1478
    functionName: ssl_ocsp_update_responses
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - eb64_delete
    - alloc_trash_chunk
    - HA_SPIN_LOCK
    - httpclient_stop_and_destroy
    - ssl_ocsp_send_log
    - chunk_cpy
    - sockaddr_alloc
    - ist
    - d2i_OCSP_CERTID
    - ist2
    - ha_free
    - eb64_first
    - ssl_ocsp_create_request_details
    - tick_add
    - isteqi
    - ssl_sock_update_ocsp_response
    - eb64_entry
    - b_orig
    - ssl_ocsp_update_insert
    - httpclient_req_gen
    - free_trash_chunk
    - ssl_ocsp_update_insert_after_error
    - b_data
    - ssl_sock_free_ocsp_instance
    - httpclient_start
    - HA_SPIN_UNLOCK
    - httpclient_new_from_proxy
    - ha_alert
    - ssl_ocsp_check_response
    - isttest
    linkageType: ''
    returnType: struct task
    signature: struct task *ssl_ocsp_update_responses(struct task *task, void *context,
      unsigned int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_create_proxy
      Src: /src/haproxy/src/ssl_ocsp.c:1493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1500
    functionName: ssl_ocsp_update_precheck
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - httpclient_create_proxy
    linkageType: ''
    returnType: int
    signature: int ssl_ocsp_update_precheck()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ocsp.c:1516,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1520,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ocsp.c:1521,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1526,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1527,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:1531,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1534,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1535,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:1540,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1542,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1545,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:1546,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1548,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1549,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:1556,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/ssl_ocsp.c:1568,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1572,1
    - Dst: ssl_create_ocsp_update_task
      Src: /src/haproxy/src/ssl_ocsp.c:1575,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/ssl_ocsp.c:1577,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ocsp.c:1579,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ocsp.c:1584,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1584,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1507
    functionDepth: 2
    functionLinenumber: 1507
    functionLinenumberEnd: 1585
    functionName: cli_parse_update_ocsp_response
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - ebmb_lookup
    - eb64_delete
    - eb64_insert
    - task_wakeup
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - free
    - i2d_OCSP_CERTID
    - ssl_create_ocsp_update_task
    - cli_has_level
    - cli_dynerr
    linkageType: ''
    returnType: int
    signature: int cli_parse_update_ocsp_response(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ocsp.c:1599,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1607,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_ocsp.c:1617,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1619,1
    - Dst: ssl_sock_update_ocsp_response
      Src: /src/haproxy/src/ssl_ocsp.c:1622,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ocsp.c:1624,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1624,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1626,1
    - Dst: cli_msg
      Src: /src/haproxy/src/ssl_ocsp.c:1629,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1631,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1593
    functionDepth: 4
    functionLinenumber: 1593
    functionLinenumberEnd: 1634
    functionName: cli_parse_set_ocspresponse
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - base64dec
    - ssl_sock_update_ocsp_response
    - memprintf
    - cli_err
    - cli_has_level
    - cli_dynerr
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_ocspresponse(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ocsp.c:1642,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ocsp.c:1645,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:1656,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:1659,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1665,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ocsp.c:1669,1
    - Dst: parse_binary
      Src: /src/haproxy/src/ssl_ocsp.c:1670,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1677,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1678,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:1681,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:1685,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1687,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1691,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1694,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:1695,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1698,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1699,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1702,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1711,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1639
    functionDepth: 2
    functionLinenumber: 1639
    functionLinenumberEnd: 1713
    functionName: cli_parse_show_ocspresponse
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - ebmb_lookup
    - cli_err
    - parse_binary
    - strcmp
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - applet_reserve_svcctx
    - i2d_OCSP_CERTID
    - cli_has_level
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_ocspresponse(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1723,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1734,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1736,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ocsp.c:1740,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_ocsp.c:1740,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1744,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ocsp.c:1745,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ocsp.c:1755,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1758,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1760,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1762,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1765,1
    - Dst: d2i_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:1770,1
    - Dst: ocsp_certid_print
      Src: /src/haproxy/src/ssl_ocsp.c:1775,1
    - Dst: OCSP_CERTID_free
      Src: /src/haproxy/src/ssl_ocsp.c:1776,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ocsp.c:1777,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1783,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ocsp.c:1785,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ocsp.c:1786,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1791,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1792,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1793,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ocsp.c:1794,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1798,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1799,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ocsp.c:1800,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1804,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1807,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1809
    functionName: cli_io_handler_show_ocspresponse
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - OCSP_CERTID_free
    - d2i_OCSP_CERTID
    - cli_err
    - free_trash_chunk
    - alloc_trash_chunk
    - HA_SPIN_UNLOCK
    - chunk_appendf
    - HA_SPIN_LOCK
    - BIO_free
    - ebmb_entry
    - ebmb_next
    - BIO_read
    - ebmb_first
    - BIO_new
    - ocsp_certid_print
    - BIO_s_mem
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_ocspresponse(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:1816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1811
    functionDepth: 3
    functionLinenumber: 1811
    functionLinenumberEnd: 1817
    functionName: cli_release_show_ocspresponse
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - ssl_sock_free_ocsp_instance
    linkageType: ''
    returnType: void
    signature: void cli_release_show_ocspresponse(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ocsp.c:1829,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ocsp.c:1831,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1834,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1826
    functionDepth: 2
    functionLinenumber: 1826
    functionLinenumberEnd: 1840
    functionName: cli_parse_show_ocsp_updates
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - HA_SPIN_LOCK
    - cli_err
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_ocsp_updates(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1857,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1860,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1863,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1865,1
    - Dst: get_localtime
      Src: /src/haproxy/src/ssl_ocsp.c:1870,1
    - Dst: get_localtime
      Src: /src/haproxy/src/ssl_ocsp.c:1873,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/ssl_ocsp.c:1875,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:1875,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1875,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_ocsp.c:1875,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1875,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1882,1
    - Dst: get_localtime
      Src: /src/haproxy/src/ssl_ocsp.c:1886,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/ssl_ocsp.c:1887,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:1887,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1887,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_ocsp.c:1887,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1887,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1894,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1896,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1899,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1901,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1904,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1906,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1909,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1911,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1915,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1917,1
    - Dst: istptr
      Src: /src/haproxy/src/ssl_ocsp.c:1917,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1919,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1922,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 2
    argNames:
    - ocsp
    - out
    argTypes:
    - struct certificate_ocsp*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1848
    functionDepth: 1
    functionLinenumber: 1848
    functionLinenumberEnd: 1925
    functionName: dump_ocsp_update_info
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - b_orig
    - chunk_appendf
    - localdate2str_log
    - b_data
    - b_size
    - istptr
    - get_localtime
    linkageType: ''
    returnType: int
    signature: int dump_ocsp_update_info(struct certificate_ocsp *ocsp, struct buffer
      *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1932,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_ocsp.c:1935,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1936,1
    - Dst: dump_ocsp_update_info
      Src: /src/haproxy/src/ssl_ocsp.c:1941,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ocsp.c:1945,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/ssl_ocsp.c:1953,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_ocsp.c:1955,1
    - Dst: dump_ocsp_update_info
      Src: /src/haproxy/src/ssl_ocsp.c:1956,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ocsp.c:1959,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_ocsp.c:1964,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1927
    functionDepth: 2
    functionLinenumber: 1927
    functionLinenumberEnd: 1972
    functionName: cli_io_handler_show_ocsp_updates
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - eb64_entry
    - eb64_next
    - chunk_appendf
    - eb64_first
    - get_trash_chunk
    - dump_ocsp_update_info
    - chunk_reset
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_ocsp_updates(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 1977
    functionName: cli_release_show_ocsp_updates
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void cli_release_show_ocsp_updates(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1986,1
    - Dst: atoi
      Src: /src/haproxy/src/ssl_ocsp.c:1990,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1992,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1979
    functionDepth: 1
    functionLinenumber: 1979
    functionLinenumberEnd: 2004
    functionName: ssl_parse_global_ocsp_maxdelay
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_ocsp_maxdelay(char **args, int section_type,
      struct proxy *curpx,\n                                          const struct
      proxy *defpx, const char *file, int line,\n                                          char
      **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:2013,1
    - Dst: atoi
      Src: /src/haproxy/src/ssl_ocsp.c:2017,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:2019,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:2024,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2006
    functionDepth: 1
    functionLinenumber: 2006
    functionLinenumberEnd: 2031
    functionName: ssl_parse_global_ocsp_mindelay
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_ocsp_mindelay(char **args, int section_type,
      struct proxy *curpx,\n                                          const struct
      proxy *defpx, const char *file, int line,\n                                          char
      **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:2038,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:2042,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:2044,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:2047,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2033
    functionDepth: 1
    functionLinenumber: 2033
    functionLinenumberEnd: 2052
    functionName: ssl_parse_global_ocsp_update_mode
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_ocsp_update_mode(char **args, int section_type,
      struct proxy *curpx,\n                                             const struct
      proxy *defpx, const char *file, int line,\n                                             char
      **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:2059,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:2063,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:2065,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:2068,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2054
    functionDepth: 1
    functionLinenumber: 2054
    functionLinenumberEnd: 2073
    functionName: ssl_parse_global_ocsp_update_disable
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_ocsp_update_disable(char **args, int section_type,
      struct proxy *curpx,\n                                                const
      struct proxy *defpx, const char *file, int line,\n                                                char
      **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/ssl_ocsp.c:2082,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/ssl_ocsp.c:2085,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/ssl_ocsp.c:2087,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ocsp.c:2091,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ocsp.c:2092,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/ssl_ocsp.c:2096,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ocsp.c:2097,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2075
    functionDepth: 2
    functionLinenumber: 2075
    functionLinenumberEnd: 2102
    functionName: ocsp_update_parse_global_http_proxy
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - sockaddr_alloc
    - free
    - ha_alert
    - str2sa_range
    - sockaddr_free
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int ocsp_update_parse_global_http_proxy(char **args, int section_type,
      struct proxy *curpx,\n                                        const struct proxy
      *defpx, const char *file, int line,\n                                        char
      **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_create_ocsp_update_task
      Src: /src/haproxy/src/ssl_ocsp.c:2114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - value
    - buf
    - s
    - cli
    - filename
    - linenum
    - err
    argTypes:
    - void*
    - char*
    - struct ckch_store*
    - int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2104
    functionDepth: 2
    functionLinenumber: 2104
    functionLinenumberEnd: 2118
    functionName: ocsp_update_init
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - ssl_create_ocsp_update_task
    linkageType: ''
    returnType: int
    signature: int ocsp_update_init(void *value, char *buf, struct ckch_store *s,
      int cli, const char *filename, int linenum, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_create_ocsp_update_task
      Src: /src/haproxy/src/ssl_ocsp.c:2130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2120
    functionDepth: 2
    functionLinenumber: 2120
    functionLinenumberEnd: 2134
    functionName: ocsp_update_postparser_init
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - ssl_create_ocsp_update_task
    linkageType: ''
    returnType: int
    signature: int ocsp_update_postparser_init()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/session.c:75,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/session.c:77,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/session.c:86,1
    - Dst: memset
      Src: /src/haproxy/src/session.c:89,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/session.c:91,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/session.c:95,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/session.c:96,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/session.c:97,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/session.c:111,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/session.c:113,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:116,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/session.c:117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 3
    argNames:
    - fe
    - li
    - origin
    argTypes:
    - struct proxy*
    - struct listener*
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 119
    functionName: session_new
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 3
    functionsReached:
    - _HA_ATOMIC_INC
    - memset
    - pool_alloc
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - vars_init_head
    - LIST_INIT
    - pool_free
    linkageType: ''
    returnType: struct session
    signature: struct session *session_new(struct proxy *fe, struct listener *li,
      enum obj_type *origin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/session.c:125,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/session.c:127,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/session.c:128,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:132,1
    - Dst: listener_release
      Src: /src/haproxy/src/session.c:133,1
    - Dst: session_store_counters
      Src: /src/haproxy/src/session.c:136,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:137,1
    - Dst: vars_prune_per_sess
      Src: /src/haproxy/src/session.c:138,1
    - Dst: objt_conn
      Src: /src/haproxy/src/session.c:139,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/session.c:141,1
    - Dst: destroy
      Src: /src/haproxy/src/session.c:141,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/session.c:143,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/session.c:144,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/session.c:145,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/session.c:146,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/session.c:148,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/session.c:150,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:151,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/session.c:153,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:156,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/session.c:157,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/session.c:159,1
    - Dst: conn_release
      Src: /src/haproxy/src/session.c:160,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/session.c:163,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/session.c:164,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:165,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/session.c:166,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/session.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 121
    functionDepth: 6
    functionLinenumber: 121
    functionLinenumberEnd: 169
    functionName: session_free
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 3
    functionsReached:
    - list_for_each_entry_safe
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - LIST_APPEND
    - listener_release
    - session_store_counters
    - conn_release
    - destroy
    - sockaddr_free
    - vars_prune_per_sess
    - _HA_ATOMIC_DEC
    - pool_free
    - MT_LIST_DELETE
    - TRACE_LEAVE
    - CALL_MUX_NO_RET
    - LIST_DEL_INIT
    - objt_conn
    - LIST_HEAD_INIT
    - TRACE_STATE
    - BUG_ON
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void session_free(struct session *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_free
      Src: /src/haproxy/src/session.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 7
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: conn_session_free
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - session_free
    linkageType: ''
    returnType: void
    signature: void conn_session_free(struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: proxy_inc_fe_sess_ctr
      Src: /src/haproxy/src/session.c:187,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/session.c:191,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/session.c:194,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/session.c:194,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/session.c:196,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/session.c:196,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/session.c:198,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/session.c:198,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/session.c:200,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/session.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 203
    functionName: session_count_new
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - proxy_inc_fe_sess_ctr
    - update_freq_ctr_period
    - stktable_data_ptr
    - stktable_data_cast
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void session_count_new(struct session *sess)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: __objt_listener
      Src: /src/haproxy/src/session.c:216,1
    - Dst: conn_prepare
      Src: /src/haproxy/src/session.c:231,1
    - Dst: conn_ctrl_init
      Src: /src/haproxy/src/session.c:234,1
    - Dst: xprt_add_hs
      Src: /src/haproxy/src/session.c:246,1
    - Dst: xprt_add_l6hs
      Src: /src/haproxy/src/session.c:252,1
    - Dst: session_new
      Src: /src/haproxy/src/session.c:259,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/session.c:263,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:272,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:273,1
    - Dst: tcp_exec_l4_rules
      Src: /src/haproxy/src/session.c:273,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:276,1
    - Dst: conn_xprt_start
      Src: /src/haproxy/src/session.c:281,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:292,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:295,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:299,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:304,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:309,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/session.c:314,1
    - Dst: getsockopt
      Src: /src/haproxy/src/session.c:321,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:323,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:330,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:334,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:338,1
    - Dst: unlikely
      Src: /src/haproxy/src/session.c:362,1
    - Dst: task_new_here
      Src: /src/haproxy/src/session.c:362,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/session.c:370,1
    - Dst: task_queue
      Src: /src/haproxy/src/session.c:371,1
    - Dst: conn_complete_session
      Src: /src/haproxy/src/session.c:380,1
    - Dst: session_free
      Src: /src/haproxy/src/session.c:397,1
    - Dst: xprt_get
      Src: /src/haproxy/src/session.c:400,1
    - Dst: send
      Src: /src/haproxy/src/session.c:404,1
    - Dst: strlen
      Src: /src/haproxy/src/session.c:404,1
    - Dst: conn_release
      Src: /src/haproxy/src/session.c:409,1
    - Dst: listener_release
      Src: /src/haproxy/src/session.c:410,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 102
    argCount: 1
    argNames:
    - cli_conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 214
    functionDepth: 7
    functionLinenumber: 214
    functionLinenumberEnd: 412
    functionName: session_accept_fd
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - unlikely
    - task_queue
    - HA_ATOMIC_OR
    - xprt_add_hs
    - listener_release
    - session_new
    - setsockopt
    - getsockopt
    - conn_release
    - conn_prepare
    - xprt_add_l6hs
    - conn_set_owner
    - session_free
    - tcp_exec_l4_rules
    - __objt_listener
    - conn_ctrl_init
    - tick_add_ifset
    - xprt_get
    - conn_complete_session
    - send
    - LIST_ISEMPTY
    - conn_xprt_start
    - task_new_here
    - strlen
    linkageType: ''
    returnType: int
    signature: int session_accept_fd(struct connection *cli_conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sess_src
      Src: /src/haproxy/src/session.c:427,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/session.c:428,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/session.c:430,1
    - Dst: real_family
      Src: /src/haproxy/src/session.c:431,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/session.c:432,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/session.c:434,1
    - Dst: get_host_port
      Src: /src/haproxy/src/session.c:434,1
    - Dst: get_localtime
      Src: /src/haproxy/src/session.c:436,1
    - Dst: date2str_log
      Src: /src/haproxy/src/session.c:437,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:441,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - sess
    - out
    argTypes:
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 444
    functionName: session_prepare_log_prefix
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - sess_src
    - date2str_log
    - chunk_appendf
    - get_host_port
    - addr_to_str
    - get_localtime
    - real_family
    linkageType: ''
    returnType: void
    signature: void session_prepare_log_prefix(struct session *sess, struct buffer
      *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/session.c:457,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:461,1
    - Dst: conn_err_code_str
      Src: /src/haproxy/src/session.c:463,1
    - Dst: session_prepare_log_prefix
      Src: /src/haproxy/src/session.c:464,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/session.c:467,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:472,1
    - Dst: ERR_error_string_n
      Src: /src/haproxy/src/session.c:473,1
    - Dst: b_orig
      Src: /src/haproxy/src/session.c:473,1
    - Dst: b_data
      Src: /src/haproxy/src/session.c:473,1
    - Dst: b_room
      Src: /src/haproxy/src/session.c:473,1
    - Dst: strlen
      Src: /src/haproxy/src/session.c:474,1
    - Dst: b_orig
      Src: /src/haproxy/src/session.c:474,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:475,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:482,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sess
    - out
    argTypes:
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 488
    functionName: session_embryonic_build_legacy_err
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - b_orig
    - BUG_ON
    - ERR_error_string_n
    - session_prepare_log_prefix
    - chunk_appendf
    - objt_conn
    - conn_err_code_str
    - b_data
    - b_room
    - conn_get_ssl_sock_ctx
    - strlen
    linkageType: ''
    returnType: void
    signature: void session_embryonic_build_legacy_err(struct session *sess, struct
      buffer *out)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __objt_conn
      Src: /src/haproxy/src/session.c:499,1
    - Dst: sess_log_embryonic
      Src: /src/haproxy/src/session.c:525,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/session.c:529,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/session.c:530,1
    - Dst: conn_free
      Src: /src/haproxy/src/session.c:531,1
    - Dst: task_destroy
      Src: /src/haproxy/src/session.c:534,1
    - Dst: session_free
      Src: /src/haproxy/src/session.c:535,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 24
    argCount: 2
    argNames:
    - sess
    - state
    argTypes:
    - struct session*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 497
    functionDepth: 7
    functionLinenumber: 497
    functionLinenumberEnd: 536
    functionName: session_kill_embryonic
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - conn_full_close
    - __objt_conn
    - sess_log_embryonic
    - conn_free
    - task_destroy
    - session_free
    - conn_stop_tracking
    linkageType: ''
    returnType: void
    signature: void session_kill_embryonic(struct session *sess, unsigned int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_kill_embryonic
      Src: /src/haproxy/src/session.c:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 542
    functionDepth: 8
    functionLinenumber: 542
    functionLinenumberEnd: 551
    functionName: session_expire_embryonic
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - session_kill_embryonic
    linkageType: ''
    returnType: struct task
    signature: struct task *session_expire_embryonic(struct task *t, void *context,
      unsigned int state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ns_to_ms
      Src: /src/haproxy/src/session.c:563,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:573,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:574,1
    - Dst: tcp_exec_l5_rules
      Src: /src/haproxy/src/session.c:574,1
    - Dst: session_count_new
      Src: /src/haproxy/src/session.c:577,1
    - Dst: conn_install_mux_fe
      Src: /src/haproxy/src/session.c:579,1
    - Dst: task_destroy
      Src: /src/haproxy/src/session.c:584,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/session.c:586,1
    - Dst: session_kill_embryonic
      Src: /src/haproxy/src/session.c:592,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 559
    functionDepth: 8
    functionLinenumber: 559
    functionLinenumberEnd: 594
    functionName: conn_complete_session
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 3
    functionsReached:
    - tcp_exec_l5_rules
    - conn_set_owner
    - task_destroy
    - conn_install_mux_fe
    - ns_to_ms
    - session_kill_embryonic
    - session_count_new
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int conn_complete_session(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_add_glitch_ctr
      Src: /src/haproxy/src/session.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sess
    - inc
    argTypes:
    - struct session*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 606
    functionName: __session_add_glitch_ctr
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - stkctr_add_glitch_ctr
    linkageType: ''
    returnType: void
    signature: void __session_add_glitch_ctr(struct session *sess, uint inc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/session.c:623,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/session.c:628,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/session.c:629,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/session.c:631,1
    - Dst: objt_server
      Src: /src/haproxy/src/session.c:633,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/session.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - sess
    - target
    argTypes:
    - struct session*
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 639
    functionName: sess_alloc_sess_conns
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - MT_LIST_APPEND
    - LIST_APPEND
    - MT_LIST_INIT
    - objt_server
    - LIST_INIT
    linkageType: ''
    returnType: struct sess_priv_conns
    signature: "struct sess_priv_conns *sess_alloc_sess_conns(struct session *sess,\n
      \                                                    enum obj_type *target)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/session.c:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sess
    - target
    argTypes:
    - struct session*
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 659
    functionName: sess_get_sess_conns
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct sess_priv_conns
    signature: "struct sess_priv_conns *sess_get_sess_conns(struct session *sess,\n
      \                                                  enum obj_type *target)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:674,1
    - Dst: objt_listener
      Src: /src/haproxy/src/session.c:674,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:685,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/session.c:687,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:690,1
    - Dst: sess_get_sess_conns
      Src: /src/haproxy/src/session.c:702,1
    - Dst: sess_alloc_sess_conns
      Src: /src/haproxy/src/session.c:704,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/session.c:709,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/session.c:713,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - sess
    - conn
    argTypes:
    - struct session*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 715
    functionName: session_add_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 4
    functionsReached:
    - BUG_ON
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - LIST_APPEND
    - LIST_ISEMPTY
    - sess_get_sess_conns
    - sess_alloc_sess_conns
    - objt_listener
    linkageType: ''
    returnType: int
    signature: int session_add_conn(struct session *sess, struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:729,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/session.c:731,1
    - Dst: sess_get_sess_conns
      Src: /src/haproxy/src/session.c:733,1
    - Dst: sess_alloc_sess_conns
      Src: /src/haproxy/src/session.c:735,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/session.c:740,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/session.c:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - sess
    - conn
    argTypes:
    - struct session*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 747
    functionName: session_reinsert_idle_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 3
    functionsReached:
    - BUG_ON
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - LIST_APPEND
    - sess_get_sess_conns
    - sess_alloc_sess_conns
    linkageType: ''
    returnType: int
    signature: int session_reinsert_idle_conn(struct session *sess, struct connection
      *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/session.c:760,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:763,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:770,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/session.c:774,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/session.c:782,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - sess
    - conn
    argTypes:
    - struct session*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 786
    functionName: session_check_idle_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_INC
    - objt_server
    - session_unown_conn
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int session_check_idle_conn(struct session *sess, struct connection
      *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/session.c:798,1
    - Dst: sess_get_sess_conns
      Src: /src/haproxy/src/session.c:800,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/session.c:805,1
    - Dst: struct connection*::mux::avail_streams
      Src: /src/haproxy/src/session.c:808,1
    - Dst: objt_server
      Src: /src/haproxy/src/session.c:814,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/session.c:816,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/session.c:825,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - sess
    - target
    - hash
    argTypes:
    - struct session*
    - void*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 827
    functionName: session_get_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - HA_ATOMIC_DEC
    - struct connection*::mux::avail_streams
    - sess_get_sess_conns
    - objt_server
    linkageType: ''
    returnType: struct connection
    signature: struct connection *session_get_conn(struct session *sess, void *target,
      int64_t hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:836,1
    - Dst: objt_listener
      Src: /src/haproxy/src/session.c:836,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/session.c:838,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/session.c:847,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/session.c:852,1
    - Dst: sess_get_sess_conns
      Src: /src/haproxy/src/session.c:855,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:856,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:857,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/session.c:858,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/session.c:859,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:860,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/session.c:864,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - sess
    - conn
    argTypes:
    - struct session*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 865
    functionName: session_unown_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 2
    functionsReached:
    - LIST_DELETE
    - MT_LIST_DELETE
    - BUG_ON
    - LIST_DEL_INIT
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - LIST_ISEMPTY
    - LIST_INLIST
    - sess_get_sess_conns
    - objt_listener
    - pool_free
    linkageType: ''
    returnType: void
    signature: void session_unown_conn(struct session *sess, struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/session.c:883,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:887,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/session.c:890,1
    - Dst: sess_get_sess_conns
      Src: /src/haproxy/src/session.c:892,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:893,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:894,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/session.c:896,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/session.c:897,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - sess
    - conn
    argTypes:
    - struct session*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 902
    functionName: session_detach_idle_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 3
    functionsReached:
    - LIST_DELETE
    - MT_LIST_DELETE
    - BUG_ON
    - LIST_DEL_INIT
    - LIST_ISEMPTY
    - LIST_INLIST
    - sess_get_sess_conns
    - pool_free
    linkageType: ''
    returnType: int
    signature: int session_detach_idle_conn(struct session *sess, struct connection
      *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/session.c:916,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/session.c:923,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/session.c:924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sess_conns
    argTypes:
    - struct sess_priv_conns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 930
    functionName: sess_conns_cleanup_all_idle
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - MT_LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int sess_conns_cleanup_all_idle(struct sess_priv_conns *sess_conns)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:49,1
    - Dst: quic_transport_params_encode
      Src: /src/haproxy/src/quic_ssl.c:50,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:52,1
    - Dst: SSL_set_quic_transport_params
      Src: /src/haproxy/src/quic_ssl.c:56,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:57,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - ssl
    - qc
    - ver
    - server
    argTypes:
    - SSL*
    - struct quic_conn*
    - struct quic_version*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 65
    functionName: qc_ssl_set_quic_transport_params
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - quic_transport_params_encode
    - TRACE_LEAVE
    - TRACE_ERROR
    - SSL_set_quic_transport_params
    - TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: "int qc_ssl_set_quic_transport_params(SSL *ssl, struct quic_conn *qc,\n
      \                                           const struct quic_version *ver,
      int server)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:88,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_ssl.c:97,1
    - Dst: realloc
      Src: /src/haproxy/src/quic_ssl.c:108,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_ssl.c:113,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:115,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_ssl.c:138,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_ssl.c:151,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:153,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_ssl.c:160,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:165,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 4
    argNames:
    - qc
    - qel
    - data
    - len
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 167
    functionName: qc_ssl_crypto_data_cpy
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - TRACE_ERROR
    - memcpy
    - list_for_each_entry
    - TRACE_LEAVE
    - TRACE_ENTER
    - LIST_APPEND
    - realloc
    - qc_frm_alloc
    linkageType: ''
    returnType: int
    signature: "int qc_ssl_crypto_data_cpy(struct quic_conn *qc, struct quic_enc_level
      *qel,\n                                  const unsigned char *data, size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:171,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:173,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:175,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/quic_ssl.c:177,1
    - Dst: ssl_sock_handle_hs_error
      Src: /src/haproxy/src/quic_ssl.c:179,1
    - Dst: objt_server
      Src: /src/haproxy/src/quic_ssl.c:180,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/quic_ssl.c:182,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/quic_ssl.c:183,1
    - Dst: wake
      Src: /src/haproxy/src/quic_ssl.c:183,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ssl
    - level
    - alert
    argTypes:
    - SSL*
    - enum ssl_encryption_level_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 189
    functionName: ha_quic_send_alert
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - CALL_MUX_NO_RET
    - TRACE_ENTER
    - quic_set_tls_alert
    - wake
    - ssl_sock_handle_hs_error
    - conn_create_mux
    - objt_server
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: int ha_quic_send_alert(SSL *ssl, enum ssl_encryption_level_t level,
      uint8_t alert)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:197,1
    - Dst: ssl_to_qel_addr
      Src: /src/haproxy/src/quic_ssl.c:198,1
    - Dst: ssl_to_quic_pktns
      Src: /src/haproxy/src/quic_ssl.c:199,1
    - Dst: SSL_get_current_cipher
      Src: /src/haproxy/src/quic_ssl.c:201,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:206,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_ssl.c:207,1
    - Dst: qc_enc_level_alloc
      Src: /src/haproxy/src/quic_ssl.c:209,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:210,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:217,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:222,1
    - Dst: tls_aead
      Src: /src/haproxy/src/quic_ssl.c:230,1
    - Dst: tls_md
      Src: /src/haproxy/src/quic_ssl.c:231,1
    - Dst: tls_hp
      Src: /src/haproxy/src/quic_ssl.c:232,1
    - Dst: quic_tls_secrets_keys_alloc
      Src: /src/haproxy/src/quic_ssl.c:236,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:237,1
    - Dst: quic_tls_derive_keys
      Src: /src/haproxy/src/quic_ssl.c:241,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:244,1
    - Dst: quic_tls_rx_ctx_init
      Src: /src/haproxy/src/quic_ssl.c:248,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:249,1
    - Dst: quic_tls_dec_hp_ctx_init
      Src: /src/haproxy/src/quic_ssl.c:253,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:254,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:262,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:268,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:271,1
    - Dst: quic_accept_push_qc
      Src: /src/haproxy/src/quic_ssl.c:272,1
    - Dst: tls_aead
      Src: /src/haproxy/src/quic_ssl.c:282,1
    - Dst: tls_md
      Src: /src/haproxy/src/quic_ssl.c:283,1
    - Dst: tls_hp
      Src: /src/haproxy/src/quic_ssl.c:284,1
    - Dst: quic_tls_secrets_keys_alloc
      Src: /src/haproxy/src/quic_ssl.c:288,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:289,1
    - Dst: quic_tls_derive_keys
      Src: /src/haproxy/src/quic_ssl.c:293,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:296,1
    - Dst: quic_tls_tx_ctx_init
      Src: /src/haproxy/src/quic_ssl.c:300,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:301,1
    - Dst: quic_tls_enc_hp_ctx_init
      Src: /src/haproxy/src/quic_ssl.c:305,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:306,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:311,1
    - Dst: qc_ssl_set_quic_transport_params
      Src: /src/haproxy/src/quic_ssl.c:312,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:329,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:330,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_ssl.c:331,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:335,1
    - Dst: qc_ssl_eary_data_accepted
      Src: /src/haproxy/src/quic_ssl.c:338,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:340,1
    - Dst: SSL_get_peer_quic_transport_params
      Src: /src/haproxy/src/quic_ssl.c:342,1
    - Dst: quic_transport_params_store
      Src: /src/haproxy/src/quic_ssl.c:343,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:344,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_ssl.c:353,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:354,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_ssl.c:358,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_ssl.c:363,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:364,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_ssl.c:368,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_ssl.c:383,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_ssl.c:384,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_ssl.c:385,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/quic_ssl.c:386,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:389,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 141
    argCount: 5
    argNames:
    - ssl
    - level
    - read_secret
    - write_secret
    - secret_len
    argTypes:
    - SSL*
    - enum ssl_encryption_level_t
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 391
    functionName: ha_quic_set_encryption_secrets
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - qc_ssl_eary_data_accepted
    - TRACE_ENTER
    - qc_is_back
    - quic_tls_rx_ctx_init
    - tls_aead
    - qc_release_pktns_frms
    - SSL_get_current_cipher
    - quic_tls_dec_hp_ctx_init
    - tls_hp
    - quic_tls_tx_ctx_init
    - pool_alloc
    - TRACE_DEVEL
    - tls_md
    - quic_tls_derive_keys
    - qc_ssl_set_quic_transport_params
    - quic_tls_enc_hp_ctx_init
    - ssl_to_quic_pktns
    - quic_tls_secrets_keys_alloc
    - qc_enc_level_free
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - memcpy
    - ssl_to_qel_addr
    - quic_set_tls_alert
    - quic_accept_push_qc
    - SSL_get_ex_data
    - BUG_ON
    - SSL_get_peer_quic_transport_params
    - quic_transport_params_store
    - qc_enc_level_alloc
    linkageType: ''
    returnType: int
    signature: "int ha_quic_set_encryption_secrets(SSL *ssl, enum ssl_encryption_level_t
      level,\n                                          const uint8_t *read_secret,\n
      \                                         const uint8_t *write_secret, size_t
      secret_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:401,1
    - Dst: ssl_to_qel_addr
      Src: /src/haproxy/src/quic_ssl.c:402,1
    - Dst: ssl_to_quic_pktns
      Src: /src/haproxy/src/quic_ssl.c:403,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:405,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:407,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:410,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:415,1
    - Dst: qc_enc_level_alloc
      Src: /src/haproxy/src/quic_ssl.c:419,1
    - Dst: qc_ssl_crypto_data_cpy
      Src: /src/haproxy/src/quic_ssl.c:422,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:423,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:427,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:432,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - ssl
    - level
    - data
    - len
    argTypes:
    - SSL*
    - enum ssl_encryption_level_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 434
    functionName: ha_quic_add_handshake_data
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - ssl_to_qel_addr
    - TRACE_DEVEL
    - TRACE_ENTER
    - qc_ssl_crypto_data_cpy
    - qc_enc_level_alloc
    - ssl_to_quic_pktns
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int ha_quic_add_handshake_data(SSL *ssl, enum ssl_encryption_level_t
      level,\n                                      const uint8_t *data, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:451,1
    - Dst: ssl_prot_level_to_enc_level
      Src: /src/haproxy/src/quic_ssl.c:452,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:454,1
    - Dst: ha_quic_add_handshake_data
      Src: /src/haproxy/src/quic_ssl.c:456,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:460,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:464,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - ssl
    - buf
    - buf_len
    - consumed
    - arg
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - size_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 470
    functionName: ha_quic_ossl_crypto_send
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - ssl_prot_level_to_enc_level
    - ha_quic_add_handshake_data
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int ha_quic_ossl_crypto_send(SSL *ssl,\n                                    const
      unsigned char *buf, size_t buf_len,\n                                    size_t
      *consumed, void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:482,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:488,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_ssl.c:490,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:496,1
    - Dst: ncbmb_data
      Src: /src/haproxy/src/quic_ssl.c:499,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_ssl.c:507,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:507,1
    - Dst: ncbmb_head
      Src: /src/haproxy/src/quic_ssl.c:509,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:511,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:521,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - ssl
    - buf
    - bytes_read
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - size_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 523
    functionName: ha_quic_ossl_crypto_recv_rcd
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - ncbmb_head
    - TRACE_LEAVE
    - BUG_ON
    - list_for_each_entry
    - ncbmb_data
    - TRACE_DEVEL
    - TRACE_ENTER
    - ncbmb_is_null
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int ha_quic_ossl_crypto_recv_rcd(SSL *ssl,\n                                        const
      unsigned char **buf,\n                                        size_t *bytes_read,\n
      \                                       void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:534,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:537,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_ssl.c:539,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:548,1
    - Dst: ncbmb_data
      Src: /src/haproxy/src/quic_ssl.c:551,1
    - Dst: ncbmb_advance
      Src: /src/haproxy/src/quic_ssl.c:556,1
    - Dst: ncbmb_is_empty
      Src: /src/haproxy/src/quic_ssl.c:558,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:559,1
    - Dst: quic_free_ncbuf
      Src: /src/haproxy/src/quic_ssl.c:560,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:571,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:574,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - ssl
    - bytes_read
    - arg
    argTypes:
    - SSL*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 576
    functionName: ha_quic_ossl_crypto_release_rcd
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - ncbmb_is_empty
    - ncbmb_advance
    - TRACE_LEAVE
    - list_for_each_entry
    - ncbmb_data
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_free_ncbuf
    - ncbmb_is_null
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int ha_quic_ossl_crypto_release_rcd(SSL *ssl,\n                                           size_t
      bytes_read, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:588,1
    - Dst: ssl_prot_level_to_enc_level
      Src: /src/haproxy/src/quic_ssl.c:589,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:591,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_ssl.c:593,1
    - Dst: ha_quic_set_encryption_secrets
      Src: /src/haproxy/src/quic_ssl.c:597,1
    - Dst: ha_quic_set_encryption_secrets
      Src: /src/haproxy/src/quic_ssl.c:602,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:610,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:613,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 6
    argNames:
    - ssl
    - prot_level
    - direction
    - secret
    - secret_len
    - arg
    argTypes:
    - SSL*
    - uint32_t
    - int
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 583
    functionDepth: 6
    functionLinenumber: 583
    functionLinenumberEnd: 615
    functionName: ha_quic_ossl_yield_secret
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_DEVEL
    - TRACE_ENTER
    - ssl_prot_level_to_enc_level
    - ha_quic_set_encryption_secrets
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int ha_quic_ossl_yield_secret(SSL *ssl, uint32_t prot_level, int direction,\n
      \                                    const unsigned char *secret, size_t secret_len,\n
      \                                    void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:625,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:627,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:630,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:635,1
    - Dst: quic_transport_params_store
      Src: /src/haproxy/src/quic_ssl.c:637,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:637,1
    - Dst: qc_ssl_eary_data_accepted
      Src: /src/haproxy/src/quic_ssl.c:638,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:644,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:647,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - ssl
    - params
    - params_len
    - arg
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 621
    functionDepth: 5
    functionLinenumber: 621
    functionLinenumberEnd: 649
    functionName: ha_quic_ossl_got_transport_params
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - qc_ssl_eary_data_accepted
    - TRACE_ENTER
    - quic_transport_params_store
    - qc_is_back
    - TRACE_DEVEL
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int ha_quic_ossl_got_transport_params(SSL *ssl, const unsigned char
      *params,\n                                             size_t params_len, void
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_quic_send_alert
      Src: /src/haproxy/src/quic_ssl.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - alert_code
    - arg
    argTypes:
    - SSL*
    - unsigned char
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 658
    functionName: ha_quic_ossl_alert
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - ha_quic_send_alert
    linkageType: ''
    returnType: int
    signature: int ha_quic_ossl_alert(SSL *ssl, unsigned char alert_code, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_quic_set_encryption_secrets
      Src: /src/haproxy/src/quic_ssl.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ssl
    - level
    - cipher
    - secret
    - secret_len
    argTypes:
    - SSL*
    - enum ssl_encryption_level_t
    - SSL_CIPHER*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 693
    functionDepth: 6
    functionLinenumber: 693
    functionLinenumberEnd: 699
    functionName: ha_quic_set_read_secret
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - ha_quic_set_encryption_secrets
    linkageType: ''
    returnType: int
    signature: "int ha_quic_set_read_secret(SSL *ssl, enum ssl_encryption_level_t
      level,\n                                   const SSL_CIPHER *cipher, const uint8_t
      *secret,\n                                   size_t secret_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_quic_set_encryption_secrets
      Src: /src/haproxy/src/quic_ssl.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ssl
    - level
    - cipher
    - secret
    - secret_len
    argTypes:
    - SSL*
    - enum ssl_encryption_level_t
    - SSL_CIPHER*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 701
    functionDepth: 6
    functionLinenumber: 701
    functionLinenumberEnd: 708
    functionName: ha_quic_set_write_secret
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - ha_quic_set_encryption_secrets
    linkageType: ''
    returnType: int
    signature: "int ha_quic_set_write_secret(SSL *ssl, enum ssl_encryption_level_t
      level,\n                                   const SSL_CIPHER *cipher, const uint8_t
      *secret,\n                                   size_t secret_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:713,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:715,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 719
    functionName: ha_quic_flush_flight
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: int ha_quic_flush_flight(SSL *ssl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/quic_ssl.c:760,1
    - Dst: TLS_server_method
      Src: /src/haproxy/src/quic_ssl.c:760,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/quic_ssl.c:764,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/quic_ssl.c:765,1
    - Dst: SSL_CTX_set_mode
      Src: /src/haproxy/src/quic_ssl.c:766,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/quic_ssl.c:767,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/haproxy/src/quic_ssl.c:768,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/haproxy/src/quic_ssl.c:770,1
    - Dst: ha_warning
      Src: /src/haproxy/src/quic_ssl.c:771,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/quic_ssl.c:774,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/haproxy/src/quic_ssl.c:779,1
    - Dst: ha_warning
      Src: /src/haproxy/src/quic_ssl.c:780,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/quic_ssl.c:783,1
    - Dst: ha_warning
      Src: /src/haproxy/src/quic_ssl.c:790,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/quic_ssl.c:791,1
    - Dst: SSL_CTX_set_early_data_enabled
      Src: /src/haproxy/src/quic_ssl.c:793,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/quic_ssl.c:795,1
    - Dst: SSL_CTX_set_max_early_data
      Src: /src/haproxy/src/quic_ssl.c:796,1
    - Dst: SSL_CTX_set_select_certificate_cb
      Src: /src/haproxy/src/quic_ssl.c:802,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/quic_ssl.c:803,1
    - Dst: SSL_CTX_set_client_hello_cb
      Src: /src/haproxy/src/quic_ssl.c:805,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/quic_ssl.c:806,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/quic_ssl.c:808,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/haproxy/src/quic_ssl.c:810,1
    - Dst: quic_tls_compat_init
      Src: /src/haproxy/src/quic_ssl.c:813,1
    - Dst: load_echkeys
      Src: /src/haproxy/src/quic_ssl.c:821,1
    - Dst: ha_alert
      Src: /src/haproxy/src/quic_ssl.c:823,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 832
    functionName: ssl_quic_initial_ctx
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 2
    functionsReached:
    - SSL_CTX_set_security_level
    - proxy_type_str
    - TLS_server_method
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_mode
    - SSL_CTX_set_client_hello_cb
    - SSL_CTX_set1_curves_list
    - SSL_CTX_set_early_data_enabled
    - SSL_CTX_set_max_early_data
    - quic_tls_compat_init
    - SSL_CTX_set_select_certificate_cb
    - SSL_CTX_new
    - SSL_CTX_set_options
    - SSL_CTX_set_ciphersuites
    - SSL_CTX_set_tlsext_servername_callback
    - load_echkeys
    - ha_alert
    - ha_warning
    - SSL_CTX_set_tlsext_servername_arg
    linkageType: ''
    returnType: int
    signature: int ssl_quic_initial_ctx(struct bind_conf *bind_conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/quic_ssl.c:841,1
    - Dst: TLS_client_method
      Src: /src/haproxy/src/quic_ssl.c:841,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/quic_ssl.c:845,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/haproxy/src/quic_ssl.c:846,1
    - Dst: quic_tls_compat_init
      Src: /src/haproxy/src/quic_ssl.c:849,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/quic_ssl.c:856,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 859
    functionName: ssl_quic_srv_new_ssl_ctx
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 1
    functionsReached:
    - quic_tls_compat_init
    - SSL_CTX_free
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_new
    - TLS_client_method
    linkageType: ''
    returnType: SSL_CTX
    signature: SSL_CTX *ssl_quic_srv_new_ssl_ctx(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/quic_ssl.c:867,1
    - Dst: ERR_peek_error_func
      Src: /src/haproxy/src/quic_ssl.c:872,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/quic_ssl.c:873,1
    - Dst: fprintf
      Src: /src/haproxy/src/quic_ssl.c:877,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/quic_ssl.c:878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 881
    functionName: qc_ssl_dump_errors
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERR_reason_error_string
    - fprintf
    - ERR_get_error
    - ERR_peek_error_func
    linkageType: ''
    returnType: forceinline
    signature: forceinline qc_ssl_dump_errors(struct connection *conn)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:893,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:904,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_ssl.c:905,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_ssl.c:906,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_ssl.c:910,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_ssl.c:912,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_ssl.c:913,1
    - Dst: SSL_do_handshake
      Src: /src/haproxy/src/quic_ssl.c:918,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:919,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:922,1
    - Dst: qc_conn_finalize
      Src: /src/haproxy/src/quic_ssl.c:930,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:931,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/quic_ssl.c:936,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:938,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:943,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_ssl.c:944,1
    - Dst: qc_ssl_dump_errors
      Src: /src/haproxy/src/quic_ssl.c:945,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/quic_ssl.c:946,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:957,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_ssl.c:958,1
    - Dst: SSL_in_early_data
      Src: /src/haproxy/src/quic_ssl.c:977,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:978,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:993,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:996,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:1002,1
    - Dst: ssl_sock_update_counters
      Src: /src/haproxy/src/quic_ssl.c:1003,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:1003,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:1006,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1008,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/quic_ssl.c:1009,1
    - Dst: ssl_sock_get_alpn
      Src: /src/haproxy/src/quic_ssl.c:1018,1
    - Dst: qc_register_alpn
      Src: /src/haproxy/src/quic_ssl.c:1019,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1020,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/quic_ssl.c:1021,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_ssl.c:1025,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/quic_ssl.c:1026,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1027,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/quic_ssl.c:1032,1
    - Dst: wake
      Src: /src/haproxy/src/quic_ssl.c:1032,1
    - Dst: qc_notify_send
      Src: /src/haproxy/src/quic_ssl.c:1040,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:1044,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:1048,1
    - Dst: quic_accept_push_qc
      Src: /src/haproxy/src/quic_ssl.c:1055,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_ssl.c:1062,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_ssl.c:1065,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_ssl.c:1066,1
    - Dst: quic_tls_key_update
      Src: /src/haproxy/src/quic_ssl.c:1073,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1074,1
    - Dst: SSL_process_quic_post_handshake
      Src: /src/haproxy/src/quic_ssl.c:1080,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/quic_ssl.c:1082,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:1084,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1089,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_ssl.c:1094,1
    - Dst: SSL_read
      Src: /src/haproxy/src/quic_ssl.c:1101,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:1108,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:1111,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 135
    argCount: 2
    argNames:
    - qc
    - ctx
    argTypes:
    - struct quic_conn*
    - struct ssl_sock_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 1113
    functionName: qc_ssl_do_hanshake
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 1
    functionsReached:
    - qc_register_alpn
    - qc_conn_finalize
    - TRACE_ENTER
    - qc_is_back
    - ssl_sock_get_alpn
    - HA_ATOMIC_INC
    - TRACE_DEVEL
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - CALL_MUX_NO_RET
    - tasklet_wakeup
    - quic_set_tls_alert
    - SSL_in_early_data
    - qc_notify_send
    - ERR_clear_error
    - SSL_do_handshake
    - quic_accept_push_qc
    - __objt_server
    - SSL_process_quic_post_handshake
    - EXTRA_COUNTERS_GET
    - quic_tls_key_update
    - BUG_ON
    - qc_is_conn_ready
    - TRACE_STATE
    - wake
    - SSL_read
    - qc_ssl_dump_errors
    - HA_ATOMIC_DEC
    - conn_create_mux
    - ssl_sock_update_counters
    - SSL_get_error
    linkageType: ''
    returnType: int
    signature: int qc_ssl_do_hanshake(struct quic_conn *qc, struct ssl_sock_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:1134,1
    - Dst: SSL_provide_quic_data
      Src: /src/haproxy/src/quic_ssl.c:1136,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1137,1
    - Dst: qc_ssl_do_hanshake
      Src: /src/haproxy/src/quic_ssl.c:1142,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:1151,1
    - Dst: ncbmb_advance
      Src: /src/haproxy/src/quic_ssl.c:1153,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_ssl.c:1154,1
    - Dst: ncbmb_advance
      Src: /src/haproxy/src/quic_ssl.c:1156,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:1160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - ncbuf
    - level
    - ctx
    - data
    - len
    argTypes:
    - struct ncbmbuf*
    - enum ssl_encryption_level_t
    - struct ssl_sock_ctx*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1121
    functionDepth: 3
    functionLinenumber: 1121
    functionLinenumberEnd: 1162
    functionName: qc_ssl_provide_quic_data
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - ncbmb_advance
    - TRACE_ERROR
    - BUG_ON
    - TRACE_LEAVE
    - TRACE_ENTER
    - ncbmb_is_null
    - SSL_provide_quic_data
    - qc_ssl_do_hanshake
    linkageType: ''
    returnType: int
    signature: "int qc_ssl_provide_quic_data(struct ncbmbuf *ncbuf,\n                                    enum
      ssl_encryption_level_t level,\n                                    struct ssl_sock_ctx
      *ctx,\n                                    const unsigned char *data, size_t
      len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:1174,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_ssl.c:1175,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:1182,1
    - Dst: ncbmb_data
      Src: /src/haproxy/src/quic_ssl.c:1186,1
    - Dst: ncbmb_head
      Src: /src/haproxy/src/quic_ssl.c:1187,1
    - Dst: qc_ssl_provide_quic_data
      Src: /src/haproxy/src/quic_ssl.c:1189,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:1194,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:1198,1
    - Dst: ncbmb_is_empty
      Src: /src/haproxy/src/quic_ssl.c:1198,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:1199,1
    - Dst: quic_free_ncbuf
      Src: /src/haproxy/src/quic_ssl.c:1200,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:1206,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - qc
    - ctx
    argTypes:
    - struct quic_conn*
    - struct ssl_sock_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1167
    functionDepth: 4
    functionLinenumber: 1167
    functionLinenumberEnd: 1208
    functionName: qc_ssl_provide_all_quic_data
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - ncbmb_is_empty
    - ncbmb_head
    - TRACE_LEAVE
    - list_for_each_entry
    - ncbmb_data
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_free_ncbuf
    - ncbmb_is_null
    - qc_ssl_provide_quic_data
    linkageType: ''
    returnType: int
    signature: int qc_ssl_provide_all_quic_data(struct quic_conn *qc, struct ssl_sock_ctx
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_quic_tls_cbs
      Src: /src/haproxy/src/quic_ssl.c:1215,1
    - Dst: SSL_set_quic_method
      Src: /src/haproxy/src/quic_ssl.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1219
    functionName: quic_ssl_set_tls_cbs
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_quic_method
    - SSL_set_quic_tls_cbs
    linkageType: ''
    returnType: int
    signature: int quic_ssl_set_tls_cbs(SSL *ssl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:1234,1
    - Dst: SSL_new
      Src: /src/haproxy/src/quic_ssl.c:1238,1
    - Dst: pool_gc
      Src: /src/haproxy/src/quic_ssl.c:1243,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/quic_ssl.c:1247,1
    - Dst: quic_ssl_set_tls_cbs
      Src: /src/haproxy/src/quic_ssl.c:1248,1
    - Dst: SSL_free
      Src: /src/haproxy/src/quic_ssl.c:1249,1
    - Dst: pool_gc
      Src: /src/haproxy/src/quic_ssl.c:1254,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:1260,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:1263,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - qc
    - ssl_ctx
    - ssl
    - server
    argTypes:
    - struct quic_conn*
    - SSL_CTX*
    - SSL**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1265
    functionName: qc_ssl_sess_init
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_new
    - pool_gc
    - TRACE_LEAVE
    - SSL_set_ex_data
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_ssl_set_tls_cbs
    - SSL_free
    linkageType: ''
    returnType: int
    signature: "int qc_ssl_sess_init(struct quic_conn *qc, SSL_CTX *ssl_ctx, SSL **ssl,\n
      \                           int server)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quic_transport_params_init
      Src: /src/haproxy/src/quic_ssl.c:1280,1
    - Dst: quic_transport_params_encode
      Src: /src/haproxy/src/quic_ssl.c:1283,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1285,1
    - Dst: SSL_set_quic_early_data_context
      Src: /src/haproxy/src/quic_ssl.c:1290,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1291,1
    - Dst: SSL_set_early_data_enabled
      Src: /src/haproxy/src/quic_ssl.c:1295,1
    - Dst: SSL_set_quic_early_data_enabled
      Src: /src/haproxy/src/quic_ssl.c:1297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - qc
    - ssl
    argTypes:
    - struct quic_conn*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1272
    functionDepth: 4
    functionLinenumber: 1272
    functionLinenumberEnd: 1301
    functionName: qc_set_quic_early_data_enabled
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - quic_transport_params_encode
    - TRACE_ERROR
    - quic_transport_params_init
    - SSL_set_quic_early_data_enabled
    - SSL_set_quic_early_data_context
    - SSL_set_early_data_enabled
    linkageType: ''
    returnType: int
    signature: int qc_set_quic_early_data_enabled(struct quic_conn *qc, SSL *ssl)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:1317,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_ssl.c:1319,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1321,1
    - Dst: memset
      Src: /src/haproxy/src/quic_ssl.c:1329,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:1337,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/quic_ssl.c:1338,1
    - Dst: qc_ssl_sess_init
      Src: /src/haproxy/src/quic_ssl.c:1339,1
    - Dst: qc_set_quic_early_data_enabled
      Src: /src/haproxy/src/quic_ssl.c:1343,1
    - Dst: SSL_set_accept_state
      Src: /src/haproxy/src/quic_ssl.c:1347,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_ssl.c:1350,1
    - Dst: qc_ssl_sess_init
      Src: /src/haproxy/src/quic_ssl.c:1351,1
    - Dst: qc_ssl_set_quic_transport_params
      Src: /src/haproxy/src/quic_ssl.c:1354,1
    - Dst: ssl_sock_srv_try_reuse_sess
      Src: /src/haproxy/src/quic_ssl.c:1357,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/quic_ssl.c:1376,1
    - Dst: quic_reuse_srv_params
      Src: /src/haproxy/src/quic_ssl.c:1379,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/quic_ssl.c:1380,1
    - Dst: SSL_set_quic_early_data_enabled
      Src: /src/haproxy/src/quic_ssl.c:1382,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:1386,1
    - Dst: SSL_set_connect_state
      Src: /src/haproxy/src/quic_ssl.c:1390,1
    - Dst: xprt_get
      Src: /src/haproxy/src/quic_ssl.c:1393,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_ssl.c:1399,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:1403,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:1407,1
    - Dst: qc_free_ssl_sock_ctx
      Src: /src/haproxy/src/quic_ssl.c:1408,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 2
    argNames:
    - qc
    - target
    argTypes:
    - struct quic_conn*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1310
    functionDepth: 5
    functionLinenumber: 1310
    functionLinenumberEnd: 1410
    functionName: qc_alloc_ssl_sock_ctx
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - qc_free_ssl_sock_ctx
    - qc_is_back
    - qc_set_quic_early_data_enabled
    - pool_alloc
    - TRACE_DEVEL
    - qc_ssl_set_quic_transport_params
    - SSL_set_quic_early_data_enabled
    - qc_ssl_sess_init
    - TRACE_PROTO
    - SSL_set_connect_state
    - TRACE_LEAVE
    - TRACE_ERROR
    - SSL_set_accept_state
    - quic_reuse_srv_params
    - __objt_listener
    - ssl_sock_srv_try_reuse_sess
    - __objt_server
    - HA_RWLOCK_RDLOCK
    - memset
    - _HA_ATOMIC_INC
    - xprt_get
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: int
    signature: int qc_alloc_ssl_sock_ctx(struct quic_conn *qc, void *target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/protocol.c:45,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/protocol.c:46,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/protocol.c:48,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/protocol.c:51,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/protocol.c:52,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/protocol.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - proto
    argTypes:
    - struct protocol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 59
    functionName: protocol_register
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - LIST_APPEND
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void protocol_register(struct protocol *proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/protocol.c:66,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/protocol.c:67,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/protocol.c:68,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/protocol.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - proto
    argTypes:
    - struct protocol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: protocol_unregister
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - HA_SPIN_UNLOCK
    - LIST_INIT
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: void
    signature: void protocol_unregister(struct protocol *proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/protocol.c:77,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:78,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/protocol.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - flag
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: protocol_clrf_all
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void protocol_clrf_all(uint flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/protocol.c:88,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:89,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/protocol.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - flag
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: protocol_setf_all
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void protocol_setf_all(uint flag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/protocol.c:106,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/protocol.c:110,1
    - Dst: _sock_supports_reuseport
      Src: /src/haproxy/src/protocol.c:114,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/protocol.c:116,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/protocol.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - proto
    - flag
    argTypes:
    - struct protocol*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: protocol_supports_flag
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_OR
    - _sock_supports_reuseport
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    linkageType: ''
    returnType: int
    signature: int protocol_supports_flag(struct protocol *proto, uint flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: protocol_may_bind_quic
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int protocol_may_bind_quic(struct listener *l)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/protocol.c:147,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:148,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:149,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/protocol.c:150,1
    - Dst: protocol_may_bind_quic
      Src: /src/haproxy/src/protocol.c:153,1
    - Dst: struct protocol*::fam::bind
      Src: /src/haproxy/src/protocol.c:157,1
    - Dst: ha_alert
      Src: /src/haproxy/src/protocol.c:165,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/protocol.c:167,1
    - Dst: ha_warning
      Src: /src/haproxy/src/protocol.c:169,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/protocol.c:171,1
    - Dst: ha_free
      Src: /src/haproxy/src/protocol.c:174,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/protocol.c:183,1
    - Dst: struct protocol*::listen
      Src: /src/haproxy/src/protocol.c:184,1
    - Dst: ha_alert
      Src: /src/haproxy/src/protocol.c:191,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/protocol.c:193,1
    - Dst: ha_warning
      Src: /src/haproxy/src/protocol.c:195,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/protocol.c:197,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/protocol.c:205,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 1
    argNames:
    - verbose
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 207
    functionName: protocol_bind_all
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - BUG_ON
    - list_for_each_entry
    - ha_free
    - struct protocol*::listen
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - struct protocol*::fam::bind
    - ha_alert
    - protocol_may_bind_quic
    - ha_warning
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int protocol_bind_all(int verbose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/protocol.c:221,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:222,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:223,1
    - Dst: unbind_listener
      Src: /src/haproxy/src/protocol.c:224,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/protocol.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 228
    functionName: protocol_unbind_all
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - unbind_listener
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int protocol_unbind_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/protocol.c:239,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:240,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/protocol.c:241,1
    - Dst: stop_listener
      Src: /src/haproxy/src/protocol.c:242,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/protocol.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 245
    functionName: protocol_stop_now
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - list_for_each_entry_safe
    - HA_SPIN_UNLOCK
    - stop_listener
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: void
    signature: void protocol_stop_now(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/protocol.c:259,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:260,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:261,1
    - Dst: suspend_listener
      Src: /src/haproxy/src/protocol.c:262,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/protocol.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 267
    functionName: protocol_pause_all
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - suspend_listener
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int protocol_pause_all(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/protocol.c:281,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:282,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:283,1
    - Dst: resume_listener
      Src: /src/haproxy/src/protocol.c:284,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/protocol.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 289
    functionName: protocol_resume_all
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached:
    - resume_listener
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int protocol_resume_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/protocol.c:299,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:300,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:301,1
    - Dst: enable_listener
      Src: /src/haproxy/src/protocol.c:302,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/protocol.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 306
    functionName: protocol_enable_all
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    - enable_listener
    - HA_SPIN_LOCK
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int protocol_enable_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - gen
    - ','
    - ref
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: pat_ref_gen_foreach
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pat_ref_gen_foreach(gen, ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - gen
    - ','
    - next
    - ','
    - ref
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: pat_ref_gen_foreach_safe
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pat_ref_gen_foreach_safe(gen, next, ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - mask
    argTypes:
    - unsigned char
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: is_delimiter
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int is_delimiter(unsigned char c, unsigned int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d1
    - d2
    - d3
    - d4
    argTypes:
    - unsigned char
    - unsigned char
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: make_4delim
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int make_4delim(unsigned char d1, unsigned char d2, unsigned
      char d3, unsigned char d4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - text
    - pattern
    - mflags
    - err
    argTypes:
    - char*
    - struct pattern*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: pat_parse_nothing
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pat_parse_nothing(const char *text, struct pattern *pattern, int
      mflags, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - text
    - pattern
    - mflags
    - err
    argTypes:
    - char*
    - struct pattern*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: pat_parse_str
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int pat_parse_str(const char *text, struct pattern *pattern, int mflags,
      char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/pattern.c:229,1
    - Dst: parse_binary
      Src: /src/haproxy/src/pattern.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - text
    - pattern
    - mflags
    - err
    argTypes:
    - char*
    - struct pattern*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: pat_parse_bin
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - parse_binary
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int pat_parse_bin(const char *text, struct pattern *pattern, int mflags,
      char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - text
    - pattern
    - mflags
    - err
    argTypes:
    - char*
    - struct pattern*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: pat_parse_reg
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pat_parse_reg(const char *text, struct pattern *pattern, int mflags,
      char **err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strl2llrc
      Src: /src/haproxy/src/pattern.c:273,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:274,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/pattern.c:285,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:285,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/pattern.c:295,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/pattern.c:304,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/pattern.c:307,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:307,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:318,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 4
    argNames:
    - text
    - pattern
    - mflags
    - err
    argTypes:
    - char*
    - struct pattern*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 320
    functionName: pat_parse_int
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strl2llrc
    - strlen
    linkageType: ''
    returnType: int
    signature: int pat_parse_int(const char *text, struct pattern *pattern, int mflags,
      char **err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strl2llrc_dotted
      Src: /src/haproxy/src/pattern.c:354,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:355,1
    - Dst: strl2llrc_dotted
      Src: /src/haproxy/src/pattern.c:366,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:366,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:367,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:376,1
    - Dst: strl2llrc_dotted
      Src: /src/haproxy/src/pattern.c:377,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:378,1
    - Dst: strl2llrc_dotted
      Src: /src/haproxy/src/pattern.c:387,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:388,1
    - Dst: strl2llrc_dotted
      Src: /src/haproxy/src/pattern.c:391,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:391,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:392,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:396,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 4
    argNames:
    - text
    - pattern
    - mflags
    - err
    argTypes:
    - char*
    - struct pattern*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 402
    functionName: pat_parse_dotted_ver
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - strl2llrc_dotted
    - strlen
    - memprintf
    linkageType: ''
    returnType: int
    signature: int pat_parse_dotted_ver(const char *text, struct pattern *pattern,
      int mflags, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: str2net
      Src: /src/haproxy/src/pattern.c:411,1
    - Dst: str62net
      Src: /src/haproxy/src/pattern.c:416,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - text
    - pattern
    - mflags
    - err
    argTypes:
    - char*
    - struct pattern*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 424
    functionName: pat_parse_ip
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - str2net
    - str62net
    linkageType: ''
    returnType: int
    signature: int pat_parse_ip(const char *text, struct pattern *pattern, int mflags,
      char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 450
    functionName: pat_match_nothing
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_nothing(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smp_dup
      Src: /src/haproxy/src/pattern.c:465,1
    - Dst: smp_dup
      Src: /src/haproxy/src/pattern.c:474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 478
    functionName: pat_match_ensure_str
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - smp_dup
    linkageType: ''
    returnType: int
    signature: int pat_match_ensure_str(struct sample *smp)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/src/pattern.c:492,1
    - Dst: pat_match_ensure_str
      Src: /src/haproxy/src/pattern.c:493,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/pattern.c:496,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/pattern.c:499,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/pattern.c:501,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pattern.c:516,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:519,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:519,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:528,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/pattern.c:538,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:539,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:546,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 549
    functionName: pat_match_str
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - lru64_commit
    - eb_is_empty
    - lru64_get
    - list_for_each_entry
    - XXH3
    - ebst_lookup
    - pat_match_ensure_str
    - ebmb_entry
    - strncmp
    - ebmb_next_dup
    - LIST_ISEMPTY
    - strncasecmp
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_str(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pattern.c:559,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:562,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:562,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:570,1
    - Dst: memcmp
      Src: /src/haproxy/src/pattern.c:579,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:586,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 589
    functionName: pat_match_bin
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - lru64_commit
    - memcmp
    - lru64_get
    - list_for_each_entry
    - XXH3
    - LIST_ISEMPTY
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_bin(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:601,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/pattern.c:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 616
    functionName: pat_match_regm
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - regex_exec_match2
    - list_for_each_entry
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_regm(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pattern.c:628,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:631,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:631,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:639,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/pattern.c:645,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:652,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 655
    functionName: pat_match_reg
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - regex_exec2
    - lru64_commit
    - lru64_get
    - list_for_each_entry
    - XXH3
    - LIST_ISEMPTY
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_reg(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/src/pattern.c:669,1
    - Dst: pat_match_ensure_str
      Src: /src/haproxy/src/pattern.c:670,1
    - Dst: ebmb_lookup_longest
      Src: /src/haproxy/src/pattern.c:673,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/pattern.c:677,1
    - Dst: ebmb_lookup_shorter
      Src: /src/haproxy/src/pattern.c:679,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pattern.c:694,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:697,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:697,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:705,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/pattern.c:715,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:716,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:724,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 727
    functionName: pat_match_beg
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - lru64_commit
    - ebmb_lookup_shorter
    - eb_is_empty
    - lru64_get
    - list_for_each_entry
    - XXH3
    - pat_match_ensure_str
    - ebmb_entry
    - strncmp
    - ebmb_lookup_longest
    - LIST_ISEMPTY
    - strncasecmp
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_beg(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pattern.c:738,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:741,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:741,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:749,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/pattern.c:759,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:760,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:768,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 23
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 771
    functionName: pat_match_end
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - lru64_commit
    - lru64_get
    - list_for_each_entry
    - XXH3
    - strncmp
    - LIST_ISEMPTY
    - strncasecmp
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_end(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pattern.c:786,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:789,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:789,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:797,1
    - Dst: tolower
      Src: /src/haproxy/src/pattern.c:810,1
    - Dst: tolower
      Src: /src/haproxy/src/pattern.c:810,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/pattern.c:812,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:821,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:830,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 833
    functionName: pat_match_sub
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - lru64_commit
    - lru64_get
    - list_for_each_entry
    - XXH3
    - tolower
    - strncmp
    - LIST_ISEMPTY
    - strncasecmp
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_sub(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_delimiter
      Src: /src/haproxy/src/pattern.c:851,1
    - Dst: is_delimiter
      Src: /src/haproxy/src/pattern.c:856,1
    - Dst: is_delimiter
      Src: /src/haproxy/src/pattern.c:866,1
    - Dst: tolower
      Src: /src/haproxy/src/pattern.c:875,1
    - Dst: tolower
      Src: /src/haproxy/src/pattern.c:875,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/pattern.c:876,1
    - Dst: is_delimiter
      Src: /src/haproxy/src/pattern.c:877,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:881,1
    - Dst: is_delimiter
      Src: /src/haproxy/src/pattern.c:882,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 31
    argCount: 4
    argNames:
    - smp
    - pattern
    - mflags
    - delimiters
    argTypes:
    - struct sample*
    - struct pattern*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 888
    functionName: match_word
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - tolower
    - strncasecmp
    - is_delimiter
    - strncmp
    linkageType: ''
    returnType: int
    signature: int match_word(struct sample *smp, struct pattern *pattern, int mflags,
      unsigned int delimiters)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:899,1
    - Dst: match_word
      Src: /src/haproxy/src/pattern.c:905,1
    - Dst: make_4delim
      Src: /src/haproxy/src/pattern.c:905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 909
    functionName: pat_match_dir
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - make_4delim
    - match_word
    - list_for_each_entry
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_dir(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:920,1
    - Dst: match_word
      Src: /src/haproxy/src/pattern.c:926,1
    - Dst: make_4delim
      Src: /src/haproxy/src/pattern.c:926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 915
    functionDepth: 2
    functionLinenumber: 915
    functionLinenumberEnd: 930
    functionName: pat_match_dom
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - make_4delim
    - match_word
    - list_for_each_entry
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_dom(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:938,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 949
    functionName: pat_match_int
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_int(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:957,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 968
    functionName: pat_match_len
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_len(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_lookup_longest
      Src: /src/haproxy/src/pattern.c:981,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/pattern.c:983,1
    - Dst: ebmb_lookup_shorter
      Src: /src/haproxy/src/pattern.c:985,1
    - Dst: read_u32
      Src: /src/haproxy/src/pattern.c:993,1
    - Dst: cidr2dotted
      Src: /src/haproxy/src/pattern.c:994,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - key
    - expr
    - fill
    argTypes:
    - struct in_addr*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 973
    functionDepth: 2
    functionLinenumber: 973
    functionLinenumberEnd: 1000
    functionName: _pat_match_tree_ipv4
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - ebmb_lookup_shorter
    - ebmb_entry
    - ebmb_lookup_longest
    - cidr2dotted
    - read_u32
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *_pat_match_tree_ipv4(struct in_addr *key, struct pattern_expr
      *expr, int fill)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_lookup_longest
      Src: /src/haproxy/src/pattern.c:1013,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/pattern.c:1015,1
    - Dst: ebmb_lookup_shorter
      Src: /src/haproxy/src/pattern.c:1017,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1025,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - key
    - expr
    - fill
    argTypes:
    - struct in6_addr*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1031
    functionName: _pat_match_tree_ipv6
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - ebmb_lookup_longest
    - ebmb_lookup_shorter
    - memcpy
    - ebmb_entry
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *_pat_match_tree_ipv6(struct in6_addr *key, struct pattern_expr
      *expr, int fill)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _pat_match_tree_ipv4
      Src: /src/haproxy/src/pattern.c:1042,1
    - Dst: v4tov6
      Src: /src/haproxy/src/pattern.c:1048,1
    - Dst: _pat_match_tree_ipv6
      Src: /src/haproxy/src/pattern.c:1049,1
    - Dst: _pat_match_tree_ipv6
      Src: /src/haproxy/src/pattern.c:1059,1
    - Dst: v6tov4
      Src: /src/haproxy/src/pattern.c:1065,1
    - Dst: _pat_match_tree_ipv4
      Src: /src/haproxy/src/pattern.c:1066,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1081,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1033
    functionDepth: 3
    functionLinenumber: 1033
    functionLinenumberEnd: 1092
    functionName: pat_match_ip
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - v4tov6
    - v6tov4
    - _pat_match_tree_ipv6
    - list_for_each_entry
    - _pat_match_tree_ipv4
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_ip(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - head
    - list
    argTypes:
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1106
    functionName: pat_unlink_from_head
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pat_unlink_from_head(void **head, void **list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_first
      Src: /src/haproxy/src/pattern.c:1113,1
    - Dst: eb_next
      Src: /src/haproxy/src/pattern.c:1115,1
    - Dst: eb_delete
      Src: /src/haproxy/src/pattern.c:1116,1
    - Dst: container_of
      Src: /src/haproxy/src/pattern.c:1117,1
    - Dst: pat_unlink_from_head
      Src: /src/haproxy/src/pattern.c:1118,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1119,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1123
    functionName: free_pattern_tree
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - eb_delete
    - pat_unlink_from_head
    - eb_first
    - container_of
    - eb_next
    - free
    linkageType: ''
    returnType: void
    signature: void free_pattern_tree(struct eb_root *root)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:1129,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:1130,1
    - Dst: pat_unlink_from_head
      Src: /src/haproxy/src/pattern.c:1131,1
    - Dst: regex_free
      Src: /src/haproxy/src/pattern.c:1133,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1135,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1136,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1137,1
    - Dst: free_pattern_tree
      Src: /src/haproxy/src/pattern.c:1140,1
    - Dst: free_pattern_tree
      Src: /src/haproxy/src/pattern.c:1141,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:1142,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct pattern_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1125
    functionDepth: 2
    functionLinenumber: 1125
    functionLinenumberEnd: 1145
    functionName: pat_prune_gen
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - pat_unlink_from_head
    - list_for_each_entry_safe
    - rdtsc
    - free
    - regex_free
    - LIST_INIT
    - free_pattern_tree
    linkageType: ''
    returnType: void
    signature: void pat_prune_gen(struct pattern_expr *expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1158,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1160,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1165,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1168,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - expr
    - pat
    - err
    argTypes:
    - struct pattern_expr*
    - struct pattern*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1178
    functionName: pat_idx_list_val
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - memcpy
    - calloc
    - rdtsc
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int pat_idx_list_val(struct pattern_expr *expr, struct pattern *pat,
      char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1185,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1187,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1192,1
    - Dst: malloc
      Src: /src/haproxy/src/pattern.c:1193,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1195,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1196,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1199,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1202,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - expr
    - pat
    - err
    argTypes:
    - struct pattern_expr*
    - struct pattern*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1180
    functionDepth: 1
    functionLinenumber: 1180
    functionLinenumberEnd: 1212
    functionName: pat_idx_list_ptr
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - malloc
    - memprintf
    - memcpy
    - calloc
    - rdtsc
    - free
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int pat_idx_list_ptr(struct pattern_expr *expr, struct pattern *pat,
      char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1219,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1221,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1226,1
    - Dst: malloc
      Src: /src/haproxy/src/pattern.c:1227,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1229,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1230,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1233,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1237,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - expr
    - pat
    - err
    argTypes:
    - struct pattern_expr*
    - struct pattern*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1247
    functionName: pat_idx_list_str
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - malloc
    - memprintf
    - memcpy
    - calloc
    - rdtsc
    - free
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int pat_idx_list_str(struct pattern_expr *expr, struct pattern *pat,
      char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1254,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1256,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1261,1
    - Dst: regex_comp
      Src: /src/haproxy/src/pattern.c:1265,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1267,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1272,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - expr
    - pat
    - cap
    - err
    argTypes:
    - struct pattern_expr*
    - struct pattern*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1249
    functionDepth: 2
    functionLinenumber: 1249
    functionLinenumberEnd: 1282
    functionName: pat_idx_list_reg_cap
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - regex_comp
    - memcpy
    - calloc
    - rdtsc
    - free
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int pat_idx_list_reg_cap(struct pattern_expr *expr, struct pattern
      *pat, int cap, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pat_idx_list_reg_cap
      Src: /src/haproxy/src/pattern.c:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - expr
    - pat
    - err
    argTypes:
    - struct pattern_expr*
    - struct pattern*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1284
    functionDepth: 3
    functionLinenumber: 1284
    functionLinenumberEnd: 1287
    functionName: pat_idx_list_reg
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - pat_idx_list_reg_cap
    linkageType: ''
    returnType: int
    signature: int pat_idx_list_reg(struct pattern_expr *expr, struct pattern *pat,
      char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pat_idx_list_reg_cap
      Src: /src/haproxy/src/pattern.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - expr
    - pat
    - err
    argTypes:
    - struct pattern_expr*
    - struct pattern*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1289
    functionDepth: 3
    functionLinenumber: 1289
    functionLinenumberEnd: 1292
    functionName: pat_idx_list_regm
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - pat_idx_list_reg_cap
    linkageType: ''
    returnType: int
    signature: int pat_idx_list_regm(struct pattern_expr *expr, struct pattern *pat,
      char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/src/pattern.c:1306,1
    - Dst: flsnz
      Src: /src/haproxy/src/pattern.c:1308,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1311,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1313,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1322,1
    - Dst: ebmb_insert_prefix
      Src: /src/haproxy/src/pattern.c:1326,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1331,1
    - Dst: pat_idx_list_val
      Src: /src/haproxy/src/pattern.c:1339,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1344,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1346,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1355,1
    - Dst: ebmb_insert_prefix
      Src: /src/haproxy/src/pattern.c:1359,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 3
    argNames:
    - expr
    - pat
    - err
    argTypes:
    - struct pattern_expr*
    - struct pattern*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1294
    functionDepth: 2
    functionLinenumber: 1294
    functionLinenumberEnd: 1372
    functionName: pat_idx_tree_ip
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - ebmb_insert_prefix
    - memprintf
    - memcpy
    - calloc
    - rdtsc
    - pat_idx_list_val
    - flsnz
    - ntohl
    linkageType: ''
    returnType: int
    signature: int pat_idx_tree_ip(struct pattern_expr *expr, struct pattern *pat,
      char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1381,1
    - Dst: pat_idx_list_str
      Src: /src/haproxy/src/pattern.c:1388,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1391,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1394,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1396,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1405,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/pattern.c:1408,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - expr
    - pat
    - err
    argTypes:
    - struct pattern_expr*
    - struct pattern*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1374
    functionDepth: 2
    functionLinenumber: 1374
    functionLinenumberEnd: 1418
    functionName: pat_idx_tree_str
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - memcpy
    - calloc
    - rdtsc
    - ebst_insert
    - pat_idx_list_str
    - strlen
    linkageType: ''
    returnType: int
    signature: int pat_idx_tree_str(struct pattern_expr *expr, struct pattern *pat,
      char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1427,1
    - Dst: pat_idx_list_str
      Src: /src/haproxy/src/pattern.c:1434,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1437,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1440,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1442,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1451,1
    - Dst: ebmb_insert_prefix
      Src: /src/haproxy/src/pattern.c:1455,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - expr
    - pat
    - err
    argTypes:
    - struct pattern_expr*
    - struct pattern*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1420
    functionDepth: 2
    functionLinenumber: 1420
    functionLinenumberEnd: 1465
    functionName: pat_idx_tree_pfx
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - ebmb_insert_prefix
    - memprintf
    - memcpy
    - calloc
    - rdtsc
    - pat_idx_list_str
    - strlen
    linkageType: ''
    returnType: int
    signature: int pat_idx_tree_pfx(struct pattern_expr *expr, struct pattern *pat,
      char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/pattern.c:1478,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:1480,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/pattern.c:1482,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1483,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1484,1
    - Dst: container_of
      Src: /src/haproxy/src/pattern.c:1489,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:1491,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:1494,1
    - Dst: regex_free
      Src: /src/haproxy/src/pattern.c:1496,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1498,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1499,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1500,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - ref
    - elt
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1508
    functionName: pat_delete_gen
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - BUG_ON
    - rdtsc
    - free
    - container_of
    - regex_free
    - ebmb_delete
    linkageType: ''
    returnType: void
    signature: void pat_delete_gen(struct pat_ref *ref, struct pat_ref_elt *elt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct pattern_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1510
    functionDepth: 1
    functionLinenumber: 1510
    functionLinenumberEnd: 1515
    functionName: pattern_init_expr
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void pattern_init_expr(struct pattern_expr *expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct pattern_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1520
    functionName: pattern_init_head
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void pattern_init_head(struct pattern_head *head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1554,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:1554,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1556,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:1556,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1559,1
    - Dst: strcmp
      Src: /src/haproxy/src/pattern.c:1560,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - reference
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1563
    functionName: pat_ref_lookup
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 5
    functionsReached:
    - list_for_each_entry
    - strncmp
    - strcmp
    - strlen
    linkageType: ''
    returnType: struct pat_ref
    signature: struct pat_ref *pat_ref_lookup(const char *reference)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unique_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1568
    functionDepth: 0
    functionLinenumber: 1568
    functionLinenumberEnd: 1576
    functionName: pat_ref_lookupid
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct pat_ref
    signature: struct pat_ref *pat_ref_lookupid(int unique_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_gen_get
      Src: /src/haproxy/src/pattern.c:1588,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:1589,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:1595,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:1596,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:1597,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1599,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/pattern.c:1599,1
    - Dst: typeof
      Src: /src/haproxy/src/pattern.c:1599,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1604,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:1605,1
    - Dst: pat_delete_gen
      Src: /src/haproxy/src/pattern.c:1607,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1609,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:1610,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:1612,1
    - Dst: cebs_item_delete
      Src: /src/haproxy/src/pattern.c:1613,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1614,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1615,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pattern.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - ref
    - elt
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1582
    functionDepth: 2
    functionLinenumber: 1582
    functionLinenumberEnd: 1617
    functionName: pat_ref_delete_by_ptr
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - typeof
    - BUG_ON
    - list_for_each_entry
    - HA_RWLOCK_WRUNLOCK
    - list_for_each_entry_safe
    - HA_ATOMIC_INC
    - LIST_APPEND
    - free
    - cebs_item_delete
    - pat_ref_gen_get
    - HA_RWLOCK_WRLOCK
    - pat_delete_gen
    - LIST_INIT
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void pat_ref_delete_by_ptr(struct pat_ref *ref, struct pat_ref_elt
      *elt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:1633,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/src/pattern.c:1635,1
    - Dst: pat_ref_delete_by_ptr
      Src: /src/haproxy/src/pattern.c:1636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ref
    - refelt
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1626
    functionDepth: 3
    functionLinenumber: 1626
    functionLinenumberEnd: 1642
    functionName: pat_ref_delete_by_id
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - event_hdl_publish
    - pat_ref_delete_by_ptr
    linkageType: ''
    returnType: int
    signature: int pat_ref_delete_by_id(struct pat_ref *ref, struct pat_ref_elt *refelt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:1633,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/src/pattern.c:1635,1
    - Dst: pat_ref_delete_by_ptr
      Src: /src/haproxy/src/pattern.c:1636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1632
    functionDepth: 3
    functionLinenumber: 1632
    functionLinenumberEnd: 1640
    functionName: pat_ref_gen_foreach
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - event_hdl_publish
    - pat_ref_delete_by_ptr
    linkageType: ''
    returnType: void
    signature: void pat_ref_gen_foreach(gen, ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/pattern.c:1652,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:1656,1
    - Dst: ceb_init_root
      Src: /src/haproxy/src/pattern.c:1657,1
    - Dst: cebu32_item_insert
      Src: /src/haproxy/src/pattern.c:1660,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:1661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ref
    - gen_id
    argTypes:
    - struct pat_ref*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1664
    functionName: pat_ref_gen_new
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - malloc
    - BUG_ON
    - ceb_init_root
    - cebu32_item_insert
    - LIST_INIT
    linkageType: ''
    returnType: struct pat_ref_gen
    signature: struct pat_ref_gen *pat_ref_gen_new(struct pat_ref *ref, unsigned int
      gen_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/pattern.c:1675,1
    - Dst: cebu32_item_lookup
      Src: /src/haproxy/src/pattern.c:1678,1
    - Dst: unlikely
      Src: /src/haproxy/src/pattern.c:1679,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ref
    - gen_id
    argTypes:
    - struct pat_ref*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1687
    functionName: pat_ref_gen_get
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 2
    functionsReached:
    - unlikely
    - cebu32_item_lookup
    - likely
    linkageType: ''
    returnType: struct pat_ref_gen
    signature: struct pat_ref_gen *pat_ref_gen_get(struct pat_ref *ref, unsigned int
      gen_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_gen_get
      Src: /src/haproxy/src/pattern.c:1699,1
    - Dst: cebs_item_lookup
      Src: /src/haproxy/src/pattern.c:1704,1
    - Dst: pat_ref_delete_by_ptr
      Src: /src/haproxy/src/pattern.c:1708,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/src/pattern.c:1709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ref
    - gen_id
    - key
    argTypes:
    - struct pat_ref*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1694
    functionDepth: 3
    functionLinenumber: 1694
    functionLinenumberEnd: 1711
    functionName: pat_ref_gen_delete
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - cebs_item_lookup
    - pat_ref_gen_get
    - pat_ref_delete_by_ptr
    - event_hdl_publish
    linkageType: ''
    returnType: int
    signature: int pat_ref_gen_delete(struct pat_ref *ref, unsigned int gen_id, const
      char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_gen_delete
      Src: /src/haproxy/src/pattern.c:1719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - key
    argTypes:
    - struct pat_ref*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1717
    functionDepth: 4
    functionLinenumber: 1717
    functionLinenumberEnd: 1720
    functionName: pat_ref_delete
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 3
    functionsReached:
    - pat_ref_gen_delete
    linkageType: ''
    returnType: int
    signature: int pat_ref_delete(struct pat_ref *ref, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_gen_get
      Src: /src/haproxy/src/pattern.c:1730,1
    - Dst: cebs_item_lookup
      Src: /src/haproxy/src/pattern.c:1733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ref
    - gen_id
    - key
    argTypes:
    - struct pat_ref*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1726
    functionDepth: 2
    functionLinenumber: 1726
    functionLinenumberEnd: 1734
    functionName: pat_ref_gen_find_elt
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 2
    functionsReached:
    - cebs_item_lookup
    - pat_ref_gen_get
    linkageType: ''
    returnType: struct pat_ref_elt
    signature: struct pat_ref_elt *pat_ref_gen_find_elt(struct pat_ref *ref, unsigned
      int gen_id, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_gen_find_elt
      Src: /src/haproxy/src/pattern.c:1742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - key
    argTypes:
    - struct pat_ref*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1740
    functionDepth: 3
    functionLinenumber: 1740
    functionLinenumberEnd: 1743
    functionName: pat_ref_find_elt
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 3
    functionsReached:
    - pat_ref_gen_find_elt
    linkageType: ''
    returnType: struct pat_ref_elt
    signature: struct pat_ref_elt *pat_ref_find_elt(struct pat_ref *ref, const char
      *key)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1763,1
    - Dst: struct pattern_expr*::pat_head::parse_smp
      Src: /src/haproxy/src/pattern.c:1767,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1768,1
    - Dst: strdup
      Src: /src/haproxy/src/pattern.c:1774,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1776,1
    - Dst: container_of
      Src: /src/haproxy/src/pattern.c:1783,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:1785,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:1792,1
    - Dst: struct pattern_expr*::pat_head::parse_smp
      Src: /src/haproxy/src/pattern.c:1793,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:1795,1
    - Dst: container_of
      Src: /src/haproxy/src/pattern.c:1800,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:1802,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:1809,1
    - Dst: struct pattern_expr*::pat_head::parse_smp
      Src: /src/haproxy/src/pattern.c:1810,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:1812,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1817,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 4
    argNames:
    - ref
    - elt
    - value
    - err
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1750
    functionDepth: 1
    functionLinenumber: 1750
    functionLinenumberEnd: 1822
    functionName: pat_ref_set_elt
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - BUG_ON
    - list_for_each_entry
    - HA_RWLOCK_WRUNLOCK
    - container_of
    - free
    - HA_RWLOCK_WRLOCK
    - struct pattern_expr*::pat_head::parse_smp
    - strdup
    linkageType: ''
    returnType: int
    signature: "int pat_ref_set_elt(struct pat_ref *ref, struct pat_ref_elt *elt,\n
      \                                 const char *value, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1838,1
    - Dst: pat_ref_set_elt
      Src: /src/haproxy/src/pattern.c:1840,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ref
    - refelt
    - value
    - err
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1831
    functionDepth: 2
    functionLinenumber: 1831
    functionLinenumberEnd: 1849
    functionName: pat_ref_set_by_id
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - pat_ref_set_elt
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int pat_ref_set_by_id(struct pat_ref *ref, struct pat_ref_elt *refelt,
      const char *value, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1838,1
    - Dst: pat_ref_set_elt
      Src: /src/haproxy/src/pattern.c:1840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1837
    functionDepth: 2
    functionLinenumber: 1837
    functionLinenumberEnd: 1845
    functionName: pat_ref_gen_foreach
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - pat_ref_set_elt
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void pat_ref_gen_foreach(gen, ref)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_gen_get
      Src: /src/haproxy/src/pattern.c:1860,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:1861,1
    - Dst: cebs_item_next_dup
      Src: /src/haproxy/src/pattern.c:1866,1
    - Dst: pat_ref_set_elt
      Src: /src/haproxy/src/pattern.c:1868,1
    - Dst: ha_free
      Src: /src/haproxy/src/pattern.c:1872,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1880,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/src/pattern.c:1885,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - ref
    - elt
    - value
    - err
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1851
    functionDepth: 2
    functionLinenumber: 1851
    functionLinenumberEnd: 1888
    functionName: pat_ref_set_from_elt
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - BUG_ON
    - ha_free
    - cebs_item_next_dup
    - pat_ref_gen_get
    - event_hdl_publish
    - pat_ref_set_elt
    linkageType: ''
    returnType: int
    signature: int pat_ref_set_from_elt(struct pat_ref *ref, struct pat_ref_elt *elt,
      const char *value, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_set_from_elt
      Src: /src/haproxy/src/pattern.c:1894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ref
    - elt
    - value
    - err
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1891
    functionDepth: 3
    functionLinenumber: 1891
    functionLinenumberEnd: 1895
    functionName: pat_ref_set_elt_duplicate
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 2
    functionsReached:
    - pat_ref_set_from_elt
    linkageType: ''
    returnType: int
    signature: "int pat_ref_set_elt_duplicate(struct pat_ref *ref, struct pat_ref_elt
      *elt, const char *value,\n                              char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_gen_get
      Src: /src/haproxy/src/pattern.c:1907,1
    - Dst: cebs_item_lookup
      Src: /src/haproxy/src/pattern.c:1909,1
    - Dst: pat_ref_set_from_elt
      Src: /src/haproxy/src/pattern.c:1912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ref
    - gen_id
    - key
    - value
    - err
    argTypes:
    - struct pat_ref*
    - unsigned int
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1900
    functionDepth: 3
    functionLinenumber: 1900
    functionLinenumberEnd: 1913
    functionName: pat_ref_gen_set
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - cebs_item_lookup
    - pat_ref_gen_get
    - pat_ref_set_from_elt
    linkageType: ''
    returnType: int
    signature: "int pat_ref_gen_set(struct pat_ref *ref, unsigned int gen_id,\n                    const
      char *key, const char *value, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_gen_set
      Src: /src/haproxy/src/pattern.c:1920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ref
    - key
    - value
    - err
    argTypes:
    - struct pat_ref*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1918
    functionDepth: 4
    functionLinenumber: 1918
    functionLinenumberEnd: 1921
    functionName: pat_ref_set
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - pat_ref_gen_set
    linkageType: ''
    returnType: int
    signature: int pat_ref_set(struct pat_ref *ref, const char *key, const char *value,
      char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/pattern.c:1932,1
    - Dst: strdup
      Src: /src/haproxy/src/pattern.c:1939,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1941,1
    - Dst: ceb_init_root
      Src: /src/haproxy/src/pattern.c:1953,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:1956,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/pattern.c:1957,1
    - Dst: event_hdl_sub_list_init
      Src: /src/haproxy/src/pattern.c:1958,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - display
    - flags
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1928
    functionDepth: 1
    functionLinenumber: 1928
    functionLinenumberEnd: 1961
    functionName: _pat_ref_new
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - malloc
    - HA_RWLOCK_INIT
    - free
    - ceb_init_root
    - event_hdl_sub_list_init
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: struct pat_ref
    signature: struct pat_ref *_pat_ref_new(const char *display, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/pattern.c:1966,1
    - Dst: ha_free
      Src: /src/haproxy/src/pattern.c:1967,1
    - Dst: event_hdl_sub_list_destroy
      Src: /src/haproxy/src/pattern.c:1968,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct pat_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1964
    functionDepth: 1
    functionLinenumber: 1964
    functionLinenumberEnd: 1970
    functionName: pat_ref_free
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - ha_free
    - event_hdl_sub_list_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void pat_ref_free(struct pat_ref *ref)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _pat_ref_new
      Src: /src/haproxy/src/pattern.c:1982,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1986,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:1986,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1988,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:1988,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1996,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:1996,1
    - Dst: strdup
      Src: /src/haproxy/src/pattern.c:2001,1
    - Dst: pat_ref_free
      Src: /src/haproxy/src/pattern.c:2003,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2007,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - reference
    - display
    - flags
    argTypes:
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1978
    functionDepth: 2
    functionLinenumber: 1978
    functionLinenumberEnd: 2009
    functionName: pat_ref_new
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    - strncmp
    - _pat_ref_new
    - pat_ref_free
    - strlen
    - strdup
    linkageType: ''
    returnType: struct pat_ref
    signature: struct pat_ref *pat_ref_new(const char *reference, const char *display,
      unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _pat_ref_new
      Src: /src/haproxy/src/pattern.c:2022,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - unique_id
    - display
    - flags
    argTypes:
    - int
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2018
    functionDepth: 2
    functionLinenumber: 2018
    functionLinenumberEnd: 2030
    functionName: pat_ref_newid
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - _pat_ref_new
    - LIST_APPEND
    linkageType: ''
    returnType: struct pat_ref
    signature: struct pat_ref *pat_ref_newid(int unique_id, const char *display, unsigned
      int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:2042,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:2044,1
    - Dst: pat_ref_gen_get
      Src: /src/haproxy/src/pattern.c:2048,1
    - Dst: pat_ref_gen_new
      Src: /src/haproxy/src/pattern.c:2050,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:2058,1
    - Dst: strdup
      Src: /src/haproxy/src/pattern.c:2061,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:2066,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2069,1
    - Dst: cebs_item_insert
      Src: /src/haproxy/src/pattern.c:2070,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pattern.c:2071,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2074,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - ref
    - gen_id
    - pattern
    - sample
    - line
    argTypes:
    - struct pat_ref*
    - unsigned int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2037
    functionDepth: 2
    functionLinenumber: 2037
    functionLinenumberEnd: 2076
    functionName: pat_ref_append
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - pat_ref_gen_new
    - cebs_item_insert
    - memcpy
    - calloc
    - LIST_APPEND
    - free
    - pat_ref_gen_get
    - HA_ATOMIC_INC
    - strdup
    - LIST_INIT
    - strlen
    linkageType: ''
    returnType: struct pat_ref_elt
    signature: "struct pat_ref_elt *pat_ref_append(struct pat_ref *ref, unsigned int
      gen_id,\n                                   const char *pattern, const char
      *sample, int line)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/pattern.c:2092,1
    - Dst: struct pattern_expr*::pat_head::parse_smp
      Src: /src/haproxy/src/pattern.c:2097,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2098,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2099,1
    - Dst: memset
      Src: /src/haproxy/src/pattern.c:2108,1
    - Dst: struct pattern_expr*::pat_head::parse
      Src: /src/haproxy/src/pattern.c:2113,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2114,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:2118,1
    - Dst: struct pattern_expr*::pat_head::index
      Src: /src/haproxy/src/pattern.c:2120,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:2121,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2122,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:2125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - elt
    - expr
    - patflags
    - err
    argTypes:
    - struct pat_ref_elt*
    - struct pattern_expr*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2083
    functionDepth: 1
    functionLinenumber: 2083
    functionLinenumberEnd: 2128
    functionName: pat_ref_push
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - malloc
    - memprintf
    - memset
    - HA_RWLOCK_WRUNLOCK
    - free
    - HA_RWLOCK_WRLOCK
    - struct pattern_expr*::pat_head::index
    - struct pattern_expr*::pat_head::parse_smp
    - struct pattern_expr*::pat_head::parse
    linkageType: ''
    returnType: int
    signature: "int pat_ref_push(struct pat_ref_elt *elt, struct pattern_expr *expr,\n
      \                int patflags, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2144,1
    - Dst: pat_ref_push
      Src: /src/haproxy/src/pattern.c:2145,1
    - Dst: pat_ref_delete_by_ptr
      Src: /src/haproxy/src/pattern.c:2146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ref
    - elt
    - err
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2140
    functionDepth: 3
    functionLinenumber: 2140
    functionLinenumberEnd: 2151
    functionName: pat_ref_commit_elt
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - pat_ref_push
    - pat_ref_delete_by_ptr
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int pat_ref_commit_elt(struct pat_ref *ref, struct pat_ref_elt *elt,
      char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_append
      Src: /src/haproxy/src/pattern.c:2168,1
    - Dst: pat_ref_commit_elt
      Src: /src/haproxy/src/pattern.c:2170,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2173,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/src/pattern.c:2177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - ref
    - gen
    - pattern
    - sample
    - line
    - err
    argTypes:
    - struct pat_ref*
    - unsigned int
    - char*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2162
    functionDepth: 4
    functionLinenumber: 2162
    functionLinenumberEnd: 2180
    functionName: pat_ref_load
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 3
    functionsReached:
    - memprintf
    - pat_ref_commit_elt
    - event_hdl_publish
    - pat_ref_append
    linkageType: ''
    returnType: struct pat_ref_elt
    signature: "struct pat_ref_elt *pat_ref_load(struct pat_ref *ref, unsigned int
      gen,\n                                 const char *pattern, const char *sample,\n
      \                                int line, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_load
      Src: /src/haproxy/src/pattern.c:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ref
    - pattern
    - sample
    - err
    argTypes:
    - struct pat_ref*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2188
    functionDepth: 5
    functionLinenumber: 2188
    functionLinenumberEnd: 2193
    functionName: pat_ref_add
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 4
    functionsReached:
    - pat_ref_load
    linkageType: ''
    returnType: int
    signature: "int pat_ref_add(struct pat_ref *ref,\n                const char *pattern,
      const char *sample,\n                char **err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2212,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:2213,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:2227,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:2233,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:2239,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2240,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:2241,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2243,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/pattern.c:2243,1
    - Dst: typeof
      Src: /src/haproxy/src/pattern.c:2243,1
    - Dst: pat_delete_gen
      Src: /src/haproxy/src/pattern.c:2248,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2250,1
    - Dst: cebs_item_delete
      Src: /src/haproxy/src/pattern.c:2251,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2252,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2253,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pattern.c:2254,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:2260,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pattern.c:2260,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:2261,1
    - Dst: ceb_isempty
      Src: /src/haproxy/src/pattern.c:2261,1
    - Dst: cebu32_item_delete
      Src: /src/haproxy/src/pattern.c:2262,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2265,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2268,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:2269,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/src/pattern.c:2275,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - ref
    - from
    - to
    - budget
    argTypes:
    - struct pat_ref*
    - uint
    - uint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2204
    functionDepth: 2
    functionLinenumber: 2204
    functionLinenumberEnd: 2278
    functionName: pat_ref_purge_range
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - cebu32_item_delete
    - typeof
    - BUG_ON
    - list_for_each_entry
    - HA_RWLOCK_WRUNLOCK
    - list_for_each_entry_safe
    - HA_ATOMIC_INC
    - LIST_APPEND
    - free
    - cebs_item_delete
    - LIST_ISEMPTY
    - event_hdl_publish
    - HA_RWLOCK_WRLOCK
    - pat_delete_gen
    - ceb_isempty
    - LIST_INIT
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int pat_ref_purge_range(struct pat_ref *ref, uint from, uint to, int
      budget)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:2227,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:2233,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:2239,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2240,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:2241,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2243,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/pattern.c:2243,1
    - Dst: typeof
      Src: /src/haproxy/src/pattern.c:2243,1
    - Dst: pat_delete_gen
      Src: /src/haproxy/src/pattern.c:2248,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2250,1
    - Dst: cebs_item_delete
      Src: /src/haproxy/src/pattern.c:2251,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2252,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2253,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pattern.c:2254,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:2260,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pattern.c:2260,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:2261,1
    - Dst: ceb_isempty
      Src: /src/haproxy/src/pattern.c:2261,1
    - Dst: cebu32_item_delete
      Src: /src/haproxy/src/pattern.c:2262,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2265,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2219
    functionDepth: 2
    functionLinenumber: 2219
    functionLinenumberEnd: 2266
    functionName: pat_ref_gen_foreach_safe
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - cebu32_item_delete
    - typeof
    - BUG_ON
    - list_for_each_entry_safe
    - HA_ATOMIC_INC
    - LIST_APPEND
    - free
    - cebs_item_delete
    - LIST_ISEMPTY
    - pat_delete_gen
    - ceb_isempty
    - LIST_INIT
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void pat_ref_gen_foreach_safe(gen, gen2, ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_purge_range
      Src: /src/haproxy/src/pattern.c:2288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct pat_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2286
    functionDepth: 3
    functionLinenumber: 2286
    functionLinenumberEnd: 2289
    functionName: pat_ref_prune
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - pat_ref_purge_range
    linkageType: ''
    returnType: int
    signature: int pat_ref_prune(struct pat_ref *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - head
    - ref
    argTypes:
    - struct pattern_head*
    - struct pat_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2294
    functionDepth: 0
    functionLinenumber: 2294
    functionLinenumberEnd: 2302
    functionName: pattern_lookup_expr
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct pattern_expr
    signature: struct pattern_expr *pattern_lookup_expr(struct pattern_head *head,
      struct pat_ref *ref)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:2322,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2324,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2333,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:2348,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2350,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2351,1
    - Dst: pattern_init_expr
      Src: /src/haproxy/src/pattern.c:2356,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2366,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:2368,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/pattern.c:2372,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pattern.c:2379,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2385,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 5
    argNames:
    - head
    - ref
    - patflags
    - err
    - reuse
    argTypes:
    - struct pattern_head*
    - struct pat_ref*
    - int
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2312
    functionDepth: 2
    functionLinenumber: 2312
    functionLinenumberEnd: 2387
    functionName: pattern_new_expr
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - memprintf
    - pattern_init_expr
    - HA_RWLOCK_INIT
    - list_for_each_entry
    - calloc
    - free
    - LIST_APPEND
    - HA_ATOMIC_INC
    - LIST_INIT
    linkageType: ''
    returnType: struct pattern_expr
    signature: "struct pattern_expr *pattern_new_expr(struct pattern_head *head, struct
      pat_ref *ref,\n                                      int patflags, char **err,
      int *reuse)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/haproxy/src/pattern.c:2422,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2429,1
    - Dst: fgets
      Src: /src/haproxy/src/pattern.c:2438,1
    - Dst: pat_ref_append
      Src: /src/haproxy/src/pattern.c:2480,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2481,1
    - Dst: ferror
      Src: /src/haproxy/src/pattern.c:2486,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2487,1
    - Dst: strerror
      Src: /src/haproxy/src/pattern.c:2488,1
    - Dst: fclose
      Src: /src/haproxy/src/pattern.c:2495,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 50
    argCount: 2
    argNames:
    - ref
    - err
    argTypes:
    - struct pat_ref*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2411
    functionDepth: 3
    functionLinenumber: 2411
    functionLinenumberEnd: 2497
    functionName: pat_ref_read_from_file_smp
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - fclose
    - strerror
    - pat_ref_append
    - ferror
    - fopen
    - fgets
    linkageType: ''
    returnType: int
    signature: int pat_ref_read_from_file_smp(struct pat_ref *ref, char **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/haproxy/src/pattern.c:2510,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2517,1
    - Dst: fgets
      Src: /src/haproxy/src/pattern.c:2525,1
    - Dst: pat_ref_append
      Src: /src/haproxy/src/pattern.c:2547,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2548,1
    - Dst: ferror
      Src: /src/haproxy/src/pattern.c:2553,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2554,1
    - Dst: strerror
      Src: /src/haproxy/src/pattern.c:2555,1
    - Dst: fclose
      Src: /src/haproxy/src/pattern.c:2561,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - ref
    - err
    argTypes:
    - struct pat_ref*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2502
    functionDepth: 3
    functionLinenumber: 2502
    functionLinenumberEnd: 2563
    functionName: pat_ref_read_from_file
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - fclose
    - strerror
    - pat_ref_append
    - ferror
    - fopen
    - fgets
    linkageType: ''
    returnType: int
    signature: int pat_ref_read_from_file(struct pat_ref *ref, char **err)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/pattern.c:2576,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pattern.c:2580,1
    - Dst: pat_ref_new
      Src: /src/haproxy/src/pattern.c:2584,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2586,1
    - Dst: pat_ref_read_from_file_smp
      Src: /src/haproxy/src/pattern.c:2593,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2594,1
    - Dst: pat_ref_free
      Src: /src/haproxy/src/pattern.c:2595,1
    - Dst: pat_ref_read_from_file
      Src: /src/haproxy/src/pattern.c:2600,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2601,1
    - Dst: pat_ref_free
      Src: /src/haproxy/src/pattern.c:2602,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2618,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2629,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pattern.c:2637,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pattern.c:2638,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2640,1
    - Dst: strdup
      Src: /src/haproxy/src/pattern.c:2641,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2643,1
    - Dst: pattern_lookup_expr
      Src: /src/haproxy/src/pattern.c:2656,1
    - Dst: pattern_new_expr
      Src: /src/haproxy/src/pattern.c:2658,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2679,1
    - Dst: pat_ref_push
      Src: /src/haproxy/src/pattern.c:2680,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2682,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 8
    argNames:
    - head
    - refflags
    - filename
    - patflags
    - load_smp
    - err
    - file
    - line
    argTypes:
    - struct pattern_head*
    - unsigned int
    - char*
    - int
    - int
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2565
    functionDepth: 4
    functionLinenumber: 2565
    functionLinenumberEnd: 2690
    functionName: pattern_read_from_file
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - memprintf
    - pattern_lookup_expr
    - pat_ref_new
    - pat_ref_push
    - list_for_each_entry
    - chunk_printf
    - pat_ref_read_from_file
    - chunk_appendf
    - free
    - pat_ref_free
    - pat_ref_read_from_file_smp
    - pat_ref_lookup
    - pattern_new_expr
    - strdup
    linkageType: ''
    returnType: int
    signature: "int pattern_read_from_file(struct pattern_head *head, unsigned int
      refflags,\n                           const char *filename, int patflags, int
      load_smp,\n                           char **err, const char *file, int line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2679,1
    - Dst: pat_ref_push
      Src: /src/haproxy/src/pattern.c:2680,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2678
    functionDepth: 2
    functionLinenumber: 2678
    functionLinenumberEnd: 2687
    functionName: pat_ref_gen_foreach
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - pat_ref_push
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void pat_ref_gen_foreach(gen, ref)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sample_convert
      Src: /src/haproxy/src/pattern.c:2715,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2718,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/pattern.c:2719,1
    - Dst: struct pattern_head*::match
      Src: /src/haproxy/src/pattern.c:2720,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:2725,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/pattern.c:2735,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:2739,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:2748,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/pattern.c:2757,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/pattern.c:2760,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - head
    - smp
    - fill
    argTypes:
    - struct pattern_head*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2698
    functionDepth: 2
    functionLinenumber: 2698
    functionLinenumberEnd: 2763
    functionName: pattern_exec_match
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 2
    functionsReached:
    - memcpy
    - list_for_each_entry
    - HA_RWLOCK_RDUNLOCK
    - get_trash_chunk
    - struct pattern_head*::match
    - sample_convert
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pattern_exec_match(struct pattern_head *head, struct
      sample *smp, int fill)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:2770,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2771,1
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/pattern.c:2772,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2773,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:2774,1
    - Dst: struct pattern_head*::prune
      Src: /src/haproxy/src/pattern.c:2775,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:2776,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2777,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct pattern_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2781
      start: 2766
    functionDepth: 1
    functionLinenumber: 2766
    functionLinenumberEnd: 2781
    functionName: pattern_prune
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - HA_ATOMIC_SUB_FETCH
    - HA_RWLOCK_WRUNLOCK
    - list_for_each_entry_safe
    - free
    - struct pattern_head*::prune
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void pattern_prune(struct pattern_head *head)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2786
    functionDepth: 0
    functionLinenumber: 2786
    functionLinenumberEnd: 2796
    functionName: cmp_pat_ref
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_pat_ref(const void *_a, const void *_b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/pattern.c:2808,1
    - Dst: ha_random
      Src: /src/haproxy/src/pattern.c:2810,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2813,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:2823,1
    - Dst: ha_alert
      Src: /src/haproxy/src/pattern.c:2825,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2831,1
    - Dst: qsort
      Src: /src/haproxy/src/pattern.c:2841,1
    - Dst: bsearch
      Src: /src/haproxy/src/pattern.c:2847,1
    - Dst: qsort
      Src: /src/haproxy/src/pattern.c:2851,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2855,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/pattern.c:2858,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2859,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2861,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2801
    functionDepth: 1
    functionLinenumber: 2801
    functionLinenumberEnd: 2863
    functionName: pattern_finalize_config
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry
    - calloc
    - qsort
    - bsearch
    - LIST_APPEND
    - free
    - ha_random
    - ha_alert
    - LIST_HEAD_INIT
    - LIST_INSERT
    linkageType: ''
    returnType: int
    signature: int pattern_finalize_config(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lru64_new
      Src: /src/haproxy/src/pattern.c:2869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2865
    functionDepth: 1
    functionLinenumber: 2865
    functionLinenumberEnd: 2871
    functionName: pattern_per_thread_lru_alloc
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - lru64_new
    linkageType: ''
    returnType: int
    signature: int pattern_per_thread_lru_alloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lru64_destroy
      Src: /src/haproxy/src/pattern.c:2875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2876
      start: 2873
    functionDepth: 1
    functionLinenumber: 2873
    functionLinenumberEnd: 2876
    functionName: pattern_per_thread_lru_free
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - lru64_destroy
    linkageType: ''
    returnType: void
    signature: void pattern_per_thread_lru_free()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/mailers.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mls
    - p
    - err
    argTypes:
    - struct mailers*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: init_email_alert
    functionSourceFile: /src/haproxy/src/mailers.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int init_email_alert(struct mailers *mls, struct proxy *p, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/mailers.c:47,1
    - Dst: ha_free
      Src: /src/haproxy/src/mailers.c:48,1
    - Dst: ha_free
      Src: /src/haproxy/src/mailers.c:49,1
    - Dst: ha_free
      Src: /src/haproxy/src/mailers.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: free_email_alert
    functionSourceFile: /src/haproxy/src/mailers.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void free_email_alert(struct proxy *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/mailers.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: mailers_post_check
    functionSourceFile: /src/haproxy/src/mailers.c
    functionUses: 0
    functionsReached:
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int mailers_post_check(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EXTRA_COUNTERS_BASE
      Src: /src/haproxy/src/mux_h2.c:387,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:391,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:391,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:394,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:394,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:397,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:397,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:400,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:400,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:403,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:403,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:406,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:406,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:409,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:409,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:412,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:412,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:415,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:415,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:418,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:418,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:421,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:421,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:424,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:424,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:427,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/mux_h2.c:427,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 4
    argNames:
    - mod
    - ctr
    - stats
    - selected_field
    argTypes:
    - struct stats_module*
    - struct extra_counters*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 443
    functionName: h2_fill_stats
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - EXTRA_COUNTERS_AGGR
    - mkf_u64
    - EXTRA_COUNTERS_BASE
    linkageType: ''
    returnType: int
    signature: "int h2_fill_stats(struct stats_module *mod, struct extra_counters
      *ctr,\n                         struct field *stats, unsigned int *selected_field)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: h2s_sc
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline *h2s_sc(const struct h2s *h2s)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:598,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:599,1
    - Dst: h2c_st_to_str
      Src: /src/haproxy/src/mux_h2.c:600,1
    - Dst: conn_append_debug_info
      Src: /src/haproxy/src/mux_h2.c:603,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:606,1
    - Dst: h2_err_str
      Src: /src/haproxy/src/mux_h2.c:606,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:609,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:613,1
    - Dst: h2_ft_str
      Src: /src/haproxy/src/mux_h2.c:613,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_h2.c:616,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:617,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:618,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:619,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:619,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:620,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:620,1
    - Dst: br_head_idx
      Src: /src/haproxy/src/mux_h2.c:621,1
    - Dst: br_tail_idx
      Src: /src/haproxy/src/mux_h2.c:621,1
    - Dst: br_size
      Src: /src/haproxy/src/mux_h2.c:621,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:622,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:622,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:623,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:623,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:624,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:624,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:625,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:625,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:629,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:631,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:635,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:636,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:637,1
    - Dst: h2s_st_to_str
      Src: /src/haproxy/src/mux_h2.c:638,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:641,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:642,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:643,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:644,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:645,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:646,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:647,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:648,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:651,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:653,1
    - Dst: h2_err_str
      Src: /src/haproxy/src/mux_h2.c:653,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:657,1
    - Dst: htxbuf
      Src: /src/haproxy/src/mux_h2.c:665,1
    - Dst: htx_get_head
      Src: /src/haproxy/src/mux_h2.c:671,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/mux_h2.c:672,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h2.c:673,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:674,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:677,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/mux_h2.c:679,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/mux_h2.c:679,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/mux_h2.c:680,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/mux_h2.c:680,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/mux_h2.c:681,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/mux_h2.c:681,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:683,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/mux_h2.c:685,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/mux_h2.c:685,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/mux_h2.c:686,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/mux_h2.c:686,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/mux_h2.c:687,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/mux_h2.c:687,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 46
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 689
    functionName: h2_trace
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - chunk_appendf
    - htx_get_blk_ptr
    - br_tail
    - h2c_st_to_str
    - htx_get_head
    - h2s_rxbuf_head
    - br_size
    - br_head
    - HTX_SL_P1_LEN
    - h2s_st_to_str
    - h2s_rxbuf_tail
    - b_head_ofs
    - htx_get_blk_type
    - h2_err_str
    - br_head_idx
    - conn_append_debug_info
    - htxbuf
    - b_orig
    - b_data
    - b_size
    - br_tail_idx
    - HTX_SL_P3_LEN
    - h2_ft_str
    - HTX_SL_P2_PTR
    - htx_get_blk
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - HTX_SL_P2_LEN
    linkageType: ''
    returnType: void
    signature: "void h2_trace(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n                     const struct ist where, const struct
      ist func,\n                     const void *a1, const void *a2, const void *a3,
      const void *a4)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:713,1
    - Dst: sc_strm
      Src: /src/haproxy/src/mux_h2.c:714,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:714,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 6
    argNames:
    - ctx
    - src
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - struct trace_ctx*
    - struct trace_source*
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 716
    functionName: h2_trace_fill_ctx
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - sc_strm
    - h2s_sc
    linkageType: ''
    returnType: void
    signature: "void h2_trace_fill_ctx(struct trace_ctx *ctx, const struct trace_source
      *src,\n                              const void *a1, const void *a2, const void
      *a3, const void *a4)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tevt_report_event
      Src: /src/haproxy/src/mux_h2.c:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h2c
    - type
    argTypes:
    - struct h2c*
    - enum muxc_term_event_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 725
    functionName: h2c_report_term_evt
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - tevt_report_event
    linkageType: ''
    returnType: void
    signature: void h2c_report_term_evt(struct h2c *h2c, enum muxc_term_event_type
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: h2c_read0_pending
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2c_read0_pending(struct h2c *h2c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: h2c_may_expire
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2c_may_expire(const struct h2c *h2c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:769,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/mux_h2.c:769,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 780
    functionName: h2c_max_concurrent_streams
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - MAX
    - swrate_avg
    linkageType: ''
    returnType: int
    signature: int h2c_max_concurrent_streams(const struct h2c *h2c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 789
    functionName: _h2s_rxbuf_head
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *_h2s_rxbuf_head(const struct h2s *h2s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 798
    functionName: _h2s_rxbuf_tail
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *_h2s_rxbuf_tail(const struct h2s *h2s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 807
    functionName: h2s_rxbuf_head
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 2
    functionsReached:
    - _h2s_rxbuf_head
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *h2s_rxbuf_head(const struct h2s *h2s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 816
    functionName: h2s_rxbuf_tail
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 2
    functionsReached:
    - _h2s_rxbuf_tail
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *h2s_rxbuf_tail(const struct h2s *h2s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 822
    functionName: h2s_rxbuf_cnt
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint h2s_rxbuf_cnt(const struct h2s *h2s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bl_get
      Src: /src/haproxy/src/mux_h2.c:833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 842
    functionName: h2s_get_rxbuf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - bl_get
    linkageType: ''
    returnType: uint
    signature: uint h2s_get_rxbuf(struct h2s *h2s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_h2.c:853,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:853,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:853,1
    - Dst: bl_put
      Src: /src/haproxy/src/mux_h2.c:855,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 861
    functionName: h2s_put_rxbuf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2s_rxbuf_head
    - b_size
    - BUG_ON_HOT
    - bl_put
    linkageType: ''
    returnType: uint
    signature: uint h2s_put_rxbuf(struct h2s *h2s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:872,1
    - Dst: b_is_null
      Src: /src/haproxy/src/mux_h2.c:873,1
    - Dst: htxbuf
      Src: /src/haproxy/src/mux_h2.c:876,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/mux_h2.c:877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 878
    functionName: h2s_may_append_to_rxbuf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - htx_free_data_space
    - htxbuf
    - b_is_null
    - h2s_rxbuf_tail
    linkageType: ''
    returnType: int
    signature: int h2s_may_append_to_rxbuf(const struct h2s *h2s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 884
    functionName: h2_sess_log_conn
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - sess_log
    linkageType: ''
    returnType: void
    signature: void h2_sess_log_conn(struct session *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 890
    functionName: h2_sess_log_strm
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - sess_log
    linkageType: ''
    returnType: void
    signature: void h2_sess_log_strm(struct session *sess)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:897,1
    - Dst: h2c_may_expire
      Src: /src/haproxy/src/mux_h2.c:905,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:907,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:909,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:919,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:924,1
    - Dst: tick_first
      Src: /src/haproxy/src/mux_h2.c:925,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:926,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:935,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:937,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:938,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:950,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:951,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:962,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:962,1
    - Dst: tick_first
      Src: /src/haproxy/src/mux_h2.c:964,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:966,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:983,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_h2.c:991,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:996,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/mux_h2.c:997,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_h2.c:1001,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_h2.c:1001,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_h2.c:1008,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:1020,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h2.c:1020,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_h2.c:1021,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_h2.c:1025,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:1027,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 1028
    functionName: h2c_update_timeout
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - tick_remain
    - statistical_prng_range
    - TRACE_LEAVE
    - br_data
    - task_wakeup
    - task_queue
    - TRACE_ENTER
    - tick_is_le
    - tick_first
    - b_data
    - tick_isset
    - tick_is_expired
    - tick_add_ifset
    - conn_idle_ping
    - h2c_may_expire
    - tick_add
    linkageType: ''
    returnType: void
    signature: void h2c_update_timeout(struct h2c *h2c)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1055
    functionName: h2c_reached_last_stream
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2c_reached_last_stream(const struct h2c *h2c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:1060,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:1064,1
    - Dst: h2c_reached_last_stream
      Src: /src/haproxy/src/mux_h2.c:1066,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1070
    functionName: h2c_is_dead
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2c_reached_last_stream
    - eb_is_empty
    - br_data
    linkageType: ''
    returnType: int
    signature: int h2c_is_dead(const struct h2c *h2c)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1099
    functionName: h2_recv_allowed
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2_recv_allowed(const struct h2c *h2c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:1111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1121
    functionName: h2_may_demux
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_data
    linkageType: ''
    returnType: int
    signature: int h2_may_demux(const struct h2c *h2c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2_recv_allowed
      Src: /src/haproxy/src/mux_h2.c:1128,1
    - Dst: h2_may_demux
      Src: /src/haproxy/src/mux_h2.c:1128,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:1130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - h2c
    - consider_buffer
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1126
    functionDepth: 2
    functionLinenumber: 1126
    functionLinenumberEnd: 1131
    functionName: h2c_restart_reading
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - h2_recv_allowed
    - h2_may_demux
    linkageType: ''
    returnType: void
    signature: void h2c_restart_reading(const struct h2c *h2c, int consider_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:1138,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/mux_h2.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1139
    functionName: h2_frt_has_too_many_sc
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - conn_reverse_in_preconnect
    linkageType: ''
    returnType: int
    signature: int h2_frt_has_too_many_sc(const struct h2c *h2c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h2.c:1151,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:1153,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h2.c:1157,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:1157,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:1162,1
    - Dst: h2c_st_by_id
      Src: /src/haproxy/src/mux_h2.c:1168,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:1168,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:1169,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:1169,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h2.c:1171,1
    - Dst: _h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:1171,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:1173,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - target
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1146
    functionDepth: 3
    functionLinenumber: 1146
    functionLinenumberEnd: 1179
    functionName: h2_buf_available
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - h2s_sc
    - h2s_get_rxbuf
    - _h2s_rxbuf_tail
    - h2c_st_by_id
    - h2c_restart_reading
    - h2s_rxbuf_tail
    - br_tail
    linkageType: ''
    returnType: int
    signature: int h2_buf_available(void *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/mux_h2.c:1185,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:1185,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:1186,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h2.c:1186,1
    - Dst: b_queue
      Src: /src/haproxy/src/mux_h2.c:1187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - h2c
    - bptr
    argTypes:
    - struct h2c*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1190
    functionName: h2_get_buf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_alloc
    - b_queue
    - likely
    - LIST_INLIST
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *h2_get_buf(struct h2c *h2c, struct buffer *bptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_free
      Src: /src/haproxy/src/mux_h2.c:1195,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:1196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h2c
    - bptr
    argTypes:
    - struct h2c*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1198
    functionName: h2_release_buf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - offer_buffers
    - b_free
    linkageType: ''
    returnType: void
    signature: void h2_release_buf(struct h2c *h2c, struct buffer *bptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:1205,1
    - Dst: br_head_pick
      Src: /src/haproxy/src/mux_h2.c:1205,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_h2.c:1206,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:1213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1214
    functionName: h2_release_mbuf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_free
    - b_size
    - offer_buffers
    - br_head_pick
    linkageType: ''
    returnType: void
    signature: void h2_release_mbuf(struct h2c *h2c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2c_reached_last_stream
      Src: /src/haproxy/src/mux_h2.c:1223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1234
    functionName: h2_streams_left
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2c_reached_last_stream
    linkageType: ''
    returnType: int
    signature: int h2_streams_left(const struct h2c *h2c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1240
    functionDepth: 0
    functionLinenumber: 1240
    functionLinenumberEnd: 1245
    functionName: h2_used_streams
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2_used_streams(struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h2.c:1250,1
    - Dst: h2_streams_left
      Src: /src/haproxy/src/mux_h2.c:1267,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_h2.c:1268,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_h2.c:1271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1274
    functionName: h2_avail_streams
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_streams_left
    - objt_server
    - MIN
    linkageType: ''
    returnType: int
    signature: int h2_avail_streams(struct connection *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_h2.c:1286,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/mux_h2.c:1287,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1289,1
    - Dst: h2c_st_to_str
      Src: /src/haproxy/src/mux_h2.c:1290,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/mux_h2.c:1293,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1296,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1297,1
    - Dst: h2s_st_to_str
      Src: /src/haproxy/src/mux_h2.c:1297,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1300,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:1302,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/mux_h2.c:1302,1
    - Dst: istscpy
      Src: /src/haproxy/src/mux_h2.c:1303,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1306,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:1308,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/mux_h2.c:1308,1
    - Dst: istscpy
      Src: /src/haproxy/src/mux_h2.c:1309,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1312,1
    - Dst: TRACE_PRINTF_LOC
      Src: /src/haproxy/src/mux_h2.c:1314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 7
    argNames:
    - hn
    - hv
    - mask
    - trc_loc
    - func
    - h2c
    - h2s
    argTypes:
    - struct ist
    - struct ist
    - uint64_t
    - struct ist
    - char*
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1319
    functionName: _h2_trace_header
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_PRINTF_LOC
    - ist2
    - istscpy
    - chunk_appendf
    - h2s_st_to_str
    - h2c_st_to_str
    - chunk_newstr
    - chunk_reset
    linkageType: ''
    returnType: void
    signature: "void _h2_trace_header(const struct ist hn, const struct ist hv,\n\t\t
      \     uint64_t mask, const struct ist trc_loc, const char *func,\n\t\t      const
      struct h2c *h2c, const struct h2s *h2s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENABLED
      Src: /src/haproxy/src/mux_h2.c:1327,1
    - Dst: _h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:1328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 7
    argNames:
    - hn
    - hv
    - mask
    - trc_loc
    - func
    - h2c
    - h2s
    argTypes:
    - struct ist
    - struct ist
    - uint64_t
    - struct ist
    - char*
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1322
    functionDepth: 2
    functionLinenumber: 1322
    functionLinenumberEnd: 1329
    functionName: h2_trace_header
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - TRACE_ENABLED
    - _h2_trace_header
    linkageType: ''
    returnType: void
    signature: "void h2_trace_header(const struct ist hn, const struct ist hv,\n\t\t\t\t
      \  uint64_t mask, const struct ist trc_loc, const char *func,\n\t\t\t\t   const
      struct h2c *h2c, const struct h2s *h2s)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:1347,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/mux_h2.c:1347,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:1349,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/mux_h2.c:1349,1
    - Dst: hpack_encode_header
      Src: /src/haproxy/src/mux_h2.c:1353,1
    - Dst: h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:1355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 8
    argNames:
    - buf
    - hn
    - hv
    - mask
    - trc_loc
    - func
    - h2c
    - h2s
    argTypes:
    - struct buffer*
    - struct ist
    - struct ist
    - uint64_t
    - struct ist
    - char*
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1338
    functionDepth: 3
    functionLinenumber: 1338
    functionLinenumberEnd: 1358
    functionName: h2_encode_header
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h2_trace_header
    - hpack_encode_header
    - HTTP_IS_LWS
    linkageType: ''
    returnType: int
    signature: "int h2_encode_header(struct buffer *buf, const struct ist hn, const
      struct ist hv,\n\t\t\t\t   uint64_t mask, const struct ist trc_loc, const char
      *func,\n\t\t\t\t   const struct h2c *h2c, const struct h2s *h2s)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:1378,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_h2.c:1380,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:1384,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:1387,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h2.c:1390,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:1396,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h2.c:1399,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:1410,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:1410,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:1410,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_h2.c:1411,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_h2.c:1418,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_h2.c:1421,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:1427,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:1431,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:1432,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_h2.c:1437,1
    - Dst: hpack_dht_alloc
      Src: /src/haproxy/src/mux_h2.c:1441,1
    - Dst: h2c_max_concurrent_streams
      Src: /src/haproxy/src/mux_h2.c:1448,1
    - Dst: conn_calc_max_streams
      Src: /src/haproxy/src/mux_h2.c:1455,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h2.c:1460,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:1465,1
    - Dst: bl_init
      Src: /src/haproxy/src/mux_h2.c:1466,1
    - Dst: br_init
      Src: /src/haproxy/src/mux_h2.c:1486,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h2.c:1491,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h2.c:1492,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h2.c:1493,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h2.c:1494,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:1498,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_h2.c:1501,1
    - Dst: likely
      Src: /src/haproxy/src/mux_h2.c:1503,1
    - Dst: conn_is_reverse
      Src: /src/haproxy/src/mux_h2.c:1503,1
    - Dst: h2c_bck_stream_new
      Src: /src/haproxy/src/mux_h2.c:1511,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:1516,1
    - Dst: proxy_inc_fe_cum_sess_ver_ctr
      Src: /src/haproxy/src/mux_h2.c:1517,1
    - Dst: conn_is_reverse
      Src: /src/haproxy/src/mux_h2.c:1520,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:1521,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:1522,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:1526,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:1527,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/mux_h2.c:1534,1
    - Dst: hpack_dht_free
      Src: /src/haproxy/src/mux_h2.c:1535,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_h2.c:1537,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h2.c:1538,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h2.c:1539,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h2.c:1540,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:1542,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:1543,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:1545,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 133
    argCount: 4
    argNames:
    - conn
    - prx
    - sess
    - input
    argTypes:
    - struct connection*
    - struct proxy*
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1370
    functionDepth: 3
    functionLinenumber: 1370
    functionLinenumberEnd: 1547
    functionName: h2_init
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - bl_init
    - h2c_bck_stream_new
    - _HA_ATOMIC_ADD
    - TRACE_ENTER
    - task_queue
    - LIST_APPEND
    - likely
    - conn_is_reverse
    - h2c_restart_reading
    - tasklet_free
    - HA_ATOMIC_INC
    - LIST_INIT
    - pool_alloc
    - hpack_dht_free
    - task_destroy
    - TRACE_DEVEL
    - tasklet_new
    - hpack_dht_alloc
    - proxy_inc_fe_cum_sess_ver_ctr
    - conn_calc_max_streams
    - _HA_ATOMIC_SUB
    - conn_idle_ping
    - tick_add
    - pool_free
    - TRACE_LEAVE
    - LIST_DEL_INIT
    - br_init
    - LIST_INLIST
    - EXTRA_COUNTERS_GET
    - h2c_max_concurrent_streams
    - MAX
    - tick_isset
    - task_new_here
    - TRACE_USER
    linkageType: ''
    returnType: int
    signature: "int h2_init(struct connection *conn, struct proxy *prx, struct session
      *sess,\n\t\t   struct buffer *input)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1559
    functionName: h2c_get_next_sid
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t h2c_get_next_sid(const struct h2c *h2c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup
      Src: /src/haproxy/src/mux_h2.c:1572,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:1576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - h2c
    - id
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1562
    functionDepth: 1
    functionLinenumber: 1562
    functionLinenumberEnd: 1577
    functionName: h2c_st_by_id
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - container_of
    - eb32_lookup
    linkageType: ''
    returnType: struct h2s
    signature: struct h2s *h2c_st_by_id(struct h2c *h2c, int id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:1586,1
    - Dst: BUG_ON_STRESS
      Src: /src/haproxy/src/mux_h2.c:1588,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:1588,1
    - Dst: hpack_dht_free
      Src: /src/haproxy/src/mux_h2.c:1589,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/mux_h2.c:1591,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:1593,1
    - Dst: h2_release_mbuf
      Src: /src/haproxy/src/mux_h2.c:1594,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_h2.c:1598,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h2.c:1601,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_h2.c:1604,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:1606,1
    - Dst: conn_is_reverse
      Src: /src/haproxy/src/mux_h2.c:1610,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/mux_h2.c:1611,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/mux_h2.c:1614,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h2.c:1616,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h2.c:1617,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:1622,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/mux_h2.c:1624,1
    - Dst: conn_xprt_shutw
      Src: /src/haproxy/src/mux_h2.c:1633,1
    - Dst: conn_xprt_close
      Src: /src/haproxy/src/mux_h2.c:1634,1
    - Dst: conn_sock_shutw
      Src: /src/haproxy/src/mux_h2.c:1635,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:1635,1
    - Dst: conn_ctrl_close
      Src: /src/haproxy/src/mux_h2.c:1636,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/mux_h2.c:1639,1
    - Dst: conn_free
      Src: /src/haproxy/src/mux_h2.c:1640,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:1643,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1582
    functionDepth: 3
    functionLinenumber: 1582
    functionLinenumberEnd: 1644
    functionName: h2_release
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - conn_ctrl_close
    - conn_is_reverse
    - TRACE_ENTER
    - h2c_report_term_evt
    - b_dequeue
    - struct connection*::xprt::unsubscribe
    - hpack_dht_free
    - h2_release_buf
    - TRACE_DEVEL
    - struct connection*::destroy_cb
    - _HA_ATOMIC_SUB
    - conn_stop_tracking
    - pool_free
    - TRACE_LEAVE
    - LIST_INLIST
    - conn_xprt_close
    - h2_release_mbuf
    - BUG_ON_STRESS
    - conn_free
    - task_wakeup
    - conn_xprt_shutw
    - HA_ATOMIC_DEC
    - conn_sock_shutw
    - tasklet_free
    linkageType: ''
    returnType: void
    signature: void h2_release(struct h2c *h2c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1655
    functionName: h2s_id
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused h2s_id(const struct h2s *h2s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1660
    functionDepth: 0
    functionLinenumber: 1660
    functionLinenumberEnd: 1663
    functionName: h2s_mws
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2s_mws(const struct h2s *h2s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - h2s
    - reason
    argTypes:
    - struct h2s*
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 1677
    functionName: h2s_is_forwardable_abort
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2s_is_forwardable_abort(struct h2s *h2s, struct se_abort_info
      *reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h2.c:1686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - h2c
    - err
    argTypes:
    - struct h2c*
    - enum h2_err
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1691
    functionName: h2c_error
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_POINT
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused h2c_error(struct h2c *h2c, enum h2_err err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h2.c:1699,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:1703,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - h2s
    - err
    argTypes:
    - struct h2s*
    - enum h2_err
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1696
    functionDepth: 1
    functionLinenumber: 1696
    functionLinenumberEnd: 1705
    functionName: h2s_error
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - se_fl_set_error
    - TRACE_POINT
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused h2s_error(struct h2s *h2s, enum h2_err err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h2.c:1711,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/mux_h2.c:1714,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:1717,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1722
    functionName: __maybe_unused::h2s_notify_recv
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup_after
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void __maybe_unused h2s_notify_recv(struct h2s *h2s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h2.c:1728,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:1730,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h2.c:1736,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:1737,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1725
    functionDepth: 1
    functionLinenumber: 1725
    functionLinenumberEnd: 1739
    functionName: __maybe_unused::h2s_notify_send
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void __maybe_unused h2s_notify_send(struct h2s *h2s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:1748,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:1750,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:1751,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:1761,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:1761,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:1764,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1746
    functionDepth: 1
    functionLinenumber: 1746
    functionLinenumberEnd: 1765
    functionName: __maybe_unused::h2s_alert
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2s_sc
    - tasklet_wakeup
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void __maybe_unused h2s_alert(struct h2s *h2s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - h2c
    - ','
    - inc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1773
    functionDepth: 0
    functionLinenumber: 1773
    functionLinenumberEnd: 1777
    functionName: h2c_report_glitch
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2c_report_glitch(h2c, inc, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:1784,1
    - Dst: h2c_send_goaway_error
      Src: /src/haproxy/src/mux_h2.c:1792,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:1800,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - h2c
    - increment
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1778
    functionDepth: 2
    functionLinenumber: 1778
    functionLinenumberEnd: 1805
    functionName: _h2c_report_glitch
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h2c_send_goaway_error
    - h2c_error
    linkageType: ''
    returnType: int
    signature: int _h2c_report_glitch(struct h2c *h2c, int increment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_n16
      Src: /src/haproxy/src/mux_h2.c:1813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - frame
    - len
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1814
    functionName: h2_set_frame_size
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - write_n16
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused h2_set_frame_size(void *frame, uint32_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readv_bytes
      Src: /src/haproxy/src/mux_h2.c:1825,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1825,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_h2.c:1825,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1825,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:1825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - bytes
    - b
    - o
    argTypes:
    - void*
    - size_t
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1822
    functionDepth: 1
    functionLinenumber: 1822
    functionLinenumberEnd: 1826
    functionName: h2_get_buf_bytes
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_wrap
    - b_orig
    - readv_bytes
    linkageType: ''
    returnType: __maybe_unused
    signature: "__maybe_unused h2_get_buf_bytes(void *dst, size_t bytes,\n                                    const
      struct buffer *b, int o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readv_n16
      Src: /src/haproxy/src/mux_h2.c:1830,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1830,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_h2.c:1830,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1830,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:1830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - o
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1828
    functionDepth: 1
    functionLinenumber: 1828
    functionLinenumberEnd: 1831
    functionName: h2_get_n16
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - readv_n16
    - b_peek
    - b_orig
    - b_wrap
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused h2_get_n16(const struct buffer *b, int o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readv_n32
      Src: /src/haproxy/src/mux_h2.c:1835,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1835,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_h2.c:1835,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1835,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:1835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - o
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1836
    functionName: h2_get_n32
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - readv_n32
    - b_peek
    - b_orig
    - b_wrap
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused h2_get_n32(const struct buffer *b, int o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readv_n64
      Src: /src/haproxy/src/mux_h2.c:1840,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1840,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_h2.c:1840,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1840,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:1840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - o
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1838
    functionDepth: 1
    functionLinenumber: 1838
    functionLinenumberEnd: 1841
    functionName: h2_get_n64
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_wrap
    - readv_n64
    - b_orig
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused h2_get_n64(const struct buffer *b, int o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:1865,1
    - Dst: h2_get_n64
      Src: /src/haproxy/src/mux_h2.c:1868,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - b
    - o
    - h
    argTypes:
    - struct buffer*
    - int
    - struct h2_fh*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1861
    functionDepth: 2
    functionLinenumber: 1861
    functionLinenumberEnd: 1875
    functionName: h2_peek_frame_hdr
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_data
    - h2_get_n64
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused h2_peek_frame_hdr(const struct buffer *b, int o, struct
      h2_fh *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:1882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1883
    functionName: h2_skip_frame_hdr
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_del
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused h2_skip_frame_hdr(struct buffer *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2_peek_frame_hdr
      Src: /src/haproxy/src/mux_h2.c:1890,1
    - Dst: h2_skip_frame_hdr
      Src: /src/haproxy/src/mux_h2.c:1892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - h
    argTypes:
    - struct buffer*
    - struct h2_fh*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1886
    functionDepth: 3
    functionLinenumber: 1886
    functionLinenumberEnd: 1894
    functionName: h2_get_frame_hdr
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_skip_frame_hdr
    - h2_peek_frame_hdr
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused h2_get_frame_hdr(struct buffer *b, struct h2_fh *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/haproxy/src/mux_h2.c:1928,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:1932,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:1935,1
    - Dst: read_n32
      Src: /src/haproxy/src/mux_h2.c:1935,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:1939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - b
    - mfs
    argTypes:
    - struct buffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1905
    functionDepth: 2
    functionLinenumber: 1905
    functionLinenumberEnd: 1941
    functionName: h2_fragment_headers
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - read_n32
    - memmove
    - write_n32
    - h2_set_frame_size
    linkageType: ''
    returnType: int
    signature: int h2_fragment_headers(struct buffer *b, uint32_t mfs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:1949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1946
    functionDepth: 1
    functionLinenumber: 1946
    functionLinenumberEnd: 1953
    functionName: h2s_count_as_receiving
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void h2s_count_as_receiving(struct h2s *h2s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:1961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1958
    functionDepth: 1
    functionLinenumber: 1958
    functionLinenumberEnd: 1965
    functionName: h2s_no_longer_receiving
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void h2s_no_longer_receiving(struct h2s *h2s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:1976,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:1977,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:1981,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:1982,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:1983,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:1983,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:1983,1
    - Dst: h2s_notify_recv
      Src: /src/haproxy/src/mux_h2.c:1984,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/mux_h2.c:1986,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:1988,1
    - Dst: h2s_no_longer_receiving
      Src: /src/haproxy/src/mux_h2.c:1991,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1973
    functionDepth: 2
    functionLinenumber: 1973
    functionLinenumberEnd: 1992
    functionName: h2s_close
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2s_sc
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_ENTER
    - HA_ATOMIC_DEC
    - b_data
    - h2s_notify_recv
    - h2s_no_longer_receiving
    - h2s_rxbuf_head
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void h2s_close(struct h2s *h2s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2000,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2003,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2004,1
    - Dst: h2c_read0_pending
      Src: /src/haproxy/src/mux_h2.c:2007,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2008,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:2009,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2010,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2011,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2014,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:2016,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2017,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1997
    functionDepth: 1
    functionLinenumber: 1997
    functionLinenumberEnd: 2018
    functionName: h2s_propagate_term_flags
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - se_fl_test
    - h2c_read0_pending
    - se_report_term_evt
    linkageType: ''
    returnType: void
    signature: void h2s_propagate_term_flags(struct h2c *h2c, struct h2s *h2s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2030,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:2032,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/mux_h2.c:2033,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_h2.c:2036,1
    - Dst: bl_put
      Src: /src/haproxy/src/mux_h2.c:2037,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:2042,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:2046,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:2057,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h2.c:2060,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:2061,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:2061,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_h2.c:2062,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h2.c:2063,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2065,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2025
    functionDepth: 3
    functionLinenumber: 2025
    functionLinenumberEnd: 2066
    functionName: h2s_destroy
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_remove_from_list
    - TRACE_LEAVE
    - BUG_ON
    - eb32_delete
    - TRACE_ENTER
    - b_free
    - h2s_close
    - h2c_restart_reading
    - tasklet_free
    - pool_free
    - offer_buffers
    - se_fl_test
    - bl_put
    - sedesc_free
    linkageType: ''
    returnType: void
    signature: void h2s_destroy(struct h2s *h2s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2079,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_h2.c:2081,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_h2.c:2085,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h2.c:2087,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h2.c:2093,1
    - Dst: memset
      Src: /src/haproxy/src/mux_h2.c:2106,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/mux_h2.c:2124,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2127,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2128,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2130,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:2133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 2
    argNames:
    - h2c
    - id
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2074
    functionDepth: 1
    functionLinenumber: 2074
    functionLinenumberEnd: 2135
    functionName: h2s_new
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - eb32_insert
    - memset
    - pool_alloc
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - tasklet_new
    - HA_ATOMIC_INC
    - LIST_INIT
    - pool_free
    linkageType: ''
    returnType: struct h2s
    signature: struct h2s *h2s_new(struct h2c *h2c, int id)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2148,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:2151,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/mux_h2.c:2151,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2154,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2155,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h2.c:2156,1
    - Dst: session_inc_http_err_ctr
      Src: /src/haproxy/src/mux_h2.c:2157,1
    - Dst: h2s_new
      Src: /src/haproxy/src/mux_h2.c:2161,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/mux_h2.c:2165,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2170,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2173,1
    - Dst: se_expect_no_data
      Src: /src/haproxy/src/mux_h2.c:2179,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2185,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/mux_h2.c:2192,1
    - Dst: sc_new_from_endp
      Src: /src/haproxy/src/mux_h2.c:2194,1
    - Dst: h2_frt_has_too_many_sc
      Src: /src/haproxy/src/mux_h2.c:2210,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:2213,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2214,1
    - Dst: h2s_destroy
      Src: /src/haproxy/src/mux_h2.c:2218,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2220,1
    - Dst: h2_sess_log_strm
      Src: /src/haproxy/src/mux_h2.c:2222,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2223,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 4
    argNames:
    - h2c
    - id
    - input
    - flags
    argTypes:
    - struct h2c*
    - int
    - struct buffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2143
    functionDepth: 4
    functionLinenumber: 2143
    functionLinenumberEnd: 2225
    functionName: h2c_frt_stream_new
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - h2s_new
    - session_inc_http_err_ctr
    - TRACE_STATE
    - TRACE_ERROR
    - BUG_ON
    - session_inc_http_req_ctr
    - se_expect_no_data
    - ns_to_ms
    - h2_frt_has_too_many_sc
    - TRACE_ENTER
    - TRACE_LEAVE
    - h2_sess_log_strm
    - sc_new_from_endp
    - h2s_destroy
    - sedesc_new
    - h2c_report_glitch
    - conn_reverse_in_preconnect
    linkageType: ''
    returnType: struct h2s
    signature: struct h2s *h2c_frt_stream_new(struct h2c *h2c, int id, struct buffer
      *input, uint32_t flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2235,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:2238,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/mux_h2.c:2238,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2241,1
    - Dst: h2_streams_left
      Src: /src/haproxy/src/mux_h2.c:2245,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2246,1
    - Dst: h2s_new
      Src: /src/haproxy/src/mux_h2.c:2251,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2253,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_h2.c:2257,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2258,1
    - Dst: h2s_destroy
      Src: /src/haproxy/src/mux_h2.c:2259,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2268,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:2271,1
    - Dst: likely
      Src: /src/haproxy/src/mux_h2.c:2274,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2275,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2277,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - h2c
    - sc
    - sess
    argTypes:
    - struct h2c*
    - struct stconn*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2231
    functionDepth: 4
    functionLinenumber: 2231
    functionLinenumberEnd: 2279
    functionName: h2c_bck_stream_new
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - se_fl_set
    - h2s_new
    - TRACE_STATE
    - TRACE_ERROR
    - BUG_ON
    - sc_attach_mux
    - TRACE_LEAVE
    - TRACE_ENTER
    - likely
    - h2_streams_left
    - h2s_destroy
    - conn_reverse_in_preconnect
    linkageType: ''
    returnType: struct h2s
    signature: struct h2s *h2c_bck_stream_new(struct h2c *h2c, struct stconn *sc,
      struct session *sess)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2295,1
    - Dst: chunk_init
      Src: /src/haproxy/src/mux_h2.c:2297,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/mux_h2.c:2298,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2306,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2312,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2317,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2318,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2329,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2330,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2340,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2341,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2358,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2359,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:2362,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2364,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2366,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2372,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2372,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2373,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2375,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2381,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2386,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2285
    functionDepth: 2
    functionLinenumber: 2285
    functionLinenumberEnd: 2388
    functionName: h2c_send_settings
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - chunk_memcpy
    - unlikely
    - ist2
    - TRACE_LEAVE
    - h2_set_frame_size
    - b_istput
    - TRACE_ENTER
    - br_tail_add
    - chunk_memcat
    - chunk_init
    - h2_get_buf
    - br_tail
    - h2c_error
    - write_n32
    linkageType: ''
    returnType: int
    signature: int h2c_send_settings(struct h2c *h2c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2399,1
    - Dst: b_isteq
      Src: /src/haproxy/src/mux_h2.c:2401,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:2401,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:2401,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2403,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2407,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2408,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2409,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:2410,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2412,1
    - Dst: h2c_send_settings
      Src: /src/haproxy/src/mux_h2.c:2418,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:2420,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2422,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2394
    functionDepth: 3
    functionLinenumber: 2394
    functionLinenumberEnd: 2424
    functionName: h2c_frt_recv_preface
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_isteq
    - TRACE_ENTER
    - b_del
    - b_data
    - h2c_report_glitch
    - HA_ATOMIC_INC
    - h2c_error
    - h2c_send_settings
    linkageType: ''
    returnType: int
    signature: int h2c_frt_recv_preface(struct h2c *h2c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2435,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2437,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2439,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:2445,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2447,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:2447,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2448,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2450,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2457,1
    - Dst: h2c_send_settings
      Src: /src/haproxy/src/mux_h2.c:2463,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2465,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2430
    functionDepth: 3
    functionLinenumber: 2430
    functionLinenumberEnd: 2467
    functionName: h2c_bck_send_preface
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist
    - TRACE_LEAVE
    - b_istput
    - TRACE_ENTER
    - br_tail_add
    - b_data
    - h2_get_buf
    - br_tail
    - h2c_error
    - h2c_send_settings
    linkageType: ''
    returnType: int
    signature: int h2c_bck_send_preface(struct h2c *h2c)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2485,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:2493,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2498,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2499,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2501,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2503,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2512,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2512,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2513,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2515,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2528,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2540,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2549,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2550,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2554,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2555,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2559,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2560,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2563,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2479
    functionDepth: 2
    functionLinenumber: 2479
    functionLinenumberEnd: 2565
    functionName: h2c_send_goaway_error
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - unlikely
    - ist2
    - TRACE_LEAVE
    - memcpy
    - b_istput
    - TRACE_ENTER
    - br_tail_add
    - h2c_report_term_evt
    - h2_get_buf
    - br_tail
    - HA_ATOMIC_INC
    - h2c_error
    - write_n32
    linkageType: ''
    returnType: int
    signature: int h2c_send_goaway_error(struct h2c *h2c, struct h2s *h2s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2582,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:2600,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2601,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2602,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2604,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2606,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2612,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2612,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2613,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2615,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2622,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:2630,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2632,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2576
    functionDepth: 3
    functionLinenumber: 2576
    functionLinenumberEnd: 2634
    functionName: h2s_send_rst_stream
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist2
    - TRACE_LEAVE
    - memcpy
    - b_istput
    - TRACE_ENTER
    - br_tail_add
    - h2s_close
    - h2_get_buf
    - br_tail
    - h2c_error
    - write_n32
    linkageType: ''
    returnType: int
    signature: int h2s_send_rst_stream(struct h2c *h2c, struct h2s *h2s)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2652,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:2663,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2665,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2666,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2668,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2670,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2676,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2676,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2677,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2679,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2686,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2698,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2703,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2706,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2709,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:2715,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2719,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2720,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2646
    functionDepth: 3
    functionLinenumber: 2646
    functionLinenumberEnd: 2722
    functionName: h2c_send_rst_stream
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist2
    - TRACE_LEAVE
    - memcpy
    - b_istput
    - TRACE_ENTER
    - br_tail_add
    - h2s_close
    - h2_get_buf
    - br_tail
    - se_report_term_evt
    - HA_ATOMIC_INC
    - h2c_error
    - write_n32
    linkageType: ''
    returnType: int
    signature: int h2c_send_rst_stream(struct h2c *h2c, struct h2s *h2s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2737,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:2745,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2746,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2748,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2750,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2756,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2756,1
    - Dst: likely
      Src: /src/haproxy/src/mux_h2.c:2757,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2761,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2767,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2771,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2730
    functionDepth: 2
    functionLinenumber: 2730
    functionLinenumberEnd: 2773
    functionName: h2_send_empty_data_es
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - ist2
    - TRACE_LEAVE
    - memcpy
    - b_istput
    - TRACE_ENTER
    - br_tail_add
    - likely
    - h2_get_buf
    - br_tail
    - h2c_error
    - write_n32
    linkageType: ''
    returnType: int
    signature: int h2_send_empty_data_es(struct h2s *h2s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2784,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:2786,1
    - Dst: h2s_destroy
      Src: /src/haproxy/src/mux_h2.c:2788,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:2789,1
    - Dst: h2c_read0_pending
      Src: /src/haproxy/src/mux_h2.c:2793,1
    - Dst: h2s_no_longer_receiving
      Src: /src/haproxy/src/mux_h2.c:2794,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:2798,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:2804,1
    - Dst: h2s_propagate_term_flags
      Src: /src/haproxy/src/mux_h2.c:2805,1
    - Dst: h2s_alert
      Src: /src/haproxy/src/mux_h2.c:2811,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2812,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2780
    functionDepth: 4
    functionLinenumber: 2780
    functionLinenumberEnd: 2813
    functionName: h2s_wake_one_stream
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2s_sc
    - TRACE_LEAVE
    - se_fl_set_error
    - TRACE_DEVEL
    - TRACE_ENTER
    - h2s_propagate_term_flags
    - h2c_read0_pending
    - h2s_close
    - h2s_destroy
    - h2s_no_longer_receiving
    - h2s_alert
    linkageType: ''
    returnType: void
    signature: void h2s_wake_one_stream(struct h2s *h2s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2823,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_h2.c:2826,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:2828,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:2829,1
    - Dst: h2s_wake_one_stream
      Src: /src/haproxy/src/mux_h2.c:2830,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/mux_h2.c:2834,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:2836,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:2839,1
    - Dst: h2s_wake_one_stream
      Src: /src/haproxy/src/mux_h2.c:2840,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2843,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - h2c
    - last
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2818
    functionDepth: 5
    functionLinenumber: 2818
    functionLinenumberEnd: 2844
    functionName: h2_wake_some_streams
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - h2s_wake_one_stream
    - TRACE_ENTER
    - container_of
    - eb32_next
    - eb32_lookup
    - eb32_lookup_ge
    linkageType: ''
    returnType: void
    signature: void h2_wake_some_streams(struct h2c *h2c, int last)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2855,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_h2.c:2857,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:2859,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:2860,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:2862,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:2865,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:2867,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2870,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2850
    functionDepth: 1
    functionLinenumber: 2850
    functionLinenumberEnd: 2871
    functionName: h2c_unblock_sfctl
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2s_mws
    - TRACE_LEAVE
    - LIST_DEL_INIT
    - TRACE_ENTER
    - container_of
    - LIST_APPEND
    - eb32_next
    - eb32_first
    linkageType: ''
    returnType: void
    signature: void h2c_unblock_sfctl(struct h2c *h2c)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2883,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:2894,1
    - Dst: h2_get_n16
      Src: /src/haproxy/src/mux_h2.c:2901,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:2902,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2911,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:2912,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2921,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:2923,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2931,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2932,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2934,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2944,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2945,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2947,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2970,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:2974,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2975,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:2977,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 87
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2878
    functionDepth: 2
    functionLinenumber: 2878
    functionLinenumberEnd: 2979
    functionName: h2c_handle_settings
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_ERROR
    - TRACE_LEAVE
    - h2_get_n16
    - TRACE_DEVEL
    - TRACE_ENTER
    - h2_sess_log_conn
    - b_data
    - h2c_report_glitch
    - HA_ATOMIC_INC
    - h2c_error
    - h2_get_n32
    linkageType: ''
    returnType: int
    signature: int h2c_handle_settings(struct h2c *h2c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:2990,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:2992,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2997,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2999,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:3005,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:3005,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:3006,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:3008,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3014,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3019,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 2984
    functionDepth: 2
    functionLinenumber: 2984
    functionLinenumberEnd: 3021
    functionName: h2c_ack_settings
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist2
    - TRACE_LEAVE
    - memcpy
    - b_istput
    - TRACE_ENTER
    - br_tail_add
    - h2_get_buf
    - br_tail
    - h2c_error
    linkageType: ''
    returnType: int
    signature: int h2c_ack_settings(struct h2c *h2c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:3031,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:3034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3042
      start: 3028
    functionDepth: 2
    functionLinenumber: 3028
    functionLinenumberEnd: 3042
    functionName: h2c_handle_ping
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2c_update_timeout
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: int h2c_handle_ping(struct h2c *h2c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3054,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:3057,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:3058,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:3059,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:3061,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:3063,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:3069,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:3069,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:3070,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:3072,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3078,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3083,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - h2c
    - sid
    - increment
    argTypes:
    - struct h2c*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3085
      start: 3048
    functionDepth: 2
    functionLinenumber: 3048
    functionLinenumberEnd: 3085
    functionName: h2c_send_window_update
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist2
    - TRACE_LEAVE
    - memcpy
    - b_istput
    - TRACE_ENTER
    - br_tail_add
    - h2_get_buf
    - br_tail
    - h2c_error
    - write_n32
    linkageType: ''
    returnType: int
    signature: int h2c_send_window_update(struct h2c *h2c, int sid, uint32_t increment)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3095,1
    - Dst: h2c_send_window_update
      Src: /src/haproxy/src/mux_h2.c:3109,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3116
      start: 3091
    functionDepth: 3
    functionLinenumber: 3091
    functionLinenumberEnd: 3116
    functionName: h2c_send_conn_wu
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2c_send_window_update
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int h2c_send_conn_wu(struct h2c *h2c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2c_st_by_id
      Src: /src/haproxy/src/mux_h2.c:3131,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:3176,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:3177,1
    - Dst: bl_size
      Src: /src/haproxy/src/mux_h2.c:3177,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:3179,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 3125
    functionDepth: 2
    functionLinenumber: 3125
    functionLinenumberEnd: 3225
    functionName: h2c_update_strm_rx_win
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - bl_size
    - MAX
    - h2c_st_by_id
    linkageType: ''
    returnType: int
    signature: int h2c_update_strm_rx_win(struct h2c *h2c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3236,1
    - Dst: h2c_send_window_update
      Src: /src/haproxy/src/mux_h2.c:3242,1
    - Dst: h2c_st_by_id
      Src: /src/haproxy/src/mux_h2.c:3245,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3231
    functionDepth: 3
    functionLinenumber: 3231
    functionLinenumberEnd: 3252
    functionName: h2c_send_strm_wu
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2c_send_window_update
    - TRACE_ENTER
    - TRACE_LEAVE
    - h2c_st_by_id
    linkageType: ''
    returnType: int
    signature: int h2c_send_strm_wu(struct h2c *h2c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3265,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:3268,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:3274,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3277,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:3282,1
    - Dst: h2_get_buf_bytes
      Src: /src/haproxy/src/mux_h2.c:3288,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:3291,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:3293,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:3299,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:3299,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:3300,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:3302,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3308,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3313,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - h2c
    - ack
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3315
      start: 3259
    functionDepth: 2
    functionLinenumber: 3259
    functionLinenumberEnd: 3315
    functionName: h2c_send_ping
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist2
    - TRACE_LEAVE
    - h2_get_buf_bytes
    - memcpy
    - b_istput
    - TRACE_ENTER
    - br_tail_add
    - b_data
    - h2_get_buf
    - br_tail
    - h2c_error
    linkageType: ''
    returnType: int
    signature: int h2c_send_ping(struct h2c *h2c, int ack)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3327,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3330,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:3335,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3345,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3346,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3348,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:3359,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:3359,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3360,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3361,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3363,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:3368,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:3370,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:3373,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3379,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3380,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3382,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3387,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3388,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3397,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3401,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3403,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:3407,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3409,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3322
    functionDepth: 2
    functionLinenumber: 3322
    functionLinenumberEnd: 3411
    functionName: h2c_handle_window_update
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2s_mws
    - TRACE_LEAVE
    - TRACE_ERROR
    - LIST_DEL_INIT
    - TRACE_DEVEL
    - TRACE_ENTER
    - LIST_APPEND
    - b_data
    - h2c_report_glitch
    - h2s_error
    - HA_ATOMIC_INC
    - h2c_error
    - h2_get_n32
    linkageType: ''
    returnType: int
    signature: int h2c_handle_window_update(struct h2c *h2c, struct h2s *h2s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3422,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3424,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3425,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:3430,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:3431,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:3434,1
    - Dst: h2_wake_some_streams
      Src: /src/haproxy/src/mux_h2.c:3435,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3418
    functionDepth: 6
    functionLinenumber: 3418
    functionLinenumberEnd: 3438
    functionName: h2c_handle_goaway
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - h2c_report_term_evt
    - b_data
    - h2_wake_some_streams
    - h2_get_n32
    linkageType: ''
    returnType: int
    signature: int h2c_handle_goaway(struct h2c *h2c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3447,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3450,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3451,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:3460,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3462,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3463,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3464,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3465,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3466,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3471
      start: 3445
    functionDepth: 2
    functionLinenumber: 3445
    functionLinenumberEnd: 3471
    functionName: h2c_handle_priority
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - TRACE_DEVEL
    - TRACE_ENTER
    - b_data
    - h2c_report_glitch
    - HA_ATOMIC_INC
    - h2c_error
    - h2_get_n32
    linkageType: ''
    returnType: int
    signature: int h2c_handle_priority(struct h2c *h2c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3482,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3485,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3486,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:3491,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/mux_h2.c:3492,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:3494,1
    - Dst: h2c_st_to_str
      Src: /src/haproxy/src/mux_h2.c:3495,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3500,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:3505,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:3507,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:3508,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:3510,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:3510,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:3512,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3513,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3514,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:3519,1
    - Dst: h2s_alert
      Src: /src/haproxy/src/mux_h2.c:3524,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3528,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3477
    functionDepth: 3
    functionLinenumber: 3477
    functionLinenumberEnd: 3530
    functionName: h2c_handle_rst_stream
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - unlikely
    - h2s_sc
    - TRACE_STATE
    - TRACE_LEAVE
    - se_fl_set_error
    - TRACE_DEVEL
    - TRACE_ENTER
    - se_report_term_evt
    - h2s_close
    - TRACE_PRINTF
    - b_data
    - h2c_report_glitch
    - h2s_alert
    - h2c_st_to_str
    - se_fl_test
    - h2_get_n32
    linkageType: ''
    returnType: int
    signature: int h2c_handle_rst_stream(struct h2c *h2c, struct h2s *h2s)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3546,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:3548,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3553,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:3553,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3562,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:3562,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3563,1
    - Dst: h2c_dec_hdrs
      Src: /src/haproxy/src/mux_h2.c:3568,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3568,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3571,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3571,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:3572,1
    - Dst: session_inc_http_err_ctr
      Src: /src/haproxy/src/mux_h2.c:3589,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3590,1
    - Dst: h2_sess_log_strm
      Src: /src/haproxy/src/mux_h2.c:3591,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:3592,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3593,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3593,1
    - Dst: h2c_dec_hdrs
      Src: /src/haproxy/src/mux_h2.c:3602,1
    - Dst: h2_sess_log_strm
      Src: /src/haproxy/src/mux_h2.c:3603,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3605,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3606,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3612,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3613,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3614,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:3615,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h2.c:3616,1
    - Dst: session_inc_http_err_ctr
      Src: /src/haproxy/src/mux_h2.c:3617,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3630,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:3631,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3632,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:3633,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h2.c:3634,1
    - Dst: session_inc_http_err_ctr
      Src: /src/haproxy/src/mux_h2.c:3635,1
    - Dst: h2c_dec_hdrs
      Src: /src/haproxy/src/mux_h2.c:3639,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h2.c:3666,1
    - Dst: session_inc_http_err_ctr
      Src: /src/haproxy/src/mux_h2.c:3667,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:3670,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3671,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3676,1
    - Dst: h2_sess_log_strm
      Src: /src/haproxy/src/mux_h2.c:3677,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3678,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3682,1
    - Dst: h2c_frt_stream_new
      Src: /src/haproxy/src/mux_h2.c:3691,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3694,1
    - Dst: h2s_propagate_term_flags
      Src: /src/haproxy/src/mux_h2.c:3703,1
    - Dst: h2s_no_longer_receiving
      Src: /src/haproxy/src/mux_h2.c:3707,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:3711,1
    - Dst: h2s_count_as_receiving
      Src: /src/haproxy/src/mux_h2.c:3714,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3716,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3720,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:3722,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3723,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:3735,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3738,1
    - Dst: h2c_send_goaway_error
      Src: /src/haproxy/src/mux_h2.c:3755,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 158
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3760
      start: 3539
    functionDepth: 5
    functionLinenumber: 3539
    functionLinenumberEnd: 3760
    functionName: h2c_frt_handle_headers
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - session_inc_http_err_ctr
    - h2s_get_rxbuf
    - h2_sess_log_strm
    - TRACE_ENTER
    - b_full
    - HA_ATOMIC_INC
    - h2s_count_as_receiving
    - h2_release_buf
    - TRACE_DEVEL
    - h2s_propagate_term_flags
    - h2s_rxbuf_tail
    - h2c_frt_stream_new
    - h2c_report_glitch
    - h2c_dec_hdrs
    - TRACE_LEAVE
    - TRACE_ERROR
    - h2c_send_goaway_error
    - h2s_close
    - b_data
    - b_size
    - TRACE_STATE
    - session_inc_http_req_ctr
    - h2_sess_log_conn
    - h2s_no_longer_receiving
    - h2s_error
    - h2c_error
    - TRACE_USER
    linkageType: ''
    returnType: struct h2s
    signature: struct h2s *h2c_frt_handle_headers(struct h2c *h2c, struct h2s *h2s)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3774,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:3776,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3781,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:3781,1
    - Dst: h2c_dec_hdrs
      Src: /src/haproxy/src/mux_h2.c:3790,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3796,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:3796,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3797,1
    - Dst: h2c_dec_hdrs
      Src: /src/haproxy/src/mux_h2.c:3802,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3802,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3806,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3812,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3813,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:3814,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3816,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3831,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3832,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:3833,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3835,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:3842,1
    - Dst: h2s_no_longer_receiving
      Src: /src/haproxy/src/mux_h2.c:3845,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:3849,1
    - Dst: h2s_count_as_receiving
      Src: /src/haproxy/src/mux_h2.c:3852,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:3860,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3864,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3864,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3865,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3868,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:3876,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3879,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3880,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 85
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3882
      start: 3767
    functionDepth: 3
    functionLinenumber: 3767
    functionLinenumberEnd: 3882
    functionName: h2c_bck_handle_headers
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2s_get_rxbuf
    - TRACE_ENTER
    - b_full
    - HA_ATOMIC_INC
    - se_fl_test
    - h2s_count_as_receiving
    - h2_release_buf
    - TRACE_DEVEL
    - h2s_rxbuf_tail
    - h2c_report_glitch
    - h2c_dec_hdrs
    - TRACE_LEAVE
    - TRACE_ERROR
    - h2s_close
    - b_data
    - b_size
    - TRACE_STATE
    - h2s_no_longer_receiving
    - h2s_error
    - TRACE_USER
    linkageType: ''
    returnType: struct h2s
    signature: struct h2s *h2c_bck_handle_headers(struct h2c *h2c, struct h2s *h2s)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3891,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:3897,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3902,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:3902,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3917,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3918,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3920,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3925,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3926,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3928,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3940,1
    - Dst: h2_frt_transfer_data
      Src: /src/haproxy/src/mux_h2.c:3945,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:3951,1
    - Dst: h2s_no_longer_receiving
      Src: /src/haproxy/src/mux_h2.c:3977,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:3981,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3985,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3986,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3988,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:3998,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4002,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:4012,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4015,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 88
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4017
      start: 3887
    functionDepth: 3
    functionLinenumber: 3887
    functionLinenumberEnd: 4017
    functionName: h2c_handle_data
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2s_sc
    - TRACE_STATE
    - TRACE_ERROR
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - h2_frt_transfer_data
    - h2s_close
    - b_data
    - b_size
    - h2c_report_glitch
    - h2s_no_longer_receiving
    - b_full
    - h2s_error
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: int
    signature: int h2c_handle_data(struct h2c *h2c, struct h2s *h2s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4027,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4034,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4035,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4036,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:4039,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4041,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4042,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4048,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4049,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4050,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4051,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4052,1
    - Dst: h2_ft_bit
      Src: /src/haproxy/src/mux_h2.c:4063,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4064,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4065,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4066,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4067,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4070,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:4071,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4073,1
    - Dst: h2_ft_bit
      Src: /src/haproxy/src/mux_h2.c:4089,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4100,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4101,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4102,1
    - Dst: h2_ft_bit
      Src: /src/haproxy/src/mux_h2.c:4107,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4134,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:4135,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4137,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4159,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4160,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4161,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4166,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4168
      start: 4025
    functionDepth: 2
    functionLinenumber: 4025
    functionLinenumberEnd: 4168
    functionName: h2_frame_check_vs_state
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_ft_bit
    - TRACE_LEAVE
    - TRACE_ERROR
    - TRACE_DEVEL
    - TRACE_ENTER
    - h2_sess_log_conn
    - h2c_report_glitch
    - h2s_error
    - HA_ATOMIC_INC
    - h2c_error
    linkageType: ''
    returnType: int
    signature: int h2_frame_check_vs_state(struct h2c *h2c, struct h2s *h2s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4186,1
    - Dst: conn_reverse
      Src: /src/haproxy/src/mux_h2.c:4188,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4189,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:4193,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:4196,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_h2.c:4197,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/mux_h2.c:4204,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4209,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h2.c:4212,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_h2.c:4215,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_h2.c:4216,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_h2.c:4217,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/mux_h2.c:4221,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h2.c:4226,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4233,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h2.c:4236,1
    - Dst: proxy_inc_fe_cum_sess_ver_ctr
      Src: /src/haproxy/src/mux_h2.c:4239,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:4241,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:4241,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:4242,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4246,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4247,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/mux_h2.c:4252,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4253,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4260,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4260,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:4260,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_h2.c:4261,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4268,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4268,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:4268,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_h2.c:4269,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:4275,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4277,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4281,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4282,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4284
      start: 4182
    functionDepth: 4
    functionLinenumber: 4182
    functionLinenumberEnd: 4284
    functionName: h2_conn_reverse
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - _HA_ATOMIC_ADD
    - TRACE_ENTER
    - LIST_APPEND
    - HA_ATOMIC_OR
    - HA_ATOMIC_INC
    - task_new_here
    - task_destroy
    - TRACE_DEVEL
    - conn_reverse
    - _HA_ATOMIC_SUB
    - conn_idle_ping
    - TRACE_LEAVE
    - TRACE_ERROR
    - __objt_listener
    - LIST_INLIST
    - conn_reverse_in_preconnect
    - __objt_server
    - EXTRA_COUNTERS_GET
    - BUG_ON
    - srv_add_to_idle_list
    - tick_isset
    - xprt_set_idle
    - h2c_update_timeout
    - h2c_error
    - proxy_inc_fe_cum_sess_ver_ctr
    - TRACE_USER
    linkageType: ''
    returnType: int
    signature: int h2_conn_reverse(struct h2c *h2c)
  - BBCount: 84
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4296,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4301,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4303,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4306,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4310,1
    - Dst: h2c_frt_recv_preface
      Src: /src/haproxy/src/mux_h2.c:4310,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4313,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4315,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4317,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4319,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:4321,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4325,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4328,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4336,1
    - Dst: h2_get_frame_hdr
      Src: /src/haproxy/src/mux_h2.c:4337,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4341,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4342,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:4345,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4352,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4353,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4354,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:4357,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4358,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:4362,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4364,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4365,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4366,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:4369,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4378,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:4396,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4399,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4400,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4406,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4411,1
    - Dst: h2_peek_frame_hdr
      Src: /src/haproxy/src/mux_h2.c:4412,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:4417,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4418,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4419,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4420,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:4423,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4425,1
    - Dst: h2c_update_strm_rx_win
      Src: /src/haproxy/src/mux_h2.c:4429,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4433,1
    - Dst: h2c_send_strm_wu
      Src: /src/haproxy/src/mux_h2.c:4434,1
    - Dst: h2_ft_bit
      Src: /src/haproxy/src/mux_h2.c:4440,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4449,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4450,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4451,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:4453,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4454,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4459,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:4464,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4467,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4468,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4472,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:4474,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4475,1
    - Dst: h2_ft_bit
      Src: /src/haproxy/src/mux_h2.c:4479,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:4483,1
    - Dst: h2_skip_frame_hdr
      Src: /src/haproxy/src/mux_h2.c:4485,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4494,1
    - Dst: h2_frame_check
      Src: /src/haproxy/src/mux_h2.c:4498,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:4498,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4500,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4501,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4502,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:4504,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4505,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:4518,1
    - Dst: h2c_st_by_id
      Src: /src/haproxy/src/mux_h2.c:4528,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:4530,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:4531,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4531,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:4531,1
    - Dst: h2c_read0_pending
      Src: /src/haproxy/src/mux_h2.c:4532,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:4535,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4537,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:4538,1
    - Dst: h2s_notify_recv
      Src: /src/haproxy/src/mux_h2.c:4539,1
    - Dst: h2_frame_check_vs_state
      Src: /src/haproxy/src/mux_h2.c:4544,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4545,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4552,1
    - Dst: h2c_handle_settings
      Src: /src/haproxy/src/mux_h2.c:4553,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4555,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4558,1
    - Dst: h2c_ack_settings
      Src: /src/haproxy/src/mux_h2.c:4559,1
    - Dst: conn_is_reverse
      Src: /src/haproxy/src/mux_h2.c:4561,1
    - Dst: h2_conn_reverse
      Src: /src/haproxy/src/mux_h2.c:4563,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4570,1
    - Dst: h2c_handle_ping
      Src: /src/haproxy/src/mux_h2.c:4571,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4575,1
    - Dst: h2c_send_ping
      Src: /src/haproxy/src/mux_h2.c:4576,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4582,1
    - Dst: h2c_handle_window_update
      Src: /src/haproxy/src/mux_h2.c:4583,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4593,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4594,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4595,1
    - Dst: h2_sess_log_conn
      Src: /src/haproxy/src/mux_h2.c:4597,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4598,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4603,1
    - Dst: h2c_bck_handle_headers
      Src: /src/haproxy/src/mux_h2.c:4605,1
    - Dst: h2c_frt_handle_headers
      Src: /src/haproxy/src/mux_h2.c:4607,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4613,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4618,1
    - Dst: h2c_handle_data
      Src: /src/haproxy/src/mux_h2.c:4619,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4621,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4631,1
    - Dst: h2c_handle_priority
      Src: /src/haproxy/src/mux_h2.c:4632,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4638,1
    - Dst: h2c_handle_rst_stream
      Src: /src/haproxy/src/mux_h2.c:4639,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4641,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4646,1
    - Dst: h2c_handle_goaway
      Src: /src/haproxy/src/mux_h2.c:4647,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4649,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4654,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_h2.c:4659,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4659,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:4660,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4668,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4673,1
    - Dst: h2c_send_rst_stream
      Src: /src/haproxy/src/mux_h2.c:4674,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4683,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_h2.c:4684,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4684,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:4685,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4689,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4700,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:4705,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:4712,1
    - Dst: h2c_update_strm_rx_win
      Src: /src/haproxy/src/mux_h2.c:4718,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4720,1
    - Dst: h2c_send_strm_wu
      Src: /src/haproxy/src/mux_h2.c:4721,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4726,1
    - Dst: h2c_send_conn_wu
      Src: /src/haproxy/src/mux_h2.c:4727,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:4737,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:4737,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:4741,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:4741,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:4746,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:4749,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:4750,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4750,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:4750,1
    - Dst: h2c_read0_pending
      Src: /src/haproxy/src/mux_h2.c:4751,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:4754,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4756,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:4757,1
    - Dst: h2s_notify_recv
      Src: /src/haproxy/src/mux_h2.c:4758,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4762,1
    - Dst: h2c_unblock_sfctl
      Src: /src/haproxy/src/mux_h2.c:4763,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4767,1
    CyclomaticComplexity: 139
    EdgeCount: 139
    ICount: 343
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4769
      start: 4287
    functionDepth: 7
    functionLinenumber: 4287
    functionLinenumberEnd: 4769
    functionName: h2_process_demux
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h2_ft_bit
    - h2_peek_frame_hdr
    - h2s_sc
    - h2c_frt_handle_headers
    - h2c_send_conn_wu
    - conn_is_reverse
    - TRACE_ENTER
    - h2c_report_term_evt
    - b_full
    - HA_ATOMIC_INC
    - h2s_rxbuf_head
    - se_fl_test
    - h2c_handle_settings
    - b_peek
    - h2_skip_frame_hdr
    - eb_is_empty
    - h2c_st_by_id
    - h2_frame_check_vs_state
    - TRACE_DEVEL
    - h2c_read0_pending
    - h2c_handle_priority
    - h2c_report_glitch
    - h2_frame_check
    - h2c_handle_goaway
    - se_fl_set
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - h2_conn_reverse
    - h2c_frt_recv_preface
    - h2c_send_ping
    - h2c_handle_data
    - tasklet_wakeup
    - h2c_handle_rst_stream
    - h2c_unblock_sfctl
    - b_data
    - b_size
    - h2s_notify_recv
    - h2c_handle_window_update
    - b_del
    - h2c_ack_settings
    - h2c_send_strm_wu
    - TRACE_STATE
    - h2c_send_rst_stream
    - h2_sess_log_conn
    - MIN
    - h2_get_frame_hdr
    - h2c_handle_ping
    - h2c_error
    - h2c_update_strm_rx_win
    - h2c_bck_handle_headers
    linkageType: ''
    returnType: void
    signature: void h2_process_demux(struct h2c *h2c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4776,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:4794,1
    - Dst: h2s_notify_send
      Src: /src/haproxy/src/mux_h2.c:4798,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4801,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 2
    argNames:
    - h2c
    - head
    argTypes:
    - struct h2c*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4772
    functionDepth: 1
    functionLinenumber: 4772
    functionLinenumberEnd: 4802
    functionName: h2_resume_each_sending_h2s
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - h2s_notify_send
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void h2_resume_each_sending_h2s(struct h2c *h2c, struct list *head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:4794,1
    - Dst: h2s_notify_send
      Src: /src/haproxy/src/mux_h2.c:4798,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4799
      start: 4778
    functionDepth: 1
    functionLinenumber: 4778
    functionLinenumberEnd: 4799
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 27
    functionsReached:
    - LIST_DEL_INIT
    - h2s_notify_send
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(h2s, h2s_back, head, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:4817,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:4820,1
    - Dst: h2_resume_each_sending_h2s
      Src: /src/haproxy/src/mux_h2.c:4823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4825
      start: 4813
    functionDepth: 2
    functionLinenumber: 4813
    functionLinenumberEnd: 4825
    functionName: h2_remove_from_list
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - LIST_DEL_INIT
    - h2_resume_each_sending_h2s
    - LIST_INLIST
    linkageType: ''
    returnType: void
    signature: void h2_remove_from_list(struct h2s *h2s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4834,1
    - Dst: h2c_bck_send_preface
      Src: /src/haproxy/src/mux_h2.c:4834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4842
      start: 4832
    functionDepth: 4
    functionLinenumber: 4832
    functionLinenumberEnd: 4842
    functionName: h2c_bck_send_preface_and_settings
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h2c_bck_send_preface
    linkageType: ''
    returnType: int
    signature: int h2c_bck_send_preface_and_settings(struct h2c *h2c)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4849,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4851,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4852,1
    - Dst: h2c_bck_send_preface_and_settings
      Src: /src/haproxy/src/mux_h2.c:4853,1
    - Dst: h2c_update_strm_rx_win
      Src: /src/haproxy/src/mux_h2.c:4862,1
    - Dst: h2c_send_strm_wu
      Src: /src/haproxy/src/mux_h2.c:4864,1
    - Dst: h2c_send_conn_wu
      Src: /src/haproxy/src/mux_h2.c:4869,1
    - Dst: h2c_send_ping
      Src: /src/haproxy/src/mux_h2.c:4874,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:4876,1
    - Dst: h2_resume_each_sending_h2s
      Src: /src/haproxy/src/mux_h2.c:4885,1
    - Dst: h2_resume_each_sending_h2s
      Src: /src/haproxy/src/mux_h2.c:4886,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4889,1
    - Dst: h2c_send_goaway_error
      Src: /src/haproxy/src/mux_h2.c:4892,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4901,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4904,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4906
      start: 4847
    functionDepth: 5
    functionLinenumber: 4847
    functionLinenumberEnd: 4906
    functionName: h2_process_mux
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h2c_send_strm_wu
    - h2c_bck_send_preface_and_settings
    - TRACE_LEAVE
    - h2c_send_ping
    - h2c_send_conn_wu
    - h2c_send_goaway_error
    - TRACE_ENTER
    - TRACE_DEVEL
    - h2_resume_each_sending_h2s
    - h2c_update_strm_rx_win
    - TRACE_USER
    linkageType: ''
    returnType: int
    signature: int h2_process_mux(struct h2c *h2c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4919,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4922,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4923,1
    - Dst: h2_recv_allowed
      Src: /src/haproxy/src/mux_h2.c:4926,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4927,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:4931,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4934,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4938,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_h2.c:4947,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:4951,1
    - Dst: struct connection*::xprt::rcv_buf
      Src: /src/haproxy/src/mux_h2.c:4953,1
    - Dst: h2_recv_allowed
      Src: /src/haproxy/src/mux_h2.c:4955,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:4956,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_h2.c:4957,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:4959,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_h2.c:4963,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:4964,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4968,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:4969,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4973,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:4974,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4978,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4980,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4984,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4986
      start: 4912
    functionDepth: 2
    functionLinenumber: 4912
    functionLinenumberEnd: 4986
    functionName: h2_recv
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - struct connection*::xprt::rcv_buf
    - TRACE_STATE
    - TRACE_LEAVE
    - h2_release_buf
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_DATA
    - conn_xprt_read0_pending
    - b_room
    - b_data
    - h2_get_buf
    - buf_room_for_htx_data
    - h2_recv_allowed
    - struct connection*::xprt::subscribe
    linkageType: ''
    returnType: int
    signature: int h2_recv(struct h2c *h2c)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4997,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5000,1
    - Dst: h2_release_mbuf
      Src: /src/haproxy/src/mux_h2.c:5003,1
    - Dst: h2_process_mux
      Src: /src/haproxy/src/mux_h2.c:5036,1
    - Dst: br_count
      Src: /src/haproxy/src/mux_h2.c:5048,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_h2.c:5059,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:5059,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_h2.c:5059,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5060,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/mux_h2.c:5061,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5061,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:5069,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:5070,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5071,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_h2.c:5076,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:5081,1
    - Dst: br_single
      Src: /src/haproxy/src/mux_h2.c:5093,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:5099,1
    - Dst: h2_release_mbuf
      Src: /src/haproxy/src/mux_h2.c:5102,1
    - Dst: h2_resume_each_sending_h2s
      Src: /src/haproxy/src/mux_h2.c:5110,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:5114,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5115,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5124,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_h2.c:5125,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5127,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 75
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5130
      start: 4991
    functionDepth: 6
    functionLinenumber: 4991
    functionLinenumberEnd: 5130
    functionName: h2_send
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - br_data
    - TRACE_ENTER
    - TRACE_DATA
    - h2c_report_term_evt
    - br_single
    - offer_buffers
    - br_head
    - TRACE_DEVEL
    - h2_process_mux
    - br_count
    - br_del_head
    - b_free
    - b_data
    - b_size
    - h2_resume_each_sending_h2s
    - struct connection*::xprt::subscribe
    - b_del
    - h2_release_mbuf
    - TRACE_STATE
    - struct connection*::xprt::snd_buf
    linkageType: ''
    returnType: int
    signature: int h2_send(struct h2c *h2c)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h2.c:5145,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5151,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h2.c:5152,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5157,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:5162,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:5164,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h2.c:5165,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:5167,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:5169,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_h2.c:5171,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5177,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5182,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:5187,1
    - Dst: h2_recv
      Src: /src/haproxy/src/mux_h2.c:5189,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5190,1
    - Dst: h2_process
      Src: /src/haproxy/src/mux_h2.c:5191,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h2.c:5205,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/mux_h2.c:5209,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/mux_h2.c:5215,1
    - Dst: srv_add_idle
      Src: /src/haproxy/src/mux_h2.c:5216,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5226,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5230,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5231,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5233
      start: 5133
    functionDepth: 7
    functionLinenumber: 5133
    functionLinenumberEnd: 5233
    functionName: h2_io_cb
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_recv
    - TRACE_LEAVE
    - BUG_ON
    - h2_process
    - srv_add_idle
    - HA_SPIN_UNLOCK
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - conn_delete_from_tree
    - session_reinsert_idle_conn
    - h2_release
    - h2_send
    - b_data
    - session_detach_idle_conn
    - LIST_INLIST
    - ASSUME_NONNULL
    - objt_server
    - tasklet_free
    linkageType: ''
    returnType: struct task
    signature: struct task *h2_io_cb(struct task *t, void *ctx, unsigned int state)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/mux_h2.c:5242,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:5242,1
    - Dst: bl_avail
      Src: /src/haproxy/src/mux_h2.c:5242,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5245,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5248,1
    - Dst: h2_process_demux
      Src: /src/haproxy/src/mux_h2.c:5252,1
    - Dst: h2_recv_allowed
      Src: /src/haproxy/src/mux_h2.c:5262,1
    - Dst: h2_recv
      Src: /src/haproxy/src/mux_h2.c:5266,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5267,1
    - Dst: h2_may_demux
      Src: /src/haproxy/src/mux_h2.c:5267,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:5270,1
    - Dst: session_add_glitch_ctr
      Src: /src/haproxy/src/mux_h2.c:5273,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_h2.c:5276,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:5281,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:5283,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:5289,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_h2.c:5290,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_h2.c:5294,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5304,1
    - Dst: h2c_send_goaway_error
      Src: /src/haproxy/src/mux_h2.c:5308,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_h2.c:5323,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:5326,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:5327,1
    - Dst: h2s_notify_recv
      Src: /src/haproxy/src/mux_h2.c:5328,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:5329,1
    - Dst: h2c_read0_pending
      Src: /src/haproxy/src/mux_h2.c:5333,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5335,1
    - Dst: h2c_reached_last_stream
      Src: /src/haproxy/src/mux_h2.c:5335,1
    - Dst: h2_wake_some_streams
      Src: /src/haproxy/src/mux_h2.c:5336,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5338,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5340,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5341,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h2.c:5347,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h2.c:5348,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5349,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h2.c:5355,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h2.c:5356,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5357,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5361,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:5362,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:5366,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:5367,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:5368,1
    - Dst: h2_release_mbuf
      Src: /src/haproxy/src/mux_h2.c:5369,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:5371,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:5374,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:5377,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5379,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 81
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5381
      start: 5239
    functionDepth: 8
    functionLinenumber: 5239
    functionLinenumberEnd: 5381
    functionName: h2_process
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - unlikely
    - h2_recv
    - br_data
    - TRACE_ENTER
    - h2_release
    - h2c_restart_reading
    - eb32_next
    - h2c_reached_last_stream
    - HA_SPIN_LOCK
    - se_fl_test
    - h2_may_demux
    - tick_remain
    - session_add_glitch_ctr
    - statistical_prng_range
    - eb_is_empty
    - h2_release_buf
    - TRACE_DEVEL
    - container_of
    - h2c_read0_pending
    - h2_send
    - eb32_lookup_ge
    - h2_process_demux
    - TRACE_LEAVE
    - h2c_send_goaway_error
    - conn_delete_from_tree
    - b_data
    - h2s_notify_recv
    - h2_recv_allowed
    - h2_release_mbuf
    - bl_avail
    - TRACE_STATE
    - HA_SPIN_UNLOCK
    - MAX
    - LIST_ISEMPTY
    - b_reset
    - MIN
    - tick_isset
    - h2_wake_some_streams
    - h2c_update_timeout
    linkageType: ''
    returnType: int
    signature: int h2_process(struct h2c *h2c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5389,1
    - Dst: h2_process
      Src: /src/haproxy/src/mux_h2.c:5390,1
    - Dst: h2_wake_some_streams
      Src: /src/haproxy/src/mux_h2.c:5392,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:5399,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/mux_h2.c:5399,1
    - Dst: h2c_is_dead
      Src: /src/haproxy/src/mux_h2.c:5399,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5400,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5401,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5407
      start: 5384
    functionDepth: 9
    functionLinenumber: 5384
    functionLinenumberEnd: 5407
    functionName: h2_wake
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TRACE_LEAVE
    - h2_process
    - TRACE_DEVEL
    - TRACE_ENTER
    - h2_release
    - h2c_is_dead
    - h2_wake_some_streams
    - conn_reverse_in_preconnect
    linkageType: ''
    returnType: int
    signature: int h2_wake(struct connection *conn)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h2.c:5418,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5420,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h2.c:5424,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5431,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5437,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5438,1
    - Dst: h2c_may_expire
      Src: /src/haproxy/src/mux_h2.c:5442,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5446,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:5453,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5454,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:5455,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5456,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h2.c:5464,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_h2.c:5466,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5468,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5471,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:5479,1
    - Dst: h2c_may_expire
      Src: /src/haproxy/src/mux_h2.c:5479,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:5481,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:5482,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:5483,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:5484,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:5485,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:5486,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:5490,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_h2.c:5494,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5498,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:5503,1
    - Dst: h2_wake_some_streams
      Src: /src/haproxy/src/mux_h2.c:5506,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:5508,1
    - Dst: h2c_send_goaway_error
      Src: /src/haproxy/src/mux_h2.c:5515,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:5518,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/mux_h2.c:5518,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_h2.c:5522,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:5522,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_h2.c:5522,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5523,1
    - Dst: struct h2c*::conn::xprt::snd_buf
      Src: /src/haproxy/src/mux_h2.c:5524,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5524,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:5527,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5528,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_h2.c:5530,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:5536,1
    - Dst: br_single
      Src: /src/haproxy/src/mux_h2.c:5542,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h2.c:5547,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h2.c:5548,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5549,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5553,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5555,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5415
    functionDepth: 7
    functionLinenumber: 5415
    functionLinenumberEnd: 5557
    functionName: h2_timeout_task
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - struct h2c*::conn::xprt::snd_buf
    - br_data
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - h2_release
    - h2c_report_term_evt
    - br_single
    - offer_buffers
    - br_head
    - task_destroy
    - conn_xprt_ready
    - TRACE_DEVEL
    - h2_send
    - tick_is_expired
    - conn_idle_ping
    - TRACE_LEAVE
    - tasklet_wakeup
    - conn_delete_from_tree
    - h2c_send_goaway_error
    - br_del_head
    - b_free
    - b_data
    - b_size
    - tick_add_ifset
    - b_del
    - h2c_may_expire
    - TRACE_STATE
    - HA_SPIN_UNLOCK
    - tick_isset
    - session_detach_idle_conn
    - h2_wake_some_streams
    - h2c_error
    linkageType: ''
    returnType: struct task
    signature: struct task *h2_timeout_task(struct task *t, void *context, unsigned
      int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5573,1
    - Dst: h2c_bck_stream_new
      Src: /src/haproxy/src/mux_h2.c:5574,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5576,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/mux_h2.c:5581,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/mux_h2.c:5582,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - conn
    - sd
    - sess
    argTypes:
    - struct connection*
    - struct sedesc*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5586
      start: 5568
    functionDepth: 5
    functionLinenumber: 5568
    functionLinenumberEnd: 5586
    functionName: h2_attach
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - xprt_set_used
    - h2c_bck_stream_new
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - HA_ATOMIC_AND
    linkageType: ''
    returnType: int
    signature: int h2_attach(struct connection *conn, struct sedesc *sd, struct session
      *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_h2.c:5599,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:5601,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:5602,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:5603,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:5604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5607
      start: 5593
    functionDepth: 1
    functionLinenumber: 5593
    functionLinenumberEnd: 5607
    functionName: h2_get_first_sc
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - eb32_first
    - h2s_sc
    - container_of
    - eb32_next
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *h2_get_first_sc(const struct connection *conn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:5626,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5628,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:5630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - conn
    - mux_ctl
    - output
    argTypes:
    - struct connection*
    - enum mux_ctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5648
      start: 5609
    functionDepth: 1
    functionLinenumber: 5609
    functionLinenumberEnd: 5648
    functionName: h2_ctl
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - TRACE_DEVEL
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int h2_ctl(struct connection *conn, enum mux_ctl_type mux_ctl, void
      *output)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h2.c:5653,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_h2.c:5664,1
    - Dst: h2_dump_h2s_info
      Src: /src/haproxy/src/mux_h2.c:5667,1
    - Dst: h2_dump_h2c_info
      Src: /src/haproxy/src/mux_h2.c:5670,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:5673,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h2.c:5675,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - sc
    - mux_sctl
    - output
    argTypes:
    - struct stconn*
    - enum mux_sctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5686
      start: 5650
    functionDepth: 2
    functionLinenumber: 5650
    functionLinenumberEnd: 5686
    functionName: h2_sctl
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - tevt_evts2str
    - chunk_appendf
    - get_trash_chunk
    - __sc_mux_strm
    - h2_dump_h2c_info
    - h2_dump_h2s_info
    linkageType: ''
    returnType: int
    signature: int h2_sctl(struct stconn *sc, enum mux_sctl_type mux_sctl, void *output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5695,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5696,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:5697,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5698,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5701
      start: 5691
    functionDepth: 4
    functionLinenumber: 5691
    functionLinenumberEnd: 5701
    functionName: h2_destroy
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - BUG_ON
    - eb_is_empty
    - TRACE_ENTER
    - h2_release
    linkageType: ''
    returnType: void
    signature: void h2_destroy(void *ctx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5712,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5715,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:5725,1
    - Dst: h2_frt_has_too_many_sc
      Src: /src/haproxy/src/mux_h2.c:5729,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:5732,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5742,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:5746,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:5747,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:5757,1
    - Dst: h2s_destroy
      Src: /src/haproxy/src/mux_h2.c:5760,1
    - Dst: h2c_is_dead
      Src: /src/haproxy/src/mux_h2.c:5762,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5765,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:5766,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:5766,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:5767,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/mux_h2.c:5772,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5774,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:5775,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_h2.c:5777,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_h2.c:5777,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5778,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_h2.c:5785,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_h2.c:5786,1
    - Dst: session_check_idle_conn
      Src: /src/haproxy/src/mux_h2.c:5789,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_h2.c:5790,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_h2.c:5790,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5791,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5799,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5804,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/mux_h2.c:5809,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_h2.c:5816,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_h2.c:5817,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_h2.c:5819,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h2.c:5819,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_h2.c:5821,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_h2.c:5821,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5822,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5829,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/mux_h2.c:5833,1
    - Dst: h2_avail_streams
      Src: /src/haproxy/src/mux_h2.c:5834,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h2.c:5834,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:5835,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/mux_h2.c:5836,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_h2.c:5836,1
    - Dst: h2c_is_dead
      Src: /src/haproxy/src/mux_h2.c:5847,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5849,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5850,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:5853,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5854,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5857,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 82
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5858
      start: 5706
    functionDepth: 4
    functionLinenumber: 5706
    functionLinenumberEnd: 5858
    functionName: h2_detach
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - br_data
    - TRACE_ENTER
    - h2_release
    - h2c_restart_reading
    - h2c_is_dead
    - HA_ATOMIC_OR
    - objt_server
    - eb_is_empty
    - h2_frt_has_too_many_sc
    - TRACE_DEVEL
    - h2_avail_streams
    - srv_add_to_avail_list
    - destroy
    - conn_idle_ping
    - TRACE_LEAVE
    - CALL_MUX_NO_RET
    - LIST_INLIST
    - session_check_idle_conn
    - __objt_server
    - session_add_conn
    - srv_add_to_idle_list
    - h2s_destroy
    - tick_isset
    - ceb_intree
    - xprt_set_idle
    - h2c_update_timeout
    - session_unown_conn
    linkageType: ''
    returnType: void
    signature: void h2_detach(struct sedesc *sd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5868,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:5878,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5880,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:5881,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5882,1
    - Dst: h2s_is_forwardable_abort
      Src: /src/haproxy/src/mux_h2.c:5884,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5885,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5886,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5893,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5894,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5905,1
    - Dst: h2s_send_rst_stream
      Src: /src/haproxy/src/mux_h2.c:5909,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:5913,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:5914,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5917,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:5926,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:5928,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:5930,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5932,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - h2s
    - reason
    argTypes:
    - struct h2s*
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5934
      start: 5861
    functionDepth: 4
    functionLinenumber: 5861
    functionLinenumberEnd: 5934
    functionName: h2_do_shutr
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2s_send_rst_stream
    - TRACE_STATE
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - LIST_APPEND
    - h2s_close
    - h2s_is_forwardable_abort
    - LIST_INLIST
    - h2s_error
    - se_fl_test
    - h2c_error
    linkageType: ''
    returnType: void
    signature: void h2_do_shutr(struct h2s *h2s, struct se_abort_info *reason)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5945,1
    - Dst: h2s_is_forwardable_abort
      Src: /src/haproxy/src/mux_h2.c:5948,1
    - Dst: h2_send_empty_data_es
      Src: /src/haproxy/src/mux_h2.c:5954,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:5958,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:5967,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5969,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:5970,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5971,1
    - Dst: h2s_is_forwardable_abort
      Src: /src/haproxy/src/mux_h2.c:5973,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5974,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5975,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5981,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5982,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5989,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5990,1
    - Dst: h2s_send_rst_stream
      Src: /src/haproxy/src/mux_h2.c:5994,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:5997,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:6001,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6003,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:6016,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:6018,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:6020,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6022,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 2
    argNames:
    - h2s
    - reason
    argTypes:
    - struct h2s*
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6024
      start: 5938
    functionDepth: 4
    functionLinenumber: 5938
    functionLinenumberEnd: 6024
    functionName: h2_do_shutw
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2s_send_rst_stream
    - TRACE_STATE
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - LIST_APPEND
    - h2s_close
    - h2c_error
    - h2s_is_forwardable_abort
    - LIST_INLIST
    - h2s_error
    - h2_send_empty_data_es
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void h2_do_shutw(struct h2s *h2s, struct se_abort_info *reason)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:6035,1
    - Dst: h2_do_shutw
      Src: /src/haproxy/src/mux_h2.c:6043,1
    - Dst: h2_do_shutr
      Src: /src/haproxy/src/mux_h2.c:6046,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:6050,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:6052,1
    - Dst: h2s_destroy
      Src: /src/haproxy/src/mux_h2.c:6053,1
    - Dst: h2c_is_dead
      Src: /src/haproxy/src/mux_h2.c:6054,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:6055,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6061,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6063
      start: 6030
    functionDepth: 5
    functionLinenumber: 6030
    functionLinenumberEnd: 6063
    functionName: h2_deferred_shut
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_do_shutr
    - h2_remove_from_list
    - h2s_sc
    - TRACE_LEAVE
    - TRACE_ENTER
    - h2_release
    - h2c_is_dead
    - h2_do_shutw
    - h2s_destroy
    linkageType: ''
    returnType: struct task
    signature: struct task *h2_deferred_shut(struct task *t, void *ctx, unsigned int
      state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h2.c:6067,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:6069,1
    - Dst: h2_do_shutw
      Src: /src/haproxy/src/mux_h2.c:6072,1
    - Dst: h2_do_shutr
      Src: /src/haproxy/src/mux_h2.c:6075,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6076,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sc
    - mode
    - reason
    argTypes:
    - struct stconn*
    - unsigned int
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6077
      start: 6065
    functionDepth: 5
    functionLinenumber: 6065
    functionLinenumberEnd: 6077
    functionName: h2_shut
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_do_shutr
    - TRACE_LEAVE
    - TRACE_ENTER
    - __sc_mux_strm
    - h2_do_shutw
    linkageType: ''
    returnType: void
    signature: void h2_shut(struct stconn *sc, unsigned int mode, struct se_abort_info
      *reason)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/mux_h2.c:6135,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_h2.c:6136,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:6148,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6151,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6161,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6165,1
    - Dst: h2_peek_frame_hdr
      Src: /src/haproxy/src/mux_h2.c:6166,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6176,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6177,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6178,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:6179,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6185,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6186,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6187,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:6188,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:6192,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6194,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6195,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6196,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6204,1
    - Dst: b_move
      Src: /src/haproxy/src/mux_h2.c:6212,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/mux_h2.c:6212,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6216,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_h2.c:6224,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_h2.c:6224,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/mux_h2.c:6226,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:6228,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6229,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:6232,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_h2.c:6232,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:6233,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:6233,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6240,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6241,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6242,1
    - Dst: read_n32
      Src: /src/haproxy/src/mux_h2.c:6246,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6248,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6249,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6250,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:6251,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:6259,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6260,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:6270,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:6271,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6272,1
    - Dst: hpack_decode_frame
      Src: /src/haproxy/src/mux_h2.c:6278,1
    - Dst: TRACE_ENABLED
      Src: /src/haproxy/src/mux_h2.c:6283,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:6290,1
    - Dst: h2_phdr_to_ist
      Src: /src/haproxy/src/mux_h2.c:6292,1
    - Dst: h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:6295,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6296,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6301,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6302,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6303,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:6311,1
    - Dst: h2_make_htx_response
      Src: /src/haproxy/src/mux_h2.c:6341,1
    - Dst: h2_make_htx_request
      Src: /src/haproxy/src/mux_h2.c:6343,1
    - Dst: htx_free_space
      Src: /src/haproxy/src/mux_h2.c:6346,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6348,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6349,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6383,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6384,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6392,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6393,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6412,1
    - Dst: b_move
      Src: /src/haproxy/src/mux_h2.c:6413,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/mux_h2.c:6413,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6414,1
    - Dst: b_sub
      Src: /src/haproxy/src/mux_h2.c:6415,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:6418,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:6418,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6420,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:6425,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/mux_h2.c:6426,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6427,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6435,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6436,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6437,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6452,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6453,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6454,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:6455,1
    - Dst: h2_make_htx_trailers
      Src: /src/haproxy/src/mux_h2.c:6460,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6461,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6462,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 219
    argCount: 5
    argNames:
    - h2c
    - rxbuf
    - flags
    - body_len
    - upgrade_protocol
    argTypes:
    - struct h2c*
    - struct buffer*
    - uint32_t*
    - unsigned long long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6468
      start: 6133
    functionDepth: 3
    functionLinenumber: 6133
    functionLinenumberEnd: 6468
    functionName: h2c_dec_hdrs
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 2
    functionsReached:
    - unlikely
    - h2_peek_frame_hdr
    - alloc_trash_chunk
    - TRACE_ENTER
    - get_trash_chunk
    - b_move
    - h2_get_buf
    - b_full
    - HA_ATOMIC_INC
    - htx_is_empty
    - h2_trace_header
    - ist
    - TRACE_DEVEL
    - hpack_decode_frame
    - b_peek_ofs
    - h2c_report_glitch
    - htx_free_space
    - b_wrap
    - htx_from_buf
    - h2_make_htx_response
    - b_head
    - b_orig
    - memcpy
    - free_trash_chunk
    - TRACE_LEAVE
    - TRACE_ENABLED
    - b_data
    - b_size
    - b_del
    - h2_make_htx_request
    - htx_to_buf
    - TRACE_STATE
    - b_sub
    - read_n32
    - h2_phdr_to_ist
    - h2_make_htx_trailers
    - h2c_error
    - isttest
    linkageType: ''
    returnType: int
    signature: int h2c_dec_hdrs(struct h2c *h2c, struct buffer *rxbuf, uint32_t *flags,
      unsigned long long *body_len, char *upgrade_protocol)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:6488,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:6497,1
    - Dst: h2s_may_append_to_rxbuf
      Src: /src/haproxy/src/mux_h2.c:6497,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:6497,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6499,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:6505,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:6505,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6508,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:6511,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6518,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6519,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/mux_h2.c:6524,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:6526,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6530,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_h2.c:6537,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/mux_h2.c:6541,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:6541,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_h2.c:6541,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:6542,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:6544,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:6551,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6555,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6568,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6569,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:6572,1
    - Dst: htx_set_eom
      Src: /src/haproxy/src/mux_h2.c:6588,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:6594,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6595,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:6599,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6600,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 95
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6602
      start: 6479
    functionDepth: 3
    functionLinenumber: 6479
    functionLinenumberEnd: 6602
    functionName: h2_frt_transfer_data
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - h2s_get_rxbuf
    - TRACE_ENTER
    - b_contig_data
    - TRACE_DATA
    - htx_add_data
    - h2_get_buf
    - ist2
    - h2s_rxbuf_tail
    - htx_from_buf
    - b_head
    - TRACE_LEAVE
    - htx_set_eom
    - b_data
    - b_del
    - htx_free_data_space
    - h2s_may_append_to_rxbuf
    - htx_to_buf
    - TRACE_STATE
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int h2_frt_transfer_data(struct h2s *h2s)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:6626,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:6632,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/mux_h2.c:6632,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:6633,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6642,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6643,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6644,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h2.c:6648,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h2.c:6649,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6653,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h2.c:6654,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6661,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6665,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6672,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6683,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6689,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6692,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:6694,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:6696,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6699,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_h2.c:6703,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h2.c:6706,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:6706,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:6706,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6707,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h2.c:6710,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6710,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:6717,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:6718,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:6732,1
    - Dst: hpack_encode_int_status
      Src: /src/haproxy/src/mux_h2.c:6742,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6743,1
    - Dst: h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:6751,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6751,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6751,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/mux_h2.c:6751,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6752,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6759,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6759,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6760,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6760,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6761,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6761,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6762,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6762,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6763,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6763,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6770,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6770,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:6773,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6774,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6776,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:6783,1
    - Dst: h2_fragment_headers
      Src: /src/haproxy/src/mux_h2.c:6786,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6788,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:6794,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:6800,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:6802,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:6803,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:6804,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:6810,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:6810,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:6814,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:6827,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:6844,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:6848,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6853,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:6856,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6861,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:6867,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 177
    argCount: 2
    argNames:
    - h2s
    - htx
    argTypes:
    - struct h2s*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6870
      start: 6613
    functionDepth: 4
    functionLinenumber: 6613
    functionLinenumberEnd: 6870
    functionName: h2s_snd_fhdrs
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - h2s_sc
    - h2_set_frame_size
    - TRACE_ENTER
    - h2_fragment_headers
    - htx_get_blk_ptr
    - b_room
    - hpack_encode_int_status
    - h2_get_buf
    - br_tail
    - b_contig_space
    - se_fl_test
    - htx_get_blk_name
    - htx_is_empty
    - h2_trace_header
    - ist
    - br_tail_add
    - b_tail
    - htx_get_blk_type
    - isteq
    - b_make
    - htx_get_head_blk
    - htx_get_next_blk
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - memcpy
    - b_add
    - h2s_close
    - b_data
    - b_slow_realign
    - chunk_reset
    - ultoa_r
    - htx_get_blk_value
    - b_space_wraps
    - TRACE_STATE
    - BUG_ON
    - h2_encode_header
    - htx_remove_blk
    - h2s_error
    - write_n32
    - TRACE_USER
    linkageType: ''
    returnType: size_t
    signature: size_t h2s_snd_fhdrs(struct h2s *h2s, struct htx *htx)
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:6896,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:6902,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/mux_h2.c:6902,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:6903,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6912,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6913,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6914,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h2.c:6918,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h2.c:6919,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:6922,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6923,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h2.c:6927,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6927,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6940,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h2.c:6945,1
    - Dst: iststop
      Src: /src/haproxy/src/mux_h2.c:6945,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6946,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6948,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6952,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6955,1
    - Dst: istadv
      Src: /src/haproxy/src/mux_h2.c:6961,1
    - Dst: istfind
      Src: /src/haproxy/src/mux_h2.c:6961,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_h2.c:6962,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6965,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6965,1
    - Dst: iststop
      Src: /src/haproxy/src/mux_h2.c:6971,1
    - Dst: istpad
      Src: /src/haproxy/src/mux_h2.c:6973,1
    - Dst: isttrim
      Src: /src/haproxy/src/mux_h2.c:6973,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6976,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6976,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6982,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h2.c:6983,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/mux_h2.c:6984,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/mux_h2.c:6985,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6990,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6991,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6996,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:7002,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:7005,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h2.c:7006,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7010,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7016,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:7018,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:7020,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7023,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_h2.c:7027,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h2.c:7030,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:7030,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:7030,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7031,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h2.c:7034,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7034,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:7041,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:7042,1
    - Dst: hpack_encode_method
      Src: /src/haproxy/src/mux_h2.c:7046,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7047,1
    - Dst: h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:7052,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7052,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7052,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7054,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:7064,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:7067,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7067,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7068,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7070,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:7095,1
    - Dst: istadv
      Src: /src/haproxy/src/mux_h2.c:7096,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:7099,1
    - Dst: istadv
      Src: /src/haproxy/src/mux_h2.c:7103,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:7110,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:7110,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7122,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7124,1
    - Dst: hpack_encode_scheme
      Src: /src/haproxy/src/mux_h2.c:7127,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7129,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:7135,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7135,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7136,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7138,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:7146,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7148,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7150,1
    - Dst: hpack_encode_path
      Src: /src/haproxy/src/mux_h2.c:7153,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7155,1
    - Dst: h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:7160,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7160,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7160,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:7165,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7166,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:7167,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:7168,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7168,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7169,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7171,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7187,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7187,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7188,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7188,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7189,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7189,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7190,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7190,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7191,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7191,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7192,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7192,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7195,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7195,1
    - Dst: istist
      Src: /src/haproxy/src/mux_h2.c:7199,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7199,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:7200,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7202,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7209,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7209,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:7212,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7212,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7214,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:7221,1
    - Dst: h2_fragment_headers
      Src: /src/haproxy/src/mux_h2.c:7224,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7226,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:7232,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:7238,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:7240,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:7241,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:7242,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:7248,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:7248,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7252,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:7265,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:7271,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:7280,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7285,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:7291,1
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 267
    argCount: 2
    argNames:
    - h2s
    - htx
    argTypes:
    - struct h2s*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7294
      start: 6881
    functionDepth: 4
    functionLinenumber: 6881
    functionLinenumberEnd: 7294
    functionName: h2s_snd_bhdrs
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - istadv
    - TRACE_USER
    - h2s_sc
    - h2_set_frame_size
    - TRACE_ENTER
    - h2_fragment_headers
    - htx_get_blk_ptr
    - h2_get_buf
    - br_tail
    - htx_sl_req_meth
    - objt_server
    - b_contig_space
    - istlen
    - htx_get_blk_name
    - hpack_encode_scheme
    - h2_trace_header
    - se_fl_test
    - htx_is_empty
    - ist
    - ist2
    - br_tail_add
    - b_tail
    - htx_get_blk_type
    - isteq
    - istfind
    - b_make
    - htx_sl_req_uri
    - htx_get_head_blk
    - htx_get_next_blk
    - isteqi
    - TRACE_PROTO
    - isttrim
    - TRACE_ERROR
    - memcpy
    - istpad
    - b_add
    - b_data
    - b_slow_realign
    - chunk_reset
    - hpack_encode_path
    - htx_get_blk_value
    - b_space_wraps
    - iststop
    - TRACE_STATE
    - BUG_ON
    - hpack_encode_method
    - h2_encode_header
    - htx_remove_blk
    - istist
    - h2s_error
    - write_n32
    - isttest
    linkageType: ''
    returnType: size_t
    signature: size_t h2s_snd_bhdrs(struct h2s *h2s, struct htx *htx)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:7315,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:7317,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7322,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7332,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7342,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:7346,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:7347,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:7352,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:7353,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:7354,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:7360,1
    - Dst: br_count
      Src: /src/haproxy/src/mux_h2.c:7362,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7367,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:7371,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7374,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:7395,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:7395,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:7395,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/mux_h2.c:7396,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:7397,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7400,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:7407,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7408,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:7408,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:7409,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:7409,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7410,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:7414,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7419,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h2.c:7434,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_h2.c:7435,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:7438,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:7439,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:7442,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:7455,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h2.c:7463,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:7463,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:7463,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7464,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h2.c:7467,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7467,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:7471,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7475,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:7480,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:7481,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:7496,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:7498,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:7499,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:7500,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7501,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:7508,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:7509,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7519,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:7520,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7521,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:7528,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7532,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7539,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:7547,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h2.c:7547,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:7554,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:7559,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7560,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/mux_h2.c:7571,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:7578,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:7586,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:7589,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7593,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7603,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 200
    argCount: 3
    argNames:
    - h2s
    - buf
    - count
    argTypes:
    - struct h2s*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7605
      start: 7301
    functionDepth: 3
    functionLinenumber: 7301
    functionLinenumberEnd: 7605
    functionName: h2s_make_data
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - h2_remove_from_list
    - h2_set_frame_size
    - TRACE_ENTER
    - htx_nbblks
    - LIST_APPEND
    - b_room
    - htx_get_blk_ptr
    - h2_get_buf
    - br_tail
    - b_contig_space
    - htx_is_empty
    - TRACE_DEVEL
    - br_tail_add
    - b_tail
    - htx_get_blk_type
    - b_make
    - br_count
    - htx_get_head_blk
    - htx_from_buf
    - h2s_mws
    - TRACE_PROTO
    - b_head
    - TRACE_LEAVE
    - TRACE_ERROR
    - memcpy
    - b_add
    - h2s_close
    - b_data
    - b_size
    - b_slow_realign
    - LIST_INLIST
    - b_space_wraps
    - TRACE_STATE
    - htx_cut_data_blk
    - htx_remove_blk
    - h2s_error
    - write_n32
    linkageType: ''
    returnType: size_t
    signature: size_t h2s_make_data(struct h2s *h2s, struct buffer *buf, size_t count)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:7624,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:7626,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7629,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:7631,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:7632,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:7633,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_h2.c:7644,1
    - Dst: h2_send_empty_data_es
      Src: /src/haproxy/src/mux_h2.c:7651,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:7657,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7663,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:7664,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/mux_h2.c:7669,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7673,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - h2s
    - buf
    - count
    argTypes:
    - struct h2s*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7675
      start: 7614
    functionDepth: 3
    functionLinenumber: 7614
    functionLinenumberEnd: 7675
    functionName: h2s_skip_data
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - htx_from_buf
    - htx_cut_data_blk
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - h2s_close
    - htx_get_blk_type
    - htx_remove_blk
    - htx_is_unique_blk
    - h2_send_empty_data_es
    - htx_is_empty
    - htx_get_head_blk
    linkageType: ''
    returnType: size_t
    signature: size_t h2s_skip_data(struct h2s *h2s, struct buffer *buf, size_t count)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:7698,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:7708,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/mux_h2.c:7708,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:7709,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:7717,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:7718,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h2.c:7722,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h2.c:7723,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:7727,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7734,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:7736,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:7738,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7741,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_h2.c:7745,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h2.c:7748,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:7748,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:7748,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7749,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h2.c:7752,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7752,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:7759,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:7760,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7768,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7768,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7769,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7769,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7770,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7770,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7771,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7771,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7772,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7772,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7773,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7773,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7774,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7774,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7775,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7775,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:7782,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7783,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7785,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:7803,1
    - Dst: h2_fragment_headers
      Src: /src/haproxy/src/mux_h2.c:7806,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7808,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:7815,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:7816,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:7823,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:7829,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:7831,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:7832,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:7833,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7840,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:7843,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7848,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:7854,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 121
    argCount: 2
    argNames:
    - h2s
    - htx
    argTypes:
    - struct h2s*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7857
      start: 7686
    functionDepth: 4
    functionLinenumber: 7686
    functionLinenumberEnd: 7857
    functionName: h2s_make_trailers
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - h2_set_frame_size
    - TRACE_ENTER
    - h2_fragment_headers
    - h2_get_buf
    - br_tail
    - b_contig_space
    - htx_get_blk_name
    - ist
    - br_tail_add
    - b_tail
    - htx_get_blk_type
    - isteq
    - b_make
    - htx_get_head_blk
    - htx_get_next_blk
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - memcpy
    - b_add
    - h2s_close
    - b_data
    - b_slow_realign
    - chunk_reset
    - htx_get_blk_value
    - b_space_wraps
    - TRACE_STATE
    - h2_encode_header
    - htx_remove_blk
    - h2s_error
    - write_n32
    linkageType: ''
    returnType: size_t
    signature: size_t h2s_make_trailers(struct h2s *h2s, struct htx *htx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h2.c:7866,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:7869,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:7871,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:7872,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7878,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7881,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:7883,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7885,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:7886,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7889,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:7890,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7894,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7896
      start: 7864
    functionDepth: 1
    functionLinenumber: 7864
    functionLinenumberEnd: 7896
    functionName: h2_subscribe
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_DEVEL
    - TRACE_ENTER
    - LIST_APPEND
    - __sc_mux_strm
    - LIST_INLIST
    linkageType: ''
    returnType: int
    signature: int h2_subscribe(struct stconn *sc, int event_type, struct wait_event
      *es)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h2.c:7904,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:7906,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:7908,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:7909,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7916,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7919,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:7922,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7925,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7927
      start: 7902
    functionDepth: 3
    functionLinenumber: 7902
    functionLinenumberEnd: 7927
    functionName: h2_unsubscribe
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_remove_from_list
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_DEVEL
    - TRACE_ENTER
    - __sc_mux_strm
    linkageType: ''
    returnType: int
    signature: int h2_unsubscribe(struct stconn *sc, int event_type, struct wait_event
      *es)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h2.c:7944,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:7953,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:7958,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:7962,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7963,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:7967,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:7971,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7975,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/mux_h2.c:7975,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:7977,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:7978,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_h2.c:7979,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7979,1
    - Dst: htx_xfer
      Src: /src/haproxy/src/mux_h2.c:7983,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:7985,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:7986,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7995,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:7995,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_h2.c:7996,1
    - Dst: _h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:7996,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_h2.c:7997,1
    - Dst: _h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:7997,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:7998,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8002,1
    - Dst: h2s_put_rxbuf
      Src: /src/haproxy/src/mux_h2.c:8003,1
    - Dst: h2s_rxbuf_cnt
      Src: /src/haproxy/src/mux_h2.c:8011,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:8012,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_h2.c:8013,1
    - Dst: se_expect_data
      Src: /src/haproxy/src/mux_h2.c:8020,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_h2.c:8023,1
    - Dst: h2s_propagate_term_flags
      Src: /src/haproxy/src/mux_h2.c:8024,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:8033,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_h2.c:8035,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:8035,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:8037,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8039
      start: 7942
    functionDepth: 3
    functionLinenumber: 7942
    functionLinenumberEnd: 8039
    functionName: h2_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - TRACE_ENTER
    - h2c_restart_reading
    - h2s_rxbuf_head
    - offer_buffers
    - se_fl_test
    - htx_is_empty
    - h2s_propagate_term_flags
    - se_expect_data
    - htx_used_space
    - h2s_put_rxbuf
    - BUG_ON_HOT
    - htx_from_buf
    - se_fl_set
    - TRACE_LEAVE
    - b_free
    - b_data
    - b_size
    - htx_to_buf
    - _h2s_rxbuf_head
    - __sc_mux_strm
    - htx_xfer
    - se_fl_clr
    - h2s_rxbuf_cnt
    linkageType: ''
    returnType: size_t
    signature: size_t h2_rcv_buf(struct stconn *sc, struct buffer *buf, size_t count,
      int flags)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h2.c:8048,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:8057,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:8064,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:8064,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:8065,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8066,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8068,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:8075,1
    - Dst: h2c_bck_send_preface_and_settings
      Src: /src/haproxy/src/mux_h2.c:8082,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8086,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:8091,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8092,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:8096,1
    - Dst: h2c_get_next_sid
      Src: /src/haproxy/src/mux_h2.c:8102,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:8105,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8106,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/mux_h2.c:8110,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/mux_h2.c:8114,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:8118,1
    - Dst: htx_get_head
      Src: /src/haproxy/src/mux_h2.c:8119,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/mux_h2.c:8120,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:8121,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:8122,1
    - Dst: h2s_snd_bhdrs
      Src: /src/haproxy/src/mux_h2.c:8127,1
    - Dst: h2s_snd_fhdrs
      Src: /src/haproxy/src/mux_h2.c:8142,1
    - Dst: h2s_skip_data
      Src: /src/haproxy/src/mux_h2.c:8155,1
    - Dst: h2s_make_data
      Src: /src/haproxy/src/mux_h2.c:8157,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:8159,1
    - Dst: h2s_make_trailers
      Src: /src/haproxy/src/mux_h2.c:8170,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:8180,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8199,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:8200,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:8201,1
    - Dst: h2s_send_rst_stream
      Src: /src/haproxy/src/mux_h2.c:8202,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:8203,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:8206,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8210,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:8211,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:8212,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8221,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8223,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:8224,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:8230,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8231,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:8234,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 130
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8236
      start: 8046
    functionDepth: 7
    functionLinenumber: 8046
    functionLinenumberEnd: 8236
    functionName: h2_snd_buf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - h2_remove_from_list
    - h2s_skip_data
    - se_fl_set_error
    - TRACE_ENTER
    - htx_get_head
    - htx_is_empty
    - eb32_insert
    - h2c_bck_send_preface_and_settings
    - TRACE_DEVEL
    - htx_get_blk_type
    - h2_send
    - h2s_snd_bhdrs
    - h2s_make_data
    - h2s_send_rst_stream
    - h2s_make_trailers
    - h2s_snd_fhdrs
    - se_fl_set
    - htx_from_buf
    - TRACE_LEAVE
    - tasklet_wakeup
    - h2s_close
    - b_data
    - LIST_INLIST
    - se_report_term_evt
    - htx_to_buf
    - htx_get_blk
    - eb32_delete
    - h2c_get_next_sid
    - __sc_mux_strm
    - LIST_ISEMPTY
    - htx_remove_blk
    linkageType: ''
    returnType: size_t
    signature: size_t h2_snd_buf(struct stconn *sc, struct buffer *buf, size_t count,
      int flags)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h2.c:8240,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:8245,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8251,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:8264,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:8264,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:8265,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8266,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8268,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:8275,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:8277,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:8278,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:8279,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8281,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8287,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:8292,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:8293,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:8302,1
    - Dst: br_count
      Src: /src/haproxy/src/mux_h2.c:8304,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8310,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:8314,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8318,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:8322,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:8322,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8322,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:8323,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8328,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:8333,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:8333,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h2.c:8335,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8335,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:8338,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:8339,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8344,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:8349,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:8354,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:8354,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:8355,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:8355,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8362,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8365,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8366,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:8367,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_h2.c:8368,1
    - Dst: b_sub
      Src: /src/haproxy/src/mux_h2.c:8369,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8372,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8384,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:8385,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:8386,1
    - Dst: h2s_send_rst_stream
      Src: /src/haproxy/src/mux_h2.c:8387,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:8388,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:8391,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 121
    argCount: 4
    argNames:
    - sc
    - input
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8393
      start: 8238
    functionDepth: 4
    functionLinenumber: 8238
    functionLinenumberEnd: 8393
    functionName: h2_nego_ff
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - se_fl_set_error
    - TRACE_ENTER
    - LIST_APPEND
    - b_room
    - h2_get_buf
    - br_tail
    - b_contig_space
    - TRACE_DEVEL
    - br_tail_add
    - b_tail
    - br_count
    - h2s_send_rst_stream
    - h2s_mws
    - TRACE_LEAVE
    - memcpy
    - LIST_DEL_INIT
    - b_add
    - h2s_close
    - b_data
    - b_size
    - b_slow_realign
    - LIST_INLIST
    - se_report_term_evt
    - b_space_wraps
    - TRACE_STATE
    - b_sub
    - __sc_mux_strm
    - LIST_ISEMPTY
    - write_n32
    linkageType: ''
    returnType: size_t
    signature: size_t h2_nego_ff(struct stconn *sc, struct buffer *input, size_t count,
      unsigned int flags)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h2.c:8397,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:8405,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:8410,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8410,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:8424,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:8427,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:8430,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:8431,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:8437,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:8440,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:8455,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:8458,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8460
      start: 8395
    functionDepth: 7
    functionLinenumber: 8395
    functionLinenumberEnd: 8460
    functionName: h2_done_ff
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_peek
    - TRACE_PROTO
    - h2_remove_from_list
    - TRACE_LEAVE
    - h2_set_frame_size
    - tasklet_wakeup
    - TRACE_ENTER
    - b_add
    - __sc_mux_strm
    - h2s_close
    - b_data
    - h2_send
    linkageType: ''
    returnType: size_t
    signature: size_t h2_done_ff(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - flags
    argTypes:
    - struct stconn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8465
      start: 8462
    functionDepth: 0
    functionLinenumber: 8462
    functionLinenumberEnd: 8465
    functionName: h2_resume_ff
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2_resume_ff(struct stconn *sc, unsigned int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:8480,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:8481,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8483,1
    - Dst: h2s_st_to_str
      Src: /src/haproxy/src/mux_h2.c:8484,1
    - Dst: h2s_rxbuf_cnt
      Src: /src/haproxy/src/mux_h2.c:8486,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8487,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:8488,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:8489,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8490,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8491,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:8492,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:8493,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8494,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8497,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8499,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:8499,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:8500,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8501,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:8502,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:8502,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8504,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8506,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_h2.c:8506,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h2.c:8506,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8509,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8511,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8513,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8514,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/mux_h2.c:8519,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8520,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - msg
    - h2s
    - pfx
    argTypes:
    - struct buffer*
    - struct h2s*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8523
      start: 8472
    functionDepth: 2
    functionLinenumber: 8472
    functionLinenumberEnd: 8523
    functionName: h2_dump_h2s_info
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - h2s_sc
    - b_orig
    - se_fl_get
    - chunk_appendf
    - h2s_st_to_str
    - h2s_rxbuf_tail
    - b_head_ofs
    - b_data
    - b_size
    - h2s_rxbuf_cnt
    - tevt_evts2str
    - h2s_rxbuf_head
    - resolve_sym_name
    linkageType: ''
    returnType: int
    signature: int h2_dump_h2s_info(struct buffer *msg, const struct h2s *h2s, const
      char *pfx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mux_h2.c:8544,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mux_h2.c:8547,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_h2.c:8550,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:8552,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:8554,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:8556,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_h2.c:8559,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:8560,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8561,1
    - Dst: h2c_st_to_str
      Src: /src/haproxy/src/mux_h2.c:8563,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h2.c:8565,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8568,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8570,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8574,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:8574,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:8575,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8575,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8578,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8580,1
    - Dst: br_head_idx
      Src: /src/haproxy/src/mux_h2.c:8581,1
    - Dst: br_tail_idx
      Src: /src/haproxy/src/mux_h2.c:8581,1
    - Dst: br_size
      Src: /src/haproxy/src/mux_h2.c:8581,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8582,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:8582,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:8583,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8583,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8584,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:8584,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:8585,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8585,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8587,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8589,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h2.c:8590,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_h2.c:8591,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h2.c:8591,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h2.c:8591,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - msg
    - h2c
    - pfx
    argTypes:
    - struct buffer*
    - struct h2c*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8595
      start: 8530
    functionDepth: 1
    functionLinenumber: 8530
    functionLinenumberEnd: 8595
    functionName: h2_dump_h2c_info
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - h2s_sc
    - chunk_appendf
    - TICKS_TO_MS
    - eb32_next
    - br_tail
    - tevt_evts2str
    - h2c_st_to_str
    - br_size
    - br_head
    - container_of
    - b_head_ofs
    - tick_is_expired
    - br_head_idx
    - human_time
    - b_orig
    - b_data
    - b_size
    - br_tail_idx
    - list_for_each_entry
    - eb32_first
    linkageType: ''
    returnType: int
    signature: int h2_dump_h2c_info(struct buffer *msg, struct h2c *h2c, const char
      *pfx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: h2_dump_h2c_info
      Src: /src/haproxy/src/mux_h2.c:8608,1
    - Dst: eb32_last
      Src: /src/haproxy/src/mux_h2.c:8610,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:8612,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8613,1
    - Dst: h2_dump_h2s_info
      Src: /src/haproxy/src/mux_h2.c:8614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - msg
    - conn
    argTypes:
    - struct buffer*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8618
      start: 8598
    functionDepth: 3
    functionLinenumber: 8598
    functionLinenumberEnd: 8618
    functionName: h2_show_fd
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - h2_dump_h2c_info
    - container_of
    - eb32_last
    - h2_dump_h2s_info
    linkageType: ''
    returnType: int
    signature: int h2_show_fd(struct buffer *msg, struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8633,1
    - Dst: h2_dump_h2s_info
      Src: /src/haproxy/src/mux_h2.c:8634,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8636,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8637,1
    - Dst: h2_dump_h2c_info
      Src: /src/haproxy/src/mux_h2.c:8638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - msg
    - sd
    - pfx
    argTypes:
    - struct buffer*
    - struct sedesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8640
      start: 8625
    functionDepth: 3
    functionLinenumber: 8625
    functionLinenumberEnd: 8640
    functionName: h2_show_sd
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - h2_dump_h2s_info
    - h2_dump_h2c_info
    linkageType: ''
    returnType: int
    signature: int h2_show_sd(struct buffer *msg, struct sedesc *sd, const char *pfx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:8661,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_h2.c:8668,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_h2.c:8669,1
    - Dst: fd_takeover
      Src: /src/haproxy/src/mux_h2.c:8674,1
    - Dst: struct connection*::xprt::takeover
      Src: /src/haproxy/src/mux_h2.c:8677,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_h2.c:8684,1
    - Dst: struct h2c*::conn::xprt::unsubscribe
      Src: /src/haproxy/src/mux_h2.c:8689,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/mux_h2.c:8699,1
    - Dst: task_kill
      Src: /src/haproxy/src/mux_h2.c:8700,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_h2.c:8714,1
    - Dst: struct h2c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h2.c:8720,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_h2.c:8725,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_h2.c:8729,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h2.c:8730,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - conn
    - orig_tid
    - release
    argTypes:
    - struct connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8732
      start: 8646
    functionDepth: 2
    functionLinenumber: 8646
    functionLinenumberEnd: 8732
    functionName: h2_takeover
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - __task_free
    - task_kill
    - tasklet_wakeup_on
    - tasklet_new
    - struct h2c*::conn::xprt::unsubscribe
    - fd_takeover
    - tasklet_free
    - __ha_barrier_store
    - LIST_INLIST
    - struct connection*::xprt::takeover
    - struct h2c*::conn::xprt::subscribe
    - task_new_here
    linkageType: ''
    returnType: int
    signature: int h2_takeover(struct connection *conn, int orig_tid, int release)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8745,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8751,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8757
      start: 8739
    functionDepth: 1
    functionLinenumber: 8739
    functionLinenumberEnd: 8757
    functionName: h2_parse_glitches_threshold
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int h2_parse_glitches_threshold(char **args, int section_type, struct
      proxy *curpx,\n\t\t\t\t       const struct proxy *defpx, const char *file, int
      line,\n\t\t\t\t       char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8764,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8767,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8773
      start: 8760
    functionDepth: 1
    functionLinenumber: 8760
    functionLinenumberEnd: 8773
    functionName: h2_parse_header_table_size
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int h2_parse_header_table_size(char **args, int section_type, struct
      proxy *curpx,\n                                      const struct proxy *defpx,
      const char *file, int line,\n                                      char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8782,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8790,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8796
      start: 8776
    functionDepth: 1
    functionLinenumber: 8776
    functionLinenumberEnd: 8796
    functionName: h2_parse_initial_window_size
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int h2_parse_initial_window_size(char **args, int section_type, struct
      proxy *curpx,\n                                        const struct proxy *defpx,
      const char *file, int line,\n                                        char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8805,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8810,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8812,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8814,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8821
      start: 8799
    functionDepth: 1
    functionLinenumber: 8799
    functionLinenumberEnd: 8821
    functionName: h2_parse_log_errors
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int h2_parse_log_errors(char **args, int section_type, struct proxy
      *curpx,\n                                        const struct proxy *defpx,
      const char *file, int line,\n                                        char **err)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8837,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8840,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8842,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8851,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8852,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8854,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8856,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8857,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8861,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8862,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8863,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8868,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8874,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8880
      start: 8824
    functionDepth: 1
    functionLinenumber: 8824
    functionLinenumberEnd: 8880
    functionName: h2_parse_max_concurrent_streams
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int h2_parse_max_concurrent_streams(char **args, int section_type,
      struct proxy *curpx,\n                                           const struct
      proxy *defpx, const char *file, int line,\n                                           char
      **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8889,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8895,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8901
      start: 8883
    functionDepth: 1
    functionLinenumber: 8883
    functionLinenumberEnd: 8901
    functionName: h2_parse_max_total_streams
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int h2_parse_max_total_streams(char **args, int section_type, struct
      proxy *curpx,\n\t\t\t\t      const struct proxy *defpx, const char *file, int
      line,\n\t\t\t\t      char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8911,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8913,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8915,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:8918,1
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8920,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8923,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8925
      start: 8904
    functionDepth: 1
    functionLinenumber: 8904
    functionLinenumberEnd: 8925
    functionName: h2_parse_max_frames_at_once
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - strcmp
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int h2_parse_max_frames_at_once(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8932,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8935,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8937,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8941
      start: 8928
    functionDepth: 1
    functionLinenumber: 8928
    functionLinenumberEnd: 8941
    functionName: h2_parse_max_frame_size
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int h2_parse_max_frame_size(char **args, int section_type, struct
      proxy *curpx,\n                                   const struct proxy *defpx,
      const char *file, int line,\n                                   char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8951,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8957,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/mux_h2.c:8958,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8963
      start: 8944
    functionDepth: 1
    functionLinenumber: 8944
    functionLinenumberEnd: 8963
    functionName: h2_parse_rxbuf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    - parse_size_err
    linkageType: ''
    returnType: int
    signature: "int h2_parse_rxbuf(char **args, int section_type, struct proxy *curpx,\n
      \                         const struct proxy *defpx, const char *file, int line,\n
      \                         char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8970,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8973,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8975,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8982
      start: 8966
    functionDepth: 1
    functionLinenumber: 8966
    functionLinenumberEnd: 8982
    functionName: h2_parse_zero_copy_fwd_snd
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int h2_parse_zero_copy_fwd_snd(char **args, int section_type, struct
      proxy *curpx,\n\t\t\t\t\t  const struct proxy *defpx, const char *file, int
      line,\n\t\t\t\t\t  char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_pool
      Src: /src/haproxy/src/mux_h2.c:9053,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mux_h2.c:9057,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:9063,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:9069,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:9075,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:9077,1
    - Dst: create_pool
      Src: /src/haproxy/src/mux_h2.c:9079,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mux_h2.c:9083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9087
      start: 9048
    functionDepth: 1
    functionLinenumber: 9048
    functionLinenumberEnd: 9087
    functionName: init_h2
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - ha_alert
    - MAX
    - create_pool
    linkageType: ''
    returnType: int
    signature: int init_h2()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/src/fcgi.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - out
    - h
    argTypes:
    - struct buffer*
    - struct fcgi_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 54
    functionName: fcgi_encode_record_hdr
    functionSourceFile: /src/haproxy/src/fcgi.c
    functionUses: 0
    functionsReached:
    - b_size
    linkageType: ''
    returnType: int
    signature: int fcgi_encode_record_hdr(struct buffer *out, const struct fcgi_header
      *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/fcgi.c:69,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:72,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:73,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:74,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:74,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:75,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:75,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - in
    - o
    - h
    argTypes:
    - struct buffer*
    - size_t
    - struct fcgi_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: fcgi_decode_record_hdr
    functionSourceFile: /src/haproxy/src/fcgi.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_data
    linkageType: ''
    returnType: size_t
    signature: size_t fcgi_decode_record_hdr(const struct buffer *in, size_t o, struct
      fcgi_header *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/src/fcgi.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - out
    - r
    argTypes:
    - struct buffer*
    - struct fcgi_begin_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 105
    functionName: fcgi_encode_begin_request
    functionSourceFile: /src/haproxy/src/fcgi.c
    functionUses: 0
    functionsReached:
    - b_size
    linkageType: ''
    returnType: int
    signature: int fcgi_encode_begin_request(struct buffer *out, const struct fcgi_begin_request
      *r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/src/fcgi.c:121,1
    - Dst: isalnum
      Src: /src/haproxy/src/fcgi.c:143,1
    - Dst: ist2bin
      Src: /src/haproxy/src/fcgi.c:149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - out
    - p
    argTypes:
    - struct buffer*
    - struct fcgi_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 155
    functionName: fcgi_encode_param
    functionSourceFile: /src/haproxy/src/fcgi.c
    functionUses: 0
    functionsReached:
    - b_size
    - isalnum
    - ist2bin
    linkageType: ''
    returnType: int
    signature: int fcgi_encode_param(struct buffer *out, const struct fcgi_param *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/fcgi.c:163,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:169,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:177,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:178,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:179,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:186,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:194,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:195,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:196,1
    - Dst: ist2
      Src: /src/haproxy/src/fcgi.c:204,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:204,1
    - Dst: ist2
      Src: /src/haproxy/src/fcgi.c:205,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - in
    - o
    - p
    argTypes:
    - struct buffer*
    - size_t
    - struct fcgi_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 209
    functionName: fcgi_decode_param
    functionSourceFile: /src/haproxy/src/fcgi.c
    functionUses: 0
    functionsReached:
    - ist2
    - b_peek
    - b_data
    linkageType: ''
    returnType: size_t
    signature: size_t fcgi_decode_param(const struct buffer *in, size_t o, struct
      fcgi_param *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/fcgi.c:218,1
    - Dst: ist2
      Src: /src/haproxy/src/fcgi.c:259,1
    - Dst: ist2
      Src: /src/haproxy/src/fcgi.c:260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - in
    - o
    - p
    argTypes:
    - struct buffer*
    - size_t
    - struct fcgi_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 264
    functionName: fcgi_aligned_decode_param
    functionSourceFile: /src/haproxy/src/fcgi.c
    functionUses: 0
    functionsReached:
    - ist2
    - b_data
    linkageType: ''
    returnType: size_t
    signature: size_t fcgi_aligned_decode_param(const struct buffer *in, size_t o,
      struct fcgi_param *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/fcgi.c:275,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:278,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:279,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:280,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:281,1
    - Dst: b_peek
      Src: /src/haproxy/src/fcgi.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - in
    - o
    - rec
    argTypes:
    - struct buffer*
    - size_t
    - struct fcgi_end_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 287
    functionName: fcgi_decode_end_request
    functionSourceFile: /src/haproxy/src/fcgi.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_data
    linkageType: ''
    returnType: size_t
    signature: size_t fcgi_decode_end_request(const struct buffer *in, size_t o, struct
      fcgi_end_request *rec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: sample_conv_eth_data
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_n16
    linkageType: ''
    returnType: int
    signature: int sample_conv_eth_data(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: sample_conv_eth_dst
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_eth_dst(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: sample_conv_eth_hdr
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_n16
    linkageType: ''
    returnType: int
    signature: int sample_conv_eth_hdr(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: sample_conv_eth_proto
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_n16
    linkageType: ''
    returnType: int
    signature: int sample_conv_eth_proto(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: sample_conv_eth_src
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_eth_src(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:107,1
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 119
    functionName: sample_conv_eth_vlan
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_n16
    linkageType: ''
    returnType: int
    signature: int sample_conv_eth_vlan(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 167
    functionName: ip_header_length
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ip_header_length(const struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ip_header_length
      Src: /src/haproxy/src/net_helper.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 184
    functionName: sample_conv_ip_data
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - ip_header_length
    linkageType: ''
    returnType: int
    signature: int sample_conv_ip_data(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 214
    functionName: sample_conv_ip_df
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_ip_df(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read_u32
      Src: /src/haproxy/src/net_helper.c:229,1
    - Dst: memcpy
      Src: /src/haproxy/src/net_helper.c:236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 245
    functionName: sample_conv_ip_dst
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_u32
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sample_conv_ip_dst(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ip_header_length
      Src: /src/haproxy/src/net_helper.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: sample_conv_ip_hdr
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - ip_header_length
    linkageType: ''
    returnType: int
    signature: int sample_conv_ip_hdr(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 308
    functionName: sample_conv_ip_proto
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_ip_proto(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read_u32
      Src: /src/haproxy/src/net_helper.c:323,1
    - Dst: memcpy
      Src: /src/haproxy/src/net_helper.c:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 339
    functionName: sample_conv_ip_src
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_u32
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sample_conv_ip_src(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 372
    functionName: sample_conv_ip_tos
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_n16
    linkageType: ''
    returnType: int
    signature: int sample_conv_ip_tos(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 403
    functionName: sample_conv_ip_ttl
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_ip_ttl(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: sample_conv_ip_ver
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_ip_ver(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 434
    functionName: tcp_fullhdr_length
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tcp_fullhdr_length(const struct sample *smp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tcp_fullhdr_length
      Src: /src/haproxy/src/net_helper.c:441,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - smp
    - opt
    argTypes:
    - struct sample*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 459
    functionName: tcp_fullhdr_find_opt
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - tcp_fullhdr_length
    linkageType: ''
    returnType: size_t
    signature: size_t tcp_fullhdr_find_opt(const struct sample *smp, uint8_t opt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 471
    functionName: sample_conv_tcp_dst
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_n16
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_dst(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 483
    functionName: sample_conv_tcp_flags
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_flags(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcp_fullhdr_length
      Src: /src/haproxy/src/net_helper.c:490,1
    - Dst: tcp_fullhdr_find_opt
      Src: /src/haproxy/src/net_helper.c:491,1
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 500
    functionName: sample_conv_tcp_options_mss
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - tcp_fullhdr_length
    - read_n16
    - tcp_fullhdr_find_opt
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_options_mss(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcp_fullhdr_length
      Src: /src/haproxy/src/net_helper.c:507,1
    - Dst: tcp_fullhdr_find_opt
      Src: /src/haproxy/src/net_helper.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 517
    functionName: sample_conv_tcp_options_sack
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - tcp_fullhdr_length
    - tcp_fullhdr_find_opt
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_options_sack(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcp_fullhdr_length
      Src: /src/haproxy/src/net_helper.c:524,1
    - Dst: tcp_fullhdr_find_opt
      Src: /src/haproxy/src/net_helper.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 534
    functionName: sample_conv_tcp_options_tsopt
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - tcp_fullhdr_length
    - tcp_fullhdr_find_opt
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_options_tsopt(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcp_fullhdr_length
      Src: /src/haproxy/src/net_helper.c:542,1
    - Dst: tcp_fullhdr_find_opt
      Src: /src/haproxy/src/net_helper.c:543,1
    - Dst: read_n32
      Src: /src/haproxy/src/net_helper.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 552
    functionName: sample_conv_tcp_options_tsval
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_n32
    - tcp_fullhdr_length
    - tcp_fullhdr_find_opt
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_options_tsval(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcp_fullhdr_length
      Src: /src/haproxy/src/net_helper.c:560,1
    - Dst: tcp_fullhdr_find_opt
      Src: /src/haproxy/src/net_helper.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 570
    functionName: sample_conv_tcp_options_wscale
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - tcp_fullhdr_length
    - tcp_fullhdr_find_opt
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_options_wscale(const struct arg *arg_p, struct
      sample *smp, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcp_fullhdr_length
      Src: /src/haproxy/src/net_helper.c:577,1
    - Dst: tcp_fullhdr_find_opt
      Src: /src/haproxy/src/net_helper.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 587
    functionName: sample_conv_tcp_options_wsopt
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - tcp_fullhdr_length
    - tcp_fullhdr_find_opt
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_options_wsopt(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/net_helper.c:594,1
    - Dst: tcp_fullhdr_length
      Src: /src/haproxy/src/net_helper.c:595,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 618
    functionName: sample_conv_tcp_options_list
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - tcp_fullhdr_length
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_options_list(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_n32
      Src: /src/haproxy/src/net_helper.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 630
    functionName: sample_conv_tcp_seq
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_n32
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_seq(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 642
    functionName: sample_conv_tcp_src
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_n16
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_src(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 654
    functionName: sample_conv_tcp_win
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - read_n16
    linkageType: ''
    returnType: int
    signature: int sample_conv_tcp_win(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/net_helper.c:665,1
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:704,1
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:714,1
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:719,1
    - Dst: ip_header_length
      Src: /src/haproxy/src/net_helper.c:740,1
    - Dst: tcp_fullhdr_length
      Src: /src/haproxy/src/net_helper.c:750,1
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:756,1
    - Dst: read_n16
      Src: /src/haproxy/src/net_helper.c:798,1
    - Dst: write_n16
      Src: /src/haproxy/src/net_helper.c:817,1
    - Dst: write_n16
      Src: /src/haproxy/src/net_helper.c:818,1
    - Dst: memcpy
      Src: /src/haproxy/src/net_helper.c:826,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 87
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 834
    functionName: sample_conv_ip_fp
    functionSourceFile: /src/haproxy/src/net_helper.c
    functionUses: 0
    functionsReached:
    - tcp_fullhdr_length
    - memcpy
    - get_trash_chunk
    - write_n16
    - read_n16
    - ip_header_length
    linkageType: ''
    returnType: int
    signature: int sample_conv_ip_fp(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb_delete
      Src: /src/haproxy/src/ebtree.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct eb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: eb_delete
    functionSourceFile: /src/haproxy/src/ebtree.c
    functionUses: 2
    functionsReached:
    - __eb_delete
    linkageType: ''
    returnType: void
    signature: void eb_delete(struct eb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb_insert_dup
      Src: /src/haproxy/src/ebtree.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sub
    - new
    argTypes:
    - struct eb_node*
    - struct eb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: eb_insert_dup
    functionSourceFile: /src/haproxy/src/ebtree.c
    functionUses: 1
    functionsReached:
    - __eb_insert_dup
    linkageType: ''
    returnType: struct eb_node
    signature: struct eb_node *eb_insert_dup(struct eb_node *sub, struct eb_node *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - m1
    - m2
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: eb_memcmp
    functionSourceFile: /src/haproxy/src/ebtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int eb_memcmp(const void *m1, const void *m2, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 381
    functionName: ctrl_msg_type_str
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused *ctrl_msg_type_str(unsigned int type)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:405,1
    - Dst: appctx_is_back
      Src: /src/haproxy/src/peers.c:406,1
    - Dst: peer_applet_state_str
      Src: /src/haproxy/src/peers.c:407,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:411,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:416,1
    - Dst: peer_app_state_str
      Src: /src/haproxy/src/peers.c:417,1
    - Dst: peer_learn_state_str
      Src: /src/haproxy/src/peers.c:417,1
    - Dst: statuscode_str
      Src: /src/haproxy/src/peers.c:420,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:422,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:423,1
    - Dst: human_time
      Src: /src/haproxy/src/peers.c:425,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:425,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:425,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:428,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:429,1
    - Dst: human_time
      Src: /src/haproxy/src/peers.c:431,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:431,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:431,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:434,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:435,1
    - Dst: human_time
      Src: /src/haproxy/src/peers.c:437,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:437,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:437,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:441,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:448,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 456
    functionName: peers_trace
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_applet_state_str
    - statuscode_str
    - human_time
    - peer_learn_state_str
    - peer_app_state_str
    - chunk_appendf
    - TICKS_TO_MS
    - tick_is_expired
    - appctx_is_back
    linkageType: ''
    returnType: void
    signature: "void peers_trace(enum trace_level level, uint64_t mask,\n                        const
      struct trace_source *src,\n                        const struct ist where, const
      struct ist func,\n                        const void *a1, const void *a2, const
      void *a3, const void *a4)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - statuscode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 480
    functionName: statuscode_str
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *statuscode_str(int statuscode)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - appstate
    argTypes:
    - enum peer_app_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 496
    functionName: peer_app_state_str
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *peer_app_state_str(enum peer_app_state appstate)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - learnstate
    argTypes:
    - enum peer_learn_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 512
    functionName: peer_learn_state_str
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *peer_learn_state_str(enum peer_learn_state learnstate)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - state
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 531
    functionName: peer_applet_state_str
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *peer_applet_state_str(int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - i
    - str
    argTypes:
    - uint64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 559
    functionName: intencode
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int intencode(uint64_t i, char **str)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - str
    - end
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 610
    functionName: intdecode
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t intdecode(char **str, char *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/peers.c:625,1
    - Dst: getpid
      Src: /src/haproxy/src/peers.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - msg
    - size
    - p
    argTypes:
    - char*
    - size_t
    - struct peer_prep_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 631
    functionName: peer_prepare_hellomsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - getpid
    - snprintf
    linkageType: ''
    returnType: int
    signature: int peer_prepare_hellomsg(char *msg, size_t size, struct peer_prep_params
      *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/peers.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - msg
    - size
    - p
    argTypes:
    - char*
    - size_t
    - struct peer_prep_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 647
    functionName: peer_prepare_status_successmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: int
    signature: int peer_prepare_status_successmsg(char *msg, size_t size, struct peer_prep_params
      *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/peers.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - msg
    - size
    - p
    argTypes:
    - char*
    - size_t
    - struct peer_prep_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 665
    functionName: peer_prepare_status_errormsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: int
    signature: int peer_prepare_status_errormsg(char *msg, size_t size, struct peer_prep_params
      *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - msg_type
    - use_identifier
    - use_timed
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 685
    functionName: peer_set_update_msg_type
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void peer_set_update_msg_type(char *msg_type, int use_identifier, int
      use_timed)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/haproxy/src/peers.c:725,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:726,1
    - Dst: htonl
      Src: /src/haproxy/src/peers.c:731,1
    - Dst: tick_remain
      Src: /src/haproxy/src/peers.c:731,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:732,1
    - Dst: strlen
      Src: /src/haproxy/src/peers.c:738,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:740,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:741,1
    - Dst: htonl
      Src: /src/haproxy/src/peers.c:745,1
    - Dst: read_u32
      Src: /src/haproxy/src/peers.c:745,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:746,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:750,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/peers.c:754,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:758,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:772,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:773,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:775,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:783,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:784,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:786,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:794,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:795,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:797,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:805,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:806,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:807,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:808,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:810,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:825,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:826,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:832,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:833,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:839,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:840,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:846,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:847,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:848,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:849,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:860,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:863,1
    - Dst: dcache_tx_insert
      Src: /src/haproxy/src/peers.c:869,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:874,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:876,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:882,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:885,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:887,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:891,1
    - Dst: memmove
      Src: /src/haproxy/src/peers.c:892,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/peers.c:900,1
    - Dst: peer_set_update_msg_type
      Src: /src/haproxy/src/peers.c:907,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:909,1
    - Dst: memmove
      Src: /src/haproxy/src/peers.c:912,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 139
    argCount: 3
    argNames:
    - msg
    - size
    - p
    argTypes:
    - char*
    - size_t
    - struct peer_prep_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 916
    functionName: peer_prepare_updatemsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDLOCK
    - tick_remain
    - memmove
    - memcpy
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr_idx
    - peer_set_update_msg_type
    - dcache_tx_insert
    - intencode
    - read_u32
    - stktable_data_ptr
    - stktable_data_cast
    - htonl
    - strlen
    linkageType: ''
    returnType: int
    signature: int peer_prepare_updatemsg(char *msg, size_t size, struct peer_prep_params
      *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:940,1
    - Dst: strlen
      Src: /src/haproxy/src/peers.c:943,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:944,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:945,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:950,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:953,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/peers.c:955,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:989,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:994,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:1000,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:1007,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:1008,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:1014,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:1017,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1021,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:1032,1
    - Dst: memmove
      Src: /src/haproxy/src/peers.c:1035,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 3
    argNames:
    - msg
    - size
    - params
    argTypes:
    - char*
    - size_t
    - struct peer_prep_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 924
    functionDepth: 2
    functionLinenumber: 924
    functionLinenumberEnd: 1039
    functionName: peer_prepare_switchmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - memmove
    - memcpy
    - get_trash_chunk
    - intencode
    - strlen
    linkageType: ''
    returnType: int
    signature: int peer_prepare_switchmsg(char *msg, size_t size, struct peer_prep_params
      *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:1058,1
    - Dst: htonl
      Src: /src/haproxy/src/peers.c:1059,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1060,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:1070,1
    - Dst: memmove
      Src: /src/haproxy/src/peers.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - msg
    - size
    - p
    argTypes:
    - char*
    - size_t
    - struct peer_prep_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1077
    functionName: peer_prepare_ackmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - htonl
    - intencode
    - memmove
    - memcpy
    linkageType: ''
    returnType: int
    signature: int peer_prepare_ackmsg(char *msg, size_t size, struct peer_prep_params
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:1091,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:1094,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:1096,1
    - Dst: flush_dcache
      Src: /src/haproxy/src/peers.c:1098,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:1110,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:1111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1112
    functionName: __peer_session_deinit
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - flush_dcache
    - TRACE_STATE
    - HA_ATOMIC_DEC
    linkageType: ''
    returnType: void
    signature: void __peer_session_deinit(struct peer *peer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:1120,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/peers.c:1121,1
    - Dst: set_host_port
      Src: /src/haproxy/src/peers.c:1123,1
    - Dst: appctx_finalize_startup
      Src: /src/haproxy/src/peers.c:1125,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/peers.c:1128,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/peers.c:1130,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:1131,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/peers.c:1137,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:1141,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:1142,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/peers.c:1146,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1150
    functionName: peer_session_init
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - sockaddr_alloc
    - _HA_ATOMIC_INC
    - applet_need_more_data
    - TRACE_LEAVE
    - TRACE_ERROR
    - appctx_finalize_startup
    - TRACE_ENTER
    - appctx_wakeup
    - stream_set_srv_target
    - sockaddr_free
    - set_host_port
    linkageType: ''
    returnType: int
    signature: int peer_session_init(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:1165,1
    - Dst: __peer_session_deinit
      Src: /src/haproxy/src/peers.c:1167,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:1169,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:1170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1155
    functionDepth: 2
    functionLinenumber: 1155
    functionLinenumberEnd: 1172
    functionName: peer_session_release
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - __peer_session_deinit
    - HA_SPIN_UNLOCK
    - TRACE_STATE
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: void
    signature: void peer_session_release(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/peers.c:1186,1
    - Dst: read_uint
      Src: /src/haproxy/src/peers.c:1188,1
    - Dst: read_uint
      Src: /src/haproxy/src/peers.c:1193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - str
    - maj_ver
    - min_ver
    argTypes:
    - char*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1201
    functionName: peer_get_version
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - read_uint
    - strlen
    linkageType: ''
    returnType: int
    signature: "int peer_get_version(const char *str,\n                            unsigned
      int *maj_ver, unsigned int *min_ver)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:1213,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/peers.c:1214,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/peers.c:1215,1
    - Dst: applet_getline
      Src: /src/haproxy/src/peers.c:1219,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/peers.c:1221,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1227,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/peers.c:1236,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:1238,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1240
    functionName: peer_getline
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - applet_need_more_data
    - TRACE_LEAVE
    - TRACE_ERROR
    - applet_getline
    - applet_skip_input
    - TRACE_ENTER
    - applet_get_inbuf
    linkageType: ''
    returnType: int
    signature: int peer_getline(struct appctx  *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:1255,1
    - Dst: peer_prepare_msg
      Src: /src/haproxy/src/peers.c:1256,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1260,1
    - Dst: applet_putblk
      Src: /src/haproxy/src/peers.c:1265,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1268,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:1273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - appctx
    - params
    argTypes:
    - struct appctx*
    - struct peer_prep_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1249
    functionDepth: 1
    functionLinenumber: 1249
    functionLinenumberEnd: 1275
    functionName: peer_send_msg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_prepare_msg
    - TRACE_LEAVE
    - TRACE_ERROR
    - TRACE_ENTER
    - applet_putblk
    linkageType: ''
    returnType: int
    signature: "int peer_send_msg(struct appctx *appctx,\n                                int
      (*peer_prepare_msg)(char *, size_t, struct peer_prep_params *),\n                                struct
      peer_prep_params *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1290,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - appctx
    - peer
    argTypes:
    - struct appctx*
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1292
    functionName: peer_send_hellomsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: int peer_send_hellomsg(struct appctx *appctx, struct peer *peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1303,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1301
    functionDepth: 2
    functionLinenumber: 1301
    functionLinenumberEnd: 1305
    functionName: peer_send_status_successmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: int peer_send_status_successmsg(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1320,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1314
    functionDepth: 2
    functionLinenumber: 1314
    functionLinenumberEnd: 1322
    functionName: peer_send_status_errormsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: int peer_send_status_errormsg(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1337,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - appctx
    argTypes:
    - struct shared_table*
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1331
    functionDepth: 2
    functionLinenumber: 1331
    functionLinenumberEnd: 1339
    functionName: peer_send_switchmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: int peer_send_switchmsg(struct shared_table *st, struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1354,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - appctx
    argTypes:
    - struct shared_table*
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1348
    functionDepth: 2
    functionLinenumber: 1348
    functionLinenumberEnd: 1356
    functionName: peer_send_ackmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: int peer_send_ackmsg(struct shared_table *st, struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1379,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - st
    - appctx
    - ts
    - updateid
    - use_identifier
    - use_timed
    argTypes:
    - struct shared_table*
    - struct appctx*
    - struct stksess*
    - unsigned int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1381
    functionName: peer_send_updatemsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: "int peer_send_updatemsg(struct shared_table *st, struct appctx *appctx,
      struct stksess *ts,\n                                      unsigned int updateid,
      int use_identifier, int use_timed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - msg
    - size
    - p
    argTypes:
    - char*
    - size_t
    - struct peer_prep_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1388
    functionDepth: 0
    functionLinenumber: 1388
    functionLinenumberEnd: 1397
    functionName: peer_prepare_control_msg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int peer_prepare_control_msg(char *msg, size_t size, struct peer_prep_params
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1413,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - appctx
    - peer
    - peers
    argTypes:
    - struct appctx*
    - struct peer*
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1406
    functionDepth: 2
    functionLinenumber: 1406
    functionLinenumberEnd: 1415
    functionName: peer_send_resync_reqmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: "int peer_send_resync_reqmsg(struct appctx *appctx,\n                                          struct
      peer *peer, struct peers *peers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1431,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - appctx
    - peer
    - peers
    argTypes:
    - struct appctx*
    - struct peer*
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1424
    functionDepth: 2
    functionLinenumber: 1424
    functionLinenumberEnd: 1433
    functionName: peer_send_resync_confirmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: "int peer_send_resync_confirmsg(struct appctx *appctx,\n                                             struct
      peer *peer, struct peers *peers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:1449,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1452,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - appctx
    - peer
    - peers
    argTypes:
    - struct appctx*
    - struct peer*
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1442
    functionDepth: 2
    functionLinenumber: 1442
    functionLinenumberEnd: 1454
    functionName: peer_send_resync_finishedmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: "int peer_send_resync_finishedmsg(struct appctx *appctx,\n                                               struct
      peer *peer, struct peers *peers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1470,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - appctx
    - peer
    - peers
    argTypes:
    - struct appctx*
    - struct peer*
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1463
    functionDepth: 2
    functionLinenumber: 1463
    functionLinenumberEnd: 1472
    functionName: peer_send_heartbeatmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: "int peer_send_heartbeatmsg(struct appctx *appctx,\n                                         struct
      peer *peer, struct peers *peers)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - msg
    - size
    - p
    argTypes:
    - char*
    - size_t
    - struct peer_prep_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1479
    functionDepth: 0
    functionLinenumber: 1479
    functionLinenumberEnd: 1488
    functionName: peer_prepare_error_msg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int peer_prepare_error_msg(char *msg, size_t size, struct peer_prep_params
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1503,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1497
    functionDepth: 2
    functionLinenumber: 1497
    functionLinenumberEnd: 1505
    functionName: peer_send_error_size_limitmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: int peer_send_error_size_limitmsg(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1520,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1514
    functionDepth: 2
    functionLinenumber: 1514
    functionLinenumberEnd: 1522
    functionName: peer_send_error_protomsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: int peer_send_error_protomsg(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/peers.c:1533,1
    - Dst: eb32_first
      Src: /src/haproxy/src/peers.c:1535,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/peers.c:1551,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:1552,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/peers.c:1553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1528
    functionDepth: 1
    functionLinenumber: 1528
    functionLinenumberEnd: 1555
    functionName: peer_teach_process_stksess_lookup
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_STORE
    - eb32_entry
    - eb32_lookup_ge
    - eb32_first
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *peer_teach_process_stksess_lookup(struct shared_table
      *st)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/peers.c:1566,1
    - Dst: eb32_first
      Src: /src/haproxy/src/peers.c:1569,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/peers.c:1575,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:1576,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/peers.c:1577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1561
    functionDepth: 1
    functionLinenumber: 1561
    functionLinenumberEnd: 1579
    functionName: peer_teach_stage1_stksess_lookup
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_STORE
    - eb32_entry
    - eb32_lookup_ge
    - eb32_first
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *peer_teach_stage1_stksess_lookup(struct shared_table
      *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/peers.c:1590,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/peers.c:1596,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:1597,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/peers.c:1598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1600
    functionName: peer_teach_stage2_stksess_lookup
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - eb32_entry
    - eb32_lookup_ge
    - _HA_ATOMIC_STORE
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *peer_teach_stage2_stksess_lookup(struct shared_table
      *st)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:1625,1
    - Dst: peer_send_switchmsg
      Src: /src/haproxy/src/peers.c:1630,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/peers.c:1635,1
    - Dst: HA_RWLOCK_TRYRDLOCK
      Src: /src/haproxy/src/peers.c:1645,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:1647,1
    - Dst: peer_stksess_lookup
      Src: /src/haproxy/src/peers.c:1657,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:1671,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/peers.c:1672,1
    - Dst: peer_send_updatemsg
      Src: /src/haproxy/src/peers.c:1674,1
    - Dst: HA_RWLOCK_TRYRDLOCK
      Src: /src/haproxy/src/peers.c:1676,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:1682,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:1683,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/peers.c:1691,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:1694,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/peers.c:1699,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:1707,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/peers.c:1714,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:1716,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 4
    argNames:
    - appctx
    - p
    - (*peer_stksess_lookup)(struct shared_table *)
    - st
    argTypes:
    - struct appctx*
    - struct peer*
    - struct stksess*
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1617
    functionDepth: 3
    functionLinenumber: 1617
    functionLinenumberEnd: 1718
    functionName: peer_send_teachmsgs
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_switchmsg
    - peer_stksess_lookup
    - HA_RWLOCK_RDLOCK
    - TRACE_LEAVE
    - applet_have_more_data
    - TRACE_ENTER
    - peer_send_updatemsg
    - HA_ATOMIC_DEC
    - TRACE_PRINTF
    - HA_RWLOCK_TRYRDLOCK
    - HA_ATOMIC_INC
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: int
    signature: "int peer_send_teachmsgs(struct appctx *appctx, struct peer *p,\n                        struct
      stksess *(*peer_stksess_lookup)(struct shared_table *),\n                        struct
      shared_table *st)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1735,1
    - Dst: peer_send_teachmsgs
      Src: /src/haproxy/src/peers.c:1736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - appctx
    - p
    - st
    argTypes:
    - struct appctx*
    - struct peer*
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1732
    functionDepth: 4
    functionLinenumber: 1732
    functionLinenumberEnd: 1737
    functionName: peer_send_teach_process_msgs
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - peer_send_teachmsgs
    linkageType: ''
    returnType: int
    signature: "int peer_send_teach_process_msgs(struct appctx *appctx, struct peer
      *p,\n                                               struct shared_table *st)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1752,1
    - Dst: peer_send_teachmsgs
      Src: /src/haproxy/src/peers.c:1753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - appctx
    - p
    - st
    argTypes:
    - struct appctx*
    - struct peer*
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1749
    functionDepth: 4
    functionLinenumber: 1749
    functionLinenumberEnd: 1754
    functionName: peer_send_teach_stage1_msgs
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - peer_send_teachmsgs
    linkageType: ''
    returnType: int
    signature: "int peer_send_teach_stage1_msgs(struct appctx *appctx, struct peer
      *p,\n                                              struct shared_table *st)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1769,1
    - Dst: peer_send_teachmsgs
      Src: /src/haproxy/src/peers.c:1770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - appctx
    - p
    - st
    argTypes:
    - struct appctx*
    - struct peer*
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1766
    functionDepth: 4
    functionLinenumber: 1766
    functionLinenumberEnd: 1771
    functionName: peer_send_teach_stage2_msgs
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - peer_send_teachmsgs
    linkageType: ''
    returnType: int
    signature: "int peer_send_teach_stage2_msgs(struct appctx *appctx, struct peer
      *p,\n                                              struct shared_table *st)"
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:1800,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1804,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:1810,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1814,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1818,1
    - Dst: htonl
      Src: /src/haproxy/src/peers.c:1825,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1831,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1835,1
    - Dst: ntohl
      Src: /src/haproxy/src/peers.c:1837,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:1842,1
    - Dst: stksess_new
      Src: /src/haproxy/src/peers.c:1845,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1847,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1854,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1856,1
    - Dst: MIN
      Src: /src/haproxy/src/peers.c:1860,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1862,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1867,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1875,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1880,1
    - Dst: ntohl
      Src: /src/haproxy/src/peers.c:1881,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1882,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1887,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1892,1
    - Dst: stktable_get_key_shard
      Src: /src/haproxy/src/peers.c:1896,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:1907,1
    - Dst: stktable_set_entry
      Src: /src/haproxy/src/peers.c:1911,1
    - Dst: stksess_free
      Src: /src/haproxy/src/peers.c:1913,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/peers.c:1921,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1952,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1954,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:1958,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:1960,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1965,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1967,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:1971,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:1973,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1978,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:1980,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:1984,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:1986,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1999,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2001,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:2006,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2007,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2009,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2013,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2015,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:2019,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:2021,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2031,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2033,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:2039,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:2041,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:2045,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:2047,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:2051,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:2053,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:2065,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2066,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2068,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2072,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2074,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:2078,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:2080,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2097,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2105,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2107,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2113,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/peers.c:2122,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2123,1
    - Dst: unlikely
      Src: /src/haproxy/src/peers.c:2125,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2126,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/peers.c:2130,1
    - Dst: dict_insert
      Src: /src/haproxy/src/peers.c:2134,1
    - Dst: dict_entry_unref
      Src: /src/haproxy/src/peers.c:2135,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:2139,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:2141,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:2142,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/peers.c:2156,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:2160,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/peers.c:2162,1
    - Dst: stktable_touch_remote
      Src: /src/haproxy/src/peers.c:2167,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/peers.c:2173,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:2176,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/peers.c:2195,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:2199,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/peers.c:2204,1
    - Dst: stktable_touch_remote
      Src: /src/haproxy/src/peers.c:2205,1
    - Dst: stksess_free
      Src: /src/haproxy/src/peers.c:2210,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/peers.c:2213,1
    CyclomaticComplexity: 103
    EdgeCount: 103
    ICount: 292
    argCount: 8
    argNames:
    - appctx
    - p
    - updt
    - exp
    - msg_cur
    - msg_end
    - msg_len
    - totl
    argTypes:
    - struct appctx*
    - struct peer*
    - int
    - int
    - char**
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 1786
    functionDepth: 2
    functionLinenumber: 1786
    functionLinenumberEnd: 2215
    functionName: peer_treat_updatemsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr_idx
    - TRACE_ENTER
    - get_trash_chunk
    - stktable_set_entry
    - stktable_touch_remote
    - HA_ATOMIC_INC
    - chunk_memcpy
    - HA_ATOMIC_STORE
    - stktable_get_key_shard
    - TRACE_DEVEL
    - stktable_data_ptr
    - stksess_free
    - htonl
    - tick_add
    - stksess_new
    - TRACE_PROTO
    - TRACE_LEAVE
    - memcpy
    - TRACE_ERROR
    - MS_TO_TICKS
    - intdecode
    - TRACE_PRINTF
    - stktable_data_cast
    - HA_RWLOCK_WRLOCK
    - ntohl
    - stktable_get_entry
    - HA_ATOMIC_DEC
    - dict_insert
    - MIN
    - dict_entry_unref
    linkageType: ''
    returnType: int
    signature: "int peer_treat_updatemsg(struct appctx *appctx, struct peer *p, int
      updt, int exp,\n                         char **msg_cur, char *msg_end, int
      msg_len, int totl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:2234,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/peers.c:2237,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2241,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2243,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:2249,1
    - Dst: ntohl
      Src: /src/haproxy/src/peers.c:2250,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/peers.c:2254,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:2261,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - appctx
    - p
    - msg_cur
    - msg_end
    argTypes:
    - struct appctx*
    - struct peer*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2263
    functionName: peer_treat_ackmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - memcpy
    - TRACE_ERROR
    - TRACE_DEVEL
    - TRACE_ENTER
    - intdecode
    - TRACE_PRINTF
    - ntohl
    linkageType: ''
    returnType: int
    signature: "int peer_treat_ackmsg(struct appctx *appctx, struct peer *p,\n                                    char
      **msg_cur, char *msg_end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:2279,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2280,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2282,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/peers.c:2291,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:2297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - appctx
    - p
    - msg_cur
    - msg_end
    argTypes:
    - struct appctx*
    - struct peer*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2273
    functionDepth: 1
    functionLinenumber: 2273
    functionLinenumberEnd: 2299
    functionName: peer_treat_switchmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - intdecode
    - TRACE_ENTER
    - TRACE_PRINTF
    linkageType: ''
    returnType: int
    signature: "int peer_treat_switchmsg(struct appctx *appctx, struct peer *p,\n
      \                                     char **msg_cur, char *msg_end)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:2320,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2321,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2323,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2327,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2329,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2335,1
    - Dst: strlen
      Src: /src/haproxy/src/peers.c:2344,1
    - Dst: memcmp
      Src: /src/haproxy/src/peers.c:2345,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2350,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2356,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2360,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2362,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2367,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2371,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2373,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2377,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2379,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2386,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2391,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2406,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2409,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2416,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2421,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2424,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2430,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2433,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2443,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2446,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2453,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2458,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2461,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2480,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/peers.c:2490,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:2494,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/peers.c:2500,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 149
    argCount: 5
    argNames:
    - appctx
    - p
    - msg_cur
    - msg_end
    - totl
    argTypes:
    - struct appctx*
    - struct peer*
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2310
    functionDepth: 1
    functionLinenumber: 2310
    functionLinenumberEnd: 2502
    functionName: peer_treat_definemsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - memcmp
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - intdecode
    - TRACE_ENTER
    - TRACE_DEVEL
    - TRACE_PRINTF
    - strlen
    linkageType: ''
    returnType: int
    signature: "int peer_treat_definemsg(struct appctx *appctx, struct peer *p,\n
      \                                     char **msg_cur, char *msg_end, int totl)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:2522,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/peers.c:2524,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/peers.c:2538,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/peers.c:2542,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2547,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2554,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2565,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/peers.c:2569,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:2575,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/peers.c:2579,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2582,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:2586,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 5
    argNames:
    - appctx
    - msg_head
    - msg_head_sz
    - msg_len
    - totl
    argTypes:
    - struct appctx*
    - char*
    - size_t
    - uint32_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2516
    functionDepth: 1
    functionLinenumber: 2516
    functionLinenumberEnd: 2588
    functionName: peer_recv_msg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - intdecode
    - applet_input_data
    - TRACE_ENTER
    - applet_getblk
    - se_fl_test
    linkageType: ''
    returnType: int
    signature: "int peer_recv_msg(struct appctx *appctx, char *msg_head, size_t msg_head_sz,\n
      \                               uint32_t *msg_len, int *totl)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:2599,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2605,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:2617,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2620,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:2624,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:2625,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2630,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:2634,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:2635,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2642,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:2648,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:2658,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2661,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:2662,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:2662,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2668,1
    - Dst: peer_treat_definemsg
      Src: /src/haproxy/src/peers.c:2669,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2673,1
    - Dst: peer_treat_switchmsg
      Src: /src/haproxy/src/peers.c:2674,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2683,1
    - Dst: peer_treat_updatemsg
      Src: /src/haproxy/src/peers.c:2686,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2692,1
    - Dst: peer_treat_ackmsg
      Src: /src/haproxy/src/peers.c:2693,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2699,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:2703,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 85
    argCount: 7
    argNames:
    - appctx
    - peer
    - msg_head
    - msg_cur
    - msg_end
    - msg_len
    - totl
    argTypes:
    - struct appctx*
    - struct peer*
    - unsigned char*
    - char**
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2594
    functionDepth: 3
    functionLinenumber: 2594
    functionLinenumberEnd: 2705
    functionName: peer_treat_awaited_msg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - peer_treat_definemsg
    - TRACE_STATE
    - TRACE_LEAVE
    - task_wakeup
    - MS_TO_TICKS
    - TRACE_ENTER
    - peer_treat_updatemsg
    - peer_treat_switchmsg
    - peer_treat_ackmsg
    - tick_add
    linkageType: ''
    returnType: int
    signature: "int peer_treat_awaited_msg(struct appctx *appctx, struct peer *peer,
      unsigned char *msg_head,\n                                         char **msg_cur,
      char *msg_end, int msg_len, int totl)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:2737,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/peers.c:2741,1
    - Dst: peer_send_resync_reqmsg
      Src: /src/haproxy/src/peers.c:2742,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:2746,1
    - Dst: peer_send_ackmsg
      Src: /src/haproxy/src/peers.c:2767,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/peers.c:2772,1
    - Dst: HA_RWLOCK_TRYRDLOCK
      Src: /src/haproxy/src/peers.c:2779,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:2780,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/peers.c:2785,1
    - Dst: peer_send_teach_process_msgs
      Src: /src/haproxy/src/peers.c:2788,1
    - Dst: peer_send_teach_stage1_msgs
      Src: /src/haproxy/src/peers.c:2797,1
    - Dst: peer_send_teach_stage2_msgs
      Src: /src/haproxy/src/peers.c:2805,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:2827,1
    - Dst: peer_send_resync_finishedmsg
      Src: /src/haproxy/src/peers.c:2837,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:2843,1
    - Dst: peer_send_resync_confirmsg
      Src: /src/haproxy/src/peers.c:2848,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:2851,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:2857,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 101
    argCount: 3
    argNames:
    - appctx
    - peer
    - peers
    argTypes:
    - struct appctx*
    - struct peer*
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2732
    functionDepth: 5
    functionLinenumber: 2732
    functionLinenumberEnd: 2859
    functionName: peer_send_msgs
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_teach_process_msgs
    - peer_send_teach_stage2_msgs
    - TRACE_STATE
    - BUG_ON
    - applet_have_more_data
    - TRACE_LEAVE
    - TRACE_ENTER
    - peer_send_resync_reqmsg
    - TRACE_PRINTF
    - HA_RWLOCK_TRYRDLOCK
    - peer_send_resync_finishedmsg
    - peer_send_resync_confirmsg
    - peer_send_ackmsg
    - peer_send_teach_stage1_msgs
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: int
    signature: "int peer_send_msgs(struct appctx *appctx,\n                   struct
      peer *peer, struct peers *peers)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: peer_getline
      Src: /src/haproxy/src/peers.c:2871,1
    - Dst: strncmp
      Src: /src/haproxy/src/peers.c:2879,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2882,1
    - Dst: peer_get_version
      Src: /src/haproxy/src/peers.c:2885,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2889,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/peers.c:2893,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - appctx
    - maj_ver
    - min_ver
    argTypes:
    - struct appctx*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2866
    functionDepth: 2
    functionLinenumber: 2866
    functionLinenumberEnd: 2895
    functionName: peer_getline_version
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_ERROR
    - TRACE_DATA
    - strncmp
    - peer_get_version
    - peer_getline
    linkageType: ''
    returnType: int
    signature: "int peer_getline_version(struct appctx *appctx,\n                                       unsigned
      int *maj_ver, unsigned int *min_ver)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: peer_getline
      Src: /src/haproxy/src/peers.c:2906,1
    - Dst: strcmp
      Src: /src/haproxy/src/peers.c:2914,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2917,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/peers.c:2921,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2902
    functionDepth: 2
    functionLinenumber: 2902
    functionLinenumberEnd: 2923
    functionName: peer_getline_host
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - strcmp
    - TRACE_ERROR
    - peer_getline
    - TRACE_DATA
    linkageType: ''
    returnType: int
    signature: int peer_getline_host(struct appctx *appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/peers.c:2936,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/peers.c:2936,1
    - Dst: peer_getline
      Src: /src/haproxy/src/peers.c:2938,1
    - Dst: strchr
      Src: /src/haproxy/src/peers.c:2946,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2950,1
    - Dst: strcmp
      Src: /src/haproxy/src/peers.c:2957,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:2965,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/peers.c:2970,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - appctx
    - curpeer
    argTypes:
    - struct appctx*
    - struct peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2972
      start: 2931
    functionDepth: 2
    functionLinenumber: 2931
    functionLinenumberEnd: 2972
    functionName: peer_getline_last
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - TRACE_ERROR
    - strcmp
    - TRACE_DATA
    - strchr
    - peer_getline
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int peer_getline_last(struct appctx *appctx, struct peer **curpeer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:2983,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:2984,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:2984,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/peers.c:2989,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/peers.c:3004,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:3008,1
    - Dst: appctx_is_back
      Src: /src/haproxy/src/peers.c:3016,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3021,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3027,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:3028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - peer
    - peers
    argTypes:
    - struct peer*
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 2979
    functionDepth: 1
    functionLinenumber: 2979
    functionLinenumberEnd: 3029
    functionName: init_connected_peer
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - HA_RWLOCK_WRUNLOCK
    - appctx_is_back
    - TRACE_LEAVE
    - task_wakeup
    - MS_TO_TICKS
    - TRACE_ENTER
    - HA_RWLOCK_WRLOCK
    - tick_add
    linkageType: ''
    returnType: void
    signature: void init_connected_peer(struct peer *peer, struct peers *peers)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:3043,1
    - Dst: unlikely
      Src: /src/haproxy/src/peers.c:3045,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/peers.c:3045,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/peers.c:3046,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/peers.c:3051,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:3052,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3068,1
    - Dst: peer_getline_version
      Src: /src/haproxy/src/peers.c:3069,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3080,1
    - Dst: peer_getline_host
      Src: /src/haproxy/src/peers.c:3081,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3092,1
    - Dst: peer_getline_last
      Src: /src/haproxy/src/peers.c:3093,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3100,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3106,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3110,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3115,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3115,1
    - Dst: ha_random
      Src: /src/haproxy/src/peers.c:3115,1
    - Dst: peer_session_forceshutdown
      Src: /src/haproxy/src/peers.c:3116,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:3133,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3140,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3142,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3148,1
    - Dst: peer_send_status_successmsg
      Src: /src/haproxy/src/peers.c:3149,1
    - Dst: init_connected_peer
      Src: /src/haproxy/src/peers.c:3160,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:3163,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3165,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3172,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3174,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3180,1
    - Dst: peer_send_hellomsg
      Src: /src/haproxy/src/peers.c:3181,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3196,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3198,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3204,1
    - Dst: peer_getline
      Src: /src/haproxy/src/peers.c:3206,1
    - Dst: atoi
      Src: /src/haproxy/src/peers.c:3214,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:3218,1
    - Dst: init_connected_peer
      Src: /src/haproxy/src/peers.c:3222,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:3231,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3233,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3246,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3248,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/peers.c:3255,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3256,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:3268,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/peers.c:3272,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3277,1
    - Dst: peer_recv_msg
      Src: /src/haproxy/src/peers.c:3280,1
    - Dst: peer_treat_awaited_msg
      Src: /src/haproxy/src/peers.c:3288,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/peers.c:3294,1
    - Dst: peer_send_heartbeatmsg
      Src: /src/haproxy/src/peers.c:3307,1
    - Dst: peer_send_msgs
      Src: /src/haproxy/src/peers.c:3316,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3328,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3330,1
    - Dst: peer_send_status_errormsg
      Src: /src/haproxy/src/peers.c:3331,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3337,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3339,1
    - Dst: peer_send_error_size_limitmsg
      Src: /src/haproxy/src/peers.c:3340,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3349,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3351,1
    - Dst: peer_send_error_protomsg
      Src: /src/haproxy/src/peers.c:3352,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3360,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3362,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3364,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/peers.c:3367,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/peers.c:3368,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3377,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:3379,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 313
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3381
      start: 3034
    functionDepth: 6
    functionLinenumber: 3034
    functionLinenumberEnd: 3381
    functionName: peer_io_handler
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - unlikely
    - applet_skip_input
    - peer_send_status_errormsg
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - peer_send_msgs
    - peer_getline_last
    - peer_treat_awaited_msg
    - atoi
    - peer_send_heartbeatmsg
    - peer_getline_version
    - peer_recv_msg
    - peer_send_error_protomsg
    - peer_session_forceshutdown
    - peer_getline_host
    - ha_random
    - applet_reset_input
    - applet_set_eos
    - _HA_ATOMIC_DEC
    - init_connected_peer
    - tick_add
    - peer_getline
    - TRACE_LEAVE
    - applet_have_more_data
    - MS_TO_TICKS
    - peer_send_hellomsg
    - peer_send_status_successmsg
    - _HA_ATOMIC_INC
    - TRACE_STATE
    - task_wakeup
    - applet_fl_test
    - HA_SPIN_UNLOCK
    - peer_send_error_size_limitmsg
    - applet_wont_consume
    - applet_get_outbuf
    - applet_will_consume
    linkageType: ''
    returnType: void
    signature: void peer_io_handler(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3414,1
    - Dst: __peer_session_deinit
      Src: /src/haproxy/src/peers.c:3415,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3419
      start: 3398
    functionDepth: 2
    functionLinenumber: 3398
    functionLinenumberEnd: 3419
    functionName: peer_session_forceshutdown
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 1
    functionsReached:
    - __peer_session_deinit
    - TRACE_STATE
    - appctx_wakeup
    linkageType: ''
    returnType: void
    signature: void peer_session_forceshutdown(struct peer *peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3432,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3433,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - fe
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3422
    functionDepth: 1
    functionLinenumber: 3422
    functionLinenumberEnd: 3438
    functionName: peers_setup_frontend
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - MS_TO_TICKS
    linkageType: ''
    returnType: void
    signature: void peers_setup_frontend(struct proxy *fe)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:3449,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3452,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3452,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3452,1
    - Dst: appctx_new_on
      Src: /src/haproxy/src/peers.c:3459,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/peers.c:3461,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:3469,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3470,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:3472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - peers
    - peer
    argTypes:
    - struct peers*
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3477
      start: 3443
    functionDepth: 1
    functionLinenumber: 3443
    functionLinenumberEnd: 3477
    functionName: peer_session_create
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - MS_TO_TICKS
    - TRACE_ENTER
    - appctx_wakeup
    - appctx_new_on
    - HA_ATOMIC_INC
    - tick_add
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *peer_session_create(struct peers *peers, struct peer
      *peer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/peers.c:3488,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3489,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3492,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3496
      start: 3482
    functionDepth: 1
    functionLinenumber: 3482
    functionLinenumberEnd: 3496
    functionName: clear_peer_learning_status
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_AND
    - HA_ATOMIC_OR
    - MS_TO_TICKS
    - tick_add
    linkageType: ''
    returnType: void
    signature: void clear_peer_learning_status(struct peer *peer)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3509,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3509,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3510,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3522,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3537,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3543,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3543,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3544,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3551,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/peers.c:3555,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3556,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3559,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - peers
    - peer
    argTypes:
    - struct peers*
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3560
      start: 3498
    functionDepth: 1
    functionLinenumber: 3498
    functionLinenumberEnd: 3560
    functionName: sync_peer_learn_state
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - MS_TO_TICKS
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - appctx_wakeup
    - HA_ATOMIC_OR
    - HA_ATOMIC_AND
    - tick_add
    linkageType: ''
    returnType: void
    signature: void sync_peer_learn_state(struct peers *peers, struct peer *peer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: clear_peer_learning_status
      Src: /src/haproxy/src/peers.c:3568,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3570,1
    - Dst: clear_peer_learning_status
      Src: /src/haproxy/src/peers.c:3573,1
    - Dst: appctx_is_back
      Src: /src/haproxy/src/peers.c:3574,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3585,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3586,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3600,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3601,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3605,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3606,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - peers
    - peer
    argTypes:
    - struct peers*
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3608
      start: 3565
    functionDepth: 2
    functionLinenumber: 3565
    functionLinenumberEnd: 3608
    functionName: sync_peer_app_state
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - appctx_wakeup
    - HA_ATOMIC_OR
    - clear_peer_learning_status
    - appctx_is_back
    linkageType: ''
    returnType: void
    signature: void sync_peer_app_state(struct peers *peers, struct peer *peer)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3624,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3624,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3627,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3635,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3638,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3638,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/peers.c:3643,1
    - Dst: sync_peer_learn_state
      Src: /src/haproxy/src/peers.c:3648,1
    - Dst: sync_peer_app_state
      Src: /src/haproxy/src/peers.c:3649,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3665,1
    - Dst: peer_session_create
      Src: /src/haproxy/src/peers.c:3672,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3674,1
    - Dst: tick_first
      Src: /src/haproxy/src/peers.c:3679,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3694,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3695,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3698,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3715,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3715,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3717,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3718,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3718,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/peers.c:3722,1
    - Dst: tick_first
      Src: /src/haproxy/src/peers.c:3723,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3724,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3732,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3738,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3739,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3739,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3742,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3742,1
    - Dst: ha_random
      Src: /src/haproxy/src/peers.c:3742,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/peers.c:3744,1
    - Dst: peer_session_forceshutdown
      Src: /src/haproxy/src/peers.c:3745,1
    - Dst: sync_peer_app_state
      Src: /src/haproxy/src/peers.c:3746,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3750,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3751,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3751,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/peers.c:3753,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3754,1
    - Dst: tick_first
      Src: /src/haproxy/src/peers.c:3756,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3763,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3769,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3775,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3781,1
    - Dst: tick_first
      Src: /src/haproxy/src/peers.c:3782,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:3784,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 81
    argCount: 3
    argNames:
    - task
    - peers
    - state
    argTypes:
    - struct task*
    - struct peers*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3785
      start: 3611
    functionDepth: 3
    functionLinenumber: 3611
    functionLinenumberEnd: 3785
    functionName: __process_running_peer_sync
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - TRACE_STATE
    - HA_SPIN_UNLOCK
    - task_wakeup
    - MS_TO_TICKS
    - sync_peer_app_state
    - peer_session_create
    - appctx_wakeup
    - tick_first
    - TRACE_DEVEL
    - peer_session_forceshutdown
    - HA_ATOMIC_OR
    - sync_peer_learn_state
    - tick_is_expired
    - ha_random
    - tick_add
    linkageType: ''
    returnType: void
    signature: void __process_running_peer_sync(struct task *task, struct peers *peers,
      unsigned int state)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3796,1
    - Dst: sync_peer_learn_state
      Src: /src/haproxy/src/peers.c:3798,1
    - Dst: sync_peer_app_state
      Src: /src/haproxy/src/peers.c:3799,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3812,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3812,1
    - Dst: ha_random
      Src: /src/haproxy/src/peers.c:3812,1
    - Dst: peer_session_forceshutdown
      Src: /src/haproxy/src/peers.c:3814,1
    - Dst: sync_peer_app_state
      Src: /src/haproxy/src/peers.c:3815,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3819,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:3826,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3830,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3830,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3831,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3836,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3840,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3843,1
    - Dst: tick_isset
      Src: /src/haproxy/src/peers.c:3848,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3849,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3849,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3853,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3865,1
    - Dst: tick_first
      Src: /src/haproxy/src/peers.c:3867,1
    - Dst: peer_session_create
      Src: /src/haproxy/src/peers.c:3872,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3880,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3883,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3895,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3900,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 3
    argNames:
    - task
    - peers
    - state
    argTypes:
    - struct task*
    - struct peers*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3901
      start: 3788
    functionDepth: 3
    functionLinenumber: 3788
    functionLinenumberEnd: 3901
    functionName: __process_stopping_peer_sync
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - appctx_wakeup
    - MS_TO_TICKS
    - sync_peer_app_state
    - HA_SPIN_LOCK
    - peer_session_forceshutdown
    - HA_SPIN_UNLOCK
    - HA_ATOMIC_DEC
    - tick_first
    - peer_session_create
    - sync_peer_learn_state
    - ha_random
    - tick_isset
    - tick_is_expired
    - _HA_ATOMIC_DEC
    - tick_add
    linkageType: ''
    returnType: void
    signature: void __process_stopping_peer_sync(struct task *task, struct peers *peers,
      unsigned int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __process_running_peer_sync
      Src: /src/haproxy/src/peers.c:3916,1
    - Dst: __process_stopping_peer_sync
      Src: /src/haproxy/src/peers.c:3921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3926
      start: 3908
    functionDepth: 4
    functionLinenumber: 3908
    functionLinenumberEnd: 3926
    functionName: process_peer_sync
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - __process_stopping_peer_sync
    - __process_running_peer_sync
    linkageType: ''
    returnType: struct task
    signature: struct task *process_peer_sync(struct task * task, void *context, unsigned
      int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_new_on
      Src: /src/haproxy/src/peers.c:3945,1
    - Dst: memset
      Src: /src/haproxy/src/peers.c:3949,1
    - Dst: signal_register_task
      Src: /src/haproxy/src/peers.c:3952,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:3953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - peers
    argTypes:
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3955
      start: 3932
    functionDepth: 1
    functionLinenumber: 3932
    functionLinenumberEnd: 3955
    functionName: peers_init_sync
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - signal_register_task
    - task_wakeup
    - task_new_on
    - memset
    linkageType: ''
    returnType: int
    signature: int peers_init_sync(struct peers *peers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/peers.c:3965,1
    - Dst: calloc
      Src: /src/haproxy/src/peers.c:3966,1
    - Dst: free
      Src: /src/haproxy/src/peers.c:3978,1
    - Dst: free
      Src: /src/haproxy/src/peers.c:3979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - max_entries
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3981
      start: 3960
    functionDepth: 1
    functionLinenumber: 3960
    functionLinenumberEnd: 3981
    functionName: new_dcache_tx
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - malloc
    - calloc
    - free
    linkageType: ''
    returnType: struct dcache_tx
    signature: struct dcache_tx *new_dcache_tx(size_t max_entries)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/peers.c:3995,1
    - Dst: new_dcache_tx
      Src: /src/haproxy/src/peers.c:3996,1
    - Dst: calloc
      Src: /src/haproxy/src/peers.c:3997,1
    - Dst: free
      Src: /src/haproxy/src/peers.c:4008,1
    - Dst: free
      Src: /src/haproxy/src/peers.c:4009,1
    - Dst: free
      Src: /src/haproxy/src/peers.c:4010,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - max_entries
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4012
      start: 3989
    functionDepth: 2
    functionLinenumber: 3989
    functionLinenumberEnd: 4012
    functionName: new_dcache
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - calloc
    - new_dcache_tx
    - free
    linkageType: ''
    returnType: struct dcache
    signature: struct dcache *new_dcache(size_t max_entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_lookup
      Src: /src/haproxy/src/peers.c:4022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - i
    argTypes:
    - struct dcache_tx*
    - struct dcache_tx_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4023
      start: 4019
    functionDepth: 1
    functionLinenumber: 4019
    functionLinenumberEnd: 4023
    functionName: dcache_tx_lookup_value
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - ebpt_lookup
    linkageType: ''
    returnType: struct ebpt_node
    signature: "struct ebpt_node *dcache_tx_lookup_value(struct dcache_tx *d,\n                                                struct
      dcache_tx_entry *i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_delete
      Src: /src/haproxy/src/peers.c:4035,1
    - Dst: dict_entry_unref
      Src: /src/haproxy/src/peers.c:4037,1
    - Dst: memset
      Src: /src/haproxy/src/peers.c:4043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4044
      start: 4029
    functionDepth: 1
    functionLinenumber: 4029
    functionLinenumberEnd: 4044
    functionName: flush_dcache
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 1
    functionsReached:
    - memset
    - dict_entry_unref
    - ebpt_delete
    linkageType: ''
    returnType: void
    signature: void flush_dcache(struct peer *peer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dcache_tx_lookup_value
      Src: /src/haproxy/src/peers.c:4062,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/peers.c:4078,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/peers.c:4080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - dc
    - i
    argTypes:
    - struct dcache*
    - struct dcache_tx_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4087
      start: 4052
    functionDepth: 2
    functionLinenumber: 4052
    functionLinenumberEnd: 4087
    functionName: dcache_tx_insert
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 1
    functionsReached:
    - ebpt_insert
    - dcache_tx_lookup_value
    - ebpt_delete
    linkageType: ''
    returnType: struct ebpt_node
    signature: struct ebpt_node *dcache_tx_insert(struct dcache *dc, struct dcache_tx_entry
      *i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_dcache
      Src: /src/haproxy/src/peers.c:4098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - peers
    argTypes:
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4104
      start: 4093
    functionDepth: 3
    functionLinenumber: 4093
    functionLinenumberEnd: 4104
    functionName: peers_alloc_dcache
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - new_dcache
    linkageType: ''
    returnType: int
    signature: int peers_alloc_dcache(struct peers *peers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/peers.c:4118,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:4135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - peers
    - table
    argTypes:
    - struct peers*
    - struct stktable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4142
      start: 4110
    functionDepth: 1
    functionLinenumber: 4110
    functionLinenumberEnd: 4142
    functionName: peers_register_table
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - calloc
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: int
    signature: int peers_register_table(struct peers *peers, struct stktable *table)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/peers.c:4164,1
    - Dst: strcmp
      Src: /src/haproxy/src/peers.c:4166,1
    - Dst: strcmp
      Src: /src/haproxy/src/peers.c:4170,1
    - Dst: strcmp
      Src: /src/haproxy/src/peers.c:4177,1
    - Dst: cli_err
      Src: /src/haproxy/src/peers.c:4184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4190
      start: 4162
    functionDepth: 1
    functionLinenumber: 4162
    functionLinenumberEnd: 4190
    functionName: cli_parse_show_peers
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cli_err
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_peers(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_localtime
      Src: /src/haproxy/src/peers.c:4201,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4202,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:4206,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:4208,1
    - Dst: human_time
      Src: /src/haproxy/src/peers.c:4209,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4209,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4210,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/peers.c:4213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - msg
    - appctx
    - peers
    argTypes:
    - struct buffer*
    - struct appctx*
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4217
      start: 4197
    functionDepth: 1
    functionLinenumber: 4197
    functionLinenumberEnd: 4217
    functionName: peers_dump_head
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - human_time
    - HA_ATOMIC_LOAD
    - chunk_appendf
    - TICKS_TO_MS
    - tick_is_expired
    - get_localtime
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int peers_dump_head(struct buffer *msg, struct appctx *appctx, struct
      peers *peers)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: addr_to_str
      Src: /src/haproxy/src/peers.c:4232,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4233,1
    - Dst: peer_app_state_str
      Src: /src/haproxy/src/peers.c:4238,1
    - Dst: peer_learn_state_str
      Src: /src/haproxy/src/peers.c:4239,1
    - Dst: statuscode_str
      Src: /src/haproxy/src/peers.c:4240,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4242,1
    - Dst: human_time
      Src: /src/haproxy/src/peers.c:4243,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4243,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4244,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4246,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:4248,1
    - Dst: human_time
      Src: /src/haproxy/src/peers.c:4249,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4249,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4250,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4252,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:4254,1
    - Dst: human_time
      Src: /src/haproxy/src/peers.c:4255,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4255,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4256,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4258,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4262,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4267,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/peers.c:4271,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/peers.c:4280,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4282,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/peers.c:4282,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/peers.c:4282,1
    - Dst: objt_conn
      Src: /src/haproxy/src/peers.c:4284,1
    - Dst: strm_orig
      Src: /src/haproxy/src/peers.c:4284,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4286,1
    - Dst: conn_get_xprt_name
      Src: /src/haproxy/src/peers.c:4286,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/peers.c:4288,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/peers.c:4288,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4291,1
    - Dst: get_host_port
      Src: /src/haproxy/src/peers.c:4291,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4296,1
    - Dst: strm_li
      Src: /src/haproxy/src/peers.c:4296,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/peers.c:4300,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/peers.c:4300,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4303,1
    - Dst: get_host_port
      Src: /src/haproxy/src/peers.c:4303,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4308,1
    - Dst: strm_li
      Src: /src/haproxy/src/peers.c:4308,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4314,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4321,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4328,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4337,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4341,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4344,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4347,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4358,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4360,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4363,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4367,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4368,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4374,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4380,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/peers.c:4381,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 90
    argCount: 4
    argNames:
    - msg
    - appctx
    - peer
    - flags
    argTypes:
    - struct buffer*
    - struct appctx*
    - struct peer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4385
      start: 4224
    functionDepth: 1
    functionLinenumber: 4224
    functionLinenumberEnd: 4385
    functionName: peers_dump_peer
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_learn_state_str
    - chunk_appendf
    - TICKS_TO_MS
    - appctx_sc
    - strm_orig
    - conn_get_xprt_name
    - peer_app_state_str
    - __sc_strm
    - tick_is_expired
    - strm_li
    - human_time
    - objt_conn
    - sc_state_str
    - addr_to_str
    - conn_get_dst
    - conn_get_src
    - sc_opposite
    - statuscode_str
    - get_host_port
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int peers_dump_peer(struct buffer *msg, struct appctx *appctx, struct
      peer *peer, int flags)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: thread_isolate
      Src: /src/haproxy/src/peers.c:4398,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/peers.c:4400,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4411,1
    - Dst: peers_dump_head
      Src: /src/haproxy/src/peers.c:4414,1
    - Dst: peers_dump_peer
      Src: /src/haproxy/src/peers.c:4432,1
    - Dst: thread_release
      Src: /src/haproxy/src/peers.c:4445,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4447
      start: 4393
    functionDepth: 2
    functionLinenumber: 4393
    functionLinenumberEnd: 4447
    functionName: cli_io_handler_show_peers
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peers_dump_head
    - thread_isolate
    - chunk_appendf
    - chunk_reset
    - peers_dump_peer
    - thread_release
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_peers(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/peers.c:4456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkwl
    argTypes:
    - struct peers_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4457
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4457
    functionName: peers_register_keywords
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void peers_register_keywords(struct peers_kw_list *pkwl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/peers.c:4466,1
    - Dst: atoi
      Src: /src/haproxy/src/peers.c:4470,1
    - Dst: memprintf
      Src: /src/haproxy/src/peers.c:4473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4479
      start: 4460
    functionDepth: 1
    functionLinenumber: 4460
    functionLinenumberEnd: 4479
    functionName: cfg_parse_max_updt_at_once
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_max_updt_at_once(char **args, int section_type, struct
      proxy *curpx,\n                                      const struct proxy *defpx,
      const char *file, int line,\n                                      char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/haproxy/src/limits.c:30,1
    - Dst: setrlimit
      Src: /src/haproxy/src/limits.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - old_limit
    - new_limit
    argTypes:
    - struct rlimit*
    - struct rlimit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 42
    functionName: raise_rlim_nofile
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - setrlimit
    linkageType: ''
    returnType: int
    signature: int raise_rlim_nofile(struct rlimit *old_limit, struct rlimit *new_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: is_any_limit_configured
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_any_limit_configured()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/limits.c:95,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 104
    functionName: compute_ideal_maxpipes
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - MAX
    linkageType: ''
    returnType: int
    signature: int compute_ideal_maxpipes()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: compute_ideal_maxpipes
      Src: /src/haproxy/src/limits.c:119,1
    - Dst: MAX
      Src: /src/haproxy/src/limits.c:120,1
    - Dst: is_any_limit_configured
      Src: /src/haproxy/src/limits.c:152,1
    - Dst: MAX
      Src: /src/haproxy/src/limits.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 187
    functionName: compute_ideal_maxconn
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - compute_ideal_maxpipes
    - MAX
    - is_any_limit_configured
    linkageType: ''
    returnType: int
    signature: int compute_ideal_maxconn()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compute_ideal_maxpipes
      Src: /src/haproxy/src/limits.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - maxconn
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 220
    functionName: compute_ideal_maxsock
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - compute_ideal_maxpipes
    linkageType: ''
    returnType: int
    signature: int compute_ideal_maxsock(int maxconn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/haproxy/src/limits.c:238,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/limits.c:242,1
    - Dst: MAX
      Src: /src/haproxy/src/limits.c:245,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/limits.c:247,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/limits.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - maxsock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 253
    functionName: check_if_maxsock_permitted
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - MAX
    - raise_rlim_nofile
    linkageType: ''
    returnType: int
    signature: int check_if_maxsock_permitted(int maxsock)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: compute_ideal_maxconn
      Src: /src/haproxy/src/limits.c:260,1
    - Dst: ha_notice
      Src: /src/haproxy/src/limits.c:288,1
    - Dst: MIN
      Src: /src/haproxy/src/limits.c:323,1
    - Dst: round_2dig
      Src: /src/haproxy/src/limits.c:324,1
    - Dst: check_if_maxsock_permitted
      Src: /src/haproxy/src/limits.c:331,1
    - Dst: compute_ideal_maxsock
      Src: /src/haproxy/src/limits.c:331,1
    - Dst: ha_notice
      Src: /src/haproxy/src/limits.c:334,1
    - Dst: round_2dig
      Src: /src/haproxy/src/limits.c:355,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:358,1
    - Dst: exit
      Src: /src/haproxy/src/limits.c:364,1
    - Dst: fprintf
      Src: /src/haproxy/src/limits.c:371,1
    - Dst: MIN
      Src: /src/haproxy/src/limits.c:400,1
    - Dst: round_2dig
      Src: /src/haproxy/src/limits.c:401,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:408,1
    - Dst: exit
      Src: /src/haproxy/src/limits.c:414,1
    - Dst: check_if_maxsock_permitted
      Src: /src/haproxy/src/limits.c:417,1
    - Dst: compute_ideal_maxsock
      Src: /src/haproxy/src/limits.c:417,1
    - Dst: fprintf
      Src: /src/haproxy/src/limits.c:423,1
    - Dst: fprintf
      Src: /src/haproxy/src/limits.c:427,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 430
    functionName: set_global_maxconn
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - check_if_maxsock_permitted
    - ha_notice
    - exit
    - compute_ideal_maxsock
    - compute_ideal_maxconn
    - MIN
    - round_2dig
    - ha_alert
    - fprintf
    linkageType: ''
    returnType: void
    signature: void set_global_maxconn(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/limits.c:445,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/limits.c:448,1
    - Dst: getrlimit
      Src: /src/haproxy/src/limits.c:449,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:458,1
    - Dst: round_2dig
      Src: /src/haproxy/src/limits.c:466,1
    - Dst: MAX
      Src: /src/haproxy/src/limits.c:466,1
    - Dst: exit
      Src: /src/haproxy/src/limits.c:467,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/limits.c:475,1
    - Dst: getrlimit
      Src: /src/haproxy/src/limits.c:476,1
    - Dst: ha_warning
      Src: /src/haproxy/src/limits.c:478,1
    - Dst: ha_warning
      Src: /src/haproxy/src/limits.c:481,1
    - Dst: round_2dig
      Src: /src/haproxy/src/limits.c:489,1
    - Dst: MAX
      Src: /src/haproxy/src/limits.c:489,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 495
    functionName: apply_nofile_limit
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - exit
    - raise_rlim_nofile
    - MAX
    - round_2dig
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void apply_nofile_limit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setrlimit
      Src: /src/haproxy/src/limits.c:508,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:510,1
    - Dst: exit
      Src: /src/haproxy/src/limits.c:512,1
    - Dst: ha_warning
      Src: /src/haproxy/src/limits.c:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 520
    functionName: apply_memory_limit
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - setrlimit
    - exit
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void apply_memory_limit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/haproxy/src/limits.c:532,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:535,1
    - Dst: exit
      Src: /src/haproxy/src/limits.c:539,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:542,1
    - Dst: fcntl
      Src: /src/haproxy/src/limits.c:548,1
    - Dst: dup2
      Src: /src/haproxy/src/limits.c:549,1
    - Dst: ha_warning
      Src: /src/haproxy/src/limits.c:550,1
    - Dst: strerror
      Src: /src/haproxy/src/limits.c:551,1
    - Dst: close
      Src: /src/haproxy/src/limits.c:553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 555
    functionName: check_nofile_lim_and_prealloc_fd
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - exit
    - strerror
    - fcntl
    - dup2
    - ha_alert
    - ha_warning
    - close
    linkageType: ''
    returnType: void
    signature: void check_nofile_lim_and_prealloc_fd(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/haproxy/src/debug.c:198,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:200,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:203,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/debug.c:205,1
    - Dst: my_backtrace
      Src: /src/haproxy/src/debug.c:207,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:211,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:217,1
    - Dst: dump_addr_and_bytes
      Src: /src/haproxy/src/debug.c:228,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/debug.c:229,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:233,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:233,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/debug.c:237,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:241,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:241,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/debug.c:245,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:285,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/debug.c:289,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 57
    argCount: 3
    argNames:
    - buf
    - prefix
    - dump
    argTypes:
    - struct buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 290
    functionName: ha_dump_backtrace
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - ha_sigmask
    - sigaddset
    - chunk_appendf
    - my_backtrace
    - sigemptyset
    - may_access
    - dump_addr_and_bytes
    - snprintf
    - resolve_sym_name
    linkageType: ''
    returnType: void
    signature: void ha_dump_backtrace(struct buffer *buf, const char *prefix, int
      dump)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/src/debug.c:296,1
    - Dst: ha_dump_backtrace
      Src: /src/haproxy/src/debug.c:298,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:300,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 301
    functionName: ha_backtrace_to_stderr
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - b_make
    - ha_dump_backtrace
    - write
    - DISGUISE
    linkageType: ''
    returnType: void
    signature: void ha_backtrace_to_stderr(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: now_cpu_time
      Src: /src/haproxy/src/debug.c:319,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:323,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:325,1
    - Dst: ha_get_pthread_id
      Src: /src/haproxy/src/debug.c:329,1
    - Dst: thread_has_tasks
      Src: /src/haproxy/src/debug.c:330,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/debug.c:331,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/debug.c:332,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/debug.c:333,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/debug.c:334,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/debug.c:335,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/debug.c:336,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/debug.c:337,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:346,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:348,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:352,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:355,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:356,1
    - Dst: tick_isset
      Src: /src/haproxy/src/debug.c:362,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/debug.c:363,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:365,1
    - Dst: chunk_append_thread_ctx
      Src: /src/haproxy/src/debug.c:371,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:375,1
    - Dst: ha_task_dump
      Src: /src/haproxy/src/debug.c:376,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:384,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:389,1
    - Dst: lock_label
      Src: /src/haproxy/src/debug.c:390,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:409,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:410,1
    - Dst: lock_label
      Src: /src/haproxy/src/debug.c:411,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:415,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:419,1
    - Dst: HLUA_IS_BUSY
      Src: /src/haproxy/src/debug.c:428,1
    - Dst: HLUA_IS_BUSY
      Src: /src/haproxy/src/debug.c:430,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:434,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:436,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:441,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:442,1
    - Dst: ha_dump_backtrace
      Src: /src/haproxy/src/debug.c:444,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 62
    argCount: 2
    argNames:
    - buf
    - is_caller
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 448
    functionName: ha_thread_dump_one
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - now_cpu_time
    - eb_is_empty
    - _HA_ATOMIC_LOAD
    - HA_ATOMIC_LOAD
    - ha_get_pthread_id
    - chunk_appendf
    - now_mono_time
    - lock_label
    - chunk_append_thread_ctx
    - HLUA_IS_BUSY
    - LIST_ISEMPTY
    - tick_isset
    - thread_has_tasks
    - mark_tainted
    - ha_dump_backtrace
    - MT_LIST_ISEMPTY
    - ha_task_dump
    linkageType: ''
    returnType: void
    signature: void ha_thread_dump_one(struct buffer *buf, int is_caller)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSUME
      Src: /src/haproxy/src/debug.c:466,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/debug.c:476,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/debug.c:478,1
    - Dst: ha_tkill
      Src: /src/haproxy/src/debug.c:483,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:487,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/debug.c:492,1
    - Dst: ha_thread_dump_one
      Src: /src/haproxy/src/debug.c:496,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/debug.c:507,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:508,1
    - Dst: ha_thread_dump_one
      Src: /src/haproxy/src/debug.c:509,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - thr
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 512
    functionName: ha_thread_dump_fill
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - ha_thread_relax
    - HA_ATOMIC_LOAD
    - ASSUME
    - get_trash_chunk
    - ha_thread_dump_one
    - HA_ATOMIC_CAS
    - ha_tkill
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *ha_thread_dump_fill(struct buffer *buf, int thr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSUME
      Src: /src/haproxy/src/debug.c:524,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:530,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/debug.c:534,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/debug.c:537,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - thr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 538
    functionName: ha_thread_dump_done
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - ha_thread_relax
    - HA_ATOMIC_CAS
    - ASSUME
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void ha_thread_dump_done(int thr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:554,1
    - Dst: TASK_IS_TASKLET
      Src: /src/haproxy/src/debug.c:558,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:559,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:564,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/debug.c:568,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:571,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/debug.c:572,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:573,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:576,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:578,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/debug.c:582,1
    - Dst: sc_strm
      Src: /src/haproxy/src/debug.c:583,1
    - Dst: sc_strm
      Src: /src/haproxy/src/debug.c:585,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:588,1
    - Dst: strm_dump_to_buffer
      Src: /src/haproxy/src/debug.c:589,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:589,1
    - Dst: HLUA_IS_BUSY
      Src: /src/haproxy/src/debug.c:594,1
    - Dst: HLUA_IS_BUSY
      Src: /src/haproxy/src/debug.c:595,1
    - Dst: HLUA_IS_BUSY
      Src: /src/haproxy/src/debug.c:596,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:597,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:600,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:604,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:608,1
    - Dst: get_tainted
      Src: /src/haproxy/src/debug.c:615,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:616,1
    - Dst: append_prefixed_str
      Src: /src/haproxy/src/debug.c:617,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/debug.c:617,1
    - Dst: b_peek
      Src: /src/haproxy/src/debug.c:621,1
    - Dst: b_data
      Src: /src/haproxy/src/debug.c:621,1
    - Dst: b_putchr
      Src: /src/haproxy/src/debug.c:622,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 44
    argCount: 3
    argNames:
    - buf
    - task
    - pfx
    argTypes:
    - struct buffer*
    - struct task*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 624
    functionName: ha_task_dump
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 1
    functionsReached:
    - sc_strm
    - b_peek
    - HA_ATOMIC_LOAD
    - get_tainted
    - append_prefixed_str
    - TASK_IS_TASKLET
    - chunk_appendf
    - strm_dump_to_buffer
    - now_mono_time
    - HLUA_IS_BUSY
    - appctx_sc
    - b_data
    - hlua_traceback
    - b_putchr
    - resolve_sym_name
    linkageType: ''
    returnType: void
    signature: void ha_task_dump(struct buffer *buf, const struct task *task, const
      char *pfx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/debug.c:635,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:638,1
    - Dst: ha_thread_dump_fill
      Src: /src/haproxy/src/debug.c:639,1
    - Dst: ha_thread_dump_done
      Src: /src/haproxy/src/debug.c:640,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/debug.c:641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 630
    functionDepth: 4
    functionLinenumber: 630
    functionLinenumberEnd: 650
    functionName: cli_io_handler_show_threads
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - ha_thread_dump_done
    - ha_thread_dump_fill
    - applet_reserve_svcctx
    - chunk_reset
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_threads(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:656,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:659,1
    - Dst: dump_libs
      Src: /src/haproxy/src/debug.c:660,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 664
    functionName: debug_parse_cli_show_libs
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - dump_libs
    - cli_msg
    - cli_has_level
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_show_libs(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:675,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:677,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:679,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:680,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:682,1
    - Dst: hap_get_next_build_opt
      Src: /src/haproxy/src/debug.c:683,1
    - Dst: append_prefixed_str
      Src: /src/haproxy/src/debug.c:684,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:685,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:687,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:689,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:691,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:693,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:695,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:697,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:699,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:701,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:703,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:705,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:707,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:709,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:711,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:713,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:715,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:717,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/debug.c:717,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:719,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/debug.c:719,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:721,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:722,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:723,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:725,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:726,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:730,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:731,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:732,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:734,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:735,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:737,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:738,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:741,1
    - Dst: errname
      Src: /src/haproxy/src/debug.c:742,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:746,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:747,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:748,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:750,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:751,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:753,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:754,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:757,1
    - Dst: errname
      Src: /src/haproxy/src/debug.c:758,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:761,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:762,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:764,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:766,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:767,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:768,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:768,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:769,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:769,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:770,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:771,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:771,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:772,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:772,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:773,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:774,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:774,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:775,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:775,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:776,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:777,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:777,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:778,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:778,1
    - Dst: cpu_topo_dump_summary
      Src: /src/haproxy/src/debug.c:780,1
    - Dst: ha_free
      Src: /src/haproxy/src/debug.c:783,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:785,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 786
    functionName: debug_parse_cli_show_dev
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - errname
    - cli_msg
    - hap_get_next_build_opt
    - LIM2A
    - append_prefixed_str
    - chunk_strcat
    - CAPS_TO_ULLONG
    - ha_free
    - chunk_appendf
    - cpu_topo_dump_summary
    - HA_ANON_CLI
    - chunk_reset
    - normalize_rlim
    - cli_err
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_show_dev(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:794,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:803,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:806,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:809,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:811,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:813,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:816,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:820,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:822,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:823,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:823,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/debug.c:827,1
    - Dst: ha_thread_dump_fill
      Src: /src/haproxy/src/debug.c:831,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:835,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:835,1
    - Dst: ha_thread_dump_done
      Src: /src/haproxy/src/debug.c:837,1
    - Dst: get_tainted
      Src: /src/haproxy/src/debug.c:841,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:842,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:847,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:847,1
    - Dst: get_tainted
      Src: /src/haproxy/src/debug.c:849,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:850,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:855,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:855,1
    - Dst: get_tainted
      Src: /src/haproxy/src/debug.c:858,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:859,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:864,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:864,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:867,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:874,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:874,1
    - Dst: abort
      Src: /src/haproxy/src/debug.c:877,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 789
    functionDepth: 4
    functionLinenumber: 789
    functionLinenumberEnd: 878
    functionName: ha_panic
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 1
    functionsReached:
    - DISGUISE
    - ha_thread_dump_done
    - get_tainted
    - chunk_printf
    - write
    - chunk_appendf
    - abort
    - get_trash_chunk
    - mark_tainted
    - ha_thread_dump_fill
    linkageType: ''
    returnType: void
    signature: void ha_panic()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:892,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:901,1
    - Dst: b_make
      Src: /src/haproxy/src/debug.c:903,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:905,1
    - Dst: now_cpu_time
      Src: /src/haproxy/src/debug.c:906,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:908,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:921,1
    - Dst: ha_thread_dump_one
      Src: /src/haproxy/src/debug.c:923,1
    - Dst: get_tainted
      Src: /src/haproxy/src/debug.c:926,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:927,1
    - Dst: get_tainted
      Src: /src/haproxy/src/debug.c:933,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:934,1
    - Dst: get_tainted
      Src: /src/haproxy/src/debug.c:941,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:942,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:949,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:954,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:954,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 955
    functionName: ha_stuck_warning
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 1
    functionsReached:
    - DISGUISE
    - now_cpu_time
    - HA_ATOMIC_LOAD
    - get_tainted
    - write
    - chunk_appendf
    - mark_tainted
    - ha_thread_dump_one
    - b_make
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void ha_stuck_warning(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/debug.c:964,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:966,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:966,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:966,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:968,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - counter
    - msg
    - taint
    argTypes:
    - int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 971
    functionName: complain
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - DISGUISE
    - write
    - mark_tainted
    - _HA_ATOMIC_FETCH_ADD
    - strlen
    linkageType: ''
    returnType: void
    signature: void complain(int *counter, const char *msg, int taint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:976,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:978,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:981,1
    - Dst: exit
      Src: /src/haproxy/src/debug.c:982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 974
    functionDepth: 2
    functionLinenumber: 974
    functionLinenumberEnd: 984
    functionName: debug_parse_cli_exit
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - atoi
    - cli_has_level
    - _HA_ATOMIC_INC
    - exit
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_exit(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:991,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:994,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/debug.c:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 989
    functionDepth: 2
    functionLinenumber: 989
    functionLinenumberEnd: 997
    functionName: debug_parse_cli_bug
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - _HA_ATOMIC_INC
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_bug(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1004,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1007,1
    - Dst: WARN_ON
      Src: /src/haproxy/src/debug.c:1008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1002
    functionDepth: 2
    functionLinenumber: 1002
    functionLinenumberEnd: 1010
    functionName: debug_parse_cli_warn
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - _HA_ATOMIC_INC
    - WARN_ON
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_warn(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1017,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1020,1
    - Dst: CHECK_IF
      Src: /src/haproxy/src/debug.c:1021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1015
    functionDepth: 2
    functionLinenumber: 1015
    functionLinenumberEnd: 1023
    functionName: debug_parse_cli_check
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - CHECK_IF
    - cli_has_level
    - _HA_ATOMIC_INC
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_check(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1030,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1034,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1036,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1038,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1040,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1042,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:1046,1
    - Dst: fd_delete
      Src: /src/haproxy/src/debug.c:1048,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1050,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1026
    functionDepth: 2
    functionLinenumber: 1026
    functionLinenumberEnd: 1052
    functionName: debug_parse_cli_close
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - fd_delete
    - _HA_ATOMIC_INC
    - strcmp
    - atoi
    - cli_has_level
    - close
    - cli_err
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_close(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/debug.c:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - task
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1061
    functionName: debug_run_cli_deadlock
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: struct task
    signature: struct task *debug_run_cli_deadlock(struct task *task, void *ctx, unsigned
      int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1068,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1071,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1072,1
    - Dst: task_new_on
      Src: /src/haproxy/src/debug.c:1073,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1078,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1082
    functionName: debug_parse_cli_deadlock
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - task_wakeup
    - task_new_on
    - atoi
    - cli_has_level
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_deadlock(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1087,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1089,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1092,1
    - Dst: usleep
      Src: /src/haproxy/src/debug.c:1093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1085
    functionDepth: 2
    functionLinenumber: 1085
    functionLinenumberEnd: 1095
    functionName: debug_parse_cli_delay
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - atoi
    - cli_has_level
    - _HA_ATOMIC_INC
    - usleep
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_delay(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1102,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1105,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1106,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:1109,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:1110,1
    - Dst: send_log
      Src: /src/haproxy/src/debug.c:1113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1098
    functionDepth: 2
    functionLinenumber: 1098
    functionLinenumberEnd: 1115
    functionName: debug_parse_cli_log
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - chunk_strcat
    - chunk_reset
    - send_log
    - cli_has_level
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_log(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1121,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1125,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1128,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1129,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1131,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/debug.c:1132,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/debug.c:1133,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/debug.c:1136,1
    - Dst: tv_ms_cmp
      Src: /src/haproxy/src/debug.c:1138,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/debug.c:1140,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/debug.c:1141,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:1145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1118
    functionDepth: 2
    functionLinenumber: 1118
    functionLinenumberEnd: 1148
    functionName: debug_parse_cli_loop
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - tv_ms_cmp
    - tv_ms_add
    - _HA_ATOMIC_INC
    - thread_isolate
    - strcmp
    - gettimeofday
    - _HA_ATOMIC_AND
    - atoi
    - cli_has_level
    - thread_release
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_loop(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1153,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1156,1
    - Dst: ha_panic
      Src: /src/haproxy/src/debug.c:1157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1151
    functionDepth: 5
    functionLinenumber: 1151
    functionLinenumberEnd: 1159
    functionName: debug_parse_cli_panic
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - _HA_ATOMIC_INC
    - ha_panic
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_panic(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1169,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1172,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1173,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:1176,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:1177,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/debug.c:1180,1
    - Dst: pipe
      Src: /src/haproxy/src/debug.c:1181,1
    - Dst: fd_set_cloexec
      Src: /src/haproxy/src/debug.c:1184,1
    - Dst: fd_set_cloexec
      Src: /src/haproxy/src/debug.c:1187,1
    - Dst: fork
      Src: /src/haproxy/src/debug.c:1190,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1198,1
    - Dst: dup2
      Src: /src/haproxy/src/debug.c:1199,1
    - Dst: dup2
      Src: /src/haproxy/src/debug.c:1200,1
    - Dst: execvp
      Src: /src/haproxy/src/debug.c:1203,1
    - Dst: printf
      Src: /src/haproxy/src/debug.c:1204,1
    - Dst: exit
      Src: /src/haproxy/src/debug.c:1205,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:1209,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1210,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1211,1
    - Dst: read
      Src: /src/haproxy/src/debug.c:1213,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:1218,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1222,1
    - Dst: waitpid
      Src: /src/haproxy/src/debug.c:1223,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:1225,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1229,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1230,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:1232,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1233,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1163
    functionDepth: 2
    functionLinenumber: 1163
    functionLinenumberEnd: 1234
    functionName: debug_parse_cli_exec
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - fd_set_cloexec
    - _HA_ATOMIC_INC
    - fork
    - thread_isolate
    - exit
    - waitpid
    - cli_err
    - chunk_strcat
    - execvp
    - printf
    - pipe
    - dup2
    - read
    - chunk_reset
    - cli_has_level
    - close
    - thread_release
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_exec(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/debug.c:1242,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/debug.c:1245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - sig
    - si
    - arg
    argTypes:
    - int
    - siginfo_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1246
    functionName: debug_delay_inj_sighandler
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - __ha_cpu_relax
    - statistical_prng_range
    linkageType: ''
    returnType: void
    signature: void debug_delay_inj_sighandler(int sig, siginfo_t *si, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1254,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1258,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:1260,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1262,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1264,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:1267,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1271,1
    - Dst: dump_hex
      Src: /src/haproxy/src/debug.c:1272,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:1274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1250
    functionDepth: 2
    functionLinenumber: 1250
    functionLinenumberEnd: 1275
    functionName: debug_parse_cli_hex
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - dump_hex
    - _HA_ATOMIC_INC
    - strtoul
    - chunk_reset
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_hex(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1282,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1286,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1288,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:1290,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:1291,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/debug.c:1292,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:1293,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:1295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1278
    functionDepth: 2
    functionLinenumber: 1278
    functionLinenumberEnd: 1296
    functionName: debug_parse_cli_sym
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - _HA_ATOMIC_INC
    - chunk_printf
    - chunk_appendf
    - strtoul
    - resolve_sym_name
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_sym(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1304,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1308,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1311,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1314,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1316,1
    - Dst: ha_tkill
      Src: /src/haproxy/src/debug.c:1318,1
    - Dst: raise
      Src: /src/haproxy/src/debug.c:1320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1299
    functionDepth: 2
    functionLinenumber: 1299
    functionLinenumberEnd: 1322
    functionName: debug_parse_cli_tkill
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - raise
    - atoi
    - cli_has_level
    - ha_tkill
    - cli_err
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_tkill(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/debug.c:1329,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1329,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/debug.c:1329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1331
    functionName: debug_parse_cli_hash
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cli_dynmsg
    - HA_ANON_CLI
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_hash(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1339,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:1341,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1343,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1345,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1347,1
    - Dst: memset
      Src: /src/haproxy/src/debug.c:1349,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:1353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1354
    functionName: debug_parse_cli_write
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - _HA_ATOMIC_INC
    - memset
    - strtoul
    - chunk_reset
    - cli_err
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_write(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: appctx_strm
      Src: /src/haproxy/src/debug.c:1364,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1374,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1380,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1389,1
    - Dst: ist2
      Src: /src/haproxy/src/debug.c:1395,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1396,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1396,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1397,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1398,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1398,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1399,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1400,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1400,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1401,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1402,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1402,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1403,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1405,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1405,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1406,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1407,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1407,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1408,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1409,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1409,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1410,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1411,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1411,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1412,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1413,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1413,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1414,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1414,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1415,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/debug.c:1418,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1418,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1421,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1421,1
    - Dst: read_u64
      Src: /src/haproxy/src/debug.c:1423,1
    - Dst: read_u32
      Src: /src/haproxy/src/debug.c:1425,1
    - Dst: read_u16
      Src: /src/haproxy/src/debug.c:1427,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1431,1
    - Dst: strtoll::strtoll
      Src: /src/haproxy/src/debug.c:1438,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1440,1
    - Dst: now_ms::now_ms
      Src: /src/haproxy/src/debug.c:1441,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1443,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1452,1
    - Dst: old::old
      Src: /src/haproxy/src/debug.c:1453,1
    - Dst: old::old
      Src: /src/haproxy/src/debug.c:1460,1
    - Dst: old::old
      Src: /src/haproxy/src/debug.c:1464,1
    - Dst: old::old
      Src: /src/haproxy/src/debug.c:1468,1
    - Dst: old::old
      Src: /src/haproxy/src/debug.c:1476,1
    - Dst: write_u64
      Src: /src/haproxy/src/debug.c:1478,1
    - Dst: write_u32
      Src: /src/haproxy/src/debug.c:1480,1
    - Dst: write_u16
      Src: /src/haproxy/src/debug.c:1482,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/debug.c:1489,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 105
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1362
    functionDepth: 2
    functionLinenumber: 1362
    functionLinenumberEnd: 1491
    functionName: debug_parse_cli_stream
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - memprintf
    - read_u64
    - cli_dynmsg
    - write_u64
    - cli_dynerr
    - ist2
    - ist
    - strcmp
    - isteq
    - cli_has_level
    - strtoll::strtoll
    - appctx_strm
    - cli_err
    - old::old
    - _HA_ATOMIC_INC
    - task_wakeup
    - write_u16
    - write_u32
    - may_access
    - read_u32
    - now_ms::now_ms
    - read_u16
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_stream(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1509,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:1513,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1517,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/debug.c:1520,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1525,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1525,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1528,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1535,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1537,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/debug.c:1538,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1544,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1547,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1547,1
    - Dst: isalnum
      Src: /src/haproxy/src/debug.c:1547,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/debug.c:1549,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1552,1
    - Dst: task_in_rq
      Src: /src/haproxy/src/debug.c:1553,1
    - Dst: task_in_wq
      Src: /src/haproxy/src/debug.c:1553,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1555,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1559,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/debug.c:1565,1
    - Dst: tick_add
      Src: /src/haproxy/src/debug.c:1566,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1567,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1569,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/debug.c:1572,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1574,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1575,1
    - Dst: tasklet_kill
      Src: /src/haproxy/src/debug.c:1579,1
    - Dst: task_kill
      Src: /src/haproxy/src/debug.c:1581,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:1584,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/debug.c:1590,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:1592,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1595,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 64
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1498
    functionDepth: 2
    functionLinenumber: 1498
    functionLinenumberEnd: 1602
    functionName: debug_parse_cli_task
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cli_dynmsg
    - tasklet_kill
    - __task_unlink_wq
    - thread_isolate
    - strcmp
    - cli_has_level
    - tick_add
    - cli_err
    - thread_release
    - task_in_rq
    - task_kill
    - tasklet_wakeup
    - strtoul
    - task_in_wq
    - LIST_INLIST
    - chunk_reset
    - resolve_sym_name
    - _HA_ATOMIC_INC
    - task_wakeup
    - may_access
    - isalnum
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_task(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tick_add
      Src: /src/haproxy/src/debug.c:1613,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1615,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/debug.c:1619,1
    - Dst: ha_tkill
      Src: /src/haproxy/src/debug.c:1620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1605
    functionDepth: 1
    functionLinenumber: 1605
    functionLinenumberEnd: 1623
    functionName: debug_delay_inj_task
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - ha_tkill
    - statistical_prng_range
    - tick_add
    linkageType: ''
    returnType: struct task
    signature: struct task *debug_delay_inj_task(struct task *t, void *ctx, unsigned
      int state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1633,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1637,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1639,1
    - Dst: calloc
      Src: /src/haproxy/src/debug.c:1641,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1645,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1646,1
    - Dst: task_new_here
      Src: /src/haproxy/src/debug.c:1648,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1654,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:1658,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1659,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1628
    functionDepth: 2
    functionLinenumber: 1628
    functionLinenumberEnd: 1660
    functionName: debug_parse_delay_inj
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - calloc
    - task_wakeup
    - free
    - atoi
    - cli_has_level
    - task_new_here
    - cli_err
    linkageType: ''
    returnType: int
    signature: int debug_parse_delay_inj(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tick_add
      Src: /src/haproxy/src/debug.c:1672,1
    - Dst: statistical_prng
      Src: /src/haproxy/src/debug.c:1675,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1682,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/debug.c:1684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1687
    functionName: debug_task_handler
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - tasklet_wakeup
    - statistical_prng
    - tick_add
    linkageType: ''
    returnType: struct task
    signature: struct task *debug_task_handler(struct task *t, void *ctx, unsigned
      int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: statistical_prng
      Src: /src/haproxy/src/debug.c:1700,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1704,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/debug.c:1706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1689
    functionDepth: 1
    functionLinenumber: 1689
    functionLinenumberEnd: 1709
    functionName: debug_tasklet_handler
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - tasklet_wakeup
    - statistical_prng
    linkageType: ''
    returnType: struct task
    signature: struct task *debug_tasklet_handler(struct task *t, void *ctx, unsigned
      int state)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1731,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1736,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1736,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1737,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1744,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1746,1
    - Dst: ist2
      Src: /src/haproxy/src/debug.c:1751,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1752,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1752,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1754,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1754,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1756,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1756,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/debug.c:1759,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1759,1
    - Dst: strtoll::strtoll
      Src: /src/haproxy/src/debug.c:1762,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1764,1
    - Dst: write_u64
      Src: /src/haproxy/src/debug.c:1772,1
    - Dst: write_u32
      Src: /src/haproxy/src/debug.c:1774,1
    - Dst: write_u16
      Src: /src/haproxy/src/debug.c:1776,1
    - Dst: calloc
      Src: /src/haproxy/src/debug.c:1781,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/debug.c:1797,1
    - Dst: task_new_on
      Src: /src/haproxy/src/debug.c:1807,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1823,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/debug.c:1825,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/debug.c:1829,1
    - Dst: task_destroy
      Src: /src/haproxy/src/debug.c:1841,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/debug.c:1843,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:1846,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1847,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 86
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1714
    functionDepth: 2
    functionLinenumber: 1714
    functionLinenumberEnd: 1848
    functionName: debug_parse_cli_sched
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cli_dynmsg
    - free
    - write_u64
    - cli_dynerr
    - ist2
    - ist
    - task_destroy
    - strcmp
    - tasklet_new
    - isteq
    - cli_has_level
    - strtoll::strtoll
    - cli_err
    - calloc
    - tasklet_wakeup
    - task_new_on
    - _HA_ATOMIC_INC
    - write_u16
    - task_wakeup
    - write_u32
    - tasklet_free
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_sched(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/debug.c:1871,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1872,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1873,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1874,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1875,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1876,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1877,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1878,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1879,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1880,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1881,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1882,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1883,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1884,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1885,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1886,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1887,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1888,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1889,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/debug.c:1890,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1896,1
    - Dst: task_destroy
      Src: /src/haproxy/src/debug.c:1898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1866
    functionDepth: 1
    functionLinenumber: 1866
    functionLinenumberEnd: 1902
    functionName: debug_trace_task
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - task_destroy
    - task_wakeup
    - TRACE_DEVEL
    - TRACE_ENTER
    linkageType: ''
    returnType: struct task
    signature: struct task *debug_trace_task(struct task *t, void *ctx, unsigned int
      state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1916,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1919,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1922,1
    - Dst: strtoll
      Src: /src/haproxy/src/debug.c:1927,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1929,1
    - Dst: task_new_on
      Src: /src/haproxy/src/debug.c:1937,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1944,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/debug.c:1948,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/debug.c:1952,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1909
    functionDepth: 2
    functionLinenumber: 1909
    functionLinenumberEnd: 1953
    functionName: debug_parse_cli_trace
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - memprintf
    - _HA_ATOMIC_INC
    - cli_dynmsg
    - task_wakeup
    - task_new_on
    - strtoll
    - cli_has_level
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_trace(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/debug.c:1966,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1964
    functionDepth: 2
    functionLinenumber: 1964
    functionLinenumberEnd: 1974
    functionName: debug_parse_cli_fd
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_fd(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1991,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/debug.c:1993,1
    - Dst: fcntl
      Src: /src/haproxy/src/debug.c:2000,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:2009,1
    - Dst: fstat
      Src: /src/haproxy/src/debug.c:2011,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2012,1
    - Dst: isatty
      Src: /src/haproxy/src/debug.c:2013,1
    - Dst: S_ISREG
      Src: /src/haproxy/src/debug.c:2014,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/debug.c:2015,1
    - Dst: S_ISCHR
      Src: /src/haproxy/src/debug.c:2016,1
    - Dst: S_ISBLK
      Src: /src/haproxy/src/debug.c:2017,1
    - Dst: S_ISFIFO
      Src: /src/haproxy/src/debug.c:2018,1
    - Dst: S_ISLNK
      Src: /src/haproxy/src/debug.c:2019,1
    - Dst: S_ISSOCK
      Src: /src/haproxy/src/debug.c:2020,1
    - Dst: USE_EPOLL
      Src: /src/haproxy/src/debug.c:2021,1
    - Dst: dup
      Src: /src/haproxy/src/debug.c:2031,1
    - Dst: epoll_ctl
      Src: /src/haproxy/src/debug.c:2034,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:2039,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2056,1
    - Dst: fcntl
      Src: /src/haproxy/src/debug.c:2061,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2063,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2071,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2072,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2073,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2074,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2075,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2077,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2080,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2083,1
    - Dst: getsockopt
      Src: /src/haproxy/src/debug.c:2090,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2092,1
    - Dst: getsockopt
      Src: /src/haproxy/src/debug.c:2095,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2097,1
    - Dst: getsockopt
      Src: /src/haproxy/src/debug.c:2100,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2102,1
    - Dst: getsockname
      Src: /src/haproxy/src/debug.c:2105,1
    - Dst: ntohs
      Src: /src/haproxy/src/debug.c:2109,1
    - Dst: ntohs
      Src: /src/haproxy/src/debug.c:2111,1
    - Dst: sa2str
      Src: /src/haproxy/src/debug.c:2114,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2116,1
    - Dst: iscntrl
      Src: /src/haproxy/src/debug.c:2117,1
    - Dst: isprint
      Src: /src/haproxy/src/debug.c:2117,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2121,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2122,1
    - Dst: getpeername
      Src: /src/haproxy/src/debug.c:2126,1
    - Dst: ntohs
      Src: /src/haproxy/src/debug.c:2128,1
    - Dst: ntohs
      Src: /src/haproxy/src/debug.c:2130,1
    - Dst: sa2str
      Src: /src/haproxy/src/debug.c:2133,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2135,1
    - Dst: iscntrl
      Src: /src/haproxy/src/debug.c:2136,1
    - Dst: isprint
      Src: /src/haproxy/src/debug.c:2136,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2139,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2140,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2143,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/debug.c:2145,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:2152,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 108
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 1980
    functionDepth: 1
    functionLinenumber: 1980
    functionLinenumberEnd: 2154
    functionName: debug_iohandler_fd
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - getpeername
    - S_ISFIFO
    - isprint
    - dup
    - chunk_appendf
    - USE_EPOLL
    - free
    - iscntrl
    - S_ISREG
    - close
    - thread_isolate
    - chunk_printf
    - isatty
    - getsockopt
    - applet_putchk
    - S_ISBLK
    - S_ISLNK
    - thread_release
    - S_ISSOCK
    - fcntl
    - chunk_reset
    - ntohs
    - S_ISCHR
    - S_ISDIR
    - epoll_ctl
    - fstat
    - getsockname
    - sa2str
    - strlen
    linkageType: ''
    returnType: int
    signature: int debug_iohandler_fd(struct appctx *appctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/debug.c:2171,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:2177,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2181,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:2184,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:2188,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:2189,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2193,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2197,1
    - Dst: ha_free
      Src: /src/haproxy/src/debug.c:2198,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2199,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:2201,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:2206,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2169
    functionDepth: 2
    functionLinenumber: 2169
    functionLinenumberEnd: 2214
    functionName: debug_parse_cli_memstats
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_err
    - ha_free
    - strcmp
    - _HA_ATOMIC_STORE
    - applet_reserve_svcctx
    - cli_has_level
    - strdup
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_memstats(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2247,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2249,1
    - Dst: strncmp
      Src: /src/haproxy/src/debug.c:2296,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2296,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:2299,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2301,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2303,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2306,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2311,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/debug.c:2317,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:2333,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2334,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2338,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/debug.c:2344,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 104
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2221
    functionDepth: 1
    functionLinenumber: 2221
    functionLinenumberEnd: 2351
    functionName: debug_iohandler_memstats
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - strncmp
    - applet_putchk
    - chunk_reset
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int debug_iohandler_memstats(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/debug.c:2358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2354
    functionDepth: 1
    functionLinenumber: 2354
    functionLinenumberEnd: 2359
    functionName: debug_release_memstats
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void debug_release_memstats(struct appctx *appctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/debug.c:2374,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:2378,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2383,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2387,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2391,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2395,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2399,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2403,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2407,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2411,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2415,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:2420,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:2430,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:2436,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:2441,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:2443,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 62
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2372
    functionDepth: 2
    functionLinenumber: 2372
    functionLinenumberEnd: 2449
    functionName: debug_parse_cli_counters
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - strcmp
    - _HA_ATOMIC_STORE
    - applet_reserve_svcctx
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int debug_parse_cli_counters(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:2471,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2487,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/debug.c:2493,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2456
    functionDepth: 1
    functionLinenumber: 2456
    functionLinenumberEnd: 2503
    functionName: debug_iohandler_counters
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - chunk_appendf
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int debug_iohandler_counters(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:2517,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/debug.c:2527,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/debug.c:2535,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:2536,1
    - Dst: ha_thread_dump_one
      Src: /src/haproxy/src/debug.c:2547,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/debug.c:2550,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:2550,1
    - Dst: wait
      Src: /src/haproxy/src/debug.c:2556,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/debug.c:2558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - sig
    - si
    - arg
    argTypes:
    - int
    - siginfo_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2515
    functionDepth: 3
    functionLinenumber: 2515
    functionLinenumberEnd: 2559
    functionName: debug_handler
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - DISGUISE
    - HA_ATOMIC_STORE
    - HA_ATOMIC_LOAD
    - wait
    - get_trash_chunk
    - _HA_ATOMIC_AND
    - ha_thread_dump_one
    - HA_ATOMIC_OR
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void debug_handler(int sig, siginfo_t *si, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/haproxy/src/debug.c:2566,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:2567,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:2569,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/debug.c:2571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2573
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2573
    functionName: init_debug_per_thread
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - ha_sigmask
    - sigaddset
    - sigemptyset
    linkageType: ''
    returnType: int
    signature: int init_debug_per_thread()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: my_backtrace
      Src: /src/haproxy/src/debug.c:2585,1
    - Dst: sigemptyset
      Src: /src/haproxy/src/debug.c:2588,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:2590,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:2592,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:2594,1
    - Dst: sigaction
      Src: /src/haproxy/src/debug.c:2597,1
    - Dst: sigemptyset
      Src: /src/haproxy/src/debug.c:2602,1
    - Dst: sigaction
      Src: /src/haproxy/src/debug.c:2604,1
    - Dst: ha_warning
      Src: /src/haproxy/src/debug.c:2615,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2575
    functionDepth: 1
    functionLinenumber: 2575
    functionLinenumberEnd: 2625
    functionName: init_debug
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - sigaddset
    - sigaction
    - sigemptyset
    - my_backtrace
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int init_debug()
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2644,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2645,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2647,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2648,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2649,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2651,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2652,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2653,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2654,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2656,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2657,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2658,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2660,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2661,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2662,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2663,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2664,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2665,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2666,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2667,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2668,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2669,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2670,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2673,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2674,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2675,1
    - Dst: stat
      Src: /src/haproxy/src/debug.c:2679,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2681,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2684,1
    - Dst: fopen
      Src: /src/haproxy/src/debug.c:2687,1
    - Dst: fgets
      Src: /src/haproxy/src/debug.c:2697,1
    - Dst: strchr
      Src: /src/haproxy/src/debug.c:2698,1
    - Dst: strchr
      Src: /src/haproxy/src/debug.c:2707,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2717,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2718,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2719,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2720,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2721,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2722,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2723,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2724,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2725,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2726,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2729,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2730,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2731,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2732,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2733,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2734,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2735,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2736,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2737,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2738,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2739,1
    - Dst: strstr
      Src: /src/haproxy/src/debug.c:2740,1
    - Dst: strncmp
      Src: /src/haproxy/src/debug.c:2741,1
    - Dst: strncmp
      Src: /src/haproxy/src/debug.c:2743,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2751,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2752,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2753,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2754,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2755,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2756,1
    - Dst: fclose
      Src: /src/haproxy/src/debug.c:2758,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2762,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2765,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2770,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2774,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2780,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2780,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2781,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2785,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2785,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2786,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2790,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2790,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2791,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2795,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2795,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2796,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2800,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2800,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2801,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2805,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2805,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2806,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2810,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2810,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2811,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2814,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2817,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2820
      start: 2633
    functionDepth: 1
    functionLinenumber: 2633
    functionLinenumberEnd: 2820
    functionName: feed_post_mortem_linux
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - fclose
    - stat
    - strcmp
    - read_line_to_trash
    - strchr
    - strtoul
    - strncmp
    - strlcpy2
    - fopen
    - strstr
    - fgets
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void feed_post_mortem_linux()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/haproxy/src/debug.c:2831,1
    - Dst: uname
      Src: /src/haproxy/src/debug.c:2835,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2840,1
    - Dst: stat
      Src: /src/haproxy/src/debug.c:2841,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2843,1
    - Dst: stat
      Src: /src/haproxy/src/debug.c:2844,1
    - Dst: fopen
      Src: /src/haproxy/src/debug.c:2850,1
    - Dst: fgets
      Src: /src/haproxy/src/debug.c:2854,1
    - Dst: strncmp
      Src: /src/haproxy/src/debug.c:2856,1
    - Dst: strchr
      Src: /src/haproxy/src/debug.c:2859,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2864,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2873,1
    - Dst: fclose
      Src: /src/haproxy/src/debug.c:2877,1
    - Dst: getpid
      Src: /src/haproxy/src/debug.c:2881,1
    - Dst: geteuid
      Src: /src/haproxy/src/debug.c:2882,1
    - Dst: getegid
      Src: /src/haproxy/src/debug.c:2883,1
    - Dst: capget
      Src: /src/haproxy/src/debug.c:2888,1
    - Dst: getrlimit
      Src: /src/haproxy/src/debug.c:2893,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2895,1
    - Dst: feed_post_mortem_linux
      Src: /src/haproxy/src/debug.c:2896,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:2899,1
    - Dst: dump_libs
      Src: /src/haproxy/src/debug.c:2900,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2901,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2822
    functionDepth: 2
    functionLinenumber: 2822
    functionLinenumberEnd: 2915
    functionName: feed_post_mortem
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - getpid
    - stat
    - capget
    - snprintf
    - uname
    - strcmp
    - strchr
    - fgets
    - strncpy
    - getrlimit
    - fclose
    - strlcpy2
    - chunk_reset
    - strdup
    - dump_libs
    - strncmp
    - getegid
    - geteuid
    - fopen
    - feed_post_mortem_linux
    - strlen
    linkageType: ''
    returnType: int
    signature: int feed_post_mortem()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/debug.c:2924,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2927,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2928,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2929,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2930,1
    - Dst: ha_free
      Src: /src/haproxy/src/debug.c:2932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2933
      start: 2919
    functionDepth: 1
    functionLinenumber: 2919
    functionLinenumberEnd: 2933
    functionName: deinit_post_mortem
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - ha_free
    - free
    linkageType: ''
    returnType: void
    signature: void deinit_post_mortem(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/haproxy/src/debug.c:2948,1
    - Dst: memset
      Src: /src/haproxy/src/debug.c:2952,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2953,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2954,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2955,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2956,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2957,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - name
    - version
    - toolchain
    - toolchain_opts
    - build_settings
    - path
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2941
    functionDepth: 1
    functionLinenumber: 2941
    functionLinenumberEnd: 2962
    functionName: post_mortem_add_component
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - strlcpy2
    - realloc
    - memset
    - strdup
    linkageType: ''
    returnType: void
    signature: "void post_mortem_add_component(const char *name, const char *version,\n\t\t\t
      \      const char *toolchain, const char *toolchain_opts,\n\t\t\t       const
      char *build_settings, const char *path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/debug.c:2973,1
    - Dst: geteuid
      Src: /src/haproxy/src/debug.c:2979,1
    - Dst: getegid
      Src: /src/haproxy/src/debug.c:2980,1
    - Dst: capget
      Src: /src/haproxy/src/debug.c:2982,1
    - Dst: getrlimit
      Src: /src/haproxy/src/debug.c:2986,1
    - Dst: getrlimit
      Src: /src/haproxy/src/debug.c:2987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2969
    functionDepth: 1
    functionLinenumber: 2969
    functionLinenumberEnd: 2990
    functionName: feed_post_mortem_late
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - HA_ATOMIC_ADD_FETCH
    - getegid
    - geteuid
    - capget
    linkageType: ''
    returnType: int
    signature: int feed_post_mortem_late()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/debug.c:3004,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/debug.c:3006,1
    - Dst: fprintf
      Src: /src/haproxy/src/debug.c:3007,1
    - Dst: fprintf
      Src: /src/haproxy/src/debug.c:3012,1
    - Dst: fprintf
      Src: /src/haproxy/src/debug.c:3014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3015
      start: 2999
    functionDepth: 0
    functionLinenumber: 2999
    functionLinenumberEnd: 3015
    functionName: list_unittests
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - fprintf
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void list_unittests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/debug.c:3025,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:3028,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:3029,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:3031,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:3032,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:3034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3021
    functionDepth: 1
    functionLinenumber: 3021
    functionLinenumberEnd: 3038
    functionName: cfg_parse_debug_counters
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - HA_ATOMIC_STORE
    - strcmp
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_debug_counters(char **args, int section_type, struct
      proxy *curpx,\n                                    const struct proxy *defpx,
      const char *file, int line,\n                                    char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ebis_lookup
      Src: /src/haproxy/src/ebistree.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: ebis_lookup
    functionSourceFile: /src/haproxy/src/ebistree.c
    functionUses: 3
    functionsReached:
    - __ebis_lookup
    linkageType: ''
    returnType: struct ebpt_node
    signature: struct ebpt_node *ebis_lookup(struct eb_root *root, const char *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ebis_insert
      Src: /src/haproxy/src/ebistree.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: ebis_insert
    functionSourceFile: /src/haproxy/src/ebistree.c
    functionUses: 4
    functionsReached:
    - __ebis_insert
    linkageType: ''
    returnType: struct ebpt_node
    signature: struct ebpt_node *ebis_insert(struct eb_root *root, struct ebpt_node
      *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DISGUISE
      Src: /src/haproxy/src/activity.c:124,1
    - Dst: write
      Src: /src/haproxy/src/activity.c:124,1
    - Dst: strlen
      Src: /src/haproxy/src/activity.c:124,1
    - Dst: exit
      Src: /src/haproxy/src/activity.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: memprof_die
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - DISGUISE
    - write
    - exit
    - strlen
    linkageType: ''
    returnType: void
    signature: void memprof_die(const char *msg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:141,1
    - Dst: memprof_die
      Src: /src/haproxy/src/activity.c:143,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:145,1
    - Dst: memprof_die
      Src: /src/haproxy/src/activity.c:147,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:149,1
    - Dst: memprof_die
      Src: /src/haproxy/src/activity.c:151,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:153,1
    - Dst: memprof_die
      Src: /src/haproxy/src/activity.c:155,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:157,1
    - Dst: memprof_die
      Src: /src/haproxy/src/activity.c:159,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:164,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:165,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:166,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:167,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:168,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 172
    functionName: memprof_init
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_die
    - get_sym_next_addr
    linkageType: ''
    returnType: void
    signature: void memprof_init()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprof_init
      Src: /src/haproxy/src/activity.c:185,1
    - Dst: memprof_malloc_handler
      Src: /src/haproxy/src/activity.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: memprof_malloc_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_init
    - memprof_malloc_handler
    linkageType: ''
    returnType: void
    signature: void *memprof_malloc_initial_handler(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprof_init
      Src: /src/haproxy/src/activity.c:195,1
    - Dst: memprof_calloc_handler
      Src: /src/haproxy/src/activity.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: memprof_calloc_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_init
    - memprof_calloc_handler
    linkageType: ''
    returnType: void
    signature: void *memprof_calloc_initial_handler(size_t nmemb, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprof_init
      Src: /src/haproxy/src/activity.c:206,1
    - Dst: memprof_realloc_handler
      Src: /src/haproxy/src/activity.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: memprof_realloc_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_init
    - memprof_realloc_handler
    linkageType: ''
    returnType: void
    signature: void *memprof_realloc_initial_handler(void *ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprof_init
      Src: /src/haproxy/src/activity.c:217,1
    - Dst: memprof_strdup_handler
      Src: /src/haproxy/src/activity.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: memprof_strdup_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_init
    - memprof_strdup_handler
    linkageType: ''
    returnType: char
    signature: char *memprof_strdup_initial_handler(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprof_init
      Src: /src/haproxy/src/activity.c:223,1
    - Dst: memprof_free_handler
      Src: /src/haproxy/src/activity.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: memprof_free_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_init
    - memprof_free_handler
    linkageType: ''
    returnType: void
    signature: void memprof_free_initial_handler(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprof_init
      Src: /src/haproxy/src/activity.c:236,1
    - Dst: memprof_strndup_handler
      Src: /src/haproxy/src/activity.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: memprof_strndup_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_init
    - memprof_strndup_handler
    linkageType: ''
    returnType: char
    signature: char *memprof_strndup_initial_handler(const char *s, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprof_init
      Src: /src/haproxy/src/activity.c:247,1
    - Dst: memprof_valloc_handler
      Src: /src/haproxy/src/activity.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: memprof_valloc_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_init
    - memprof_valloc_handler
    linkageType: ''
    returnType: void
    signature: void *memprof_valloc_initial_handler(size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprof_init
      Src: /src/haproxy/src/activity.c:258,1
    - Dst: memprof_pvalloc_handler
      Src: /src/haproxy/src/activity.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 260
    functionName: memprof_pvalloc_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_init
    - memprof_pvalloc_handler
    linkageType: ''
    returnType: void
    signature: void *memprof_pvalloc_initial_handler(size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprof_init
      Src: /src/haproxy/src/activity.c:269,1
    - Dst: memprof_memalign_handler
      Src: /src/haproxy/src/activity.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - al
    - sz
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: memprof_memalign_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_init
    - memprof_memalign_handler
    linkageType: ''
    returnType: void
    signature: void *memprof_memalign_initial_handler(size_t al, size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprof_init
      Src: /src/haproxy/src/activity.c:280,1
    - Dst: memprof_aligned_alloc_handler
      Src: /src/haproxy/src/activity.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - al
    - sz
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: memprof_aligned_alloc_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_init
    - memprof_aligned_alloc_handler
    linkageType: ''
    returnType: void
    signature: void *memprof_aligned_alloc_initial_handler(size_t al, size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprof_init
      Src: /src/haproxy/src/activity.c:291,1
    - Dst: memprof_posix_memalign_handler
      Src: /src/haproxy/src/activity.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - al
    - sz
    argTypes:
    - void**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: memprof_posix_memalign_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_init
    - memprof_posix_memalign_handler
    linkageType: ''
    returnType: int
    signature: int memprof_posix_memalign_initial_handler(void **ptr, size_t al, size_t
      sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:307,1
    - Dst: _ptr2_hash_arg
      Src: /src/haproxy/src/activity.c:311,1
    - Dst: _ptr_hash_reduce
      Src: /src/haproxy/src/activity.c:312,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:324,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - ra
    - meth
    argTypes:
    - void*
    - enum memprof_method
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 332
    functionName: memprof_get_bin
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HA_ATOMIC_CAS
    - _ptr_hash_reduce
    - _ptr2_hash_arg
    linkageType: ''
    returnType: struct memprof_stats
    signature: struct memprof_stats *memprof_get_bin(const void *ra, enum memprof_method
      meth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/activity.c:347,1
    - Dst: memprof_malloc_handler
      Src: /src/haproxy/src/activity.c:348,1
    - Dst: memprof_malloc_handler
      Src: /src/haproxy/src/activity.c:350,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:351,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:353,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:353,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:354,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:355,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:356,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 359
    functionName: malloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 66
    functionsReached:
    - unlikely
    - malloc_usable_size
    - _HA_ATOMIC_ADD
    - memprof_malloc_handler
    - likely
    - memprof_get_bin
    - __builtin_return_address
    linkageType: ''
    returnType: void
    signature: void *malloc(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/activity.c:374,1
    - Dst: memprof_calloc_handler
      Src: /src/haproxy/src/activity.c:375,1
    - Dst: memprof_calloc_handler
      Src: /src/haproxy/src/activity.c:377,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:378,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:380,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:380,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:381,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:382,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:383,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 386
    functionName: calloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 88
    functionsReached:
    - unlikely
    - malloc_usable_size
    - __builtin_return_address
    - _HA_ATOMIC_ADD
    - likely
    - memprof_get_bin
    - memprof_calloc_handler
    linkageType: ''
    returnType: void
    signature: void *calloc(size_t nmemb, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/activity.c:404,1
    - Dst: memprof_realloc_handler
      Src: /src/haproxy/src/activity.c:405,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:407,1
    - Dst: memprof_realloc_handler
      Src: /src/haproxy/src/activity.c:408,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:409,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:415,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:415,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:416,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:417,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:419,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:420,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:422,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:423,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 426
    functionName: realloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 11
    functionsReached:
    - unlikely
    - malloc_usable_size
    - memprof_realloc_handler
    - _HA_ATOMIC_ADD
    - likely
    - memprof_get_bin
    - __builtin_return_address
    linkageType: ''
    returnType: void
    signature: void *realloc(void *ptr, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/activity.c:442,1
    - Dst: memprof_strdup_handler
      Src: /src/haproxy/src/activity.c:443,1
    - Dst: memprof_strdup_handler
      Src: /src/haproxy/src/activity.c:445,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:446,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:448,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:448,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:449,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:450,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:451,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 454
    functionName: strdup
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 76
    functionsReached:
    - unlikely
    - malloc_usable_size
    - _HA_ATOMIC_ADD
    - memprof_strdup_handler
    - likely
    - memprof_get_bin
    - __builtin_return_address
    linkageType: ''
    returnType: char
    signature: char *strdup(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/activity.c:472,1
    - Dst: memprof_free_handler
      Src: /src/haproxy/src/activity.c:473,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:477,1
    - Dst: memprof_free_handler
      Src: /src/haproxy/src/activity.c:478,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:480,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:480,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:481,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:482,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:483,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 485
    functionName: free
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 388
    functionsReached:
    - unlikely
    - malloc_usable_size
    - memprof_free_handler
    - _HA_ATOMIC_ADD
    - likely
    - memprof_get_bin
    - __builtin_return_address
    linkageType: ''
    returnType: void
    signature: void free(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprof_strndup_handler
      Src: /src/haproxy/src/activity.c:497,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:498,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:501,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:502,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:502,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:503,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:504,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:505,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 508
    functionName: strndup
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 5
    functionsReached:
    - unlikely
    - malloc_usable_size
    - _HA_ATOMIC_ADD
    - memprof_strndup_handler
    - likely
    - memprof_get_bin
    - __builtin_return_address
    linkageType: ''
    returnType: char
    signature: char *strndup(const char *s, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprof_valloc_handler
      Src: /src/haproxy/src/activity.c:518,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:519,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:522,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:523,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:523,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:524,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:525,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:526,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 529
    functionName: valloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - unlikely
    - malloc_usable_size
    - memprof_valloc_handler
    - _HA_ATOMIC_ADD
    - likely
    - memprof_get_bin
    - __builtin_return_address
    linkageType: ''
    returnType: void
    signature: void *valloc(size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprof_pvalloc_handler
      Src: /src/haproxy/src/activity.c:539,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:540,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:543,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:544,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:544,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:545,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:546,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:547,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 550
    functionName: pvalloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - unlikely
    - malloc_usable_size
    - _HA_ATOMIC_ADD
    - likely
    - memprof_get_bin
    - memprof_pvalloc_handler
    - __builtin_return_address
    linkageType: ''
    returnType: void
    signature: void *pvalloc(size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprof_memalign_handler
      Src: /src/haproxy/src/activity.c:560,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:561,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:564,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:565,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:565,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:566,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:567,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:568,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - align
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 571
    functionName: memalign
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - unlikely
    - malloc_usable_size
    - __builtin_return_address
    - _HA_ATOMIC_ADD
    - likely
    - memprof_get_bin
    - memprof_memalign_handler
    linkageType: ''
    returnType: void
    signature: void *memalign(size_t align, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprof_aligned_alloc_handler
      Src: /src/haproxy/src/activity.c:581,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:582,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:585,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:586,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:586,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:587,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:588,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:589,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - align
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 592
    functionName: aligned_alloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 2
    functionsReached:
    - unlikely
    - malloc_usable_size
    - _HA_ATOMIC_ADD
    - likely
    - memprof_get_bin
    - __builtin_return_address
    - memprof_aligned_alloc_handler
    linkageType: ''
    returnType: void
    signature: void *aligned_alloc(size_t align, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprof_posix_memalign_handler
      Src: /src/haproxy/src/activity.c:602,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:603,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:609,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:610,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:610,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:611,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:612,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:613,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ptr
    - align
    - size
    argTypes:
    - void**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 616
    functionName: posix_memalign
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - unlikely
    - malloc_usable_size
    - memprof_posix_memalign_handler
    - _HA_ATOMIC_ADD
    - likely
    - memprof_get_bin
    - __builtin_return_address
    linkageType: ''
    returnType: int
    signature: int posix_memalign(void **ptr, size_t align, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/activity.c:630,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 633
    functionName: memprof_remove_stale_info
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_STORE
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void memprof_remove_stale_info(const void *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/activity.c:643,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/activity.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stolen
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: report_stolen_time
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 1
    functionsReached:
    - update_freq_ctr
    - update_freq_ctr_period
    linkageType: ''
    returnType: void
    signature: void report_stolen_time(uint64_t stolen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: swrate_add
      Src: /src/haproxy/src/activity.c:662,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/activity.c:668,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:669,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/activity.c:671,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/activity.c:674,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/activity.c:676,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/activity.c:679,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/activity.c:681,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/activity.c:683,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:686,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/activity.c:688,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/activity.c:689,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - run_time
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 691
    functionName: activity_count_runtime
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 1
    functionsReached:
    - unlikely
    - _HA_ATOMIC_LOAD
    - swrate_add
    - _HA_ATOMIC_AND
    - swrate_avg
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void activity_count_runtime(uint32_t run_time)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/activity.c:699,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:702,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:704,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:706,1
    - Dst: memprintf
      Src: /src/haproxy/src/activity.c:709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 713
    functionName: cfg_parse_prof_memory
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - HA_ATOMIC_STORE
    - strcmp
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_prof_memory(char **args, int section_type, struct proxy
      *curpx,\n                                const struct proxy *defpx, const char
      *file, int line,\n                                char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:726,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:728,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:730,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:732,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:734,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:736,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:738,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:740,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:742,1
    - Dst: memprintf
      Src: /src/haproxy/src/activity.c:750,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 754
    functionName: cfg_parse_prof_tasks
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - strcmp
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_prof_tasks(char **args, int section_type, struct proxy
      *curpx,\n                                const struct proxy *defpx, const char
      *file, int line,\n                                char **err)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/activity.c:761,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:764,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:766,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:770,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:773,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:774,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:778,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:779,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:780,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:781,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:782,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:783,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:786,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:789,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/activity.c:792,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:793,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:796,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:799,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:803,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:804,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:807,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:811,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:814,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:815,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:819,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:820,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:821,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:822,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:823,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:824,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:825,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:826,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:829,1
    - Dst: HA_PROF_TASKS_AON::HA_PROF_TASKS_AON
      Src: /src/haproxy/src/activity.c:835,1
    - Dst: HA_PROF_TASKS_AOFF::HA_PROF_TASKS_AOFF
      Src: /src/haproxy/src/activity.c:837,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:838,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:840,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:841,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:843,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:845,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/activity.c:848,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:849,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:851,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/activity.c:852,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:853,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/activity.c:854,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:855,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/activity.c:856,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:857,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/activity.c:858,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:865,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 868
    functionName: cli_parse_set_profiling
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - HA_PROF_TASKS_AON::HA_PROF_TASKS_AON
    - HA_ATOMIC_LOAD
    - HA_PROF_TASKS_AOFF::HA_PROF_TASKS_AOFF
    - strcmp
    - HA_ATOMIC_OR
    - _HA_ATOMIC_CAS
    - HA_ATOMIC_AND
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_profiling(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 881
    functionName: cmp_sched_activity_calls
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_sched_activity_calls(const void *a, const void *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 899
    functionName: cmp_sched_activity_addr
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_sched_activity_addr(const void *a, const void *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 917
    functionName: cmp_sched_activity_cpu
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_sched_activity_cpu(const void *a, const void *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 940
    functionName: cmp_memprof_stats
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_memprof_stats(const void *a, const void *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 961
    functionName: cmp_memprof_addr
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_memprof_addr(const void *a, const void *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 994
    functionName: cmp_memprof_ctx
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_memprof_ctx(const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptr2_hash
      Src: /src/haproxy/src/activity.c:1005,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:1014,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:1015,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:1024,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - array
    - func
    - caller
    argTypes:
    - struct sched_activity*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1033
    functionName: sched_activity_entry
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_CAS
    - ptr2_hash
    - likely
    linkageType: ''
    returnType: struct sched_activity
    signature: struct sched_activity *sched_activity_entry(struct sched_activity *array,
      const void *func, const void *caller)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/activity.c:1059,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/activity.c:1066,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/activity.c:1078,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1083,1
    - Dst: ha_aligned_alloc
      Src: /src/haproxy/src/activity.c:1103,1
    - Dst: memcpy
      Src: /src/haproxy/src/activity.c:1108,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1112,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1130,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1132,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1136,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/activity.c:1156,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/activity.c:1157,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/activity.c:1160,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/activity.c:1162,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1170,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1172,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1173,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1174,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1175,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1176,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1177,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1180,1
    - Dst: task_wakeup_type_str
      Src: /src/haproxy/src/activity.c:1182,1
    - Dst: b_putchr
      Src: /src/haproxy/src/activity.c:1184,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1186,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1193,1
    - Dst: ha_free
      Src: /src/haproxy/src/activity.c:1199,1
    - Dst: ha_aligned_alloc
      Src: /src/haproxy/src/activity.c:1217,1
    - Dst: memcpy
      Src: /src/haproxy/src/activity.c:1222,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1225,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1227,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1229,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1258,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1281,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/activity.c:1287,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1289,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1292,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1295,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1300,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1306,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1312,1
    - Dst: chunk_append_thread_ctx
      Src: /src/haproxy/src/activity.c:1318,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1319,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1321,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1327,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/activity.c:1352,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/activity.c:1354,1
    - Dst: resolve_dso_name
      Src: /src/haproxy/src/activity.c:1356,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1360,1
    - Dst: strdup
      Src: /src/haproxy/src/activity.c:1373,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1401,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1408,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1414,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1417,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1420,1
    - Dst: ha_free
      Src: /src/haproxy/src/activity.c:1430,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1432,1
    - Dst: ha_free
      Src: /src/haproxy/src/activity.c:1436,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 250
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1050
    functionDepth: 2
    functionLinenumber: 1050
    functionLinenumberEnd: 1445
    functionName: cli_io_handler_show_profiling
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ha_aligned_alloc
    - HA_ATOMIC_LOAD
    - chunk_printf
    - task_wakeup_type_str
    - qsort
    - chunk_appendf
    - ha_free
    - get_trash_chunk
    - resolve_sym_name
    - print_time_short
    - chunk_append_thread_ctx
    - resolve_dso_name
    - strcmp
    - b_putchr
    - chunk_reset
    - strdup
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_profiling(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/activity.c:1452,1
    - Dst: ha_free
      Src: /src/haproxy/src/activity.c:1453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1448
    functionDepth: 1
    functionLinenumber: 1448
    functionLinenumberEnd: 1454
    functionName: cli_release_show_profiling
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void cli_release_show_profiling(struct appctx *appctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/activity.c:1463,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/activity.c:1466,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1470,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1473,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1476,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1479,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1482,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1485,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1488,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1491,1
    - Dst: isdigit
      Src: /src/haproxy/src/activity.c:1494,1
    - Dst: atoi
      Src: /src/haproxy/src/activity.c:1495,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:1498,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1461
    functionDepth: 2
    functionLinenumber: 1461
    functionLinenumberEnd: 1501
    functionName: cli_parse_show_profiling
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - strcmp
    - applet_reserve_svcctx
    - isdigit
    - atoi
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_profiling(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/activity.c:1510,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/activity.c:1534,1
    - Dst: memset
      Src: /src/haproxy/src/activity.c:1535,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/activity.c:1537,1
    - Dst: eb32_first
      Src: /src/haproxy/src/activity.c:1544,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/activity.c:1546,1
    - Dst: sched_activity_entry
      Src: /src/haproxy/src/activity.c:1547,1
    - Dst: eb32_next
      Src: /src/haproxy/src/activity.c:1555,1
    - Dst: eb32_first
      Src: /src/haproxy/src/activity.c:1562,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/activity.c:1564,1
    - Dst: sched_activity_entry
      Src: /src/haproxy/src/activity.c:1565,1
    - Dst: eb32_next
      Src: /src/haproxy/src/activity.c:1573,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/activity.c:1577,1
    - Dst: mt_list_to_list
      Src: /src/haproxy/src/activity.c:1577,1
    - Dst: sched_activity_entry
      Src: /src/haproxy/src/activity.c:1579,1
    - Dst: TASK_IS_TASKLET
      Src: /src/haproxy/src/activity.c:1580,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/activity.c:1591,1
    - Dst: sched_activity_entry
      Src: /src/haproxy/src/activity.c:1593,1
    - Dst: TASK_IS_TASKLET
      Src: /src/haproxy/src/activity.c:1594,1
    - Dst: thread_release
      Src: /src/haproxy/src/activity.c:1606,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/activity.c:1608,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1617,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1619,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/activity.c:1624,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/activity.c:1627,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/activity.c:1629,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1637,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1641,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1642,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1643,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1649,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 85
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1507
    functionDepth: 2
    functionLinenumber: 1507
    functionLinenumberEnd: 1654
    functionName: cli_io_handler_show_tasks
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - TASK_IS_TASKLET
    - chunk_appendf
    - get_trash_chunk
    - eb32_next
    - print_time_short
    - thread_isolate
    - chunk_printf
    - qsort
    - now_mono_time
    - thread_release
    - eb32_entry
    - chunk_reset
    - resolve_sym_name
    - memset
    - sched_activity_entry
    - list_for_each_entry
    - mt_list_to_list
    - eb32_first
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_tasks(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1662
    functionDepth: 1
    functionLinenumber: 1662
    functionLinenumberEnd: 1696
    functionName: cli_io_handler_show_activity
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_activity(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - header
    - ','
    - x
    - ','
    - formula
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1681
    functionDepth: 0
    functionLinenumber: 1681
    functionLinenumberEnd: 1694
    functionName: SHOW_VAL
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHOW_VAL(header, x, formula)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/activity.c:1812,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/activity.c:1814,1
    - Dst: atoi
      Src: /src/haproxy/src/activity.c:1819,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:1822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1810
    functionDepth: 2
    functionLinenumber: 1810
    functionLinenumberEnd: 1825
    functionName: cli_parse_show_activity
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - atoi
    - cli_has_level
    - cli_err
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_activity(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_nocc.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: quic_cc_nocc_init
    functionSourceFile: /src/haproxy/src/quic_cc_nocc.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: int
    signature: int quic_cc_nocc_init(struct quic_cc *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: quic_cc_nocc_slow_start
    functionSourceFile: /src/haproxy/src/quic_cc_nocc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_cc_nocc_slow_start(struct quic_cc *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_nocc.c:29,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_nocc.c:30,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_nocc.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: quic_cc_nocc_ss_cb
    functionSourceFile: /src/haproxy/src/quic_cc_nocc.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void quic_cc_nocc_ss_cb(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_nocc.c:37,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_nocc.c:38,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_nocc.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: quic_cc_nocc_ca_cb
    functionSourceFile: /src/haproxy/src/quic_cc_nocc.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void quic_cc_nocc_ca_cb(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_nocc.c:45,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_nocc.c:46,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_nocc.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: quic_cc_nocc_rp_cb
    functionSourceFile: /src/haproxy/src/quic_cc_nocc.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void quic_cc_nocc_rp_cb(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_nocc.c:54,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cc_nocc.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - cc
    argTypes:
    - struct buffer*
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: quic_cc_nocc_state_trace
    functionSourceFile: /src/haproxy/src/quic_cc_nocc.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - container_of
    linkageType: ''
    returnType: void
    signature: void quic_cc_nocc_state_trace(struct buffer *buf, const struct quic_cc
      *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: quic_cc_nocc_event
    functionSourceFile: /src/haproxy/src/quic_cc_nocc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_cc_nocc_event(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: EXTRA_COUNTERS_BASE
      Src: /src/haproxy/src/quic_stats.c:107,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:111,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:111,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:114,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:114,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:117,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:117,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:120,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:120,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:123,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:123,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:126,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:126,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:129,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:129,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:132,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:132,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:135,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:135,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:138,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:138,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:141,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:141,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:144,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:144,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:147,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:147,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:150,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:150,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:153,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:153,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:156,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:156,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:161,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:161,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:166,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:166,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:169,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:169,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:172,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:172,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:175,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:175,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:178,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:178,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:181,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:181,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:184,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:184,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:187,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:187,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:190,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:190,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:193,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:193,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:196,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:196,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:199,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:199,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:202,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:202,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:205,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:205,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:208,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:208,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:211,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:211,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:214,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:214,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:217,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:217,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:220,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:220,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:225,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:225,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:228,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:228,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:231,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:231,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:234,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:234,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:237,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/quic_stats.c:237,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 142
    argCount: 4
    argNames:
    - mod
    - ctr
    - stats
    - selected_field
    argTypes:
    - struct stats_module*
    - struct extra_counters*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 253
    functionName: quic_fill_stats
    functionSourceFile: /src/haproxy/src/quic_stats.c
    functionUses: 0
    functionsReached:
    - EXTRA_COUNTERS_AGGR
    - mkf_u64
    - EXTRA_COUNTERS_BASE
    linkageType: ''
    returnType: int
    signature: "int quic_fill_stats(struct stats_module *mod, struct extra_counters
      *ctr,\n                           struct field *stats, unsigned int *selected_field)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:272,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:275,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:278,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:281,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:284,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:287,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:290,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:293,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:296,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:299,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:302,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:305,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:308,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:311,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:314,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:317,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:320,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:324,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:326,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 2
    argNames:
    - ctrs
    - error_code
    argTypes:
    - struct quic_counters*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 328
    functionName: quic_stats_transp_err_count_inc
    functionSourceFile: /src/haproxy/src/quic_stats.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void quic_stats_transp_err_count_inc(struct quic_counters *ctrs, int
      error_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pt
    argTypes:
    - struct mux_pt_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: pt_sc
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline *pt_sc(const struct mux_pt_ctx *pt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_pt.c:107,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/mux_pt.c:113,1
    - Dst: dump_text_line
      Src: /src/haproxy/src/mux_pt.c:118,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_pt.c:118,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_pt.c:118,1
    - Dst: dump_text_line
      Src: /src/haproxy/src/mux_pt.c:126,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_pt.c:126,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_pt.c:126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - buf
    - ofs
    - len
    argTypes:
    - struct buffer*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 131
    functionName: pt_trace_buf
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - b_orig
    - b_contig_data
    - b_peek_ofs
    - dump_text_line
    - b_size
    linkageType: ''
    returnType: void
    signature: void pt_trace_buf(const struct buffer *buf, size_t ofs, size_t len)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_pt.c:151,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_pt.c:151,1
    - Dst: pt_sc
      Src: /src/haproxy/src/mux_pt.c:157,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_pt.c:161,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_pt.c:164,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_pt.c:165,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_pt.c:165,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_pt.c:167,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_pt.c:187,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_pt.c:188,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_pt.c:188,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_pt.c:189,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_pt.c:189,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_pt.c:191,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_pt.c:192,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_pt.c:193,1
    - Dst: pt_trace_buf
      Src: /src/haproxy/src/mux_pt.c:194,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_pt.c:194,1
    - Dst: pt_trace_buf
      Src: /src/haproxy/src/mux_pt.c:196,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_pt.c:197,1
    - Dst: pt_trace_buf
      Src: /src/haproxy/src/mux_pt.c:198,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_pt.c:198,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 202
    functionName: pt_trace
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - pt_trace_buf
    - pt_sc
    - b_orig
    - se_fl_get
    - chunk_appendf
    - b_head_ofs
    - chunk_memcat
    - b_data
    - b_size
    linkageType: ''
    returnType: void
    signature: "void pt_trace(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n                     const struct ist where, const struct
      ist func,\n                     const void *a1, const void *a2, const void *a3,
      const void *a4)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_pt.c:209,1
    - Dst: tevt_report_event
      Src: /src/haproxy/src/mux_pt.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - struct mux_pt_ctx*
    - enum muxc_term_event_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: mux_pt_report_term_evt
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - tevt_report_event
    linkageType: ''
    returnType: void
    signature: void mux_pt_report_term_evt(struct mux_pt_ctx *ctx, enum muxc_term_event_type
      type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_pt.c:218,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_pt.c:224,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_pt.c:227,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_pt.c:229,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_pt.c:229,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_pt.c:230,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_pt.c:231,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:236,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/mux_pt.c:238,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/mux_pt.c:239,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/mux_pt.c:241,1
    - Dst: conn_free
      Src: /src/haproxy/src/mux_pt.c:242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct mux_pt_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 244
    functionName: mux_pt_destroy
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - conn_full_close
    - BUG_ON
    - conn_free
    - TRACE_DEVEL
    - tasklet_free
    - TRACE_POINT
    - struct connection*::destroy_cb
    - pool_free
    - se_fl_test
    - conn_stop_tracking
    - struct connection*::xprt::unsubscribe
    - sedesc_free
    linkageType: ''
    returnType: void
    signature: void mux_pt_destroy(struct mux_pt_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:253,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_pt.c:254,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_pt.c:268,1
    - Dst: pt_sc
      Src: /src/haproxy/src/mux_pt.c:268,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:270,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/mux_pt.c:273,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:275,1
    - Dst: mux_pt_destroy
      Src: /src/haproxy/src/mux_pt.c:276,1
    - Dst: struct mux_pt_ctx*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_pt.c:280,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - t
    - tctx
    - status
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 286
    functionName: mux_pt_io_cb
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - pt_sc
    - mux_pt_destroy
    - tasklet_wakeup
    - TRACE_ENTER
    - TRACE_DEVEL
    - struct mux_pt_ctx*::conn::xprt::subscribe
    - conn_ctrl_drain
    - se_fl_test
    linkageType: ''
    returnType: struct task
    signature: struct task *mux_pt_io_cb(struct task *t, void *tctx, unsigned int
      status)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_pt.c:297,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:299,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_pt.c:302,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_pt.c:306,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/mux_pt.c:316,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_pt.c:318,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:323,1
    - Dst: sc_new_from_endp
      Src: /src/haproxy/src/mux_pt.c:325,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_pt.c:327,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_pt.c:330,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_pt.c:333,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:338,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:340,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:342,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_pt.c:346,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_pt.c:348,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_pt.c:349,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:351,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 4
    argNames:
    - conn
    - prx
    - sess
    - input
    argTypes:
    - struct connection*
    - struct proxy*
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 353
    functionName: mux_pt_init
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - pool_alloc
    - TRACE_ERROR
    - sc_attach_mux
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - tasklet_new
    - TRACE_POINT
    - sc_new_from_endp
    - sedesc_new
    - pool_free
    - tasklet_free
    - sedesc_free
    linkageType: ''
    returnType: int
    signature: "int mux_pt_init(struct connection *conn, struct proxy *prx, struct
      session *sess,\n\t\t       struct buffer *input)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:363,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_pt.c:364,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_pt.c:365,1
    - Dst: pt_sc
      Src: /src/haproxy/src/mux_pt.c:365,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/mux_pt.c:367,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:369,1
    - Dst: mux_pt_destroy
      Src: /src/haproxy/src/mux_pt.c:370,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 358
    functionDepth: 4
    functionLinenumber: 358
    functionLinenumberEnd: 384
    functionName: mux_pt_wake
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - pt_sc
    - TRACE_LEAVE
    - mux_pt_destroy
    - tasklet_wakeup
    - TRACE_ENTER
    - TRACE_DEVEL
    - conn_ctrl_drain
    - se_fl_test
    linkageType: ''
    returnType: int
    signature: int mux_pt_wake(struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:394,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_pt.c:396,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_pt.c:397,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:400,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:402,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - conn
    - sd
    - sess
    argTypes:
    - struct connection*
    - struct sedesc*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 406
    functionName: mux_pt_attach
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - TRACE_LEAVE
    - sc_attach_mux
    - TRACE_ENTER
    - struct connection*::xprt::unsubscribe
    linkageType: ''
    returnType: int
    signature: int mux_pt_attach(struct connection *conn, struct sedesc *sd, struct
      session *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pt_sc
      Src: /src/haproxy/src/mux_pt.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: mux_pt_get_first_sc
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - pt_sc
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *mux_pt_get_first_sc(const struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_pt.c:424,1
    - Dst: pt_sc
      Src: /src/haproxy/src/mux_pt.c:424,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_pt.c:425,1
    - Dst: mux_pt_destroy
      Src: /src/haproxy/src/mux_pt.c:429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 420
    functionDepth: 4
    functionLinenumber: 420
    functionLinenumberEnd: 431
    functionName: mux_pt_destroy_meth
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - mux_pt_destroy
    - se_fl_test
    - pt_sc
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void mux_pt_destroy_meth(void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:441,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_pt.c:446,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_pt.c:448,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:451,1
    - Dst: mux_pt_destroy
      Src: /src/haproxy/src/mux_pt.c:452,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 436
    functionDepth: 4
    functionLinenumber: 436
    functionLinenumberEnd: 456
    functionName: mux_pt_detach
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - TRACE_LEAVE
    - mux_pt_destroy
    - TRACE_DEVEL
    - TRACE_ENTER
    - struct connection*::xprt::subscribe
    linkageType: ''
    returnType: void
    signature: void mux_pt_detach(struct sedesc *sd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_pt.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: mux_pt_used_streams
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - se_fl_test
    linkageType: ''
    returnType: int
    signature: int mux_pt_used_streams(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mux_pt_used_streams
      Src: /src/haproxy/src/mux_pt.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: mux_pt_avail_streams
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - mux_pt_used_streams
    linkageType: ''
    returnType: int
    signature: int mux_pt_avail_streams(struct connection *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/mux_pt.c:474,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:477,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:479,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/mux_pt.c:481,1
    - Dst: struct connection*::xprt::shutw
      Src: /src/haproxy/src/mux_pt.c:482,1
    - Dst: conn_sock_shutw
      Src: /src/haproxy/src/mux_pt.c:484,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:488,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/mux_pt.c:489,1
    - Dst: struct connection*::xprt::shutr
      Src: /src/haproxy/src/mux_pt.c:490,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/mux_pt.c:492,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:495,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - sc
    - mode
    - reason
    argTypes:
    - struct stconn*
    - unsigned int
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 496
    functionName: mux_pt_shut
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - struct connection*::xprt::shutr
    - conn_xprt_ready
    - TRACE_ENTER
    - mux_pt_report_term_evt
    - __sc_conn
    - se_fl_clr
    - conn_ctrl_drain
    - conn_sock_shutw
    - struct connection*::xprt::shutw
    linkageType: ''
    returnType: void
    signature: void mux_pt_shut(struct stconn *sc, unsigned int mode, struct se_abort_info
      *reason)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/mux_pt.c:513,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:517,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:520,1
    - Dst: b_realign_if_empty
      Src: /src/haproxy/src/mux_pt.c:523,1
    - Dst: struct connection*::xprt::rcv_buf
      Src: /src/haproxy/src/mux_pt.c:524,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:526,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:527,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:528,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:529,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:530,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:531,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:533,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:534,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:535,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:536,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:537,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:540,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 542
    functionName: mux_pt_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - struct connection*::xprt::rcv_buf
    - b_realign_if_empty
    - TRACE_LEAVE
    - conn_xprt_read0_pending
    - TRACE_ENTER
    - TRACE_DEVEL
    - __sc_conn
    - mux_pt_report_term_evt
    - se_fl_clr
    linkageType: ''
    returnType: size_t
    signature: size_t mux_pt_rcv_buf(struct stconn *sc, struct buffer *buf, size_t
      count, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/mux_pt.c:547,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:551,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/mux_pt.c:553,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_pt.c:556,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:559,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:560,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:561,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_pt.c:562,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:563,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 568
    functionName: mux_pt_snd_buf
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - TRACE_LEAVE
    - struct connection*::xprt::snd_buf
    - se_fl_set_error
    - conn_xprt_read0_pending
    - TRACE_ENTER
    - TRACE_DEVEL
    - __sc_conn
    - mux_pt_report_term_evt
    - b_del
    linkageType: ''
    returnType: size_t
    signature: size_t mux_pt_snd_buf(struct stconn *sc, struct buffer *buf, size_t
      count, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_opposite
      Src: /src/haproxy/src/mux_pt.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct mux_pt_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 573
    functionName: mux_pt_opposite_sd
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - se_opposite
    linkageType: ''
    returnType: struct sedesc
    signature: struct sedesc *mux_pt_opposite_sd(struct mux_pt_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/mux_pt.c:577,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:581,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_pt.c:590,1
    - Dst: struct connection*::xprt::get_capability
      Src: /src/haproxy/src/mux_pt.c:594,1
    - Dst: get_pipe
      Src: /src/haproxy/src/mux_pt.c:596,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:615,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:621,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 4
    argNames:
    - sc
    - input
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 623
    functionName: mux_pt_nego_ff
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - get_pipe
    - struct connection*::xprt::get_capability
    - __sc_conn
    - b_data
    linkageType: ''
    returnType: size_t
    signature: size_t mux_pt_nego_ff(struct stconn *sc, struct buffer *input, size_t
      count, unsigned int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/mux_pt.c:627,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:632,1
    - Dst: struct connection*::xprt::snd_pipe
      Src: /src/haproxy/src/mux_pt.c:635,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_pt.c:637,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_pt.c:642,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:647,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:648,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_pt.c:649,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_pt.c:651,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:654,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:657,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 659
    functionName: mux_pt_done_ff
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - TRACE_LEAVE
    - BUG_ON
    - se_fl_set_error
    - struct connection*::xprt::snd_pipe
    - conn_xprt_read0_pending
    - TRACE_ENTER
    - TRACE_DEVEL
    - __sc_conn
    - put_pipe
    linkageType: ''
    returnType: size_t
    signature: size_t mux_pt_done_ff(struct stconn *sc)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/mux_pt.c:663,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:670,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:672,1
    - Dst: mux_pt_opposite_sd
      Src: /src/haproxy/src/mux_pt.c:674,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_pt.c:676,1
    - Dst: struct connection*::xprt::get_capability
      Src: /src/haproxy/src/mux_pt.c:684,1
    - Dst: se_nego_ff
      Src: /src/haproxy/src/mux_pt.c:692,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:695,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:696,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:700,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_pt.c:701,1
    - Dst: struct connection*::xprt::rcv_pipe
      Src: /src/haproxy/src/mux_pt.c:709,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_pt.c:711,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:713,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_pt.c:714,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_pt.c:715,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_pt.c:722,1
    - Dst: se_done_ff
      Src: /src/haproxy/src/mux_pt.c:728,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:731,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:734,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:739,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:740,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:741,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:742,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:743,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:745,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:746,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:747,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:748,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:751,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 3
    argNames:
    - sc
    - count
    - flags
    argTypes:
    - struct stconn*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 753
    functionName: mux_pt_fastfwd
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - TRACE_STATE
    - mux_pt_opposite_sd
    - TRACE_ERROR
    - BUG_ON
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - se_done_ff
    - conn_xprt_read0_pending
    - struct connection*::xprt::get_capability
    - __sc_conn
    - se_fl_clr
    - mux_pt_report_term_evt
    - struct connection*::xprt::rcv_pipe
    - put_pipe
    - se_nego_ff
    linkageType: ''
    returnType: int
    signature: int mux_pt_fastfwd(struct stconn *sc, unsigned int count, unsigned
      int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/mux_pt.c:757,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:762,1
    - Dst: struct connection*::xprt::snd_pipe
      Src: /src/haproxy/src/mux_pt.c:765,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_pt.c:767,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_pt.c:772,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:777,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:778,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:779,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_pt.c:780,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_pt.c:782,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:785,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:788,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - sc
    - flags
    argTypes:
    - struct stconn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 755
    functionDepth: 3
    functionLinenumber: 755
    functionLinenumberEnd: 790
    functionName: mux_pt_resume_fastfwd
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - TRACE_LEAVE
    - BUG_ON
    - se_fl_set_error
    - struct connection*::xprt::snd_pipe
    - conn_xprt_read0_pending
    - TRACE_ENTER
    - TRACE_DEVEL
    - __sc_conn
    - mux_pt_report_term_evt
    - put_pipe
    linkageType: ''
    returnType: int
    signature: int mux_pt_resume_fastfwd(struct stconn *sc, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/mux_pt.c:799,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_pt.c:801,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_pt.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 803
    functionName: mux_pt_subscribe
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - struct connection*::xprt::subscribe
    - __sc_conn
    - TRACE_POINT
    linkageType: ''
    returnType: int
    signature: int mux_pt_subscribe(struct stconn *sc, int event_type, struct wait_event
      *es)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/mux_pt.c:811,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_pt.c:813,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_pt.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 815
    functionName: mux_pt_unsubscribe
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - __sc_conn
    - struct connection*::xprt::unsubscribe
    - TRACE_POINT
    linkageType: ''
    returnType: int
    signature: int mux_pt_unsubscribe(struct stconn *sc, int event_type, struct wait_event
      *es)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mux_pt_used_streams
      Src: /src/haproxy/src/mux_pt.c:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - conn
    - mux_ctl
    - output
    argTypes:
    - struct connection*
    - enum mux_ctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 838
    functionName: mux_pt_ctl
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - mux_pt_used_streams
    linkageType: ''
    returnType: int
    signature: int mux_pt_ctl(struct connection *conn, enum mux_ctl_type mux_ctl,
      void *output)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - sc
    - mux_sctl
    - output
    argTypes:
    - struct stconn*
    - enum mux_sctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 856
    functionName: mux_pt_sctl
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mux_pt_sctl(struct stconn *sc, enum mux_sctl_type mux_sctl, void
      *output)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_pt.c:863,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_pt.c:866,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_pt.c:868,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_pt.c:871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 875
    functionName: cfg_parse_pt_zero_copy_fwd
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_pt_zero_copy_fwd(char **args, int section_type, struct
      proxy *curpx,\n\t\t\t\t      const struct proxy *defpx, const char *file, int
      line,\n\t\t\t\t      char **err)"
  - BBCount: 122
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:119,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:123,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:129,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:133,1
    - Dst: quic_cid_dump
      Src: /src/haproxy/src/quic_trace.c:134,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:135,1
    - Dst: quic_cid_dump
      Src: /src/haproxy/src/quic_trace.c:136,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:137,1
    - Dst: quic_cid_dump
      Src: /src/haproxy/src/quic_trace.c:138,1
    - Dst: quic_transport_params_dump
      Src: /src/haproxy/src/quic_trace.c:145,1
    - Dst: quic_early_transport_params_dump
      Src: /src/haproxy/src/quic_trace.c:152,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:160,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:162,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:162,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:165,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:173,1
    - Dst: quic_tls_secret_hexdump
      Src: /src/haproxy/src/quic_trace.c:175,1
    - Dst: quic_tls_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:176,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:177,1
    - Dst: quic_tls_secret_hexdump
      Src: /src/haproxy/src/quic_trace.c:179,1
    - Dst: quic_tls_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:180,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:189,1
    - Dst: quic_tls_secret_hexdump
      Src: /src/haproxy/src/quic_trace.c:191,1
    - Dst: quic_tls_kp_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:192,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:195,1
    - Dst: quic_tls_secret_hexdump
      Src: /src/haproxy/src/quic_trace.c:197,1
    - Dst: quic_tls_kp_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:198,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:207,1
    - Dst: qc_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:208,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:210,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:210,1
    - Dst: quic_tls_has_rx_sec
      Src: /src/haproxy/src/quic_trace.c:211,1
    - Dst: quic_tls_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:212,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:214,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:222,1
    - Dst: qc_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:223,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:225,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:225,1
    - Dst: quic_tls_has_tx_sec
      Src: /src/haproxy/src/quic_trace.c:226,1
    - Dst: quic_tls_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:227,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:230,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:241,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:242,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:254,1
    - Dst: quic_enc_level_char_from_qel
      Src: /src/haproxy/src/quic_trace.c:256,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:268,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_trace.c:269,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:270,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:271,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:276,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:277,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:288,1
    - Dst: quic_hdshk_state_str
      Src: /src/haproxy/src/quic_trace.c:288,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:290,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:292,1
    - Dst: quic_ssl_early_data_status_str
      Src: /src/haproxy/src/quic_trace.c:293,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:302,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:304,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:306,1
    - Dst: quic_packet_type_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:307,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:309,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:312,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:315,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:317,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:321,1
    - Dst: SSL_quic_read_level
      Src: /src/haproxy/src/quic_trace.c:323,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:324,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:325,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:325,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:335,1
    - Dst: quic_packet_type_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:336,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:339,1
    - Dst: SSL_quic_read_level
      Src: /src/haproxy/src/quic_trace.c:343,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:344,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:345,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:345,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:349,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:356,1
    - Dst: quic_frame_type_string
      Src: /src/haproxy/src/quic_trace.c:356,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:365,1
    - Dst: quic_enc_level_char_from_qel
      Src: /src/haproxy/src/quic_trace.c:368,1
    - Dst: quic_hdshk_state_str
      Src: /src/haproxy/src/quic_trace.c:370,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:384,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:385,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:394,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:408,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:410,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:421,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:422,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:425,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:427,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:435,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:437,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:446,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:448,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:450,1
    - Dst: quic_cc_event_trace
      Src: /src/haproxy/src/quic_trace.c:459,1
    - Dst: quic_cc_state_trace
      Src: /src/haproxy/src/quic_trace.c:461,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:469,1
    - Dst: quic_pktns_char
      Src: /src/haproxy/src/quic_trace.c:469,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:471,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:472,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_trace.c:472,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_trace.c:474,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:477,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_trace.c:478,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:479,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:489,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:492,1
    - Dst: quic_pktns_char
      Src: /src/haproxy/src/quic_trace.c:493,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:497,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:499,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:500,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:504,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:505,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:507,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:507,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:512,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:513,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:520,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:528,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:529,1
    - Dst: quic_pktns_char
      Src: /src/haproxy/src/quic_trace.c:531,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:533,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_trace.c:536,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:537,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:538,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:542,1
    - Dst: quic_cid_dump
      Src: /src/haproxy/src/quic_trace.c:543,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:553,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:555,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:556,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:556,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:565,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:567,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:569,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:576,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:585,1
    - Dst: quic_hdshk_state_str
      Src: /src/haproxy/src/quic_trace.c:585,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:587,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:587,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:589,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:589,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_trace.c:594,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:595,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:596,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_trace.c:596,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_trace.c:597,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:598,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:599,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_trace.c:599,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_trace.c:600,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:601,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:602,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_trace.c:602,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_trace.c:613,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_trace.c:614,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:615,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:619,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_trace.c:624,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_trace.c:625,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:626,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_trace.c:628,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_trace.c:629,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:630,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:634,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:645,1
    - Dst: qc_pkt_long
      Src: /src/haproxy/src/quic_trace.c:646,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:648,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:652,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:655,1
    - Dst: quic_cid_dump
      Src: /src/haproxy/src/quic_trace.c:662,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 317
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 665
    functionName: quic_trace
    functionSourceFile: /src/haproxy/src/quic_trace.c
    functionUses: 0
    functionsReached:
    - quic_tls_kp_keys_hexdump
    - chunk_frm_appendf
    - quic_tls_secret_hexdump
    - quic_ssl_early_data_status_str
    - chunk_appendf
    - TICKS_TO_MS
    - quic_tls_has_rx_sec
    - quic_frame_type_string
    - quic_hdshk_state_str
    - ssl_to_quic_enc_level
    - tick_remain
    - SSL_quic_read_level
    - port_to_str
    - quic_enc_level_char
    - quic_tls_has_tx_sec
    - quic_early_transport_params_dump
    - quic_cc_event_trace
    - quic_packet_type_enc_level_char
    - qc_quic_enc_level
    - quic_pktns_char
    - quic_transport_params_dump
    - addr_to_str
    - quic_cc_state_trace
    - qc_pkt_long
    - list_for_each_entry
    - quic_tls_keys_hexdump
    - LIST_ISEMPTY
    - tick_isset
    - quic_enc_level_char_from_qel
    - quic_cid_dump
    linkageType: ''
    returnType: void
    signature: "void quic_trace(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n                       const struct ist where, const struct
      ist func,\n                       const void *a1, const void *a2, const void
      *a3, const void *a4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:241,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/quic_trace.c
    functionUses: 103
    functionsReached:
    - chunk_appendf
    - chunk_frm_appendf
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(frm, l, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:384,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/quic_trace.c
    functionUses: 103
    functionsReached:
    - chunk_appendf
    - chunk_frm_appendf
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(frm, l, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - qc
    argTypes:
    - struct buffer*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: quic_dump_qc_info
    functionSourceFile: /src/haproxy/src/quic_trace.c
    functionUses: 1
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void quic_dump_qc_info(struct buffer *msg, const struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: MPRING_STRIDE_LEN
    functionSourceFile: /src/haproxy/src/mpring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPRING_STRIDE_LEN(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/mpring.c:30,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mpring.c:33,1
    - Dst: memset
      Src: /src/haproxy/src/mpring.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ring
    - buffer
    - size
    argTypes:
    - struct mpring*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 45
    functionName: mpring_init
    functionSourceFile: /src/haproxy/src/mpring.c
    functionUses: 1
    functionsReached:
    - memset
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void mpring_init(struct mpring *ring, void *buffer, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MPRING_STRIDE_LEN
      Src: /src/haproxy/src/mpring.c:58,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/mpring.c:60,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/mpring.c:72,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/mpring.c:77,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/mpring.c:82,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/mpring.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - ring
    - len
    argTypes:
    - struct mpring*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 91
    functionName: mpring_write_reserve
    functionSourceFile: /src/haproxy/src/mpring.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_STORE
    - _HA_ATOMIC_LOAD
    - HA_ATOMIC_LOAD
    - _HA_ATOMIC_STORE
    - MPRING_STRIDE_LEN
    - _HA_ATOMIC_CAS
    linkageType: ''
    returnType: void
    signature: void *mpring_write_reserve(struct mpring *ring, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/mpring.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ring
    - ptr
    - len
    argTypes:
    - struct mpring*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: mpring_write_commit
    functionSourceFile: /src/haproxy/src/mpring.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_STORE
    linkageType: ''
    returnType: void
    signature: void mpring_write_commit(struct mpring *ring, void *ptr, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpring_write_reserve
      Src: /src/haproxy/src/mpring.c:105,1
    - Dst: memcpy
      Src: /src/haproxy/src/mpring.c:109,1
    - Dst: mpring_write_commit
      Src: /src/haproxy/src/mpring.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ring
    - data
    - len
    argTypes:
    - struct mpring*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: mpring_write
    functionSourceFile: /src/haproxy/src/mpring.c
    functionUses: 0
    functionsReached:
    - mpring_write_commit
    - mpring_write_reserve
    - memcpy
    linkageType: ''
    returnType: int
    signature: int mpring_write(struct mpring *ring, const void *data, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/mpring.c:127,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/mpring.c:134,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/mpring.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ring
    - len
    argTypes:
    - struct mpring*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 146
    functionName: mpring_read_begin
    functionSourceFile: /src/haproxy/src/mpring.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_STORE
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void *mpring_read_begin(struct mpring *ring, size_t *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/mpring.c:154,1
    - Dst: MPRING_STRIDE_LEN
      Src: /src/haproxy/src/mpring.c:158,1
    - Dst: memset
      Src: /src/haproxy/src/mpring.c:163,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/mpring.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ring
    - len
    argTypes:
    - struct mpring*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: mpring_read_end
    functionSourceFile: /src/haproxy/src/mpring.c
    functionUses: 1
    functionsReached:
    - MPRING_STRIDE_LEN
    - HA_ATOMIC_STORE
    - memset
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void mpring_read_end(struct mpring *ring, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fctl
    - limit
    argTypes:
    - struct quic_fctl*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: qfctl_init
    functionSourceFile: /src/haproxy/src/quic_fctl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void qfctl_init(struct quic_fctl *fctl, uint64_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_fctl.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fctl
    argTypes:
    - struct quic_fctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: qfctl_rblocked
    functionSourceFile: /src/haproxy/src/quic_fctl.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int qfctl_rblocked(const struct quic_fctl *fctl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fctl
    argTypes:
    - struct quic_fctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: qfctl_sblocked
    functionSourceFile: /src/haproxy/src/quic_fctl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qfctl_sblocked(const struct quic_fctl *fctl)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - fctl
    - val
    - out_unblock_soft
    - out_unblock_real
    argTypes:
    - struct quic_fctl*
    - uint64_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: qfctl_set_max
    functionSourceFile: /src/haproxy/src/quic_fctl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int qfctl_set_max(struct quic_fctl *fctl, uint64_t val,\n                  int
      *out_unblock_soft, int *out_unblock_real)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_fctl.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fctl
    - diff
    argTypes:
    - struct quic_fctl*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: qfctl_rinc
    functionSourceFile: /src/haproxy/src/quic_fctl.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int qfctl_rinc(struct quic_fctl *fctl, uint64_t diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_fctl.c:84,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/quic_fctl.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fctl
    - diff
    argTypes:
    - struct quic_fctl*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: qfctl_sinc
    functionSourceFile: /src/haproxy/src/quic_fctl.c
    functionUses: 0
    functionsReached:
    - qfctl_sblocked
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int qfctl_sinc(struct quic_fctl *fctl, uint64_t diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_fctl.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fctl
    argTypes:
    - struct quic_fctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: qfctl_rcap
    functionSourceFile: /src/haproxy/src/quic_fctl.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t qfctl_rcap(const struct quic_fctl *fctl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ack.c:18,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_ack.c:20,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_ack.c:24,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_ack.c:25,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_ack.c:26,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_ack.c:27,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ack.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - qc
    - arngs
    argTypes:
    - struct quic_conn*
    - struct quic_arngs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 32
    functionName: quic_free_arngs
    functionSourceFile: /src/haproxy/src/quic_ack.c
    functionUses: 0
    functionsReached:
    - eb64_next
    - eb64_entry
    - TRACE_LEAVE
    - eb64_delete
    - TRACE_ENTER
    - eb64_first
    - pool_free
    linkageType: ''
    returnType: void
    signature: void quic_free_arngs(struct quic_conn *qc, struct quic_arngs *arngs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - q
    argTypes:
    - struct quic_arng_node*
    - struct quic_arng_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: sack_gap
    functionSourceFile: /src/haproxy/src/quic_ack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t sack_gap(struct quic_arng_node *p,\n                              struct
      quic_arng_node *q)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ack.c:49,1
    - Dst: eb64_last
      Src: /src/haproxy/src/quic_ack.c:51,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_ack.c:55,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_ack.c:56,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_ack.c:57,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_ack.c:57,1
    - Dst: eb64_prev
      Src: /src/haproxy/src/quic_ack.c:59,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_ack.c:60,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_ack.c:61,1
    - Dst: sack_gap
      Src: /src/haproxy/src/quic_ack.c:61,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_ack.c:62,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_ack.c:64,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ack.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - qc
    - arngs
    argTypes:
    - struct quic_conn*
    - struct quic_arngs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 69
    functionName: quic_arngs_set_enc_sz
    functionSourceFile: /src/haproxy/src/quic_ack.c
    functionUses: 0
    functionsReached:
    - eb64_entry
    - TRACE_LEAVE
    - sack_gap
    - TRACE_ENTER
    - quic_int_getsize
    - eb64_prev
    - eb64_last
    linkageType: ''
    returnType: void
    signature: void quic_arngs_set_enc_sz(struct quic_conn *qc, struct quic_arngs
      *arngs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ack.c:81,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_ack.c:86,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_ack.c:87,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_ack.c:88,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_ack.c:93,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ack.c:95,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_ack.c:101,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ack.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - qc
    - arngs
    - ar
    argTypes:
    - struct quic_conn*
    - struct quic_arngs*
    - struct quic_arng*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 107
    functionName: quic_insert_new_range
    functionSourceFile: /src/haproxy/src/quic_ack.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - BUG_ON
    - eb64_delete
    - TRACE_ERROR
    - eb64_insert
    - TRACE_LEAVE
    - TRACE_ENTER
    - eb64_first
    linkageType: ''
    returnType: struct quic_arng_node
    signature: "struct quic_arng_node *quic_insert_new_range(struct quic_conn *qc,\n
      \                                            struct quic_arngs *arngs,\n                                             struct
      quic_arng *ar)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ack.c:143,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_ack.c:146,1
    - Dst: quic_insert_new_range
      Src: /src/haproxy/src/quic_ack.c:147,1
    - Dst: eb64_lookup_le
      Src: /src/haproxy/src/quic_ack.c:154,1
    - Dst: quic_insert_new_range
      Src: /src/haproxy/src/quic_ack.c:156,1
    - Dst: new_node::new_node
      Src: /src/haproxy/src/quic_ack.c:160,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_ack.c:164,1
    - Dst: le::le
      Src: /src/haproxy/src/quic_ack.c:172,1
    - Dst: quic_insert_new_range
      Src: /src/haproxy/src/quic_ack.c:176,1
    - Dst: new_node::new_node
      Src: /src/haproxy/src/quic_ack.c:180,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_ack.c:191,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_ack.c:193,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_ack.c:199,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_ack.c:200,1
    - Dst: quic_arngs_set_enc_sz
      Src: /src/haproxy/src/quic_ack.c:208,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ack.c:209,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - qc
    - arngs
    - ar
    argTypes:
    - struct quic_conn*
    - struct quic_arngs*
    - struct quic_arng*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 211
    functionName: quic_update_ack_ranges_list
    functionSourceFile: /src/haproxy/src/quic_ack.c
    functionUses: 0
    functionsReached:
    - eb64_entry
    - eb64_next
    - eb_is_empty
    - eb64_delete
    - quic_arngs_set_enc_sz
    - TRACE_LEAVE
    - TRACE_ENTER
    - new_node::new_node
    - eb64_lookup_le
    - le::le
    - quic_insert_new_range
    - pool_free
    linkageType: ''
    returnType: int
    signature: "int quic_update_ack_ranges_list(struct quic_conn *qc,\n                                struct
      quic_arngs *arngs,\n                                struct quic_arng *ar)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ack.c:223,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_ack.c:225,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_ack.c:229,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_ack.c:230,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ack.c:233,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_ack.c:238,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_ack.c:240,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_ack.c:250,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_ack.c:251,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ack.c:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - qc
    - arngs
    - largest_acked_pn
    argTypes:
    - struct quic_conn*
    - struct quic_arngs*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 257
    functionName: qc_treat_ack_of_ack
    functionSourceFile: /src/haproxy/src/quic_ack.c
    functionUses: 0
    functionsReached:
    - eb64_next
    - eb64_entry
    - TRACE_LEAVE
    - eb64_delete
    - eb64_insert
    - TRACE_DEVEL
    - TRACE_ENTER
    - eb64_first
    - pool_free
    linkageType: ''
    returnType: void
    signature: "void qc_treat_ack_of_ack(struct quic_conn *qc, struct quic_arngs *arngs,\n
      \                        int64_t largest_acked_pn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_FOR_EACH_ENTRY_UNLOCKED
      Src: /src/haproxy/src/event_hdl.c:83,1
    - Dst: _event_hdl_sub_list_destroy
      Src: /src/haproxy/src/event_hdl.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: event_hdl_deinit
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - _event_hdl_sub_list_destroy
    - MT_LIST_FOR_EACH_ENTRY_UNLOCKED
    linkageType: ''
    returnType: void
    signature: void event_hdl_deinit(struct sig_handler *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_hdl_sub_list_init
      Src: /src/haproxy/src/event_hdl.c:93,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/event_hdl.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: event_hdl_init
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - signal_register_fct
    - event_hdl_sub_list_init
    linkageType: ''
    returnType: void
    signature: void event_hdl_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_reset
      Src: /src/haproxy/src/event_hdl.c:111,1
    - Dst: XXH64_update
      Src: /src/haproxy/src/event_hdl.c:112,1
    - Dst: strlen
      Src: /src/haproxy/src/event_hdl.c:112,1
    - Dst: XXH64_update
      Src: /src/haproxy/src/event_hdl.c:113,1
    - Dst: strlen
      Src: /src/haproxy/src/event_hdl.c:113,1
    - Dst: XXH64_digest
      Src: /src/haproxy/src/event_hdl.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - scope
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: event_hdl_id
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - XXH64_digest
    - XXH64_reset
    - XXH64_update
    - strlen
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t event_hdl_id(const char *scope, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/event_hdl.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - sub_type
    argTypes:
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: event_hdl_sub_type_to_string
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 1
    functionsReached:
    - ha_alert
    linkageType: ''
    returnType: char
    signature: char *event_hdl_sub_type_to_string(struct event_hdl_sub_type sub_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/event_hdl.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: event_hdl_string_to_sub_type
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct event_hdl_sub_type
    signature: struct event_hdl_sub_type event_hdl_string_to_sub_type(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/event_hdl.c:171,1
    - Dst: memprintf
      Src: /src/haproxy/src/event_hdl.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - subscriptions
    argTypes:
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 180
    functionName: event_hdl_sub_type_print
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: char
    signature: char *event_hdl_sub_type_print(struct event_hdl_sub_type subscriptions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: report_func
      Src: /src/haproxy/src/event_hdl.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - report_func
    - hdl
    - what
    - state
    argTypes:
    - event_hdl_report_hdl_state_func
    - struct event_hdl*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: event_hdl_report_hdl_state
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - report_func
    linkageType: ''
    returnType: void
    signature: "void event_hdl_report_hdl_state(event_hdl_report_hdl_state_func report_func,\n
      \                                      const struct event_hdl *hdl, const char
      *what, const char *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/event_hdl.c:197,1
    - Dst: struct event_hdl_async_event_data*::mfree
      Src: /src/haproxy/src/event_hdl.c:208,1
    - Dst: pool_free
      Src: /src/haproxy/src/event_hdl.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct event_hdl_async_event_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: _event_hdl_async_data_drop
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_SUB_FETCH
    - pool_free
    - struct event_hdl_async_event_data*::mfree
    linkageType: ''
    returnType: void
    signature: void _event_hdl_async_data_drop(struct event_hdl_async_event_data *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/event_hdl.c:216,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/event_hdl.c:216,1
    - Dst: event_hdl_drop
      Src: /src/haproxy/src/event_hdl.c:221,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/event_hdl.c:222,1
    - Dst: _event_hdl_async_data_drop
      Src: /src/haproxy/src/event_hdl.c:225,1
    - Dst: pool_free
      Src: /src/haproxy/src/event_hdl.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct event_hdl_async_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 227
    functionName: event_hdl_async_free_event
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 1
    functionsReached:
    - unlikely
    - HA_ATOMIC_DEC
    - _event_hdl_async_data_drop
    - event_hdl_sub_type_equal
    - event_hdl_drop
    - pool_free
    linkageType: ''
    returnType: void
    signature: void event_hdl_async_free_event(struct event_hdl_async_event *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TASK_IS_TASKLET
      Src: /src/haproxy/src/event_hdl.c:237,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/event_hdl.c:238,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/event_hdl.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - task
    argTypes:
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: event_hdl_task_wakeup
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - TASK_IS_TASKLET
    - tasklet_wakeup
    linkageType: ''
    returnType: void
    signature: void event_hdl_task_wakeup(struct tasklet *task)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_hdl_async_equeue_pop
      Src: /src/haproxy/src/event_hdl.c:261,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/event_hdl.c:263,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/event_hdl.c:265,1
    - Dst: struct event_hdl_async_task_default_ctx*::func
      Src: /src/haproxy/src/event_hdl.c:281,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/event_hdl.c:284,1
    - Dst: pool_free
      Src: /src/haproxy/src/event_hdl.c:289,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/event_hdl.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - task
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 294
    functionName: event_hdl_async_task_default
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - event_hdl_async_equeue_pop
    - tasklet_free
    - event_hdl_async_free_event
    - event_hdl_sub_type_equal
    - struct event_hdl_async_task_default_ctx*::func
    - pool_free
    linkageType: ''
    returnType: struct task
    signature: struct task *event_hdl_async_task_default(struct task *task, void *ctx,
      unsigned int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cur_sub
    argTypes:
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: _event_hdl_getsub
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event_hdl_sub_type
    signature: struct event_hdl_sub_type _event_hdl_getsub(struct event_hdl_sub *cur_sub)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_lock_full
      Src: /src/haproxy/src/event_hdl.c:307,1
    - Dst: _event_hdl_getsub
      Src: /src/haproxy/src/event_hdl.c:309,1
    - Dst: mt_list_unlock_full
      Src: /src/haproxy/src/event_hdl.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cur_sub
    argTypes:
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 313
    functionName: _event_hdl_getsub_async
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - mt_list_lock_full
    - _event_hdl_getsub
    - mt_list_unlock_full
    linkageType: ''
    returnType: struct event_hdl_sub_type
    signature: struct event_hdl_sub_type _event_hdl_getsub_async(struct event_hdl_sub
      *cur_sub)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_hdl_sub_family_equal
      Src: /src/haproxy/src/event_hdl.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cur_sub
    - type
    argTypes:
    - struct event_hdl_sub*
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: _event_hdl_resub
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - event_hdl_sub_family_equal
    linkageType: ''
    returnType: int
    signature: int _event_hdl_resub(struct event_hdl_sub *cur_sub, struct event_hdl_sub_type
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_lock_full
      Src: /src/haproxy/src/event_hdl.c:328,1
    - Dst: _event_hdl_resub
      Src: /src/haproxy/src/event_hdl.c:330,1
    - Dst: mt_list_unlock_full
      Src: /src/haproxy/src/event_hdl.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cur_sub
    - type
    argTypes:
    - struct event_hdl_sub*
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 334
    functionName: _event_hdl_resub_async
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - _event_hdl_resub
    - mt_list_lock_full
    - mt_list_unlock_full
    linkageType: ''
    returnType: int
    signature: int _event_hdl_resub_async(struct event_hdl_sub *cur_sub, struct event_hdl_sub_type
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/event_hdl.c:350,1
    - Dst: mt_list_lock_elem
      Src: /src/haproxy/src/event_hdl.c:351,1
    - Dst: mt_list_lock_prev
      Src: /src/haproxy/src/event_hdl.c:352,1
    - Dst: event_hdl_task_wakeup
      Src: /src/haproxy/src/event_hdl.c:355,1
    - Dst: mt_list_unlock_full
      Src: /src/haproxy/src/event_hdl.c:358,1
    - Dst: event_hdl_drop
      Src: /src/haproxy/src/event_hdl.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - del_sub
    argTypes:
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 373
    functionName: _event_hdl_unsubscribe
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - event_hdl_task_wakeup
    - mt_list_lock_prev
    - event_hdl_drop
    - HA_ATOMIC_INC
    - mt_list_lock_elem
    - mt_list_unlock_full
    linkageType: ''
    returnType: void
    signature: void _event_hdl_unsubscribe(struct event_hdl_sub *del_sub)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/event_hdl.c:377,1
    - Dst: _event_hdl_unsubscribe
      Src: /src/haproxy/src/event_hdl.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - del_sub
    argTypes:
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: _event_hdl_unsubscribe_async
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - _event_hdl_unsubscribe
    linkageType: ''
    returnType: void
    signature: void _event_hdl_unsubscribe_async(struct event_hdl_sub *del_sub)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _event_hdl_getsub
      Src: /src/haproxy/src/event_hdl.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mgmt
    argTypes:
    - struct event_hdl_sub_mgmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 391
    functionName: event_hdl_getsub_sync
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - _event_hdl_getsub
    linkageType: ''
    returnType: struct event_hdl_sub_type
    signature: struct event_hdl_sub_type event_hdl_getsub_sync(const struct event_hdl_sub_mgmt
      *mgmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _event_hdl_getsub_async
      Src: /src/haproxy/src/event_hdl.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mgmt
    argTypes:
    - struct event_hdl_sub_mgmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: event_hdl_getsub_async
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 1
    functionsReached:
    - _event_hdl_getsub_async
    linkageType: ''
    returnType: struct event_hdl_sub_type
    signature: struct event_hdl_sub_type event_hdl_getsub_async(const struct event_hdl_sub_mgmt
      *mgmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _event_hdl_resub
      Src: /src/haproxy/src/event_hdl.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mgmt
    - type
    argTypes:
    - struct event_hdl_sub_mgmt*
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 409
    functionName: event_hdl_resub_sync
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - _event_hdl_resub
    linkageType: ''
    returnType: int
    signature: int event_hdl_resub_sync(const struct event_hdl_sub_mgmt *mgmt, struct
      event_hdl_sub_type type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _event_hdl_resub_async
      Src: /src/haproxy/src/event_hdl.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mgmt
    - type
    argTypes:
    - struct event_hdl_sub_mgmt*
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: event_hdl_resub_async
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 1
    functionsReached:
    - _event_hdl_resub_async
    linkageType: ''
    returnType: int
    signature: int event_hdl_resub_async(const struct event_hdl_sub_mgmt *mgmt, struct
      event_hdl_sub_type type)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mgmt
    argTypes:
    - struct event_hdl_sub_mgmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 432
    functionName: event_hdl_unsubscribe_sync
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_hdl_unsubscribe_sync(const struct event_hdl_sub_mgmt *mgmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _event_hdl_unsubscribe_async
      Src: /src/haproxy/src/event_hdl.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mgmt
    argTypes:
    - struct event_hdl_sub_mgmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 440
    functionName: event_hdl_unsubscribe_async
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 1
    functionsReached:
    - _event_hdl_unsubscribe_async
    linkageType: ''
    returnType: void
    signature: void event_hdl_unsubscribe_async(const struct event_hdl_sub_mgmt *mgmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sub
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: EVENT_HDL_SUB_MGMT_ASYNC
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_SUB_MGMT_ASYNC(_sub)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sub
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: EVENT_HDL_SUB_MGMT_SYNC
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_SUB_MGMT_SYNC(_sub)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/event_hdl.c:464,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/event_hdl.c:469,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/event_hdl.c:482,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/event_hdl.c:491,1
    - Dst: event_hdl_async_equeue_init
      Src: /src/haproxy/src/event_hdl.c:497,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/event_hdl.c:501,1
    - Dst: EVENT_HDL_SUB_MGMT_ASYNC
      Src: /src/haproxy/src/event_hdl.c:517,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/event_hdl.c:520,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/event_hdl.c:529,1
    - Dst: mt_list_lock_full
      Src: /src/haproxy/src/event_hdl.c:531,1
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/event_hdl.c:538,1
    - Dst: mt_list_unlock_full
      Src: /src/haproxy/src/event_hdl.c:547,1
    - Dst: event_hdl_report_hdl_state
      Src: /src/haproxy/src/event_hdl.c:548,1
    - Dst: mt_list_unlock_full
      Src: /src/haproxy/src/event_hdl.c:559,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/event_hdl.c:575,1
    - Dst: MT_LIST_INSERT
      Src: /src/haproxy/src/event_hdl.c:577,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/event_hdl.c:580,1
    - Dst: mt_list_unlock_full
      Src: /src/haproxy/src/event_hdl.c:583,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/event_hdl.c:590,1
    - Dst: pool_free
      Src: /src/haproxy/src/event_hdl.c:591,1
    - Dst: pool_free
      Src: /src/haproxy/src/event_hdl.c:594,1
    - Dst: pool_free
      Src: /src/haproxy/src/event_hdl.c:595,1
    - Dst: event_hdl_report_hdl_state
      Src: /src/haproxy/src/event_hdl.c:601,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 89
    argCount: 3
    argNames:
    - sub_list
    - e_type
    - hdl
    argTypes:
    - event_hdl_sub_list*
    - struct event_hdl_sub_type
    - struct event_hdl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 603
    functionName: event_hdl_subscribe_ptr
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 1
    functionsReached:
    - MT_LIST_INSERT
    - pool_alloc
    - BUG_ON
    - mt_list_lock_full
    - tasklet_new
    - MT_LIST_INIT
    - event_hdl_report_hdl_state
    - MT_LIST_APPEND
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - EVENT_HDL_SUB_MGMT_ASYNC
    - HA_ATOMIC_INC
    - pool_free
    - event_hdl_async_equeue_init
    - tasklet_free
    - mt_list_unlock_full
    linkageType: ''
    returnType: struct event_hdl_sub
    signature: "struct event_hdl_sub *event_hdl_subscribe_ptr(event_hdl_sub_list *sub_list,\n
      \                                             struct event_hdl_sub_type e_type,
      struct event_hdl hdl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/event_hdl.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sub
    argTypes:
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 608
    functionName: event_hdl_take
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void event_hdl_take(struct event_hdl_sub *sub)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/event_hdl.c:612,1
    - Dst: struct event_hdl_sub*::hdl::private_free
      Src: /src/haproxy/src/event_hdl.c:618,1
    - Dst: pool_free
      Src: /src/haproxy/src/event_hdl.c:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sub
    argTypes:
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 621
    functionName: event_hdl_drop
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 4
    functionsReached:
    - HA_ATOMIC_SUB_FETCH
    - struct event_hdl_sub*::hdl::private_free
    - pool_free
    linkageType: ''
    returnType: void
    signature: void event_hdl_drop(struct event_hdl_sub *sub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _event_hdl_resub_async
      Src: /src/haproxy/src/event_hdl.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cur_sub
    - type
    argTypes:
    - struct event_hdl_sub*
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 623
    functionDepth: 3
    functionLinenumber: 623
    functionLinenumberEnd: 626
    functionName: event_hdl_resubscribe
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - _event_hdl_resub_async
    linkageType: ''
    returnType: int
    signature: int event_hdl_resubscribe(struct event_hdl_sub *cur_sub, struct event_hdl_sub_type
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cur_sub
    argTypes:
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 631
    functionName: _event_hdl_pause
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _event_hdl_pause(struct event_hdl_sub *cur_sub)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_lock_full
      Src: /src/haproxy/src/event_hdl.c:637,1
    - Dst: _event_hdl_pause
      Src: /src/haproxy/src/event_hdl.c:639,1
    - Dst: mt_list_unlock_full
      Src: /src/haproxy/src/event_hdl.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cur_sub
    argTypes:
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 642
    functionName: event_hdl_pause
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 2
    functionsReached:
    - mt_list_lock_full
    - _event_hdl_pause
    - mt_list_unlock_full
    linkageType: ''
    returnType: void
    signature: void event_hdl_pause(struct event_hdl_sub *cur_sub)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cur_sub
    argTypes:
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 647
    functionName: _event_hdl_resume
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _event_hdl_resume(struct event_hdl_sub *cur_sub)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_lock_full
      Src: /src/haproxy/src/event_hdl.c:653,1
    - Dst: _event_hdl_resume
      Src: /src/haproxy/src/event_hdl.c:655,1
    - Dst: mt_list_unlock_full
      Src: /src/haproxy/src/event_hdl.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cur_sub
    argTypes:
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 658
    functionName: event_hdl_resume
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 2
    functionsReached:
    - _event_hdl_resume
    - mt_list_lock_full
    - mt_list_unlock_full
    linkageType: ''
    returnType: void
    signature: void event_hdl_resume(struct event_hdl_sub *cur_sub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _event_hdl_unsubscribe_async
      Src: /src/haproxy/src/event_hdl.c:662,1
    - Dst: event_hdl_drop
      Src: /src/haproxy/src/event_hdl.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - del_sub
    argTypes:
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 660
    functionDepth: 4
    functionLinenumber: 660
    functionLinenumberEnd: 665
    functionName: event_hdl_unsubscribe
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 3
    functionsReached:
    - event_hdl_drop
    - _event_hdl_unsubscribe_async
    linkageType: ''
    returnType: void
    signature: void event_hdl_unsubscribe(struct event_hdl_sub *del_sub)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_hdl_subscribe_ptr
      Src: /src/haproxy/src/event_hdl.c:671,1
    - Dst: event_hdl_drop
      Src: /src/haproxy/src/event_hdl.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - sub_list
    - e_type
    - hdl
    argTypes:
    - event_hdl_sub_list*
    - struct event_hdl_sub_type
    - struct event_hdl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 678
    functionName: event_hdl_subscribe
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - event_hdl_subscribe_ptr
    - event_hdl_drop
    linkageType: ''
    returnType: int
    signature: int event_hdl_subscribe(event_hdl_sub_list *sub_list, struct event_hdl_sub_type
      e_type, struct event_hdl hdl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/event_hdl.c:692,1
    - Dst: mt_list_unlock_self
      Src: /src/haproxy/src/event_hdl.c:695,1
    - Dst: _event_hdl_unsubscribe
      Src: /src/haproxy/src/event_hdl.c:696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - sub_list
    - lookup_id
    argTypes:
    - event_hdl_sub_list*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 682
    functionDepth: 3
    functionLinenumber: 682
    functionLinenumberEnd: 703
    functionName: event_hdl_lookup_unsubscribe
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - mt_list_unlock_self
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - _event_hdl_unsubscribe
    linkageType: ''
    returnType: int
    signature: "int event_hdl_lookup_unsubscribe(event_hdl_sub_list *sub_list,\n                                 uint64_t
      lookup_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/event_hdl.c:715,1
    - Dst: _event_hdl_resub
      Src: /src/haproxy/src/event_hdl.c:718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - sub_list
    - lookup_id
    - type
    argTypes:
    - event_hdl_sub_list*
    - uint64_t
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 723
    functionName: event_hdl_lookup_resubscribe
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - _event_hdl_resub
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    linkageType: ''
    returnType: int
    signature: "int event_hdl_lookup_resubscribe(event_hdl_sub_list *sub_list,\n                                 uint64_t
      lookup_id, struct event_hdl_sub_type type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/event_hdl.c:735,1
    - Dst: _event_hdl_pause
      Src: /src/haproxy/src/event_hdl.c:738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - sub_list
    - lookup_id
    argTypes:
    - event_hdl_sub_list*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 744
    functionName: event_hdl_lookup_pause
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - _event_hdl_pause
    linkageType: ''
    returnType: int
    signature: "int event_hdl_lookup_pause(event_hdl_sub_list *sub_list,\n                           uint64_t
      lookup_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/event_hdl.c:756,1
    - Dst: _event_hdl_resume
      Src: /src/haproxy/src/event_hdl.c:759,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - sub_list
    - lookup_id
    argTypes:
    - event_hdl_sub_list*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 765
    functionName: event_hdl_lookup_resume
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - _event_hdl_resume
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    linkageType: ''
    returnType: int
    signature: "int event_hdl_lookup_resume(event_hdl_sub_list *sub_list,\n                            uint64_t
      lookup_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/event_hdl.c:777,1
    - Dst: event_hdl_take
      Src: /src/haproxy/src/event_hdl.c:780,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - sub_list
    - lookup_id
    argTypes:
    - event_hdl_sub_list*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 788
    functionName: event_hdl_lookup_take
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - event_hdl_take
    linkageType: ''
    returnType: struct event_hdl_sub
    signature: "struct event_hdl_sub *event_hdl_lookup_take(event_hdl_sub_list *sub_list,\n
      \                                           uint64_t lookup_id)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/event_hdl.c:800,1
    - Dst: EVENT_HDL_SUB_MGMT_SYNC
      Src: /src/haproxy/src/event_hdl.c:815,1
    - Dst: struct event_hdl_sub*::hdl::sync_ptr
      Src: /src/haproxy/src/event_hdl.c:825,1
    - Dst: mt_list_unlock_self
      Src: /src/haproxy/src/event_hdl.c:832,1
    - Dst: _event_hdl_unsubscribe
      Src: /src/haproxy/src/event_hdl.c:833,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/event_hdl.c:851,1
    - Dst: EVENT_HDL_SUB_MGMT_ASYNC
      Src: /src/haproxy/src/event_hdl.c:859,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/event_hdl.c:865,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/event_hdl.c:868,1
    - Dst: pool_free
      Src: /src/haproxy/src/event_hdl.c:871,1
    - Dst: memcpy
      Src: /src/haproxy/src/event_hdl.c:876,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/event_hdl.c:892,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/event_hdl.c:899,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/event_hdl.c:900,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/event_hdl.c:901,1
    - Dst: event_hdl_task_wakeup
      Src: /src/haproxy/src/event_hdl.c:904,1
    - Dst: _event_hdl_async_data_drop
      Src: /src/haproxy/src/event_hdl.c:910,1
    - Dst: struct event_hdl_cb_data*::_mfree
      Src: /src/haproxy/src/event_hdl.c:916,1
    - Dst: event_hdl_report_hdl_state
      Src: /src/haproxy/src/event_hdl.c:919,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 3
    argNames:
    - sub_list
    - e_type
    - data
    argTypes:
    - event_hdl_sub_list*
    - struct event_hdl_sub_type
    - struct event_hdl_cb_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 923
    functionName: _event_hdl_publish
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - EVENT_HDL_SUB_MGMT_SYNC
    - event_hdl_task_wakeup
    - pool_alloc
    - struct event_hdl_sub*::hdl::sync_ptr
    - BUG_ON
    - memcpy
    - mt_list_unlock_self
    - MT_LIST_APPEND
    - MT_LIST_INIT
    - _event_hdl_async_data_drop
    - struct event_hdl_cb_data*::_mfree
    - event_hdl_report_hdl_state
    - _event_hdl_unsubscribe
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - EVENT_HDL_SUB_MGMT_ASYNC
    - HA_ATOMIC_INC
    - pool_free
    linkageType: ''
    returnType: int
    signature: "int _event_hdl_publish(event_hdl_sub_list *sub_list, struct event_hdl_sub_type
      e_type,\n                              const struct event_hdl_cb_data *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _event_hdl_publish
      Src: /src/haproxy/src/event_hdl.c:946,1
    - Dst: _event_hdl_publish
      Src: /src/haproxy/src/event_hdl.c:949,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - sub_list
    - e_type
    - data
    argTypes:
    - event_hdl_sub_list*
    - struct event_hdl_sub_type
    - struct event_hdl_cb_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 936
    functionDepth: 4
    functionLinenumber: 936
    functionLinenumberEnd: 951
    functionName: event_hdl_publish
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 7
    functionsReached:
    - _event_hdl_publish
    linkageType: ''
    returnType: int
    signature: "int event_hdl_publish(event_hdl_sub_list *sub_list,\n                      struct
      event_hdl_sub_type e_type, const struct event_hdl_cb_data *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/event_hdl.c:955,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/event_hdl.c:956,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/event_hdl.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sub_list
    argTypes:
    - event_hdl_sub_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 958
    functionName: event_hdl_sub_list_init
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 2
    functionsReached:
    - MT_LIST_APPEND
    - BUG_ON
    - MT_LIST_INIT
    linkageType: ''
    returnType: void
    signature: void event_hdl_sub_list_init(event_hdl_sub_list *sub_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_FOR_EACH_ENTRY_UNLOCKED
      Src: /src/haproxy/src/event_hdl.c:966,1
    - Dst: _event_hdl_unsubscribe
      Src: /src/haproxy/src/event_hdl.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sub_list
    argTypes:
    - event_hdl_sub_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 961
    functionDepth: 3
    functionLinenumber: 961
    functionLinenumberEnd: 971
    functionName: _event_hdl_sub_list_destroy
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 1
    functionsReached:
    - _event_hdl_unsubscribe
    - MT_LIST_FOR_EACH_ENTRY_UNLOCKED
    linkageType: ''
    returnType: void
    signature: void _event_hdl_sub_list_destroy(event_hdl_sub_list *sub_list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/event_hdl.c:979,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/event_hdl.c:980,1
    - Dst: _event_hdl_sub_list_destroy
      Src: /src/haproxy/src/event_hdl.c:982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sub_list
    argTypes:
    - event_hdl_sub_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 977
    functionDepth: 4
    functionLinenumber: 977
    functionLinenumberEnd: 983
    functionName: event_hdl_sub_list_destroy
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 3
    functionsReached:
    - _event_hdl_sub_list_destroy
    - MT_LIST_DELETE
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void event_hdl_sub_list_destroy(event_hdl_sub_list *sub_list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/event_hdl.c:992,1
    - Dst: atoi
      Src: /src/haproxy/src/event_hdl.c:996,1
    - Dst: memprintf
      Src: /src/haproxy/src/event_hdl.c:999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 1005
    functionName: event_hdl_parse_max_events_at_once
    functionSourceFile: /src/haproxy/src/event_hdl.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int event_hdl_parse_max_events_at_once(char **args, int section_type,
      struct proxy *curpx,\n                                              const struct
      proxy *defpx, const char *file, int line,\n                                              char
      **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/tcp_sample.c:49,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_sample.c:50,1
    - Dst: __objt_check
      Src: /src/haproxy/src/tcp_sample.c:50,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_sample.c:51,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/tcp_sample.c:52,1
    - Dst: conn_src
      Src: /src/haproxy/src/tcp_sample.c:53,1
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_sample.c:56,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/tcp_sample.c:58,1
    - Dst: conn_src
      Src: /src/haproxy/src/tcp_sample.c:59,1
    - Dst: sc_src
      Src: /src/haproxy/src/tcp_sample.c:62,1
    - Dst: sess_src
      Src: /src/haproxy/src/tcp_sample.c:62,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 82
    functionName: smp_fetch_src
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - sess_src
    - conn_src
    - objt_conn
    - sc_src
    - __objt_check
    - obj_type
    - conn_get_src
    linkageType: ''
    returnType: int
    signature: int smp_fetch_src(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/tcp_sample.c:93,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_sample.c:94,1
    - Dst: __objt_check
      Src: /src/haproxy/src/tcp_sample.c:94,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_sample.c:95,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/tcp_sample.c:96,1
    - Dst: conn_src
      Src: /src/haproxy/src/tcp_sample.c:97,1
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_sample.c:100,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/tcp_sample.c:102,1
    - Dst: conn_src
      Src: /src/haproxy/src/tcp_sample.c:103,1
    - Dst: sc_src
      Src: /src/haproxy/src/tcp_sample.c:106,1
    - Dst: sess_src
      Src: /src/haproxy/src/tcp_sample.c:106,1
    - Dst: get_host_port
      Src: /src/haproxy/src/tcp_sample.c:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 117
    functionName: smp_fetch_sport
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - sess_src
    - get_host_port
    - conn_src
    - objt_conn
    - sc_src
    - __objt_check
    - obj_type
    - conn_get_src
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sport(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: smp_fetch_reused
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_reused(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/tcp_sample.c:139,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_sample.c:140,1
    - Dst: __objt_check
      Src: /src/haproxy/src/tcp_sample.c:140,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_sample.c:141,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/tcp_sample.c:142,1
    - Dst: conn_dst
      Src: /src/haproxy/src/tcp_sample.c:143,1
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_sample.c:146,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/tcp_sample.c:148,1
    - Dst: conn_dst
      Src: /src/haproxy/src/tcp_sample.c:149,1
    - Dst: sc_dst
      Src: /src/haproxy/src/tcp_sample.c:152,1
    - Dst: sess_dst
      Src: /src/haproxy/src/tcp_sample.c:152,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 172
    functionName: smp_fetch_dst
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - objt_conn
    - __objt_check
    - sess_dst
    - obj_type
    - conn_dst
    - conn_get_dst
    - sc_dst
    linkageType: ''
    returnType: int
    signature: int smp_fetch_dst(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_sample.c:183,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/tcp_sample.c:185,1
    - Dst: conn_dst
      Src: /src/haproxy/src/tcp_sample.c:186,1
    - Dst: sc_dst
      Src: /src/haproxy/src/tcp_sample.c:189,1
    - Dst: sess_dst
      Src: /src/haproxy/src/tcp_sample.c:189,1
    - Dst: addr_is_local
      Src: /src/haproxy/src/tcp_sample.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 198
    functionName: smp_fetch_dst_is_local
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - addr_is_local
    - objt_conn
    - sess_dst
    - conn_dst
    - conn_get_dst
    - sc_dst
    linkageType: ''
    returnType: int
    signature: int smp_fetch_dst_is_local(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_sample.c:209,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/tcp_sample.c:211,1
    - Dst: conn_src
      Src: /src/haproxy/src/tcp_sample.c:212,1
    - Dst: sc_src
      Src: /src/haproxy/src/tcp_sample.c:215,1
    - Dst: sess_src
      Src: /src/haproxy/src/tcp_sample.c:215,1
    - Dst: addr_is_local
      Src: /src/haproxy/src/tcp_sample.c:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 224
    functionName: smp_fetch_src_is_local
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - addr_is_local
    - sess_src
    - conn_src
    - objt_conn
    - sc_src
    - conn_get_src
    linkageType: ''
    returnType: int
    signature: int smp_fetch_src_is_local(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/tcp_sample.c:235,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_sample.c:236,1
    - Dst: __objt_check
      Src: /src/haproxy/src/tcp_sample.c:236,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_sample.c:237,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/tcp_sample.c:238,1
    - Dst: conn_dst
      Src: /src/haproxy/src/tcp_sample.c:239,1
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_sample.c:242,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/tcp_sample.c:244,1
    - Dst: conn_dst
      Src: /src/haproxy/src/tcp_sample.c:245,1
    - Dst: sc_dst
      Src: /src/haproxy/src/tcp_sample.c:248,1
    - Dst: sess_dst
      Src: /src/haproxy/src/tcp_sample.c:248,1
    - Dst: get_host_port
      Src: /src/haproxy/src/tcp_sample.c:254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 259
    functionName: smp_fetch_dport
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - get_host_port
    - objt_conn
    - __objt_check
    - sess_dst
    - obj_type
    - conn_dst
    - conn_get_dst
    - sc_dst
    linkageType: ''
    returnType: int
    signature: int smp_fetch_dport(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_sample.c:272,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/tcp_sample.c:273,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_sample.c:277,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/tcp_sample.c:278,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_sample.c:283,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_sample.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 294
    functionName: val_fc_time_value
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: int val_fc_time_value(struct arg *args, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/tcp_sample.c:306,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/tcp_sample.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: var_fc_counter
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int var_fc_counter(struct arg *args, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_sample.c:334,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_sample.c:335,1
    - Dst: struct connection*::ctrl::get_info
      Src: /src/haproxy/src/tcp_sample.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - dir
    - val
    argTypes:
    - struct arg*
    - struct sample*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 341
    functionName: get_tcp_info
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - sc_conn
    - struct connection*::ctrl::get_info
    linkageType: ''
    returnType: int
    signature: "int get_tcp_info(const struct arg *args, struct sample *smp,\n                               int
      dir, int val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_tcp_info
      Src: /src/haproxy/src/tcp_sample.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 355
    functionName: smp_fetch_fc_rtt
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - get_tcp_info
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_rtt(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_tcp_info
      Src: /src/haproxy/src/tcp_sample.c:361,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 369
    functionName: smp_fetch_fc_rttvar
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - get_tcp_info
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_rttvar(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_tcp_info
      Src: /src/haproxy/src/tcp_sample.c:375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 383
    functionName: smp_fetch_bc_rtt
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - get_tcp_info
    linkageType: ''
    returnType: int
    signature: int smp_fetch_bc_rtt(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_tcp_info
      Src: /src/haproxy/src/tcp_sample.c:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 397
    functionName: smp_fetch_bc_rttvar
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - get_tcp_info
    linkageType: ''
    returnType: int
    signature: int smp_fetch_bc_rttvar(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_tcp_info
      Src: /src/haproxy/src/tcp_sample.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: smp_fetch_fc_unacked
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - get_tcp_info
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_unacked(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_tcp_info
      Src: /src/haproxy/src/tcp_sample.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: smp_fetch_fc_sacked
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - get_tcp_info
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_sacked(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_tcp_info
      Src: /src/haproxy/src/tcp_sample.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 430
    functionName: smp_fetch_fc_lost
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - get_tcp_info
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_lost(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_tcp_info
      Src: /src/haproxy/src/tcp_sample.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 441
    functionName: smp_fetch_fc_retrans
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - get_tcp_info
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_retrans(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_tcp_info
      Src: /src/haproxy/src/tcp_sample.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 452
    functionName: smp_fetch_fc_fackets
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - get_tcp_info
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_fackets(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_tcp_info
      Src: /src/haproxy/src/tcp_sample.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: smp_fetch_fc_reordering
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - get_tcp_info
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_reordering(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_sample.c:474,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcp_sample.c:480,1
    - Dst: struct connection*::ctrl::get_opt
      Src: /src/haproxy/src/tcp_sample.c:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 489
    functionName: smp_fetch_fc_saved_syn
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - struct connection*::ctrl::get_opt
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fc_saved_syn(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_sample.c:502,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_sample.c:505,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_sample.c:508,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_sample.c:512,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/tcp_sample.c:517,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_sample.c:522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 527
    functionName: smp_check_accept_date_unit
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: int smp_check_accept_date_unit(struct arg *args, char **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tv_ms_add
      Src: /src/haproxy/src/tcp_sample.c:541,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/tcp_sample.c:549,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 573
    functionName: smp_fetch_accept_date
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - tv_ms_add
    linkageType: ''
    returnType: int
    signature: int smp_fetch_accept_date(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-unix.c:45,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-unix.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: bind_parse_mode
    functionSourceFile: /src/haproxy/src/cfgparse-unix.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strtol
    linkageType: ''
    returnType: int
    signature: int bind_parse_mode(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-unix.c:59,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-unix.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: bind_parse_gid
    functionSourceFile: /src/haproxy/src/cfgparse-unix.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_gid(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-unix.c:73,1
    - Dst: getgrnam
      Src: /src/haproxy/src/cfgparse-unix.c:77,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-unix.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: bind_parse_group
    functionSourceFile: /src/haproxy/src/cfgparse-unix.c
    functionUses: 0
    functionsReached:
    - memprintf
    - getgrnam
    linkageType: ''
    returnType: int
    signature: int bind_parse_group(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-unix.c:91,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-unix.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: bind_parse_uid
    functionSourceFile: /src/haproxy/src/cfgparse-unix.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_uid(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-unix.c:105,1
    - Dst: getpwnam
      Src: /src/haproxy/src/cfgparse-unix.c:109,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-unix.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 117
    functionName: bind_parse_user
    functionSourceFile: /src/haproxy/src/cfgparse-unix.c
    functionUses: 0
    functionsReached:
    - memprintf
    - getpwnam
    linkageType: ''
    returnType: int
    signature: int bind_parse_user(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:93,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:95,1
    - Dst: quic_tune_test
      Src: /src/haproxy/src/quic_cc_cubic.c:106,1
    - Dst: quic_cc_hystart_reset
      Src: /src/haproxy/src/quic_cc_cubic.c:107,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 109
    functionName: quic_cc_cubic_reset
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - quic_cc_priv
    - TRACE_ENTER
    - quic_tune_test
    - quic_cc_hystart_reset
    linkageType: ''
    returnType: void
    signature: void quic_cc_cubic_reset(struct quic_cc *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:113,1
    - Dst: quic_cc_cubic_reset
      Src: /src/haproxy/src/quic_cc_cubic.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: quic_cc_cubic_init
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - quic_cc_cubic_reset
    - quic_cc_priv
    linkageType: ''
    returnType: int
    signature: int quic_cc_cubic_init(struct quic_cc *cc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: my_flsl
      Src: /src/haproxy/src/quic_cc_cubic.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 153
    functionName: cubic_root
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - my_flsl
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cubic_root(uint64_t val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:228,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_cubic.c:229,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:244,1
    - Dst: cubic_root
      Src: /src/haproxy/src/quic_cc_cubic.c:269,1
    - Dst: quic_cc_cubic_reset
      Src: /src/haproxy/src/quic_cc_cubic.c:292,1
    - Dst: quic_cc_path_inc
      Src: /src/haproxy/src/quic_cc_cubic.c:386,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:388,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 2
    argNames:
    - cc
    - acked
    argTypes:
    - struct quic_cc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 389
    functionName: quic_cubic_update
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - quic_cc_path_inc
    - quic_cc_priv
    - TRACE_LEAVE
    - TRACE_ENTER
    - container_of
    - cubic_root
    - quic_cc_cubic_reset
    linkageType: ''
    returnType: void
    signature: void quic_cubic_update(struct quic_cc *cc, uint32_t acked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_cubic.c:393,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:395,1
    - Dst: quic_cc_path_reset
      Src: /src/haproxy/src/quic_cc_cubic.c:396,1
    - Dst: quic_cc_cubic_reset
      Src: /src/haproxy/src/quic_cc_cubic.c:397,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 399
    functionName: quic_cc_cubic_slow_start
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ENTER
    - container_of
    - quic_cc_path_reset
    - quic_cc_cubic_reset
    linkageType: ''
    returnType: void
    signature: void quic_cc_cubic_slow_start(struct quic_cc *cc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_cubic.c:403,1
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:404,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:407,1
    - Dst: quic_cc_path_set
      Src: /src/haproxy/src/quic_cc_cubic.c:436,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 439
    functionName: quic_enter_recovery
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - quic_cc_priv
    - TRACE_ENTER
    - container_of
    - quic_cc_path_set
    linkageType: ''
    returnType: void
    signature: void quic_enter_recovery(struct quic_cc *cc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_cubic.c:444,1
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:445,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:447,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:448,1
    - Dst: quic_tune_test
      Src: /src/haproxy/src/quic_cc_cubic.c:451,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_cc_cubic.c:453,1
    - Dst: quic_cc_path_inc
      Src: /src/haproxy/src/quic_cc_cubic.c:458,1
    - Dst: quic_cc_hystart_track_min_rtt
      Src: /src/haproxy/src/quic_cc_cubic.c:459,1
    - Dst: quic_cc_hystart_may_enter_cs
      Src: /src/haproxy/src/quic_cc_cubic.c:462,1
    - Dst: quic_cc_path_inc
      Src: /src/haproxy/src/quic_cc_cubic.c:469,1
    - Dst: quic_enter_recovery
      Src: /src/haproxy/src/quic_cc_cubic.c:477,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:486,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:487,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 442
    functionDepth: 4
    functionLinenumber: 442
    functionLinenumberEnd: 488
    functionName: quic_cc_cubic_ss_cb
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - quic_enter_recovery
    - TRACE_PROTO
    - quic_cc_path_inc
    - quic_cc_priv
    - quic_cc_hystart_may_enter_cs
    - TRACE_LEAVE
    - TRACE_ENTER
    - container_of
    - quic_tune_test
    - quic_cc_hystart_track_min_rtt
    - QUIC_MIN
    linkageType: ''
    returnType: void
    signature: void quic_cc_cubic_ss_cb(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:493,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:495,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:496,1
    - Dst: quic_cubic_update
      Src: /src/haproxy/src/quic_cc_cubic.c:500,1
    - Dst: QUIC_TUNE_FB_GET
      Src: /src/haproxy/src/quic_cc_cubic.c:513,1
    - Dst: quic_enter_recovery
      Src: /src/haproxy/src/quic_cc_cubic.c:515,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:523,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:524,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 491
    functionDepth: 4
    functionLinenumber: 491
    functionLinenumberEnd: 525
    functionName: quic_cc_cubic_ca_cb
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - quic_enter_recovery
    - TRACE_PROTO
    - QUIC_TUNE_FB_GET
    - TRACE_LEAVE
    - quic_cc_priv
    - TRACE_ENTER
    - quic_cubic_update
    linkageType: ''
    returnType: void
    signature: void quic_cc_cubic_ca_cb(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_cubic.c:530,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:532,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:533,1
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:538,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_cc_cubic.c:541,1
    - Dst: quic_cc_path_inc
      Src: /src/haproxy/src/quic_cc_cubic.c:546,1
    - Dst: quic_cc_hystart_track_min_rtt
      Src: /src/haproxy/src/quic_cc_cubic.c:547,1
    - Dst: quic_cc_hystart_may_reenter_ss
      Src: /src/haproxy/src/quic_cc_cubic.c:548,1
    - Dst: quic_enter_recovery
      Src: /src/haproxy/src/quic_cc_cubic.c:577,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:585,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:586,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 587
    functionName: quic_cc_cubic_cs_cb
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - quic_enter_recovery
    - TRACE_PROTO
    - quic_cc_path_inc
    - quic_cc_priv
    - TRACE_LEAVE
    - TRACE_ENTER
    - quic_cc_hystart_may_reenter_ss
    - container_of
    - quic_cc_hystart_track_min_rtt
    - QUIC_MIN
    linkageType: ''
    returnType: void
    signature: void quic_cc_cubic_cs_cb(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:592,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:594,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:595,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/quic_cc_cubic.c:603,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:604,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:620,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:621,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 622
    functionName: quic_cc_cubic_rp_cb
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - quic_cc_priv
    - TRACE_ENTER
    - tick_is_le
    linkageType: ''
    returnType: void
    signature: void quic_cc_cubic_rp_cb(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - ev
    argTypes:
    - struct quic_cc*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 637
    functionName: quic_cc_cubic_event
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - quic_cc_priv
    linkageType: ''
    returnType: void
    signature: void quic_cc_cubic_event(struct quic_cc *cc, struct quic_cc_event *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:641,1
    - Dst: quic_cc_hystart_start_round
      Src: /src/haproxy/src/quic_cc_cubic.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cc
    - pn
    argTypes:
    - struct quic_cc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 648
    functionName: quic_cc_cubic_hystart_start_round
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - quic_cc_hystart_start_round
    - quic_cc_priv
    linkageType: ''
    returnType: void
    signature: void quic_cc_cubic_hystart_start_round(struct quic_cc *cc, uint64_t
      pn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:653,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_cubic.c:655,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cc_cubic.c:656,1
    - Dst: quic_cc_state_str
      Src: /src/haproxy/src/quic_cc_cubic.c:657,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_cc_cubic.c:661,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_cc_cubic.c:662,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_cc_cubic.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - cc
    argTypes:
    - struct buffer*
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 663
    functionName: quic_cc_cubic_state_trace
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - tick_remain
    - quic_cc_priv
    - chunk_appendf
    - TICKS_TO_MS
    - container_of
    - tick_isset
    - quic_cc_state_str
    linkageType: ''
    returnType: void
    signature: void quic_cc_cubic_state_trace(struct buffer *buf, const struct quic_cc
      *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:667,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cc_cubic.c:669,1
    - Dst: quic_cc_state_str
      Src: /src/haproxy/src/quic_cc_cubic.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - path
    argTypes:
    - struct buffer*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 672
    functionName: quic_cc_cubic_state_cli
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - quic_cc_state_str
    - quic_cc_priv
    linkageType: ''
    returnType: void
    signature: void quic_cc_cubic_state_cli(struct buffer *buf, const struct quic_cc_path
      *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_cc_cubic.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 691
    functionName: quic_cc_cubic_check
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void quic_cc_cubic_check(void)
  - 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: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: MIN
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(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: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 165
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: BUG_ON_HOT
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_HOT(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncb_head
      Src: /src/haproxy/src/ncbuf.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - 'off'
    argTypes:
    - struct ncbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: ncb_peek
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_head
    linkageType: ''
    returnType: char
    signature: char *ncb_peek(const struct ncbuf *buf, ncb_sz_t off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: ncb_reserved
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_peek
    linkageType: ''
    returnType: char
    signature: char *ncb_reserved(const struct ncbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:73,1
    - Dst: ncb_wrap
      Src: /src/haproxy/src/ncbuf.c:78,1
    - Dst: ncb_orig
      Src: /src/haproxy/src/ncbuf.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - st
    - 'off'
    argTypes:
    - struct ncbuf*
    - char*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: ncb_write_off
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    - ncb_orig
    - ncb_wrap
    linkageType: ''
    returnType: forceinline
    signature: forceinline ncb_write_off(const struct ncbuf *buf, char *st, ncb_sz_t
      off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:89,1
    - Dst: ncb_wrap
      Src: /src/haproxy/src/ncbuf.c:94,1
    - Dst: ncb_orig
      Src: /src/haproxy/src/ncbuf.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - st
    argTypes:
    - struct ncbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 99
    functionName: ncb_read_off
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    - ncb_orig
    - ncb_wrap
    linkageType: ''
    returnType: forceinline
    signature: forceinline ncb_read_off(const struct ncbuf *buf, char *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncb_read_off
      Src: /src/haproxy/src/ncbuf.c:104,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - st
    - 'off'
    argTypes:
    - struct ncbuf*
    - char*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: ncb_inc_off
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_write_off
    - ncb_read_off
    linkageType: ''
    returnType: forceinline
    signature: forceinline ncb_inc_off(const struct ncbuf *buf, char *st, ncb_sz_t
      off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - 'off'
    argTypes:
    - struct ncbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: ncb_off_reduced
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_size
    linkageType: ''
    returnType: forceinline
    signature: forceinline ncb_off_reduced(const struct ncbuf *b, ncb_sz_t off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - blk
    argTypes:
    - struct ncb_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: ncb_blk_is_null
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline ncb_blk_is_null(const struct ncb_blk *blk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:123,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:123,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - blk
    argTypes:
    - struct ncbuf*
    - struct ncb_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: ncb_blk_is_last
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    - ncb_size
    linkageType: ''
    returnType: forceinline
    signature: forceinline ncb_blk_is_last(const struct ncbuf *buf, const struct ncb_blk
      *blk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncb_is_null
      Src: /src/haproxy/src/ncbuf.c:132,1
    - Dst: ncb_head
      Src: /src/haproxy/src/ncbuf.c:135,1
    - Dst: ncb_reserved
      Src: /src/haproxy/src/ncbuf.c:137,1
    - Dst: ncb_read_off
      Src: /src/haproxy/src/ncbuf.c:138,1
    - Dst: ncb_reserved
      Src: /src/haproxy/src/ncbuf.c:138,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:140,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:140,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: ncb_blk_first
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_reserved
    - ncb_is_null
    - ncb_head
    - ncb_size
    - ncb_read_off
    - BUG_ON_HOT
    - ncb_peek
    linkageType: ''
    returnType: struct ncb_blk
    signature: struct ncb_blk ncb_blk_first(const struct ncbuf *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:155,1
    - Dst: ncb_blk_is_null
      Src: /src/haproxy/src/ncbuf.c:155,1
    - Dst: ncb_blk_is_last
      Src: /src/haproxy/src/ncbuf.c:157,1
    - Dst: ncb_off_reduced
      Src: /src/haproxy/src/ncbuf.c:165,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:168,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:172,1
    - Dst: ncb_blk_is_last
      Src: /src/haproxy/src/ncbuf.c:172,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:175,1
    - Dst: ncb_read_off
      Src: /src/haproxy/src/ncbuf.c:176,1
    - Dst: ncb_read_off
      Src: /src/haproxy/src/ncbuf.c:177,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:177,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:178,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:182,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:189,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:192,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:192,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - buf
    - prev
    argTypes:
    - struct ncbuf*
    - struct ncb_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 196
    functionName: ncb_blk_next
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_blk_is_null
    - BUG_ON_HOT
    - ncb_size
    - ncb_read_off
    - ncb_blk_is_last
    - ncb_off_reduced
    - ncb_peek
    linkageType: ''
    returnType: struct ncb_blk
    signature: "struct ncb_blk ncb_blk_next(const struct ncbuf *buf,\n                                   const
      struct ncb_blk *prev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncb_is_null
      Src: /src/haproxy/src/ncbuf.c:206,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:209,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:209,1
    - Dst: ncb_blk_first
      Src: /src/haproxy/src/ncbuf.c:211,1
    - Dst: ncb_blk_next
      Src: /src/haproxy/src/ncbuf.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - 'off'
    argTypes:
    - struct ncbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 216
    functionName: ncb_blk_find
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_is_null
    - ncb_blk_next
    - ncb_blk_first
    - ncb_size
    - BUG_ON_HOT
    linkageType: ''
    returnType: struct ncb_blk
    signature: struct ncb_blk ncb_blk_find(const struct ncbuf *buf, ncb_sz_t off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:221,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - blk
    - 'off'
    argTypes:
    - struct ncb_blk*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: ncb_blk_off
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: forceinline
    signature: forceinline ncb_blk_off(const struct ncb_blk *blk, ncb_sz_t off)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncb_blk_off
      Src: /src/haproxy/src/ncbuf.c:240,1
    - Dst: ncb_blk_off
      Src: /src/haproxy/src/ncbuf.c:254,1
    - Dst: MIN
      Src: /src/haproxy/src/ncbuf.c:255,1
    - Dst: ncb_blk_is_last
      Src: /src/haproxy/src/ncbuf.c:262,1
    - Dst: ncb_blk_off
      Src: /src/haproxy/src/ncbuf.c:267,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:268,1
    - Dst: MIN
      Src: /src/haproxy/src/ncbuf.c:270,1
    - Dst: ncb_wrap
      Src: /src/haproxy/src/ncbuf.c:271,1
    - Dst: ncb_wrap
      Src: /src/haproxy/src/ncbuf.c:272,1
    - Dst: memcmp
      Src: /src/haproxy/src/ncbuf.c:273,1
    - Dst: memcmp
      Src: /src/haproxy/src/ncbuf.c:275,1
    - Dst: ncb_orig
      Src: /src/haproxy/src/ncbuf.c:275,1
    - Dst: memcmp
      Src: /src/haproxy/src/ncbuf.c:279,1
    - Dst: ncb_blk_next
      Src: /src/haproxy/src/ncbuf.c:288,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 6
    argNames:
    - buf
    - blk
    - 'off'
    - data
    - len
    - mode
    argTypes:
    - struct ncbuf*
    - struct ncb_blk*
    - ncb_sz_t
    - char*
    - ncb_sz_t
    - enum ncb_add_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 292
    functionName: ncb_check_insert
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ncb_orig
    - ncb_blk_next
    - MIN
    - ncb_blk_off
    - ncb_blk_is_last
    - ncb_peek
    - ncb_wrap
    linkageType: ''
    returnType: enum ncb_ret
    signature: "enum ncb_ret ncb_check_insert(const struct ncbuf *buf,\n                                     const
      struct ncb_blk *blk, ncb_sz_t off,\n                                     const
      char *data, ncb_sz_t len,\n                                     enum ncb_add_mode
      mode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/ncbuf.c:303,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:306,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:314,1
    - Dst: ncb_wrap
      Src: /src/haproxy/src/ncbuf.c:316,1
    - Dst: ncb_wrap
      Src: /src/haproxy/src/ncbuf.c:317,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbuf.c:318,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbuf.c:319,1
    - Dst: ncb_orig
      Src: /src/haproxy/src/ncbuf.c:319,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbuf.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - buf
    - blk
    - 'off'
    - data
    - len
    - mode
    argTypes:
    - struct ncbuf*
    - struct ncb_blk*
    - ncb_sz_t
    - char*
    - ncb_sz_t
    - enum ncb_add_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 327
    functionName: ncb_fill_data_blk
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_orig
    - memcpy
    - MIN
    - BUG_ON_HOT
    - ncb_peek
    - ncb_wrap
    linkageType: ''
    returnType: ncb_sz_t
    signature: "ncb_sz_t ncb_fill_data_blk(const struct ncbuf *buf,\n                                  const
      struct ncb_blk *blk, ncb_sz_t off,\n                                  const
      char *data, ncb_sz_t len,\n                                  enum ncb_add_mode
      mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/ncbuf.c:336,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:339,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:351,1
    - Dst: ncb_off_reduced
      Src: /src/haproxy/src/ncbuf.c:351,1
    - Dst: ncb_off_reduced
      Src: /src/haproxy/src/ncbuf.c:355,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:356,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:357,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:359,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:360,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:365,1
    - Dst: ncb_wrap
      Src: /src/haproxy/src/ncbuf.c:366,1
    - Dst: ncb_wrap
      Src: /src/haproxy/src/ncbuf.c:367,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbuf.c:368,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbuf.c:369,1
    - Dst: ncb_orig
      Src: /src/haproxy/src/ncbuf.c:369,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbuf.c:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - buf
    - blk
    - 'off'
    - data
    - len
    argTypes:
    - struct ncbuf*
    - struct ncb_blk*
    - ncb_sz_t
    - char*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 376
    functionName: ncb_fill_gap_blk
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_write_off
    - ncb_orig
    - memcpy
    - MIN
    - BUG_ON_HOT
    - ncb_off_reduced
    - ncb_peek
    - ncb_wrap
    linkageType: ''
    returnType: ncb_sz_t
    signature: "ncb_sz_t ncb_fill_gap_blk(const struct ncbuf *buf,\n                                 const
      struct ncb_blk *blk, ncb_sz_t off,\n                                 const char
      *data, ncb_sz_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:386,1
    - Dst: ncb_is_null
      Src: /src/haproxy/src/ncbuf.c:386,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:388,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:391,1
    - Dst: ncb_reserved
      Src: /src/haproxy/src/ncbuf.c:391,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:392,1
    - Dst: ncb_head
      Src: /src/haproxy/src/ncbuf.c:392,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:392,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:393,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - head
    argTypes:
    - struct ncbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 394
    functionName: ncb_init
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_reserved
    - ncb_is_null
    - ncb_write_off
    - ncb_head
    - ncb_size
    - BUG_ON_HOT
    - ncb_peek
    linkageType: ''
    returnType: void
    signature: void ncb_init(struct ncbuf *buf, ncb_sz_t head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - area
    - size
    - head
    argTypes:
    - char*
    - ncb_sz_t
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 411
    functionName: ncb_make
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: struct ncbuf
    signature: struct ncbuf ncb_make(char *area, ncb_sz_t size, ncb_sz_t head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncb_blk_first
      Src: /src/haproxy/src/ncbuf.c:419,1
    - Dst: ncb_blk_is_null
      Src: /src/haproxy/src/ncbuf.c:419,1
    - Dst: ncb_blk_next
      Src: /src/haproxy/src/ncbuf.c:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 414
    functionDepth: 4
    functionLinenumber: 414
    functionLinenumberEnd: 425
    functionName: ncb_total_data
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_blk_first
    - ncb_blk_is_null
    - ncb_blk_next
    linkageType: ''
    returnType: ncb_sz_t
    signature: ncb_sz_t ncb_total_data(const struct ncbuf *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncb_is_null
      Src: /src/haproxy/src/ncbuf.c:432,1
    - Dst: ncb_read_off
      Src: /src/haproxy/src/ncbuf.c:435,1
    - Dst: ncb_reserved
      Src: /src/haproxy/src/ncbuf.c:435,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:436,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:436,1
    - Dst: ncb_read_off
      Src: /src/haproxy/src/ncbuf.c:442,1
    - Dst: ncb_head
      Src: /src/haproxy/src/ncbuf.c:442,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:443,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:443,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 445
    functionName: ncb_is_empty
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_reserved
    - ncb_is_null
    - ncb_head
    - ncb_size
    - ncb_read_off
    - BUG_ON_HOT
    linkageType: ''
    returnType: int
    signature: int ncb_is_empty(const struct ncbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncb_is_null
      Src: /src/haproxy/src/ncbuf.c:452,1
    - Dst: ncb_read_off
      Src: /src/haproxy/src/ncbuf.c:456,1
    - Dst: ncb_reserved
      Src: /src/haproxy/src/ncbuf.c:456,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:457,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:457,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 459
    functionName: ncb_is_full
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_reserved
    - ncb_is_null
    - ncb_size
    - ncb_read_off
    - BUG_ON_HOT
    linkageType: ''
    returnType: int
    signature: int ncb_is_full(const struct ncbuf *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncb_is_null
      Src: /src/haproxy/src/ncbuf.c:466,1
    - Dst: ncb_is_empty
      Src: /src/haproxy/src/ncbuf.c:470,1
    - Dst: ncb_is_full
      Src: /src/haproxy/src/ncbuf.c:470,1
    - Dst: ncb_blk_first
      Src: /src/haproxy/src/ncbuf.c:474,1
    - Dst: ncb_blk_next
      Src: /src/haproxy/src/ncbuf.c:475,1
    - Dst: ncb_blk_is_last
      Src: /src/haproxy/src/ncbuf.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 462
    functionDepth: 4
    functionLinenumber: 462
    functionLinenumberEnd: 477
    functionName: ncb_is_fragmented
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_is_full
    - ncb_is_null
    - ncb_blk_next
    - ncb_is_empty
    - ncb_blk_first
    - ncb_blk_is_last
    linkageType: ''
    returnType: int
    signature: int ncb_is_fragmented(const struct ncbuf *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncb_is_null
      Src: /src/haproxy/src/ncbuf.c:488,1
    - Dst: ncb_blk_find
      Src: /src/haproxy/src/ncbuf.c:491,1
    - Dst: ncb_blk_off
      Src: /src/haproxy/src/ncbuf.c:492,1
    - Dst: ncb_blk_is_last
      Src: /src/haproxy/src/ncbuf.c:498,1
    - Dst: ncb_blk_next
      Src: /src/haproxy/src/ncbuf.c:499,1
    - Dst: ncb_blk_off
      Src: /src/haproxy/src/ncbuf.c:500,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - 'off'
    argTypes:
    - struct ncbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 483
    functionDepth: 5
    functionLinenumber: 483
    functionLinenumberEnd: 507
    functionName: ncb_data
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_is_null
    - ncb_blk_next
    - ncb_blk_find
    - ncb_blk_off
    - ncb_blk_is_last
    linkageType: ''
    returnType: ncb_sz_t
    signature: ncb_sz_t ncb_data(const struct ncbuf *buf, ncb_sz_t off)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:527,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:527,1
    - Dst: ncb_blk_find
      Src: /src/haproxy/src/ncbuf.c:530,1
    - Dst: ncb_check_insert
      Src: /src/haproxy/src/ncbuf.c:533,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:542,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:545,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:547,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:548,1
    - Dst: ncb_blk_off
      Src: /src/haproxy/src/ncbuf.c:558,1
    - Dst: ncb_blk_next
      Src: /src/haproxy/src/ncbuf.c:564,1
    - Dst: ncb_fill_gap_blk
      Src: /src/haproxy/src/ncbuf.c:567,1
    - Dst: ncb_inc_off
      Src: /src/haproxy/src/ncbuf.c:572,1
    - Dst: ncb_inc_off
      Src: /src/haproxy/src/ncbuf.c:576,1
    - Dst: ncb_fill_data_blk
      Src: /src/haproxy/src/ncbuf.c:580,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:583,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - buf
    - 'off'
    - data
    - len
    - mode
    argTypes:
    - struct ncbuf*
    - ncb_sz_t
    - char*
    - ncb_sz_t
    - enum ncb_add_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 516
    functionDepth: 5
    functionLinenumber: 516
    functionLinenumberEnd: 592
    functionName: ncb_add
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_write_off
    - ncb_blk_next
    - ncb_blk_find
    - ncb_fill_data_blk
    - ncb_inc_off
    - ncb_size
    - ncb_blk_off
    - BUG_ON_HOT
    - ncb_fill_gap_blk
    - ncb_check_insert
    - ncb_peek
    linkageType: ''
    returnType: enum ncb_ret
    signature: "enum ncb_ret ncb_add(struct ncbuf *buf, ncb_sz_t off,\n                     const
      char *data, ncb_sz_t len, enum ncb_add_mode mode)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbuf.c:608,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:608,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:613,1
    - Dst: ncb_init
      Src: /src/haproxy/src/ncbuf.c:614,1
    - Dst: ncb_blk_find
      Src: /src/haproxy/src/ncbuf.c:618,1
    - Dst: ncb_blk_is_last
      Src: /src/haproxy/src/ncbuf.c:623,1
    - Dst: ncb_init
      Src: /src/haproxy/src/ncbuf.c:628,1
    - Dst: ncb_blk_is_last
      Src: /src/haproxy/src/ncbuf.c:633,1
    - Dst: ncb_blk_next
      Src: /src/haproxy/src/ncbuf.c:634,1
    - Dst: ncb_blk_off
      Src: /src/haproxy/src/ncbuf.c:636,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:664,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:665,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:665,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:671,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:671,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:672,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:672,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:680,1
    - Dst: ncb_reserved
      Src: /src/haproxy/src/ncbuf.c:680,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:684,1
    - Dst: ncb_head
      Src: /src/haproxy/src/ncbuf.c:684,1
    - Dst: ncb_write_off
      Src: /src/haproxy/src/ncbuf.c:686,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:686,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 2
    argNames:
    - buf
    - adv
    argTypes:
    - struct ncbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 602
    functionDepth: 5
    functionLinenumber: 602
    functionLinenumberEnd: 690
    functionName: ncb_advance
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_reserved
    - ncb_write_off
    - ncb_blk_next
    - ncb_blk_find
    - ncb_head
    - ncb_init
    - ncb_size
    - ncb_blk_off
    - ncb_blk_is_last
    - BUG_ON_HOT
    - ncb_peek
    linkageType: ''
    returnType: enum ncb_ret
    signature: enum ncb_ret ncb_advance(struct ncbuf *buf, ncb_sz_t adv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/ncbuf.c:704,1
    - Dst: vfprintf
      Src: /src/haproxy/src/ncbuf.c:706,1
    - Dst: va_end
      Src: /src/haproxy/src/ncbuf.c:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 708
    functionName: ncbuf_printf
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void ncbuf_printf(char *str, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ncbuf.c:719,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:720,1
    - Dst: rand
      Src: /src/haproxy/src/ncbuf.c:722,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:722,1
    - Dst: rand
      Src: /src/haproxy/src/ncbuf.c:726,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 729
    functionName: ncb_generate_rand_off
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - calloc
    - rand
    - ncb_size
    - BUG_ON
    linkageType: ''
    returnType: struct rand_off
    signature: struct rand_off *ncb_generate_rand_off(const struct ncbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/ncbuf.c:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - blk
    argTypes:
    - struct ncb_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 738
    functionName: ncb_print_blk
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ncb_print_blk(const struct ncb_blk *blk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - blk
    argTypes:
    - struct ncb_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 743
    functionName: ncb_is_null_blk
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncb_is_null_blk(const struct ncb_blk *blk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncb_blk_first
      Src: /src/haproxy/src/ncbuf.c:749,1
    - Dst: ncb_print_blk
      Src: /src/haproxy/src/ncbuf.c:751,1
    - Dst: ncb_blk_next
      Src: /src/haproxy/src/ncbuf.c:752,1
    - Dst: ncb_is_null_blk
      Src: /src/haproxy/src/ncbuf.c:753,1
    - Dst: ncbuf_printf
      Src: /src/haproxy/src/ncbuf.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 745
    functionDepth: 4
    functionLinenumber: 745
    functionLinenumberEnd: 756
    functionName: ncb_loop
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_print_blk
    - ncb_is_null_blk
    - ncb_blk_next
    - ncb_blk_first
    - ncbuf_printf
    linkageType: ''
    returnType: void
    signature: void ncb_loop(const struct ncbuf *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncbuf_printf
      Src: /src/haproxy/src/ncbuf.c:763,1
    - Dst: ncbuf_printf
      Src: /src/haproxy/src/ncbuf.c:765,1
    - Dst: ncbuf_printf
      Src: /src/haproxy/src/ncbuf.c:766,1
    - Dst: ncbuf_printf
      Src: /src/haproxy/src/ncbuf.c:767,1
    - Dst: ncbuf_printf
      Src: /src/haproxy/src/ncbuf.c:769,1
    - Dst: ncb_loop
      Src: /src/haproxy/src/ncbuf.c:771,1
    - Dst: getchar
      Src: /src/haproxy/src/ncbuf.c:774,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - b
    - len
    - area
    - line
    argTypes:
    - struct ncbuf*
    - ncb_sz_t
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 758
    functionDepth: 5
    functionLinenumber: 758
    functionLinenumberEnd: 775
    functionName: ncbuf_print_buf
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncbuf_printf
    - ncb_loop
    - getchar
    linkageType: ''
    returnType: void
    signature: "void ncbuf_print_buf(struct ncbuf *b, ncb_sz_t len,\n                            unsigned
      char *area, int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: NCB_INIT
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCB_INIT(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - buf
    - ','
    - 'off'
    - ','
    - data
    - ','
    - sz
    - ','
    - mode
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 790
    functionName: NCB_ADD_EQ
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCB_ADD_EQ(buf, off, data, sz, mode, ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - buf
    - ','
    - 'off'
    - ','
    - data
    - ','
    - sz
    - ','
    - mode
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 794
    functionName: NCB_ADD_NEQ
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCB_ADD_NEQ(buf, off, data, sz, mode, ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - 'off'
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 798
    functionName: NCB_ADVANCE_EQ
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCB_ADVANCE_EQ(buf, off, ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 801
    functionName: NCB_TOTAL_DATA_EQ
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCB_TOTAL_DATA_EQ(buf, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - 'off'
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 804
    functionName: NCB_DATA_EQ
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCB_DATA_EQ(buf, off, data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/ncbuf.c:808,1
    - Dst: malloc
      Src: /src/haproxy/src/ncbuf.c:812,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:813,1
    - Dst: memset
      Src: /src/haproxy/src/ncbuf.c:814,1
    - Dst: malloc
      Src: /src/haproxy/src/ncbuf.c:816,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:817,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbuf.c:819,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:822,1
    - Dst: ncb_is_null
      Src: /src/haproxy/src/ncbuf.c:822,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:823,1
    - Dst: NCB_TOTAL_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:824,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:825,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:825,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:826,1
    - Dst: ncb_is_empty
      Src: /src/haproxy/src/ncbuf.c:826,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:827,1
    - Dst: ncb_is_full
      Src: /src/haproxy/src/ncbuf.c:827,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:828,1
    - Dst: ncb_is_fragmented
      Src: /src/haproxy/src/ncbuf.c:828,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:833,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:836,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:837,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:837,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:838,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:838,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:840,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:840,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:842,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:842,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:843,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:843,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:844,1
    - Dst: ncb_is_fragmented
      Src: /src/haproxy/src/ncbuf.c:844,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:845,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:845,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:846,1
    - Dst: ncb_is_fragmented
      Src: /src/haproxy/src/ncbuf.c:846,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:848,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:848,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:849,1
    - Dst: ncb_is_fragmented
      Src: /src/haproxy/src/ncbuf.c:849,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:851,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:852,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:852,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:852,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:852,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:853,1
    - Dst: ncb_is_fragmented
      Src: /src/haproxy/src/ncbuf.c:853,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:854,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:854,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:854,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:854,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:855,1
    - Dst: ncb_is_fragmented
      Src: /src/haproxy/src/ncbuf.c:855,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:857,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:857,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:857,1
    - Dst: NCB_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:857,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:858,1
    - Dst: ncb_is_fragmented
      Src: /src/haproxy/src/ncbuf.c:858,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:860,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:861,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:863,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:866,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:868,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:871,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:872,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:873,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:874,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:874,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:874,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:875,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:875,1
    - Dst: ncb_peek
      Src: /src/haproxy/src/ncbuf.c:875,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:878,1
    - Dst: NCB_ADVANCE_EQ
      Src: /src/haproxy/src/ncbuf.c:879,1
    - Dst: NCB_ADVANCE_EQ
      Src: /src/haproxy/src/ncbuf.c:880,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:880,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:882,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:884,1
    - Dst: NCB_ADVANCE_EQ
      Src: /src/haproxy/src/ncbuf.c:886,1
    - Dst: NCB_TOTAL_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:886,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:886,1
    - Dst: NCB_ADVANCE_EQ
      Src: /src/haproxy/src/ncbuf.c:888,1
    - Dst: NCB_TOTAL_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:888,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:888,1
    - Dst: NCB_ADVANCE_EQ
      Src: /src/haproxy/src/ncbuf.c:890,1
    - Dst: NCB_TOTAL_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:890,1
    - Dst: ncb_size
      Src: /src/haproxy/src/ncbuf.c:890,1
    - Dst: NCB_ADVANCE_EQ
      Src: /src/haproxy/src/ncbuf.c:892,1
    - Dst: NCB_TOTAL_DATA_EQ
      Src: /src/haproxy/src/ncbuf.c:892,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:895,1
    - Dst: NCB_ADD_EQ
      Src: /src/haproxy/src/ncbuf.c:896,1
    - Dst: NCB_ADVANCE_EQ
      Src: /src/haproxy/src/ncbuf.c:897,1
    - Dst: NCB_ADVANCE_EQ
      Src: /src/haproxy/src/ncbuf.c:898,1
    - Dst: NCB_ADVANCE_EQ
      Src: /src/haproxy/src/ncbuf.c:899,1
    - Dst: NCB_ADVANCE_EQ
      Src: /src/haproxy/src/ncbuf.c:900,1
    - Dst: NCB_ADVANCE_EQ
      Src: /src/haproxy/src/ncbuf.c:901,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbuf.c:903,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:904,1
    - Dst: ncb_is_full
      Src: /src/haproxy/src/ncbuf.c:907,1
    - Dst: ncb_generate_rand_off
      Src: /src/haproxy/src/ncbuf.c:908,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/ncbuf.c:909,1
    - Dst: ncb_add
      Src: /src/haproxy/src/ncbuf.c:911,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:912,1
    - Dst: ncbuf_print_buf
      Src: /src/haproxy/src/ncbuf.c:913,1
    - Dst: usleep
      Src: /src/haproxy/src/ncbuf.c:914,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbuf.c:917,1
    - Dst: ncbuf_print_buf
      Src: /src/haproxy/src/ncbuf.c:918,1
    - Dst: NCB_INIT
      Src: /src/haproxy/src/ncbuf.c:923,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ncbuf.c:924,1
    - Dst: ncb_is_full
      Src: /src/haproxy/src/ncbuf.c:925,1
    - Dst: ncb_add
      Src: /src/haproxy/src/ncbuf.c:927,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbuf.c:928,1
    - Dst: ncbuf_print_buf
      Src: /src/haproxy/src/ncbuf.c:929,1
    - Dst: usleep
      Src: /src/haproxy/src/ncbuf.c:930,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ncbuf.c:933,1
    - Dst: free
      Src: /src/haproxy/src/ncbuf.c:934,1
    - Dst: ncb_is_full
      Src: /src/haproxy/src/ncbuf.c:937,1
    - Dst: abort
      Src: /src/haproxy/src/ncbuf.c:938,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbuf.c:940,1
    - Dst: free
      Src: /src/haproxy/src/ncbuf.c:942,1
    - Dst: free
      Src: /src/haproxy/src/ncbuf.c:943,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 114
    argCount: 3
    argNames:
    - head
    - reset
    - print_delay
    argTypes:
    - ncb_sz_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 805
    functionDepth: 6
    functionLinenumber: 805
    functionLinenumberEnd: 946
    functionName: ncbuf_test
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 0
    functionsReached:
    - ncb_is_full
    - NCB_DATA_EQ
    - list_for_each_entry_safe
    - ncb_is_empty
    - free
    - ncb_size
    - ncb_is_null
    - NCB_TOTAL_DATA_EQ
    - NCB_ADVANCE_EQ
    - LIST_INSERT
    - ncb_is_fragmented
    - malloc
    - ncb_generate_rand_off
    - NCB_INIT
    - LIST_HEAD_INIT
    - ncb_peek
    - LIST_DELETE
    - memset
    - BUG_ON
    - abort
    - ncbuf_print_buf
    - ncb_add
    - usleep
    - fprintf
    - NCB_ADD_EQ
    linkageType: ''
    returnType: int
    signature: int ncbuf_test(ncb_sz_t head, int reset, int print_delay)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/haproxy/src/ncbuf.c:955,1
    - Dst: atoi
      Src: /src/haproxy/src/ncbuf.c:958,1
    - Dst: atoi
      Src: /src/haproxy/src/ncbuf.c:961,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbuf.c:963,1
    - Dst: exit
      Src: /src/haproxy/src/ncbuf.c:964,1
    - Dst: atoi
      Src: /src/haproxy/src/ncbuf.c:972,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbuf.c:977,1
    - Dst: exit
      Src: /src/haproxy/src/ncbuf.c:978,1
    - Dst: ncbuf_test
      Src: /src/haproxy/src/ncbuf.c:982,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 948
    functionDepth: 7
    functionLinenumber: 948
    functionLinenumberEnd: 984
    functionName: main
    functionSourceFile: /src/haproxy/src/ncbuf.c
    functionUses: 14
    functionsReached:
    - exit
    - ncbuf_test
    - fprintf
    - getopt
    - atoi
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:53,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:54,1
    - Dst: equal_bits
      Src: /src/haproxy/src/cebtree-dbg.c:58,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:58,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:58,1
    - Dst: equal_bits
      Src: /src/haproxy/src/cebtree-dbg.c:60,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:60,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:60,1
    - Dst: string_equal_bits
      Src: /src/haproxy/src/cebtree-dbg.c:62,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:62,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:62,1
    - Dst: string_equal_bits
      Src: /src/haproxy/src/cebtree-dbg.c:64,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:64,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:64,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:66,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:66,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:68,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:68,1
    - Dst: equal_bits
      Src: /src/haproxy/src/cebtree-dbg.c:79,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:79,1
    - Dst: equal_bits
      Src: /src/haproxy/src/cebtree-dbg.c:81,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:81,1
    - Dst: string_equal_bits
      Src: /src/haproxy/src/cebtree-dbg.c:83,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:83,1
    - Dst: string_equal_bits
      Src: /src/haproxy/src/cebtree-dbg.c:85,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:85,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:87,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:89,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 7
    argNames:
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - _l
    - _r
    argTypes:
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - struct ceb_root*
    - struct ceb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 94
    functionName: _xor_branches
    functionSourceFile: /src/haproxy/src/cebtree-dbg.c
    functionUses: 0
    functionsReached:
    - equal_bits
    - string_equal_bits
    - _ceb_clrtag
    - NODEK
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t _xor_branches(ptrdiff_t kofs, enum ceb_key_type key_type,
      uint32_t key_u32,\n                              uint64_t key_u64, const void
      *key_ptr,\n                              const struct ceb_root *_l,\n                              const
      struct ceb_root *_r)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:103,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:105,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:107,1
    - Dst: _xor_branches
      Src: /src/haproxy/src/cebtree-dbg.c:112,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - kofs
    - key_type
    - root
    - ctx
    - sub
    argTypes:
    - ptrdiff_t
    - enum ceb_key_type
    - struct ceb_root**
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 120
    functionName: ceb_imm_default_dump_root
    functionSourceFile: /src/haproxy/src/cebtree-dbg.c
    functionUses: 0
    functionsReached:
    - _ceb_clrtag
    - printf
    - _xor_branches
    linkageType: ''
    returnType: void
    signature: void ceb_imm_default_dump_root(ptrdiff_t kofs, enum ceb_key_type key_type,
      struct ceb_root *const *root, const void *ctx, int sub)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:134,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:137,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:140,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:143,1
    - Dst: _xor_branches
      Src: /src/haproxy/src/cebtree-dbg.c:150,1
    - Dst: _xor_branches
      Src: /src/haproxy/src/cebtree-dbg.c:154,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:155,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:156,1
    - Dst: _xor_branches
      Src: /src/haproxy/src/cebtree-dbg.c:159,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:160,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:161,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:167,1
    - Dst: flsnz
      Src: /src/haproxy/src/cebtree-dbg.c:168,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:170,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:171,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:172,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:172,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:173,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:173,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:175,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:176,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:177,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:177,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:178,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:178,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:186,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:189,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:190,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:191,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:191,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:192,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:192,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:194,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:195,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:196,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:196,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:197,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:197,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 6
    argNames:
    - kofs
    - key_type
    - node
    - level
    - ctx
    - sub
    argTypes:
    - ptrdiff_t
    - enum ceb_key_type
    - struct ceb_node*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 200
    functionName: ceb_imm_default_dump_node
    functionSourceFile: /src/haproxy/src/cebtree-dbg.c
    functionUses: 0
    functionsReached:
    - printf
    - _ceb_clrtag
    - NODEK
    - flsnz
    - _xor_branches
    linkageType: ''
    returnType: void
    signature: void ceb_imm_default_dump_node(ptrdiff_t kofs, enum ceb_key_type key_type,
      const struct ceb_node *node, int level, const void *ctx, int sub)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:215,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:218,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:221,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:224,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:235,1
    - Dst: _ceb_untag
      Src: /src/haproxy/src/cebtree-dbg.c:235,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/src/cebtree-dbg.c:238,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/src/cebtree-dbg.c:238,1
    - Dst: _xor_branches
      Src: /src/haproxy/src/cebtree-dbg.c:239,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:246,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:249,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:250,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:250,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:252,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:254,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:254,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:262,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:265,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:266,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:266,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:268,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:270,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:270,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 6
    argNames:
    - kofs
    - key_type
    - node
    - level
    - ctx
    - sub
    argTypes:
    - ptrdiff_t
    - enum ceb_key_type
    - struct ceb_node*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 273
    functionName: ceb_imm_default_dump_dups
    functionSourceFile: /src/haproxy/src/cebtree-dbg.c
    functionUses: 0
    functionsReached:
    - printf
    - _ceb_untag
    - _ceb_clrtag
    - NODEK
    - _ceb_dotag
    - _xor_branches
    linkageType: ''
    returnType: void
    signature: void ceb_imm_default_dump_dups(ptrdiff_t kofs, enum ceb_key_type key_type,
      const struct ceb_node *node, int level, const void *ctx, int sub)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:287,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:290,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:293,1
    - Dst: NODEK
      Src: /src/haproxy/src/cebtree-dbg.c:296,1
    - Dst: _xor_branches
      Src: /src/haproxy/src/cebtree-dbg.c:303,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:311,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:314,1
    - Dst: flsnz
      Src: /src/haproxy/src/cebtree-dbg.c:315,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:324,1
    - Dst: printf
      Src: /src/haproxy/src/cebtree-dbg.c:327,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 6
    argNames:
    - kofs
    - key_type
    - node
    - level
    - ctx
    - sub
    argTypes:
    - ptrdiff_t
    - enum ceb_key_type
    - struct ceb_node*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 331
    functionName: ceb_imm_default_dump_leaf
    functionSourceFile: /src/haproxy/src/cebtree-dbg.c
    functionUses: 0
    functionsReached:
    - flsnz
    - NODEK
    - printf
    - _xor_branches
    linkageType: ''
    returnType: void
    signature: void ceb_imm_default_dump_leaf(ptrdiff_t kofs, enum ceb_key_type key_type,
      const struct ceb_node *node, int level, const void *ctx, int sub)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:344,1
    - Dst: root_dump
      Src: /src/haproxy/src/cebtree-dbg.c:364,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/src/cebtree-dbg.c:370,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/src/cebtree-dbg.c:370,1
    - Dst: leaf_dump
      Src: /src/haproxy/src/cebtree-dbg.c:372,1
    - Dst: _xor_branches
      Src: /src/haproxy/src/cebtree-dbg.c:376,1
    - Dst: dups_dump
      Src: /src/haproxy/src/cebtree-dbg.c:384,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/src/cebtree-dbg.c:385,1
    - Dst: leaf_dump
      Src: /src/haproxy/src/cebtree-dbg.c:390,1
    - Dst: node_dump
      Src: /src/haproxy/src/cebtree-dbg.c:395,1
    - Dst: ceb_imm_default_dump_tree
      Src: /src/haproxy/src/cebtree-dbg.c:397,1
    - Dst: ceb_imm_default_dump_tree
      Src: /src/haproxy/src/cebtree-dbg.c:398,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 8
    argNames:
    - kofs
    - key_type
    - root
    - pxor
    - last
    - level
    - ctx
    - sub
    argTypes:
    - ptrdiff_t
    - enum ceb_key_type
    - struct ceb_root**
    - uint64_t
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 399
    functionName: ceb_imm_default_dump_tree
    functionSourceFile: /src/haproxy/src/cebtree-dbg.c
    functionUses: 1
    functionsReached:
    - node_dump
    - ceb_imm_default_dump_tree
    - leaf_dump
    - root_dump
    - _ceb_clrtag
    - _ceb_dotag
    - dups_dump
    - _xor_branches
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *ceb_imm_default_dump_tree(ptrdiff_t kofs, enum ceb_key_type
      key_type, struct ceb_root *const *root,\n                                             uint64_t
      pxor, const void *last, int level, const void *ctx, int sub,\n                                             void
      (*root_dump)(ptrdiff_t kofs, enum ceb_key_type key_type, struct ceb_root *const
      *root, const void *ctx, int sub),\n                                             void
      (*node_dump)(ptrdiff_t kofs, enum ceb_key_type key_type, const struct ceb_node
      *node, int level, const void *ctx, int sub),\n                                             void
      (*dups_dump)(ptrdiff_t kofs, enum ceb_key_type key_type, const struct ceb_node
      *node, int level, const void *ctx, int sub),\n                                             void
      (*leaf_dump)(ptrdiff_t kofs, enum ceb_key_type key_type, const struct ceb_node
      *node, int level, const void *ctx, int sub))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_retry.c:45,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_retry.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - buf
    - saddr
    argTypes:
    - unsigned char*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 51
    functionName: quic_saddr_cpy
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t quic_saddr_cpy(unsigned char *buf,\n                                    const
      struct sockaddr_storage *saddr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_u32
      Src: /src/haproxy/src/quic_retry.c:68,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_retry.c:68,1
    - Dst: quic_saddr_cpy
      Src: /src/haproxy/src/quic_retry.c:70,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_retry.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - aad
    - version
    - cid
    - addr
    argTypes:
    - unsigned char*
    - uint32_t
    - struct quic_cid*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: quic_generate_retry_token_aad
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - write_u32
    - quic_saddr_cpy
    - htonl
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_generate_retry_token_aad(unsigned char *aad,\n                                         uint32_t
      version,\n                                         const struct quic_cid *cid,\n
      \                                        const struct sockaddr_storage *addr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aead_aes_128_gcm
      Src: /src/haproxy/src/quic_retry.c:102,1
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/src/quic_retry.c:104,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_retry.c:108,1
    - Dst: quic_generate_retry_token_aad
      Src: /src/haproxy/src/quic_retry.c:117,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_retry.c:119,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:120,1
    - Dst: quic_tls_derive_retry_token_secret
      Src: /src/haproxy/src/quic_retry.c:124,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/quic_retry.c:124,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:126,1
    - Dst: quic_tls_tx_ctx_init
      Src: /src/haproxy/src/quic_retry.c:130,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:131,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_retry.c:139,1
    - Dst: write_u32
      Src: /src/haproxy/src/quic_retry.c:141,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_retry.c:141,1
    - Dst: quic_tls_encrypt
      Src: /src/haproxy/src/quic_retry.c:145,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:146,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_retry.c:151,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_retry.c:153,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_retry.c:157,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_retry.c:162,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 6
    argNames:
    - token
    - len
    - version
    - odcid
    - dcid
    - addr
    argTypes:
    - unsigned char*
    - size_t
    - uint32_t
    - struct quic_cid*
    - struct quic_cid*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 164
    functionName: quic_generate_retry_token
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_gcm
    - quic_tls_tx_ctx_init
    - TRACE_LEAVE
    - TRACE_ERROR
    - memcpy
    - EVP_aead_aes_128_gcm
    - RAND_bytes
    - QUIC_AEAD_CTX_free
    - TRACE_ENTER
    - write_u32
    - quic_generate_retry_token_aad
    - htonl
    - EVP_sha256
    - quic_tls_encrypt
    - quic_tls_derive_retry_token_secret
    linkageType: ''
    returnType: int
    signature: "int quic_generate_retry_token(unsigned char *token, size_t len,\n
      \                             const uint32_t version,\n                              const
      struct quic_cid *odcid,\n                              const struct quic_cid
      *dcid,\n                              struct sockaddr_storage *addr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_retry.c:181,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_retry.c:183,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:184,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:195,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:200,1
    - Dst: ntohl
      Src: /src/haproxy/src/quic_retry.c:204,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_retry.c:204,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:210,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_retry.c:215,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_retry.c:218,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - qc
    - token
    - end
    - odcid
    argTypes:
    - struct quic_conn*
    - unsigned char*
    - unsigned char*
    - struct quic_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 220
    functionName: parse_retry_token
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - memcpy
    - quic_dec_int
    - TRACE_ENTER
    - read_u32
    - ntohl
    linkageType: ''
    returnType: int
    signature: "int parse_retry_token(struct quic_conn *qc,\n                      const
      unsigned char *token, const unsigned char *end,\n                      struct
      quic_cid *odcid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aead_aes_128_gcm
      Src: /src/haproxy/src/quic_retry.c:258,1
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/src/quic_retry.c:260,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_retry.c:263,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_retry.c:266,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_retry.c:269,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:272,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:282,1
    - Dst: quic_generate_retry_token_aad
      Src: /src/haproxy/src/quic_retry.c:286,1
    - Dst: quic_tls_derive_retry_token_secret
      Src: /src/haproxy/src/quic_retry.c:289,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/quic_retry.c:289,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:291,1
    - Dst: quic_tls_rx_ctx_init
      Src: /src/haproxy/src/quic_retry.c:295,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:296,1
    - Dst: quic_tls_decrypt2
      Src: /src/haproxy/src/quic_retry.c:301,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:303,1
    - Dst: parse_retry_token
      Src: /src/haproxy/src/quic_retry.c:307,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:308,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_retry.c:312,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_retry.c:315,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_retry.c:318,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_retry.c:322,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_retry.c:324,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 5
    argNames:
    - pkt
    - dgram
    - l
    - qc
    - odcid
    argTypes:
    - struct quic_rx_packet*
    - struct quic_dgram*
    - struct listener*
    - struct quic_conn*
    - struct quic_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 326
    functionName: quic_retry_token_check
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_gcm
    - EXTRA_COUNTERS_GET
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_ERROR
    - EVP_aead_aes_128_gcm
    - quic_tls_decrypt2
    - QUIC_AEAD_CTX_free
    - TRACE_ENTER
    - quic_tls_rx_ctx_init
    - parse_retry_token
    - quic_generate_retry_token_aad
    - HA_ATOMIC_INC
    - EVP_sha256
    - quic_tls_derive_retry_token_secret
    linkageType: ''
    returnType: int
    signature: "int quic_retry_token_check(struct quic_rx_packet *pkt,\n                           struct
      quic_dgram *dgram,\n                           struct listener *l,\n                           struct
      quic_conn *qc,\n                           struct quic_cid *odcid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_retry.c:341,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retry.c:344,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retry.c:351,1
    - Dst: quic_tls_generate_retry_integrity_tag
      Src: /src/haproxy/src/quic_retry.c:355,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retry.c:358,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_retry.c:362,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retry.c:363,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retry.c:369,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_retry.c:376,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retry.c:379,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 6
    argNames:
    - qc
    - pkt
    - beg
    - end
    - pos
    - retry_token_len
    argTypes:
    - struct quic_conn*
    - struct quic_rx_packet*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 381
    functionName: quic_retry_packet_check
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - memcmp
    - TRACE_PROTO
    - TRACE_LEAVE
    - quic_tls_generate_retry_integrity_tag
    - TRACE_DEVEL
    - TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: "int quic_retry_packet_check(struct quic_conn *qc, struct quic_rx_packet
      *pkt,\n                            const unsigned char *beg, const unsigned
      char *end,\n                            const unsigned char *pos, size_t *retry_token_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_pool
      Src: /src/haproxy/src/quic_retry.c:386,1
    - Dst: ha_warning
      Src: /src/haproxy/src/quic_retry.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: create_quic_retry_token_pool
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - create_pool
    linkageType: ''
    returnType: int
    signature: int create_quic_retry_token_pool(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/jwt.c:44,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:52,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:54,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:56,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:60,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:62,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:64,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:68,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:70,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:72,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:76,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:78,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwt.c:80,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 2
    argNames:
    - alg_str
    - alg_len
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 89
    functionName: jwt_parse_alg
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncmp
    linkageType: ''
    returnType: enum jwt_alg
    signature: enum jwt_alg jwt_parse_alg(const char *alg_str, unsigned int alg_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - jwt
    - items
    - item_num
    argTypes:
    - struct buffer*
    - struct jwt_item*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 135
    functionName: jwt_tokenize
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int jwt_tokenize(const struct buffer *jwt, struct jwt_item *items,
      unsigned int item_num)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ebst_lookup
      Src: /src/haproxy/src/jwt.c:151,1
    - Dst: stat
      Src: /src/haproxy/src/jwt.c:156,1
    - Dst: BIO_new
      Src: /src/haproxy/src/jwt.c:157,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/jwt.c:157,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwt.c:159,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/jwt.c:163,1
    - Dst: PEM_read_bio_PUBKEY
      Src: /src/haproxy/src/jwt.c:164,1
    - Dst: calloc
      Src: /src/haproxy/src/jwt.c:171,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwt.c:173,1
    - Dst: memcpy
      Src: /src/haproxy/src/jwt.c:176,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/jwt.c:182,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/jwt.c:196,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/jwt.c:199,1
    - Dst: ckch_store_new
      Src: /src/haproxy/src/jwt.c:205,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwt.c:207,1
    - Dst: ckch_store_load_files
      Src: /src/haproxy/src/jwt.c:213,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/jwt.c:215,1
    - Dst: ha_free
      Src: /src/haproxy/src/jwt.c:223,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwt.c:224,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/jwt.c:228,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/jwt.c:229,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwt.c:230,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwt.c:239,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwt.c:246,1
    - Dst: free
      Src: /src/haproxy/src/jwt.c:247,1
    - Dst: BIO_free
      Src: /src/haproxy/src/jwt.c:249,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 6
    argNames:
    - path
    - pathlen
    - tryload_cert
    - file
    - line
    - err
    argTypes:
    - char*
    - int
    - int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 252
    functionName: jwt_tree_load_cert
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - memprintf
    - stat
    - free
    - BIO_new
    - BIO_read_filename
    - PEM_read_bio_PUBKEY
    - ha_free
    - ebst_lookup
    - ckchs_lookup
    - HA_SPIN_TRYLOCK
    - memcpy
    - calloc
    - ckch_store_new
    - EVP_PKEY_free
    - BIO_s_file
    - ckch_store_load_files
    - ckch_store_free
    - HA_SPIN_UNLOCK
    - BIO_free
    - ebst_insert
    linkageType: ''
    returnType: int
    signature: int jwt_tree_load_cert(char *path, int pathlen, int tryload_cert, const
      char *file, int line, char **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jwt.c:275,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jwt.c:278,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jwt.c:281,1
    - Dst: HMAC
      Src: /src/haproxy/src/jwt.c:286,1
    - Dst: CRYPTO_memcmp
      Src: /src/haproxy/src/jwt.c:290,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - decoded_signature
    argTypes:
    - struct jwt_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 294
    functionName: jwt_jwsverify_hmac
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - EVP_sha512
    - CRYPTO_memcmp
    - HMAC
    - EVP_sha384
    - EVP_sha256
    linkageType: ''
    returnType: enum jwt_vrfy_status
    signature: enum jwt_vrfy_status jwt_jwsverify_hmac(const struct jwt_ctx *ctx,
      const struct buffer *decoded_signature)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/haproxy/src/jwt.c:310,1
    - Dst: b_data
      Src: /src/haproxy/src/jwt.c:316,1
    - Dst: b_data
      Src: /src/haproxy/src/jwt.c:321,1
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/jwt.c:323,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwt.c:323,1
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/jwt.c:324,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwt.c:324,1
    - Dst: BN_free
      Src: /src/haproxy/src/jwt.c:327,1
    - Dst: BN_free
      Src: /src/haproxy/src/jwt.c:328,1
    - Dst: ECDSA_SIG_set0
      Src: /src/haproxy/src/jwt.c:334,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/haproxy/src/jwt.c:341,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/haproxy/src/jwt.c:348,1
    - Dst: ECDSA_SIG_free
      Src: /src/haproxy/src/jwt.c:352,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - ctx
    - signature
    argTypes:
    - struct jwt_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 354
    functionName: convert_ecdsa_sig
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - i2d_ECDSA_SIG
    - ECDSA_SIG_free
    - BN_bin2bn
    - b_orig
    - ECDSA_SIG_new
    - b_data
    - BN_free
    - ECDSA_SIG_set0
    linkageType: ''
    returnType: int
    signature: int convert_ecdsa_sig(const struct jwt_ctx *ctx, struct buffer *signature)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jwt.c:376,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jwt.c:379,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jwt.c:382,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jwt.c:386,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jwt.c:390,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jwt.c:394,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jwt.c:399,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jwt.c:403,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jwt.c:407,1
    - Dst: EVP_MD_CTX_new
      Src: /src/haproxy/src/jwt.c:413,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/jwt.c:419,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/jwt.c:421,1
    - Dst: X509_get_pubkey
      Src: /src/haproxy/src/jwt.c:424,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/haproxy/src/jwt.c:426,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwt.c:430,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/jwt.c:434,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/jwt.c:437,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/haproxy/src/jwt.c:441,1
    - Dst: convert_ecdsa_sig
      Src: /src/haproxy/src/jwt.c:457,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/haproxy/src/jwt.c:464,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/haproxy/src/jwt.c:465,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/haproxy/src/jwt.c:466,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/haproxy/src/jwt.c:468,1
    - Dst: EVP_MD_CTX_free
      Src: /src/haproxy/src/jwt.c:475,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/jwt.c:481,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwt.c:483,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 91
    argCount: 2
    argNames:
    - ctx
    - decoded_signature
    argTypes:
    - struct jwt_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 485
    functionName: jwt_jwsverify_rsa_ecdsa
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - ebmb_entry
    - X509_get_pubkey
    - EVP_PKEY_up_ref
    - ckchs_lookup
    - ebst_lookup
    - EVP_DigestVerifyUpdate
    - EVP_sha384
    - EVP_sha256
    - HA_SPIN_TRYLOCK
    - convert_ecdsa_sig
    - EVP_DigestVerifyFinal
    - ERR_clear_error
    - EVP_PKEY_free
    - EVP_sha512
    - HA_SPIN_UNLOCK
    - EVP_MD_CTX_free
    - EVP_DigestVerifyInit
    - EVP_PKEY_CTX_set_rsa_padding
    linkageType: ''
    returnType: enum jwt_vrfy_status
    signature: enum jwt_vrfy_status jwt_jwsverify_rsa_ecdsa(const struct jwt_ctx *ctx,
      struct buffer *decoded_signature)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: jwt_parse_alg
      Src: /src/haproxy/src/jwt.c:505,1
    - Dst: jwt_tokenize
      Src: /src/haproxy/src/jwt.c:510,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwt.c:525,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwt.c:529,1
    - Dst: jwt_jwsverify_hmac
      Src: /src/haproxy/src/jwt.c:549,1
    - Dst: jwt_jwsverify_rsa_ecdsa
      Src: /src/haproxy/src/jwt.c:563,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwt.c:572,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 4
    argNames:
    - token
    - alg
    - key
    - is_x509_path
    argTypes:
    - struct buffer*
    - struct buffer*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 575
    functionName: jwt_verify
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - jwt_parse_alg
    - free_trash_chunk
    - alloc_trash_chunk
    - jwt_jwsverify_hmac
    - jwt_tokenize
    - jwt_jwsverify_rsa_ecdsa
    - base64urldec
    linkageType: ''
    returnType: enum jwt_vrfy_status
    signature: "enum jwt_vrfy_status jwt_verify(const struct buffer *token, const
      struct buffer *alg,\n\t\t\t\tconst struct buffer *key, int is_x509_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_first
      Src: /src/haproxy/src/jwt.c:583,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/jwt.c:585,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/jwt.c:586,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwt.c:587,1
    - Dst: ha_free
      Src: /src/haproxy/src/jwt.c:588,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/jwt.c:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 591
    functionName: jwt_deinit
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - ha_free
    - ebmb_entry
    - ebmb_first
    - EVP_PKEY_free
    - ebmb_delete
    linkageType: ''
    returnType: void
    signature: void jwt_deinit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_ss.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 55
    functionName: recalc_server_ss
    functionSourceFile: /src/haproxy/src/lb_ss.c
    functionUses: 0
    functionsReached:
    - srv_willbe_usable
    linkageType: ''
    returnType: void
    signature: void recalc_server_ss(struct proxy *px)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_ss.c:65,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_ss.c:68,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_ss.c:71,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_ss.c:73,1
    - Dst: recalc_server_ss
      Src: /src/haproxy/src/lb_ss.c:88,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_ss.c:93,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_ss.c:94,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_ss.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 98
    functionName: ss_set_server_status_down
    functionSourceFile: /src/haproxy/src/lb_ss.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - update_backend_weight
    - HA_RWLOCK_WRUNLOCK
    - recalc_server_ss
    - srv_lb_status_changed
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void ss_set_server_status_down(struct server *srv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_ss.c:108,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_ss.c:111,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_ss.c:114,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_ss.c:116,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_ss.c:137,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_ss.c:138,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_ss.c:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: ss_set_server_status_up
    functionSourceFile: /src/haproxy/src/lb_ss.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - update_backend_weight
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void ss_set_server_status_up(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_ss.c:156,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_ss.c:160,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_ss.c:161,1
    - Dst: recalc_server_ss
      Src: /src/haproxy/src/lb_ss.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 164
    functionName: init_server_ss
    functionSourceFile: /src/haproxy/src/lb_ss.c
    functionUses: 0
    functionsReached:
    - srv_lb_commit_status
    - recount_servers
    - recalc_server_ss
    - update_backend_weight
    linkageType: ''
    returnType: int
    signature: int init_server_ss(struct proxy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/lb_ss.c:177,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_ss.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: ss_get_server
    functionSourceFile: /src/haproxy/src/lb_ss.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_RDUNLOCK
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct server
    signature: struct server *ss_get_server(struct proxy *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:71,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:72,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:72,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_htx.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: http_get_stline
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 19
    functionsReached:
    - htx_get_blk_ptr
    - htx_get_blk_type
    - htx_get_first_blk
    linkageType: ''
    returnType: struct htx_sl
    signature: struct htx_sl *http_get_stline(const struct htx *htx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:83,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:84,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/http_htx.c:87,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_htx.c:88,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: http_get_hdrs_size
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_next_blk
    - htx_get_blk_type
    - htx_get_first_blk
    - htx_get_blksz
    linkageType: ''
    returnType: size_t
    signature: size_t http_get_hdrs_size(struct htx *htx)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:139,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:143,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:144,1
    - Dst: istnext
      Src: /src/haproxy/src/http_htx.c:151,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_htx.c:157,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:160,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/http_htx.c:160,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:162,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_htx.c:171,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/http_htx.c:172,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:179,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_htx.c:182,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_htx.c:185,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:189,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:189,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:192,1
    - Dst: istptr
      Src: /src/haproxy/src/http_htx.c:192,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:192,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_htx.c:193,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:197,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:197,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:200,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:200,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:200,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:201,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_htx.c:202,1
    - Dst: strnistr
      Src: /src/haproxy/src/http_htx.c:206,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:215,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/http_htx.c:220,1
    - Dst: istnext
      Src: /src/haproxy/src/http_htx.c:221,1
    - Dst: http_find_hdr_value_end
      Src: /src/haproxy/src/http_htx.c:225,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:225,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/http_htx.c:227,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:227,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:240,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 104
    argCount: 4
    argNames:
    - htx
    - pattern
    - ctx
    - flags
    argTypes:
    - struct htx*
    - void*
    - struct http_hdr_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 243
    functionName: __http_find_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - regex_exec2
    - htx_get_next_blk
    - isteqi
    - isttest
    - ist2
    - ist
    - htx_get_blk_name
    - istend
    - htx_get_first_blk
    - http_find_hdr_value_end
    - HTTP_IS_LWS
    - htx_get_blk_type
    - istnext
    - istptr
    - strnistr
    - istlen
    - htx_is_empty
    - htx_get_blk_value
    linkageType: ''
    returnType: int
    signature: int __http_find_header(const struct htx *htx, const void *pattern,
      struct http_hdr_ctx *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __http_find_header
      Src: /src/haproxy/src/http_htx.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - htx
    - name
    - ctx
    - full
    argTypes:
    - struct htx*
    - struct ist
    - struct http_hdr_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: http_find_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 22
    functionsReached:
    - __http_find_header
    linkageType: ''
    returnType: int
    signature: int http_find_header(const struct htx *htx, const struct ist name,
      struct http_hdr_ctx *ctx, int full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __http_find_header
      Src: /src/haproxy/src/http_htx.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - htx
    - name
    - ctx
    - full
    argTypes:
    - struct htx*
    - struct ist
    - struct http_hdr_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: http_find_str_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - __http_find_header
    linkageType: ''
    returnType: int
    signature: int http_find_str_header(const struct htx *htx, const struct ist name,
      struct http_hdr_ctx *ctx, int full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __http_find_header
      Src: /src/haproxy/src/http_htx.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - htx
    - prefix
    - ctx
    - full
    argTypes:
    - struct htx*
    - struct ist
    - struct http_hdr_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: http_find_pfx_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - __http_find_header
    linkageType: ''
    returnType: int
    signature: int http_find_pfx_header(const struct htx *htx, const struct ist prefix,
      struct http_hdr_ctx *ctx, int full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __http_find_header
      Src: /src/haproxy/src/http_htx.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - htx
    - suffix
    - ctx
    - full
    argTypes:
    - struct htx*
    - struct ist
    - struct http_hdr_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: http_find_sfx_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - __http_find_header
    linkageType: ''
    returnType: int
    signature: int http_find_sfx_header(const struct htx *htx, const struct ist suffix,
      struct http_hdr_ctx *ctx, int full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __http_find_header
      Src: /src/haproxy/src/http_htx.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - htx
    - sub
    - ctx
    - full
    argTypes:
    - struct htx*
    - struct ist
    - struct http_hdr_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: http_find_sub_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - __http_find_header
    linkageType: ''
    returnType: int
    signature: int http_find_sub_header(const struct htx *htx, const struct ist sub,
      struct http_hdr_ctx *ctx, int full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __http_find_header
      Src: /src/haproxy/src/http_htx.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - htx
    - re
    - ctx
    - full
    argTypes:
    - struct htx*
    - struct my_regex*
    - struct http_hdr_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: http_match_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - __http_find_header
    linkageType: ''
    returnType: int
    signature: int http_match_header(const struct htx *htx, const struct my_regex
      *re, struct http_hdr_ctx *ctx, int full)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_tail_type
      Src: /src/haproxy/src/http_htx.c:290,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_htx.c:293,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_htx.c:297,1
    - Dst: htx_get_prev
      Src: /src/haproxy/src/http_htx.c:302,1
    - Dst: htx_get_prev
      Src: /src/haproxy/src/http_htx.c:302,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:303,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:304,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_htx.c:311,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:322,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_htx.c:323,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:323,1
    - Dst: http_update_authority
      Src: /src/haproxy/src/http_htx.c:324,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - htx
    - n
    - v
    - update_authority
    argTypes:
    - struct htx*
    - struct ist
    - struct ist
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 332
    functionName: http_add_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 3
    functionsReached:
    - unlikely
    - htx_get_blksz
    - isteqi
    - ist
    - http_update_authority
    - htx_get_tail_type
    - htx_get_prev
    - htx_get_blk
    - http_get_stline
    - htx_add_header
    - htx_get_blk_type
    linkageType: ''
    returnType: int
    signature: int http_add_header(struct htx *htx, const struct ist n, const struct
      ist v, int update_authority)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:341,1
    - Dst: htx_replace_stline
      Src: /src/haproxy/src/http_htx.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - htx
    - p1
    - p2
    - p3
    argTypes:
    - struct htx*
    - struct ist
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 345
    functionName: http_replace_stline
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_first_blk
    - htx_replace_stline
    linkageType: ''
    returnType: int
    signature: int http_replace_stline(struct htx *htx, const struct ist p1, const
      struct ist p2, const struct ist p3)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_htx.c:352,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:353,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:360,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_htx.c:360,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_htx.c:360,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:361,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_htx.c:361,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:363,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:363,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:363,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:364,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:364,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/http_htx.c:367,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - htx
    - meth
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 369
    functionName: http_replace_req_meth
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ist2
    - HTX_SL_REQ_VLEN
    - HTX_SL_REQ_ULEN
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - get_trash_chunk
    - http_replace_stline
    - chunk_memcat
    - find_http_meth
    - HTX_SL_REQ_VPTR
    linkageType: ''
    returnType: int
    signature: int http_replace_req_meth(struct htx *htx, const struct ist meth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_htx.c:376,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:377,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:384,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_htx.c:384,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:384,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:385,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:385,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:387,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:387,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:387,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:388,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:388,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:391,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/http_htx.c:395,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:395,1
    - Dst: http_update_host
      Src: /src/haproxy/src/http_htx.c:398,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - htx
    - uri
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 404
    functionName: http_replace_req_uri
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ist2
    - http_update_host
    - HTX_SL_REQ_VLEN
    - http_get_stline
    - HTX_SL_REQ_MLEN
    - get_trash_chunk
    - http_replace_stline
    - chunk_memcat
    - ASSUME_NONNULL
    - HTX_SL_REQ_MPTR
    - HTX_SL_REQ_VPTR
    linkageType: ''
    returnType: int
    signature: int http_replace_req_uri(struct htx *htx, const struct ist uri)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_htx.c:413,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:414,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_htx.c:422,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_htx.c:423,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_htx.c:424,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:425,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:435,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_htx.c:435,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:435,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:436,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:436,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:438,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:438,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:438,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:439,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:439,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:441,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:442,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:443,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:444,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - htx
    - path
    - with_qs
    argTypes:
    - struct htx*
    - struct ist
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 448
    functionName: http_replace_req_path
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ist2
    - HTX_SL_REQ_VPTR
    - chunk_istcat
    - HTX_SL_REQ_VLEN
    - http_get_stline
    - HTX_SL_REQ_MLEN
    - get_trash_chunk
    - http_uri_parser_init
    - http_replace_stline
    - chunk_memcat
    - http_parse_path
    - htx_sl_req_uri
    - HTX_SL_REQ_MPTR
    - isttest
    linkageType: ''
    returnType: int
    signature: int http_replace_req_path(struct htx *htx, const struct ist path, int
      with_qs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_htx.c:456,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:457,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_htx.c:464,1
    - Dst: istnext
      Src: /src/haproxy/src/http_htx.c:467,1
    - Dst: istnext
      Src: /src/haproxy/src/http_htx.c:474,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:480,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_htx.c:480,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:480,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:481,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:481,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:483,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:483,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:483,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:484,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:484,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:486,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:487,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:488,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:491,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - htx
    - query
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 492
    functionName: http_replace_req_query
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ist2
    - HTX_SL_REQ_VLEN
    - http_get_stline
    - HTX_SL_REQ_MLEN
    - get_trash_chunk
    - http_replace_stline
    - chunk_memcat
    - istnext
    - htx_sl_req_uri
    - HTX_SL_REQ_MPTR
    - HTX_SL_REQ_VPTR
    linkageType: ''
    returnType: int
    signature: int http_replace_req_query(struct htx *htx, const struct ist query)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_htx.c:499,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:500,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:507,1
    - Dst: HTX_SL_RES_VPTR
      Src: /src/haproxy/src/http_htx.c:507,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/http_htx.c:507,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:508,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/http_htx.c:508,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:510,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:511,1
    - Dst: HTX_SL_RES_RPTR
      Src: /src/haproxy/src/http_htx.c:511,1
    - Dst: HTX_SL_RES_RLEN
      Src: /src/haproxy/src/http_htx.c:511,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:512,1
    - Dst: HTX_SL_RES_RLEN
      Src: /src/haproxy/src/http_htx.c:512,1
    - Dst: strl2ui
      Src: /src/haproxy/src/http_htx.c:516,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - htx
    - status
    - reason
    argTypes:
    - struct htx*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 518
    functionName: http_replace_res_status
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ist2
    - HTX_SL_RES_VLEN
    - http_get_stline
    - HTX_SL_RES_RLEN
    - get_trash_chunk
    - http_replace_stline
    - HTX_SL_RES_RPTR
    - chunk_memcat
    - strl2ui
    - HTX_SL_RES_VPTR
    - isttest
    linkageType: ''
    returnType: int
    signature: int http_replace_res_status(struct htx *htx, const struct ist status,
      const struct ist reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_htx.c:525,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:526,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:533,1
    - Dst: HTX_SL_RES_VPTR
      Src: /src/haproxy/src/http_htx.c:533,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/http_htx.c:533,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:534,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/http_htx.c:534,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:536,1
    - Dst: HTX_SL_RES_CPTR
      Src: /src/haproxy/src/http_htx.c:536,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/http_htx.c:536,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:537,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/http_htx.c:537,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - htx
    - reason
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 541
    functionName: http_replace_res_reason
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ist2
    - HTX_SL_RES_VLEN
    - http_get_stline
    - get_trash_chunk
    - http_replace_stline
    - chunk_memcat
    - HTX_SL_RES_VPTR
    - HTX_SL_RES_CPTR
    - HTX_SL_RES_CLEN
    linkageType: ''
    returnType: int
    signature: int http_replace_res_reason(struct htx *htx, const struct ist reason)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:563,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:565,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_htx.c:569,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:569,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:572,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/http_htx.c:575,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:575,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:575,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:579,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/http_htx.c:583,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:583,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:586,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:589,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - htx
    - ctx
    - data
    argTypes:
    - struct htx*
    - struct http_hdr_ctx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 595
    functionName: http_append_header_value
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 1
    functionsReached:
    - unlikely
    - ist2
    - ist
    - istend
    - htx_replace_blk_value
    - istlen
    - htx_get_blk_value
    linkageType: ''
    returnType: int
    signature: int http_append_header_value(struct htx *htx, struct http_hdr_ctx *ctx,
      const struct ist data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:616,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:618,1
    - Dst: istptr
      Src: /src/haproxy/src/http_htx.c:619,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_htx.c:621,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:621,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/http_htx.c:626,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:626,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:629,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/http_htx.c:636,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:636,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:636,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:639,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:643,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - htx
    - ctx
    - data
    argTypes:
    - struct htx*
    - struct http_hdr_ctx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 649
    functionName: http_prepend_header_value
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist2
    - ist
    - htx_replace_blk_value
    - istptr
    - istlen
    - htx_get_blk_value
    linkageType: ''
    returnType: int
    signature: int http_prepend_header_value(struct htx *htx, struct http_hdr_ctx
      *ctx, const struct ist data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:667,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/http_htx.c:672,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:672,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:675,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:680,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_htx.c:682,1
    - Dst: isteq
      Src: /src/haproxy/src/http_htx.c:684,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:684,1
    - Dst: http_update_authority
      Src: /src/haproxy/src/http_htx.c:685,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:688,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:688,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:690,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:695,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - htx
    - ctx
    - data
    - update_authority
    argTypes:
    - struct htx*
    - struct http_hdr_ctx*
    - struct ist
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 701
    functionName: http_replace_header_value
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 1
    functionsReached:
    - ist2
    - ist
    - http_update_authority
    - htx_replace_blk_value
    - http_get_stline
    - http_find_header
    - isteq
    - htx_get_blk_name
    - htx_get_blk_value
    linkageType: ''
    returnType: int
    signature: "int http_replace_header_value(struct htx *htx, struct http_hdr_ctx
      *ctx, const struct ist data,\n\t\t\t      int update_authority)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htx_replace_header
      Src: /src/haproxy/src/http_htx.c:717,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:724,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_htx.c:725,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:725,1
    - Dst: http_update_authority
      Src: /src/haproxy/src/http_htx.c:726,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:729,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:729,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:735,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - htx
    - ctx
    - name
    - value
    - update_authority
    argTypes:
    - struct htx*
    - struct http_hdr_ctx*
    - struct ist
    - struct ist
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 741
    functionName: http_replace_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - isteqi
    - ist
    - http_update_authority
    - http_get_stline
    - http_find_header
    - htx_replace_header
    linkageType: ''
    returnType: int
    signature: "int http_replace_header(struct htx *htx, struct http_hdr_ctx *ctx,\n\t\t\tconst
      struct ist name, const struct ist value,\n\t\t\tint update_authority)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:763,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_htx.c:765,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_htx.c:766,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:772,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:773,1
    - Dst: memmove
      Src: /src/haproxy/src/http_htx.c:795,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/http_htx.c:796,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:799,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - htx
    - ctx
    argTypes:
    - struct htx*
    - struct http_hdr_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 803
    functionName: http_remove_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 4
    functionsReached:
    - htx_change_blk_value_len
    - ist2
    - memmove
    - htx_get_blk
    - htx_remove_blk
    - htx_is_empty
    - htx_get_blk_value
    linkageType: ''
    returnType: int
    signature: int http_remove_header(struct htx *htx, struct http_hdr_ctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_htx.c:813,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_htx.c:817,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_htx.c:818,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/http_htx.c:819,1
    - Dst: isteq
      Src: /src/haproxy/src/http_htx.c:824,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:828,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_htx.c:828,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:828,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:829,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:829,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:831,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:831,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:831,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:832,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:832,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:834,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:835,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:836,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:836,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:836,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:836,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:837,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - htx
    - sl
    - host
    argTypes:
    - struct htx*
    - struct htx_sl*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 811
    functionDepth: 3
    functionLinenumber: 811
    functionLinenumberEnd: 841
    functionName: http_update_authority
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 3
    functionsReached:
    - ist2
    - chunk_istcat
    - HTX_SL_REQ_VLEN
    - istend
    - http_parse_authority
    - HTX_SL_REQ_MLEN
    - get_trash_chunk
    - http_uri_parser_init
    - http_replace_stline
    - chunk_memcat
    - isteq
    - htx_sl_req_uri
    - HTX_SL_REQ_MPTR
    - HTX_SL_REQ_VPTR
    linkageType: ''
    returnType: int
    signature: int http_update_authority(struct htx *htx, struct htx_sl *sl, const
      struct ist host)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_htx.c:854,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/http_htx.c:869,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:880,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:880,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/http_htx.c:881,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - htx
    - sl
    - uri
    argTypes:
    - struct htx*
    - struct htx_sl*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 889
    functionName: http_update_host
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 1
    functionsReached:
    - ist
    - http_parse_authority
    - http_find_header
    - http_uri_parser_init
    - http_replace_header_value
    linkageType: ''
    returnType: int
    signature: int http_update_host(struct htx *htx, struct htx_sl *sl, const struct
      ist uri)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:917,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:933,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 6
    argNames:
    - htx
    - hdr
    - occ
    - ctx
    - vptr
    - vlen
    argTypes:
    - struct htx*
    - struct ist
    - int
    - struct http_hdr_ctx*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 953
    functionName: http_get_htx_hdr
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 2
    functionsReached:
    - http_find_header
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int http_get_htx_hdr(const struct htx *htx, const struct
      ist hdr,\n\t\t\t      int occ, struct http_hdr_ctx *ctx, char **vptr, size_t
      *vlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:981,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:997,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 6
    argNames:
    - htx
    - hdr
    - occ
    - ctx
    - vptr
    - vlen
    argTypes:
    - struct htx*
    - struct ist
    - int
    - struct http_hdr_ctx*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 1017
    functionName: http_get_htx_fhdr
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 1
    functionsReached:
    - http_find_header
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int http_get_htx_fhdr(const struct htx *htx, const struct
      ist hdr,\n\t\t\t       int occ, struct http_hdr_ctx *ctx, char **vptr, size_t
      *vlen)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: b_reset
      Src: /src/haproxy/src/http_htx.c:1029,1
    - Dst: malloc
      Src: /src/haproxy/src/http_htx.c:1037,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/http_htx.c:1041,1
    - Dst: h1_headers_to_hdr_list
      Src: /src/haproxy/src/http_htx.c:1043,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:1043,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1046,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_htx.c:1050,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1051,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1059,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1080,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1093,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1097,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_htx.c:1102,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_htx.c:1103,1
    - Dst: htx_add_all_headers
      Src: /src/haproxy/src/http_htx.c:1104,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1105,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/http_htx.c:1111,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1111,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1113,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1125,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 90
    argCount: 3
    argNames:
    - buf
    - raw
    - errmsg
    argTypes:
    - struct buffer*
    - struct ist
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1019
    functionDepth: 4
    functionLinenumber: 1019
    functionLinenumberEnd: 1127
    functionName: http_str_to_htx
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - malloc
    - unlikely
    - memprintf
    - htx_add_all_headers
    - ist2
    - istend
    - h1_headers_to_hdr_list
    - free
    - htx_add_data
    - b_reset
    - htx_add_stline
    - h1m_init_res
    - htx_from_buf
    linkageType: ''
    returnType: int
    signature: int http_str_to_htx(struct buffer *buf, struct ist raw, char **errmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:1136,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/http_htx.c:1137,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:1138,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_htx.c:1139,1
    - Dst: istfree
      Src: /src/haproxy/src/http_htx.c:1140,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1141,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:1145,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:1148,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_htx.c:1150,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - http_reply
    argTypes:
    - struct http_reply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1152
    functionName: release_http_reply
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - ha_free
    - list_for_each_entry_safe
    - istfree
    - free
    - chunk_destroy
    - lf_expr_deinit
    linkageType: ''
    returnType: void
    signature: void release_http_reply(struct http_reply *http_reply)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:1164,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:1169,1
    - Dst: http_str_to_htx
      Src: /src/haproxy/src/http_htx.c:1170,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:1171,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1176,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:1181,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/http_htx.c:1187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1154
    functionDepth: 5
    functionLinenumber: 1154
    functionLinenumberEnd: 1192
    functionName: http_htx_init
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ist
    - ha_free
    - http_str_to_htx
    - ha_alert
    - ha_warning
    - LIST_INIT
    linkageType: ''
    returnType: int
    signature: int http_htx_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_first
      Src: /src/haproxy/src/http_htx.c:1202,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/http_htx.c:1204,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/http_htx.c:1205,1
    - Dst: container_of
      Src: /src/haproxy/src/http_htx.c:1206,1
    - Dst: typeof
      Src: /src/haproxy/src/http_htx.c:1206,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:1207,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1208,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1209,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/http_htx.c:1213,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1214,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1215,1
    - Dst: release_http_reply
      Src: /src/haproxy/src/http_htx.c:1217,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:1218,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1219,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/http_htx.c:1222,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:1223,1
    - Dst: release_http_reply
      Src: /src/haproxy/src/http_htx.c:1224,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:1228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1194
    functionDepth: 4
    functionLinenumber: 1194
    functionLinenumberEnd: 1229
    functionName: http_htx_deinit
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - typeof
    - release_http_reply
    - ebpt_delete
    - list_for_each_entry_safe
    - ebpt_next
    - container_of
    - free
    - ebpt_first
    - chunk_destroy
    linkageType: ''
    returnType: void
    signature: void http_htx_deinit(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ebis_lookup_len
      Src: /src/haproxy/src/http_htx.c:1250,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1250,1
    - Dst: container_of
      Src: /src/haproxy/src/http_htx.c:1252,1
    - Dst: typeof
      Src: /src/haproxy/src/http_htx.c:1252,1
    - Dst: open
      Src: /src/haproxy/src/http_htx.c:1258,1
    - Dst: fstat
      Src: /src/haproxy/src/http_htx.c:1259,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1260,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1267,1
    - Dst: malloc
      Src: /src/haproxy/src/http_htx.c:1272,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1274,1
    - Dst: read
      Src: /src/haproxy/src/http_htx.c:1278,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1280,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:1285,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1287,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1290,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1292,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1293,1
    - Dst: http_str_to_htx
      Src: /src/haproxy/src/http_htx.c:1298,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1298,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1299,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1300,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1301,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/http_htx.c:1307,1
    - Dst: close
      Src: /src/haproxy/src/http_htx.c:1312,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1313,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 2
    argNames:
    - file
    - errmsg
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1238
    functionDepth: 5
    functionLinenumber: 1238
    functionLinenumberEnd: 1315
    functionName: http_load_errorfile
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ebis_lookup_len
    - malloc
    - memprintf
    - typeof
    - ist2
    - ebis_insert
    - calloc
    - open
    - http_str_to_htx
    - container_of
    - free
    - read
    - fstat
    - ha_warning
    - strdup
    - close
    - strlen
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *http_load_errorfile(const char *file, char **errmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebis_lookup_len
      Src: /src/haproxy/src/http_htx.c:1329,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1329,1
    - Dst: container_of
      Src: /src/haproxy/src/http_htx.c:1331,1
    - Dst: typeof
      Src: /src/haproxy/src/http_htx.c:1331,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:1336,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1338,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1341,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1343,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1344,1
    - Dst: http_str_to_htx
      Src: /src/haproxy/src/http_htx.c:1349,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1350,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1351,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1352,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/http_htx.c:1358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - key
    - msg
    - errmsg
    argTypes:
    - char*
    - struct ist
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1321
    functionDepth: 5
    functionLinenumber: 1321
    functionLinenumberEnd: 1362
    functionName: http_load_errormsg
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ebis_lookup_len
    - memprintf
    - typeof
    - ebis_insert
    - calloc
    - http_str_to_htx
    - container_of
    - free
    - strdup
    - strlen
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *http_load_errormsg(const char *key, const struct ist
      msg, char **errmsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_load_errorfile
      Src: /src/haproxy/src/http_htx.c:1375,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - status
    - file
    - errmsg
    argTypes:
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1368
    functionDepth: 6
    functionLinenumber: 1368
    functionLinenumberEnd: 1383
    functionName: http_parse_errorfile
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - http_load_errorfile
    - memprintf
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *http_parse_errorfile(int status, const char *file, char
      **errmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1412,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1413,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1418,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1418,1
    - Dst: malloc
      Src: /src/haproxy/src/http_htx.c:1419,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1421,1
    - Dst: snprintf
      Src: /src/haproxy/src/http_htx.c:1424,1
    - Dst: http_load_errormsg
      Src: /src/haproxy/src/http_htx.c:1427,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1427,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1433,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1435,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - errloc
    - status
    - url
    - errmsg
    argTypes:
    - int
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1391
    functionDepth: 6
    functionLinenumber: 1391
    functionLinenumberEnd: 1438
    functionName: http_parse_errorloc
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - malloc
    - memprintf
    - ist2
    - http_load_errormsg
    - free
    - snprintf
    - strlen
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *http_parse_errorloc(int errloc, int status, const char
      *url, char **errmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_htx.c:1457,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1458,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1460,1
    - Dst: http_get_status_idx
      Src: /src/haproxy/src/http_htx.c:1461,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1463,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1471,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - reply
    - px
    - errmsg
    argTypes:
    - struct http_reply*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1449
    functionDepth: 3
    functionLinenumber: 1449
    functionLinenumberEnd: 1478
    functionName: http_check_http_reply
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - memprintf
    - list_for_each_entry
    - strcmp
    - free
    - ha_warning
    - http_get_status_idx
    linkageType: ''
    returnType: int
    signature: int http_check_http_reply(struct http_reply *reply, struct proxy *px,
      char **errmsg)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:1507,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1509,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/http_htx.c:1512,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1527,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1530,1
    - Dst: atol
      Src: /src/haproxy/src/http_htx.c:1533,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1535,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1540,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1543,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1546,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1547,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1550,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1552,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1558,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1561,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1563,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1569,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1571,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1578,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1580,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1586,1
    - Dst: http_load_errorfile
      Src: /src/haproxy/src/http_htx.c:1589,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1596,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1598,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1604,1
    - Dst: open
      Src: /src/haproxy/src/http_htx.c:1607,1
    - Dst: fstat
      Src: /src/haproxy/src/http_htx.c:1608,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1609,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1613,1
    - Dst: malloc
      Src: /src/haproxy/src/http_htx.c:1618,1
    - Dst: read
      Src: /src/haproxy/src/http_htx.c:1619,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1620,1
    - Dst: close
      Src: /src/haproxy/src/http_htx.c:1623,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_htx.c:1626,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1630,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1632,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1638,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1641,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1642,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1644,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_htx.c:1648,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1652,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1654,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1660,1
    - Dst: open
      Src: /src/haproxy/src/http_htx.c:1663,1
    - Dst: fstat
      Src: /src/haproxy/src/http_htx.c:1664,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1665,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1669,1
    - Dst: malloc
      Src: /src/haproxy/src/http_htx.c:1674,1
    - Dst: read
      Src: /src/haproxy/src/http_htx.c:1675,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1676,1
    - Dst: close
      Src: /src/haproxy/src/http_htx.c:1679,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_htx.c:1683,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1686,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1688,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1694,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1697,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1698,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_htx.c:1700,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1703,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1706,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/http_htx.c:1709,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/http_htx.c:1710,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/http_htx.c:1711,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1712,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:1717,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1719,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:1722,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_htx.c:1723,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:1724,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1724,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:1725,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1726,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_htx.c:1729,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1740,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:1743,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1758,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1765,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:1768,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/http_htx.c:1770,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1771,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/http_htx.c:1774,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:1775,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_htx.c:1776,1
    - Dst: istfree
      Src: /src/haproxy/src/http_htx.c:1777,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1778,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1784,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1788,1
    - Dst: b_data
      Src: /src/haproxy/src/http_htx.c:1791,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1792,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:1795,1
    - Dst: b_room
      Src: /src/haproxy/src/http_htx.c:1797,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1798,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_htx.c:1804,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1806,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1810,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_htx.c:1813,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1817,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1822,1
    - Dst: close
      Src: /src/haproxy/src/http_htx.c:1824,1
    - Dst: release_http_reply
      Src: /src/haproxy/src/http_htx.c:1825,1
    CyclomaticComplexity: 118
    EdgeCount: 118
    ICount: 328
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - default_status
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1496
    functionDepth: 6
    functionLinenumber: 1496
    functionLinenumberEnd: 1827
    functionName: http_parse_http_reply
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - memprintf
    - isttest
    - release_http_reply
    - list_for_each_entry_safe
    - open
    - free
    - LIST_APPEND
    - b_room
    - close
    - LIST_INIT
    - lf_expr_init
    - parse_logformat_string
    - ist
    - ha_free
    - atol
    - http_load_errorfile
    - strcmp
    - istfree
    - malloc
    - calloc
    - b_data
    - read
    - lf_expr_deinit
    - strdup
    - strcasecmp
    - LIST_DELETE
    - LIST_ISEMPTY
    - fstat
    - ha_warning
    - chunk_initlen
    - strlen
    linkageType: ''
    returnType: struct http_reply
    signature: "struct http_reply *http_parse_http_reply(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t int default_status, char **errmsg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:1846,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_htx.c:1851,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_htx.c:1853,1
    - Dst: http_parse_scheme
      Src: /src/haproxy/src/http_htx.c:1854,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:1856,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/http_htx.c:1860,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_htx.c:1861,1
    - Dst: http_get_host_port
      Src: /src/haproxy/src/http_htx.c:1862,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:1863,1
    - Dst: http_is_default_port
      Src: /src/haproxy/src/http_htx.c:1863,1
    - Dst: isttrim
      Src: /src/haproxy/src/http_htx.c:1866,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:1866,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:1866,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:1870,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:1871,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_htx.c:1877,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:1881,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_htx.c:1881,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:1881,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1882,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:1882,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:1885,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:1885,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:1885,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1886,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:1886,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:1889,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:1890,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:1891,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1894,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1895,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:1898,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:1902,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:1902,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/http_htx.c:1903,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_htx.c:1904,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_htx.c:1908,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1838
    functionDepth: 4
    functionLinenumber: 1838
    functionLinenumberEnd: 1915
    functionName: http_scheme_based_normalize
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - isttest
    - http_parse_authority
    - alloc_trash_chunk
    - http_find_header
    - http_uri_parser_init
    - http_replace_stline
    - istlen
    - http_parse_scheme
    - ist
    - ist2
    - chunk_memcat
    - http_get_host_port
    - http_parse_path
    - http_is_default_port
    - htx_sl_req_uri
    - chunk_istcat
    - isttrim
    - free_trash_chunk
    - http_get_stline
    - HTX_SL_REQ_VLEN
    - HTX_SL_REQ_MLEN
    - http_replace_header_value
    - HTX_SL_REQ_MPTR
    - HTX_SL_REQ_VPTR
    linkageType: ''
    returnType: int
    signature: int http_scheme_based_normalize(struct htx *htx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_htx.c:1932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - list
    - idx
    - first
    - last
    argTypes:
    - struct http_hdr*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1923
    functionDepth: 0
    functionLinenumber: 1923
    functionLinenumberEnd: 1946
    functionName: http_cookie_register
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void http_cookie_register(struct http_hdr *list, int idx, int *first,
      int *last)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_htx.c:1968,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:1968,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/http_htx.c:1973,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_htx.c:1974,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/http_htx.c:1988,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_htx.c:1989,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_htx.c:1990,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_htx.c:1991,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_htx.c:1991,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - htx
    - list
    - first
    argTypes:
    - struct htx*
    - struct http_hdr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1957
    functionDepth: 1
    functionLinenumber: 1957
    functionLinenumberEnd: 1997
    functionName: http_cookie_merge
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_change_blk_value_len
    - htx_get_blksz
    - ist
    - memcpy
    - htx_add_header
    - htx_get_blk_ptr
    - htx_free_data_space
    linkageType: ''
    returnType: int
    signature: int http_cookie_merge(struct htx *htx, struct http_hdr *list, int first)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/http_htx.c:2010,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2016,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2021,1
    - Dst: atol
      Src: /src/haproxy/src/http_htx.c:2026,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:2027,1
    - Dst: http_parse_errorloc
      Src: /src/haproxy/src/http_htx.c:2028,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2030,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2035,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2037,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/http_htx.c:2044,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2046,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2048,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2050,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2051,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2059,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2061,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 7
    argNames:
    - args
    - section
    - curpx
    - defpx
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2000
    functionDepth: 7
    functionLinenumber: 2000
    functionLinenumberEnd: 2069
    functionName: proxy_parse_errorloc
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    - calloc
    - strcmp
    - LIST_APPEND
    - free
    - http_parse_errorloc
    - LIST_INIT
    - warnifnotcap
    - strdup
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_errorloc(char **args, int section, struct proxy *curpx,\n\t\t\t\t
      \ const struct proxy *defpx, const char *file, int line,\n\t\t\t\t  char **errmsg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/http_htx.c:2082,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2088,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2093,1
    - Dst: atol
      Src: /src/haproxy/src/http_htx.c:2098,1
    - Dst: http_parse_errorfile
      Src: /src/haproxy/src/http_htx.c:2099,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2101,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2106,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2108,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/http_htx.c:2115,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2117,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2119,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2121,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2122,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2129,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2131,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 7
    argNames:
    - args
    - section
    - curpx
    - defpx
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2072
    functionDepth: 7
    functionLinenumber: 2072
    functionLinenumberEnd: 2139
    functionName: proxy_parse_errorfile
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    - calloc
    - http_parse_errorfile
    - LIST_APPEND
    - free
    - LIST_INIT
    - warnifnotcap
    - strdup
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_errorfile(char **args, int section, struct proxy *curpx,\n\t\t\t\t
      const struct proxy *defpx, const char *file, int line,\n\t\t\t\t char **errmsg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/http_htx.c:2150,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2156,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2161,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2162,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2164,1
    - Dst: atol
      Src: /src/haproxy/src/http_htx.c:2177,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2186,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2191,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2193,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2198,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2199,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 7
    argNames:
    - args
    - section
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2142
    functionDepth: 3
    functionLinenumber: 2142
    functionLinenumberEnd: 2202
    functionName: proxy_parse_errorfiles
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - memprintf
    - calloc
    - atol
    - LIST_APPEND
    - free
    - warnifnotcap
    - strdup
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_errorfiles(char **args, int section, struct proxy
      *curpx,\n\t\t\t\t  const struct proxy *defpx, const char *file, int line,\n\t\t\t\t
      \ char **err)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/http_htx.c:2213,1
    - Dst: http_parse_http_reply
      Src: /src/haproxy/src/http_htx.c:2220,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2222,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2226,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2236,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2240,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2244,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2246,1
    - Dst: http_get_status_idx
      Src: /src/haproxy/src/http_htx.c:2250,1
    - Dst: release_http_reply
      Src: /src/haproxy/src/http_htx.c:2256,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2262,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2264,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2266,1
    - Dst: release_http_reply
      Src: /src/haproxy/src/http_htx.c:2275,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 7
    argNames:
    - args
    - section
    - curpx
    - defpx
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2205
    functionDepth: 7
    functionLinenumber: 2205
    functionLinenumberEnd: 2279
    functionName: proxy_parse_http_error
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - memprintf
    - release_http_reply
    - calloc
    - LIST_APPEND
    - http_get_status_idx
    - strdup
    - warnifnotcap
    - http_parse_http_reply
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_http_error(char **args, int section, struct proxy
      *curpx,\n\t\t\t\t  const struct proxy *defpx, const char *file, int line,\n\t\t\t\t
      \ char **errmsg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/http_htx.c:2292,1
    - Dst: http_get_status_idx
      Src: /src/haproxy/src/http_htx.c:2295,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:2315,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2316,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2317,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2286
    functionDepth: 3
    functionLinenumber: 2286
    functionLinenumberEnd: 2321
    functionName: proxy_finalize_http_errors
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - http_get_status_idx
    - list_for_each_entry_safe
    - LIST_DELETE
    - free
    linkageType: ''
    returnType: int
    signature: int proxy_finalize_http_errors(struct proxy *px)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_first
      Src: /src/haproxy/src/http_htx.c:2330,1
    - Dst: container_of
      Src: /src/haproxy/src/http_htx.c:2332,1
    - Dst: typeof
      Src: /src/haproxy/src/http_htx.c:2332,1
    - Dst: b_is_null
      Src: /src/haproxy/src/http_htx.c:2333,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_htx.c:2335,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/http_htx.c:2336,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:2337,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/http_htx.c:2344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2323
    functionDepth: 1
    functionLinenumber: 2323
    functionLinenumberEnd: 2348
    functionName: post_check_errors
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - typeof
    - b_is_null
    - ebpt_next
    - container_of
    - ebpt_first
    - ha_warning
    - htx_free_data_space
    linkageType: ''
    returnType: int
    signature: int post_check_errors()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_htx.c:2362,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_htx.c:2365,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:2366,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2373,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:2375,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:2381,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:2386,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2355
    functionDepth: 1
    functionLinenumber: 2355
    functionLinenumberEnd: 2397
    functionName: proxy_check_http_errors
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - ha_free
    - strcmp
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int proxy_check_http_errors(struct proxy *px)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_htx.c:2404,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2405,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2407,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2418,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2420,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_htx.c:2423,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2427,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2429,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - curpx
    - defpx
    - errmsg
    argTypes:
    - struct proxy*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2399
    functionDepth: 3
    functionLinenumber: 2399
    functionLinenumberEnd: 2437
    functionName: proxy_dup_default_conf_errors
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - memprintf
    - memcpy
    - list_for_each_entry
    - calloc
    - LIST_APPEND
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int proxy_dup_default_conf_errors(struct proxy *curpx, const struct
      proxy *defpx, char **errmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/http_htx.c:2443,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2445,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:2446,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2447,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2439
    functionDepth: 3
    functionLinenumber: 2439
    functionLinenumberEnd: 2450
    functionName: proxy_release_conf_errors
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - free
    linkageType: ''
    returnType: void
    signature: void proxy_release_conf_errors(struct proxy *px)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:2469,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2471,1
    - Dst: invalid_char
      Src: /src/haproxy/src/http_htx.c:2476,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2478,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_htx.c:2483,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:2485,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2486,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2492,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2493,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2498,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2499,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2500,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:2503,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2509,1
    - Dst: atol
      Src: /src/haproxy/src/http_htx.c:2515,1
    - Dst: http_parse_errorfile
      Src: /src/haproxy/src/http_htx.c:2516,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2518,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:2523,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2527,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2529,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/http_htx.c:2536,1
    - Dst: http_get_status_idx
      Src: /src/haproxy/src/http_htx.c:2539,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2543,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2549,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2462
    functionDepth: 7
    functionLinenumber: 2462
    functionLinenumberEnd: 2551
    functionName: cfg_parse_http_errors
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - invalid_char
    - list_for_each_entry
    - calloc
    - atol
    - strcmp
    - LIST_APPEND
    - http_parse_errorfile
    - free
    - ha_alert
    - ha_warning
    - http_get_status_idx
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_http_errors(const char *file, int linenum, char **args,
      int kwm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/http_htx.c:2580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2574
    functionDepth: 1
    functionLinenumber: 2574
    functionLinenumberEnd: 2583
    functionName: smp_fetch_is_htx
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    linkageType: ''
    returnType: int
    signature: int smp_fetch_is_htx(const struct arg *arg_p, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2597,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/http_htx.c:2601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2587
    functionDepth: 3
    functionLinenumber: 2587
    functionLinenumberEnd: 2605
    functionName: smp_fetch_htx_nbblks
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - htx_nbblks
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_nbblks(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2609
    functionDepth: 3
    functionLinenumber: 2609
    functionLinenumberEnd: 2627
    functionName: smp_fetch_htx_size
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_size(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2631
    functionDepth: 3
    functionLinenumber: 2631
    functionLinenumberEnd: 2649
    functionName: smp_fetch_htx_data
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_data(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2663,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/http_htx.c:2667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2671
      start: 2653
    functionDepth: 3
    functionLinenumber: 2653
    functionLinenumberEnd: 2671
    functionName: smp_fetch_htx_used
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - htx_used_space
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_used(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2685,1
    - Dst: htx_free_space
      Src: /src/haproxy/src/http_htx.c:2689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2675
    functionDepth: 3
    functionLinenumber: 2675
    functionLinenumberEnd: 2693
    functionName: smp_fetch_htx_free
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - htx_free_space
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_free(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2707,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/http_htx.c:2711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2697
    functionDepth: 3
    functionLinenumber: 2697
    functionLinenumberEnd: 2715
    functionName: smp_fetch_htx_free_data
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_free_data_space
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_free_data(const struct arg *arg_p, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2720
    functionDepth: 3
    functionLinenumber: 2720
    functionLinenumberEnd: 2738
    functionName: smp_fetch_htx_has_eom
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_has_eom(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2756,1
    - Dst: htx_get_head_type
      Src: /src/haproxy/src/http_htx.c:2762,1
    - Dst: htx_get_tail_type
      Src: /src/haproxy/src/http_htx.c:2764,1
    - Dst: htx_get_first_type
      Src: /src/haproxy/src/http_htx.c:2766,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2769,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2769,1
    - Dst: chunk_initstr
      Src: /src/haproxy/src/http_htx.c:2772,1
    - Dst: htx_blk_type_str
      Src: /src/haproxy/src/http_htx.c:2772,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2776
      start: 2744
    functionDepth: 3
    functionLinenumber: 2744
    functionLinenumberEnd: 2776
    functionName: smp_fetch_htx_blk_type
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_head_type
    - chunk_initstr
    - htx_get_tail_type
    - htx_get_first_type
    - htx_get_blk
    - htx_get_blk_type
    - htx_blk_type_str
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_blk_type(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2793,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_htx.c:2799,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/http_htx.c:2801,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:2803,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2805,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_htx.c:2807,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2781
    functionDepth: 3
    functionLinenumber: 2781
    functionLinenumberEnd: 2811
    functionName: smp_fetch_htx_blk_size
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - htx_get_blk
    - htx_get_first_blk
    - htx_get_tail_blk
    - smp_prefetch_htx
    - htx_get_head_blk
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_blk_size(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2831,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_htx.c:2837,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/http_htx.c:2839,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:2841,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2843,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2845,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2845,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_htx.c:2851,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_htx.c:2853,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:2854,1
    - Dst: htx_sl_p1
      Src: /src/haproxy/src/http_htx.c:2854,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:2856,1
    - Dst: htx_sl_p2
      Src: /src/haproxy/src/http_htx.c:2856,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:2858,1
    - Dst: htx_sl_p3
      Src: /src/haproxy/src/http_htx.c:2858,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2817
    functionDepth: 3
    functionLinenumber: 2817
    functionLinenumberEnd: 2866
    functionName: smp_fetch_htx_blk_stline
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - chunk_istcat
    - htx_get_blk
    - htx_sl_p1
    - htx_get_first_blk
    - get_trash_chunk
    - htx_get_blk_ptr
    - htx_get_blk_type
    - htx_get_tail_blk
    - smp_prefetch_htx
    - htx_sl_p2
    - htx_sl_p3
    - htx_get_head_blk
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_blk_stline(const struct arg *arg_p, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2884,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_htx.c:2890,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/http_htx.c:2892,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:2894,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2896,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2898,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2898,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_htx.c:2904,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_htx.c:2906,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2872
    functionDepth: 3
    functionLinenumber: 2872
    functionLinenumberEnd: 2911
    functionName: smp_fetch_htx_blk_hdrname
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_blk
    - htx_get_first_blk
    - htx_get_blk_type
    - chunk_initlen
    - htx_get_tail_blk
    - smp_prefetch_htx
    - htx_get_blk_name
    - htx_get_head_blk
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_blk_hdrname(const struct arg *arg_p, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2929,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_htx.c:2935,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/http_htx.c:2937,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:2939,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2941,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2943,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2943,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:2949,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_htx.c:2951,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2917
    functionDepth: 3
    functionLinenumber: 2917
    functionLinenumberEnd: 2956
    functionName: smp_fetch_htx_blk_hdrval
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_blk
    - htx_get_blk_value
    - htx_get_first_blk
    - htx_get_blk_type
    - chunk_initlen
    - htx_get_tail_blk
    - smp_prefetch_htx
    - htx_get_head_blk
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_blk_hdrval(const struct arg *arg_p, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_htx.c:2974,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_htx.c:2980,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/http_htx.c:2982,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:2984,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2986,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2988,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:2994,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_htx.c:2996,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2962
    functionDepth: 3
    functionLinenumber: 2962
    functionLinenumberEnd: 3001
    functionName: smp_fetch_htx_blk_data
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_blk
    - htx_get_blk_value
    - htx_get_first_blk
    - htx_get_blk_type
    - chunk_initlen
    - htx_get_tail_blk
    - smp_prefetch_htx
    - htx_get_head_blk
    linkageType: ''
    returnType: int
    signature: int smp_fetch_htx_blk_data(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:3011,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_htx.c:3014,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:3015,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_htx.c:3019,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:3020,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_htx.c:3024,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:3025,1
    - Dst: isdigit
      Src: /src/haproxy/src/http_htx.c:3033,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:3034,1
    - Dst: strl2uic
      Src: /src/haproxy/src/http_htx.c:3039,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:3041,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:3044,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3008
    functionDepth: 1
    functionLinenumber: 3008
    functionLinenumberEnd: 3050
    functionName: val_blk_arg
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strncmp
    - strl2uic
    - isdigit
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: int val_blk_arg(struct arg *arg, char **err_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/fcgi-app.c:53,1
    - Dst: isalnum
      Src: /src/haproxy/src/fcgi-app.c:56,1
    - Dst: ist2
      Src: /src/haproxy/src/fcgi-app.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - name
    argTypes:
    - char*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: fcgi_param_name
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - ist2
    - isalnum
    - memcpy
    linkageType: ''
    returnType: struct ist
    signature: struct ist fcgi_param_name(char *dst, const struct ist name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: fcgi_app_find_by_name
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct fcgi_app
    signature: struct fcgi_app *fcgi_app_find_by_name(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/fcgi-app.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: find_px_fcgi_conf
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct fcgi_flt_conf
    signature: struct fcgi_flt_conf *find_px_fcgi_conf(struct proxy *px)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/fcgi-app.c:97,1
    - Dst: strm_flt
      Src: /src/haproxy/src/fcgi-app.c:97,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/fcgi-app.c:98,1
    - Dst: FLT_CONF
      Src: /src/haproxy/src/fcgi-app.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: find_strm_fcgi_ctx
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - FLT_ID
    - FLT_CONF
    - strm_flt
    - list_for_each_entry
    linkageType: ''
    returnType: struct fcgi_flt_ctx
    signature: struct fcgi_flt_ctx *find_strm_fcgi_ctx(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_px_fcgi_conf
      Src: /src/haproxy/src/fcgi-app.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: get_px_fcgi_app
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - find_px_fcgi_conf
    linkageType: ''
    returnType: struct fcgi_app
    signature: struct fcgi_app *get_px_fcgi_app(struct proxy *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_strm_fcgi_ctx
      Src: /src/haproxy/src/fcgi-app.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: get_strm_fcgi_app
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - find_strm_fcgi_ctx
    linkageType: ''
    returnType: struct fcgi_app
    signature: struct fcgi_app *get_strm_fcgi_app(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:126,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:127,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/fcgi-app.c:128,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct fcgi_rule_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: fcgi_release_rule_conf
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - free_acl_cond
    - free
    linkageType: ''
    returnType: void
    signature: void fcgi_release_rule_conf(struct fcgi_rule_conf *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/fcgi-app.c:137,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct fcgi_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: fcgi_release_rule
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - lf_expr_deinit
    - free
    linkageType: ''
    returnType: void
    signature: void fcgi_release_rule(struct fcgi_rule *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_strm_fcgi_app
      Src: /src/haproxy/src/fcgi-app.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: smp_fetch_fcgi_docroot
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - get_strm_fcgi_app
    linkageType: ''
    returnType: int
    signature: "int smp_fetch_fcgi_docroot(const struct arg *args, struct sample *smp,\n\t\t\t\t
      \ const char *kw, void *private)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_strm_fcgi_app
      Src: /src/haproxy/src/fcgi-app.c:164,1
    - Dst: istlen
      Src: /src/haproxy/src/fcgi-app.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 174
    functionName: smp_fetch_fcgi_index
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - get_strm_fcgi_app
    - istlen
    linkageType: ''
    returnType: int
    signature: "int smp_fetch_fcgi_index(const struct arg *args, struct sample *smp,\n\t\t\t\tconst
      char *kw, void *private)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: fcgi_flt_init
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fcgi_flt_init(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:193,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/fcgi-app.c:195,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/fcgi-app.c:196,1
    - Dst: fcgi_release_rule
      Src: /src/haproxy/src/fcgi-app.c:197,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/fcgi-app.c:200,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/fcgi-app.c:201,1
    - Dst: fcgi_release_rule
      Src: /src/haproxy/src/fcgi-app.c:202,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 206
    functionName: fcgi_flt_deinit
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - fcgi_release_rule
    - free
    linkageType: ''
    returnType: void
    signature: void fcgi_flt_deinit(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fcgi_app_find_by_name
      Src: /src/haproxy/src/fcgi-app.c:216,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:218,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/fcgi-app.c:223,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:228,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:236,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/fcgi-app.c:242,1
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:243,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:245,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:249,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/fcgi-app.c:251,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/fcgi-app.c:254,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:256,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/fcgi-app.c:262,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/fcgi-app.c:264,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:269,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:270,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 272
    functionName: fcgi_flt_check
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - parse_logformat_string
    - ist
    - list_for_each_entry
    - calloc
    - list_for_each_entry_safe
    - fcgi_app_find_by_name
    - LIST_APPEND
    - free
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int fcgi_flt_check(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/fcgi-app.c:276,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/fcgi-app.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 290
    functionName: fcgi_flt_start
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - FLT_CONF
    - pool_alloc
    linkageType: ''
    returnType: int
    signature: int fcgi_flt_start(struct stream *s, struct filter *filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/fcgi-app.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 300
    functionName: fcgi_flt_stop
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - pool_free
    linkageType: ''
    returnType: void
    signature: void fcgi_flt_stop(struct stream *s, struct filter *filter)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strm_sess
      Src: /src/haproxy/src/fcgi-app.c:304,1
    - Dst: FLT_CONF
      Src: /src/haproxy/src/fcgi-app.c:306,1
    - Dst: htxbuf
      Src: /src/haproxy/src/fcgi-app.c:316,1
    - Dst: http_find_header
      Src: /src/haproxy/src/fcgi-app.c:323,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:323,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/fcgi-app.c:324,1
    - Dst: http_find_header
      Src: /src/haproxy/src/fcgi-app.c:328,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:328,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/fcgi-app.c:331,1
    - Dst: strftime
      Src: /src/haproxy/src/fcgi-app.c:332,1
    - Dst: http_add_header
      Src: /src/haproxy/src/fcgi-app.c:334,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:334,1
    - Dst: ist2
      Src: /src/haproxy/src/fcgi-app.c:334,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/fcgi-app.c:338,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/fcgi-app.c:346,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/fcgi-app.c:346,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/fcgi-app.c:347,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/fcgi-app.c:352,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/fcgi-app.c:354,1
    - Dst: http_add_header
      Src: /src/haproxy/src/fcgi-app.c:355,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:355,1
    - Dst: ist2
      Src: /src/haproxy/src/fcgi-app.c:355,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/fcgi-app.c:366,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/fcgi-app.c:370,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/fcgi-app.c:371,1
    - Dst: ebis_lookup_len
      Src: /src/haproxy/src/fcgi-app.c:375,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:377,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:378,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/fcgi-app.c:381,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/fcgi-app.c:389,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/fcgi-app.c:392,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/fcgi-app.c:393,1
    - Dst: ebis_lookup_len
      Src: /src/haproxy/src/fcgi-app.c:397,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:399,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:400,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/fcgi-app.c:403,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/fcgi-app.c:411,1
    - Dst: ebpt_first
      Src: /src/haproxy/src/fcgi-app.c:414,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/fcgi-app.c:416,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:417,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:418,1
    - Dst: b_reset
      Src: /src/haproxy/src/fcgi-app.c:421,1
    - Dst: build_logline
      Src: /src/haproxy/src/fcgi-app.c:422,1
    - Dst: pool_free
      Src: /src/haproxy/src/fcgi-app.c:424,1
    - Dst: http_add_header
      Src: /src/haproxy/src/fcgi-app.c:427,1
    - Dst: ist2
      Src: /src/haproxy/src/fcgi-app.c:427,1
    - Dst: pool_free
      Src: /src/haproxy/src/fcgi-app.c:429,1
    - Dst: ebpt_first
      Src: /src/haproxy/src/fcgi-app.c:432,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/fcgi-app.c:434,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:435,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:436,1
    - Dst: http_find_header
      Src: /src/haproxy/src/fcgi-app.c:441,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/fcgi-app.c:442,1
    - Dst: pool_free
      Src: /src/haproxy/src/fcgi-app.c:444,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/fcgi-app.c:451,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/fcgi-app.c:453,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/fcgi-app.c:455,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/fcgi-app.c:457,1
    - Dst: ebpt_first
      Src: /src/haproxy/src/fcgi-app.c:459,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/fcgi-app.c:461,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:462,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:463,1
    - Dst: pool_free
      Src: /src/haproxy/src/fcgi-app.c:465,1
    - Dst: ebpt_first
      Src: /src/haproxy/src/fcgi-app.c:468,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/fcgi-app.c:470,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:471,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:472,1
    - Dst: pool_free
      Src: /src/haproxy/src/fcgi-app.c:474,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/fcgi-app.c:477,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 137
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 479
    functionName: fcgi_flt_http_headers
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - ebpt_delete
    - ebis_insert
    - alloc_trash_chunk
    - http_find_header
    - build_logline
    - http_remove_header
    - get_gmtime
    - ultoa_o
    - FLT_CONF
    - http_add_header
    - ist
    - ist2
    - pool_alloc
    - strm_sess
    - ebpt_next
    - container_of
    - htx_get_blk_type
    - ebpt_first
    - pool_free
    - ebis_lookup_len
    - htx_get_next_blk
    - htxbuf
    - acl_match_cond
    - free_trash_chunk
    - http_get_stline
    - _HA_ATOMIC_INC
    - strftime
    - list_for_each_entry
    - htx_get_first_blk
    - b_reset
    linkageType: ''
    returnType: int
    signature: int fcgi_flt_http_headers(struct stream *s, struct filter *filter,
      struct http_msg *msg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:506,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:509,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:511,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/fcgi-app.c:517,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:521,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/fcgi-app.c:527,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:528,1
    - Dst: ha_free
      Src: /src/haproxy/src/fcgi-app.c:529,1
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:535,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:537,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:541,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:542,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:552,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 554
    functionName: parse_fcgi_flt
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - memprintf
    - ha_free
    - calloc
    - list_for_each_entry_safe
    - strcmp
    - free
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: int
    signature: "int parse_fcgi_flt(char **args, int *cur_arg, struct proxy *px,\n\t
      \      struct flt_conf *fconf, char **err, void *private)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:566,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:572,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/fcgi-app.c:579,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:582,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:584,1
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:591,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:594,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:597,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:598,1
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:601,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/fcgi-app.c:607,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:613,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:614,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:616,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 7
    argNames:
    - args
    - section
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 557
    functionDepth: 3
    functionLinenumber: 557
    functionLinenumberEnd: 619
    functionName: proxy_parse_use_fcgi_app
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - memprintf
    - list_for_each_entry
    - calloc
    - strcmp
    - LIST_APPEND
    - free
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_use_fcgi_app(char **args, int section, struct proxy
      *curpx,\n\t\t\t\t    const struct proxy *defpx, const char *file, int line,\n\t\t\t\t
      \   char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find_px_fcgi_conf
      Src: /src/haproxy/src/fcgi-app.c:630,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:634,1
    - Dst: isteq
      Src: /src/haproxy/src/fcgi-app.c:647,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:647,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:651,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:658,1
    - Dst: istlen
      Src: /src/haproxy/src/fcgi-app.c:666,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:667,1
    - Dst: ha_warning
      Src: /src/haproxy/src/fcgi-app.c:674,1
    - Dst: postresolve_logger_list
      Src: /src/haproxy/src/fcgi-app.c:682,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 687
    functionName: cfg_fcgi_apps_postparser
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - postresolve_logger_list
    - ist
    - isteq
    - ha_alert
    - ha_warning
    - find_px_fcgi_conf
    - istlen
    linkageType: ''
    returnType: int
    signature: int cfg_fcgi_apps_postparser()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:695,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:698,1
    - Dst: fcgi_param_name
      Src: /src/haproxy/src/fcgi-app.c:701,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:701,1
    - Dst: my_strndup
      Src: /src/haproxy/src/fcgi-app.c:702,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/src/fcgi-app.c:705,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:705,1
    - Dst: my_strndup
      Src: /src/haproxy/src/fcgi-app.c:706,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:712,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/fcgi-app.c:717,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:722,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:723,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:724,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/fcgi-app.c:726,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:727,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 6
    argNames:
    - curapp
    - type
    - name
    - value
    - cond
    - err
    argTypes:
    - struct fcgi_app*
    - enum fcgi_rule_type
    - char*
    - char*
    - struct acl_cond*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 729
    functionName: fcgi_app_add_rule
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - ist
    - my_strndup
    - memprintf
    - calloc
    - LIST_APPEND
    - fcgi_param_name
    - free
    - free_acl_cond
    - ist2bin_lc
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: int
    signature: "int fcgi_app_add_rule(struct fcgi_app *curapp, enum fcgi_rule_type
      type, char *name, char *value,\n\t\t\t     struct acl_cond *cond, char **err)"
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:742,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:744,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/fcgi-app.c:749,1
    - Dst: invalid_char
      Src: /src/haproxy/src/fcgi-app.c:752,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:754,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:761,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:762,1
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:768,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:770,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:778,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:779,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:781,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:783,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:785,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:786,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:787,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:788,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:791,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:792,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:793,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:799,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:800,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:801,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:802,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:803,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:804,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:805,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:806,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:807,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:808,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:809,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:814,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:816,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:821,1
    - Dst: istfree
      Src: /src/haproxy/src/fcgi-app.c:823,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:824,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:824,1
    - Dst: isttest
      Src: /src/haproxy/src/fcgi-app.c:825,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:826,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:830,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:832,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:837,1
    - Dst: regex_free
      Src: /src/haproxy/src/fcgi-app.c:839,1
    - Dst: regex_comp
      Src: /src/haproxy/src/fcgi-app.c:840,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:842,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:847,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:849,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:854,1
    - Dst: istfree
      Src: /src/haproxy/src/fcgi-app.c:856,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:857,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:857,1
    - Dst: isttest
      Src: /src/haproxy/src/fcgi-app.c:858,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:859,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:863,1
    - Dst: invalid_char
      Src: /src/haproxy/src/fcgi-app.c:865,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:867,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/fcgi-app.c:872,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:873,1
    - Dst: parse_acl
      Src: /src/haproxy/src/fcgi-app.c:879,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:880,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:886,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:888,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:903,1
    - Dst: parse_acl_cond
      Src: /src/haproxy/src/fcgi-app.c:904,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:906,1
    - Dst: parse_acl_cond
      Src: /src/haproxy/src/fcgi-app.c:907,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:910,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:915,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:916,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:922,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:924,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:937,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:939,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:952,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:954,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:967,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:969,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:973,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:974,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:981,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:982,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:989,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:990,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:997,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:999,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:1005,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:1010,1
    - Dst: atol
      Src: /src/haproxy/src/fcgi-app.c:1013,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:1015,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:1022,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:1026,1
    - Dst: parse_logger
      Src: /src/haproxy/src/fcgi-app.c:1027,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:1028,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:1033,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 266
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 732
    functionDepth: 5
    functionLinenumber: 732
    functionLinenumberEnd: 1035
    functionName: cfg_parse_fcgi_app
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - fcgi_app_add_rule
    - parse_logger
    - regex_free
    - LIST_INIT
    - parse_acl_cond
    - invalid_char
    - ist
    - alertif_too_many_args
    - atol
    - istfree
    - strcmp
    - regex_comp
    - calloc
    - alertif_too_many_args_idx
    - strdup
    - strcasecmp
    - parse_acl
    - ha_alert
    - isttest
    linkageType: ''
    returnType: int
    signature: int cfg_parse_fcgi_app(const char *file, int linenum, char **args,
      int kwm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:1054,1
    - Dst: istfree
      Src: /src/haproxy/src/fcgi-app.c:1055,1
    - Dst: istfree
      Src: /src/haproxy/src/fcgi-app.c:1056,1
    - Dst: regex_free
      Src: /src/haproxy/src/fcgi-app.c:1057,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:1058,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/fcgi-app.c:1060,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/fcgi-app.c:1061,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:1062,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/fcgi-app.c:1065,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/fcgi-app.c:1066,1
    - Dst: fcgi_release_rule_conf
      Src: /src/haproxy/src/fcgi-app.c:1067,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:1071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1046
    functionDepth: 4
    functionLinenumber: 1046
    functionLinenumberEnd: 1073
    functionName: fcgi_apps_deinit
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - istfree
    - list_for_each_entry_safe
    - fcgi_release_rule_conf
    - free
    - regex_free
    linkageType: ''
    returnType: void
    signature: void fcgi_apps_deinit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: NOW_OFFSET_BOUNDARY
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOW_OFFSET_BOUNDARY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: KEY_CLASS
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEY_CLASS(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: KEY_OFFSET
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEY_OFFSET(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: KEY_CLASS_OFFSET_BOUNDARY
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEY_CLASS_OFFSET_BOUNDARY(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - class
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: MAKE_KEY
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_KEY(class, offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/queue.c:111,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/queue.c:115,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/queue.c:116,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/queue.c:118,1
    - Dst: MAX
      Src: /src/haproxy/src/queue.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: srv_dynamic_maxconn
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 6
    functionsReached:
    - ns_to_sec
    - MAX
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int srv_dynamic_maxconn(const struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:134,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/queue.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pendconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: __pendconn_unlink_srv
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - eb32_delete
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void __pendconn_unlink_srv(struct pendconn *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:148,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/queue.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pendconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: __pendconn_unlink_prx
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - eb32_delete
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void __pendconn_unlink_prx(struct pendconn *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pendconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: pendconn_queue_lock
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: void
    signature: void pendconn_queue_lock(struct pendconn *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pendconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: pendconn_queue_unlock
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void pendconn_queue_unlock(struct pendconn *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:186,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:187,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:188,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/queue.c:191,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:195,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:196,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:202,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:206,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:209,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pendconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 212
    functionName: pendconn_unlink
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    - eb32_delete
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - _HA_ATOMIC_DEC
    linkageType: ''
    returnType: void
    signature: void pendconn_unlink(struct pendconn *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eb32_first
      Src: /src/haproxy/src/queue.c:224,1
    - Dst: KEY_CLASS_OFFSET_BOUNDARY
      Src: /src/haproxy/src/queue.c:228,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/queue.c:229,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:232,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:232,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/queue.c:234,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/queue.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pendconns
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 239
    functionName: pendconn_first
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - KEY_CLASS_OFFSET_BOUNDARY
    - eb32_entry
    - eb32_lookup_ge
    - eb32_first
    - KEY_CLASS
    linkageType: ''
    returnType: struct pendconn
    signature: struct pendconn *pendconn_first(struct eb_root *pendconns)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pendconn_first
      Src: /src/haproxy/src/queue.c:272,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:279,1
    - Dst: pendconn_first
      Src: /src/haproxy/src/queue.c:280,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:282,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:288,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/queue.c:289,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/queue.c:292,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:297,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:312,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:312,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:315,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:315,1
    - Dst: KEY_OFFSET
      Src: /src/haproxy/src/queue.c:318,1
    - Dst: KEY_OFFSET
      Src: /src/haproxy/src/queue.c:319,1
    - Dst: NOW_OFFSET_BOUNDARY
      Src: /src/haproxy/src/queue.c:321,1
    - Dst: NOW_OFFSET_BOUNDARY
      Src: /src/haproxy/src/queue.c:324,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:335,1
    - Dst: __pendconn_unlink_prx
      Src: /src/haproxy/src/queue.c:338,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:339,1
    - Dst: stream_add_srv_conn
      Src: /src/haproxy/src/queue.c:343,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/queue.c:350,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:351,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:353,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/queue.c:354,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:355,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:361,1
    - Dst: stream_add_srv_conn
      Src: /src/haproxy/src/queue.c:365,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/queue.c:372,1
    - Dst: __pendconn_unlink_srv
      Src: /src/haproxy/src/queue.c:373,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:375,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/queue.c:376,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:377,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 4
    argNames:
    - srv
    - px
    - px_ok
    - tgrp
    argTypes:
    - struct server*
    - struct proxy*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 379
    functionName: pendconn_process_next_strm
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - _HA_ATOMIC_LOAD
    - NOW_OFFSET_BOUNDARY
    - __pendconn_unlink_prx
    - HA_SPIN_UNLOCK
    - stream_add_srv_conn
    - HA_SPIN_LOCK
    - task_wakeup
    - __pendconn_unlink_srv
    - _HA_ATOMIC_CAS
    - pendconn_first
    - KEY_OFFSET
    - srv_dynamic_maxconn
    - _HA_ATOMIC_DEC
    - KEY_CLASS
    linkageType: ''
    returnType: int
    signature: int pendconn_process_next_strm(struct server *srv, struct proxy *px,
      int px_ok, int tgrp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ha_bit_set
      Src: /src/haproxy/src/queue.c:402,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/queue.c:409,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/queue.c:436,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:444,1
    - Dst: ha_bit_test
      Src: /src/haproxy/src/queue.c:445,1
    - Dst: ha_bit_test
      Src: /src/haproxy/src/queue.c:446,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:453,1
    - Dst: ha_bit_test
      Src: /src/haproxy/src/queue.c:466,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/queue.c:472,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/queue.c:472,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/queue.c:481,1
    - Dst: ha_bit_clr
      Src: /src/haproxy/src/queue.c:482,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:487,1
    - Dst: pendconn_process_next_strm
      Src: /src/haproxy/src/queue.c:493,1
    - Dst: ha_bit_clr
      Src: /src/haproxy/src/queue.c:494,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/queue.c:500,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/queue.c:505,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:506,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:510,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/queue.c:511,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/queue.c:512,1
    - Dst: struct proxy*::lbprm::ops::server_take_conn
      Src: /src/haproxy/src/queue.c:514,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:516,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/queue.c:527,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:534,1
    - Dst: pendconn_process_next_strm
      Src: /src/haproxy/src/queue.c:535,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:536,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:537,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/queue.c:538,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:542,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 74
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 546
    functionName: process_srv_queue
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 5
    functionsReached:
    - ha_bit_clr
    - HA_ATOMIC_LOAD
    - _HA_ATOMIC_ADD
    - HA_SPIN_LOCK
    - _HA_ATOMIC_CAS
    - HA_ATOMIC_STORE
    - pendconn_process_next_strm
    - _HA_ATOMIC_SUB
    - HA_ATOMIC_XCHG
    - srv_currently_usable
    - ha_bit_set
    - __ha_cpu_relax
    - __ha_barrier_atomic_store
    - srv_dynamic_maxconn
    - struct proxy*::lbprm::ops::server_take_conn
    - _HA_ATOMIC_INC
    - _HA_ATOMIC_LOAD
    - HA_SPIN_UNLOCK
    - _HA_ATOMIC_STORE
    - ha_bit_test
    linkageType: ''
    returnType: int
    signature: int process_srv_queue(struct server *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/queue.c:577,1
    - Dst: MAKE_KEY
      Src: /src/haproxy/src/queue.c:582,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/queue.c:585,1
    - Dst: objt_server
      Src: /src/haproxy/src/queue.c:590,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:606,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/queue.c:607,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/queue.c:608,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:609,1
    - Dst: likely
      Src: /src/haproxy/src/queue.c:611,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/queue.c:611,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/queue.c:614,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:616,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/queue.c:617,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:618,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/queue.c:620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 622
    functionName: pendconn_add
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_ADD_FETCH
    - _HA_ATOMIC_INC
    - pool_alloc
    - _HA_ATOMIC_LOAD
    - HA_SPIN_INIT
    - eb32_insert
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - likely
    - _HA_ATOMIC_CAS
    - __ha_barrier_atomic_store
    - MAKE_KEY
    - objt_server
    linkageType: ''
    returnType: struct pendconn
    signature: struct pendconn *pendconn_add(struct stream *strm)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:648,1
    - Dst: eb32_first
      Src: /src/haproxy/src/queue.c:649,1
    - Dst: eb32_next
      Src: /src/haproxy/src/queue.c:650,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/queue.c:652,1
    - Dst: __pendconn_unlink_srv
      Src: /src/haproxy/src/queue.c:657,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/queue.c:661,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:664,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:667,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:671,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:672,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:683,1
    - Dst: eb32_first
      Src: /src/haproxy/src/queue.c:684,1
    - Dst: eb32_next
      Src: /src/haproxy/src/queue.c:685,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/queue.c:686,1
    - Dst: __pendconn_unlink_prx
      Src: /src/haproxy/src/queue.c:692,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/queue.c:694,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:697,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:699,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:704,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:705,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 709
    functionName: pendconn_redistribute
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - __pendconn_unlink_prx
    - HA_SPIN_UNLOCK
    - _HA_ATOMIC_SUB
    - HA_SPIN_LOCK
    - eb32_first
    - eb32_next
    - eb32_entry
    - __pendconn_unlink_srv
    linkageType: ''
    returnType: int
    signature: int pendconn_redistribute(struct server *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/queue.c:730,1
    - Dst: pendconn_queue_lock
      Src: /src/haproxy/src/queue.c:740,1
    - Dst: pendconn_queue_unlock
      Src: /src/haproxy/src/queue.c:742,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:745,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:746,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/queue.c:759,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/queue.c:763,1
    - Dst: pool_free
      Src: /src/haproxy/src/queue.c:768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 770
    functionName: pendconn_dequeue
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - pendconn_queue_lock
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - stream_set_srv_target
    - pendconn_queue_unlock
    - sockaddr_free
    - pool_free
    linkageType: ''
    returnType: int
    signature: int pendconn_dequeue(struct stream *strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/queue.c:777,1
    - Dst: queue_limit_class
      Src: /src/haproxy/src/queue.c:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: action_set_priority_class
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - queue_limit_class
    - sample_fetch_as_type
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_set_priority_class(struct act_rule *rule, struct
      proxy *px,\n                                                 struct session
      *sess, struct stream *s, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/queue.c:790,1
    - Dst: queue_limit_offset
      Src: /src/haproxy/src/queue.c:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 797
    functionName: action_set_priority_offset
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - sample_fetch_as_type
    - queue_limit_offset
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_set_priority_offset(struct act_rule *rule,
      struct proxy *px,\n                                                  struct
      session *sess, struct stream *s, int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/queue.c:804,1
    - Dst: memprintf
      Src: /src/haproxy/src/queue.c:815,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/queue.c:817,1
    - Dst: free
      Src: /src/haproxy/src/queue.c:818,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - args
    - arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 825
    functionName: parse_set_priority_class
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - sample_parse_expr
    - memprintf
    - free
    - sample_src_names
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_set_priority_class(const char **args, int
      *arg, struct proxy *px,\n                                                   struct
      act_rule *rule, char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/queue.c:832,1
    - Dst: memprintf
      Src: /src/haproxy/src/queue.c:843,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/queue.c:845,1
    - Dst: free
      Src: /src/haproxy/src/queue.c:846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - args
    - arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 827
    functionDepth: 3
    functionLinenumber: 827
    functionLinenumberEnd: 853
    functionName: parse_set_priority_offset
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - sample_parse_expr
    - memprintf
    - free
    - sample_src_names
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_set_priority_offset(const char **args, int
      *arg, struct proxy *px,\n                                                    struct
      act_rule *rule, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 881
    functionName: smp_fetch_priority_class
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_priority_class(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 893
    functionName: smp_fetch_priority_offset
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_priority_offset(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: fas_remove_from_tree
    functionSourceFile: /src/haproxy/src/lb_fas.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fas_remove_from_tree(struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_delete
      Src: /src/haproxy/src/lb_fas.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: fas_dequeue_srv
    functionSourceFile: /src/haproxy/src/lb_fas.c
    functionUses: 0
    functionsReached:
    - eb32_delete
    linkageType: ''
    returnType: void
    signature: void fas_dequeue_srv(struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_insert
      Src: /src/haproxy/src/lb_fas.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: fas_queue_srv
    functionSourceFile: /src/haproxy/src/lb_fas.c
    functionUses: 0
    functionsReached:
    - eb32_insert
    linkageType: ''
    returnType: void
    signature: void fas_queue_srv(struct server *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fas.c:67,1
    - Dst: fas_dequeue_srv
      Src: /src/haproxy/src/lb_fas.c:69,1
    - Dst: fas_queue_srv
      Src: /src/haproxy/src/lb_fas.c:70,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fas.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: fas_srv_reposition
    functionSourceFile: /src/haproxy/src/lb_fas.c
    functionUses: 0
    functionsReached:
    - fas_dequeue_srv
    - fas_queue_srv
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void fas_srv_reposition(struct server *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_fas.c:87,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fas.c:90,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fas.c:93,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fas.c:95,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fas.c:112,1
    - Dst: fas_dequeue_srv
      Src: /src/haproxy/src/lb_fas.c:120,1
    - Dst: fas_remove_from_tree
      Src: /src/haproxy/src/lb_fas.c:121,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fas.c:125,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fas.c:126,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fas.c:129,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 130
    functionName: fas_set_server_status_down
    functionSourceFile: /src/haproxy/src/lb_fas.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - fas_dequeue_srv
    - update_backend_weight
    - HA_RWLOCK_WRUNLOCK
    - fas_remove_from_tree
    - srv_lb_status_changed
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void fas_set_server_status_down(struct server *srv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_fas.c:145,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fas.c:148,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fas.c:151,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fas.c:153,1
    - Dst: fas_queue_srv
      Src: /src/haproxy/src/lb_fas.c:185,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fas.c:189,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fas.c:190,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fas.c:193,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 194
    functionName: fas_set_server_status_up
    functionSourceFile: /src/haproxy/src/lb_fas.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - update_backend_weight
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - HA_RWLOCK_WRLOCK
    - fas_queue_srv
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void fas_set_server_status_up(struct server *srv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_fas.c:206,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fas.c:217,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fas.c:218,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fas.c:221,1
    - Dst: fas_set_server_status_up
      Src: /src/haproxy/src/lb_fas.c:225,1
    - Dst: fas_set_server_status_down
      Src: /src/haproxy/src/lb_fas.c:229,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fas.c:233,1
    - Dst: fas_dequeue_srv
      Src: /src/haproxy/src/lb_fas.c:236,1
    - Dst: fas_queue_srv
      Src: /src/haproxy/src/lb_fas.c:246,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fas.c:248,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fas.c:249,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fas.c:251,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 252
    functionName: fas_update_server_weight
    functionSourceFile: /src/haproxy/src/lb_fas.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - fas_dequeue_srv
    - update_backend_weight
    - fas_set_server_status_down
    - HA_RWLOCK_WRUNLOCK
    - fas_set_server_status_up
    - srv_lb_status_changed
    - fas_queue_srv
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void fas_update_server_weight(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fas.c:266,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_fas.c:269,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fas.c:270,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fas.c:277,1
    - Dst: fas_queue_srv
      Src: /src/haproxy/src/lb_fas.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 283
    functionName: fas_init_server_tree
    functionSourceFile: /src/haproxy/src/lb_fas.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - update_backend_weight
    - recount_servers
    - fas_queue_srv
    - srv_lb_commit_status
    linkageType: ''
    returnType: int
    signature: int fas_init_server_tree(struct proxy *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/lb_fas.c:297,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_fas.c:299,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_fas.c:305,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_fas.c:319,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_fas.c:320,1
    - Dst: eb32_next
      Src: /src/haproxy/src/lb_fas.c:327,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fas.c:333,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - p
    - srvtoavoid
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 335
    functionName: fas_get_next_server
    functionSourceFile: /src/haproxy/src/lb_fas.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_RDUNLOCK
    - srv_dynamic_maxconn
    - eb32_next
    - eb32_entry
    - eb32_first
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct server
    signature: struct server *fas_get_next_server(struct proxy *p, struct server *srvtoavoid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_check_date_unit
      Src: /src/haproxy/src/http_conv.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: smp_check_http_date_unit
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - smp_check_date_unit
    linkageType: ''
    returnType: int
    signature: "int smp_check_http_date_unit(struct arg *args, struct sample_conv
      *conv,\n                                    const char *file, int line, char
      **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_http_date
      Src: /src/haproxy/src/http_conv.c:45,1
    - Dst: my_timegm
      Src: /src/haproxy/src/http_conv.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: sample_conv_http2epoch
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - parse_http_date
    - my_timegm
    linkageType: ''
    returnType: int
    signature: int sample_conv_http2epoch(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_gmtime
      Src: /src/haproxy/src/http_conv.c:86,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_conv.c:88,1
    - Dst: snprintf
      Src: /src/haproxy/src/http_conv.c:90,1
    - Dst: snprintf
      Src: /src/haproxy/src/http_conv.c:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 106
    functionName: sample_conv_http_date
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - snprintf
    - get_trash_chunk
    - get_gmtime
    linkageType: ''
    returnType: int
    signature: int sample_conv_http_date(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/haproxy/src/http_conv.c:132,1
    - Dst: isspace
      Src: /src/haproxy/src/http_conv.c:141,1
    - Dst: http_language_range_match
      Src: /src/haproxy/src/http_conv.c:157,1
    - Dst: isspace
      Src: /src/haproxy/src/http_conv.c:170,1
    - Dst: isspace
      Src: /src/haproxy/src/http_conv.c:189,1
    - Dst: isspace
      Src: /src/haproxy/src/http_conv.c:200,1
    - Dst: isspace
      Src: /src/haproxy/src/http_conv.c:211,1
    - Dst: http_parse_qvalue
      Src: /src/haproxy/src/http_conv.c:217,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 93
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 253
    functionName: sample_conv_q_preferred
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - isspace
    - http_parse_qvalue
    - http_language_range_match
    linkageType: ''
    returnType: int
    signature: int sample_conv_q_preferred(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/http_conv.c:266,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_conv.c:270,1
    - Dst: url_decode
      Src: /src/haproxy/src/http_conv.c:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 287
    functionName: sample_conv_url_dec
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - url_decode
    - get_trash_chunk_sz
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sample_conv_url_dec(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/http_conv.c:301,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_conv.c:303,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_conv.c:306,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_conv.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - arg
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 315
    functionName: sample_conv_url_enc_check
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: "int sample_conv_url_enc_check(struct arg *arg, struct sample_conv
      *conv,\n\t\t\t\t     const char *file, int line, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/http_conv.c:322,1
    - Dst: ha_bit_set
      Src: /src/haproxy/src/http_conv.c:329,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: sample_conf_url_enc_init
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - memset
    - ha_bit_set
    linkageType: ''
    returnType: void
    signature: void sample_conf_url_enc_init()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/http_conv.c:340,1
    - Dst: encode_chunk
      Src: /src/haproxy/src/http_conv.c:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 362
    functionName: sample_conv_url_enc
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk_sz
    - encode_chunk
    linkageType: ''
    returnType: int
    signature: "int sample_conv_url_enc(const struct arg *args, struct sample *smp,
      void\n\t\t*private)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/http_conv.c:377,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_conv.c:393,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_conv.c:403,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 407
    functionName: smp_conv_req_capture
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - memcpy
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int smp_conv_req_capture(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/http_conv.c:422,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_conv.c:438,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_conv.c:448,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 452
    functionName: smp_conv_res_capture
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - memcpy
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int smp_conv_res_capture(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/sink.c:53,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: _sink_find
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct sink
    signature: struct sink *_sink_find(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _sink_find
      Src: /src/haproxy/src/sink.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: sink_find
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 1
    functionsReached:
    - _sink_find
    linkageType: ''
    returnType: struct sink
    signature: struct sink *sink_find(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sink.c:85,1
    - Dst: _sink_find
      Src: /src/haproxy/src/sink.c:87,1
    - Dst: calloc
      Src: /src/haproxy/src/sink.c:92,1
    - Dst: strdup
      Src: /src/haproxy/src/sink.c:96,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:100,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sink.c:105,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:110,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:111,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - name
    - from
    - file
    - line
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 114
    functionName: sink_find_early
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - memprintf
    - BUG_ON
    - ha_free
    - calloc
    - LIST_APPEND
    - _sink_find
    - strdup
    linkageType: ''
    returnType: struct sink
    signature: struct sink *sink_find_early(const char *name, const char *from, const
      char *file, int line)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _sink_find
      Src: /src/haproxy/src/sink.c:128,1
    - Dst: calloc
      Src: /src/haproxy/src/sink.c:135,1
    - Dst: strdup
      Src: /src/haproxy/src/sink.c:140,1
    - Dst: strdup
      Src: /src/haproxy/src/sink.c:145,1
    - Dst: free
      Src: /src/haproxy/src/sink.c:149,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sink.c:158,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:164,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:165,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:166,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - name
    - desc
    - fmt
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 170
    functionName: __sink_new
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - ha_free
    - calloc
    - LIST_APPEND
    - free
    - _sink_find
    - strdup
    linkageType: ''
    returnType: struct sink
    signature: struct sink *__sink_new(const char *name, const char *desc, int fmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __sink_new
      Src: /src/haproxy/src/sink.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - name
    - desc
    - fmt
    - fd
    argTypes:
    - char*
    - char*
    - enum log_fmt
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 193
    functionName: sink_new_fd
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - __sink_new
    linkageType: ''
    returnType: struct sink
    signature: struct sink *sink_new_fd(const char *name, const char *desc, enum log_fmt
      fmt, int fd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __sink_new
      Src: /src/haproxy/src/sink.c:204,1
    - Dst: ring_resize
      Src: /src/haproxy/src/sink.c:210,1
    - Dst: ring_new
      Src: /src/haproxy/src/sink.c:220,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/sink.c:222,1
    - Dst: free
      Src: /src/haproxy/src/sink.c:223,1
    - Dst: free
      Src: /src/haproxy/src/sink.c:224,1
    - Dst: free
      Src: /src/haproxy/src/sink.c:225,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - name
    - desc
    - fmt
    - size
    argTypes:
    - char*
    - char*
    - enum log_fmt
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 234
    functionName: sink_new_buf
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - free
    - ring_new
    - __sink_new
    - ring_resize
    linkageType: ''
    returnType: struct sink
    signature: struct sink *sink_new_buf(const char *name, const char *desc, enum
      log_fmt fmt, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: build_log_header
      Src: /src/haproxy/src/sink.c:259,1
    - Dst: fd_write_frag_line
      Src: /src/haproxy/src/sink.c:265,1
    - Dst: MIN
      Src: /src/haproxy/src/sink.c:265,1
    - Dst: ring_write
      Src: /src/haproxy/src/sink.c:268,1
    - Dst: MIN
      Src: /src/haproxy/src/sink.c:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - sink
    - hdr
    - maxlen
    - msg
    - nmsg
    argTypes:
    - struct sink*
    - struct log_header
    - size_t
    - struct ist[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 271
    functionName: __sink_write
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - MIN
    - ring_write
    - fd_write_frag_line
    - build_log_header
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t __sink_write(struct sink *sink, struct log_header hdr,\n                      size_t
      maxlen, const struct ist msg[], size_t nmsg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sink.c:305,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/sink.c:311,1
    - Dst: unlikely
      Src: /src/haproxy/src/sink.c:316,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/sink.c:325,1
    - Dst: ist2
      Src: /src/haproxy/src/sink.c:329,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sink.c:330,1
    - Dst: __sink_write
      Src: /src/haproxy/src/sink.c:339,1
    - Dst: HA_ATOMIC_SUB
      Src: /src/haproxy/src/sink.c:343,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/sink.c:350,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - sink
    - hdr
    argTypes:
    - struct sink*
    - struct log_header
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 353
    functionName: sink_announce_dropped
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist2
    - HA_ATOMIC_LOAD
    - HA_ATOMIC_SUB
    - _HA_ATOMIC_CAS
    - __sink_write
    - HA_ATOMIC_AND
    - ultoa_r
    linkageType: ''
    returnType: int
    signature: int sink_announce_dropped(struct sink *sink, struct log_header hdr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/sink.c:366,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/sink.c:367,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/sink.c:368,1
    - Dst: cli_msg
      Src: /src/haproxy/src/sink.c:377,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/sink.c:380,1
    - Dst: sink_find
      Src: /src/haproxy/src/sink.c:383,1
    - Dst: cli_err
      Src: /src/haproxy/src/sink.c:385,1
    - Dst: cli_msg
      Src: /src/haproxy/src/sink.c:388,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:392,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:394,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:396,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:398,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:398,1
    - Dst: cli_err
      Src: /src/haproxy/src/sink.c:401,1
    - Dst: ring_attach_cli
      Src: /src/haproxy/src/sink.c:403,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 404
    functionName: cli_parse_show_events
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - list_for_each_entry
    - chunk_printf
    - sink_find
    - strcmp
    - chunk_appendf
    - ring_attach_cli
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_events(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 423
    functionName: sink_setup_proxy
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sink_setup_proxy(struct proxy *px)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/sink.c:435,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/sink.c:435,1
    - Dst: unlikely
      Src: /src/haproxy/src/sink.c:439,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/sink.c:445,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/sink.c:446,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/sink.c:447,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/sink.c:451,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/sink.c:452,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/sink.c:456,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sink.c:457,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/sink.c:459,1
    - Dst: ring_dispatch_messages
      Src: /src/haproxy/src/sink.c:461,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:478,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/sink.c:485,1
    - Dst: ring_tail
      Src: /src/haproxy/src/sink.c:486,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/sink.c:492,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/sink.c:494,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:496,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/sink.c:500,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/sink.c:508,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 514
    functionName: _sink_forward_io_handler
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - unlikely
    - applet_have_no_more_data
    - MT_LIST_DELETE
    - applet_need_more_data
    - BUG_ON
    - applet_have_more_data
    - ring_dispatch_messages
    - applet_fl_test
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - MT_LIST_APPEND
    - applet_get_outbuf
    - ring_tail
    - applet_reset_input
    - applet_set_eos
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: "void _sink_forward_io_handler(struct appctx *appctx,\n                                     ssize_t
      (*msg_handler)(void *ctx, struct ist v1, struct ist v2, size_t ofs, size_t len,
      char delim))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sink_forward_io_handler
      Src: /src/haproxy/src/sink.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: sink_forward_io_handler
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 1
    functionsReached:
    - _sink_forward_io_handler
    linkageType: ''
    returnType: void
    signature: void sink_forward_io_handler(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sink_forward_io_handler
      Src: /src/haproxy/src/sink.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 533
    functionName: sink_forward_oc_io_handler
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - _sink_forward_io_handler
    linkageType: ''
    returnType: void
    signature: void sink_forward_oc_io_handler(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/sink.c:543,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/sink.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sft
    argTypes:
    - struct sink_forward_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 547
    functionName: __sink_forward_session_deinit
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - MT_LIST_DELETE
    linkageType: ''
    returnType: void
    signature: void __sink_forward_session_deinit(struct sink_forward_target *sft)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/sink.c:558,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sink.c:560,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/sink.c:562,1
    - Dst: set_host_port
      Src: /src/haproxy/src/sink.c:565,1
    - Dst: appctx_finalize_startup
      Src: /src/haproxy/src/sink.c:567,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/sink.c:570,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/sink.c:574,1
    - Dst: se_need_remote_conn
      Src: /src/haproxy/src/sink.c:580,1
    - Dst: applet_expect_no_data
      Src: /src/haproxy/src/sink.c:581,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:583,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/sink.c:588,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 592
    functionName: sink_forward_session_init
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - sockaddr_alloc
    - BUG_ON
    - se_need_remote_conn
    - appctx_finalize_startup
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - stream_set_srv_target
    - sockaddr_free
    - applet_expect_no_data
    - set_host_port
    linkageType: ''
    returnType: int
    signature: int sink_forward_session_init(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/sink.c:601,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sink.c:602,1
    - Dst: __sink_forward_session_deinit
      Src: /src/haproxy/src/sink.c:603,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 605
    functionName: sink_forward_session_release
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - __sink_forward_session_deinit
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sink_forward_session_release(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sink.c:643,1
    - Dst: MIN
      Src: /src/haproxy/src/sink.c:644,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/sink.c:659,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sink.c:660,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sink.c:669,1
    - Dst: appctx_new_on
      Src: /src/haproxy/src/sink.c:673,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/sink.c:677,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - sink
    - sft
    argTypes:
    - struct sink*
    - struct sink_forward_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 684
    functionName: sink_forward_session_create
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - statistical_prng_range
    - BUG_ON
    - HA_ATOMIC_LOAD
    - appctx_wakeup
    - appctx_new_on
    - MIN
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *sink_forward_session_create(struct sink *sink, struct
      sink_forward_target *sft)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/sink.c:698,1
    - Dst: tick_add
      Src: /src/haproxy/src/sink.c:708,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/sink.c:708,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/sink.c:710,1
    - Dst: sink_forward_session_create
      Src: /src/haproxy/src/sink.c:711,1
    - Dst: tick_first
      Src: /src/haproxy/src/sink.c:715,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:717,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/sink.c:723,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/sink.c:726,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:727,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 733
    functionName: process_sink_forward
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - sink_forward_session_create
    - MS_TO_TICKS
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - appctx_wakeup
    - tick_first
    - tick_is_expired
    - tick_add
    linkageType: ''
    returnType: struct task
    signature: struct task *process_sink_forward(struct task * task, void *context,
      unsigned int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/sink.c:741,1
    - Dst: signal_register_task
      Src: /src/haproxy/src/sink.c:747,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/sink.c:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sink
    argTypes:
    - struct sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 750
    functionName: sink_init_forward
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - signal_register_task
    - task_wakeup
    - task_new_anywhere
    linkageType: ''
    returnType: int
    signature: int sink_init_forward(struct sink *sink)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/haproxy/src/sink.c:764,1
    - Dst: read
      Src: /src/haproxy/src/sink.c:769,1
    - Dst: close
      Src: /src/haproxy/src/sink.c:770,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:790,1
    - Dst: unlink
      Src: /src/haproxy/src/sink.c:796,1
    - Dst: rename
      Src: /src/haproxy/src/sink.c:797,1
    - Dst: unlink
      Src: /src/haproxy/src/sink.c:798,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:799,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 801
    functionName: sink_rotate_file_backed_ring
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ha_free
    - open
    - unlink
    - read
    - rename
    - close
    linkageType: ''
    returnType: void
    signature: void sink_rotate_file_backed_ring(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ring_allocated_size
      Src: /src/haproxy/src/sink.c:814,1
    - Dst: ring_allocated_area
      Src: /src/haproxy/src/sink.c:815,1
    - Dst: msync
      Src: /src/haproxy/src/sink.c:817,1
    - Dst: munmap
      Src: /src/haproxy/src/sink.c:818,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:819,1
    - Dst: ring_free
      Src: /src/haproxy/src/sink.c:821,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/sink.c:823,1
    - Dst: task_destroy
      Src: /src/haproxy/src/sink.c:824,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/sink.c:825,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:826,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:827,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:830,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - sink
    argTypes:
    - struct sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 834
    functionName: sink_free
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - ring_allocated_area
    - ring_free
    - ring_allocated_size
    - munmap
    - task_destroy
    - ha_free
    - LIST_DEL_INIT
    - proxy_drop
    - msync
    linkageType: ''
    returnType: void
    signature: void sink_free(struct sink *sink)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/sink.c:853,1
    - Dst: sink_setup_proxy
      Src: /src/haproxy/src/sink.c:857,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/sink.c:858,1
    - Dst: sink_new_buf
      Src: /src/haproxy/src/sink.c:861,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:863,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/sink.c:873,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - id
    - description
    - file
    - linenum
    - err_msg
    argTypes:
    - char*
    - char*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 843
    functionDepth: 5
    functionLinenumber: 843
    functionLinenumberEnd: 875
    functionName: sink_new_ringbuf
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - memprintf
    - proxy_drop
    - sink_setup_proxy
    - copy_file_name
    - alloc_new_proxy
    - sink_new_buf
    linkageType: ''
    returnType: struct sink
    signature: "struct sink *sink_new_ringbuf(const char *id, const char *description,\n
      \                                    const char *file, int linenum, char **err_msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/sink.c:886,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:888,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/sink.c:896,1
    - Dst: ring_attach
      Src: /src/haproxy/src/sink.c:899,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:900,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - sink
    - srv
    argTypes:
    - struct sink*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 906
    functionName: sink_add_srv
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_INIT
    - ha_free
    - calloc
    - ha_alert
    - ring_attach
    linkageType: ''
    returnType: int
    signature: int sink_add_srv(struct sink *sink, struct server *srv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ring_max_payload
      Src: /src/haproxy/src/sink.c:922,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sink.c:924,1
    - Dst: ring_max_payload
      Src: /src/haproxy/src/sink.c:925,1
    - Dst: ring_max_payload
      Src: /src/haproxy/src/sink.c:926,1
    - Dst: sink_add_srv
      Src: /src/haproxy/src/sink.c:935,1
    - Dst: sink_init_forward
      Src: /src/haproxy/src/sink.c:943,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:944,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/sink.c:949,1
    - Dst: ring_allocated_area
      Src: /src/haproxy/src/sink.c:949,1
    - Dst: ring_allocated_size
      Src: /src/haproxy/src/sink.c:950,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - sink
    argTypes:
    - struct sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 914
    functionDepth: 3
    functionLinenumber: 914
    functionLinenumberEnd: 955
    functionName: sink_finalize
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - ring_allocated_area
    - sink_add_srv
    - vma_set_name
    - ring_allocated_size
    - ring_max_payload
    - sink_init_forward
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int sink_finalize(struct sink *sink)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:969,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:971,1
    - Dst: invalid_char
      Src: /src/haproxy/src/sink.c:976,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:978,1
    - Dst: sink_find
      Src: /src/haproxy/src/sink.c:983,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:984,1
    - Dst: sink_new_ringbuf
      Src: /src/haproxy/src/sink.c:989,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:991,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:992,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1002,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1006,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/sink.c:1011,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1012,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1018,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1024,1
    - Dst: ring_data
      Src: /src/haproxy/src/sink.c:1029,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sink.c:1030,1
    - Dst: ring_data
      Src: /src/haproxy/src/sink.c:1031,1
    - Dst: ring_resize
      Src: /src/haproxy/src/sink.c:1036,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1037,1
    - Dst: ring_size
      Src: /src/haproxy/src/sink.c:1038,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1043,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1053,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1059,1
    - Dst: sink_rotate_file_backed_ring
      Src: /src/haproxy/src/sink.c:1069,1
    - Dst: open
      Src: /src/haproxy/src/sink.c:1071,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1073,1
    - Dst: strerror
      Src: /src/haproxy/src/sink.c:1073,1
    - Dst: ring_size
      Src: /src/haproxy/src/sink.c:1078,1
    - Dst: ftruncate
      Src: /src/haproxy/src/sink.c:1079,1
    - Dst: close
      Src: /src/haproxy/src/sink.c:1080,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1081,1
    - Dst: strerror
      Src: /src/haproxy/src/sink.c:1081,1
    - Dst: mmap
      Src: /src/haproxy/src/sink.c:1086,1
    - Dst: close
      Src: /src/haproxy/src/sink.c:1088,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1089,1
    - Dst: strerror
      Src: /src/haproxy/src/sink.c:1089,1
    - Dst: close
      Src: /src/haproxy/src/sink.c:1095,1
    - Dst: strdup
      Src: /src/haproxy/src/sink.c:1096,1
    - Dst: ring_free
      Src: /src/haproxy/src/sink.c:1099,1
    - Dst: ring_make_from_area
      Src: /src/haproxy/src/sink.c:1100,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1102,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1104,1
    - Dst: parse_server
      Src: /src/haproxy/src/sink.c:1109,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1115,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1117,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1122,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1123,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1128,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/sink.c:1133,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1135,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1141,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1147,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1158,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1160,1
    - Dst: get_log_format
      Src: /src/haproxy/src/sink.c:1165,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1167,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1172,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1174,1
    - Dst: atol
      Src: /src/haproxy/src/sink.c:1179,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1181,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1186,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1188,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1194,1
    - Dst: free
      Src: /src/haproxy/src/sink.c:1199,1
    - Dst: strdup
      Src: /src/haproxy/src/sink.c:1201,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1203,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1209,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 221
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 963
    functionDepth: 6
    functionLinenumber: 963
    functionLinenumberEnd: 1216
    functionName: cfg_parse_ring
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - open
    - ring_make_from_area
    - free
    - ring_data
    - close
    - invalid_char
    - ring_free
    - strerror
    - ha_free
    - mmap
    - sink_find
    - strcmp
    - ring_size
    - sink_new_ringbuf
    - atol
    - parse_server
    - get_log_format
    - ftruncate
    - ring_resize
    - parse_size_err
    - sink_rotate_file_backed_ring
    - ha_alert
    - ha_warning
    - parse_time_err
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_ring(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/sink.c:1239,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sink.c:1240,1
    - Dst: sink_new_ringbuf
      Src: /src/haproxy/src/sink.c:1243,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1245,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:1246,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/sink.c:1262,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/sink.c:1263,1
    - Dst: new_server
      Src: /src/haproxy/src/sink.c:1268,1
    - Dst: strdup
      Src: /src/haproxy/src/sink.c:1273,1
    - Dst: strdup
      Src: /src/haproxy/src/sink.c:1274,1
    - Dst: get_host_port
      Src: /src/haproxy/src/sink.c:1277,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/sink.c:1278,1
    - Dst: sink_finalize
      Src: /src/haproxy/src/sink.c:1280,1
    - Dst: sink_free
      Src: /src/haproxy/src/sink.c:1286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - logger
    argTypes:
    - struct logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1232
    functionDepth: 6
    functionLinenumber: 1232
    functionLinenumberEnd: 1289
    functionName: sink_new_from_logger
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_INIT
    - ha_free
    - chunk_printf
    - sink_free
    - MS_TO_TICKS
    - sink_new_ringbuf
    - get_host_port
    - ha_alert
    - chunk_reset
    - sink_finalize
    - new_server
    - strdup
    linkageType: ''
    returnType: struct sink
    signature: struct sink *sink_new_from_logger(struct logger *logger)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/sink.c:1314,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sink.c:1315,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1317,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1319,1
    - Dst: sink_new_buf
      Src: /src/haproxy/src/sink.c:1328,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:1329,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1332,1
    - Dst: sink_add_srv
      Src: /src/haproxy/src/sink.c:1342,1
    - Dst: sink_finalize
      Src: /src/haproxy/src/sink.c:1345,1
    - Dst: sink_free
      Src: /src/haproxy/src/sink.c:1351,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - srv
    - from
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1307
    functionDepth: 5
    functionLinenumber: 1307
    functionLinenumberEnd: 1354
    functionName: sink_new_from_srv
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - sink_add_srv
    - memprintf
    - ha_free
    - chunk_printf
    - sink_free
    - sink_finalize
    - ha_alert
    - chunk_reset
    - sink_new_buf
    linkageType: ''
    returnType: struct sink
    signature: struct sink *sink_new_from_srv(struct server *srv, const char *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sink_finalize
      Src: /src/haproxy/src/sink.c:1366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1362
    functionDepth: 4
    functionLinenumber: 1362
    functionLinenumberEnd: 1370
    functionName: cfg_post_parse_ring
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - sink_finalize
    linkageType: ''
    returnType: int
    signature: int cfg_post_parse_ring()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sink.c:1386,1
    - Dst: sink_new_from_logger
      Src: /src/haproxy/src/sink.c:1388,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1390,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:1394,1
    - Dst: sink_find
      Src: /src/haproxy/src/sink.c:1397,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1399,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1404,1
    - Dst: ring_max_payload
      Src: /src/haproxy/src/sink.c:1410,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1411,1
    - Dst: ring_max_payload
      Src: /src/haproxy/src/sink.c:1412,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1415,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:1419,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - logger
    - msg
    argTypes:
    - struct logger*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1380
    functionDepth: 7
    functionLinenumber: 1380
    functionLinenumberEnd: 1422
    functionName: sink_resolve_logger_buffer
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - memprintf
    - BUG_ON
    - ha_free
    - sink_find
    - ring_max_payload
    - sink_new_from_logger
    linkageType: ''
    returnType: int
    signature: int sink_resolve_logger_buffer(struct logger *logger, char **msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sink_new_fd
      Src: /src/haproxy/src/sink.c:1426,1
    - Dst: sink_new_fd
      Src: /src/haproxy/src/sink.c:1427,1
    - Dst: sink_new_buf
      Src: /src/haproxy/src/sink.c:1428,1
    - Dst: sink_new_buf
      Src: /src/haproxy/src/sink.c:1429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1424
    functionDepth: 5
    functionLinenumber: 1424
    functionLinenumberEnd: 1430
    functionName: sink_init
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - sink_new_fd
    - sink_new_buf
    linkageType: ''
    returnType: void
    signature: void sink_init()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/sink.c:1436,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1447
    functionName: sink_postcheck
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - ha_alert
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int sink_postcheck()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/sink.c:1453,1
    - Dst: sink_free
      Src: /src/haproxy/src/sink.c:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1449
    functionDepth: 3
    functionLinenumber: 1449
    functionLinenumberEnd: 1455
    functionName: sink_deinit
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - sink_free
    - list_for_each_entry_safe
    linkageType: ''
    returnType: void
    signature: void sink_deinit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_pacing.c:9,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pacer
    - sent
    argTypes:
    - struct quic_pacer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 13
    functionName: quic_pacing_sent_done
    functionSourceFile: /src/haproxy/src/quic_pacing.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void quic_pacing_sent_done(struct quic_pacer *pacer, int sent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_mono_time
      Src: /src/haproxy/src/quic_pacing.c:22,1
    - Dst: struct quic_pacer*::cc::algo::pacing_inter
      Src: /src/haproxy/src/quic_pacing.c:23,1
    - Dst: struct quic_pacer*::cc::algo::pacing_burst
      Src: /src/haproxy/src/quic_pacing.c:29,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_pacing.c:43,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/quic_pacing.c:43,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_pacing.c:49,1
    - Dst: MIN
      Src: /src/haproxy/src/quic_pacing.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - pacer
    argTypes:
    - struct quic_pacer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 58
    functionName: quic_pacing_reload
    functionSourceFile: /src/haproxy/src/quic_pacing.c
    functionUses: 0
    functionsReached:
    - MAX
    - struct quic_pacer*::cc::algo::pacing_burst
    - struct quic_pacer*::cc::algo::pacing_inter
    - task_mono_time
    - MIN
    - swrate_avg
    linkageType: ''
    returnType: int
    signature: int quic_pacing_reload(struct quic_pacer *pacer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/fd.c:130,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:136,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/fd.c:138,1
    - Dst: fd::fd
      Src: /src/haproxy/src/fd.c:140,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:148,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:150,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:152,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:152,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:162,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:162,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:168,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:174,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - list
    - fd
    argTypes:
    - struct fdlist*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 177
    functionName: fd_add_to_fd_list
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HA_ATOMIC_LOAD
    - __ha_barrier_store
    - _HA_ATOMIC_CAS
    - __ha_barrier_atomic_store
    - fd::fd
    linkageType: ''
    returnType: void
    signature: void fd_add_to_fd_list(volatile struct fdlist *list, int fd)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:201,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:203,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:207,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:207,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:209,1
    - Dst: _HA_ATOMIC_DWCAS
      Src: /src/haproxy/src/fd.c:209,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/fd.c:217,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:222,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:222,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/fd.c:225,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:228,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:228,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/fd.c:231,1
    - Dst: likely
      Src: /src/haproxy/src/fd.c:234,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:238,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:238,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:239,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:244,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:246,1
    - Dst: likely
      Src: /src/haproxy/src/fd.c:252,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:255,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:255,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:256,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:262,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:265,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:267,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:275,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:277,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:277,1
    - Dst: __ha_compiler_barrier
      Src: /src/haproxy/src/fd.c:278,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:282,1
    - Dst: likely
      Src: /src/haproxy/src/fd.c:283,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:285,1
    - Dst: likely
      Src: /src/haproxy/src/fd.c:286,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:288,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/fd.c:291,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 93
    argCount: 2
    argNames:
    - list
    - fd
    argTypes:
    - struct fdlist*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 294
    functionName: fd_rm_from_fd_list
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HA_ATOMIC_LOAD
    - likely
    - __ha_barrier_store
    - _HA_ATOMIC_DWCAS
    - _HA_ATOMIC_CAS
    - __ha_barrier_atomic_store
    - __ha_compiler_barrier
    linkageType: ''
    returnType: void
    signature: void fd_rm_from_fd_list(volatile struct fdlist *list, int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fd_tgid
      Src: /src/haproxy/src/fd.c:305,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/fd.c:311,1
    - Dst: setsockopt
      Src: /src/haproxy/src/fd.c:311,1
    - Dst: clo
      Src: /src/haproxy/src/fd.c:320,1
    - Dst: fd_reset_tgid
      Src: /src/haproxy/src/fd.c:330,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/fd.c:332,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/fd.c:333,1
    - Dst: fd_rm_from_fd_list
      Src: /src/haproxy/src/fd.c:336,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/fd.c:339,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/fd.c:343,1
    - Dst: close
      Src: /src/haproxy/src/fd.c:359,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/fd.c:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 362
    functionName: _fd_delete_orphan
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - DISGUISE
    - fd_reset_tgid
    - HA_ATOMIC_STORE
    - _HA_ATOMIC_LOAD
    - port_range_release_port
    - fd_tgid
    - clo
    - setsockopt
    - __ha_cpu_relax
    - fd_rm_from_fd_list
    - _HA_ATOMIC_DEC
    - close
    linkageType: ''
    returnType: void
    signature: void _fd_delete_orphan(int fd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/fd.c:376,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:383,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:395,1
    - Dst: fd_tgid
      Src: /src/haproxy/src/fd.c:395,1
    - Dst: thread_isolated
      Src: /src/haproxy/src/fd.c:396,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/fd.c:399,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/fd.c:401,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/fd.c:402,1
    - Dst: _fd_delete_orphan
      Src: /src/haproxy/src/fd.c:403,1
    - Dst: thread_release
      Src: /src/haproxy/src/fd.c:406,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/fd.c:431,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/fd.c:432,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/fd.c:433,1
    - Dst: fd_clr_running
      Src: /src/haproxy/src/fd.c:434,1
    - Dst: HA_ATOMIC_BTR
      Src: /src/haproxy/src/fd.c:435,1
    - Dst: _fd_delete_orphan
      Src: /src/haproxy/src/fd.c:436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 439
    functionName: fd_delete
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 6
    functionsReached:
    - unlikely
    - HA_ATOMIC_STORE
    - thread_isolate
    - BUG_ON
    - thread_isolated
    - fd_tgid
    - HA_ATOMIC_OR
    - _fd_delete_orphan
    - fd_clr_running
    - HA_ATOMIC_BTR
    - thread_release
    linkageType: ''
    returnType: void
    signature: void fd_delete(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/haproxy/src/fd.c:448,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/fd.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 451
    functionName: fd_set_nonblock
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 1
    functionsReached:
    - DISGUISE
    - fcntl
    linkageType: ''
    returnType: int
    signature: int fd_set_nonblock(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/haproxy/src/fd.c:461,1
    - Dst: fcntl
      Src: /src/haproxy/src/fd.c:463,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/fd.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 465
    functionName: fd_set_cloexec
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 1
    functionsReached:
    - DISGUISE
    - fcntl
    linkageType: ''
    returnType: int
    signature: int fd_set_cloexec(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_lock_tgid
      Src: /src/haproxy/src/fd.c:485,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/fd.c:490,1
    - Dst: fd_stop_both
      Src: /src/haproxy/src/fd.c:496,1
    - Dst: fd_unlock_tgid
      Src: /src/haproxy/src/fd.c:502,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/fd.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - new_tid
    argTypes:
    - int
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 504
    functionName: fd_migrate_on
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - fd_drop_tgid
    - fd_stop_both
    - fd_unlock_tgid
    - fd_lock_tgid
    linkageType: ''
    returnType: void
    signature: void fd_migrate_on(int fd, uint new_tid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fd_tgid
      Src: /src/haproxy/src/fd.c:528,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/fd.c:529,1
    - Dst: atleast2
      Src: /src/haproxy/src/fd.c:529,1
    - Dst: my_ffsl
      Src: /src/haproxy/src/fd.c:530,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:532,1
    - Dst: fd_lock_tgid_cur
      Src: /src/haproxy/src/fd.c:532,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:541,1
    - Dst: fd_grab_tgid
      Src: /src/haproxy/src/fd.c:541,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:546,1
    - Dst: fd_unlock_tgid
      Src: /src/haproxy/src/fd.c:548,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/fd.c:549,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/fd.c:554,1
    - Dst: fd_update_tgid
      Src: /src/haproxy/src/fd.c:562,1
    - Dst: fixup_tgid_takeover
      Src: /src/haproxy/src/fd.c:564,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/fd.c:571,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/fd.c:577,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/fd.c:580,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - fd
    - expected_owner
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 582
    functionName: fd_takeover
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 2
    functionsReached:
    - unlikely
    - HA_ATOMIC_STORE
    - fd_update_tgid
    - fd_lock_tgid_cur
    - BUG_ON
    - fd_grab_tgid
    - fixup_tgid_takeover
    - fd_tgid
    - fd_drop_tgid
    - my_ffsl
    - HA_ATOMIC_CAS
    - fd_stop_recv
    - HA_ATOMIC_AND
    - fd_unlock_tgid
    - atleast2
    linkageType: ''
    returnType: int
    signature: int fd_takeover(int fd, void *expected_owner)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fd_take_tgid
      Src: /src/haproxy/src/fd.c:586,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:592,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:601,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/fd.c:602,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/fd.c:603,1
    - Dst: fd_add_to_fd_list
      Src: /src/haproxy/src/fd.c:605,1
    - Dst: one_among_mask
      Src: /src/haproxy/src/fd.c:607,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/fd.c:608,1
    - Dst: wake_thread
      Src: /src/haproxy/src/fd.c:610,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/fd.c:612,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/fd.c:616,1
    - Dst: HA_ATOMIC_BTS
      Src: /src/haproxy/src/fd.c:619,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:628,1
    - Dst: fd_add_to_fd_list
      Src: /src/haproxy/src/fd.c:630,1
    - Dst: fd_active
      Src: /src/haproxy/src/fd.c:632,1
    - Dst: one_among_mask
      Src: /src/haproxy/src/fd.c:636,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/fd.c:637,1
    - Dst: wake_thread
      Src: /src/haproxy/src/fd.c:639,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 642
    functionName: updt_fd_polling
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - unlikely
    - statistical_prng_range
    - _HA_ATOMIC_LOAD
    - one_among_mask
    - wake_thread
    - fd_take_tgid
    - fd_drop_tgid
    - __ha_cpu_relax
    - fd_active
    - _HA_ATOMIC_CAS
    - HA_ATOMIC_BTS
    - fd_add_to_fd_list
    linkageType: ''
    returnType: void
    signature: void updt_fd_polling(const int fd)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/fd.c:657,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:659,1
    - Dst: fd_grab_tgid
      Src: /src/haproxy/src/fd.c:659,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/fd.c:673,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/fd.c:677,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/fd.c:695,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/fd.c:696,1
    - Dst: fd_clr_running
      Src: /src/haproxy/src/fd.c:706,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/fd.c:713,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:733,1
    - Dst: fd_active
      Src: /src/haproxy/src/fd.c:733,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:737,1
    - Dst: fd_recv_active
      Src: /src/haproxy/src/fd.c:737,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:741,1
    - Dst: fd_send_active
      Src: /src/haproxy/src/fd.c:741,1
    - Dst: new_flags::new_flags
      Src: /src/haproxy/src/fd.c:753,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:755,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:757,1
    - Dst: old::old
      Src: /src/haproxy/src/fd.c:757,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/fd.c:757,1
    - Dst: new_flags::new_flags
      Src: /src/haproxy/src/fd.c:758,1
    - Dst: old::old
      Src: /src/haproxy/src/fd.c:760,1
    - Dst: fd_active
      Src: /src/haproxy/src/fd.c:764,1
    - Dst: iocb
      Src: /src/haproxy/src/fd.c:765,1
    - Dst: fd_grab_tgid
      Src: /src/haproxy/src/fd.c:800,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/fd.c:803,1
    - Dst: fd_clr_running
      Src: /src/haproxy/src/fd.c:815,1
    - Dst: fd_recv_active
      Src: /src/haproxy/src/fd.c:822,1
    - Dst: fd_send_active
      Src: /src/haproxy/src/fd.c:823,1
    - Dst: HA_ATOMIC_BTS
      Src: /src/haproxy/src/fd.c:824,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/fd.c:828,1
    - Dst: HA_ATOMIC_BTR
      Src: /src/haproxy/src/fd.c:836,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/fd.c:837,1
    - Dst: _fd_delete_orphan
      Src: /src/haproxy/src/fd.c:838,1
    - Dst: HA_ATOMIC_BTS
      Src: /src/haproxy/src/fd.c:854,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/fd.c:857,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 81
    argCount: 2
    argNames:
    - fd
    - evts
    argTypes:
    - int
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 859
    functionName: fd_update_events
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 2
    functionsReached:
    - unlikely
    - _HA_ATOMIC_LOAD
    - fd_grab_tgid
    - old::old
    - _HA_ATOMIC_AND
    - fd_drop_tgid
    - fd_active
    - HA_ATOMIC_OR
    - _HA_ATOMIC_CAS
    - _fd_delete_orphan
    - fd_clr_running
    - HA_ATOMIC_BTS
    - HA_ATOMIC_BTR
    - fd_recv_active
    - new_flags::new_flags
    - iocb
    - fd_send_active
    linkageType: ''
    returnType: int
    signature: int fd_update_events(int fd, uint evts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/fd.c:878,1
    - Dst: fd_grab_tgid
      Src: /src/haproxy/src/fd.c:879,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/fd.c:882,1
    - Dst: updt_fd_polling
      Src: /src/haproxy/src/fd.c:883,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/fd.c:884,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - tgrp
    - mask
    argTypes:
    - int
    - ulong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 867
    functionDepth: 3
    functionLinenumber: 867
    functionLinenumberEnd: 886
    functionName: fd_reregister_all
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 1
    functionsReached:
    - updt_fd_polling
    - fd_drop_tgid
    - _HA_ATOMIC_LOAD
    - fd_grab_tgid
    linkageType: ''
    returnType: void
    signature: void fd_reregister_all(int tgrp, ulong mask)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/fd.c:925,1
    - Dst: HA_ATOMIC_BTS
      Src: /src/haproxy/src/fd.c:944,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/fd.c:951,1
    - Dst: unlikely
      Src: /src/haproxy/src/fd.c:954,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/fd.c:955,1
    - Dst: isatty
      Src: /src/haproxy/src/fd.c:956,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/fd.c:957,1
    - Dst: writev
      Src: /src/haproxy/src/fd.c:959,1
    - Dst: HA_ATOMIC_BTR
      Src: /src/haproxy/src/fd.c:960,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 7
    argNames:
    - fd
    - maxlen
    - pfx
    - npfx
    - msg
    - nmsg
    - nl
    argTypes:
    - int
    - size_t
    - struct ist[]
    - size_t
    - struct ist[]
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 965
    functionName: fd_write_frag_line
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 1
    functionsReached:
    - unlikely
    - ha_thread_relax
    - isatty
    - fd_set_nonblock
    - HA_ATOMIC_OR
    - MIN
    - HA_ATOMIC_BTR
    - HA_ATOMIC_BTS
    - writev
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fd_write_frag_line(int fd, size_t maxlen, const struct ist
      pfx[], size_t npfx, const struct ist msg[], size_t nmsg, int nl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closefrom
      Src: /src/haproxy/src/fd.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - start
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 971
    functionName: my_closefrom
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - closefrom
    linkageType: ''
    returnType: void
    signature: void my_closefrom(int start)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/haproxy/src/fd.c:988,1
    - Dst: poll
      Src: /src/haproxy/src/fd.c:1011,1
    - Dst: close
      Src: /src/haproxy/src/fd.c:1024,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 1
    argNames:
    - start
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 1028
    functionName: my_closefrom
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - close
    - poll
    linkageType: ''
    returnType: void
    signature: void my_closefrom(int start)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/haproxy/src/fd.c:1041,1
    - Dst: close
      Src: /src/haproxy/src/fd.c:1050,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - start
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1051
    functionName: my_closefrom
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - close
    linkageType: ''
    returnType: void
    signature: void my_closefrom(int start)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/src/fd.c:1065,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/fd.c:1067,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/fd.c:1072,1
    - Dst: tick_remain
      Src: /src/haproxy/src/fd.c:1072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - next
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1077
    functionName: compute_poll_timeout
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 2
    functionsReached:
    - tick_isset
    - tick_is_expired
    - TICKS_TO_MS
    - tick_remain
    linkageType: ''
    returnType: int
    signature: int compute_poll_timeout(int next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_leaving_poll
      Src: /src/haproxy/src/fd.c:1085,1
    - Dst: thread_harmless_end
      Src: /src/haproxy/src/fd.c:1087,1
    - Dst: thread_idle_end
      Src: /src/haproxy/src/fd.c:1088,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/fd.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - wait_time
    - status
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1083
    functionDepth: 3
    functionLinenumber: 1083
    functionLinenumberEnd: 1091
    functionName: fd_leaving_poll
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 2
    functionsReached:
    - clock_leaving_poll
    - thread_idle_end
    - thread_harmless_end
    - _HA_ATOMIC_AND
    linkageType: ''
    returnType: void
    signature: void fd_leaving_poll(int wait_time, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/fd.c:1099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - poller_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1101
    functionName: disable_poller
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void disable_poller(const char *poller_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/haproxy/src/fd.c:1107,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/fd.c:1108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1109
    functionName: poller_pipe_io_handler
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - fd_cant_recv
    - read
    linkageType: ''
    returnType: void
    signature: void poller_pipe_io_handler(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/fd.c:1116,1
    - Dst: vma_set_name_id
      Src: /src/haproxy/src/fd.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1114
    functionDepth: 1
    functionLinenumber: 1114
    functionLinenumberEnd: 1119
    functionName: alloc_pollers_per_thread
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - vma_set_name_id
    - calloc
    linkageType: ''
    returnType: int
    signature: int alloc_pollers_per_thread()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/haproxy/src/fd.c:1126,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/fd.c:1131,1
    - Dst: fd_insert
      Src: /src/haproxy/src/fd.c:1132,1
    - Dst: fd_insert
      Src: /src/haproxy/src/fd.c:1133,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/fd.c:1134,1
    - Dst: fd_stop_both
      Src: /src/haproxy/src/fd.c:1135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1122
    functionDepth: 2
    functionLinenumber: 1122
    functionLinenumberEnd: 1137
    functionName: init_pollers_per_thread
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - fd_want_recv
    - pipe
    - fd_set_nonblock
    - fd_stop_both
    - fd_insert
    linkageType: ''
    returnType: int
    signature: int init_pollers_per_thread()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fd_delete
      Src: /src/haproxy/src/fd.c:1145,1
    - Dst: fd_delete
      Src: /src/haproxy/src/fd.c:1147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1140
    functionDepth: 4
    functionLinenumber: 1140
    functionLinenumberEnd: 1150
    functionName: deinit_pollers_per_thread
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - fd_delete
    linkageType: ''
    returnType: void
    signature: void deinit_pollers_per_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/fd.c:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1157
    functionName: free_pollers_per_thread
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void free_pollers_per_thread()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ha_aligned_zalloc
      Src: /src/haproxy/src/fd.c:1169,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/fd.c:1169,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fd.c:1170,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/fd.c:1173,1
    - Dst: calloc
      Src: /src/haproxy/src/fd.c:1175,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fd.c:1176,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/fd.c:1179,1
    - Dst: calloc
      Src: /src/haproxy/src/fd.c:1181,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fd.c:1182,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/fd.c:1185,1
    - Dst: struct poller*::init
      Src: /src/haproxy/src/fd.c:1204,1
    - Dst: memcpy
      Src: /src/haproxy/src/fd.c:1205,1
    - Dst: free
      Src: /src/haproxy/src/fd.c:1210,1
    - Dst: free
      Src: /src/haproxy/src/fd.c:1212,1
    - Dst: ha_aligned_free
      Src: /src/haproxy/src/fd.c:1214,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1163
    functionDepth: 3
    functionLinenumber: 1163
    functionLinenumberEnd: 1217
    functionName: init_pollers
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - vma_set_name
    - memcpy
    - struct poller*::init
    - calloc
    - ha_aligned_free
    - free
    - ha_aligned_zalloc
    - ha_alert
    - array_size_or_fail
    linkageType: ''
    returnType: int
    signature: int init_pollers()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct poller*::term
      Src: /src/haproxy/src/fd.c:1231,1
    - Dst: ha_free
      Src: /src/haproxy/src/fd.c:1234,1
    - Dst: ha_aligned_free
      Src: /src/haproxy/src/fd.c:1235,1
    - Dst: ha_free
      Src: /src/haproxy/src/fd.c:1236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1237
    functionName: deinit_pollers
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - ha_free
    - struct poller*::term
    - ha_aligned_free
    linkageType: ''
    returnType: void
    signature: void deinit_pollers()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/fd.c:1250,1
    - Dst: fprintf
      Src: /src/haproxy/src/fd.c:1270,1
    - Dst: fprintf
      Src: /src/haproxy/src/fd.c:1272,1
    - Dst: fprintf
      Src: /src/haproxy/src/fd.c:1274,1
    - Dst: test
      Src: /src/haproxy/src/fd.c:1275,1
    - Dst: fprintf
      Src: /src/haproxy/src/fd.c:1276,1
    - Dst: fprintf
      Src: /src/haproxy/src/fd.c:1280,1
    - Dst: fprintf
      Src: /src/haproxy/src/fd.c:1284,1
    - Dst: fprintf
      Src: /src/haproxy/src/fd.c:1290,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1292
    functionName: list_pollers
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - fprintf
    - test
    linkageType: ''
    returnType: int
    signature: int list_pollers(FILE *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/fd.c:1306,1
    - Dst: fork
      Src: /src/haproxy/src/fd.c:1311,1
    - Dst: term
      Src: /src/haproxy/src/fd.c:1313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1317
    functionName: fork_poller
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_OR
    - fork
    - term
    linkageType: ''
    returnType: int
    signature: int fork_poller()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/fd.c:1324,1
    - Dst: strcmp
      Src: /src/haproxy/src/fd.c:1327,1
    - Dst: strcmp
      Src: /src/haproxy/src/fd.c:1329,1
    - Dst: memprintf
      Src: /src/haproxy/src/fd.c:1332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1336
    functionName: cfg_parse_tune_fd_edge_triggered
    functionSourceFile: /src/haproxy/src/fd.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_tune_fd_edge_triggered(char **args, int section_type,
      struct proxy *curpx,\n                                      const struct proxy
      *defpx, const char *file, int line,\n                                      char
      **err)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:117,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/applet.c:119,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/applet.c:120,1
    - Dst: sc_ic
      Src: /src/haproxy/src/applet.c:121,1
    - Dst: sc_oc
      Src: /src/haproxy/src/applet.c:122,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:127,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:130,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:134,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/applet.c:135,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/applet.c:135,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:138,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:143,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:144,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:144,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:150,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:152,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:155,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/applet.c:155,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:155,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/applet.c:155,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:156,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/applet.c:156,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:156,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/applet.c:156,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:157,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/applet.c:157,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:157,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/applet.c:157,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:158,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/applet.c:158,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:158,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/applet.c:158,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:163,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:164,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:164,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:165,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:166,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:166,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:169,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:172,1
    - Dst: htxbuf
      Src: /src/haproxy/src/applet.c:184,1
    - Dst: htxbuf
      Src: /src/haproxy/src/applet.c:185,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:187,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/applet.c:188,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/applet.c:189,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:192,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:193,1
    - Dst: b_orig
      Src: /src/haproxy/src/applet.c:193,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/applet.c:194,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:194,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:195,1
    - Dst: b_orig
      Src: /src/haproxy/src/applet.c:195,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/applet.c:196,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:196,1
    - Dst: htxbuf
      Src: /src/haproxy/src/applet.c:202,1
    - Dst: htxbuf
      Src: /src/haproxy/src/applet.c:203,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:205,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/applet.c:206,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/applet.c:207,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:210,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:211,1
    - Dst: b_orig
      Src: /src/haproxy/src/applet.c:211,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/applet.c:212,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:212,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:213,1
    - Dst: b_orig
      Src: /src/haproxy/src/applet.c:213,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/applet.c:214,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:214,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 217
    functionName: applet_trace
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - sc_opposite
    - sc_oc
    - sc_ep_snd_ex
    - htxbuf
    - b_orig
    - chunk_appendf
    - TICKS_TO_MS
    - sc_ep_rcv_ex
    - __sc_strm
    - htx_nbblks
    - appctx_sc
    - sc_ic
    - tick_isset
    - b_data
    - b_head_ofs
    - b_size
    - sc_state_str
    linkageType: ''
    returnType: void
    signature: "void applet_trace(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n\t\t\t const struct ist where, const struct ist func,\n\t\t\t
      const void *a1, const void *a2, const void *a3, const void *a4)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:231,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:233,1
    - Dst: unlikely
      Src: /src/haproxy/src/applet.c:235,1
    - Dst: send_log
      Src: /src/haproxy/src/applet.c:236,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/applet.c:242,1
    - Dst: unlikely
      Src: /src/haproxy/src/applet.c:243,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/applet.c:244,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/applet.c:248,1
    - Dst: task_new_on
      Src: /src/haproxy/src/applet.c:253,1
    - Dst: unlikely
      Src: /src/haproxy/src/applet.c:254,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/applet.c:255,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/applet.c:260,1
    - Dst: unlikely
      Src: /src/haproxy/src/applet.c:261,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/applet.c:262,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:266,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/applet.c:292,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/applet.c:296,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:298,1
    - Dst: task_destroy
      Src: /src/haproxy/src/applet.c:302,1
    - Dst: pool_free
      Src: /src/haproxy/src/applet.c:304,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 3
    argNames:
    - applet
    - sedesc
    - thr
    argTypes:
    - struct applet*
    - struct sedesc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 307
    functionName: appctx_new_on
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 2
    functionsReached:
    - unlikely
    - pool_zalloc
    - se_fl_set
    - _HA_ATOMIC_INC
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_ERROR
    - task_destroy
    - TRACE_ENTER
    - task_new_on
    - MT_LIST_INIT
    - sedesc_new
    - send_log
    - LIST_INIT
    - pool_free
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *appctx_new_on(struct applet *applet, struct sedesc *sedesc,
      int thr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:326,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:326,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:328,1
    - Dst: session_new
      Src: /src/haproxy/src/applet.c:330,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/applet.c:332,1
    - Dst: sc_new_from_endp
      Src: /src/haproxy/src/applet.c:335,1
    - Dst: session_free
      Src: /src/haproxy/src/applet.c:336,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/applet.c:337,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - appctx
    - px
    - input
    argTypes:
    - struct appctx*
    - struct proxy*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 319
    functionDepth: 7
    functionLinenumber: 319
    functionLinenumberEnd: 344
    functionName: appctx_finalize_startup
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 3
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - BUG_ON
    - session_free
    - session_new
    - TRACE_ENTER
    - sc_new_from_endp
    - se_fl_test
    linkageType: ''
    returnType: int
    signature: int appctx_finalize_startup(struct appctx *appctx, struct proxy *px,
      struct buffer *input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:354,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:354,1
    - Dst: stream_free
      Src: /src/haproxy/src/applet.c:355,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/applet.c:355,1
    - Dst: __appctx_free
      Src: /src/haproxy/src/applet.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 359
    functionName: appctx_free_on_early_error
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - stream_free
    - __appctx_free
    - appctx_sc
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void appctx_free_on_early_error(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/applet.c:367,1
    - Dst: __appctx_free
      Src: /src/haproxy/src/applet.c:368,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:374,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/applet.c:375,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 378
    functionName: appctx_free
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 3
    functionsReached:
    - task_wakeup
    - __appctx_free
    - TRACE_DEVEL
    - TRACE_POINT
    - applet_fl_set
    linkageType: ''
    returnType: void
    signature: void appctx_free(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - appctx
    - size
    argTypes:
    - struct appctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: applet_reserve_svcctx
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 26
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void *applet_reserve_svcctx(struct appctx *appctx, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/applet.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: applet_reset_svcctx
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void applet_reset_svcctx(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:413,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:416,1
    - Dst: CALL_APPLET_NO_RET
      Src: /src/haproxy/src/applet.c:419,1
    - Dst: release
      Src: /src/haproxy/src/applet.c:419,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:420,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/applet.c:422,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 425
    functionName: appctx_shut
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - release
    - applet_fl_test
    - TRACE_ENTER
    - applet_fl_set
    - b_dequeue
    - CALL_APPLET_NO_RET
    linkageType: ''
    returnType: void
    signature: void appctx_shut(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:434,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:434,1
    - Dst: b_free
      Src: /src/haproxy/src/applet.c:436,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:438,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:438,1
    - Dst: b_free
      Src: /src/haproxy/src/applet.c:440,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/applet.c:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 448
    functionName: appctx_release_buffers
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - b_data
    - b_size
    - offer_buffers
    - b_free
    linkageType: ''
    returnType: void
    signature: void appctx_release_buffers(struct appctx * appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:459,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:462,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/applet.c:463,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:464,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:465,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:469,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/applet.c:470,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:471,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:472,1
    - Dst: sc_have_buff
      Src: /src/haproxy/src/applet.c:478,1
    - Dst: c_size
      Src: /src/haproxy/src/applet.c:486,1
    - Dst: sc_ic
      Src: /src/haproxy/src/applet.c:486,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/applet.c:486,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/applet.c:486,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/applet.c:490,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 492
    functionName: appctx_buf_available
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - sc_ep_have_ff_data
    - sc_opposite
    - applet_fl_clr
    - TRACE_STATE
    - c_size
    - task_wakeup
    - applet_fl_test
    - appctx_sc
    - sc_ic
    - applet_fl_set
    - sc_have_buff
    linkageType: ''
    returnType: int
    signature: int appctx_buf_available(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/applet.c:496,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/applet.c:500,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:501,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/applet.c:506,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:507,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:507,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/applet.c:507,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/applet.c:507,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:508,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:509,1
    - Dst: b_xfer
      Src: /src/haproxy/src/applet.c:510,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:510,1
    - Dst: htx_xfer
      Src: /src/haproxy/src/applet.c:514,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/applet.c:516,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:519,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:520,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - appctx
    - buf
    - count
    - flags
    argTypes:
    - struct appctx*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 525
    functionName: appctx_htx_rcv_buf
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - htx_to_buf
    - b_data
    - b_size
    - htx_xfer
    - htx_used_space
    - htx_is_empty
    - htx_from_buf
    linkageType: ''
    returnType: size_t
    signature: size_t appctx_htx_rcv_buf(struct appctx *appctx, struct buffer *buf,
      size_t count, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_xfer
      Src: /src/haproxy/src/applet.c:529,1
    - Dst: MIN
      Src: /src/haproxy/src/applet.c:529,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - appctx
    - buf
    - count
    - flags
    argTypes:
    - struct appctx*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: appctx_raw_rcv_buf
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - b_data
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t appctx_raw_rcv_buf(struct appctx *appctx, struct buffer *buf,
      size_t count, unsigned int flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/applet.c:534,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:537,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:539,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/applet.c:542,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:543,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:548,1
    - Dst: CALL_APPLET_WITH_RET
      Src: /src/haproxy/src/applet.c:551,1
    - Dst: rcv_buf
      Src: /src/haproxy/src/applet.c:551,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/applet.c:553,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:555,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:556,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:557,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:561,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:562,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/applet.c:565,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:566,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/applet.c:570,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:571,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:572,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:573,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:575,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:576,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:577,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:579,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:580,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:581,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:584,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/applet.c:585,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:585,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:586,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/applet.c:587,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:587,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:591,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 593
    functionName: appctx_rcv_buf
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - CALL_APPLET_WITH_RET
    - rcv_buf
    - se_fl_set
    - applet_fl_clr
    - TRACE_STATE
    - TRACE_LEAVE
    - applet_fl_test
    - TRACE_ENTER
    - appctx_get_buf
    - b_data
    - __sc_appctx
    - se_fl_clr
    - applet_fl_set
    - se_report_term_evt
    linkageType: ''
    returnType: size_t
    signature: size_t appctx_rcv_buf(struct stconn *sc, struct buffer *buf, size_t
      count, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/applet.c:597,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/applet.c:598,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/applet.c:602,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:603,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:604,1
    - Dst: b_xfer
      Src: /src/haproxy/src/applet.c:605,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:605,1
    - Dst: htx_xfer
      Src: /src/haproxy/src/applet.c:609,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/applet.c:610,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:614,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:615,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:619,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:620,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - appctx
    - buf
    - count
    - flags
    argTypes:
    - struct appctx*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 623
    functionName: appctx_htx_snd_buf
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - htx_to_buf
    - TRACE_STATE
    - b_data
    - htx_xfer
    - applet_fl_set
    - htx_is_empty
    - htx_from_buf
    linkageType: ''
    returnType: size_t
    signature: size_t appctx_htx_snd_buf(struct appctx *appctx, struct buffer *buf,
      size_t count, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_xfer
      Src: /src/haproxy/src/applet.c:629,1
    - Dst: MIN
      Src: /src/haproxy/src/applet.c:629,1
    - Dst: b_room
      Src: /src/haproxy/src/applet.c:629,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:631,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - appctx
    - buf
    - count
    - flags
    argTypes:
    - struct appctx*
    - struct buffer*
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 636
    functionName: appctx_raw_snd_buf
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - TRACE_STATE
    - b_room
    - MIN
    - applet_fl_set
    linkageType: ''
    returnType: size_t
    signature: size_t appctx_raw_snd_buf(struct appctx *appctx, struct buffer *buf,
      size_t count, unsigned flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/applet.c:640,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:643,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:645,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:648,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/applet.c:654,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:655,1
    - Dst: CALL_APPLET_WITH_RET
      Src: /src/haproxy/src/applet.c:659,1
    - Dst: snd_buf
      Src: /src/haproxy/src/applet.c:659,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:661,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/applet.c:662,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:665,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:666,1
    - Dst: applet_fl_get
      Src: /src/haproxy/src/applet.c:666,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/applet.c:667,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:668,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:670,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 672
    functionName: appctx_snd_buf
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - CALL_APPLET_WITH_RET
    - applet_set_error
    - applet_fl_get
    - TRACE_STATE
    - BUG_ON
    - TRACE_LEAVE
    - applet_fl_test
    - snd_buf
    - TRACE_ENTER
    - appctx_get_buf
    - __sc_appctx
    - se_report_term_evt
    linkageType: ''
    returnType: size_t
    signature: size_t appctx_snd_buf(struct stconn *sc, struct buffer *buf, size_t
      count, unsigned int flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/applet.c:676,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:681,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:683,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:686,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:687,1
    - Dst: se_opposite
      Src: /src/haproxy/src/applet.c:691,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:693,1
    - Dst: se_nego_ff
      Src: /src/haproxy/src/applet.c:702,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/applet.c:704,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/applet.c:705,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:706,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/applet.c:710,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:711,1
    - Dst: b_add
      Src: /src/haproxy/src/applet.c:715,1
    - Dst: CALL_APPLET_WITH_RET
      Src: /src/haproxy/src/applet.c:716,1
    - Dst: fastfwd
      Src: /src/haproxy/src/applet.c:716,1
    - Dst: b_sub
      Src: /src/haproxy/src/applet.c:717,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:720,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:723,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:726,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:727,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:731,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:733,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:734,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:735,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:737,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:738,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:739,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:744,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/applet.c:745,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:745,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:746,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/applet.c:747,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:747,1
    - Dst: se_done_ff
      Src: /src/haproxy/src/applet.c:749,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/applet.c:752,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:753,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:757,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 3
    argNames:
    - sc
    - count
    - flags
    argTypes:
    - struct stconn*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 759
    functionName: appctx_fastfwd
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - se_fl_test
    - se_opposite
    - applet_fl_clr
    - fastfwd
    - TRACE_DEVEL
    - se_done_ff
    - applet_fl_set
    - CALL_APPLET_WITH_RET
    - se_fl_set
    - TRACE_LEAVE
    - sc_ep_set
    - b_add
    - b_data
    - __sc_appctx
    - se_report_term_evt
    - sc_ep_clr
    - TRACE_STATE
    - b_sub
    - applet_fl_test
    - se_fl_clr
    - se_nego_ff
    linkageType: ''
    returnType: int
    signature: int appctx_fastfwd(struct stconn *sc, unsigned int count, unsigned
      int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/applet.c:773,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:773,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/applet.c:778,1
    - Dst: vp_peek_ofs
      Src: /src/haproxy/src/applet.c:779,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/applet.c:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - v1
    - v2
    - ofs
    - len
    - delim
    argTypes:
    - void*
    - struct ist
    - struct ist
    - size_t
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 785
    functionName: applet_append_line
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - unlikely
    - vp_peek_ofs
    - b_size
    - chunk_reset
    - applet_putchk
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t applet_append_line(void *ctx, struct ist v1, struct ist v2,
      size_t ofs, size_t len, char delim)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:797,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:799,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:800,1
    - Dst: __appctx_free
      Src: /src/haproxy/src/applet.c:801,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:805,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:809,1
    - Dst: appctx_init
      Src: /src/haproxy/src/applet.c:811,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:812,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/applet.c:813,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:816,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:816,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/applet.c:816,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:817,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:820,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/applet.c:821,1
    - Dst: sc_ic
      Src: /src/haproxy/src/applet.c:823,1
    - Dst: sc_oc
      Src: /src/haproxy/src/applet.c:824,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/applet.c:830,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/applet.c:831,1
    - Dst: sc_alloc_ibuf
      Src: /src/haproxy/src/applet.c:839,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/applet.c:840,1
    - Dst: channel_check_idletimer
      Src: /src/haproxy/src/applet.c:842,1
    - Dst: sc_ep_fwd_kip
      Src: /src/haproxy/src/applet.c:844,1
    - Dst: applet_output_data
      Src: /src/haproxy/src/applet.c:846,1
    - Dst: co_data
      Src: /src/haproxy/src/applet.c:847,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:852,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:852,1
    - Dst: CALL_APPLET_NO_RET
      Src: /src/haproxy/src/applet.c:853,1
    - Dst: fct
      Src: /src/haproxy/src/applet.c:853,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/applet.c:855,1
    - Dst: co_data
      Src: /src/haproxy/src/applet.c:860,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/applet.c:862,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/applet.c:863,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/applet.c:868,1
    - Dst: applet_output_data
      Src: /src/haproxy/src/applet.c:871,1
    - Dst: channel_check_xfer
      Src: /src/haproxy/src/applet.c:873,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/applet.c:874,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/applet.c:878,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/applet.c:879,1
    - Dst: co_data
      Src: /src/haproxy/src/applet.c:882,1
    - Dst: sc_ep_report_send_activity
      Src: /src/haproxy/src/applet.c:884,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/src/applet.c:887,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:890,1
    - Dst: sc_ib
      Src: /src/haproxy/src/applet.c:890,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:891,1
    - Dst: sc_ib
      Src: /src/haproxy/src/applet.c:891,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:891,1
    - Dst: sc_ib
      Src: /src/haproxy/src/applet.c:891,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:892,1
    - Dst: sc_ob
      Src: /src/haproxy/src/applet.c:892,1
    - Dst: sc_is_send_allowed
      Src: /src/haproxy/src/applet.c:892,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:893,1
    - Dst: sc_ib
      Src: /src/haproxy/src/applet.c:893,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:893,1
    - Dst: sc_ob
      Src: /src/haproxy/src/applet.c:893,1
    - Dst: sc_oc
      Src: /src/haproxy/src/applet.c:894,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/applet.c:895,1
    - Dst: stream_dump_and_crash
      Src: /src/haproxy/src/applet.c:897,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/applet.c:897,1
    - Dst: sc_applet_process
      Src: /src/haproxy/src/applet.c:900,1
    - Dst: channel_release_buffer
      Src: /src/haproxy/src/applet.c:901,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:902,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 63
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 904
    functionName: task_run_applet
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - sc_oc
    - applet_need_more_data
    - sc_ep_report_read_activity
    - __appctx_free
    - co_data
    - TRACE_ENTER
    - channel_check_idletimer
    - appctx_sc
    - se_fl_test
    - applet_have_no_more_data
    - sc_alloc_ibuf
    - TRACE_DEVEL
    - appctx_free_on_early_error
    - sc_ep_report_send_activity
    - appctx_strm
    - stream_dump_and_crash
    - TRACE_LEAVE
    - applet_have_more_data
    - sc_ep_set
    - b_data
    - sc_ep_report_blocked_send
    - b_size
    - fct
    - CALL_APPLET_NO_RET
    - update_freq_ctr
    - sc_ep_fwd_kip
    - sc_applet_process
    - sc_ib
    - sc_opposite
    - BUG_ON
    - channel_check_xfer
    - channel_release_buffer
    - applet_fl_test
    - sc_waiting_room
    - appctx_init
    - sc_have_room
    - TRACE_POINT
    - applet_output_data
    - sc_ic
    - sc_ob
    - read_freq_ctr
    - channel_recv_max
    - sc_is_send_allowed
    linkageType: ''
    returnType: struct task
    signature: struct task *task_run_applet(struct task *t, void *context, unsigned
      int state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:915,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:917,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:918,1
    - Dst: __appctx_free
      Src: /src/haproxy/src/applet.c:919,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:923,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:927,1
    - Dst: appctx_init
      Src: /src/haproxy/src/applet.c:929,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:930,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/applet.c:931,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:934,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:934,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/applet.c:934,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:935,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:938,1
    - Dst: sc_applet_sync_send
      Src: /src/haproxy/src/applet.c:940,1
    - Dst: sc_oc
      Src: /src/haproxy/src/applet.c:941,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/applet.c:947,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/applet.c:948,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:953,1
    - Dst: CALL_APPLET_NO_RET
      Src: /src/haproxy/src/applet.c:954,1
    - Dst: fct
      Src: /src/haproxy/src/applet.c:954,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/applet.c:956,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:958,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:958,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/applet.c:959,1
    - Dst: sc_applet_sync_recv
      Src: /src/haproxy/src/applet.c:961,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:963,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:967,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:967,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:968,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:969,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:971,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:971,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:972,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:973,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:975,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:975,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:976,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:977,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/applet.c:982,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/applet.c:983,1
    - Dst: sc_is_send_allowed
      Src: /src/haproxy/src/applet.c:987,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/applet.c:987,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/applet.c:988,1
    - Dst: stream_dump_and_crash
      Src: /src/haproxy/src/applet.c:990,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/applet.c:990,1
    - Dst: sc_applet_process
      Src: /src/haproxy/src/applet.c:993,1
    - Dst: appctx_release_buffers
      Src: /src/haproxy/src/applet.c:994,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:995,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 997
    functionName: task_process_applet
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - sc_oc
    - applet_need_more_data
    - __appctx_free
    - TRACE_ENTER
    - sc_applet_sync_recv
    - appctx_sc
    - appctx_release_buffers
    - sc_is_recv_allowed
    - se_fl_test
    - applet_have_no_more_data
    - TRACE_DEVEL
    - appctx_free_on_early_error
    - appctx_strm
    - se_fl_set
    - stream_dump_and_crash
    - TRACE_LEAVE
    - applet_have_more_data
    - sc_ep_set
    - b_data
    - fct
    - CALL_APPLET_NO_RET
    - update_freq_ctr
    - sc_applet_process
    - TRACE_STATE
    - BUG_ON
    - applet_fl_test
    - sc_waiting_room
    - appctx_init
    - TRACE_POINT
    - read_freq_ctr
    - sc_is_send_allowed
    - sc_applet_sync_send
    linkageType: ''
    returnType: struct task
    signature: struct task *task_process_applet(struct task *t, void *context, unsigned
      int state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/applet.c:1004,1
    - Dst: strcmp
      Src: /src/haproxy/src/applet.c:1007,1
    - Dst: strcmp
      Src: /src/haproxy/src/applet.c:1009,1
    - Dst: memprintf
      Src: /src/haproxy/src/applet.c:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1016
    functionName: cfg_parse_applet_zero_copy_fwd
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_applet_zero_copy_fwd(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t  const struct proxy *defpx, const char *file,
      int line,\n\t\t\t\t\t  char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:33,1
    - Dst: branches::branches
      Src: /src/haproxy/src/eb32sctree.c:33,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:34,1
    - Dst: branches::branches
      Src: /src/haproxy/src/eb32sctree.c:34,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:35,1
    - Dst: branches::branches
      Src: /src/haproxy/src/eb32sctree.c:35,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32sctree.c:38,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:41,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:41,1
    - Dst: unlikely
      Src: /src/haproxy/src/eb32sctree.c:44,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:50,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:54,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:54,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:59,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:68,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:68,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:70,1
    - Dst: branches::branches
      Src: /src/haproxy/src/eb32sctree.c:70,1
    - Dst: branches::branches
      Src: /src/haproxy/src/eb32sctree.c:75,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:75,1
    - Dst: branches::branches
      Src: /src/haproxy/src/eb32sctree.c:76,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:77,1
    - Dst: struct eb32sc_node::struct eb32sc_node
      Src: /src/haproxy/src/eb32sctree.c:77,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:78,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32sctree.c:88,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:89,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:89,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:90,1
    - Dst: branches::branches
      Src: /src/haproxy/src/eb32sctree.c:90,1
    - Dst: branches::branches
      Src: /src/haproxy/src/eb32sctree.c:95,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:95,1
    - Dst: branches::branches
      Src: /src/haproxy/src/eb32sctree.c:96,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:97,1
    - Dst: struct eb32sc_node::struct eb32sc_node
      Src: /src/haproxy/src/eb32sctree.c:97,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 3
    argNames:
    - sub
    - new
    - scope
    argTypes:
    - struct eb_node*
    - struct eb_node*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 101
    functionName: eb32sc_insert_dup
    functionSourceFile: /src/haproxy/src/eb32sctree.c
    functionUses: 0
    functionsReached:
    - eb_gettag
    - unlikely
    - branches::branches
    - container_of
    - eb_dotag
    - eb_untag
    - struct eb32sc_node::struct eb32sc_node
    linkageType: ''
    returnType: struct eb32sc_node
    signature: struct eb32sc_node *eb32sc_insert_dup(struct eb_node *sub, struct eb_node
      *new, unsigned long scope)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/eb32sctree.c:120,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:122,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:122,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:123,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:123,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:124,1
    - Dst: key::key
      Src: /src/haproxy/src/eb32sctree.c:141,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32sctree.c:144,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:146,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:146,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:148,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:155,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:155,1
    - Dst: key::key
      Src: /src/haproxy/src/eb32sctree.c:169,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:174,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:186,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:186,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:187,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:187,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:188,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:188,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:198,1
    - Dst: flsnz
      Src: /src/haproxy/src/eb32sctree.c:198,1
    - Dst: key::key
      Src: /src/haproxy/src/eb32sctree.c:198,1
    - Dst: key::key
      Src: /src/haproxy/src/eb32sctree.c:202,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:203,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32sctree.c:205,1
    - Dst: eb32sc_insert_dup
      Src: /src/haproxy/src/eb32sctree.c:207,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:207,1
    - Dst: key::key
      Src: /src/haproxy/src/eb32sctree.c:212,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:213,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:214,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:215,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:219,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:220,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:221,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:231,1
    - Dst: node::node
      Src: /src/haproxy/src/eb32sctree.c:231,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 3
    argNames:
    - root
    - new
    - scope
    argTypes:
    - struct eb_root*
    - struct eb32sc_node*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 233
    functionName: eb32sc_insert
    functionSourceFile: /src/haproxy/src/eb32sctree.c
    functionUses: 0
    functionsReached:
    - unlikely
    - eb_gettag
    - node::node
    - container_of
    - key::key
    - eb_dotag
    - flsnz
    - eb_untag
    - eb32sc_insert_dup
    linkageType: ''
    returnType: struct eb32sc_node
    signature: struct eb32sc_node *eb32sc_insert(struct eb_root *root, struct eb32sc_node
      *new, unsigned long scope)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/eb32sctree.c:245,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32sctree.c:249,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:254,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:254,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:262,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:262,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:275,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:287,1
    - Dst: eb32sc_next_with_parent
      Src: /src/haproxy/src/eb32sctree.c:299,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 3
    argNames:
    - root
    - x
    - scope
    argTypes:
    - struct eb_root*
    - u32
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 300
    functionName: eb32sc_lookup_ge
    functionSourceFile: /src/haproxy/src/eb32sctree.c
    functionUses: 0
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - eb32sc_next_with_parent
    - eb_dotag
    - eb_untag
    linkageType: ''
    returnType: struct eb32sc_node
    signature: struct eb32sc_node *eb32sc_lookup_ge(struct eb_root *root, u32 x, unsigned
      long scope)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/eb32sctree.c:313,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32sctree.c:317,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:322,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:322,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:330,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:330,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:343,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:355,1
    - Dst: eb32sc_next_with_parent
      Src: /src/haproxy/src/eb32sctree.c:367,1
    - Dst: eb32sc_walk_down_left
      Src: /src/haproxy/src/eb32sctree.c:369,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 3
    argNames:
    - root
    - x
    - scope
    argTypes:
    - struct eb_root*
    - u32
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 372
    functionName: eb32sc_lookup_ge_or_first
    functionSourceFile: /src/haproxy/src/eb32sctree.c
    functionUses: 0
    functionsReached:
    - unlikely
    - eb_gettag
    - eb32sc_walk_down_left
    - container_of
    - eb32sc_next_with_parent
    - eb_dotag
    - eb_untag
    linkageType: ''
    returnType: struct eb32sc_node
    signature: struct eb32sc_node *eb32sc_lookup_ge_or_first(struct eb_root *root,
      u32 x, unsigned long scope)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32sctree.c:389,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/eb32sctree.c:390,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:390,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/eb32sctree.c:397,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32sctree.c:408,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:409,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32sctree.c:412,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/eb32sctree.c:415,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:415,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:416,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/eb32sctree.c:418,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:418,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:419,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32sctree.c:449,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:450,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:451,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32sctree.c:456,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/eb32sctree.c:457,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:457,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:458,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:459,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:459,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/eb32sctree.c:461,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:461,1
    - Dst: eb_dotag
      Src: /src/haproxy/src/eb32sctree.c:462,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32sctree.c:463,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32sctree.c:463,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 1
    argNames:
    - eb32
    argTypes:
    - struct eb32sc_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 472
    functionName: eb32sc_delete
    functionSourceFile: /src/haproxy/src/eb32sctree.c
    functionUses: 0
    functionsReached:
    - eb_gettag
    - container_of
    - eb_root_to_node
    - eb_dotag
    - eb_clrtag
    - eb_untag
    linkageType: ''
    returnType: void
    signature: void eb32sc_delete(struct eb32sc_node *eb32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: act_add_list
      Src: /src/haproxy/src/http_rules.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: http_req_keywords_register
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 1
    functionsReached:
    - act_add_list
    linkageType: ''
    returnType: void
    signature: void http_req_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: act_add_list
      Src: /src/haproxy/src/http_rules.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: http_res_keywords_register
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 1
    functionsReached:
    - act_add_list
    linkageType: ''
    returnType: void
    signature: void http_res_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: act_add_list
      Src: /src/haproxy/src/http_rules.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: http_after_res_keywords_register
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 1
    functionsReached:
    - act_add_list
    linkageType: ''
    returnType: void
    signature: void http_after_res_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: action_lookup
      Src: /src/haproxy/src/http_rules.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: action_http_req_custom
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 1
    functionsReached:
    - action_lookup
    linkageType: ''
    returnType: struct action_kw
    signature: struct action_kw *action_http_req_custom(const char *kw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: action_lookup
      Src: /src/haproxy/src/http_rules.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: action_http_res_custom
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 1
    functionsReached:
    - action_lookup
    linkageType: ''
    returnType: struct action_kw
    signature: struct action_kw *action_http_res_custom(const char *kw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: action_lookup
      Src: /src/haproxy/src/http_rules.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: action_http_after_res_custom
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 1
    functionsReached:
    - action_lookup
    linkageType: ''
    returnType: struct action_kw
    signature: struct action_kw *action_http_after_res_custom(const char *kw)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: new_act_rule
      Src: /src/haproxy/src/http_rules.c:99,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:101,1
    - Dst: action_http_req_custom
      Src: /src/haproxy/src/http_rules.c:105,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:114,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/http_rules.c:118,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/http_rules.c:121,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:122,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/http_rules.c:123,1
    - Dst: free
      Src: /src/haproxy/src/http_rules.c:124,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_rules.c:128,1
    - Dst: free
      Src: /src/haproxy/src/http_rules.c:129,1
    - Dst: action_suggest
      Src: /src/haproxy/src/http_rules.c:133,1
    - Dst: action_build_list
      Src: /src/haproxy/src/http_rules.c:135,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:136,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:145,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:145,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/http_rules.c:149,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:150,1
    - Dst: free
      Src: /src/haproxy/src/http_rules.c:152,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:158,1
    - Dst: free_act_rule
      Src: /src/haproxy/src/http_rules.c:166,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 4
    argNames:
    - args
    - file
    - linenum
    - proxy
    argTypes:
    - char**
    - char*
    - int
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 93
    functionDepth: 6
    functionLinenumber: 93
    functionLinenumberEnd: 169
    functionName: parse_http_req_cond
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 0
    functionsReached:
    - free_act_rule
    - new_act_rule
    - proxy_type_str
    - struct action_kw*::parse
    - action_suggest
    - strcmp
    - free
    - mark_tainted
    - action_http_req_custom
    - action_build_list
    - ha_alert
    - ha_warning
    - build_acl_cond
    linkageType: ''
    returnType: struct act_rule
    signature: struct act_rule *parse_http_req_cond(const char **args, const char
      *file, int linenum, struct proxy *proxy)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: new_act_rule
      Src: /src/haproxy/src/http_rules.c:178,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:180,1
    - Dst: action_http_res_custom
      Src: /src/haproxy/src/http_rules.c:184,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:193,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/http_rules.c:197,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/http_rules.c:200,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:201,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/http_rules.c:202,1
    - Dst: free
      Src: /src/haproxy/src/http_rules.c:203,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_rules.c:207,1
    - Dst: free
      Src: /src/haproxy/src/http_rules.c:208,1
    - Dst: action_suggest
      Src: /src/haproxy/src/http_rules.c:212,1
    - Dst: action_build_list
      Src: /src/haproxy/src/http_rules.c:214,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:215,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:224,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:224,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/http_rules.c:228,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:229,1
    - Dst: free
      Src: /src/haproxy/src/http_rules.c:231,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:237,1
    - Dst: free_act_rule
      Src: /src/haproxy/src/http_rules.c:245,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 4
    argNames:
    - args
    - file
    - linenum
    - proxy
    argTypes:
    - char**
    - char*
    - int
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 172
    functionDepth: 6
    functionLinenumber: 172
    functionLinenumberEnd: 248
    functionName: parse_http_res_cond
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 0
    functionsReached:
    - free_act_rule
    - new_act_rule
    - proxy_type_str
    - struct action_kw*::parse
    - action_suggest
    - strcmp
    - action_http_res_custom
    - free
    - mark_tainted
    - action_build_list
    - ha_alert
    - ha_warning
    - build_acl_cond
    linkageType: ''
    returnType: struct act_rule
    signature: struct act_rule *parse_http_res_cond(const char **args, const char
      *file, int linenum, struct proxy *proxy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: new_act_rule
      Src: /src/haproxy/src/http_rules.c:258,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:260,1
    - Dst: action_http_after_res_custom
      Src: /src/haproxy/src/http_rules.c:264,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/http_rules.c:270,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:271,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/http_rules.c:272,1
    - Dst: free
      Src: /src/haproxy/src/http_rules.c:273,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_rules.c:277,1
    - Dst: free
      Src: /src/haproxy/src/http_rules.c:278,1
    - Dst: action_suggest
      Src: /src/haproxy/src/http_rules.c:282,1
    - Dst: action_build_list
      Src: /src/haproxy/src/http_rules.c:284,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:285,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:294,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:294,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/http_rules.c:298,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:299,1
    - Dst: free
      Src: /src/haproxy/src/http_rules.c:301,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_rules.c:307,1
    - Dst: free_act_rule
      Src: /src/haproxy/src/http_rules.c:315,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - args
    - file
    - linenum
    - proxy
    argTypes:
    - char**
    - char*
    - int
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 252
    functionDepth: 6
    functionLinenumber: 252
    functionLinenumberEnd: 318
    functionName: parse_http_after_res_cond
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 0
    functionsReached:
    - free_act_rule
    - new_act_rule
    - proxy_type_str
    - struct action_kw*::parse
    - action_suggest
    - strcmp
    - free
    - action_build_list
    - ha_alert
    - build_acl_cond
    - ha_warning
    - action_http_after_res_custom
    linkageType: ''
    returnType: struct act_rule
    signature: struct act_rule *parse_http_after_res_cond(const char **args, const
      char *file, int linenum, struct proxy *proxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_acl_cond
      Src: /src/haproxy/src/http_rules.c:323,1
    - Dst: free
      Src: /src/haproxy/src/http_rules.c:324,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_rules.c:326,1
    - Dst: istfree
      Src: /src/haproxy/src/http_rules.c:328,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_rules.c:329,1
    - Dst: free
      Src: /src/haproxy/src/http_rules.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rdr
    argTypes:
    - struct redirect_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 331
    functionName: http_free_redirect_rule
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 0
    functionsReached:
    - istfree
    - lf_expr_deinit
    - free_acl_cond
    - free
    linkageType: ''
    returnType: void
    signature: void http_free_redirect_rule(struct redirect_rule *rdr)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:354,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:362,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:369,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:377,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:385,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:393,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:401,1
    - Dst: atol
      Src: /src/haproxy/src/http_rules.c:406,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_rules.c:408,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:414,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:417,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:420,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:423,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:426,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_rules.c:427,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/http_rules.c:428,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_rules.c:430,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_rules.c:436,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_rules.c:446,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_rules.c:451,1
    - Dst: calloc
      Src: /src/haproxy/src/http_rules.c:455,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_rules.c:459,1
    - Dst: strdup
      Src: /src/haproxy/src/http_rules.c:463,1
    - Dst: strlen
      Src: /src/haproxy/src/http_rules.c:466,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_rules.c:482,1
    - Dst: strlen
      Src: /src/haproxy/src/http_rules.c:492,1
    - Dst: istalloc
      Src: /src/haproxy/src/http_rules.c:494,1
    - Dst: isttest
      Src: /src/haproxy/src/http_rules.c:495,1
    - Dst: istcpy
      Src: /src/haproxy/src/http_rules.c:497,1
    - Dst: ist2
      Src: /src/haproxy/src/http_rules.c:497,1
    - Dst: istcat
      Src: /src/haproxy/src/http_rules.c:498,1
    - Dst: ist2
      Src: /src/haproxy/src/http_rules.c:498,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_rules.c:503,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/http_rules.c:510,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/http_rules.c:511,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_rules.c:512,1
    - Dst: istalloc
      Src: /src/haproxy/src/http_rules.c:519,1
    - Dst: isttest
      Src: /src/haproxy/src/http_rules.c:520,1
    - Dst: istcpy
      Src: /src/haproxy/src/http_rules.c:522,1
    - Dst: ist2
      Src: /src/haproxy/src/http_rules.c:522,1
    - Dst: istcat
      Src: /src/haproxy/src/http_rules.c:523,1
    - Dst: ist2
      Src: /src/haproxy/src/http_rules.c:523,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/http_rules.c:529,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_rules.c:533,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_rules.c:536,1
    - Dst: http_free_redirect_rule
      Src: /src/haproxy/src/http_rules.c:539,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/http_rules.c:542,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 179
    argCount: 7
    argNames:
    - file
    - linenum
    - curproxy
    - args
    - errmsg
    - use_fmt
    - dir
    argTypes:
    - char*
    - int
    - struct proxy*
    - char**
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 338
    functionDepth: 6
    functionLinenumber: 338
    functionLinenumberEnd: 546
    functionName: http_parse_redirect_rule
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free_acl_cond
    - LIST_INIT
    - lf_expr_init
    - parse_logformat_string
    - ist2
    - chunk_memcpy
    - atol
    - chunk_strcat
    - strcmp
    - calloc
    - istalloc
    - istcpy
    - build_acl_cond
    - strdup
    - http_free_redirect_rule
    - istcat
    - strlen
    - isttest
    linkageType: ''
    returnType: struct redirect_rule
    signature: "struct redirect_rule *http_parse_redirect_rule(const char *file, int
      linenum, struct proxy *curproxy,\n                                               const
      char **args, char **errmsg, int use_fmt, int dir)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: b_alloc
      Src: /src/haproxy/src/http_client.c:82,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:90,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_client.c:92,1
    - Dst: isttest
      Src: /src/haproxy/src/http_client.c:96,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_client.c:99,1
    - Dst: isttest
      Src: /src/haproxy/src/http_client.c:107,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_client.c:110,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:110,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_client.c:112,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:112,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_client.c:114,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:114,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_client.c:117,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_client.c:123,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:123,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:123,1
    - Dst: http_update_host
      Src: /src/haproxy/src/http_client.c:125,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_client.c:130,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:130,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:130,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_client.c:135,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:135,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:135,1
    - Dst: isttest
      Src: /src/haproxy/src/http_client.c:139,1
    - Dst: istlen
      Src: /src/haproxy/src/http_client.c:139,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_client.c:142,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:142,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:142,1
    - Dst: ultoa
      Src: /src/haproxy/src/http_client.c:142,1
    - Dst: istlen
      Src: /src/haproxy/src/http_client.c:142,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_client.c:147,1
    - Dst: isttest
      Src: /src/haproxy/src/http_client.c:150,1
    - Dst: istlen
      Src: /src/haproxy/src/http_client.c:150,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/http_client.c:153,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:162,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 75
    argCount: 5
    argNames:
    - hc
    - url
    - meth
    - hdrs
    - payload
    argTypes:
    - struct httpclient*
    - struct ist
    - enum http_meth_t
    - struct http_hdr*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 168
    functionName: httpclient_req_gen
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 3
    functionsReached:
    - b_alloc
    - ist
    - isteqi
    - htx_from_buf
    - http_update_host
    - htx_to_buf
    - htx_add_header
    - htx_add_data_atonce
    - htx_add_stline
    - ultoa
    - htx_add_endof
    - istlen
    - isttest
    linkageType: ''
    returnType: int
    signature: int httpclient_req_gen(struct httpclient *hc, const struct ist url,
      enum http_meth_t meth, const struct http_hdr *hdrs, const struct ist payload)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_room
      Src: /src/haproxy/src/http_client.c:178,1
    - Dst: b_force_xfer
      Src: /src/haproxy/src/http_client.c:181,1
    - Dst: MIN
      Src: /src/haproxy/src/http_client.c:181,1
    - Dst: b_data
      Src: /src/haproxy/src/http_client.c:181,1
    - Dst: b_data
      Src: /src/haproxy/src/http_client.c:184,1
    - Dst: b_free
      Src: /src/haproxy/src/http_client.c:185,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/http_client.c:187,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/http_client.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - hc
    - dst
    argTypes:
    - struct httpclient*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 192
    functionName: httpclient_res_xfer
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 2
    functionsReached:
    - b_force_xfer
    - appctx_wakeup
    - b_free
    - b_room
    - b_data
    - MIN
    - applet_will_consume
    linkageType: ''
    returnType: int
    signature: int httpclient_res_xfer(struct httpclient *hc, struct buffer *dst)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/http_client.c:211,1
    - Dst: b_alloc
      Src: /src/haproxy/src/http_client.c:215,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_client.c:218,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/http_client.c:221,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/http_client.c:224,1
    - Dst: istlen
      Src: /src/haproxy/src/http_client.c:227,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:234,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_client.c:235,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:240,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - hc
    - src
    - end
    argTypes:
    - struct httpclient*
    - struct ist
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 245
    functionName: httpclient_req_xfer
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 1
    functionsReached:
    - b_alloc
    - htx_to_buf
    - appctx_wakeup
    - htx_add_data
    - htx_add_endof
    - istlen
    - htx_is_empty
    - htx_from_buf
    linkageType: ''
    returnType: int
    signature: int httpclient_req_xfer(struct httpclient *hc, struct ist src, int
      end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hc
    - timeout
    argTypes:
    - struct httpclient*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: httpclient_set_timeout
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void httpclient_set_timeout(struct httpclient *hc, int timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_free
      Src: /src/haproxy/src/http_client.c:263,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/http_client.c:265,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:269,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:270,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/http_client.c:274,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - hc
    - dst
    argTypes:
    - struct httpclient*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 280
    functionName: httpclient_set_dst
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 1
    functionsReached:
    - sockaddr_alloc
    - free
    - ha_alert
    - str2sa_range
    - sockaddr_free
    linkageType: ''
    returnType: int
    signature: int httpclient_set_dst(struct httpclient *hc, const char *dst)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_client.c:294,1
    - Dst: http_parse_scheme
      Src: /src/haproxy/src/http_client.c:295,1
    - Dst: isttest
      Src: /src/haproxy/src/http_client.c:296,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_client.c:300,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:300,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_client.c:303,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:303,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/http_client.c:308,1
    - Dst: isttest
      Src: /src/haproxy/src/http_client.c:309,1
    - Dst: istend
      Src: /src/haproxy/src/http_client.c:312,1
    - Dst: istptr
      Src: /src/haproxy/src/http_client.c:315,1
    - Dst: isdigit
      Src: /src/haproxy/src/http_client.c:315,1
    - Dst: ist2
      Src: /src/haproxy/src/http_client.c:319,1
    - Dst: istptr
      Src: /src/haproxy/src/http_client.c:319,1
    - Dst: istptr
      Src: /src/haproxy/src/http_client.c:319,1
    - Dst: istnext
      Src: /src/haproxy/src/http_client.c:320,1
    - Dst: ist2
      Src: /src/haproxy/src/http_client.c:320,1
    - Dst: ist2str
      Src: /src/haproxy/src/http_client.c:321,1
    - Dst: atoi
      Src: /src/haproxy/src/http_client.c:322,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - url
    - scheme
    - host
    - port
    argTypes:
    - struct ist
    - enum http_scheme*
    - struct ist*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 335
    functionName: httpclient_spliturl
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - isteqi
    - http_parse_scheme
    - ist
    - ist2
    - istend
    - http_parse_authority
    - http_uri_parser_init
    - isdigit
    - ist2str
    - istnext
    - istptr
    - atoi
    - isttest
    linkageType: ''
    returnType: int
    signature: "int httpclient_spliturl(struct ist url, enum http_scheme *scheme,\n
      \                              struct ist *host, int *port)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_started
      Src: /src/haproxy/src/http_client.c:350,1
    - Dst: httpclient_ended
      Src: /src/haproxy/src/http_client.c:350,1
    - Dst: appctx_new_here
      Src: /src/haproxy/src/http_client.c:355,1
    - Dst: appctx_init
      Src: /src/haproxy/src/http_client.c:361,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:362,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/http_client.c:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 373
    functionName: httpclient_start
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 3
    functionsReached:
    - httpclient_ended
    - appctx_free_on_early_error
    - appctx_init
    - ha_alert
    - httpclient_started
    - appctx_new_here
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *httpclient_start(struct httpclient *hc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/http_client.c:387,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/http_client.c:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 396
    functionName: httpclient_stop_and_destroy
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 5
    functionsReached:
    - httpclient_destroy
    - appctx_wakeup
    linkageType: ''
    returnType: void
    signature: void httpclient_stop_and_destroy(struct httpclient *hc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_client.c:408,1
    - Dst: httpclient_started
      Src: /src/haproxy/src/http_client.c:408,1
    - Dst: httpclient_ended
      Src: /src/haproxy/src/http_client.c:408,1
    - Dst: istfree
      Src: /src/haproxy/src/http_client.c:411,1
    - Dst: b_free
      Src: /src/haproxy/src/http_client.c:412,1
    - Dst: istfree
      Src: /src/haproxy/src/http_client.c:416,1
    - Dst: istfree
      Src: /src/haproxy/src/http_client.c:417,1
    - Dst: isttest
      Src: /src/haproxy/src/http_client.c:419,1
    - Dst: istfree
      Src: /src/haproxy/src/http_client.c:420,1
    - Dst: istfree
      Src: /src/haproxy/src/http_client.c:421,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_client.c:424,1
    - Dst: b_free
      Src: /src/haproxy/src/http_client.c:427,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/http_client.c:428,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:430,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 433
    functionName: httpclient_destroy
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 2
    functionsReached:
    - httpclient_ended
    - BUG_ON
    - ha_free
    - istfree
    - b_free
    - free
    - httpclient_started
    - sockaddr_free
    - isttest
    linkageType: ''
    returnType: void
    signature: void httpclient_destroy(struct httpclient *hc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/http_client.c:446,1
    - Dst: istdup
      Src: /src/haproxy/src/http_client.c:453,1
    - Dst: httpclient_set_proxy
      Src: /src/haproxy/src/http_client.c:455,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/http_client.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - caller
    - meth
    - url
    argTypes:
    - void*
    - enum http_meth_t
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 462
    functionName: httpclient_new
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 2
    functionsReached:
    - calloc
    - httpclient_destroy
    - httpclient_set_proxy
    - istdup
    linkageType: ''
    returnType: struct httpclient
    signature: struct httpclient *httpclient_new(void *caller, enum http_meth_t meth,
      struct ist url)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_new
      Src: /src/haproxy/src/http_client.c:476,1
    - Dst: httpclient_set_proxy
      Src: /src/haproxy/src/http_client.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - px
    - caller
    - meth
    - url
    argTypes:
    - struct proxy*
    - void*
    - enum http_meth_t
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 469
    functionDepth: 5
    functionLinenumber: 469
    functionLinenumberEnd: 483
    functionName: httpclient_new_from_proxy
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 1
    functionsReached:
    - httpclient_set_proxy
    - httpclient_new
    linkageType: ''
    returnType: struct httpclient
    signature: struct httpclient *httpclient_new_from_proxy(struct proxy *px, void
      *caller, enum http_meth_t meth, struct ist url)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xprt_get
      Src: /src/haproxy/src/http_client.c:498,1
    - Dst: xprt_get
      Src: /src/haproxy/src/http_client.c:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - hc
    - px
    argTypes:
    - struct httpclient*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 508
    functionName: httpclient_set_proxy
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 2
    functionsReached:
    - xprt_get
    linkageType: ''
    returnType: int
    signature: int httpclient_set_proxy(struct httpclient *hc, struct proxy *px)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/http_client.c:520,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/http_client.c:520,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/http_client.c:521,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/http_client.c:537,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:539,1
    - Dst: b_xfer
      Src: /src/haproxy/src/http_client.c:546,1
    - Dst: b_data
      Src: /src/haproxy/src/http_client.c:546,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:548,1
    - Dst: b_data
      Src: /src/haproxy/src/http_client.c:552,1
    - Dst: b_free
      Src: /src/haproxy/src/http_client.c:553,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:555,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:556,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:557,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/http_client.c:563,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:567,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/http_client.c:572,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:574,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/http_client.c:582,1
    - Dst: b_reset
      Src: /src/haproxy/src/http_client.c:587,1
    - Dst: struct httpclient*::ops::req_payload
      Src: /src/haproxy/src/http_client.c:594,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:596,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:597,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_client.c:600,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:601,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:605,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:606,1
    - Dst: b_xfer
      Src: /src/haproxy/src/http_client.c:607,1
    - Dst: b_data
      Src: /src/haproxy/src/http_client.c:607,1
    - Dst: htx_xfer
      Src: /src/haproxy/src/http_client.c:609,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/http_client.c:609,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:610,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:615,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:618,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:619,1
    - Dst: b_data
      Src: /src/haproxy/src/http_client.c:622,1
    - Dst: b_free
      Src: /src/haproxy/src/http_client.c:623,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:626,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/http_client.c:631,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:635,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/http_client.c:639,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/http_client.c:640,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/http_client.c:641,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:642,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:654,1
    - Dst: htx_get_head_type
      Src: /src/haproxy/src/http_client.c:655,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/http_client.c:657,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_client.c:657,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_client.c:658,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_client.c:667,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:669,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:671,1
    - Dst: istdup
      Src: /src/haproxy/src/http_client.c:680,1
    - Dst: htx_sl_res_vsn
      Src: /src/haproxy/src/http_client.c:680,1
    - Dst: istdup
      Src: /src/haproxy/src/http_client.c:681,1
    - Dst: htx_sl_res_reason
      Src: /src/haproxy/src/http_client.c:681,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:682,1
    - Dst: struct httpclient*::ops::res_stline
      Src: /src/haproxy/src/http_client.c:686,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:690,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/http_client.c:695,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:696,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/http_client.c:700,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/http_client.c:701,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/http_client.c:702,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:703,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:707,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_client.c:708,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:708,1
    - Dst: b_alloc
      Src: /src/haproxy/src/http_client.c:714,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/http_client.c:715,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:718,1
    - Dst: htx_xfer
      Src: /src/haproxy/src/http_client.c:721,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/http_client.c:721,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:722,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/http_client.c:726,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:731,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_client.c:742,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_client.c:744,1
    - Dst: istdup
      Src: /src/haproxy/src/http_client.c:747,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_client.c:747,1
    - Dst: istdup
      Src: /src/haproxy/src/http_client.c:748,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_client.c:748,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:755,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:758,1
    - Dst: calloc
      Src: /src/haproxy/src/http_client.c:763,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_client.c:766,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/http_client.c:767,1
    - Dst: struct httpclient*::ops::res_headers
      Src: /src/haproxy/src/http_client.c:772,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:776,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:781,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/http_client.c:785,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/http_client.c:786,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/http_client.c:787,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:788,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:796,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:797,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:798,1
    - Dst: b_alloc
      Src: /src/haproxy/src/http_client.c:802,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/http_client.c:803,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:811,1
    - Dst: htx_xfer
      Src: /src/haproxy/src/http_client.c:813,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/http_client.c:813,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/http_client.c:814,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/http_client.c:816,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:818,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:821,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_client.c:825,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_client.c:827,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_client.c:832,1
    - Dst: b_room
      Src: /src/haproxy/src/http_client.c:833,1
    - Dst: MIN
      Src: /src/haproxy/src/http_client.c:836,1
    - Dst: __b_putblk
      Src: /src/haproxy/src/http_client.c:837,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:840,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/http_client.c:842,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/http_client.c:844,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:849,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/http_client.c:854,1
    - Dst: struct httpclient*::ops::res_payload
      Src: /src/haproxy/src/http_client.c:858,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:861,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:863,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:867,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:868,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/http_client.c:872,1
    - Dst: b_is_null
      Src: /src/haproxy/src/http_client.c:878,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/http_client.c:880,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/http_client.c:885,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/http_client.c:886,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 271
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 888
    functionName: httpclient_applet_io_handler
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_xfer
    - htx_get_head_type
    - DISGUISE
    - applet_need_more_data
    - __b_putblk
    - htx_get_blk_ptr
    - b_room
    - htx_sl_res_vsn
    - htx_is_empty
    - htx_get_blk_name
    - htx_sl_res_reason
    - struct httpclient*::ops::res_payload
    - applet_fl_clr
    - b_is_null
    - htx_get_blk_type
    - htx_used_space
    - applet_reset_input
    - applet_set_eos
    - htx_from_buf
    - htx_get_head_blk
    - applet_set_error
    - b_alloc
    - htxbuf
    - memcpy
    - applet_have_more_data
    - calloc
    - applet_input_data
    - b_free
    - b_data
    - struct httpclient*::ops::req_payload
    - htx_get_blk_value
    - htx_to_buf
    - BUG_ON
    - htx_cut_data_blk
    - applet_fl_test
    - struct httpclient*::ops::res_stline
    - applet_wont_consume
    - applet_set_eoi
    - htx_xfer
    - applet_get_outbuf
    - b_reset
    - applet_get_inbuf
    - htx_remove_blk
    - istdup
    - struct httpclient*::ops::res_headers
    - applet_will_consume
    - MIN
    linkageType: ''
    returnType: void
    signature: void httpclient_applet_io_handler(struct appctx *appctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_spliturl
      Src: /src/haproxy/src/http_client.c:905,1
    - Dst: ist2str
      Src: /src/haproxy/src/http_client.c:913,1
    - Dst: str2ip2
      Src: /src/haproxy/src/http_client.c:914,1
    - Dst: str2ip2
      Src: /src/haproxy/src/http_client.c:917,1
    - Dst: sock_inet_set_port
      Src: /src/haproxy/src/http_client.c:919,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/http_client.c:922,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:935,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:939,1
    - Dst: appctx_finalize_startup
      Src: /src/haproxy/src/http_client.c:945,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:946,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/http_client.c:950,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_client.c:952,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_client.c:953,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_client.c:956,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:978,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/http_client.c:979,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/http_client.c:991,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/http_client.c:996,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 890
    functionDepth: 8
    functionLinenumber: 890
    functionLinenumberEnd: 999
    functionName: httpclient_applet_init
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - httpclient_spliturl
    - sockaddr_alloc
    - __objt_server
    - applet_need_more_data
    - appctx_finalize_startup
    - appctx_wakeup
    - applet_set_eoi
    - ist2str
    - sock_inet_set_port
    - ha_alert
    - sockaddr_free
    - objt_server
    - str2ip2
    linkageType: ''
    returnType: int
    signature: int httpclient_applet_init(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct httpclient*::ops::res_end
      Src: /src/haproxy/src/http_client.c:1012,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/http_client.c:1016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1001
    functionDepth: 4
    functionLinenumber: 1001
    functionLinenumberEnd: 1024
    functionName: httpclient_applet_release
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - struct httpclient*::ops::res_end
    - httpclient_destroy
    linkageType: ''
    returnType: void
    signature: void httpclient_applet_release(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1058,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1060,1
    - Dst: resolvers_create_default
      Src: /src/haproxy/src/http_client.c:1064,1
    - Dst: find_resolvers_by_id
      Src: /src/haproxy/src/http_client.c:1067,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1068,1
    - Dst: parse_http_req_cond
      Src: /src/haproxy/src/http_client.c:1074,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1076,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1077,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_client.c:1080,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1083,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1039
    functionDepth: 7
    functionLinenumber: 1039
    functionLinenumberEnd: 1085
    functionName: httpclient_resolve_init
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - memprintf
    - resolvers_create_default
    - free
    - LIST_APPEND
    - ha_alert
    - parse_http_req_cond
    - strdup
    - find_resolvers_by_id
    linkageType: ''
    returnType: int
    signature: int httpclient_resolve_init(struct proxy *px)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/http_client.c:1109,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1111,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1127,1
    - Dst: new_server
      Src: /src/haproxy/src/http_client.c:1131,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1133,1
    - Dst: srv_settings_cpy
      Src: /src/haproxy/src/http_client.c:1138,1
    - Dst: xprt_get
      Src: /src/haproxy/src/http_client.c:1141,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1143,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1145,1
    - Dst: new_server
      Src: /src/haproxy/src/http_client.c:1152,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1154,1
    - Dst: srv_settings_cpy
      Src: /src/haproxy/src/http_client.c:1158,1
    - Dst: xprt_get
      Src: /src/haproxy/src/http_client.c:1161,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1164,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1166,1
    - Dst: ssl_sock_parse_alpn
      Src: /src/haproxy/src/http_client.c:1172,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1181,1
    - Dst: __ssl_store_load_locations_file
      Src: /src/haproxy/src/http_client.c:1182,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1187,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_client.c:1191,1
    - Dst: srv_detach
      Src: /src/haproxy/src/http_client.c:1192,1
    - Dst: srv_drop
      Src: /src/haproxy/src/http_client.c:1193,1
    - Dst: httpclient_resolve_init
      Src: /src/haproxy/src/http_client.c:1205,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1206,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1213,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1214,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/http_client.c:1215,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 100
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1095
    functionDepth: 8
    functionLinenumber: 1095
    functionLinenumberEnd: 1220
    functionName: httpclient_create_proxy
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 1
    functionsReached:
    - __ssl_store_load_locations_file
    - memprintf
    - srv_detach
    - ha_free
    - proxy_drop
    - xprt_get
    - free
    - srv_drop
    - alloc_new_proxy
    - httpclient_resolve_init
    - ssl_sock_parse_alpn
    - ha_alert
    - srv_settings_cpy
    - new_server
    - strdup
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *httpclient_create_proxy(const char *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_create_proxy
      Src: /src/haproxy/src/http_client.c:1233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1226
    functionDepth: 9
    functionLinenumber: 1226
    functionLinenumberEnd: 1238
    functionName: httpclient_precheck
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - httpclient_create_proxy
    linkageType: ''
    returnType: int
    signature: int httpclient_precheck()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_client.c:1259,1
    - Dst: dup_logger
      Src: /src/haproxy/src/http_client.c:1260,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1263,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_client.c:1267,1
    - Dst: xprt_get
      Src: /src/haproxy/src/http_client.c:1274,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1281,1
    - Dst: _parse_srv_expr
      Src: /src/haproxy/src/http_client.c:1282,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1286,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1291,1
    - Dst: _parse_srv_expr
      Src: /src/haproxy/src/http_client.c:1292,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1296,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1305,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1306,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1241
    functionDepth: 3
    functionLinenumber: 1241
    functionLinenumberEnd: 1310
    functionName: httpclient_postcheck_proxy
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - memprintf
    - list_for_each_entry
    - xprt_get
    - dup_logger
    - LIST_APPEND
    - free
    - ha_alert
    - _parse_srv_expr
    - strdup
    linkageType: ''
    returnType: int
    signature: int httpclient_postcheck_proxy(struct proxy *curproxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/http_client.c:1321,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1327,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1317
    functionDepth: 3
    functionLinenumber: 1317
    functionLinenumberEnd: 1331
    functionName: httpclient_parse_global_resolvers
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int httpclient_parse_global_resolvers(char **args, int section_type,
      struct proxy *curpx,\n                                        const struct proxy
      *defpx, const char *file, int line,\n                                        char
      **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/http_client.c:1338,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1341,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1343,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1350
    functionName: httpclient_parse_global_resolvers_disabled
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int httpclient_parse_global_resolvers_disabled(char **args, int section_type,
      struct proxy *curpx,\n                                      const struct proxy
      *defpx, const char *file, int line,\n                                      char
      **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/http_client.c:1356,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1363,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1365,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1373
    functionName: httpclient_parse_global_prefer
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - strcmp
    - ha_alert
    linkageType: ''
    returnType: int
    signature: "int httpclient_parse_global_prefer(char **args, int section_type,
      struct proxy *curpx,\n                                        const struct proxy
      *defpx, const char *file, int line,\n                                        char
      **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/http_client.c:1381,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1387,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1377
    functionDepth: 3
    functionLinenumber: 1377
    functionLinenumberEnd: 1391
    functionName: httpclient_parse_global_ca_file
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int httpclient_parse_global_ca_file(char **args, int section_type,
      struct proxy *curpx,\n                                        const struct proxy
      *defpx, const char *file, int line,\n                                        char
      **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/http_client.c:1397,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1403,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1405,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1413
    functionName: httpclient_parse_global_verify
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - strcmp
    - ha_alert
    linkageType: ''
    returnType: int
    signature: "int httpclient_parse_global_verify(char **args, int section_type,
      struct proxy *curpx,\n                                        const struct proxy
      *defpx, const char *file, int line,\n                                        char
      **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/http_client.c:1420,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1424,1
    - Dst: atol
      Src: /src/haproxy/src/http_client.c:1428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1431
    functionName: httpclient_parse_global_retries
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - ha_alert
    - atol
    linkageType: ''
    returnType: int
    signature: "int httpclient_parse_global_retries(char **args, int section_type,
      struct proxy *curpx,\n                                        const struct proxy
      *defpx, const char *file, int line,\n                                        char
      **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/http_client.c:1440,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1444,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/http_client.c:1449,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1451,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1456,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1461,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1466,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/http_client.c:1470,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1473
    functionName: httpclient_parse_global_timeout_connect
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - memprintf
    - MS_TO_TICKS
    - ha_alert
    - too_many_args
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int httpclient_parse_global_timeout_connect(char **args, int section_type,
      struct proxy *curpx,\n                                        const struct proxy
      *defpx, const char *file, int line,\n                                        char
      **err)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/haproxy/src/systemd.c:52,1
    - Dst: unsetenv
      Src: /src/haproxy/src/systemd.c:59,1
    - Dst: strlen
      Src: /src/haproxy/src/systemd.c:66,1
    - Dst: strlen
      Src: /src/haproxy/src/systemd.c:78,1
    - Dst: memcpy
      Src: /src/haproxy/src/systemd.c:85,1
    - Dst: socket
      Src: /src/haproxy/src/systemd.c:91,1
    - Dst: fcntl
      Src: /src/haproxy/src/systemd.c:97,1
    - Dst: connect
      Src: /src/haproxy/src/systemd.c:102,1
    - Dst: write
      Src: /src/haproxy/src/systemd.c:107,1
    - Dst: close
      Src: /src/haproxy/src/systemd.c:115,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 2
    argNames:
    - unset_environment
    - message
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 117
    functionName: sd_notify
    functionSourceFile: /src/haproxy/src/systemd.c
    functionUses: 0
    functionsReached:
    - memcpy
    - unsetenv
    - fcntl
    - write
    - getenv
    - connect
    - socket
    - close
    - strlen
    linkageType: ''
    returnType: int
    signature: int sd_notify(int unset_environment, const char *message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/systemd.c:126,1
    - Dst: memvprintf
      Src: /src/haproxy/src/systemd.c:127,1
    - Dst: va_end
      Src: /src/haproxy/src/systemd.c:128,1
    - Dst: sd_notify
      Src: /src/haproxy/src/systemd.c:135,1
    - Dst: free
      Src: /src/haproxy/src/systemd.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - unset_environment
    - format
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 139
    functionName: sd_notifyf
    functionSourceFile: /src/haproxy/src/systemd.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - free
    - memvprintf
    - sd_notify
    linkageType: ''
    returnType: int
    signature: int sd_notifyf(int unset_environment, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: RET0_UNLESS
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET0_UNLESS(__x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key
    - ','
    - str
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: HA_ANON
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ANON(key, str, len)
  - BBCount: 22
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 3
    argNames:
    - n
    - dst
    - size
    argTypes:
    - unsigned long long
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 240
    functionName: ulltoa
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ulltoa(unsigned long long n, char *dst, size_t size)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 75
    argCount: 3
    argNames:
    - n
    - dst
    - size
    argTypes:
    - unsigned long
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 352
    functionName: ultoa_o
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ultoa_o(unsigned long n, char *dst, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ultoa_o
      Src: /src/haproxy/src/tools.c:369,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/tools.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - n
    - dst
    - size
    argTypes:
    - long int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 374
    functionName: ltoa_o
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - ultoa_o
    linkageType: ''
    returnType: char
    signature: char *ltoa_o(long int n, char *dst, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ulltoa
      Src: /src/haproxy/src/tools.c:391,1
    - Dst: ulltoa
      Src: /src/haproxy/src/tools.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - n
    - dst
    - size
    argTypes:
    - long long
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 396
    functionName: lltoa
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - ulltoa
    linkageType: ''
    returnType: char
    signature: char *lltoa(long long n, char *dst, size_t size)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - n
    - dst
    - size
    argTypes:
    - unsigned int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 460
    functionName: utoa_pad
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *utoa_pad(unsigned int n, char *dst, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 479
    functionName: strlcpy2
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strlcpy2(char *dst, const char *src, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - n
    - buffer
    - size
    argTypes:
    - unsigned long
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 497
    functionName: ultoa_r
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ultoa_r(unsigned long n, char *buffer, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - in
    - buffer
    - size
    argTypes:
    - long long int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 526
    functionName: lltoa_r
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lltoa_r(long long int in, char *buffer, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ultoa_r
      Src: /src/haproxy/src/tools.c:537,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/tools.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - n
    - buffer
    - size
    argTypes:
    - long
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 542
    functionName: sltoa_r
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - ultoa_r
    linkageType: ''
    returnType: char
    signature: char *sltoa_r(long n, char *buffer, int size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:560,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:568,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - n
    - buffer
    - size
    argTypes:
    - unsigned long long
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 574
    functionName: ulltoh_r
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *ulltoh_r(unsigned long long n, char *buffer, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ultoa_r
      Src: /src/haproxy/src/tools.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - n
    - buffer
    - size
    - alt
    argTypes:
    - unsigned long
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: limit_r
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - ultoa_r
    linkageType: ''
    returnType: char
    signature: char *limit_r(unsigned long n, char *buffer, int size, const char *alt)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - buffer
    - num_start
    - len
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 620
    functionName: flt_trim
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t flt_trim(char *buffer, size_t num_start, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flt_trim
      Src: /src/haproxy/src/tools.c:629,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - n
    - buffer
    - size
    argTypes:
    - double
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: ftoa_r
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - snprintf
    - flt_trim
    linkageType: ''
    returnType: char
    signature: char *ftoa_r(double n, char *buffer, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 664
    functionName: qstr
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *qstr(const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 685
    functionName: ishex
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ishex(char s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 697
    functionName: round_2dig
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int round_2dig(unsigned int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/haproxy/src/tools.c:710,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 716
    functionName: invalid_char
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: char
    signature: char *invalid_char(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/haproxy/src/tools.c:730,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 738
    functionName: __invalid_char
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: char
    signature: char *__invalid_char(const char *name, int (*f)(int))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __invalid_char
      Src: /src/haproxy/src/tools.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 747
    functionName: invalid_domainchar
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - __invalid_char
    linkageType: ''
    returnType: char
    signature: char *invalid_domainchar(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __invalid_char
      Src: /src/haproxy/src/tools.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 756
    functionName: invalid_prefix_char
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - __invalid_char
    linkageType: ''
    returnType: char
    signature: char *invalid_prefix_char(const char *name)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: get_host_port
      Src: /src/haproxy/src/tools.c:778,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:782,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:798,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:811,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:819,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:825,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:827,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:833,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:835,1
    - Dst: resolv_hostname_validation
      Src: /src/haproxy/src/tools.c:842,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:850,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:851,1
    - Dst: getaddrinfo
      Src: /src/haproxy/src/tools.c:857,1
    - Dst: freeaddrinfo
      Src: /src/haproxy/src/tools.c:861,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:867,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:868,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:872,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:873,1
    - Dst: freeaddrinfo
      Src: /src/haproxy/src/tools.c:880,1
    - Dst: gethostbyname
      Src: /src/haproxy/src/tools.c:887,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:897,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:901,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 103
    argCount: 3
    argNames:
    - str
    - sa
    - resolve
    argTypes:
    - char*
    - struct sockaddr_storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 909
    functionName: str2ip2
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - memset
    - gethostbyname
    - memcpy
    - freeaddrinfo
    - get_host_port
    - getaddrinfo
    - resolv_hostname_validation
    - strlen
    - set_host_port
    - inet_pton
    linkageType: ''
    returnType: struct sockaddr_storage
    signature: struct sockaddr_storage *str2ip2(const char *str, struct sockaddr_storage
      *sa, int resolve)
  - BBCount: 82
    BranchProfiles: []
    Callsites:
    - Dst: env_expand
      Src: /src/haproxy/src/tools.c:1002,1
    - Dst: strdup
      Src: /src/haproxy/src/tools.c:1002,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1004,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1009,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:1013,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1025,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1030,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1035,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1041,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1045,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1051,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1057,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1061,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1065,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1069,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1073,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1077,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1083,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1090,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1096,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1102,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1109,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1115,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1121,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1128,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1134,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1140,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1146,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1150,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1154,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1157,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/tools.c:1160,1
    - Dst: strtol
      Src: /src/haproxy/src/tools.c:1176,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1178,1
    - Dst: getsockname
      Src: /src/haproxy/src/tools.c:1184,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1185,1
    - Dst: strerror
      Src: /src/haproxy/src/tools.c:1185,1
    - Dst: strtol
      Src: /src/haproxy/src/tools.c:1195,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1197,1
    - Dst: getsockname
      Src: /src/haproxy/src/tools.c:1206,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1207,1
    - Dst: strerror
      Src: /src/haproxy/src/tools.c:1207,1
    - Dst: getsockopt
      Src: /src/haproxy/src/tools.c:1212,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1214,1
    - Dst: get_host_port
      Src: /src/haproxy/src/tools.c:1218,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1223,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:1240,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:1244,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1246,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:1251,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:1253,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:1254,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:1260,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1274,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1286,1
    - Dst: isdigit
      Src: /src/haproxy/src/tools.c:1292,1
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:1295,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1298,1
    - Dst: strtol
      Src: /src/haproxy/src/tools.c:1305,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1307,1
    - Dst: strtol
      Src: /src/haproxy/src/tools.c:1310,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1312,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1317,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1322,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1327,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1337,1
    - Dst: strtol
      Src: /src/haproxy/src/tools.c:1340,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1342,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1351,1
    - Dst: strtol
      Src: /src/haproxy/src/tools.c:1354,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1356,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1362,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1366,1
    - Dst: str2ip2
      Src: /src/haproxy/src/tools.c:1375,1
    - Dst: str2ip2
      Src: /src/haproxy/src/tools.c:1377,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1378,1
    - Dst: memmove
      Src: /src/haproxy/src/tools.c:1384,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:1384,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:1389,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1393,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1397,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/tools.c:1410,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1415,1
    - Dst: USE_QUIC
      Src: /src/haproxy/src/tools.c:1420,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1432,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:1455,1
    CyclomaticComplexity: 139
    EdgeCount: 139
    ICount: 388
    argCount: 12
    argNames:
    - str
    - port
    - low
    - high
    - fd
    - proto
    - sa_type
    - err
    - pfx
    - fqdn
    - alt
    - opts
    argTypes:
    - char*
    - int*
    - int*
    - int*
    - int*
    - struct protocol**
    - struct net_addr_type*
    - char**
    - char*
    - char**
    - int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 978
    functionDepth: 3
    functionLinenumber: 978
    functionLinenumberEnd: 1457
    functionName: str2sa_range
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - memprintf
    - USE_QUIC
    - free
    - isdigit
    - str2ip2
    - strerror
    - getsockopt
    - mark_tainted
    - strchr
    - strtol
    - memmove
    - memcpy
    - env_expand
    - strdup
    - memset
    - get_host_port
    - strncmp
    - set_host_port
    - protocol_lookup
    - getsockname
    - strlen
    linkageType: ''
    returnType: struct sockaddr_storage
    signature: "struct sockaddr_storage *str2sa_range(const char *str, int *port,
      int *low, int *high, int *fd,\n                                      struct
      protocol **proto, struct net_addr_type *sa_type,\n                                      char
      **err, const char *pfx, char **fqdn, int *alt, unsigned int opts)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1491,1
    - Dst: strdup
      Src: /src/haproxy/src/tools.c:1493,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1496,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/tools.c:1500,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tools.c:1501,1
    - Dst: strdup
      Src: /src/haproxy/src/tools.c:1506,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1509,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1511,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - addr
    - port
    - map_ports
    argTypes:
    - struct sockaddr_storage*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1512
    functionName: sa2str
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - memprintf
    - inet_ntop
    - BUG_ON
    - strdup
    linkageType: ''
    returnType: char
    signature: char * sa2str(const struct sockaddr_storage *addr, int port, int map_ports)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:1521,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:1522,1
    - Dst: strtol
      Src: /src/haproxy/src/tools.c:1527,1
    - Dst: len2mask4
      Src: /src/haproxy/src/tools.c:1532,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - str
    - mask
    argTypes:
    - char*
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1535
    functionName: str2mask
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - len2mask4
    - strtol
    - strchr
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int str2mask(const char *str, struct in_addr *mask)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:1543,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:1544,1
    - Dst: strtol
      Src: /src/haproxy/src/tools.c:1549,1
    - Dst: len2mask6
      Src: /src/haproxy/src/tools.c:1554,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - str
    - mask
    argTypes:
    - char*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1557
    functionName: str2mask6
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - len2mask6
    - strtol
    - strchr
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int str2mask6(const char *str, struct in6_addr *mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/haproxy/src/tools.c:1567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cidr
    - mask
    argTypes:
    - int
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1569
    functionName: cidr2dotted
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - htonl
    linkageType: ''
    returnType: int
    signature: int cidr2dotted(int cidr, struct in_addr *mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/haproxy/src/tools.c:1585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - len
    - addr
    argTypes:
    - int
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1586
    functionName: len2mask4
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - htonl
    linkageType: ''
    returnType: void
    signature: void len2mask4(int len, struct in_addr *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: len2mask4
      Src: /src/haproxy/src/tools.c:1593,1
    - Dst: len2mask4
      Src: /src/haproxy/src/tools.c:1595,1
    - Dst: len2mask4
      Src: /src/haproxy/src/tools.c:1597,1
    - Dst: len2mask4
      Src: /src/haproxy/src/tools.c:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - len
    - addr
    argTypes:
    - int
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1600
    functionName: len2mask6
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - len2mask4
    linkageType: ''
    returnType: void
    signature: void len2mask6(int len, struct in6_addr *addr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/tools.c:1614,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:1618,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:1619,1
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:1621,1
    - Dst: str2mask
      Src: /src/haproxy/src/tools.c:1624,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:1630,1
    - Dst: gethostbyname
      Src: /src/haproxy/src/tools.c:1636,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:1645,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - str
    - resolve
    - addr
    - mask
    argTypes:
    - char*
    - int
    - struct in_addr*
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1608
    functionDepth: 3
    functionLinenumber: 1608
    functionLinenumberEnd: 1650
    functionName: str2net
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - memset
    - gethostbyname
    - strrchr
    - free
    - str2mask
    - strdup
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int str2net(const char *str, int resolve, struct in_addr *addr, struct
      in_addr *mask)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/tools.c:1666,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:1670,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:1671,1
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:1673,1
    - Dst: strtoul
      Src: /src/haproxy/src/tools.c:1678,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:1684,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:1689,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - str
    - addr
    - mask
    argTypes:
    - char*
    - struct in6_addr*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1659
    functionDepth: 3
    functionLinenumber: 1659
    functionLinenumberEnd: 1691
    functionName: str62net
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - memset
    - strrchr
    - strtoul
    - free
    - strdup
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int str62net(const char *str, struct in6_addr *addr, unsigned char
      *mask)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:1736,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - addr
    - dst
    argTypes:
    - char*
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1738
    functionName: url2ipv4
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int url2ipv4(const char *addr, struct in_addr *dst)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:1820,1
    - Dst: read_uint
      Src: /src/haproxy/src/tools.c:1827,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:1829,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:1839,1
    - Dst: url2ipv4
      Src: /src/haproxy/src/tools.c:1847,1
    - Dst: read_uint
      Src: /src/haproxy/src/tools.c:1860,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:1862,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:1877,1
    - Dst: gethostbyname
      Src: /src/haproxy/src/tools.c:1881,1
    - Dst: read_uint
      Src: /src/haproxy/src/tools.c:1894,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:1901,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:1907,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 96
    argCount: 4
    argNames:
    - url
    - ulen
    - addr
    - out
    argTypes:
    - char*
    - int
    - struct sockaddr_storage*
    - struct split_url*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1751
    functionDepth: 1
    functionLinenumber: 1751
    functionLinenumberEnd: 1914
    functionName: url2sa
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - url2ipv4
    - read_uint
    - memcpy
    - gethostbyname
    - inet_pton
    - htons
    linkageType: ''
    returnType: int
    signature: int url2sa(const char *url, int ulen, struct sockaddr_storage *addr,
      struct split_url *out)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:1941,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/tools.c:1947,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - addr
    - str
    - size
    argTypes:
    - struct sockaddr_storage*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1922
    functionDepth: 0
    functionLinenumber: 1922
    functionLinenumberEnd: 1952
    functionName: addr_to_str
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 10
    functionsReached:
    - inet_ntop
    - memcpy
    linkageType: ''
    returnType: int
    signature: int addr_to_str(const struct sockaddr_storage *addr, char *str, int
      size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:1980,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:1986,1
    - Dst: ntohs
      Src: /src/haproxy/src/tools.c:1986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - addr
    - str
    - size
    argTypes:
    - struct sockaddr_storage*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1960
    functionDepth: 0
    functionLinenumber: 1960
    functionLinenumberEnd: 1988
    functionName: port_to_str
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - ntohs
    - memcpy
    - snprintf
    linkageType: ''
    returnType: int
    signature: int port_to_str(const struct sockaddr_storage *addr, char *str, int
      size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_inet_addr
      Src: /src/haproxy/src/tools.c:2006,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:2009,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:2010,1
    - Dst: proto_fam_lookup
      Src: /src/haproxy/src/tools.c:2012,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tools.c:2013,1
    - Dst: my_socketat
      Src: /src/haproxy/src/tools.c:2015,1
    - Dst: bind
      Src: /src/haproxy/src/tools.c:2020,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/tools.c:2020,1
    - Dst: connect
      Src: /src/haproxy/src/tools.c:2021,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/tools.c:2021,1
    - Dst: close
      Src: /src/haproxy/src/tools.c:2030,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ns
    - orig
    argTypes:
    - struct netns_entry*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 1998
    functionDepth: 1
    functionLinenumber: 1998
    functionLinenumberEnd: 2033
    functionName: addr_is_local
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - get_addr_len
    - BUG_ON
    - memcpy
    - my_socketat
    - is_inet_addr
    - proto_fam_lookup
    - bind
    - connect
    - set_host_port
    - close
    linkageType: ''
    returnType: int
    signature: "int addr_is_local(const struct netns_entry *ns,\n                  const
      struct sockaddr_storage *orig)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_bit_test
      Src: /src/haproxy/src/tools.c:2053,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - start
    - stop
    - escape
    - map
    - string
    argTypes:
    - char*
    - char*
    - char
    - long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2046
    functionDepth: 1
    functionLinenumber: 2046
    functionLinenumberEnd: 2068
    functionName: encode_string
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - ha_bit_test
    linkageType: ''
    returnType: char
    signature: "char *encode_string(char *start, char *stop,\n\t\t    const char escape,
      const long *map,\n\t\t    const char *string)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_bit_test
      Src: /src/haproxy/src/tools.c:2084,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - start
    - stop
    - escape
    - map
    - chunk
    argTypes:
    - char*
    - char*
    - char
    - long*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2074
    functionDepth: 1
    functionLinenumber: 2074
    functionLinenumberEnd: 2099
    functionName: encode_chunk
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - ha_bit_test
    linkageType: ''
    returnType: char
    signature: "char *encode_chunk(char *start, char *stop,\n\t\t    const char escape,
      const long *map,\n\t\t    const struct buffer *chunk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_bit_test
      Src: /src/haproxy/src/tools.c:2118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 6
    argNames:
    - start
    - stop
    - escape
    - map
    - string
    - string_stop
    argTypes:
    - char*
    - char*
    - char
    - long*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2111
    functionDepth: 1
    functionLinenumber: 2111
    functionLinenumberEnd: 2132
    functionName: escape_string
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - ha_bit_test
    linkageType: ''
    returnType: char
    signature: "char *escape_string(char *start, char *stop,\n\t\t    const char escape,
      const long *map,\n\t\t    const char *string, const char *string_stop)"
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - chunk
    - str
    - len
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2140
    functionDepth: 0
    functionLinenumber: 2140
    functionLinenumberEnd: 2186
    functionName: chunk_escape_string
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int chunk_escape_string(struct buffer *chunk, const char *str, size_t
      len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct cbor_encode_ctx*::e_fct_byte
      Src: /src/haproxy/src/tools.c:2233,1
    - Dst: struct cbor_encode_ctx*::e_fct_byte
      Src: /src/haproxy/src/tools.c:2241,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - ctx
    - start
    - stop
    - value
    - prefix
    argTypes:
    - struct cbor_encode_ctx*
    - char*
    - char*
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2196
    functionDepth: 0
    functionLinenumber: 2196
    functionLinenumberEnd: 2249
    functionName: cbor_encode_uint64_prefix
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - struct cbor_encode_ctx*::e_fct_byte
    linkageType: ''
    returnType: char
    signature: "char *cbor_encode_uint64_prefix(struct cbor_encode_ctx *ctx,\n                                char
      *start, char *stop, uint64_t value,\n                                uint8_t
      prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llabs
      Src: /src/haproxy/src/tools.c:2261,1
    - Dst: cbor_encode_uint64_prefix
      Src: /src/haproxy/src/tools.c:2275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - start
    - stop
    - value
    argTypes:
    - struct cbor_encode_ctx*
    - char*
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2258
    functionDepth: 1
    functionLinenumber: 2258
    functionLinenumberEnd: 2277
    functionName: cbor_encode_int64
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - llabs
    - cbor_encode_uint64_prefix
    linkageType: ''
    returnType: char
    signature: "char *cbor_encode_int64(struct cbor_encode_ctx *ctx,\n                        char
      *start, char *stop, int64_t value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cbor_encode_uint64_prefix
      Src: /src/haproxy/src/tools.c:2298,1
    - Dst: struct cbor_encode_ctx*::e_fct_byte
      Src: /src/haproxy/src/tools.c:2305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - start
    - stop
    - bytes
    - len
    - prefix
    argTypes:
    - struct cbor_encode_ctx*
    - char*
    - char*
    - char*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2289
    functionDepth: 1
    functionLinenumber: 2289
    functionLinenumberEnd: 2311
    functionName: cbor_encode_bytes_prefix
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - struct cbor_encode_ctx*::e_fct_byte
    - cbor_encode_uint64_prefix
    linkageType: ''
    returnType: char
    signature: "char *cbor_encode_bytes_prefix(struct cbor_encode_ctx *ctx,\n                               char
      *start, char *stop,\n                               const char *bytes, size_t
      len,\n                               uint8_t prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbor_encode_bytes_prefix
      Src: /src/haproxy/src/tools.c:2326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - start
    - stop
    - text
    - len
    argTypes:
    - struct cbor_encode_ctx*
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2322
    functionDepth: 2
    functionLinenumber: 2322
    functionLinenumberEnd: 2327
    functionName: cbor_encode_text
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - cbor_encode_bytes_prefix
    linkageType: ''
    returnType: char
    signature: "char *cbor_encode_text(struct cbor_encode_ctx *ctx,\n                       char
      *start, char *stop,\n                       const char *text, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbor_encode_bytes_prefix
      Src: /src/haproxy/src/tools.c:2343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - start
    - stop
    - bytes
    - len
    argTypes:
    - struct cbor_encode_ctx*
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2339
    functionDepth: 2
    functionLinenumber: 2339
    functionLinenumberEnd: 2344
    functionName: cbor_encode_bytes
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - cbor_encode_bytes_prefix
    linkageType: ''
    returnType: char
    signature: "char *cbor_encode_bytes(struct cbor_encode_ctx *ctx,\n                        char
      *start, char *stop,\n                        const char *bytes, size_t len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/haproxy/src/tools.c:2391,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 4
    argNames:
    - str
    - quote
    - oneline
    - output
    argTypes:
    - char*
    - int
    - int
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2383
    functionDepth: 0
    functionLinenumber: 2383
    functionLinenumberEnd: 2437
    functionName: csv_enc_append
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - strpbrk
    linkageType: ''
    returnType: char
    signature: char *csv_enc_append(const char *str, int quote, int oneline, struct
      buffer *output)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ishex
      Src: /src/haproxy/src/tools.c:2461,1
    - Dst: ishex
      Src: /src/haproxy/src/tools.c:2461,1
    - Dst: hex2i
      Src: /src/haproxy/src/tools.c:2463,1
    - Dst: hex2i
      Src: /src/haproxy/src/tools.c:2463,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - string
    - in_form
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2448
    functionDepth: 1
    functionLinenumber: 2448
    functionLinenumberEnd: 2479
    functionName: url_decode
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - hex2i
    - ishex
    linkageType: ''
    returnType: int
    signature: int url_decode(char *string, int in_form)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __str2ui
      Src: /src/haproxy/src/tools.c:2483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2481
    functionDepth: 1
    functionLinenumber: 2481
    functionLinenumberEnd: 2484
    functionName: str2ui
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - __str2ui
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int str2ui(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __str2uic
      Src: /src/haproxy/src/tools.c:2488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2489
      start: 2486
    functionDepth: 1
    functionLinenumber: 2486
    functionLinenumberEnd: 2489
    functionName: str2uic
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - __str2uic
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int str2uic(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __strl2ui
      Src: /src/haproxy/src/tools.c:2493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2491
    functionDepth: 1
    functionLinenumber: 2491
    functionLinenumberEnd: 2494
    functionName: strl2ui
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - __strl2ui
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int strl2ui(const char *s, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __strl2uic
      Src: /src/haproxy/src/tools.c:2498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2496
    functionDepth: 1
    functionLinenumber: 2496
    functionLinenumberEnd: 2499
    functionName: strl2uic
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - __strl2uic
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int strl2uic(const char *s, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __read_uint
      Src: /src/haproxy/src/tools.c:2503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2501
    functionDepth: 1
    functionLinenumber: 2501
    functionLinenumberEnd: 2504
    functionName: read_uint
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 5
    functionsReached:
    - __read_uint
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int read_uint(const char **s, const char *end)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2511
    functionDepth: 0
    functionLinenumber: 2511
    functionLinenumberEnd: 2547
    functionName: read_uint64
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long int
    signature: unsigned long long int read_uint64(const char **s, const char *end)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read_uint64
      Src: /src/haproxy/src/tools.c:2569,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2555
    functionDepth: 1
    functionLinenumber: 2555
    functionLinenumberEnd: 2579
    functionName: read_int64
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - read_uint64
    linkageType: ''
    returnType: long long int
    signature: long long int read_int64(const char **s, const char *end)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2585
    functionDepth: 0
    functionLinenumber: 2585
    functionLinenumberEnd: 2613
    functionName: strl2ic
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strl2ic(const char *s, int len)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - s
    - len
    - ret
    argTypes:
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2624
    functionDepth: 0
    functionLinenumber: 2624
    functionLinenumberEnd: 2656
    functionName: strl2irc
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strl2irc(const char *s, int len, int *ret)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - s
    - len
    - ret
    argTypes:
    - char*
    - int
    - long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2668
    functionDepth: 0
    functionLinenumber: 2668
    functionLinenumberEnd: 2700
    functionName: strl2llrc
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strl2llrc(const char *s, int len, long long *ret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strl2llrc
      Src: /src/haproxy/src/tools.c:2724,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/tools.c:2734,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - text
    - len
    - ret
    argTypes:
    - char*
    - int
    - long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2712
    functionDepth: 1
    functionLinenumber: 2712
    functionLinenumberEnd: 2744
    functionName: strl2llrc_dotted
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - strl2llrc
    linkageType: ''
    returnType: int
    signature: int strl2llrc_dotted(const char *text, int len, long long *ret)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/haproxy/src/tools.c:2763,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tools.c:2822,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 93
    argCount: 3
    argNames:
    - text
    - ret
    - unit_flags
    argTypes:
    - char*
    - unsigned*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2756
    functionDepth: 1
    functionLinenumber: 2756
    functionLinenumberEnd: 2840
    functionName: parse_time_err
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 14
    functionsReached:
    - isdigit
    - ha_warning
    linkageType: ''
    returnType: char
    signature: char *parse_time_err(const char *text, unsigned *ret, unsigned unit_flags)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/haproxy/src/tools.c:2850,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 2
    argNames:
    - text
    - ret
    argTypes:
    - char*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2846
    functionDepth: 0
    functionLinenumber: 2846
    functionLinenumberEnd: 2898
    functionName: parse_size_ui
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: char
    signature: char *parse_size_ui(const char *text, unsigned *ret)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/haproxy/src/tools.c:2908,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 2
    argNames:
    - text
    - ret
    argTypes:
    - char*
    - ullong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2904
    functionDepth: 0
    functionLinenumber: 2904
    functionLinenumberEnd: 2968
    functionName: parse_size_ull
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: char
    signature: char *parse_size_ull(const char *text, ullong *ret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:2983,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:2985,1
    - Dst: calloc
      Src: /src/haproxy/src/tools.c:2992,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:2994,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:3001,1
    - Dst: ishex
      Src: /src/haproxy/src/tools.c:3011,1
    - Dst: ishex
      Src: /src/haproxy/src/tools.c:3013,1
    - Dst: hex2i
      Src: /src/haproxy/src/tools.c:3015,1
    - Dst: hex2i
      Src: /src/haproxy/src/tools.c:3015,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:3020,1
    - Dst: ha_free
      Src: /src/haproxy/src/tools.c:3022,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - source
    - binstr
    - binstrlen
    - err
    argTypes:
    - char*
    - char**
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3024
      start: 2976
    functionDepth: 1
    functionLinenumber: 2976
    functionLinenumberEnd: 3024
    functionName: parse_binary
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - memprintf
    - ha_free
    - calloc
    - hex2i
    - ishex
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_binary(const char *source, char **binstr, int *binstrlen,
      char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/tools.c:3035,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:3038,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3041
      start: 3027
    functionDepth: 0
    functionLinenumber: 3027
    functionLinenumberEnd: 3041
    functionName: my_strndup
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 5
    functionsReached:
    - malloc
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *my_strndup(const char *src, size_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/haproxy/src/tools.c:3057,1
    - Dst: memcmp
      Src: /src/haproxy/src/tools.c:3061,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - haystack
    - haystacklen
    - needle
    - needlelen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3066
      start: 3047
    functionDepth: 0
    functionLinenumber: 3047
    functionLinenumberEnd: 3066
    functionName: my_memmem
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - memcmp
    - memchr
    linkageType: ''
    returnType: void
    signature: void *my_memmem(const void *haystack, size_t haystacklen, const void
      *needle, size_t needlelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/haproxy/src/tools.c:3073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - str
    - len
    - accept
    - acceptlen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3069
    functionDepth: 0
    functionLinenumber: 3069
    functionLinenumberEnd: 3078
    functionName: my_memspn
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: size_t
    signature: size_t my_memspn(const void *str, size_t len, const void *accept, size_t
      acceptlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/haproxy/src/tools.c:3086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - str
    - len
    - reject
    - rejectlen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3092
      start: 3081
    functionDepth: 0
    functionLinenumber: 3081
    functionLinenumberEnd: 3092
    functionName: my_memcspn
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: size_t
    signature: size_t my_memcspn(const void *str, size_t len, const void *reject,
      size_t rejectlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/tools.c:3102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - root
    - key
    argTypes:
    - struct eb_root*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3108
      start: 3097
    functionDepth: 1
    functionLinenumber: 3097
    functionLinenumberEnd: 3108
    functionName: get_next_id
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - eb32_lookup_ge
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_next_id(struct eb_root *root, unsigned int key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3122,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3125,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3131,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3134,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3137,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3138,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3139,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3139,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3140,1
    - Dst: eb32sc_first
      Src: /src/haproxy/src/tools.c:3142,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3146,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3150,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3152,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3152,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3153,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3155,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3157,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3157,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3158,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3160,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3162,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3162,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3163,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3166,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3170,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3172,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3172,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3173,1
    - Dst: eb32sc_next
      Src: /src/haproxy/src/tools.c:3174,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - file
    - root
    - subj
    - op
    - desc
    argTypes:
    - FILE*
    - struct eb_root*
    - struct eb32sc_node*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3177
      start: 3117
    functionDepth: 1
    functionLinenumber: 3117
    functionLinenumberEnd: 3177
    functionName: eb32sc_to_file
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - eb32sc_first
    - eb_gettag
    - eb_root_to_node
    - eb32sc_next
    - fprintf
    - eb_clrtag
    linkageType: ''
    returnType: void
    signature: void eb32sc_to_file(FILE *file, struct eb_root *root, const struct
      eb32sc_node *subj, int op, const char *desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3192,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3195,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3201,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3204,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3207,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3208,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3209,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3209,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3210,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/tools.c:3212,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3216,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3217,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3220,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3222,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3222,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3223,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3225,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3227,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3227,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3228,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3230,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3232,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3232,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3233,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3236,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3237,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3240,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3242,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3242,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3243,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/tools.c:3244,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - file
    - root
    - subj
    - op
    - desc
    argTypes:
    - FILE*
    - struct eb_root*
    - struct ebmb_node*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3188
    functionDepth: 1
    functionLinenumber: 3188
    functionLinenumberEnd: 3247
    functionName: ebmb_to_file
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - eb_gettag
    - eb_root_to_node
    - read_u32
    - ebmb_first
    - ebmb_next
    - fprintf
    - eb_clrtag
    linkageType: ''
    returnType: void
    signature: void ebmb_to_file(FILE *file, struct eb_root *root, const struct ebmb_node
      *subj, int op, const char *desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - sample
    - slen
    - word
    - wlen
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3255
    functionDepth: 0
    functionLinenumber: 3255
    functionLinenumberEnd: 3277
    functionName: word_match
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int word_match(const char *sample, int slen, const char *word, int
      wlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3329
      start: 3284
    functionDepth: 0
    functionLinenumber: 3284
    functionLinenumberEnd: 3329
    functionName: inetaddr_host
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int inetaddr_host(const char *text)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - text
    - stop
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3379
      start: 3334
    functionDepth: 0
    functionLinenumber: 3334
    functionLinenumberEnd: 3379
    functionName: inetaddr_host_lim
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int inetaddr_host_lim(const char *text, const char *stop)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - text
    - stop
    - ret
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3431
      start: 3385
    functionDepth: 0
    functionLinenumber: 3385
    functionLinenumberEnd: 3431
    functionName: inetaddr_host_lim_ret
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int inetaddr_host_lim_ret(char *text, char *stop, char **ret)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:3482,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - buf
    - len
    - dst
    argTypes:
    - char*
    - size_t
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3484
      start: 3439
    functionDepth: 0
    functionLinenumber: 3439
    functionLinenumberEnd: 3484
    functionName: buf2ip
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int buf2ip(const char *buf, size_t len, struct in_addr *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:3499,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:3502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - len
    - dst
    argTypes:
    - char*
    - size_t
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3491
    functionDepth: 0
    functionLinenumber: 3491
    functionLinenumberEnd: 3507
    functionName: buf2ip6
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memcpy
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int buf2ip6(const char *buf, size_t len, struct in6_addr *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3513
    functionDepth: 0
    functionLinenumber: 3513
    functionLinenumberEnd: 3526
    functionName: quote_arg
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *quote_arg(const char *ptr)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3549
      start: 3529
    functionDepth: 0
    functionLinenumber: 3529
    functionLinenumberEnd: 3549
    functionName: get_std_op
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_std_op(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __full_hash
      Src: /src/haproxy/src/tools.c:3554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3555
      start: 3552
    functionDepth: 1
    functionLinenumber: 3552
    functionLinenumberEnd: 3555
    functionName: full_hash
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 5
    functionsReached:
    - __full_hash
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int full_hash(unsigned int a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - r
    - m
    argTypes:
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3596
      start: 3563
    functionDepth: 0
    functionLinenumber: 3563
    functionLinenumberEnd: 3596
    functionName: mask_find_rank_bit
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mask_find_rank_bit(unsigned int r, unsigned long m)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 6
    argNames:
    - r
    - m
    - a
    - b
    - c
    - d
    argTypes:
    - unsigned int
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3631
      start: 3602
    functionDepth: 0
    functionLinenumber: 3602
    functionLinenumberEnd: 3631
    functionName: mask_find_rank_bit_fast
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int mask_find_rank_bit_fast(unsigned int r, unsigned long
      m,\n                                     unsigned long a, unsigned long b,\n
      \                                    unsigned long c, unsigned long d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - m
    - a
    - b
    - c
    - d
    argTypes:
    - unsigned long
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3636
    functionDepth: 0
    functionLinenumber: 3636
    functionLinenumberEnd: 3644
    functionName: mask_prep_rank_map
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void mask_prep_rank_map(unsigned long m,\n                        unsigned
      long *a, unsigned long *b,\n                        unsigned long *c, unsigned
      long *d)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - v
    - bit
    argTypes:
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3698
      start: 3659
    functionDepth: 0
    functionLinenumber: 3659
    functionLinenumberEnd: 3698
    functionName: one_among_mask
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int one_among_mask(unsigned long v, int bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:3708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - addr
    - mask
    - net
    argTypes:
    - void*
    - struct in_addr*
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3710
      start: 3704
    functionDepth: 0
    functionLinenumber: 3704
    functionLinenumberEnd: 3710
    functionName: in_net_ipv4
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int in_net_ipv4(const void *addr, const struct in_addr *mask, const
      struct in_addr *net)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:3721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - addr
    - mask
    - net
    argTypes:
    - void*
    - struct in6_addr*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3727
      start: 3716
    functionDepth: 0
    functionLinenumber: 3716
    functionLinenumberEnd: 3727
    functionName: in_net_ipv6
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int in_net_ipv6(const void *addr, const struct in6_addr *mask, const
      struct in6_addr *net)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/tools.c:3739,1
    - Dst: write_u16
      Src: /src/haproxy/src/tools.c:3740,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:3740,1
    - Dst: write_u32
      Src: /src/haproxy/src/tools.c:3741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - sin6_addr
    - sin_addr
    argTypes:
    - struct in6_addr*
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3742
      start: 3734
    functionDepth: 1
    functionLinenumber: 3734
    functionLinenumberEnd: 3742
    functionName: v4tov6
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - write_u32
    - write_u16
    - memset
    - htons
    linkageType: ''
    returnType: void
    signature: void v4tov6(struct in6_addr *sin6_addr, struct in_addr *sin_addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_u64
      Src: /src/haproxy/src/tools.c:3757,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3758,1
    - Dst: htonl
      Src: /src/haproxy/src/tools.c:3758,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3759,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3761,1
    - Dst: read_u16
      Src: /src/haproxy/src/tools.c:3762,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:3762,1
    - Dst: htonl
      Src: /src/haproxy/src/tools.c:3764,1
    - Dst: ntohs
      Src: /src/haproxy/src/tools.c:3764,1
    - Dst: read_u16
      Src: /src/haproxy/src/tools.c:3764,1
    - Dst: ntohs
      Src: /src/haproxy/src/tools.c:3765,1
    - Dst: read_u16
      Src: /src/haproxy/src/tools.c:3765,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - sin_addr
    - sin6_addr
    argTypes:
    - struct in_addr*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3770
      start: 3755
    functionDepth: 1
    functionLinenumber: 3755
    functionLinenumberEnd: 3770
    functionName: v6tov4
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - read_u64
    - read_u32
    - ntohs
    - htonl
    - read_u16
    - htons
    linkageType: ''
    returnType: int
    signature: int v6tov4(struct in_addr *sin_addr, struct in6_addr *sin6_addr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/haproxy/src/tools.c:3791,1
    - Dst: get_net_port
      Src: /src/haproxy/src/tools.c:3794,1
    - Dst: get_net_port
      Src: /src/haproxy/src/tools.c:3794,1
    - Dst: memcmp
      Src: /src/haproxy/src/tools.c:3796,1
    - Dst: get_net_port
      Src: /src/haproxy/src/tools.c:3799,1
    - Dst: get_net_port
      Src: /src/haproxy/src/tools.c:3799,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 3
    argNames:
    - ss1
    - ss2
    - check_port
    argTypes:
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3803
      start: 3778
    functionDepth: 1
    functionLinenumber: 3778
    functionLinenumberEnd: 3803
    functionName: ipcmp
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - get_net_port
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ipcmp(const struct sockaddr_storage *ss1, const struct sockaddr_storage
      *ss2, int check_port)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3829,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3829,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3829,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3830,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3830,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3830,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3831,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3831,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3831,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3832,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3832,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3832,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - addr
    - net
    argTypes:
    - struct sockaddr_storage*
    - struct net_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3837
      start: 3810
    functionDepth: 1
    functionLinenumber: 3810
    functionLinenumberEnd: 3837
    functionName: ipcmp2net
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - read_u32
    linkageType: ''
    returnType: int
    signature: int ipcmp2net(const struct sockaddr_storage *addr, const struct net_addr
      *net)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_net_port
      Src: /src/haproxy/src/tools.c:3850,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:3851,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:3861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3867
      start: 3846
    functionDepth: 1
    functionLinenumber: 3846
    functionLinenumberEnd: 3867
    functionName: ipcpy
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - get_net_port
    - memset
    - memcpy
    linkageType: ''
    returnType: struct sockaddr_storage
    signature: struct sockaddr_storage *ipcpy(const struct sockaddr_storage *source,
      struct sockaddr_storage *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:3889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - saddr
    argTypes:
    - unsigned char*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3893
      start: 3874
    functionDepth: 0
    functionLinenumber: 3874
    functionLinenumberEnd: 3893
    functionName: ipaddrcpy
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t ipaddrcpy(unsigned char *buf, const struct sockaddr_storage
      *saddr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/tools.c:3902,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:3903,1
    - Dst: unlikely
      Src: /src/haproxy/src/tools.c:3907,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:3911,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:3916,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:3921,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:3926,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - t
    - hz_div
    argTypes:
    - int
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3929
      start: 3896
    functionDepth: 1
    functionLinenumber: 3896
    functionLinenumberEnd: 3929
    functionName: human_time
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 7
    functionsReached:
    - unlikely
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *human_time(int t, short hz_div)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:3950,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:3955,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:3959,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:3964,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:3969,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:3974,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:3979,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - dst
    - tm
    - date
    - size
    argTypes:
    - char*
    - struct tm*
    - struct timeval*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3985
      start: 3944
    functionDepth: 1
    functionLinenumber: 3944
    functionLinenumberEnd: 3985
    functionName: date2str_log
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - utoa_pad
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *date2str_log(char *dst, const struct tm *tm, const struct timeval
      *date, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct tm*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4012
      start: 3993
    functionDepth: 0
    functionLinenumber: 3993
    functionLinenumberEnd: 4012
    functionName: my_tm_diff
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int my_tm_diff(const struct tm *a, const struct tm *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/tools.c:4035,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/tools.c:4036,1
    - Dst: my_tm_diff
      Src: /src/haproxy/src/tools.c:4037,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:4046,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - t
    - tm
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4050
      start: 4019
    functionDepth: 1
    functionLinenumber: 4019
    functionLinenumberEnd: 4050
    functionName: get_gmt_offset
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - unlikely
    - my_tm_diff
    - snprintf
    - get_gmtime
    linkageType: ''
    returnType: char
    signature: char *get_gmt_offset(time_t t, struct tm *tm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4062,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:4067,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4071,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4076,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4081,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4086,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - dst
    - tm
    - size
    argTypes:
    - char*
    - struct tm*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4098
      start: 4057
    functionDepth: 1
    functionLinenumber: 4057
    functionLinenumberEnd: 4098
    functionName: gmt2str_log
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - utoa_pad
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *gmt2str_log(char *dst, struct tm *tm, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_gmt_offset
      Src: /src/haproxy/src/tools.c:4112,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4114,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:4119,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4123,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4128,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4133,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4138,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:4143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - dst
    - t
    - tm
    - size
    argTypes:
    - char*
    - time_t
    - struct tm*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4148
      start: 4106
    functionDepth: 2
    functionLinenumber: 4106
    functionLinenumberEnd: 4148
    functionName: localdate2str_log
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - utoa_pad
    - get_gmt_offset
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *localdate2str_log(char *dst, time_t t, struct tm *tm, size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: days_since_zero
      Src: /src/haproxy/src/tools.c:4188,1
    - Dst: days_since_zero
      Src: /src/haproxy/src/tools.c:4188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4202
      start: 4154
    functionDepth: 1
    functionLinenumber: 4154
    functionLinenumberEnd: 4202
    functionName: my_timegm
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - days_since_zero
    linkageType: ''
    returnType: time_t
    signature: time_t my_timegm(const struct tm *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - date
    - len
    - c
    argTypes:
    - char**
    - int*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4215
      start: 4208
    functionDepth: 0
    functionLinenumber: 4208
    functionLinenumberEnd: 4215
    functionName: parse_expect_char
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int parse_expect_char(const char **date, int *len, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:4222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - date
    - len
    - str
    - l
    argTypes:
    - char**
    - int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4227
      start: 4220
    functionDepth: 0
    functionLinenumber: 4220
    functionLinenumberEnd: 4227
    functionName: parse_strcmp
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int parse_strcmp(const char **date, int *len, char *str, int l)
  - 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: 4231
      start: 4230
    functionDepth: 0
    functionLinenumber: 4230
    functionLinenumberEnd: 4231
    functionName: STR2I3
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR2I3(__a, __b, __c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4246,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4247,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4248,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4249,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4250,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4251,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4252,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char**
    - int*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4259
      start: 4242
    functionDepth: 1
    functionLinenumber: 4242
    functionLinenumberEnd: 4259
    functionName: parse_http_dayname
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - STR2I3
    linkageType: ''
    returnType: int
    signature: int parse_http_dayname(const char **date, int *len, struct tm *tm)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4280,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4281,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4282,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4283,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4284,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4285,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4286,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4287,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4288,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4289,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4290,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4291,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4292,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char**
    - int*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4298
      start: 4276
    functionDepth: 1
    functionLinenumber: 4276
    functionLinenumberEnd: 4298
    functionName: parse_http_monthname
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - STR2I3
    linkageType: ''
    returnType: int
    signature: int parse_http_monthname(const char **date, int *len, struct tm *tm)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4314,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4315,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4316,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4316,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4319,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4320,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4320,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4323,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4324,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4324,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4327,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4328,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4328,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4331,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4332,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4332,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4335,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4336,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4336,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4339,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4340,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char**
    - int*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4310
    functionDepth: 1
    functionLinenumber: 4310
    functionLinenumberEnd: 4345
    functionName: parse_http_ldayname
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - STR2I3
    - parse_strcmp
    - RET0_UNLESS
    linkageType: ''
    returnType: int
    signature: int parse_http_ldayname(const char **date, int *len, struct tm *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - date
    - len
    - digit
    argTypes:
    - char**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4348
    functionDepth: 0
    functionLinenumber: 4348
    functionLinenumberEnd: 4356
    functionName: parse_digit
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int parse_digit(const char **date, int *len, int *digit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4363,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4363,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4365,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - date
    - len
    - digit
    argTypes:
    - char**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4369
      start: 4359
    functionDepth: 1
    functionLinenumber: 4359
    functionLinenumberEnd: 4369
    functionName: parse_2digit
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - parse_digit
    - RET0_UNLESS
    linkageType: ''
    returnType: int
    signature: int parse_2digit(const char **date, int *len, int *digit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4376,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4376,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4379,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4379,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4382,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4382,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4385,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - date
    - len
    - digit
    argTypes:
    - char**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4389
      start: 4372
    functionDepth: 1
    functionLinenumber: 4372
    functionLinenumberEnd: 4389
    functionName: parse_4digit
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - parse_digit
    - RET0_UNLESS
    linkageType: ''
    returnType: int
    signature: int parse_4digit(const char **date, int *len, int *digit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4400,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4400,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4401,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4401,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4402,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4402,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4403,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4403,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4404,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char**
    - int*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4406
      start: 4398
    functionDepth: 2
    functionLinenumber: 4398
    functionLinenumberEnd: 4406
    functionName: parse_http_time
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - parse_2digit
    - RET0_UNLESS
    - parse_expect_char
    linkageType: ''
    returnType: int
    signature: int parse_http_time(const char **date, int *len, struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/tools.c:4436,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4438,1
    - Dst: parse_http_dayname
      Src: /src/haproxy/src/tools.c:4438,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4439,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4439,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4440,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4440,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4441,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4441,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4442,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4442,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4443,1
    - Dst: parse_http_monthname
      Src: /src/haproxy/src/tools.c:4443,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4444,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4444,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4445,1
    - Dst: parse_4digit
      Src: /src/haproxy/src/tools.c:4445,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4447,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4447,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4448,1
    - Dst: parse_http_time
      Src: /src/haproxy/src/tools.c:4448,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4449,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4449,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4450,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char*
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4433
    functionDepth: 3
    functionLinenumber: 4433
    functionLinenumberEnd: 4453
    functionName: parse_imf_date
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - parse_2digit
    - memset
    - parse_http_time
    - parse_http_dayname
    - parse_expect_char
    - parse_4digit
    - parse_strcmp
    - parse_http_monthname
    - RET0_UNLESS
    linkageType: ''
    returnType: int
    signature: int parse_imf_date(const char *date, int len, struct tm *tm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/tools.c:4469,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4471,1
    - Dst: parse_http_ldayname
      Src: /src/haproxy/src/tools.c:4471,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4472,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4472,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4473,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4473,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4474,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4474,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4475,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4475,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4476,1
    - Dst: parse_http_monthname
      Src: /src/haproxy/src/tools.c:4476,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4477,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4477,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4486,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4486,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4489,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4491,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4491,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4494,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4494,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4504,1
    - Dst: parse_http_time
      Src: /src/haproxy/src/tools.c:4504,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4505,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4505,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4506,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char*
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4510
      start: 4464
    functionDepth: 3
    functionLinenumber: 4464
    functionLinenumberEnd: 4510
    functionName: parse_rfc850_date
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - parse_2digit
    - memset
    - parse_http_time
    - parse_expect_char
    - parse_strcmp
    - parse_http_monthname
    - parse_http_ldayname
    - RET0_UNLESS
    linkageType: ''
    returnType: int
    signature: int parse_rfc850_date(const char *date, int len, struct tm *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/tools.c:4526,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4528,1
    - Dst: parse_http_dayname
      Src: /src/haproxy/src/tools.c:4528,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4529,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4529,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4530,1
    - Dst: parse_http_monthname
      Src: /src/haproxy/src/tools.c:4530,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4531,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4531,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4534,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4535,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4535,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4537,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4537,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4539,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4539,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4540,1
    - Dst: parse_http_time
      Src: /src/haproxy/src/tools.c:4540,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4541,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4541,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4542,1
    - Dst: parse_4digit
      Src: /src/haproxy/src/tools.c:4542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char*
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4523
    functionDepth: 3
    functionLinenumber: 4523
    functionLinenumberEnd: 4546
    functionName: parse_asctime_date
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - parse_2digit
    - memset
    - parse_http_time
    - parse_http_dayname
    - parse_expect_char
    - parse_digit
    - parse_4digit
    - parse_http_monthname
    - RET0_UNLESS
    linkageType: ''
    returnType: int
    signature: int parse_asctime_date(const char *date, int len, struct tm *tm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_imf_date
      Src: /src/haproxy/src/tools.c:4561,1
    - Dst: parse_rfc850_date
      Src: /src/haproxy/src/tools.c:4564,1
    - Dst: parse_asctime_date
      Src: /src/haproxy/src/tools.c:4567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char*
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4571
      start: 4559
    functionDepth: 4
    functionLinenumber: 4559
    functionLinenumberEnd: 4571
    functionName: parse_http_date
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - parse_asctime_date
    - parse_imf_date
    - parse_rfc850_date
    linkageType: ''
    returnType: int
    signature: int parse_http_date(const char *date, int len, struct tm *tm)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:4602,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:4604,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:4606,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:4608,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 51
    argCount: 4
    argNames:
    - out
    - pfx
    - ns
    - sfx
    argTypes:
    - struct buffer*
    - char*
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4609
      start: 4578
    functionDepth: 1
    functionLinenumber: 4578
    functionLinenumberEnd: 4609
    functionName: print_time_short
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: int
    signature: int print_time_short(struct buffer *out, const char *pfx, uint64_t
      ns, const char *sfx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/haproxy/src/tools.c:4658,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/tools.c:4659,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:4660,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/tools.c:4673,1
    - Dst: ha_free
      Src: /src/haproxy/src/tools.c:4678,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:4681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - out
    - format
    - orig_args
    argTypes:
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4685
      start: 4641
    functionDepth: 3
    functionLinenumber: 4641
    functionLinenumberEnd: 4685
    functionName: memvprintf
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_copy
    - my_realloc2
    - vsnprintf
    - ha_free
    - free
    linkageType: ''
    returnType: char
    signature: char *memvprintf(char **out, const char *format, va_list orig_args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/tools.c:4692,1
    - Dst: memvprintf
      Src: /src/haproxy/src/tools.c:4693,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:4694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - format
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4697
      start: 4687
    functionDepth: 4
    functionLinenumber: 4687
    functionLinenumberEnd: 4697
    functionName: memprintf
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 229
    functionsReached:
    - va_end
    - va_start
    - memvprintf
    linkageType: ''
    returnType: char
    signature: char *memprintf(char **out, const char *format, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:4720,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:4728,1
    - Dst: malloc
      Src: /src/haproxy/src/tools.c:4745,1
    - Dst: unlikely
      Src: /src/haproxy/src/tools.c:4746,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:4758,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:4769,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - out
    - level
    argTypes:
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4773
      start: 4708
    functionDepth: 3
    functionLinenumber: 4708
    functionLinenumberEnd: 4773
    functionName: indent_msg
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - malloc
    - unlikely
    - memset
    - strchr
    - free
    - strlen
    linkageType: ''
    returnType: char
    signature: char *indent_msg(char **out, int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:4786,1
    - Dst: b_putblk
      Src: /src/haproxy/src/tools.c:4798,1
    - Dst: b_putchr
      Src: /src/haproxy/src/tools.c:4804,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - out
    - in
    - pfx
    - eol
    - first
    argTypes:
    - struct buffer*
    - char*
    - char*
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4808
      start: 4783
    functionDepth: 1
    functionLinenumber: 4783
    functionLinenumberEnd: 4808
    functionName: append_prefixed_str
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - b_putblk
    - b_putchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int append_prefixed_str(struct buffer *out, const char *in, const char
      *pfx, char eol, int first)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:4826,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:4831,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4818
    functionDepth: 0
    functionLinenumber: 4818
    functionLinenumberEnd: 4840
    functionName: my_unsetenv
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int my_unsetenv(const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/haproxy/src/tools.c:4886,1
    - Dst: getenv
      Src: /src/haproxy/src/tools.c:4897,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:4899,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/tools.c:4902,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:4904,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:4909,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:4913,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:4921,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4924
      start: 4850
    functionDepth: 3
    functionLinenumber: 4850
    functionLinenumberEnd: 4924
    functionName: env_expand
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - my_realloc2
    - memcpy
    - free
    - getenv
    - isalnum
    - strlen
    linkageType: ''
    returnType: char
    signature: char *env_expand(char *in)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:4944,1
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:4944,1
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:4961,1
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:4961,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 4
    argNames:
    - str1
    - len_str1
    - str2
    - len_str2
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4973
      start: 4928
    functionDepth: 0
    functionLinenumber: 4928
    functionLinenumberEnd: 4973
    functionName: strnistr
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - toupper
    linkageType: ''
    returnType: char
    signature: char *strnistr(const char *str1, int len_str1, const char *str2, int
      len_str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:4981,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:4981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - s1
    - s2
    - s3
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4982
      start: 4979
    functionDepth: 0
    functionLinenumber: 4979
    functionLinenumberEnd: 4982
    functionName: strordered
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int strordered(const char *s1, const char *s2, const char *s3)
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 68
    argCount: 3
    argNames:
    - s
    - len
    - c
    argTypes:
    - char*
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5102
      start: 4990
    functionDepth: 0
    functionLinenumber: 4990
    functionLinenumberEnd: 5102
    functionName: utf8_next
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char utf8_next(const char *s, int len, unsigned int *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/haproxy/src/tools.c:5117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5122
      start: 5113
    functionDepth: 0
    functionLinenumber: 5113
    functionLinenumberEnd: 5122
    functionName: may_access
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - stat
    linkageType: ''
    returnType: int
    signature: int may_access(const void *ptr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: isprint
      Src: /src/haproxy/src/tools.c:5136,1
    - Dst: isascii
      Src: /src/haproxy/src/tools.c:5136,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 47
    argCount: 3
    argNames:
    - out
    - buf
    - bsize
    argTypes:
    - struct buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5168
      start: 5129
    functionDepth: 0
    functionLinenumber: 5129
    functionLinenumberEnd: 5168
    functionName: dump_text
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - isprint
    - isascii
    linkageType: ''
    returnType: int
    signature: int dump_text(struct buffer *out, const char *buf, int bsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - out
    - buf
    - bsize
    argTypes:
    - struct buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5189
      start: 5173
    functionDepth: 0
    functionLinenumber: 5173
    functionLinenumberEnd: 5189
    functionName: dump_binary
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dump_binary(struct buffer *out, const char *buf, int bsize)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5208,1
    - Dst: may_access
      Src: /src/haproxy/src/tools.c:5212,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5217,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5219,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5221,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5224,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5226,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5229,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5231,1
    - Dst: isprint
      Src: /src/haproxy/src/tools.c:5232,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5233,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5235,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5237,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 5
    argNames:
    - out
    - pfx
    - buf
    - len
    - unsafe
    argTypes:
    - struct buffer*
    - char*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5239
      start: 5199
    functionDepth: 1
    functionLinenumber: 5199
    functionLinenumberEnd: 5239
    functionName: dump_hex
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - isprint
    - chunk_strcat
    - may_access
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void dump_hex(struct buffer *out, const char *pfx, const void *buf,
      int len, int unsafe)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5259,1
    - Dst: may_access
      Src: /src/haproxy/src/tools.c:5268,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5270,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - buf
    - pfx
    - addr
    - n
    argTypes:
    - struct buffer*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5274
      start: 5254
    functionDepth: 1
    functionLinenumber: 5254
    functionLinenumberEnd: 5274
    functionName: dump_addr_and_bytes
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - may_access
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void dump_addr_and_bytes(struct buffer *buf, const char *pfx, const
      void *addr, int n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5288,1
    - Dst: dump_addr_and_bytes
      Src: /src/haproxy/src/tools.c:5295,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5296,1
    - Dst: may_access
      Src: /src/haproxy/src/tools.c:5298,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5299,1
    - Dst: isprint
      Src: /src/haproxy/src/tools.c:5300,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5301,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5303,1
    - Dst: may_access
      Src: /src/haproxy/src/tools.c:5306,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5313,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5318,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/tools.c:5319,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5323,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 6
    argNames:
    - output
    - base
    - addr
    - special
    - spec_type
    - spec_name
    argTypes:
    - struct buffer*
    - void*
    - void*
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5326
      start: 5282
    functionDepth: 2
    functionLinenumber: 5282
    functionLinenumberEnd: 5326
    functionName: dump_area_with_syms
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - isprint
    - chunk_strcat
    - chunk_appendf
    - may_access
    - dump_addr_and_bytes
    - resolve_sym_name
    linkageType: ''
    returnType: void
    signature: "void dump_area_with_syms(struct buffer *output, const void *base,
      const void *addr,\n                         const void *special, const char
      *spec_type, const char *spec_name)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5346,1
    - Dst: isprint
      Src: /src/haproxy/src/tools.c:5350,1
    - Dst: isascii
      Src: /src/haproxy/src/tools.c:5350,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 6
    argNames:
    - out
    - buf
    - bsize
    - len
    - line
    - ptr
    argTypes:
    - struct buffer*
    - char*
    - int
    - int
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5384
      start: 5336
    functionDepth: 1
    functionLinenumber: 5336
    functionLinenumberEnd: 5384
    functionName: dump_text_line
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - isprint
    - chunk_appendf
    - isascii
    linkageType: ''
    returnType: int
    signature: "int dump_text_line(struct buffer *out, const char *buf, int bsize,
      int len,\n                   int *line, int ptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:5398,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:5401,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:5403,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5407,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5409,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:5413,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:5415,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:5418,1
    - Dst: isprint
      Src: /src/haproxy/src/tools.c:5421,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5422,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5424,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5427,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5429,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - out
    - pfx
    - buf
    - baseaddr
    - len
    argTypes:
    - FILE*
    - char*
    - char*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5431
      start: 5390
    functionDepth: 0
    functionLinenumber: 5390
    functionLinenumberEnd: 5431
    functionName: debug_hexdump
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 5
    functionsReached:
    - fprintf
    - isprint
    - fputc
    linkageType: ''
    returnType: void
    signature: "void debug_hexdump(FILE *out, const char *pfx, const char *buf,\n
      \                  unsigned int baseaddr, int len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getauxval
      Src: /src/haproxy/src/tools.c:5441,1
    - Dst: elf_aux_info
      Src: /src/haproxy/src/tools.c:5458,1
    - Dst: _dlauxinfo
      Src: /src/haproxy/src/tools.c:5464,1
    - Dst: getexecname
      Src: /src/haproxy/src/tools.c:5471,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5474
      start: 5436
    functionDepth: 0
    functionLinenumber: 5436
    functionLinenumberEnd: 5474
    functionName: get_exec_path
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - _dlauxinfo
    - elf_aux_info
    - getauxval
    - getexecname
    linkageType: ''
    returnType: char
    signature: char *get_exec_path()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dladdr1
      Src: /src/haproxy/src/tools.c:5486,1
    - Dst: dladdr
      Src: /src/haproxy/src/tools.c:5491,1
    - Dst: dladdr
      Src: /src/haproxy/src/tools.c:5493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - addr
    - dli
    - size
    argTypes:
    - void*
    - Dl_info*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5498
      start: 5480
    functionDepth: 0
    functionLinenumber: 5480
    functionLinenumberEnd: 5498
    functionName: dladdr_and_size
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - dladdr1
    - dladdr
    linkageType: ''
    returnType: int
    signature: int dladdr_and_size(const void *addr, Dl_info *dli, size_t *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dladdr_and_size
      Src: /src/haproxy/src/tools.c:5512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5516
      start: 5506
    functionDepth: 1
    functionLinenumber: 5506
    functionLinenumberEnd: 5516
    functionName: check_if_static_build
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - dladdr_and_size
    linkageType: ''
    returnType: void
    signature: void check_if_static_build()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/haproxy/src/tools.c:5530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5533
      start: 5524
    functionDepth: 0
    functionLinenumber: 5524
    functionLinenumberEnd: 5533
    functionName: get_sym_curr_addr
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - dlsym
    linkageType: ''
    returnType: void
    signature: void *get_sym_curr_addr(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/haproxy/src/tools.c:5546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5549
      start: 5540
    functionDepth: 0
    functionLinenumber: 5540
    functionLinenumberEnd: 5549
    functionName: get_sym_next_addr
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - dlsym
    linkageType: ''
    returnType: void
    signature: void *get_sym_next_addr(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5554
    functionDepth: 0
    functionLinenumber: 5554
    functionLinenumberEnd: 5557
    functionName: get_sym_curr_addr
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *get_sym_curr_addr(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5562
      start: 5559
    functionDepth: 0
    functionLinenumber: 5559
    functionLinenumberEnd: 5562
    functionName: get_sym_next_addr
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *get_sym_next_addr(const char *name)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5590,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5591,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5592,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5593,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5594,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5595,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5596,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5597,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5598,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5599,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5600,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5601,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5602,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5603,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5604,1
    - Dst: ha_dump_backtrace
      Src: /src/haproxy/src/tools.c:5604,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5605,1
    - Dst: cli_io_handler
      Src: /src/haproxy/src/tools.c:5605,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5607,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5610,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5613,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5614,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5617,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5619,1
    - Dst: defined
      Src: /src/haproxy/src/tools.c:5622,1
    - Dst: defined
      Src: /src/haproxy/src/tools.c:5622,1
    - Dst: defined
      Src: /src/haproxy/src/tools.c:5622,1
    - Dst: __decl_thread_var
      Src: /src/haproxy/src/tools.c:5625,1
    - Dst: best_idx
      Src: /src/haproxy/src/tools.c:5633,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5636,1
    - Dst: thread_isolated
      Src: /src/haproxy/src/tools.c:5669,1
    - Dst: get_tainted
      Src: /src/haproxy/src/tools.c:5669,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/tools.c:5672,1
    - Dst: sigemptyset
      Src: /src/haproxy/src/tools.c:5679,1
    - Dst: sigaddset
      Src: /src/haproxy/src/tools.c:5681,1
    - Dst: sigaddset
      Src: /src/haproxy/src/tools.c:5684,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/tools.c:5686,1
    - Dst: dladdr_and_size
      Src: /src/haproxy/src/tools.c:5689,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/tools.c:5693,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/tools.c:5696,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/tools.c:5707,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/tools.c:5710,1
    - Dst: dladdr
      Src: /src/haproxy/src/tools.c:5712,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/tools.c:5714,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/tools.c:5717,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/tools.c:5721,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/tools.c:5724,1
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:5728,1
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:5731,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:5733,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5735,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5741,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5743,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5745,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5751,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5760,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5762,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5766,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5768,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 72
    argCount: 3
    argNames:
    - buf
    - pfx
    - addr
    argTypes:
    - struct buffer*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5770
      start: 5584
    functionDepth: 5
    functionLinenumber: 5584
    functionLinenumberEnd: 5770
    functionName: resolve_sym_name
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 11
    functionsReached:
    - HA_ATOMIC_LOAD
    - chunk_appendf
    - HA_ATOMIC_STORE
    - ha_sigmask
    - dladdr_and_size
    - sigaddset
    - thread_isolated
    - strchr
    - ha_dump_backtrace
    - cli_io_handler
    - HA_ATOMIC_CAS
    - HA_SPIN_TRYLOCK
    - best_idx
    - get_tainted
    - strrchr
    - sigemptyset
    - DEF_SYM
    - defined
    - ha_thread_relax
    - HA_SPIN_UNLOCK
    - __decl_thread_var
    - dladdr
    - strlen
    linkageType: ''
    returnType: void
    signature: void *resolve_sym_name(struct buffer *buf, const char *pfx, const void
      *addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dladdr_and_size
      Src: /src/haproxy/src/tools.c:5788,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5792,1
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:5798,1
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:5801,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:5803,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5804,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5810,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - buf
    - pfx
    - addr
    argTypes:
    - struct buffer*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5812
      start: 5780
    functionDepth: 1
    functionLinenumber: 5780
    functionLinenumberEnd: 5812
    functionName: resolve_dso_name
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - dladdr_and_size
    - chunk_appendf
    - strrchr
    - strchr
    - strlen
    linkageType: ''
    returnType: void
    signature: void *resolve_dso_name(struct buffer *buf, const char *pfx, const void
      *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy2
      Src: /src/haproxy/src/tools.c:5863,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/tools.c:5864,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/tools.c:5865,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:5866,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:5867,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:5875,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:5876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - output
    - pfx
    - fname
    - link
    - size
    - mode
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - size_t
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5877
      start: 5821
    functionDepth: 1
    functionLinenumber: 5821
    functionLinenumberEnd: 5877
    functionName: make_tar_header
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - strlcpy2
    - memcpy
    - snprintf
    linkageType: ''
    returnType: void
    signature: void make_tar_header(char *output, const char *pfx, const char *fname,
      const char *link, size_t size, mode_t mode)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:5902,1
    - Dst: stat
      Src: /src/haproxy/src/tools.c:5911,1
    - Dst: open
      Src: /src/haproxy/src/tools.c:5927,1
    - Dst: realloc
      Src: /src/haproxy/src/tools.c:5937,1
    - Dst: make_tar_header
      Src: /src/haproxy/src/tools.c:5945,1
    - Dst: read
      Src: /src/haproxy/src/tools.c:5947,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:5951,1
    - Dst: close
      Src: /src/haproxy/src/tools.c:5955,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 6
    argNames:
    - storage
    - size
    - pfx
    - fname
    - input
    - link
    argTypes:
    - char**
    - size_t*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5957
      start: 5889
    functionDepth: 2
    functionLinenumber: 5889
    functionLinenumberEnd: 5957
    functionName: load_file_into_tar
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memset
    - close
    - stat
    - strrchr
    - open
    - realloc
    - read
    - make_tar_header
    linkageType: ''
    returnType: int
    signature: int load_file_into_tar(char **storage, size_t *size, const char *pfx,
      const char *fname, const char *input, const char *link)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_exec_path
      Src: /src/haproxy/src/tools.c:5987,1
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:5988,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:6017,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:6022,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - info
    - size
    - data
    argTypes:
    - struct dl_phdr_info*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6025
      start: 5976
    functionDepth: 1
    functionLinenumber: 5976
    functionLinenumberEnd: 6025
    functionName: dl_dump_libs_cb
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - get_exec_path
    - chunk_appendf
    - strchr
    linkageType: ''
    returnType: int
    signature: int dl_dump_libs_cb(struct dl_phdr_info *info, size_t size, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dl_iterate_phdr
      Src: /src/haproxy/src/tools.c:6033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - output
    - with_addr
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6035
      start: 6028
    functionDepth: 0
    functionLinenumber: 6028
    functionLinenumberEnd: 6035
    functionName: dump_libs
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - dl_iterate_phdr
    linkageType: ''
    returnType: int
    signature: int dump_libs(struct buffer *output, int with_addr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_exec_path
      Src: /src/haproxy/src/tools.c:6055,1
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:6056,1
    - Dst: load_file_into_tar
      Src: /src/haproxy/src/tools.c:6065,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:6071,1
    - Dst: load_file_into_tar
      Src: /src/haproxy/src/tools.c:6072,1
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:6077,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:6080,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:6081,1
    - Dst: strncpy
      Src: /src/haproxy/src/tools.c:6083,1
    - Dst: MIN
      Src: /src/haproxy/src/tools.c:6084,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - info
    - size
    - data
    argTypes:
    - struct dl_phdr_info*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6091
      start: 6046
    functionDepth: 3
    functionLinenumber: 6046
    functionLinenumberEnd: 6091
    functionName: dl_collect_libs_cb
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - strncpy
    - get_exec_path
    - strrchr
    - strchr
    - strncmp
    - MIN
    - load_file_into_tar
    - snprintf
    linkageType: ''
    returnType: int
    signature: int dl_collect_libs_cb(struct dl_phdr_info *info, size_t size, void
      *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/haproxy/src/tools.c:6098,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:6105,1
    - Dst: getpid
      Src: /src/haproxy/src/tools.c:6105,1
    - Dst: dl_iterate_phdr
      Src: /src/haproxy/src/tools.c:6109,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:6122,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/tools.c:6122,1
    - Dst: load_file_into_tar
      Src: /src/haproxy/src/tools.c:6123,1
    - Dst: mmap
      Src: /src/haproxy/src/tools.c:6134,1
    - Dst: mprotect
      Src: /src/haproxy/src/tools.c:6138,1
    - Dst: mprotect
      Src: /src/haproxy/src/tools.c:6139,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:6143,1
    - Dst: mprotect
      Src: /src/haproxy/src/tools.c:6144,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/tools.c:6145,1
    - Dst: ha_free
      Src: /src/haproxy/src/tools.c:6152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6153
      start: 6094
    functionDepth: 3
    functionLinenumber: 6094
    functionLinenumberEnd: 6153
    functionName: collect_libs
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - getpid
    - DISGUISE
    - vma_set_name
    - memcpy
    - mmap
    - ha_free
    - dl_iterate_phdr
    - mprotect
    - load_file_into_tar
    - sysconf
    - snprintf
    linkageType: ''
    returnType: void
    signature: void collect_libs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - output
    - with_addr
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6163
      start: 6160
    functionDepth: 0
    functionLinenumber: 6160
    functionLinenumberEnd: 6163
    functionName: dump_libs
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dump_libs(struct buffer *output, int with_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6168
      start: 6166
    functionDepth: 0
    functionLinenumber: 6166
    functionLinenumberEnd: 6168
    functionName: collect_libs
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void collect_libs(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:6189,1
    - Dst: read_uint
      Src: /src/haproxy/src/tools.c:6198,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:6203,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/tools.c:6207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - str
    - nums
    - sz
    argTypes:
    - char*
    - unsigned int**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6216
      start: 6182
    functionDepth: 3
    functionLinenumber: 6182
    functionLinenumberEnd: 6216
    functionName: parse_dotted_uints
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - my_realloc2
    - read_uint
    - free
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_dotted_uints(const char *str, unsigned int **nums, size_t
      *sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6236
      start: 6222
    functionDepth: 0
    functionLinenumber: 6222
    functionLinenumberEnd: 6236
    functionName: varint_bytes
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int varint_bytes(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl64
      Src: /src/haproxy/src/tools.c:6259,1
    - Dst: rotl64
      Src: /src/haproxy/src/tools.c:6267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6269
      start: 6257
    functionDepth: 1
    functionLinenumber: 6257
    functionLinenumberEnd: 6269
    functionName: _ha_random64_internal
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - rotl64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _ha_random64_internal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ha_random64_internal
      Src: /src/haproxy/src/tools.c:6277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6278
      start: 6275
    functionDepth: 2
    functionLinenumber: 6275
    functionLinenumberEnd: 6278
    functionName: ha_random64_internal
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - _ha_random64_internal
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ha_random64_internal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_random64_internal
      Src: /src/haproxy/src/tools.c:6298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - table
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6306
      start: 6284
    functionDepth: 3
    functionLinenumber: 6284
    functionLinenumberEnd: 6306
    functionName: _ha_random_jump
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - ha_random64_internal
    linkageType: ''
    returnType: void
    signature: void _ha_random_jump(const uint64_t *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/tools.c:6319,1
    - Dst: _ha_random_jump
      Src: /src/haproxy/src/tools.c:6321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dist
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6322
      start: 6315
    functionDepth: 4
    functionLinenumber: 6315
    functionLinenumberEnd: 6322
    functionName: ha_random_jump128
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - _ha_random_jump
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void ha_random_jump128(uint32_t dist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/tools.c:6335,1
    - Dst: _ha_random_jump
      Src: /src/haproxy/src/tools.c:6337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dist
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6338
      start: 6331
    functionDepth: 4
    functionLinenumber: 6331
    functionLinenumberEnd: 6338
    functionName: ha_random_jump192
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - _ha_random_jump
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void ha_random_jump192(uint32_t dist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/tools.c:6351,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:6366,1
    - Dst: XXH3_generateSecret
      Src: /src/haproxy/src/tools.c:6369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - seed
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6370
      start: 6343
    functionDepth: 0
    functionLinenumber: 6343
    functionLinenumberEnd: 6370
    functionName: ha_random_seed
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - XXH3_generateSecret
    linkageType: ''
    returnType: void
    signature: void ha_random_seed(const unsigned char *seed, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_random_seed
      Src: /src/haproxy/src/tools.c:6377,1
    - Dst: ha_random_jump192
      Src: /src/haproxy/src/tools.c:6378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6379
      start: 6373
    functionDepth: 5
    functionLinenumber: 6373
    functionLinenumberEnd: 6379
    functionName: ha_random_seed_thread
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - ha_random_jump192
    - ha_random_seed
    linkageType: ''
    returnType: void
    signature: void ha_random_seed_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ha_random64_internal
      Src: /src/haproxy/src/tools.c:6389,1
    - Dst: XXH3_64bits_withSecretandSeed
      Src: /src/haproxy/src/tools.c:6390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6393
      start: 6385
    functionDepth: 2
    functionLinenumber: 6385
    functionLinenumberEnd: 6393
    functionName: ha_random64
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - _ha_random64_internal
    - XXH3_64bits_withSecretandSeed
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ha_random64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_128bits_withSecretandSeed
      Src: /src/haproxy/src/tools.c:6404,1
    - Dst: _ha_random64_internal
      Src: /src/haproxy/src/tools.c:6408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6410
      start: 6401
    functionDepth: 2
    functionLinenumber: 6401
    functionLinenumberEnd: 6410
    functionName: _ha_random64_pair_hashed
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - _ha_random64_internal
    - XXH3_128bits_withSecretandSeed
    linkageType: ''
    returnType: struct uint64_pair
    signature: struct uint64_pair _ha_random64_pair_hashed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_random64_pair_hashed
      Src: /src/haproxy/src/tools.c:6419,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tools.c:6420,1
    - Dst: rotl64
      Src: /src/haproxy/src/tools.c:6425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - output
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6426
      start: 6415
    functionDepth: 1
    functionLinenumber: 6415
    functionLinenumberEnd: 6426
    functionName: ha_generate_uuid_v4
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - rotl64
    - ha_random64_pair_hashed
    linkageType: ''
    returnType: void
    signature: void ha_generate_uuid_v4(struct buffer *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_random64_pair_hashed
      Src: /src/haproxy/src/tools.c:6438,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tools.c:6439,1
    - Dst: rotl64
      Src: /src/haproxy/src/tools.c:6444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6445
      start: 6431
    functionDepth: 1
    functionLinenumber: 6431
    functionLinenumberEnd: 6445
    functionName: ha_generate_uuid_v7
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - rotl64
    - ha_random64_pair_hashed
    linkageType: ''
    returnType: void
    signature: void ha_generate_uuid_v7(struct buffer *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/tools.c:6454,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/tools.c:6456,1
    - Dst: stat
      Src: /src/haproxy/src/tools.c:6460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - mode
    - path_fmt
    - args
    argTypes:
    - mode_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6464
      start: 6449
    functionDepth: 1
    functionLinenumber: 6449
    functionLinenumberEnd: 6464
    functionName: _is_path_mode
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - stat
    - vsnprintf
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int _is_path_mode(mode_t mode, const char *path_fmt, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/tools.c:6476,1
    - Dst: _is_path_mode
      Src: /src/haproxy/src/tools.c:6477,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:6478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mode
    - path_fmt
    argTypes:
    - mode_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6480
      start: 6471
    functionDepth: 2
    functionLinenumber: 6471
    functionLinenumberEnd: 6480
    functionName: is_path_mode
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - _is_path_mode
    linkageType: ''
    returnType: int
    signature: int is_path_mode(mode_t mode, const char *path_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/tools.c:6491,1
    - Dst: _is_path_mode
      Src: /src/haproxy/src/tools.c:6492,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:6493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - path_fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6495
      start: 6486
    functionDepth: 2
    functionLinenumber: 6486
    functionLinenumberEnd: 6495
    functionName: is_file_present
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - _is_path_mode
    linkageType: ''
    returnType: int
    signature: int is_file_present(const char *path_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/tools.c:6506,1
    - Dst: _is_path_mode
      Src: /src/haproxy/src/tools.c:6507,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:6508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - path_fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6510
      start: 6501
    functionDepth: 2
    functionLinenumber: 6501
    functionLinenumberEnd: 6510
    functionName: is_dir_present
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - _is_path_mode
    linkageType: ''
    returnType: int
    signature: int is_dir_present(const char *path_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6528
      start: 6516
    functionDepth: 0
    functionLinenumber: 6516
    functionLinenumberEnd: 6528
    functionName: EMIT_CHAR
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_CHAR(x)
  - BBCount: 71
    BranchProfiles: []
    Callsites:
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6594,1
    - Dst: ishex
      Src: /src/haproxy/src/tools.c:6691,1
    - Dst: ishex
      Src: /src/haproxy/src/tools.c:6691,1
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:6698,1
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:6699,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6712,1
    - Dst: isspace
      Src: /src/haproxy/src/tools.c:6714,1
    - Dst: isspace
      Src: /src/haproxy/src/tools.c:6717,1
    - Dst: isalpha
      Src: /src/haproxy/src/tools.c:6733,1
    - Dst: isalnum
      Src: /src/haproxy/src/tools.c:6744,1
    - Dst: unlikely
      Src: /src/haproxy/src/tools.c:6749,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:6751,1
    - Dst: ultoa
      Src: /src/haproxy/src/tools.c:6752,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:6753,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:6755,1
    - Dst: getenv
      Src: /src/haproxy/src/tools.c:6765,1
    - Dst: isspace
      Src: /src/haproxy/src/tools.c:6822,1
    - Dst: isspace
      Src: /src/haproxy/src/tools.c:6826,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6830,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6842,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6863,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6877,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6887,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6902,1
    CyclomaticComplexity: 125
    EdgeCount: 125
    ICount: 263
    argCount: 7
    argNames:
    - in
    - out
    - outlen
    - args
    - nbargs
    - opts
    - errptr
    argTypes:
    - char*
    - char*
    - size_t*
    - char**
    - int*
    - uint32_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6920
      start: 6555
    functionDepth: 1
    functionLinenumber: 6555
    functionLinenumberEnd: 6920
    functionName: parse_line
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - isspace
    - unlikely
    - strcmp
    - getenv
    - ishex
    - toupper
    - isalpha
    - EMIT_CHAR
    - isalnum
    - ultoa
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t parse_line(char *in, char *out, size_t *outlen, char **args,
      int *nbargs, uint32_t opts, const char **errptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/tools.c:6938,1
    - Dst: va_start
      Src: /src/haproxy/src/tools.c:6940,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/tools.c:6941,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:6942,1
    - Dst: fopen
      Src: /src/haproxy/src/tools.c:6947,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tools.c:6952,1
    - Dst: fgets
      Src: /src/haproxy/src/tools.c:6953,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:6954,1
    - Dst: feof
      Src: /src/haproxy/src/tools.c:6961,1
    - Dst: fclose
      Src: /src/haproxy/src/tools.c:6966,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - path_fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6968
      start: 6932
    functionDepth: 1
    functionLinenumber: 6932
    functionLinenumberEnd: 6968
    functionName: read_line_to_trash
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - va_end
    - fclose
    - vsnprintf
    - va_start
    - feof
    - chunk_reset
    - fopen
    - fgets
    - strlen
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_line_to_trash(const char *path_fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/haproxy/src/tools.c:6997,1
    - Dst: isprint
      Src: /src/haproxy/src/tools.c:6999,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - line
    - pos
    - width
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7013
      start: 6978
    functionDepth: 0
    functionLinenumber: 6978
    functionLinenumberEnd: 7013
    functionName: sanitize_for_printing
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - isspace
    - isprint
    linkageType: ''
    returnType: size_t
    signature: size_t sanitize_for_printing(char *line, size_t pos, size_t width)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istend
      Src: /src/haproxy/src/tools.c:7028,1
    - Dst: tolower
      Src: /src/haproxy/src/tools.c:7029,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - fp
    - word
    argTypes:
    - uint8_t*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7041
      start: 7021
    functionDepth: 1
    functionLinenumber: 7021
    functionLinenumberEnd: 7041
    functionName: update_word_fingerprint_with_len
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - tolower
    - istend
    linkageType: ''
    returnType: void
    signature: void update_word_fingerprint_with_len(uint8_t *fp, struct ist word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_word_fingerprint_with_len
      Src: /src/haproxy/src/tools.c:7051,1
    - Dst: ist
      Src: /src/haproxy/src/tools.c:7051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - word
    argTypes:
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7052
      start: 7049
    functionDepth: 2
    functionLinenumber: 7049
    functionLinenumberEnd: 7052
    functionName: update_word_fingerprint
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - update_word_fingerprint_with_len
    - ist
    linkageType: ''
    returnType: void
    signature: void update_word_fingerprint(uint8_t *fp, const char *word)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/src/tools.c:7066,1
    - Dst: make_word_fingerprint_with_len
      Src: /src/haproxy/src/tools.c:7069,1
    - Dst: ist
      Src: /src/haproxy/src/tools.c:7071,1
    - Dst: istfind
      Src: /src/haproxy/src/tools.c:7072,1
    - Dst: make_word_fingerprint_with_len
      Src: /src/haproxy/src/tools.c:7073,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/tools.c:7074,1
    - Dst: isttest
      Src: /src/haproxy/src/tools.c:7084,1
    - Dst: istlen
      Src: /src/haproxy/src/tools.c:7085,1
    - Dst: istlen
      Src: /src/haproxy/src/tools.c:7085,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - word
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7088
      start: 7057
    functionDepth: 1
    functionLinenumber: 7057
    functionLinenumberEnd: 7088
    functionName: env_suggest
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - ist
    - make_word_fingerprint_with_len
    - word_fingerprint_distance
    - istfind
    - istlen
    - isttest
    linkageType: ''
    returnType: struct ist
    signature: struct ist env_suggest(struct ist word)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:7107,1
    - Dst: HA_ANON
      Src: /src/haproxy/src/tools.c:7108,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:7108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - scramble
    - string2hash
    - prefix
    - suffix
    argTypes:
    - uint32_t
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7113
      start: 7096
    functionDepth: 1
    functionLinenumber: 7096
    functionLinenumberEnd: 7113
    functionName: hash_anon
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - HA_ANON
    - snprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: char *hash_anon(uint32_t scramble, const char *string2hash, const char
      *prefix, const char *suffix)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:7135,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:7136,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:7137,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:7138,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:7139,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:7144,1
    - Dst: str2ip2
      Src: /src/haproxy/src/tools.c:7145,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/tools.c:7146,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/tools.c:7151,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/tools.c:7155,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/tools.c:7158,1
    - Dst: get_host_port
      Src: /src/haproxy/src/tools.c:7159,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:7163,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:7163,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:7163,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:7168,1
    - Dst: HA_ANON
      Src: /src/haproxy/src/tools.c:7168,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:7168,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:7172,1
    - Dst: HA_ANON
      Src: /src/haproxy/src/tools.c:7172,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:7172,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:7179,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:7184,1
    - Dst: HA_ANON
      Src: /src/haproxy/src/tools.c:7184,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:7184,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:7188,1
    - Dst: HA_ANON
      Src: /src/haproxy/src/tools.c:7188,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:7188,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/tools.c:7197,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 3
    argNames:
    - scramble
    - ipstring
    - hasport
    argTypes:
    - uint32_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7206
      start: 7120
    functionDepth: 4
    functionLinenumber: 7120
    functionLinenumberEnd: 7206
    functionName: hash_ipanon
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - HA_ANON_STR
    - memset
    - strcmp
    - get_host_port
    - strncmp
    - HA_ANON
    - str2sa_range
    - addr_to_str
    - str2ip2
    - snprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: char *hash_ipanon(uint32_t scramble, char *ipstring, int hasport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/tools.c:7215,1
    - Dst: update_word_fingerprint
      Src: /src/haproxy/src/tools.c:7216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - word
    argTypes:
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7217
      start: 7213
    functionDepth: 3
    functionLinenumber: 7213
    functionLinenumberEnd: 7217
    functionName: make_word_fingerprint
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - memset
    - update_word_fingerprint
    linkageType: ''
    returnType: void
    signature: void make_word_fingerprint(uint8_t *fp, const char *word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/tools.c:7226,1
    - Dst: update_word_fingerprint_with_len
      Src: /src/haproxy/src/tools.c:7227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - word
    argTypes:
    - uint8_t*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7228
      start: 7224
    functionDepth: 2
    functionLinenumber: 7224
    functionLinenumberEnd: 7228
    functionName: make_word_fingerprint_with_len
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - update_word_fingerprint_with_len
    - memset
    linkageType: ''
    returnType: void
    signature: void make_word_fingerprint_with_len(uint8_t *fp, struct ist word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/haproxy/src/tools.c:7240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fp1
    - fp2
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7243
      start: 7234
    functionDepth: 0
    functionLinenumber: 7234
    functionLinenumberEnd: 7243
    functionName: word_fingerprint_distance
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 5
    functionsReached:
    - abs
    linkageType: ''
    returnType: int
    signature: int word_fingerprint_distance(const uint8_t *fp1, const uint8_t *fp2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/tools.c:7263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - version
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7276
      start: 7257
    functionDepth: 0
    functionLinenumber: 7257
    functionLinenumberEnd: 7276
    functionName: awslc_compare_current_api
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - strtol
    linkageType: ''
    returnType: int
    signature: int awslc_compare_current_api(const char *version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: openssl_version_parser
      Src: /src/haproxy/src/tools.c:7295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - version
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7308
      start: 7290
    functionDepth: 1
    functionLinenumber: 7290
    functionLinenumberEnd: 7308
    functionName: openssl_compare_current_version
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - openssl_version_parser
    linkageType: ''
    returnType: int
    signature: int openssl_compare_current_version(const char *version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/tools.c:7319,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:7322,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:7323,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:7323,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:7324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7328
      start: 7315
    functionDepth: 1
    functionLinenumber: 7315
    functionLinenumberEnd: 7328
    functionName: openssl_compare_current_name
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - OpenSSL_version
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int openssl_compare_current_name(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/haproxy/src/tools.c:7351,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tools.c:7355,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:7392,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:7394,1
    - Dst: prctl
      Src: /src/haproxy/src/tools.c:7405,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - addr
    - size
    - type
    - name
    - id
    argTypes:
    - void*
    - size_t
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7410
      start: 7349
    functionDepth: 1
    functionLinenumber: 7349
    functionLinenumberEnd: 7410
    functionName: vma_set_name_id
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - sysconf
    - prctl
    - BUG_ON
    - snprintf
    linkageType: ''
    returnType: void
    signature: void vma_set_name_id(void *addr, size_t size, const char *type, const
      char *name, unsigned int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vma_set_name_id
      Src: /src/haproxy/src/tools.c:7415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - addr
    - size
    - type
    - name
    argTypes:
    - void*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7416
      start: 7413
    functionDepth: 2
    functionLinenumber: 7413
    functionLinenumberEnd: 7416
    functionName: vma_set_name
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - vma_set_name_id
    linkageType: ''
    returnType: void
    signature: void vma_set_name(void *addr, size_t size, const char *type, const
      char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/tools.c:7469,1
    - Dst: get_sym_curr_addr
      Src: /src/haproxy/src/tools.c:7485,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/tools.c:7486,1
    - Dst: _dlopen
      Src: /src/haproxy/src/tools.c:7492,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/tools.c:7496,1
    - Dst: dlsym
      Src: /src/haproxy/src/tools.c:7501,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/tools.c:7528,1
    - Dst: hlua_show_current_location
      Src: /src/haproxy/src/tools.c:7530,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tools.c:7531,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 2
    argNames:
    - filename
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7539
      start: 7437
    functionDepth: 1
    functionLinenumber: 7437
    functionLinenumberEnd: 7539
    functionName: dlopen
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - mark_tainted
    - get_sym_next_addr
    - dlsym
    - get_sym_curr_addr
    - ha_warning
    - hlua_show_current_location
    - _dlopen
    linkageType: ''
    returnType: void
    signature: void *dlopen(const char *filename, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_random32
      Src: /src/haproxy/src/tools.c:7545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7549
      start: 7542
    functionDepth: 1
    functionLinenumber: 7542
    functionLinenumberEnd: 7549
    functionName: init_tools_per_thread
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - ha_random32
    linkageType: ''
    returnType: int
    signature: int init_tools_per_thread()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/haproxy/src/tools.c:7577,1
    - Dst: MIN
      Src: /src/haproxy/src/tools.c:7585,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:7588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - buf
    - size
    - position
    - end
    argTypes:
    - char*
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7593
      start: 7560
    functionDepth: 0
    functionLinenumber: 7560
    functionLinenumberEnd: 7593
    functionName: fgets_from_mem
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memchr
    - MIN
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *fgets_from_mem(char* buf, int size, const char **position, const
      char *end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/tools.c:7607,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tools.c:7609,1
    - Dst: strdup
      Src: /src/haproxy/src/tools.c:7614,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tools.c:7616,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:7620,1
    - Dst: ha_free
      Src: /src/haproxy/src/tools.c:7623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7632
      start: 7598
    functionDepth: 3
    functionLinenumber: 7598
    functionLinenumberEnd: 7632
    functionName: backup_env
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - malloc
    - ha_free
    - free
    - ha_alert
    - strdup
    linkageType: ''
    returnType: int
    signature: int backup_env(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:7649,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tools.c:7653,1
    - Dst: my_strndup
      Src: /src/haproxy/src/tools.c:7658,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tools.c:7660,1
    - Dst: my_unsetenv
      Src: /src/haproxy/src/tools.c:7665,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:7667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7671
      start: 7642
    functionDepth: 3
    functionLinenumber: 7642
    functionLinenumberEnd: 7671
    functionName: clean_env
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - my_unsetenv
    - strchr
    - free
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int clean_env(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/tools.c:7689,1
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:7693,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tools.c:7695,1
    - Dst: setenv
      Src: /src/haproxy/src/tools.c:7705,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tools.c:7707,1
    - Dst: strerror
      Src: /src/haproxy/src/tools.c:7708,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tools.c:7710,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7719
      start: 7683
    functionDepth: 1
    functionLinenumber: 7683
    functionLinenumberEnd: 7719
    functionName: restore_env
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - strerror
    - setenv
    - strchr
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int restore_env(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/tools.c:7742,1
    - Dst: cebus_item_lookup
      Src: /src/haproxy/src/tools.c:7743,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/tools.c:7744,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:7749,1
    - Dst: malloc
      Src: /src/haproxy/src/tools.c:7750,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:7754,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/tools.c:7755,1
    - Dst: cebus_item_insert
      Src: /src/haproxy/src/tools.c:7756,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/tools.c:7757,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:7761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7765
      start: 7733
    functionDepth: 3
    functionLinenumber: 7733
    functionLinenumberEnd: 7765
    functionName: copy_file_name
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - cebus_item_lookup
    - malloc
    - HA_RWLOCK_RDLOCK
    - memcpy
    - HA_RWLOCK_WRUNLOCK
    - free
    - cebus_item_insert
    - strlen
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: char
    signature: char *copy_file_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/tools.c:7772,1
    - Dst: cebus_item_first
      Src: /src/haproxy/src/tools.c:7774,1
    - Dst: cebus_item_delete
      Src: /src/haproxy/src/tools.c:7775,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:7776,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/tools.c:7779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7780
      start: 7768
    functionDepth: 3
    functionLinenumber: 7768
    functionLinenumberEnd: 7780
    functionName: free_all_file_names
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - free
    - cebus_item_delete
    - HA_RWLOCK_WRLOCK
    - cebus_item_first
    linkageType: ''
    returnType: void
    signature: void free_all_file_names()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:7794,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:7796,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:7799,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - path
    - base
    - dst
    - err
    argTypes:
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7806
      start: 7788
    functionDepth: 5
    functionLinenumber: 7788
    functionLinenumberEnd: 7806
    functionName: path_base
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memprintf
    - snprintf
    linkageType: ''
    returnType: int
    signature: int path_base(const char *path, const char *base, char *dst, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/tools.c:7818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7821
      start: 7812
    functionDepth: 1
    functionLinenumber: 7812
    functionLinenumberEnd: 7821
    functionName: ha_freearray
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void ha_freearray(char ***array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/tools.c:7828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7830
      start: 7826
    functionDepth: 0
    functionLinenumber: 7826
    functionLinenumberEnd: 7830
    functionName: ha_memset_s
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ha_memset_s(void *s, int c, size_t n)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7842,1
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:7847,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7849,1
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:7854,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7856,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7860,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7863,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/tools.c:7866,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7867,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7870,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7873,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7876,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/tools.c:7879,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7880,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7883,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7886,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7894,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:7898,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 4
    argNames:
    - output
    - ctx
    - pfx
    - sfx
    argTypes:
    - struct buffer*
    - struct thread_exec_ctx*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7899
      start: 7837
    functionDepth: 6
    functionLinenumber: 7837
    functionLinenumberEnd: 7899
    functionName: chunk_append_thread_ctx
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - chunk_appendf
    - resolve_sym_name
    - strrchr
    linkageType: ''
    returnType: void
    signature: void chunk_append_thread_ctx(struct buffer *output, const struct thread_exec_ctx
      *ctx, const char *pfx, const char *sfx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb32_next
      Src: /src/haproxy/src/lb_chash.c:40,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_chash.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - root
    - node
    argTypes:
    - struct eb_root*
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: chash_skip_node
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - eb32_first
    - eb32_next
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *chash_skip_node(struct eb_root *root, struct eb32_node
      *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chash_skip_node
      Src: /src/haproxy/src/lb_chash.c:58,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/lb_chash.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: chash_dequeue_srv
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - eb32_delete
    - chash_skip_node
    linkageType: ''
    returnType: void
    signature: void chash_dequeue_srv(struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: full_hash
      Src: /src/haproxy/src/lb_chash.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - node_index
    argTypes:
    - struct server*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: chash_compute_node_key
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - full_hash
    linkageType: ''
    returnType: u32
    signature: u32 chash_compute_node_key(struct server *s, unsigned node_index)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/lb_chash.c:95,1
    - Dst: guid_get
      Src: /src/haproxy/src/lb_chash.c:102,1
    - Dst: full_hash
      Src: /src/haproxy/src/lb_chash.c:111,1
    - Dst: full_hash
      Src: /src/haproxy/src/lb_chash.c:121,1
    - Dst: XXH32
      Src: /src/haproxy/src/lb_chash.c:124,1
    - Dst: XXH32
      Src: /src/haproxy/src/lb_chash.c:132,1
    - Dst: strlen
      Src: /src/haproxy/src/lb_chash.c:132,1
    - Dst: full_hash
      Src: /src/haproxy/src/lb_chash.c:136,1
    - Dst: htonl
      Src: /src/haproxy/src/lb_chash.c:136,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 146
    functionName: chash_compute_server_key
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - guid_get
    - XXH32
    - server_get_inetaddr
    - full_hash
    - htonl
    - strlen
    linkageType: ''
    returnType: u32
    signature: u32 chash_compute_server_key(struct server *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: chash_compute_server_key
      Src: /src/haproxy/src/lb_chash.c:157,1
    - Dst: chash_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:161,1
    - Dst: chash_skip_node
      Src: /src/haproxy/src/lb_chash.c:171,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/lb_chash.c:172,1
    - Dst: chash_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:183,1
    - Dst: realloc
      Src: /src/haproxy/src/lb_chash.c:185,1
    - Dst: memset
      Src: /src/haproxy/src/lb_chash.c:190,1
    - Dst: chash_compute_node_key
      Src: /src/haproxy/src/lb_chash.c:194,1
    - Dst: chash_skip_node
      Src: /src/haproxy/src/lb_chash.c:203,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/lb_chash.c:204,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 207
    functionName: chash_queue_dequeue_srv
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - eb32_insert
    - memset
    - chash_dequeue_srv
    - eb32_delete
    - chash_skip_node
    - chash_compute_server_key
    - realloc
    - chash_compute_node_key
    linkageType: ''
    returnType: void
    signature: void chash_queue_dequeue_srv(struct server *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_chash.c:221,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_chash.c:224,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_chash.c:226,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_chash.c:229,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_chash.c:246,1
    - Dst: chash_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:254,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_chash.c:258,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_chash.c:260,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_chash.c:262,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 263
    functionName: chash_set_server_status_down
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - update_backend_weight
    - chash_dequeue_srv
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void chash_set_server_status_down(struct server *srv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_chash.c:278,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_chash.c:281,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_chash.c:283,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_chash.c:286,1
    - Dst: chash_queue_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:316,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_chash.c:320,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_chash.c:322,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_chash.c:324,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 325
    functionName: chash_set_server_status_up
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - update_backend_weight
    - HA_RWLOCK_WRUNLOCK
    - chash_queue_dequeue_srv
    - srv_lb_status_changed
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void chash_set_server_status_up(struct server *srv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_chash.c:345,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_chash.c:346,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_chash.c:349,1
    - Dst: chash_set_server_status_up
      Src: /src/haproxy/src/lb_chash.c:353,1
    - Dst: chash_set_server_status_down
      Src: /src/haproxy/src/lb_chash.c:357,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_chash.c:361,1
    - Dst: chash_queue_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:364,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_chash.c:371,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_chash.c:372,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_chash.c:374,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 332
    functionDepth: 5
    functionLinenumber: 332
    functionLinenumberEnd: 375
    functionName: chash_update_server_weight
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - update_backend_weight
    - chash_set_server_status_up
    - chash_set_server_status_down
    - chash_queue_dequeue_srv
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void chash_update_server_weight(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 403
    functionName: chash_server_is_eligible
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int chash_server_is_eligible(struct server *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/lb_chash.c:424,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/lb_chash.c:440,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_chash.c:442,1
    - Dst: eb32_prev
      Src: /src/haproxy/src/lb_chash.c:448,1
    - Dst: eb32_last
      Src: /src/haproxy/src/lb_chash.c:450,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_chash.c:452,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_chash.c:453,1
    - Dst: chash_server_is_eligible
      Src: /src/haproxy/src/lb_chash.c:471,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_chash.c:474,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_chash.c:478,1
    - Dst: eb32_next
      Src: /src/haproxy/src/lb_chash.c:479,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_chash.c:481,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_chash.c:485,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_chash.c:489,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 3
    argNames:
    - p
    - hash
    - avoid
    argTypes:
    - struct proxy*
    - unsigned int
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 491
    functionName: chash_get_server_hash
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 8
    functionsReached:
    - chash_server_is_eligible
    - HA_RWLOCK_RDUNLOCK
    - srv_dynamic_maxconn
    - eb32_next
    - eb32_prev
    - eb32_lookup_ge
    - eb32_entry
    - eb32_last
    - eb32_first
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct server
    signature: struct server *chash_get_server_hash(struct proxy *p, unsigned int
      hash, const struct server *avoid)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_chash.c:507,1
    - Dst: eb32_next
      Src: /src/haproxy/src/lb_chash.c:526,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_chash.c:528,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_chash.c:549,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_chash.c:550,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_chash.c:566,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 2
    argNames:
    - p
    - srvtoavoid
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 568
    functionName: chash_get_next_server
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - srv_dynamic_maxconn
    - eb32_next
    - eb32_entry
    - HA_RWLOCK_WRLOCK
    - eb32_first
    linkageType: ''
    returnType: struct server
    signature: struct server *chash_get_next_server(struct proxy *p, struct server
      *srvtoavoid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/lb_chash.c:578,1
    - Dst: chash_compute_server_key
      Src: /src/haproxy/src/lb_chash.c:582,1
    - Dst: chash_compute_node_key
      Src: /src/haproxy/src/lb_chash.c:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 588
    functionName: chash_server_init
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - chash_compute_server_key
    - calloc
    - chash_compute_node_key
    linkageType: ''
    returnType: int
    signature: int chash_server_init(struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/lb_chash.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 594
    functionName: chash_server_deinit
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void chash_server_deinit(struct server *srv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_chash.c:610,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_chash.c:613,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_chash.c:614,1
    - Dst: chash_server_init
      Src: /src/haproxy/src/lb_chash.c:626,1
    - Dst: ha_alert
      Src: /src/haproxy/src/lb_chash.c:627,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_chash.c:631,1
    - Dst: chash_queue_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 602
    functionDepth: 4
    functionLinenumber: 602
    functionLinenumberEnd: 635
    functionName: chash_init_server_tree
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - chash_server_init
    - update_backend_weight
    - chash_queue_dequeue_srv
    - recount_servers
    - ha_alert
    - srv_lb_commit_status
    linkageType: ''
    returnType: int
    signature: int chash_init_server_tree(struct proxy *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 4
    argNames:
    - in
    - ilen
    - out
    - olen
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 72
    functionName: a2base64
    functionSourceFile: /src/haproxy/src/base64.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int a2base64(char *in, int ilen, char *out, int olen)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - in
    - ilen
    - out
    - olen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 114
    functionName: a2base64url
    functionSourceFile: /src/haproxy/src/base64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int a2base64url(const char *in, size_t ilen, char *out, size_t olen)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 4
    argNames:
    - in
    - ilen
    - out
    - olen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 190
    functionName: base64dec
    functionSourceFile: /src/haproxy/src/base64.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int base64dec(const char *in, size_t ilen, char *out, size_t olen)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - in
    - ilen
    - out
    - olen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 260
    functionName: base64urldec
    functionSourceFile: /src/haproxy/src/base64.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int base64urldec(const char *in, size_t ilen, char *out, size_t olen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: s30tob64
    functionSourceFile: /src/haproxy/src/base64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *s30tob64(int in, char *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 306
    functionName: b64tos30
    functionSourceFile: /src/haproxy/src/base64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int b64tos30(const char *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QUIC_AEAD_key_length
      Src: /src/haproxy/src/quic_tls.c:60,1
    - Dst: QUIC_AEAD_iv_length
      Src: /src/haproxy/src/quic_tls.c:61,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/haproxy/src/quic_tls.c:62,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:64,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:66,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:67,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:69,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:70,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - secs
    argTypes:
    - struct buffer*
    - struct quic_tls_secrets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: quic_tls_keys_hexdump
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 1
    functionsReached:
    - QUIC_AEAD_iv_length
    - QUIC_AEAD_key_length
    - chunk_appendf
    - EVP_CIPHER_key_length
    linkageType: ''
    returnType: void
    signature: "void quic_tls_keys_hexdump(struct buffer *buf,\n                           const
      struct quic_tls_secrets *secs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:81,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:83,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:84,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:86,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:87,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - kp
    argTypes:
    - struct buffer*
    - struct quic_tls_kp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: quic_tls_kp_keys_hexdump
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 1
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void quic_tls_kp_keys_hexdump(struct buffer *buf,\n                              const
      struct quic_tls_kp *kp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_pktns_tx_pkts_release
      Src: /src/haproxy/src/quic_tls.c:98,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_tls.c:99,1
    - Dst: quic_free_arngs
      Src: /src/haproxy/src/quic_tls.c:100,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tls.c:101,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_tls.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - qc
    - pktns
    argTypes:
    - struct quic_conn*
    - struct quic_pktns**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: quic_pktns_release
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - quic_pktns_tx_pkts_release
    - quic_free_arngs
    - qc_release_pktns_frms
    - pool_free
    linkageType: ''
    returnType: void
    signature: void quic_pktns_release(struct quic_conn *qc, struct quic_pktns **pktns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:112,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_tls.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - buf
    - secret
    - secret_len
    argTypes:
    - struct buffer*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: quic_tls_secret_hexdump
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 1
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void quic_tls_secret_hexdump(struct buffer *buf,\n                             const
      unsigned char *secret, size_t secret_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_free_ncbuf
      Src: /src/haproxy/src/quic_tls.c:125,1
    - Dst: qc_stream_desc_release
      Src: /src/haproxy/src/quic_tls.c:127,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_tls.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct quic_cstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: quic_cstream_free
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - qc_stream_desc_release
    - pool_free
    - quic_free_ncbuf
    linkageType: ''
    returnType: void
    signature: void quic_cstream_free(struct quic_cstream *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tls.c:138,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_tls.c:139,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tls.c:141,1
    - Dst: qc_stream_desc_new
      Src: /src/haproxy/src/quic_tls.c:152,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tls.c:154,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tls.c:160,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_tls.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 166
    functionName: quic_cstream_new
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - qc_stream_desc_new
    - pool_alloc
    - TRACE_ERROR
    - TRACE_ENTER
    - pool_free
    linkageType: ''
    returnType: struct quic_cstream
    signature: struct quic_cstream *quic_cstream_new(struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tls.c:173,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_tls.c:177,1
    - Dst: ha_free
      Src: /src/haproxy/src/quic_tls.c:182,1
    - Dst: quic_cstream_free
      Src: /src/haproxy/src/quic_tls.c:183,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tls.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - qc
    - qel
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 186
    functionName: quic_conn_enc_level_uninit
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - ha_free
    - quic_cstream_free
    - TRACE_ENTER
    - pool_free
    linkageType: ''
    returnType: void
    signature: void quic_conn_enc_level_uninit(struct quic_conn *qc, struct quic_enc_level
      *qel)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tls.c:202,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_tls.c:204,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_tls.c:208,1
    - Dst: quic_tls_ctx_reset
      Src: /src/haproxy/src/quic_tls.c:216,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_tls.c:219,1
    - Dst: malloc
      Src: /src/haproxy/src/quic_tls.c:223,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_tls.c:227,1
    - Dst: quic_cstream_new
      Src: /src/haproxy/src/quic_tls.c:241,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tls.c:257,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/quic_tls.c:259,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tls.c:262,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tls.c:266,1
    - Dst: quic_conn_enc_level_uninit
      Src: /src/haproxy/src/quic_tls.c:270,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_tls.c:271,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 4
    argNames:
    - qc
    - el
    - pktns
    - level
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level**
    - struct quic_pktns*
    - enum ssl_encryption_level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 273
    functionName: quic_conn_enc_level_init
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - malloc
    - pool_alloc
    - quic_cstream_new
    - TRACE_LEAVE
    - quic_conn_enc_level_uninit
    - TRACE_ENTER
    - LIST_APPEND
    - quic_tls_ctx_reset
    - LIST_INSERT
    - LIST_INIT
    - pool_free
    linkageType: ''
    returnType: int
    signature: "int quic_conn_enc_level_init(struct quic_conn *qc,\n                                    struct
      quic_enc_level **el,\n                                    struct quic_pktns
      *pktns,\n                                    enum ssl_encryption_level_t level)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tls.c:286,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tls.c:287,1
    - Dst: quic_pktns_init
      Src: /src/haproxy/src/quic_tls.c:289,1
    - Dst: quic_conn_enc_level_init
      Src: /src/haproxy/src/quic_tls.c:292,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - qc
    - pktns
    - qel
    - level
    argTypes:
    - struct quic_conn*
    - struct quic_pktns**
    - struct quic_enc_level**
    - enum ssl_encryption_level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 298
    functionName: qc_enc_level_alloc
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 2
    functionsReached:
    - quic_pktns_init
    - quic_conn_enc_level_init
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int qc_enc_level_alloc(struct quic_conn *qc, struct quic_pktns **pktns,\n
      \                      struct quic_enc_level **qel, enum ssl_encryption_level_t
      level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_tls_ctx_secs_free
      Src: /src/haproxy/src/quic_tls.c:310,1
    - Dst: quic_conn_enc_level_uninit
      Src: /src/haproxy/src/quic_tls.c:311,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tls.c:312,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_tls.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - qc
    - qel
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 315
    functionName: qc_enc_level_free
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 1
    functionsReached:
    - LIST_DEL_INIT
    - quic_conn_enc_level_uninit
    - pool_free
    - quic_tls_ctx_secs_free
    linkageType: ''
    returnType: void
    signature: void qc_enc_level_free(struct quic_conn *qc, struct quic_enc_level
      **qel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/haproxy/src/quic_tls.c:324,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/haproxy/src/quic_tls.c:328,1
    - Dst: EVP_PKEY_CTX_hkdf_mode
      Src: /src/haproxy/src/quic_tls.c:329,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/haproxy/src/quic_tls.c:330,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_salt
      Src: /src/haproxy/src/quic_tls.c:331,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_key
      Src: /src/haproxy/src/quic_tls.c:332,1
    - Dst: EVP_PKEY_derive
      Src: /src/haproxy/src/quic_tls.c:333,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/quic_tls.c:336,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/quic_tls.c:340,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 7
    argNames:
    - md
    - buf
    - buflen
    - key
    - keylen
    - salt
    - saltlen
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 342
    functionName: quic_hkdf_extract
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_hkdf_mode
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_set1_hkdf_key
    - EVP_PKEY_CTX_set1_hkdf_salt
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int quic_hkdf_extract(const EVP_MD *md,\n                      unsigned
      char *buf, size_t buflen,\n                      const unsigned char *key, size_t
      keylen,\n                      const unsigned char *salt, size_t saltlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/haproxy/src/quic_tls.c:351,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/haproxy/src/quic_tls.c:355,1
    - Dst: EVP_PKEY_CTX_hkdf_mode
      Src: /src/haproxy/src/quic_tls.c:356,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/haproxy/src/quic_tls.c:357,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_key
      Src: /src/haproxy/src/quic_tls.c:358,1
    - Dst: EVP_PKEY_CTX_add1_hkdf_info
      Src: /src/haproxy/src/quic_tls.c:359,1
    - Dst: EVP_PKEY_derive
      Src: /src/haproxy/src/quic_tls.c:360,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/quic_tls.c:363,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/quic_tls.c:367,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 7
    argNames:
    - md
    - buf
    - buflen
    - key
    - keylen
    - label
    - labellen
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 369
    functionName: quic_hkdf_expand
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_hkdf_mode
    - EVP_PKEY_CTX_add1_hkdf_info
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_set1_hkdf_key
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int quic_hkdf_expand(const EVP_MD *md,\n                     unsigned
      char *buf, size_t buflen,\n                     const unsigned char *key, size_t
      keylen,\n                     const unsigned char *label, size_t labellen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/haproxy/src/quic_tls.c:387,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/haproxy/src/quic_tls.c:391,1
    - Dst: EVP_PKEY_CTX_hkdf_mode
      Src: /src/haproxy/src/quic_tls.c:392,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/haproxy/src/quic_tls.c:393,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_salt
      Src: /src/haproxy/src/quic_tls.c:394,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_key
      Src: /src/haproxy/src/quic_tls.c:395,1
    - Dst: EVP_PKEY_CTX_add1_hkdf_info
      Src: /src/haproxy/src/quic_tls.c:396,1
    - Dst: EVP_PKEY_derive
      Src: /src/haproxy/src/quic_tls.c:397,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/quic_tls.c:400,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/quic_tls.c:404,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 9
    argNames:
    - md
    - buf
    - buflen
    - key
    - keylen
    - salt
    - saltlen
    - label
    - labellen
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 406
    functionName: quic_hkdf_extract_and_expand
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_hkdf_mode
    - EVP_PKEY_CTX_add1_hkdf_info
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_set1_hkdf_key
    - EVP_PKEY_CTX_set1_hkdf_salt
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int quic_hkdf_extract_and_expand(const EVP_MD *md,\n                                 unsigned
      char *buf, size_t buflen,\n                                 const unsigned char
      *key, size_t keylen,\n                                 const unsigned char *salt,
      size_t saltlen,\n                                 const unsigned char *label,
      size_t labellen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tls.c:447,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tls.c:449,1
    - Dst: quic_hkdf_expand
      Src: /src/haproxy/src/quic_tls.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 7
    argNames:
    - md
    - buf
    - buflen
    - key
    - keylen
    - label
    - labellen
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 455
    functionName: quic_hkdf_expand_label
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - quic_hkdf_expand
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_hkdf_expand_label(const EVP_MD *md,\n                           unsigned
      char *buf, size_t buflen,\n                           const unsigned char *key,
      size_t keylen,\n                           const unsigned char *label, size_t
      labellen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: QUIC_AEAD_key_length
      Src: /src/haproxy/src/quic_tls.c:471,1
    - Dst: QUIC_AEAD_iv_length
      Src: /src/haproxy/src/quic_tls.c:472,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/haproxy/src/quic_tls.c:479,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/haproxy/src/quic_tls.c:481,1
    - Dst: quic_hkdf_expand_label
      Src: /src/haproxy/src/quic_tls.c:487,1
    - Dst: quic_hkdf_expand_label
      Src: /src/haproxy/src/quic_tls.c:489,1
    - Dst: quic_hkdf_expand_label
      Src: /src/haproxy/src/quic_tls.c:491,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 12
    argNames:
    - aead
    - hp
    - md
    - qv
    - key
    - keylen
    - iv
    - ivlen
    - hp_key
    - hp_keylen
    - secret
    - secretlen
    argTypes:
    - QUIC_AEAD*
    - EVP_CIPHER*
    - EVP_MD*
    - struct quic_version*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 496
    functionName: quic_tls_derive_keys
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 1
    functionsReached:
    - QUIC_AEAD_iv_length
    - QUIC_AEAD_key_length
    - quic_hkdf_expand_label
    - EVP_CIPHER_key_length
    linkageType: ''
    returnType: int
    signature: "int quic_tls_derive_keys(const QUIC_AEAD *aead, const EVP_CIPHER *hp,\n
      \                        const EVP_MD *md, const struct quic_version *qv,\n
      \                        unsigned char *key, size_t keylen,\n                         unsigned
      char *iv, size_t ivlen,\n                         unsigned char *hp_key, size_t
      hp_keylen,\n                         const unsigned char *secret, size_t secretlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_hkdf_extract
      Src: /src/haproxy/src/quic_tls.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - md
    - initial_salt
    - initial_salt_sz
    - initial_secret
    - initial_secret_sz
    - secret
    - secret_sz
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 512
    functionName: quic_derive_initial_secret
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - quic_hkdf_extract
    linkageType: ''
    returnType: int
    signature: "int quic_derive_initial_secret(const EVP_MD *md,\n                               const
      unsigned char *initial_salt, size_t initial_salt_sz,\n                               unsigned
      char *initial_secret, size_t initial_secret_sz,\n                               const
      unsigned char *secret, size_t secret_sz)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quic_hkdf_expand_label
      Src: /src/haproxy/src/quic_tls.c:542,1
    - Dst: quic_hkdf_expand_label
      Src: /src/haproxy/src/quic_tls.c:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 8
    argNames:
    - md
    - rx
    - rx_sz
    - tx
    - tx_sz
    - secret
    - secret_sz
    - server
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 549
    functionName: quic_tls_derive_initial_secrets
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - quic_hkdf_expand_label
    linkageType: ''
    returnType: int
    signature: "int quic_tls_derive_initial_secrets(const EVP_MD *md,\n                                    unsigned
      char *rx, size_t rx_sz,\n                                    unsigned char *tx,
      size_t tx_sz,\n                                    const unsigned char *secret,
      size_t secret_sz,\n                                    int server)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_hkdf_expand_label
      Src: /src/haproxy/src/quic_tls.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - md
    - qv
    - new_sec
    - new_seclen
    - sec
    - seclen
    argTypes:
    - EVP_MD*
    - struct quic_version*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: quic_tls_sec_update
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - quic_hkdf_expand_label
    linkageType: ''
    returnType: int
    signature: "int quic_tls_sec_update(const EVP_MD *md, const struct quic_version
      *qv,\n                        unsigned char *new_sec, size_t new_seclen,\n                        const
      unsigned char *sec, size_t seclen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tls.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - iv
    - ivlen
    - aead_iv
    - aead_ivlen
    - pn
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 585
    functionName: quic_aead_iv_build
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: "void quic_aead_iv_build(unsigned char *iv, size_t ivlen,\n                        unsigned
      char *aead_iv, size_t aead_ivlen, uint64_t pn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_AEAD_CTX_new
      Src: /src/haproxy/src/quic_tls.c:595,1
    - Dst: EVP_AEAD_key_length
      Src: /src/haproxy/src/quic_tls.c:595,1
    - Dst: EVP_CIPHER_nid
      Src: /src/haproxy/src/quic_tls.c:600,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/haproxy/src/quic_tls.c:601,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:605,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/quic_tls.c:606,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/quic_tls.c:608,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:609,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_tls.c:617,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - rx_ctx
    - aead
    - key
    argTypes:
    - QUIC_AEAD_CTX**
    - QUIC_AEAD*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 619
    functionName: quic_tls_rx_ctx_init
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 3
    functionsReached:
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_new
    - EVP_AEAD_CTX_new
    - EVP_AEAD_key_length
    - EVP_CIPHER_CTX_ctrl
    - QUIC_AEAD_CTX_free
    - EVP_CIPHER_nid
    linkageType: ''
    returnType: int
    signature: "int quic_tls_rx_ctx_init(QUIC_AEAD_CTX **rx_ctx,\n                         const
      QUIC_AEAD *aead, unsigned char *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/haproxy/src/quic_tls.c:635,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:639,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/src/quic_tls.c:646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - hp_ctx
    - hp
    - key
    argTypes:
    - EVP_CIPHER_CTX**
    - EVP_CIPHER*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 648
    functionName: quic_tls_enc_hp_ctx_init
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_free
    - EVP_EncryptInit_ex
    - EVP_CIPHER_CTX_new
    linkageType: ''
    returnType: int
    signature: "int quic_tls_enc_hp_ctx_init(EVP_CIPHER_CTX **hp_ctx,\n                              const
      EVP_CIPHER *hp, unsigned char *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tls.c:672,1
    - Dst: CRYPTO_chacha_20
      Src: /src/haproxy/src/quic_tls.c:674,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:680,1
    - Dst: EVP_EncryptUpdate
      Src: /src/haproxy/src/quic_tls.c:681,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/haproxy/src/quic_tls.c:682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - out
    - in
    - inlen
    - ctx
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - EVP_CIPHER_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 686
    functionName: quic_tls_hp_encrypt
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    - memcpy
    - CRYPTO_chacha_20
    - EVP_EncryptUpdate
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: "int quic_tls_hp_encrypt(unsigned char *out,\n                         const
      unsigned char *in, size_t inlen,\n                         EVP_CIPHER_CTX *ctx,
      unsigned char *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/haproxy/src/quic_tls.c:702,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:706,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/src/quic_tls.c:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - hp_ctx
    - hp
    - key
    argTypes:
    - EVP_CIPHER_CTX**
    - EVP_CIPHER*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 715
    functionName: quic_tls_dec_hp_ctx_init
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_free
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_new
    linkageType: ''
    returnType: int
    signature: "int quic_tls_dec_hp_ctx_init(EVP_CIPHER_CTX **hp_ctx,\n                              const
      EVP_CIPHER *hp, unsigned char *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tls.c:739,1
    - Dst: CRYPTO_chacha_20
      Src: /src/haproxy/src/quic_tls.c:741,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:747,1
    - Dst: EVP_DecryptUpdate
      Src: /src/haproxy/src/quic_tls.c:748,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/haproxy/src/quic_tls.c:749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - out
    - in
    - inlen
    - ctx
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - EVP_CIPHER_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 753
    functionName: quic_tls_hp_decrypt
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptUpdate
    - memcpy
    - EVP_DecryptInit_ex
    - CRYPTO_chacha_20
    - EVP_DecryptFinal_ex
    linkageType: ''
    returnType: int
    signature: "int quic_tls_hp_decrypt(unsigned char *out,\n                         const
      unsigned char *in, size_t inlen,\n                         EVP_CIPHER_CTX *ctx,
      unsigned char *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_AEAD_CTX_new
      Src: /src/haproxy/src/quic_tls.c:762,1
    - Dst: EVP_AEAD_key_length
      Src: /src/haproxy/src/quic_tls.c:762,1
    - Dst: EVP_CIPHER_nid
      Src: /src/haproxy/src/quic_tls.c:767,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/haproxy/src/quic_tls.c:768,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:773,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/quic_tls.c:774,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/quic_tls.c:776,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:777,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_tls.c:785,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - tx_ctx
    - aead
    - key
    argTypes:
    - QUIC_AEAD_CTX**
    - QUIC_AEAD*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 787
    functionName: quic_tls_tx_ctx_init
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 3
    functionsReached:
    - EVP_EncryptInit_ex
    - EVP_CIPHER_CTX_new
    - EVP_AEAD_CTX_new
    - EVP_AEAD_key_length
    - EVP_CIPHER_CTX_ctrl
    - QUIC_AEAD_CTX_free
    - EVP_CIPHER_nid
    linkageType: ''
    returnType: int
    signature: "int quic_tls_tx_ctx_init(QUIC_AEAD_CTX **tx_ctx,\n                         const
      QUIC_AEAD *aead, unsigned char *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_AEAD_CTX_seal
      Src: /src/haproxy/src/quic_tls.c:837,1
    - Dst: EVP_AEAD_max_overhead
      Src: /src/haproxy/src/quic_tls.c:837,1
    - Dst: EVP_CIPHER_nid
      Src: /src/haproxy/src/quic_tls.c:844,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:846,1
    - Dst: EVP_EncryptUpdate
      Src: /src/haproxy/src/quic_tls.c:848,1
    - Dst: EVP_EncryptUpdate
      Src: /src/haproxy/src/quic_tls.c:849,1
    - Dst: EVP_EncryptUpdate
      Src: /src/haproxy/src/quic_tls.c:850,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/haproxy/src/quic_tls.c:851,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/quic_tls.c:852,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 7
    argNames:
    - buf
    - len
    - aad
    - aad_len
    - ctx
    - aead
    - iv
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - QUIC_AEAD_CTX*
    - QUIC_AEAD*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 859
    functionName: quic_tls_encrypt
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 2
    functionsReached:
    - EVP_EncryptFinal_ex
    - EVP_EncryptInit_ex
    - EVP_EncryptUpdate
    - EVP_CIPHER_nid
    - EVP_CIPHER_CTX_ctrl
    - EVP_AEAD_max_overhead
    - EVP_AEAD_CTX_seal
    linkageType: ''
    returnType: int
    signature: "int quic_tls_encrypt(unsigned char *buf, size_t len,\n                     const
      unsigned char *aad, size_t aad_len,\n                     QUIC_AEAD_CTX *ctx,
      const QUIC_AEAD *aead,\n                     const unsigned char *iv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_AEAD_CTX_open
      Src: /src/haproxy/src/quic_tls.c:878,1
    - Dst: EVP_CIPHER_nid
      Src: /src/haproxy/src/quic_tls.c:887,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:889,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/quic_tls.c:890,1
    - Dst: EVP_DecryptUpdate
      Src: /src/haproxy/src/quic_tls.c:893,1
    - Dst: EVP_DecryptUpdate
      Src: /src/haproxy/src/quic_tls.c:894,1
    - Dst: EVP_DecryptUpdate
      Src: /src/haproxy/src/quic_tls.c:895,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/haproxy/src/quic_tls.c:897,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 8
    argNames:
    - buf
    - len
    - aad
    - aad_len
    - ctx
    - aead
    - key
    - iv
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - QUIC_AEAD_CTX*
    - QUIC_AEAD*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 903
    functionName: quic_tls_decrypt
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptUpdate
    - EVP_DecryptInit_ex
    - EVP_AEAD_CTX_open
    - EVP_CIPHER_CTX_ctrl
    - EVP_DecryptFinal_ex
    - EVP_CIPHER_nid
    linkageType: ''
    returnType: int
    signature: "int quic_tls_decrypt(unsigned char *buf, size_t len,\n                     unsigned
      char *aad, size_t aad_len,\n                     QUIC_AEAD_CTX *ctx, const QUIC_AEAD
      *aead,\n                     const unsigned char *key, const unsigned char *iv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_AEAD_CTX_open
      Src: /src/haproxy/src/quic_tls.c:927,1
    - Dst: EVP_CIPHER_nid
      Src: /src/haproxy/src/quic_tls.c:936,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:939,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/quic_tls.c:940,1
    - Dst: EVP_DecryptUpdate
      Src: /src/haproxy/src/quic_tls.c:942,1
    - Dst: EVP_DecryptUpdate
      Src: /src/haproxy/src/quic_tls.c:943,1
    - Dst: EVP_DecryptUpdate
      Src: /src/haproxy/src/quic_tls.c:944,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/haproxy/src/quic_tls.c:946,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 9
    argNames:
    - out
    - in
    - len
    - aad
    - aad_len
    - ctx
    - aead
    - key
    - iv
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - QUIC_AEAD_CTX*
    - QUIC_AEAD*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 951
    functionName: quic_tls_decrypt2
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 2
    functionsReached:
    - EVP_DecryptUpdate
    - EVP_DecryptInit_ex
    - EVP_AEAD_CTX_open
    - EVP_CIPHER_CTX_ctrl
    - EVP_DecryptFinal_ex
    - EVP_CIPHER_nid
    linkageType: ''
    returnType: int
    signature: "int quic_tls_decrypt2(unsigned char *out,\n                      unsigned
      char *in, size_t len,\n                      unsigned char *aad, size_t aad_len,\n
      \                     QUIC_AEAD_CTX *ctx, const QUIC_AEAD *aead,\n                      const
      unsigned char *key, const unsigned char *iv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_hkdf_extract
      Src: /src/haproxy/src/quic_tls.c:966,1
    - Dst: quic_hkdf_expand
      Src: /src/haproxy/src/quic_tls.c:968,1
    - Dst: quic_hkdf_expand
      Src: /src/haproxy/src/quic_tls.c:970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 13
    argNames:
    - md
    - key
    - keylen
    - iv
    - ivlen
    - salt
    - saltlen
    - secret
    - secretlen
    - klabel
    - klabellen
    - ivlabel
    - ivlabellen
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 975
    functionName: quic_do_tls_derive_token_secret
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - quic_hkdf_expand
    - quic_hkdf_extract
    linkageType: ''
    returnType: int
    signature: "int quic_do_tls_derive_token_secret(const EVP_MD *md, unsigned char
      *key, size_t keylen,\n                                                  unsigned
      char *iv, size_t ivlen,\n                                                  const
      unsigned char *salt, size_t saltlen,\n                                                  const
      unsigned char *secret, size_t secretlen,\n                                                  const
      unsigned char *klabel, size_t klabellen,\n                                                  const
      unsigned char *ivlabel, size_t ivlabellen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_do_tls_derive_token_secret
      Src: /src/haproxy/src/quic_tls.c:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - md
    - key
    - keylen
    - iv
    - ivlen
    - salt
    - saltlen
    - secret
    - secretlen
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 977
    functionDepth: 2
    functionLinenumber: 977
    functionLinenumberEnd: 990
    functionName: quic_tls_derive_retry_token_secret
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 2
    functionsReached:
    - quic_do_tls_derive_token_secret
    linkageType: ''
    returnType: int
    signature: "int quic_tls_derive_retry_token_secret(const EVP_MD *md,\n                                       unsigned
      char *key, size_t keylen,\n                                       unsigned char
      *iv, size_t ivlen,\n                                       const unsigned char
      *salt, size_t saltlen,\n                                       const unsigned
      char *secret, size_t secretlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_do_tls_derive_token_secret
      Src: /src/haproxy/src/quic_tls.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - md
    - key
    - keylen
    - iv
    - ivlen
    - salt
    - saltlen
    - secret
    - secretlen
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1005
    functionName: quic_tls_derive_token_secret
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 2
    functionsReached:
    - quic_do_tls_derive_token_secret
    linkageType: ''
    returnType: int
    signature: "int quic_tls_derive_token_secret(const EVP_MD *md,\n                                 unsigned
      char *key, size_t keylen,\n                                 unsigned char *iv,
      size_t ivlen,\n                                 const unsigned char *salt, size_t
      saltlen,\n                                 const unsigned char *secret, size_t
      secretlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/src/quic_tls.c:1019,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/haproxy/src/quic_tls.c:1026,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/quic_tls.c:1035,1
    - Dst: EVP_EncryptUpdate
      Src: /src/haproxy/src/quic_tls.c:1037,1
    - Dst: EVP_EncryptUpdate
      Src: /src/haproxy/src/quic_tls.c:1038,1
    - Dst: EVP_EncryptUpdate
      Src: /src/haproxy/src/quic_tls.c:1039,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/haproxy/src/quic_tls.c:1041,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/quic_tls.c:1043,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/src/quic_tls.c:1049,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 6
    argNames:
    - odcid
    - odcid_len
    - pkt
    - pkt_len
    - tag
    - qv
    argTypes:
    - unsigned char*
    - unsigned char
    - unsigned char*
    - size_t
    - unsigned char*
    - struct quic_version*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1051
    functionName: quic_tls_generate_retry_integrity_tag
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 1
    functionsReached:
    - EVP_aes_128_gcm
    - EVP_CIPHER_CTX_free
    - EVP_EncryptInit_ex
    - EVP_CIPHER_CTX_new
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_ctrl
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: "int quic_tls_generate_retry_integrity_tag(unsigned char *odcid, unsigned
      char odcid_len,\n                                          const unsigned char
      *pkt, size_t pkt_len,\n                                          unsigned char
      *tag,\n                                          const struct quic_version *qv)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tls.c:1076,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_tls.c:1081,1
    - Dst: quic_tls_sec_update
      Src: /src/haproxy/src/quic_tls.c:1085,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tls.c:1087,1
    - Dst: quic_tls_derive_keys
      Src: /src/haproxy/src/quic_tls.c:1091,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tls.c:1095,1
    - Dst: quic_tls_sec_update
      Src: /src/haproxy/src/quic_tls.c:1101,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tls.c:1103,1
    - Dst: quic_tls_derive_keys
      Src: /src/haproxy/src/quic_tls.c:1107,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tls.c:1111,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_tls.c:1117,1
    - Dst: quic_tls_rx_ctx_init
      Src: /src/haproxy/src/quic_tls.c:1121,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tls.c:1122,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_tls.c:1127,1
    - Dst: quic_tls_tx_ctx_init
      Src: /src/haproxy/src/quic_tls.c:1131,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tls.c:1132,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tls.c:1138,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tls.c:1139,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1057
    functionDepth: 3
    functionLinenumber: 1057
    functionLinenumberEnd: 1141
    functionName: quic_tls_key_update
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 1
    functionsReached:
    - quic_tls_tx_ctx_init
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_tls_sec_update
    - TRACE_ENTER
    - quic_tls_derive_keys
    - quic_tls_rx_ctx_init
    - TRACE_PRINTF
    - QUIC_AEAD_CTX_free
    linkageType: ''
    returnType: int
    signature: int quic_tls_key_update(struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tls.c:1153,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tls.c:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1194
    functionName: quic_tls_rotate_keys
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void quic_tls_rotate_keys(struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_tls_ctx_secs_free
      Src: /src/haproxy/src/quic_tls.c:1202,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_tls.c:1203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct quic_tls_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1205
    functionName: quic_tls_ctx_free
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - pool_free
    - quic_tls_ctx_secs_free
    linkageType: ''
    returnType: void
    signature: void quic_tls_ctx_free(struct quic_tls_ctx **ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tls.c:1219,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_tls.c:1224,1
    - Dst: quic_tls_ctx_reset
      Src: /src/haproxy/src/quic_tls.c:1228,1
    - Dst: qc_new_isecs
      Src: /src/haproxy/src/quic_tls.c:1229,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tls.c:1236,1
    - Dst: quic_tls_ctx_free
      Src: /src/haproxy/src/quic_tls.c:1240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - qc
    - server
    argTypes:
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1215
    functionDepth: 2
    functionLinenumber: 1215
    functionLinenumberEnd: 1242
    functionName: quic_tls_finalize
    functionSourceFile: /src/haproxy/src/quic_tls.c
    functionUses: 0
    functionsReached:
    - quic_tls_ctx_free
    - qc_new_isecs
    - TRACE_LEAVE
    - pool_alloc
    - TRACE_ENTER
    - quic_tls_ctx_reset
    linkageType: ''
    returnType: int
    signature: int quic_tls_finalize(struct quic_conn *qc, int server)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/haproxy/src/calltrace.c:65,1
    - Dst: strcmp
      Src: /src/haproxy/src/calltrace.c:70,1
    - Dst: fopen
      Src: /src/haproxy/src/calltrace.c:75,1
    - Dst: getenv
      Src: /src/haproxy/src/calltrace.c:80,1
    - Dst: getenv
      Src: /src/haproxy/src/calltrace.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 89
    functionName: open_trace
    functionSourceFile: /src/haproxy/src/calltrace.c
    functionUses: 0
    functionsReached:
    - fopen
    - getenv
    - strcmp
    linkageType: ''
    returnType: int
    signature: int open_trace()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - x
    - out
    - min_pairs
    argTypes:
    - unsigned int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 157
    functionName: ultoad2
    functionSourceFile: /src/haproxy/src/calltrace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ultoad2(unsigned int x, char *out, int min_pairs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - h
    - out
    argTypes:
    - unsigned long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: emit_hex
    functionSourceFile: /src/haproxy/src/calltrace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *emit_hex(unsigned long h, char *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/calltrace.c:180,1
    - Dst: open_trace
      Src: /src/haproxy/src/calltrace.c:180,1
    - Dst: unlikely
      Src: /src/haproxy/src/calltrace.c:183,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/calltrace.c:184,1
    - Dst: fprintf
      Src: /src/haproxy/src/calltrace.c:188,1
    - Dst: fprintf
      Src: /src/haproxy/src/calltrace.c:193,1
    - Dst: rdtsc
      Src: /src/haproxy/src/calltrace.c:194,1
    - Dst: unlikely
      Src: /src/haproxy/src/calltrace.c:198,1
    - Dst: ultoad2
      Src: /src/haproxy/src/calltrace.c:200,1
    - Dst: ultoad2
      Src: /src/haproxy/src/calltrace.c:202,1
    - Dst: rdtsc
      Src: /src/haproxy/src/calltrace.c:205,1
    - Dst: emit_hex
      Src: /src/haproxy/src/calltrace.c:207,1
    - Dst: emit_hex
      Src: /src/haproxy/src/calltrace.c:208,1
    - Dst: ultoad2
      Src: /src/haproxy/src/calltrace.c:213,1
    - Dst: emit_hex
      Src: /src/haproxy/src/calltrace.c:217,1
    - Dst: emit_hex
      Src: /src/haproxy/src/calltrace.c:224,1
    - Dst: emit_hex
      Src: /src/haproxy/src/calltrace.c:229,1
    - Dst: fwrite
      Src: /src/haproxy/src/calltrace.c:234,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - from
    - to
    - level
    - dir
    - ret
    argTypes:
    - void*
    - void*
    - int
    - char
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 235
    functionName: make_line
    functionSourceFile: /src/haproxy/src/calltrace.c
    functionUses: 0
    functionsReached:
    - unlikely
    - open_trace
    - gettimeofday
    - rdtsc
    - ultoad2
    - emit_hex
    - fprintf
    - fwrite
    linkageType: ''
    returnType: void
    signature: void make_line(void *from, void *to, int level, char dir, long ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_line
      Src: /src/haproxy/src/calltrace.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: __cyg_profile_func_enter
    functionSourceFile: /src/haproxy/src/calltrace.c
    functionUses: 0
    functionsReached:
    - make_line
    linkageType: ''
    returnType: void
    signature: void __cyg_profile_func_enter(void *to,  void *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_line
      Src: /src/haproxy/src/calltrace.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 256
    functionName: __cyg_profile_func_exit
    functionSourceFile: /src/haproxy/src/calltrace.c
    functionUses: 0
    functionsReached:
    - make_line
    linkageType: ''
    returnType: void
    signature: void __cyg_profile_func_exit(void *to,  void *from)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/haproxy/src/calltrace.c:261,1
    - Dst: unlikely
      Src: /src/haproxy/src/calltrace.c:266,1
    - Dst: open_trace
      Src: /src/haproxy/src/calltrace.c:266,1
    - Dst: unlikely
      Src: /src/haproxy/src/calltrace.c:269,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/calltrace.c:270,1
    - Dst: fprintf
      Src: /src/haproxy/src/calltrace.c:273,1
    - Dst: fprintf
      Src: /src/haproxy/src/calltrace.c:278,1
    - Dst: rdtsc
      Src: /src/haproxy/src/calltrace.c:279,1
    - Dst: va_start
      Src: /src/haproxy/src/calltrace.c:281,1
    - Dst: vfprintf
      Src: /src/haproxy/src/calltrace.c:282,1
    - Dst: va_end
      Src: /src/haproxy/src/calltrace.c:283,1
    - Dst: fputc
      Src: /src/haproxy/src/calltrace.c:284,1
    - Dst: fflush
      Src: /src/haproxy/src/calltrace.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 286
    functionName: calltrace
    functionSourceFile: /src/haproxy/src/calltrace.c
    functionUses: 0
    functionsReached:
    - unlikely
    - va_end
    - open_trace
    - fputc
    - va_start
    - vfprintf
    - gettimeofday
    - rdtsc
    - fprintf
    - fflush
    - format
    linkageType: ''
    returnType: void
    signature: void calltrace(char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - appctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: SPOE_APPCTX
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPOE_APPCTX(appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:264,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ph
    argTypes:
    - struct spoe_placeholder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: spoe_release_placeholder
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void spoe_release_placeholder(struct spoe_placeholder *ph)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:275,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:276,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:277,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/flt_spoe.c:278,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:279,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:280,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:281,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:283,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:284,1
    - Dst: prune_acl
      Src: /src/haproxy/src/flt_spoe.c:285,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:286,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/flt_spoe.c:288,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct spoe_message*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 290
    functionName: spoe_release_message
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - free
    - free_acl_cond
    - prune_acl
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void spoe_release_message(struct spoe_message *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:296,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:297,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - grp
    argTypes:
    - struct spoe_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 299
    functionName: spoe_release_group
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void spoe_release_group(struct spoe_group *grp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:308,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:309,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:310,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:311,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:312,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:313,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:314,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:315,1
    - Dst: spoe_release_message
      Src: /src/haproxy/src/flt_spoe.c:316,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:318,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:319,1
    - Dst: spoe_release_group
      Src: /src/haproxy/src/flt_spoe.c:320,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:322,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:323,1
    - Dst: deinit_proxy
      Src: /src/haproxy/src/flt_spoe.c:325,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - agent
    argTypes:
    - struct spoe_agent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 327
    functionName: spoe_release_agent
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - spoe_release_message
    - free
    - deinit_proxy
    - spoe_release_group
    linkageType: ''
    returnType: void
    signature: void spoe_release_agent(struct spoe_agent *agent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_generate_uuid_v4
      Src: /src/haproxy/src/flt_spoe.c:347,1
    - Dst: my_strndup
      Src: /src/haproxy/src/flt_spoe.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: generate_pseudo_uuid
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - ha_generate_uuid_v4
    linkageType: ''
    returnType: char
    signature: char *generate_pseudo_uuid()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns_to_ms
      Src: /src/haproxy/src/flt_spoe.c:355,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/flt_spoe.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - since
    - t
    argTypes:
    - ullong*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: spoe_update_stat_time
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - ns_to_ms
    linkageType: ''
    returnType: void
    signature: void spoe_update_stat_time(ullong *since, long *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 376
    functionName: spoe_appctx_agent
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - SPOE_APPCTX
    linkageType: ''
    returnType: struct spoe_agent
    signature: struct spoe_agent *spoe_appctx_agent(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:380,1
    - Dst: appctx_finalize_startup
      Src: /src/haproxy/src/flt_spoe.c:384,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/flt_spoe.c:389,1
    - Dst: stream_set_backend
      Src: /src/haproxy/src/flt_spoe.c:390,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/flt_spoe.c:393,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/flt_spoe.c:401,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/flt_spoe.c:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 378
    functionDepth: 8
    functionLinenumber: 378
    functionLinenumberEnd: 409
    functionName: spoe_init_appctx
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - applet_need_more_data
    - SPOE_APPCTX
    - appctx_finalize_startup
    - appctx_wakeup
    - applet_set_eoi
    - stream_set_backend
    linkageType: ''
    returnType: int
    signature: int spoe_init_appctx(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - appctx
    - mode
    - reason
    argTypes:
    - struct appctx*
    - enum se_shut_mode
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: spoe_shut_appctx
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - SPOE_APPCTX
    linkageType: ''
    returnType: void
    signature: void spoe_shut_appctx(struct appctx *appctx, enum se_shut_mode mode,
      struct se_abort_info *reason)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:426,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/flt_spoe.c:432,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/flt_spoe.c:437,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/flt_spoe.c:449,1
    - Dst: pool_free
      Src: /src/haproxy/src/flt_spoe.c:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 455
    functionName: spoe_release_appctx
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - applet_set_error
    - SPOE_APPCTX
    - task_wakeup
    - pool_free
    linkageType: ''
    returnType: void
    signature: void spoe_release_appctx(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:459,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/flt_spoe.c:463,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_spoe.c:463,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_spoe.c:465,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/flt_spoe.c:466,1
    - Dst: spoe_acquire_buffer
      Src: /src/haproxy/src/flt_spoe.c:470,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_spoe.c:473,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/flt_spoe.c:478,1
    - Dst: b_xfer
      Src: /src/haproxy/src/flt_spoe.c:483,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_spoe.c:483,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/flt_spoe.c:486,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 491
    functionName: spoe_handle_receiving_frame_appctx
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - applet_need_more_data
    - SPOE_APPCTX
    - BUG_ON
    - task_wakeup
    - b_data
    - spoe_acquire_buffer
    linkageType: ''
    returnType: int
    signature: int spoe_handle_receiving_frame_appctx(struct appctx *appctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:496,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/flt_spoe.c:499,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/flt_spoe.c:502,1
    - Dst: unlikely
      Src: /src/haproxy/src/flt_spoe.c:505,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/flt_spoe.c:505,1
    - Dst: b_reset
      Src: /src/haproxy/src/flt_spoe.c:506,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/flt_spoe.c:507,1
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:515,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/flt_spoe.c:517,1
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:520,1
    - Dst: spoe_handle_receiving_frame_appctx
      Src: /src/haproxy/src/flt_spoe.c:521,1
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:527,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/flt_spoe.c:528,1
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:529,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/flt_spoe.c:531,1
    - Dst: b_reset
      Src: /src/haproxy/src/flt_spoe.c:537,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/flt_spoe.c:538,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/flt_spoe.c:543,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 545
    functionName: spoe_handle_appctx
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - unlikely
    - applet_set_error
    - applet_have_no_more_data
    - applet_fl_clr
    - SPOE_APPCTX
    - applet_fl_test
    - appctx_get_buf
    - b_reset
    - applet_set_eos
    - spoe_handle_receiving_frame_appctx
    linkageType: ''
    returnType: void
    signature: void spoe_handle_appctx(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_spoe.c:563,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/flt_spoe.c:568,1
    - Dst: appctx_new_here
      Src: /src/haproxy/src/flt_spoe.c:578,1
    - Dst: appctx_init
      Src: /src/haproxy/src/flt_spoe.c:582,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/flt_spoe.c:585,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/flt_spoe.c:590,1
    - Dst: pool_free
      Src: /src/haproxy/src/flt_spoe.c:592,1
    - Dst: send_log
      Src: /src/haproxy/src/flt_spoe.c:594,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct spoe_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 598
    functionName: spoe_create_appctx
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - pool_zalloc
    - appctx_free_on_early_error
    - appctx_init
    - appctx_wakeup
    - appctx_new_here
    - send_log
    - FLT_CONF
    - pool_free
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *spoe_create_appctx(struct spoe_context *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: acl_match_cond
      Src: /src/haproxy/src/flt_spoe.c:613,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/flt_spoe.c:623,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:631,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/flt_spoe.c:633,1
    - Dst: sample_process
      Src: /src/haproxy/src/flt_spoe.c:637,1
    - Dst: spoe_encode_data
      Src: /src/haproxy/src/flt_spoe.c:638,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 6
    argNames:
    - s
    - ctx
    - msg
    - dir
    - buf
    - end
    argTypes:
    - struct stream*
    - struct spoe_context*
    - struct spoe_message*
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 648
    functionName: spoe_encode_message
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - sample_process
    - acl_match_cond
    - list_for_each_entry
    - spoe_encode_data
    - spoe_encode_buffer
    linkageType: ''
    returnType: int
    signature: "int spoe_encode_message(struct stream *s, struct spoe_context *ctx,\n\t\t\t
      \      struct spoe_message *msg, int dir,\n\t\t\t       char **buf, char *end)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_spoe.c:655,1
    - Dst: b_head
      Src: /src/haproxy/src/flt_spoe.c:660,1
    - Dst: spoe_encode_message
      Src: /src/haproxy/src/flt_spoe.c:669,1
    - Dst: spoe_encode_message
      Src: /src/haproxy/src/flt_spoe.c:676,1
    - Dst: b_set_data
      Src: /src/haproxy/src/flt_spoe.c:688,1
    - Dst: b_head
      Src: /src/haproxy/src/flt_spoe.c:688,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - s
    - ctx
    - messages
    - dir
    - type
    argTypes:
    - struct stream*
    - struct spoe_context*
    - struct list*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 698
    functionName: spoe_encode_messages
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - b_set_data
    - spoe_encode_message
    - FLT_CONF
    - b_head
    linkageType: ''
    returnType: int
    signature: "int spoe_encode_messages(struct stream *s, struct spoe_context *ctx,\n\t\t\t\tstruct
      list *messages, int dir, int type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spoe_encode_message
      Src: /src/haproxy/src/flt_spoe.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 671
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 117
    functionsReached:
    - spoe_encode_message
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(msg, messages, by_evt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spoe_encode_message
      Src: /src/haproxy/src/flt_spoe.c:676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 117
    functionsReached:
    - spoe_encode_message
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(msg, messages, by_grp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_spoe.c:708,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:712,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:713,1
    - Dst: vars_set_by_name
      Src: /src/haproxy/src/flt_spoe.c:716,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/src/flt_spoe.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - scope
    - name
    - len
    - smp
    argTypes:
    - struct spoe_context*
    - char*
    - char*
    - int
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 705
    functionDepth: 5
    functionLinenumber: 705
    functionLinenumberEnd: 719
    functionName: spoe_set_var
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - memset
    - vars_set_by_name
    - vars_set_by_name_ifexist
    - FLT_CONF
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void spoe_set_var(struct spoe_context *ctx, char *scope, char *name,
      int len,\n\t\t\t struct sample *smp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_spoe.c:725,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:729,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:730,1
    - Dst: vars_unset_by_name_ifexist
      Src: /src/haproxy/src/flt_spoe.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - scope
    - name
    - len
    - smp
    argTypes:
    - struct spoe_context*
    - char*
    - char*
    - int
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 722
    functionDepth: 4
    functionLinenumber: 722
    functionLinenumberEnd: 733
    functionName: spoe_unset_var
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - vars_unset_by_name_ifexist
    - FLT_CONF
    - memset
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void spoe_unset_var(struct spoe_context *ctx, char *scope, char *name,
      int len,\n\t\t\t   struct sample *smp)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/flt_spoe.c:760,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:762,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/flt_spoe.c:763,1
    - Dst: spoe_decode_data
      Src: /src/haproxy/src/flt_spoe.c:765,1
    - Dst: spoe_unset_var
      Src: /src/haproxy/src/flt_spoe.c:769,1
    - Dst: spoe_set_var
      Src: /src/haproxy/src/flt_spoe.c:771,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 5
    argNames:
    - s
    - ctx
    - buf
    - end
    - dir
    argTypes:
    - struct stream*
    - struct spoe_context*
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 736
    functionDepth: 6
    functionLinenumber: 736
    functionLinenumberEnd: 778
    functionName: spoe_decode_action_set_var
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - memset
    - spoe_unset_var
    - spoe_decode_data
    - spoe_decode_buffer
    - smp_set_owner
    - spoe_set_var
    linkageType: ''
    returnType: int
    signature: "int spoe_decode_action_set_var(struct stream *s, struct spoe_context
      *ctx,\n\t\t\t\t\t     char **buf, char *end, int dir)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/flt_spoe.c:804,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:806,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/flt_spoe.c:807,1
    - Dst: spoe_unset_var
      Src: /src/haproxy/src/flt_spoe.c:809,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 5
    argNames:
    - s
    - ctx
    - buf
    - end
    - dir
    argTypes:
    - struct stream*
    - struct spoe_context*
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 780
    functionDepth: 5
    functionLinenumber: 780
    functionLinenumberEnd: 816
    functionName: spoe_decode_action_unset_var
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_decode_buffer
    - spoe_unset_var
    - smp_set_owner
    - memset
    linkageType: ''
    returnType: int
    signature: "int spoe_decode_action_unset_var(struct stream *s, struct spoe_context
      *ctx,\n\t\t\t\t\t       char **buf, char *end, int dir)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/flt_spoe.c:825,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_spoe.c:826,1
    - Dst: spoe_decode_action_set_var
      Src: /src/haproxy/src/flt_spoe.c:834,1
    - Dst: spoe_decode_action_unset_var
      Src: /src/haproxy/src/flt_spoe.c:840,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - s
    - ctx
    - dir
    argTypes:
    - struct stream*
    - struct spoe_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 820
    functionDepth: 7
    functionLinenumber: 820
    functionLinenumberEnd: 853
    functionName: spoe_process_actions
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_decode_action_set_var
    - b_data
    - b_head
    - spoe_decode_action_unset_var
    linkageType: ''
    returnType: int
    signature: int spoe_process_actions(struct stream *s, struct spoe_context *ctx,
      int dir)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - err
    argTypes:
    - enum spoe_context_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 874
    functionName: spoe_ctx_err_to_spop_err
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum spop_error
    signature: enum spop_error spoe_ctx_err_to_spop_err(enum spoe_context_error err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spoe_update_stat_time
      Src: /src/haproxy/src/flt_spoe.c:879,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:886,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/flt_spoe.c:887,1
    - Dst: spoe_set_var
      Src: /src/haproxy/src/flt_spoe.c:891,1
    - Dst: strlen
      Src: /src/haproxy/src/flt_spoe.c:892,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:898,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/flt_spoe.c:899,1
    - Dst: spoe_set_var
      Src: /src/haproxy/src/flt_spoe.c:903,1
    - Dst: strlen
      Src: /src/haproxy/src/flt_spoe.c:904,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - s
    - agent
    - ctx
    - dir
    argTypes:
    - struct stream*
    - struct spoe_agent*
    - struct spoe_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 875
    functionDepth: 6
    functionLinenumber: 875
    functionLinenumberEnd: 906
    functionName: spoe_update_stats
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_update_stat_time
    - memset
    - smp_set_owner
    - spoe_set_var
    - strlen
    linkageType: ''
    returnType: void
    signature: "void spoe_update_stats(struct stream *s, struct spoe_agent *agent,\n\t\t\t
      \     struct spoe_context *ctx, int dir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:914,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/flt_spoe.c:915,1
    - Dst: spoe_set_var
      Src: /src/haproxy/src/flt_spoe.c:919,1
    - Dst: strlen
      Src: /src/haproxy/src/flt_spoe.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - s
    - agent
    - ctx
    - dir
    argTypes:
    - struct stream*
    - struct spoe_agent*
    - struct spoe_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 908
    functionDepth: 6
    functionLinenumber: 908
    functionLinenumberEnd: 926
    functionName: spoe_handle_processing_error
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - smp_set_owner
    - memset
    - spoe_set_var
    - strlen
    linkageType: ''
    returnType: void
    signature: "void spoe_handle_processing_error(struct stream *s, struct spoe_agent
      *agent,\n\t\t\t\t\t struct spoe_context *ctx, int dir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - agent
    - ctx
    - dir
    argTypes:
    - struct spoe_agent*
    - struct spoe_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 946
    functionName: spoe_start_processing
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int spoe_start_processing(struct spoe_agent *agent, struct spoe_context
      *ctx, int dir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/flt_spoe.c:954,1
    - Dst: spoe_ctx_err_to_spop_err
      Src: /src/haproxy/src/flt_spoe.c:957,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/flt_spoe.c:959,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/flt_spoe.c:960,1
    - Dst: spoe_release_buffer
      Src: /src/haproxy/src/flt_spoe.c:971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - agent
    - ctx
    argTypes:
    - struct spoe_agent*
    - struct spoe_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 974
    functionName: spoe_stop_processing
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - _HA_ATOMIC_INC
    - spoe_release_buffer
    - appctx_wakeup
    - spoe_ctx_err_to_spop_err
    linkageType: ''
    returnType: void
    signature: void spoe_stop_processing(struct spoe_agent *agent, struct spoe_context
      *ctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_spoe.c:984,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/flt_spoe.c:991,1
    - Dst: tick_isset
      Src: /src/haproxy/src/flt_spoe.c:997,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/flt_spoe.c:998,1
    - Dst: spoe_start_processing
      Src: /src/haproxy/src/flt_spoe.c:1004,1
    - Dst: spoe_acquire_buffer
      Src: /src/haproxy/src/flt_spoe.c:1015,1
    - Dst: spoe_encode_messages
      Src: /src/haproxy/src/flt_spoe.c:1017,1
    - Dst: spoe_create_appctx
      Src: /src/haproxy/src/flt_spoe.c:1022,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/flt_spoe.c:1032,1
    - Dst: spoe_process_actions
      Src: /src/haproxy/src/flt_spoe.c:1043,1
    - Dst: spoe_stop_processing
      Src: /src/haproxy/src/flt_spoe.c:1056,1
    - Dst: spoe_update_stats
      Src: /src/haproxy/src/flt_spoe.c:1060,1
    - Dst: spoe_stop_processing
      Src: /src/haproxy/src/flt_spoe.c:1061,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/flt_spoe.c:1063,1
    - Dst: spoe_handle_processing_error
      Src: /src/haproxy/src/flt_spoe.c:1064,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 5
    argNames:
    - s
    - ctx
    - messages
    - dir
    - type
    argTypes:
    - struct stream*
    - struct spoe_context*
    - struct list*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 981
    functionDepth: 8
    functionLinenumber: 981
    functionLinenumberEnd: 1068
    functionName: spoe_process_messages
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_encode_messages
    - _HA_ATOMIC_INC
    - spoe_update_stats
    - appctx_wakeup
    - spoe_stop_processing
    - tick_isset
    - tick_is_expired
    - spoe_process_actions
    - spoe_acquire_buffer
    - spoe_create_appctx
    - tick_add_ifset
    - spoe_start_processing
    - FLT_CONF
    - spoe_handle_processing_error
    linkageType: ''
    returnType: int
    signature: "int spoe_process_messages(struct stream *s, struct spoe_context *ctx,\n\t\t\t\t
      struct list *messages, int dir, int type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_spoe.c:1075,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1079,1
    - Dst: spoe_process_messages
      Src: /src/haproxy/src/flt_spoe.c:1082,1
    - Dst: send_log
      Src: /src/haproxy/src/flt_spoe.c:1085,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - s
    - ctx
    - group
    - dir
    argTypes:
    - struct stream*
    - struct spoe_context*
    - struct spoe_group*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1072
    functionDepth: 9
    functionLinenumber: 1072
    functionLinenumberEnd: 1091
    functionName: spoe_process_group
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - send_log
    - LIST_ISEMPTY
    - FLT_CONF
    - spoe_process_messages
    linkageType: ''
    returnType: int
    signature: "int spoe_process_group(struct stream *s, struct spoe_context *ctx,\n\t\t\t
      \     struct spoe_group *group, int dir)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_spoe.c:1098,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1104,1
    - Dst: spoe_process_messages
      Src: /src/haproxy/src/flt_spoe.c:1107,1
    - Dst: send_log
      Src: /src/haproxy/src/flt_spoe.c:1110,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/flt_spoe.c:1117,1
    - Dst: spoe_stop_processing
      Src: /src/haproxy/src/flt_spoe.c:1119,1
    - Dst: spoe_handle_processing_error
      Src: /src/haproxy/src/flt_spoe.c:1120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - s
    - ctx
    - ev
    argTypes:
    - struct stream*
    - struct spoe_context*
    - enum spoe_event
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1095
    functionDepth: 9
    functionLinenumber: 1095
    functionLinenumberEnd: 1126
    functionName: spoe_process_event
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_process_messages
    - proxy_abrt_close_def
    - spoe_stop_processing
    - LIST_ISEMPTY
    - send_log
    - FLT_CONF
    - spoe_handle_processing_error
    linkageType: ''
    returnType: int
    signature: "int spoe_process_event(struct stream *s, struct spoe_context *ctx,\n\t\t\t
      \     enum spoe_event ev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_dequeue
      Src: /src/haproxy/src/flt_spoe.c:1136,1
    - Dst: b_alloc
      Src: /src/haproxy/src/flt_spoe.c:1138,1
    - Dst: b_requeue
      Src: /src/haproxy/src/flt_spoe.c:1141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - buffer_wait
    argTypes:
    - struct buffer*
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1143
    functionName: spoe_acquire_buffer
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 2
    functionsReached:
    - b_requeue
    - b_alloc
    - b_dequeue
    linkageType: ''
    returnType: int
    signature: int spoe_acquire_buffer(struct buffer *buf, struct buffer_wait *buffer_wait)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_dequeue
      Src: /src/haproxy/src/flt_spoe.c:1147,1
    - Dst: b_free
      Src: /src/haproxy/src/flt_spoe.c:1151,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/flt_spoe.c:1152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - buffer_wait
    argTypes:
    - struct buffer*
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1145
    functionDepth: 1
    functionLinenumber: 1145
    functionLinenumberEnd: 1154
    functionName: spoe_release_buffer
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 1
    functionsReached:
    - offer_buffers
    - b_dequeue
    - b_free
    linkageType: ''
    returnType: void
    signature: void spoe_release_buffer(struct buffer *buf, struct buffer_wait *buffer_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_wakeup
      Src: /src/haproxy/src/flt_spoe.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct spoe_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1160
    functionName: spoe_wakeup_context
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    linkageType: ''
    returnType: int
    signature: int spoe_wakeup_context(struct spoe_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_spoe.c:1164,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/flt_spoe.c:1167,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1195
    functionName: spoe_create_context
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - pool_zalloc
    - FLT_CONF
    - LIST_INIT
    linkageType: ''
    returnType: struct spoe_context
    signature: struct spoe_context *spoe_create_context(struct stream *s, struct filter
      *filter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_spoe.c:1199,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/flt_spoe.c:1207,1
    - Dst: spoe_stop_processing
      Src: /src/haproxy/src/flt_spoe.c:1209,1
    - Dst: pool_free
      Src: /src/haproxy/src/flt_spoe.c:1210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1212
    functionName: spoe_destroy_context
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - FLT_CONF
    - pool_free
    - spoe_stop_processing
    linkageType: ''
    returnType: void
    signature: void spoe_destroy_context(struct filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct spoe_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1222
    functionName: spoe_reset_context
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void spoe_reset_context(struct spoe_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: proxy_init_per_thr
      Src: /src/haproxy/src/flt_spoe.c:1244,1
    - Dst: generate_pseudo_uuid
      Src: /src/haproxy/src/flt_spoe.c:1246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1229
    functionDepth: 3
    functionLinenumber: 1229
    functionLinenumberEnd: 1252
    functionName: spoe_init
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - proxy_init_per_thr
    - generate_pseudo_uuid
    linkageType: ''
    returnType: int
    signature: int spoe_init(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spoe_release_agent
      Src: /src/haproxy/src/flt_spoe.c:1262,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:1263,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:1264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1255
    functionDepth: 5
    functionLinenumber: 1255
    functionLinenumberEnd: 1267
    functionName: spoe_deinit
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_release_agent
    - free
    linkageType: ''
    returnType: void
    signature: void spoe_deinit(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:1279,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1290,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1291,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/flt_spoe.c:1297,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1299,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1310,1
    - Dst: postresolve_logger_list
      Src: /src/haproxy/src/flt_spoe.c:1317,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_spoe.c:1320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1323
    functionName: spoe_check
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - ha_free
    - strcmp
    - ha_alert
    - postresolve_logger_list
    - proxy_be_by_name
    linkageType: ''
    returnType: int
    signature: int spoe_check(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_spoe.c:1332,1
    - Dst: spoe_create_context
      Src: /src/haproxy/src/flt_spoe.c:1336,1
    - Dst: send_log
      Src: /src/haproxy/src/flt_spoe.c:1337,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1343,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1346,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1349,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1352,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1355,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1358,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1330
    functionDepth: 2
    functionLinenumber: 1330
    functionLinenumberEnd: 1362
    functionName: spoe_start
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - send_log
    - LIST_ISEMPTY
    - FLT_CONF
    - spoe_create_context
    linkageType: ''
    returnType: int
    signature: int spoe_start(struct stream *s, struct filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spoe_destroy_context
      Src: /src/haproxy/src/flt_spoe.c:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1366
    functionDepth: 3
    functionLinenumber: 1366
    functionLinenumberEnd: 1369
    functionName: spoe_stop
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_destroy_context
    linkageType: ''
    returnType: void
    signature: void spoe_stop(struct stream *s, struct filter *filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/flt_spoe.c:1379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1381
    functionName: spoe_check_timeouts
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - tick_is_expired
    linkageType: ''
    returnType: void
    signature: void spoe_check_timeouts(struct stream *s, struct filter *filter)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1402,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1414,1
    - Dst: channel_dont_read
      Src: /src/haproxy/src/flt_spoe.c:1416,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/flt_spoe.c:1417,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - s
    - filter
    - chn
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1384
    functionDepth: 10
    functionLinenumber: 1384
    functionLinenumberEnd: 1425
    functionName: spoe_start_analyze
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_process_event
    - channel_dont_read
    - channel_dont_close
    linkageType: ''
    returnType: int
    signature: int spoe_start_analyze(struct stream *s, struct filter *filter, struct
      channel *chn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1439,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1442,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1445,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1448,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1451,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1454,1
    - Dst: channel_dont_read
      Src: /src/haproxy/src/flt_spoe.c:1460,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/flt_spoe.c:1461,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - s
    - filter
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1428
    functionDepth: 10
    functionLinenumber: 1428
    functionLinenumberEnd: 1464
    functionName: spoe_chn_pre_analyze
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_process_event
    - channel_dont_read
    - channel_dont_close
    linkageType: ''
    returnType: int
    signature: "int spoe_chn_pre_analyze(struct stream *s, struct filter *filter,\n\t\t\t\tstruct
      channel *chn, unsigned an_bit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spoe_reset_context
      Src: /src/haproxy/src/flt_spoe.c:1472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - filter
    - chn
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1476
    functionName: spoe_end_analyze
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_reset_context
    linkageType: ''
    returnType: int
    signature: int spoe_end_analyze(struct stream *s, struct filter *filter, struct
      channel *chn)
  - BBCount: 79
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1506,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1509,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1511,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1516,1
    - Dst: invalid_char
      Src: /src/haproxy/src/flt_spoe.c:1521,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1523,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1530,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1535,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1536,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1541,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1543,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1555,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1556,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1562,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1563,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1564,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1566,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1568,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1573,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:1575,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1576,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1578,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:1583,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1584,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1585,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1592,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1593,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1597,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:1598,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1602,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:1607,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1608,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1609,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1616,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1617,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1621,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:1622,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1626,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1632,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1637,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1639,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1643,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1647,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1650,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1656,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/flt_spoe.c:1661,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1663,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1669,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1675,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/flt_spoe.c:1680,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1682,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1684,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1690,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1691,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1699,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1700,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1705,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1706,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1711,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1712,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1723,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1729,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1733,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1739,1
    - Dst: isalnum
      Src: /src/haproxy/src/flt_spoe.c:1743,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1744,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1751,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1753,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1754,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1758,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1759,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1763,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1767,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1773,1
    - Dst: isalnum
      Src: /src/haproxy/src/flt_spoe.c:1777,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1778,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1785,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1787,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1791,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1797,1
    - Dst: isalnum
      Src: /src/haproxy/src/flt_spoe.c:1801,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1802,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1809,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1811,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1815,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1821,1
    - Dst: isalnum
      Src: /src/haproxy/src/flt_spoe.c:1825,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1826,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1833,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1836,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1842,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1844,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1851,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1853,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1860,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1862,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1867,1
    - Dst: atol
      Src: /src/haproxy/src/flt_spoe.c:1869,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1872,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1878,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1880,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1885,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1889,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1893,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1902,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1903,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1907,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:1908,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1909,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:1913,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1917,1
    - Dst: parse_logger
      Src: /src/haproxy/src/flt_spoe.c:1920,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1921,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1927,1
    CyclomaticComplexity: 160
    EdgeCount: 160
    ICount: 404
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1499
    functionDepth: 3
    functionLinenumber: 1499
    functionLinenumberEnd: 1934
    functionName: cfg_parse_spoe_agent
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - invalid_char
    - parse_logger
    - alertif_too_many_args
    - list_for_each_entry
    - calloc
    - atol
    - strcmp
    - MS_TO_TICKS
    - free
    - LIST_APPEND
    - ha_alert
    - parse_time_err
    - LIST_INIT
    - isalnum
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_spoe_agent(const char *file, int linenum, char **args,
      int kwm)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1943,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1946,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1948,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1953,1
    - Dst: invalid_char
      Src: /src/haproxy/src/flt_spoe.c:1958,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1960,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:1966,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1967,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1968,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1976,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1977,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1982,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1983,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1985,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1986,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:1987,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1989,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:1994,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1995,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1996,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:2003,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2004,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2008,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2009,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2014,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 1935
    functionDepth: 1
    functionLinenumber: 1935
    functionLinenumberEnd: 2021
    functionName: cfg_parse_spoe_group
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - invalid_char
    - alertif_too_many_args
    - list_for_each_entry
    - calloc
    - strcmp
    - LIST_APPEND
    - ha_alert
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_spoe_group(const char *file, int linenum, char **args,
      int kwm)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2033,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2036,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2038,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:2043,1
    - Dst: invalid_char
      Src: /src/haproxy/src/flt_spoe.c:2048,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2050,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2056,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2057,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2058,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:2066,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2067,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2072,1
    - Dst: strlen
      Src: /src/haproxy/src/flt_spoe.c:2073,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2075,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2078,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2079,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2080,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2081,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2082,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2084,1
    - Dst: strchr
      Src: /src/haproxy/src/flt_spoe.c:2091,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:2094,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2095,1
    - Dst: my_strndup
      Src: /src/haproxy/src/flt_spoe.c:2106,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/flt_spoe.c:2110,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2114,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2116,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2117,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2121,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2127,1
    - Dst: invalid_char
      Src: /src/haproxy/src/flt_spoe.c:2128,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2130,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/flt_spoe.c:2135,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2136,1
    - Dst: parse_acl
      Src: /src/haproxy/src/flt_spoe.c:2142,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2143,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2149,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2151,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2158,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2160,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2163,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2165,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2167,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2170,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2172,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2174,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2177,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2183,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2183,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/flt_spoe.c:2186,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2190,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2199,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2207,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2213,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 161
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2023
    functionDepth: 6
    functionLinenumber: 2023
    functionLinenumberEnd: 2215
    functionName: cfg_parse_spoe_message
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - invalid_char
    - my_strndup
    - alertif_too_many_args
    - list_for_each_entry
    - calloc
    - strcmp
    - parse_acl
    - LIST_APPEND
    - strchr
    - free
    - strcasecmp
    - strlen
    - build_acl_cond
    - ha_alert
    - sample_parse_expr
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_spoe_message(const char *file, int linenum, char **args,
      int kwm)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2232,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2233,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2234,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2235,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2236,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2237,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:2241,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2243,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2249,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2251,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2258,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2260,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2268,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2273,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2278,1
    - Dst: cfg_backup_sections
      Src: /src/haproxy/src/flt_spoe.c:2279,1
    - Dst: cfg_register_section
      Src: /src/haproxy/src/flt_spoe.c:2280,1
    - Dst: cfg_register_section
      Src: /src/haproxy/src/flt_spoe.c:2281,1
    - Dst: cfg_register_section
      Src: /src/haproxy/src/flt_spoe.c:2282,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/flt_spoe.c:2285,1
    - Dst: load_cfg_in_mem
      Src: /src/haproxy/src/flt_spoe.c:2296,1
    - Dst: parse_cfg
      Src: /src/haproxy/src/flt_spoe.c:2300,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_spoe.c:2301,1
    - Dst: cfg_unregister_sections
      Src: /src/haproxy/src/flt_spoe.c:2304,1
    - Dst: cfg_restore_sections
      Src: /src/haproxy/src/flt_spoe.c:2305,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2308,1
    - Dst: strerror
      Src: /src/haproxy/src/flt_spoe.c:2309,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2313,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2319,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2323,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_spoe.c:2328,1
    - Dst: isalnum
      Src: /src/haproxy/src/flt_spoe.c:2337,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2338,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2345,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:2351,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/flt_spoe.c:2358,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2359,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:2368,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/flt_spoe.c:2375,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2376,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:2385,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/flt_spoe.c:2392,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2393,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:2399,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:2399,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_spoe.c:2400,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2407,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2408,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2412,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_spoe.c:2422,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_spoe.c:2427,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2482,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2484,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/flt_spoe.c:2488,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/flt_spoe.c:2489,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2495,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2499,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2508,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2509,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2510,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2512,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2513,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2517,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2526,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2527,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2528,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2529,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2531,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2543,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2544,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2548,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2561,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2563,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:2569,1
    - Dst: setup_new_proxy
      Src: /src/haproxy/src/flt_spoe.c:2570,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2571,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2579,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2580,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2581,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2584,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2585,1
    - Dst: spoe_release_placeholder
      Src: /src/haproxy/src/flt_spoe.c:2586,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2588,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2589,1
    - Dst: spoe_release_placeholder
      Src: /src/haproxy/src/flt_spoe.c:2590,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2592,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:2595,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/flt_spoe.c:2602,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2603,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2608,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2609,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2610,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2612,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2613,1
    - Dst: spoe_release_group
      Src: /src/haproxy/src/flt_spoe.c:2614,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_spoe.c:2623,1
    - Dst: spoe_release_agent
      Src: /src/haproxy/src/flt_spoe.c:2624,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2625,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2626,1
    - Dst: spoe_release_placeholder
      Src: /src/haproxy/src/flt_spoe.c:2627,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2629,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2630,1
    - Dst: spoe_release_placeholder
      Src: /src/haproxy/src/flt_spoe.c:2631,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2633,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2634,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2635,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2636,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2638,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2639,1
    - Dst: spoe_release_group
      Src: /src/haproxy/src/flt_spoe.c:2640,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2642,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2643,1
    - Dst: spoe_release_message
      Src: /src/haproxy/src/flt_spoe.c:2644,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2646,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2647,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2648,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2650,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 346
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2218
    functionDepth: 5
    functionLinenumber: 2218
    functionLinenumberEnd: 2652
    functionName: parse_spoe_flt
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - memprintf
    - sample_ckp_names
    - list_for_each_entry_safe
    - LIST_APPEND
    - free
    - load_cfg_in_mem
    - cfg_register_section
    - LIST_INIT
    - snprintf
    - vars_check_arg
    - strerror
    - ha_free
    - cfg_restore_sections
    - strcmp
    - spoe_release_placeholder
    - cfg_backup_sections
    - spoe_release_group
    - cfg_unregister_sections
    - spoe_release_agent
    - parse_cfg
    - calloc
    - setup_new_proxy
    - LIST_DELETE
    - memset
    - BUG_ON
    - list_for_each_entry
    - spoe_release_message
    - LIST_ISEMPTY
    - ha_warning
    - isalnum
    - strdup
    linkageType: ''
    returnType: int
    signature: "int parse_spoe_flt(char **args, int *cur_arg, struct proxy *px,\n\t\t\t
      \ struct flt_conf *fconf, char **err, void *private)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2668,1
    - Dst: send_log
      Src: /src/haproxy/src/flt_spoe.c:2688,1
    - Dst: spoe_process_group
      Src: /src/haproxy/src/flt_spoe.c:2693,1
    - Dst: spoe_stop_processing
      Src: /src/haproxy/src/flt_spoe.c:2699,1
    - Dst: spoe_handle_processing_error
      Src: /src/haproxy/src/flt_spoe.c:2700,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2659
    functionDepth: 10
    functionLinenumber: 2659
    functionLinenumberEnd: 2707
    functionName: spoe_send_group
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_process_group
    - list_for_each_entry
    - spoe_stop_processing
    - send_log
    - spoe_handle_processing_error
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return spoe_send_group(struct act_rule *rule, struct proxy
      *px,\n\t\t\t\t       struct session *sess, struct stream *s, int flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2741,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2749,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2757,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2763,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2769,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2771,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2775,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2782,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2785,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2787,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/flt_spoe.c:2791,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/flt_spoe.c:2792,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2798,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2799,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2807,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2808,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2810
      start: 2723
    functionDepth: 5
    functionLinenumber: 2723
    functionLinenumberEnd: 2810
    functionName: check_send_spoe_group
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - memprintf
    - list_for_each_entry
    - sample_ckp_names
    - strcmp
    - free
    linkageType: ''
    returnType: int
    signature: int check_send_spoe_group(struct act_rule *rule, struct proxy *px,
      char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2824,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2824,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2825,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2828,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2829,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2837
      start: 2820
    functionDepth: 5
    functionLinenumber: 2820
    functionLinenumberEnd: 2837
    functionName: parse_send_spoe_group
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - strdup
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_send_spoe_group(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t\tstruct act_rule *rule, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_appctx
      Src: /src/haproxy/src/flt_spoe.c:2849,1
    - Dst: spoe_appctx_agent
      Src: /src/haproxy/src/flt_spoe.c:2853,1
    - Dst: strlen
      Src: /src/haproxy/src/flt_spoe.c:2859,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2841
    functionDepth: 2
    functionLinenumber: 2841
    functionLinenumberEnd: 2863
    functionName: smp_fetch_spoe_engine_id
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_appctx_agent
    - sc_appctx
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_spoe_engine_id(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/flt_spoe.c:2875,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/flt_spoe.c:2876,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2878,1
    - Dst: _parse_srv_expr
      Src: /src/haproxy/src/flt_spoe.c:2883,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2892
      start: 2865
    functionDepth: 1
    functionLinenumber: 2865
    functionLinenumberEnd: 2892
    functionName: spoe_postcheck_spop_proxy
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - ha_free
    - _parse_srv_expr
    - release_sample_expr
    - strdup
    linkageType: ''
    returnType: int
    signature: int spoe_postcheck_spop_proxy(struct proxy *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:75,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: warnif_rule_after_tcp_conn
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int warnif_rule_after_tcp_conn(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:88,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: warnif_rule_after_tcp_sess
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int warnif_rule_after_tcp_sess(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:101,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: warnif_rule_after_tcp_cont
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int warnif_rule_after_tcp_cont(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:114,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: warnif_rule_after_monitor
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int warnif_rule_after_monitor(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:127,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: warnif_rule_after_http_req
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int warnif_rule_after_http_req(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:140,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: warnif_rule_after_http_res
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int warnif_rule_after_http_res(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:153,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: warnif_rule_after_redirect
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int warnif_rule_after_redirect(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:166,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: warnif_rule_after_use_backend
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int warnif_rule_after_use_backend(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:179,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: warnif_rule_after_use_server
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int warnif_rule_after_use_server(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnif_rule_after_use_backend
      Src: /src/haproxy/src/cfgparse-listen.c:190,1
    - Dst: warnif_rule_after_use_server
      Src: /src/haproxy/src/cfgparse-listen.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: warnif_misplaced_redirect
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - warnif_rule_after_use_server
    - warnif_rule_after_use_backend
    linkageType: ''
    returnType: int
    signature: int warnif_misplaced_redirect(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnif_rule_after_redirect
      Src: /src/haproxy/src/cfgparse-listen.c:197,1
    - Dst: warnif_misplaced_redirect
      Src: /src/haproxy/src/cfgparse-listen.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: warnif_misplaced_http_req
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - warnif_rule_after_redirect
    - warnif_misplaced_redirect
    linkageType: ''
    returnType: int
    signature: int warnif_misplaced_http_req(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnif_rule_after_http_req
      Src: /src/haproxy/src/cfgparse-listen.c:204,1
    - Dst: warnif_misplaced_http_req
      Src: /src/haproxy/src/cfgparse-listen.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: warnif_misplaced_monitor
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - warnif_rule_after_http_req
    - warnif_misplaced_http_req
    linkageType: ''
    returnType: int
    signature: int warnif_misplaced_monitor(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnif_rule_after_monitor
      Src: /src/haproxy/src/cfgparse-listen.c:211,1
    - Dst: warnif_misplaced_monitor
      Src: /src/haproxy/src/cfgparse-listen.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 5
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: warnif_misplaced_tcp_req_cont
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - warnif_rule_after_monitor
    - warnif_misplaced_monitor
    linkageType: ''
    returnType: int
    signature: int warnif_misplaced_tcp_req_cont(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnif_rule_after_http_res
      Src: /src/haproxy/src/cfgparse-listen.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: warnif_misplaced_tcp_res_cont
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - warnif_rule_after_http_res
    linkageType: ''
    returnType: int
    signature: int warnif_misplaced_tcp_res_cont(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnif_rule_after_tcp_cont
      Src: /src/haproxy/src/cfgparse-listen.c:224,1
    - Dst: warnif_misplaced_tcp_req_cont
      Src: /src/haproxy/src/cfgparse-listen.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: warnif_misplaced_tcp_req_sess
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - warnif_misplaced_tcp_req_cont
    - warnif_rule_after_tcp_cont
    linkageType: ''
    returnType: int
    signature: int warnif_misplaced_tcp_req_sess(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnif_rule_after_tcp_sess
      Src: /src/haproxy/src/cfgparse-listen.c:231,1
    - Dst: warnif_misplaced_tcp_req_sess
      Src: /src/haproxy/src/cfgparse-listen.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 7
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: warnif_misplaced_tcp_req_conn
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - warnif_misplaced_tcp_req_sess
    - warnif_rule_after_tcp_sess
    linkageType: ''
    returnType: int
    signature: int warnif_misplaced_tcp_req_conn(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warnif_rule_after_tcp_conn
      Src: /src/haproxy/src/cfgparse-listen.c:237,1
    - Dst: warnif_misplaced_tcp_req_conn
      Src: /src/haproxy/src/cfgparse-listen.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - proxy
    - file
    - line
    - arg1
    - arg2
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 8
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: warnif_misplaced_quic_init
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 1
    functionsReached:
    - warnif_misplaced_tcp_req_conn
    - warnif_rule_after_tcp_conn
    linkageType: ''
    returnType: int
    signature: int warnif_misplaced_quic_init(struct proxy *proxy, const char *file,
      int line, const char *arg1, const char *arg2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:257,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:259,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:266,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:272,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:274,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 10
    argNames:
    - file
    - linenum
    - kwm
    - config_opts
    - err_code
    - args
    - mode
    - cap
    - options
    - no_options
    argTypes:
    - char*
    - int
    - int
    - struct cfg_opt[]
    - int*
    - char**
    - int
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 297
    functionName: cfg_parse_listen_match_option
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - warnifnotcap
    - alertif_too_many_args_idx
    - strcmp
    - ha_alert
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_listen_match_option(const char *file, int linenum, int
      kwm,\n                                  const struct cfg_opt config_opts[],
      int *err_code,\n                                  char **args, int mode, int
      cap,\n                                  int *options, int *no_options)"
  - BBCount: 569
    BranchProfiles: []
    Callsites:
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/cfgparse-listen.c:313,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:317,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:323,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:325,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:327,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:329,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:339,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse-listen.c:345,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:347,1
    - Dst: proxy_fe_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:354,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:357,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:361,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:362,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-listen.c:362,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:367,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:368,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:371,1
    - Dst: log_forward_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:382,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:384,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:385,1
    - Dst: defaults_px_destroy
      Src: /src/haproxy/src/cfgparse-listen.c:397,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:403,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:413,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:416,1
    - Dst: defaults_px_detach
      Src: /src/haproxy/src/cfgparse-listen.c:430,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:436,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:438,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:442,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:444,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-listen.c:444,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:450,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:460,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:461,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:464,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:464,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:470,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:471,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse-listen.c:477,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:479,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:489,1
    - Dst: parse_new_proxy
      Src: /src/haproxy/src/cfgparse-listen.c:495,1
    - Dst: proxy_ref_defaults
      Src: /src/haproxy/src/cfgparse-listen.c:505,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:507,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:511,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:522,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:532,1
    - Dst: parse_server
      Src: /src/haproxy/src/cfgparse-listen.c:533,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:540,1
    - Dst: parse_server
      Src: /src/haproxy/src/cfgparse-listen.c:541,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:548,1
    - Dst: parse_server
      Src: /src/haproxy/src/cfgparse-listen.c:549,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:556,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:561,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:565,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:569,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/cfgparse-listen.c:575,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse-listen.c:575,1
    - Dst: str2listener
      Src: /src/haproxy/src/cfgparse-listen.c:588,1
    - Dst: indent_msg
      Src: /src/haproxy/src/cfgparse-listen.c:590,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:591,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:594,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse-listen.c:600,1
    - Dst: bind_parse_args_list
      Src: /src/haproxy/src/cfgparse-listen.c:606,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:609,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:610,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:614,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:615,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:618,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:622,1
    - Dst: istfree
      Src: /src/haproxy/src/cfgparse-listen.c:628,1
    - Dst: istdup
      Src: /src/haproxy/src/cfgparse-listen.c:629,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-listen.c:629,1
    - Dst: isttest
      Src: /src/haproxy/src/cfgparse-listen.c:630,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:635,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:637,1
    - Dst: unlikely
      Src: /src/haproxy/src/cfgparse-listen.c:640,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:640,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:641,1
    - Dst: str_to_proxy_mode
      Src: /src/haproxy/src/cfgparse-listen.c:646,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:648,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:650,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:660,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:667,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/cfgparse-listen.c:667,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:683,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:687,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:693,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:697,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:703,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:707,1
    - Dst: proxy_find_by_id
      Src: /src/haproxy/src/cfgparse-listen.c:713,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:715,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-listen.c:716,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-listen.c:717,1
    - Dst: proxy_index_id
      Src: /src/haproxy/src/cfgparse-listen.c:721,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:723,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:728,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:735,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:741,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:743,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-listen.c:748,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-listen.c:750,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:753,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:754,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:758,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:759,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:763,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:764,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:767,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:768,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:769,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse-listen.c:774,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:776,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-listen.c:782,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:783,1
    - Dst: parse_acl
      Src: /src/haproxy/src/cfgparse-listen.c:790,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:791,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:797,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:799,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:803,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:808,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:809,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:811,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:814,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:818,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:826,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:827,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:828,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:831,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:835,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:838,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:841,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:844,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:847,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:850,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:853,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:856,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:859,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:862,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:864,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse-listen.c:870,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:872,1
    - Dst: invalid_domainchar
      Src: /src/haproxy/src/cfgparse-listen.c:878,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:880,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:887,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-listen.c:893,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:900,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:905,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-listen.c:911,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:913,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:919,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:925,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:933,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:938,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-listen.c:945,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:947,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:953,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:959,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:967,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:969,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:973,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:976,1
    - Dst: iscntrl
      Src: /src/haproxy/src/cfgparse-listen.c:983,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:984,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:993,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-listen.c:995,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1003,1
    - Dst: POWEROF2
      Src: /src/haproxy/src/cfgparse-listen.c:1010,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1011,1
    - Dst: POWEROF2
      Src: /src/haproxy/src/cfgparse-listen.c:1016,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1017,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1023,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1028,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1030,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1036,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1038,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1043,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1044,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1048,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1050,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1055,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1056,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1060,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1062,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1067,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1068,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1072,1
    - Dst: get_log_level
      Src: /src/haproxy/src/cfgparse-listen.c:1073,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1075,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1081,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1083,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1088,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1089,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1094,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1102,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1104,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-listen.c:1110,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse-listen.c:1117,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:1119,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1123,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1129,1
    - Dst: my_strndup
      Src: /src/haproxy/src/cfgparse-listen.c:1130,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1136,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1137,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1140,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1143,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1150,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1156,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1157,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1161,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1162,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1164,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1167,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1170,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1174,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1180,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1181,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:1183,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1186,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1188,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1189,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1191,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1196,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1197,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1200,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-listen.c:1205,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1207,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1208,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1211,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1213,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:1218,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1222,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1227,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1228,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1231,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:1232,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1235,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1235,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1239,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:1244,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1247,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1248,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1254,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1258,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1261,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:1262,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse-listen.c:1263,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1267,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1268,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1275,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1275,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1279,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:1284,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1287,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1288,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1293,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1297,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1300,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:1301,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse-listen.c:1302,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1306,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1307,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1315,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1321,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1322,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:1325,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1329,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:1334,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1336,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1340,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1341,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:1346,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1347,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1348,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1349,1
    - Dst: parse_http_req_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1354,1
    - Dst: warnif_misplaced_http_req
      Src: /src/haproxy/src/cfgparse-listen.c:1361,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1368,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1370,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1372,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1374,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1378,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1379,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:1384,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1385,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1386,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1387,1
    - Dst: parse_http_res_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1392,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1403,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1405,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1407,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1409,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1412,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1413,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:1418,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1419,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1420,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1421,1
    - Dst: parse_http_after_res_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1426,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1437,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1439,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1441,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1443,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1445,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1449,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-listen.c:1454,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-listen.c:1455,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-listen.c:1456,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-listen.c:1457,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1458,1
    - Dst: istfree
      Src: /src/haproxy/src/cfgparse-listen.c:1465,1
    - Dst: istdup
      Src: /src/haproxy/src/cfgparse-listen.c:1466,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-listen.c:1466,1
    - Dst: isttest
      Src: /src/haproxy/src/cfgparse-listen.c:1467,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/src/cfgparse-listen.c:1469,1
    - Dst: istptr
      Src: /src/haproxy/src/cfgparse-listen.c:1469,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1471,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1472,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1477,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1482,1
    - Dst: http_parse_redirect_rule
      Src: /src/haproxy/src/cfgparse-listen.c:1487,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1488,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-listen.c:1489,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1494,1
    - Dst: warnif_misplaced_redirect
      Src: /src/haproxy/src/cfgparse-listen.c:1495,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1502,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1504,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1506,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1510,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1515,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1519,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1524,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1524,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1525,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1526,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1532,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1534,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1537,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1543,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1547,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1551,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1554,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1556,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1557,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-listen.c:1560,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1561,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1563,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1567,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1572,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1576,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1581,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1581,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1582,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1588,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1589,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1595,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1597,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1599,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1603,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1607,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1610,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1612,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1613,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-listen.c:1616,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1617,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1620,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1621,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1625,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1630,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1633,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1633,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1634,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1640,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1641,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1650,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1652,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1654,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1656,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1660,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-listen.c:1665,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1666,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1668,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1672,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:1678,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1680,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:1682,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1689,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1691,1
    - Dst: parse_stick_table
      Src: /src/haproxy/src/cfgparse-listen.c:1697,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1700,1
    - Dst: stktable_store_name
      Src: /src/haproxy/src/cfgparse-listen.c:1707,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1717,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1725,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1730,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1736,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1737,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1741,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1745,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1749,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1754,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1760,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/cfgparse-listen.c:1766,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1768,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1775,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/cfgparse-listen.c:1776,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1778,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1783,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/cfgparse-listen.c:1784,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1786,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1794,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1799,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1799,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1800,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1801,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1804,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1809,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1812,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1816,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1818,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1820,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1822,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1824,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1830,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-listen.c:1831,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1833,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1835,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1837,1
    - Dst: stats_uri_auth_drop
      Src: /src/haproxy/src/cfgparse-listen.c:1840,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1846,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1851,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/cfgparse-listen.c:1856,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1859,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1859,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1860,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1865,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1866,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1876,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1878,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1880,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1882,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-listen.c:1886,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1887,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1888,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1890,1
    - Dst: stats_set_uri
      Src: /src/haproxy/src/cfgparse-listen.c:1893,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1895,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1897,1
    - Dst: stats_set_realm
      Src: /src/haproxy/src/cfgparse-listen.c:1900,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1902,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-listen.c:1905,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1907,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1913,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1919,1
    - Dst: stats_set_refresh
      Src: /src/haproxy/src/cfgparse-listen.c:1923,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1925,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1930,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/cfgparse-listen.c:1935,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:1938,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1939,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1940,1
    - Dst: parse_http_req_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1945,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1956,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1958,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1959,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1961,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1963,1
    - Dst: stats_add_auth
      Src: /src/haproxy/src/cfgparse-listen.c:1966,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1968,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1970,1
    - Dst: stats_add_scope
      Src: /src/haproxy/src/cfgparse-listen.c:1973,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1975,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/cfgparse-listen.c:1976,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1978,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1981,1
    - Dst: stats_set_flag
      Src: /src/haproxy/src/cfgparse-listen.c:1982,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1984,1
    - Dst: stats_set_flag
      Src: /src/haproxy/src/cfgparse-listen.c:1985,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1987,1
    - Dst: stats_set_flag
      Src: /src/haproxy/src/cfgparse-listen.c:1988,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1990,1
    - Dst: isupper
      Src: /src/haproxy/src/cfgparse-listen.c:1998,1
    - Dst: islower
      Src: /src/haproxy/src/cfgparse-listen.c:1998,1
    - Dst: isdigit
      Src: /src/haproxy/src/cfgparse-listen.c:1999,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2004,1
    - Dst: stats_set_node
      Src: /src/haproxy/src/cfgparse-listen.c:2012,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2014,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:2022,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:2024,1
    - Dst: unlikely
      Src: /src/haproxy/src/cfgparse-listen.c:2025,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2026,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-listen.c:2032,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-listen.c:2034,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2038,1
    - Dst: stats_set_desc
      Src: /src/haproxy/src/cfgparse-listen.c:2041,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:2042,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:2045,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2049,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2055,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2057,1
    - Dst: cfg_parse_listen_match_option
      Src: /src/haproxy/src/cfgparse-listen.c:2064,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2067,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2069,1
    - Dst: cfg_parse_listen_match_option
      Src: /src/haproxy/src/cfgparse-listen.c:2083,1
    - Dst: cfg_parse_listen_match_option
      Src: /src/haproxy/src/cfgparse-listen.c:2091,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2103,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2104,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2109,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2110,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2123,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2124,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2137,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2138,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2151,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2152,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2157,1
    - Dst: proxy_http_parse_7239
      Src: /src/haproxy/src/cfgparse-listen.c:2159,1
    - Dst: http_ext_7239_clean
      Src: /src/haproxy/src/cfgparse-listen.c:2164,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2173,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2174,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:2187,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2202,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2203,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2208,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2211,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2221,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2223,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2225,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2228,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2246,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2252,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2258,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2262,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2266,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2285,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2288,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2290,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2294,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2299,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2305,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2308,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2312,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2331,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2335,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2337,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2342,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2347,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2365,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2368,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2370,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2374,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2379,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2381,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2384,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2392,1
    - Dst: proxy_parse_httpchk_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2393,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2397,1
    - Dst: proxy_parse_ssl_hello_chk_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2398,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2402,1
    - Dst: proxy_parse_smtpchk_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2403,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2407,1
    - Dst: proxy_parse_pgsql_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2408,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2412,1
    - Dst: proxy_parse_redis_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2413,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2417,1
    - Dst: proxy_parse_mysql_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2418,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2422,1
    - Dst: proxy_parse_ldap_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2423,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2427,1
    - Dst: proxy_parse_spop_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2428,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2432,1
    - Dst: proxy_parse_tcp_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2433,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2437,1
    - Dst: proxy_parse_external_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2438,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2442,1
    - Dst: proxy_http_parse_xff
      Src: /src/haproxy/src/cfgparse-listen.c:2443,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2447,1
    - Dst: proxy_http_parse_xot
      Src: /src/haproxy/src/cfgparse-listen.c:2448,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2452,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2453,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2457,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2464,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2466,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2468,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2471,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2477,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2478,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2481,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2485,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2489,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2494,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2498,1
    - Dst: proxy_find_best_option
      Src: /src/haproxy/src/cfgparse-listen.c:2510,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2513,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2515,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2522,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2523,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2527,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:2531,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2532,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2536,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2539,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2539,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2540,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2545,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2546,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2549,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2553,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2556,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2560,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2563,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2566,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2569,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2573,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2577,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2582,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2584,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2589,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2592,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2594,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2594,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2595,1
    - Dst: warnif_misplaced_monitor
      Src: /src/haproxy/src/cfgparse-listen.c:2601,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:2603,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2604,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:2609,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2612,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2618,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2621,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2624,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2633,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2634,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2638,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:2642,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2643,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2646,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2647,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2651,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:2655,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2656,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2659,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2660,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2664,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:2668,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2669,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2672,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2673,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2678,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2683,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2687,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse-listen.c:2690,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2694,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2699,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2703,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2717,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2718,1
    - Dst: backend_parse_balance
      Src: /src/haproxy/src/cfgparse-listen.c:2721,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2722,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2727,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2736,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2739,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2742,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2745,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2746,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2751,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2766,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2769,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2772,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2775,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2778,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2782,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2788,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2792,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2798,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2800,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:2804,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2806,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2811,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2813,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2818,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2822,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2823,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2826,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2830,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2833,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2837,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2839,1
    - Dst: istfree
      Src: /src/haproxy/src/cfgparse-listen.c:2844,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-listen.c:2845,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2848,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2850,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2855,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2872,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2875,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2876,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2879,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2886,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2891,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2893,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2898,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2903,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2904,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2907,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2914,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2919,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2921,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2926,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2931,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2934,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2935,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2939,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2946,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2951,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2953,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/cfgparse-listen.c:2957,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/cfgparse-listen.c:2958,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2958,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:2958,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:2958,1
    - Dst: b_orig
      Src: /src/haproxy/src/cfgparse-listen.c:2959,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/cfgparse-listen.c:2960,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2961,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2966,1
    - Dst: parse_logger
      Src: /src/haproxy/src/cfgparse-listen.c:2967,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2968,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2973,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2978,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2982,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:2990,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse-listen.c:2993,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2997,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3008,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3011,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3017,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3020,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-listen.c:3023,1
    - Dst: isspace
      Src: /src/haproxy/src/cfgparse-listen.c:3027,1
    - Dst: isspace
      Src: /src/haproxy/src/cfgparse-listen.c:3031,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:3036,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:3037,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-listen.c:3041,1
    - Dst: isspace
      Src: /src/haproxy/src/cfgparse-listen.c:3046,1
    - Dst: isdigit
      Src: /src/haproxy/src/cfgparse-listen.c:3053,1
    - Dst: strl2ic
      Src: /src/haproxy/src/cfgparse-listen.c:3055,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3059,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse-listen.c:3068,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3072,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3083,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3092,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3095,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:3100,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:3101,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:3104,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3107,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3115,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3121,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3122,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3127,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3127,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3128,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3134,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3135,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3140,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3141,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3146,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3147,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3151,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3152,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3157,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3158,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3163,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3164,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3169,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3170,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3175,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3176,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3181,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3182,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3186,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3187,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3192,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3193,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3198,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3199,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3204,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3204,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3205,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3210,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3211,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3216,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3217,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3222,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3223,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3228,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3229,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3234,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3235,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3240,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3241,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse-listen.c:3251,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3255,1
    - Dst: check_kw_experimental
      Src: /src/haproxy/src/cfgparse-listen.c:3256,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3257,1
    - Dst: parse
      Src: /src/haproxy/src/cfgparse-listen.c:3263,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3266,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:3272,1
    - Dst: cfg_find_best_match
      Src: /src/haproxy/src/cfgparse-listen.c:3281,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3283,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3285,1
    CyclomaticComplexity: 972
    EdgeCount: 972
    ICount: 2599
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3288
      start: 299
    functionDepth: 7
    functionLinenumber: 299
    functionLinenumberEnd: 3288
    functionName: cfg_parse_listen
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - parse_logger
    - proxy_type_str
    - sample_src_names
    - chunk_destroy
    - atoi
    - ist
    - atol
    - strchr
    - str_to_proxy_mode
    - strl2ic
    - indent_msg
    - warnif_misplaced_monitor
    - b_orig
    - stats_set_realm
    - LIST_PREV
    - defaults_px_detach
    - parse_http_after_res_cond
    - islower
    - proxy_parse_smtpchk_opt
    - proxy_find_by_id
    - strcasecmp
    - cfg_find_best_match
    - stats_set_desc
    - stats_set_node
    - check_kw_experimental
    - proxy_parse_pgsql_check_opt
    - defaults_px_destroy
    - ha_warning
    - stats_set_uri
    - parse_new_proxy
    - memprintf
    - parse
    - proxy_index_id
    - proxy_fe_by_name
    - warnif_cond_conflicts
    - free_acl_cond
    - http_ext_7239_clean
    - bind_parse_args_list
    - LIST_INIT
    - proxy_parse_mysql_check_opt
    - str2listener
    - invalid_char
    - proxy_parse_ssl_hello_chk_opt
    - stats_uri_auth_drop
    - proxy_parse_tcp_check_opt
    - alertif_too_many_args
    - proxy_find_best_option
    - istfree
    - strcmp
    - stktable_find_by_name
    - get_log_level
    - parse_server
    - istptr
    - sample_parse_expr
    - backend_parse_balance
    - proxy_parse_httpchk_opt
    - stats_add_scope
    - calloc
    - isupper
    - warnif_misplaced_http_req
    - proxy_parse_spop_check_opt
    - build_acl_cond
    - strdup
    - http_parse_redirect_rule
    - POWEROF2
    - list_for_each_entry
    - stats_set_refresh
    - LIST_ISEMPTY
    - ha_alert
    - proxy_be_by_name
    - chunk_initlen
    - strlen
    - isttest
    - stats_check_init_uri_auth
    - log_forward_by_name
    - LIST_APPEND
    - proxy_cap_str
    - bind_conf_alloc
    - snprintf
    - str2sa_range
    - proxy_http_parse_7239
    - parse_stick_table
    - alloc_new_proxy
    - alertif_too_many_args_idx
    - stats_add_auth
    - proxy_parse_redis_check_opt
    - proxy_ref_defaults
    - parse_acl
    - strncmp
    - proxy_parse_external_check_opt
    - proxy_parse_ldap_check_opt
    - stats_set_flag
    - proxy_mode_str
    - unlikely
    - parse_http_res_cond
    - proxy_http_parse_xot
    - free
    - invalid_domainchar
    - iscntrl
    - isdigit
    - warnif_misplaced_redirect
    - isspace
    - proxy_http_parse_xff
    - ha_free
    - stktable_store_name
    - parse_http_req_cond
    - my_strndup
    - memcpy
    - lf_expr_deinit
    - xprt_get
    - proxy_find_by_name
    - istdup
    - cfg_parse_listen_match_option
    - ist2bin_lc
    - parse_time_err
    - warnifnotcap
    - create_pool
    linkageType: ''
    returnType: int
    signature: int cfg_parse_listen(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_setall
      Src: /src/haproxy/src/stconn.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - sedesc
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: sedesc_init
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - se_fl_setall
    linkageType: ''
    returnType: void
    signature: void sedesc_init(struct sedesc *sedesc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/stconn.c:63,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:64,1
    - Dst: sedesc_init
      Src: /src/haproxy/src/stconn.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: sedesc_new
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 4
    functionsReached:
    - unlikely
    - pool_alloc
    - sedesc_init
    linkageType: ''
    returnType: struct sedesc
    signature: struct sedesc *sedesc_new()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: put_pipe
      Src: /src/haproxy/src/stconn.c:78,1
    - Dst: pool_free
      Src: /src/haproxy/src/stconn.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sedesc
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: sedesc_free
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 4
    functionsReached:
    - pool_free
    - put_pipe
    linkageType: ''
    returnType: void
    signature: void sedesc_free(struct sedesc *sedesc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:94,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/stconn.c:95,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:98,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:101,1
    - Dst: se_opposite
      Src: /src/haproxy/src/stconn.c:106,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/stconn.c:109,1
    - Dst: shut
      Src: /src/haproxy/src/stconn.c:109,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stconn.c:111,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:114,1
    - Dst: se_opposite
      Src: /src/haproxy/src/stconn.c:119,1
    - Dst: struct appctx*::applet::shut
      Src: /src/haproxy/src/stconn.c:122,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stconn.c:124,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:127,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:127,1
    - Dst: appctx_shut
      Src: /src/haproxy/src/stconn.c:128,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - sedesc
    - mode
    argTypes:
    - struct sedesc*
    - enum se_shut_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 130
    functionName: se_shutdown
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - se_fl_set
    - se_opposite
    - appctx_shut
    - CALL_MUX_NO_RET
    - struct appctx*::applet::shut
    - se_report_term_evt
    - se_fl_test
    - shut
    linkageType: ''
    returnType: void
    signature: void se_shutdown(struct sedesc *sedesc, enum se_shut_mode mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/stconn.c:141,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:143,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/stconn.c:162,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:163,1
    - Dst: pool_free
      Src: /src/haproxy/src/stconn.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - sedesc
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 174
    functionName: sc_new
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 6
    functionsReached:
    - unlikely
    - sedesc_new
    - pool_alloc
    - pool_free
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *sc_new(struct sedesc *sedesc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_new
      Src: /src/haproxy/src/stconn.c:184,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:185,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:187,1
    - Dst: struct session*::fe::stream_new_from_sc
      Src: /src/haproxy/src/stconn.c:187,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/stconn.c:191,1
    - Dst: pool_free
      Src: /src/haproxy/src/stconn.c:193,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stconn.c:194,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/stconn.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - sd
    - sess
    - input
    argTypes:
    - struct sedesc*
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 199
    functionName: sc_new_from_endp
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 4
    functionsReached:
    - unlikely
    - se_fl_set
    - se_fl_clr
    - sc_new
    - struct session*::fe::stream_new_from_sc
    - pool_free
    - sedesc_free
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *sc_new_from_endp(struct sedesc *sd, struct session *sess,
      struct buffer *input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_new
      Src: /src/haproxy/src/stconn.c:209,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:210,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:215,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - strm
    - flags
    argTypes:
    - struct stream*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: sc_new_from_strm
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_ep_set
    - sc_new
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *sc_new_from_strm(struct stream *strm, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_new
      Src: /src/haproxy/src/stconn.c:230,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:231,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:234,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 238
    functionName: sc_new_from_check
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_ep_set
    - sc_new
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *sc_new_from_check(struct check *check)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_free
      Src: /src/haproxy/src/stconn.c:245,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/stconn.c:246,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:248,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:248,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/stconn.c:249,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/stconn.c:251,1
    - Dst: pool_free
      Src: /src/haproxy/src/stconn.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: sc_free
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 6
    functionsReached:
    - sc_ep_test
    - BUG_ON
    - sockaddr_free
    - pool_free
    - tasklet_free
    - sedesc_free
    linkageType: ''
    returnType: void
    signature: void sc_free(struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:263,1
    - Dst: sc_free
      Src: /src/haproxy/src/stconn.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - scp
    argTypes:
    - struct stconn**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 5
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: sc_free_cond
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_free
    - sc_ep_test
    linkageType: ''
    returnType: void
    signature: void sc_free_cond(struct stconn **scp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sc_strm
      Src: /src/haproxy/src/stconn.c:279,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/stconn.c:281,1
    - Dst: xref_create
      Src: /src/haproxy/src/stconn.c:289,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:289,1
    - Dst: sc_check
      Src: /src/haproxy/src/stconn.c:291,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/stconn.c:293,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stconn.c:304,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/stconn.c:305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - sc
    - sd
    - ctx
    argTypes:
    - struct stconn*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 309
    functionName: sc_attach_mux
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 6
    functionsReached:
    - sc_opposite
    - sc_strm
    - sc_check
    - se_fl_set
    - xref_create
    - tasklet_new
    - se_fl_clr
    linkageType: ''
    returnType: int
    signature: int sc_attach_mux(struct stconn *sc, void *sd, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:319,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:320,1
    - Dst: sc_strm
      Src: /src/haproxy/src/stconn.c:321,1
    - Dst: xref_create
      Src: /src/haproxy/src/stconn.c:322,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sc
    - appctx
    argTypes:
    - struct stconn*
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 325
    functionName: sc_attach_applet
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_opposite
    - sc_strm
    - xref_create
    - sc_ep_set
    - sc_ep_clr
    linkageType: ''
    returnType: int
    signature: int sc_attach_applet(struct stconn *sc, struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:335,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:336,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:337,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/stconn.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - sc
    - strm
    argTypes:
    - struct stconn*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 346
    functionName: sc_attach_strm
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_ep_test
    - sc_ep_clr
    - sc_ep_report_read_activity
    - tasklet_new
    linkageType: ''
    returnType: int
    signature: int sc_attach_strm(struct stconn *sc, struct stream *strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:355,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:355,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:358,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:359,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/stconn.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - sc
    - hs
    argTypes:
    - struct stconn*
    - struct hstream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 368
    functionName: sc_attach_hstream
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - sc_ep_report_read_activity
    - sc_ep_test
    - BUG_ON
    - tasklet_new
    - sc_ep_clr
    linkageType: ''
    returnType: int
    signature: int sc_attach_hstream(struct stconn *sc, struct hstream *hs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/stconn.c:387,1
    - Dst: xref_disconnect
      Src: /src/haproxy/src/stconn.c:389,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:391,1
    - Dst: __sc_conn
      Src: /src/haproxy/src/stconn.c:392,1
    - Dst: struct connection*::mux::unsubscribe
      Src: /src/haproxy/src/stconn.c:397,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stconn.c:398,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/stconn.c:401,1
    - Dst: detach
      Src: /src/haproxy/src/stconn.c:401,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/stconn.c:407,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/stconn.c:408,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/stconn.c:410,1
    - Dst: conn_free
      Src: /src/haproxy/src/stconn.c:411,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:414,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:415,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:417,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:420,1
    - Dst: appctx_free
      Src: /src/haproxy/src/stconn.c:421,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:429,1
    - Dst: sc_free_cond
      Src: /src/haproxy/src/stconn.c:436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - scp
    argTypes:
    - struct stconn**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 377
    functionDepth: 6
    functionLinenumber: 377
    functionLinenumberEnd: 437
    functionName: sc_detach_endp
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - conn_full_close
    - se_shutdown
    - sc_ep_test
    - CALL_MUX_NO_RET
    - conn_free
    - appctx_free
    - detach
    - sc_ep_set
    - xref_disconnect
    - xref_get_peer_and_lock
    - __sc_conn
    - __sc_appctx
    - struct connection*::destroy_cb
    - sc_free_cond
    - struct connection*::mux::unsubscribe
    - conn_stop_tracking
    linkageType: ''
    returnType: void
    signature: void sc_detach_endp(struct stconn **scp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_free
      Src: /src/haproxy/src/stconn.c:450,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/stconn.c:451,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/stconn.c:453,1
    - Dst: sc_free_cond
      Src: /src/haproxy/src/stconn.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - scp
    argTypes:
    - struct stconn**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 442
    functionDepth: 6
    functionLinenumber: 442
    functionLinenumberEnd: 457
    functionName: sc_detach_app
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sockaddr_free
    - sc_free_cond
    - tasklet_free
    linkageType: ''
    returnType: void
    signature: void sc_detach_app(struct stconn **scp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_detach_endp
      Src: /src/haproxy/src/stconn.c:464,1
    - Dst: sc_detach_app
      Src: /src/haproxy/src/stconn.c:465,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/stconn.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 7
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: sc_destroy
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - sc_detach_endp
    - sc_detach_app
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void sc_destroy(struct stconn *sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:477,1
    - Dst: __sc_endp
      Src: /src/haproxy/src/stconn.c:479,1
    - Dst: sc_detach_endp
      Src: /src/haproxy/src/stconn.c:485,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/stconn.c:491,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:492,1
    - Dst: sc_detach_endp
      Src: /src/haproxy/src/stconn.c:496,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:497,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:498,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 473
    functionDepth: 7
    functionLinenumber: 473
    functionLinenumberEnd: 504
    functionName: sc_reset_endp
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 3
    functionsReached:
    - unlikely
    - sc_detach_endp
    - BUG_ON
    - sc_ep_set
    - sedesc_new
    - __sc_endp
    linkageType: ''
    returnType: int
    signature: int sc_reset_endp(struct stconn *sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: appctx_new_here
      Src: /src/haproxy/src/stconn.c:517,1
    - Dst: sc_attach_applet
      Src: /src/haproxy/src/stconn.c:520,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/stconn.c:521,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:524,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/stconn.c:525,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stconn.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - sc
    - app
    argTypes:
    - struct stconn*
    - struct applet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 530
    functionName: sc_applet_create
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - applet_need_more_data
    - appctx_free_on_early_error
    - sc_attach_applet
    - appctx_wakeup
    - __sc_strm
    - appctx_new_here
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *sc_applet_create(struct stconn *sc, struct applet *app)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:543,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:543,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:543,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:543,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:543,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stconn.c:548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 554
    functionName: sc_cond_forward_shut
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_ep_have_ff_data
    - sc_opposite
    - co_data
    - sc_ic
    - sc_schedule_shutdown
    linkageType: ''
    returnType: int
    signature: int sc_cond_forward_shut(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:561,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:562,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:562,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 564
    functionName: sc_is_fastfwd_supported
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_opposite
    - sc_ic
    - sc_ep_test
    linkageType: ''
    returnType: int
    signature: int sc_is_fastfwd_supported(struct stconn *sc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:575,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:577,1
    - Dst: sc_strm
      Src: /src/haproxy/src/stconn.c:577,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:585,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:589,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:590,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:594,1
    - Dst: sc_cond_forward_shut
      Src: /src/haproxy/src/stconn.c:596,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stconn.c:597,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:599,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:602,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:602,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 604
    functionName: sc_abort
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 3
    functionsReached:
    - se_shutdown
    - sc_strm
    - sc_cond_forward_shut
    - sc_shutdown
    - sc_ep_test
    - BUG_ON
    - task_wakeup
    - __sc_strm
    - sc_ic
    - sc_state_in
    - sc_strm_task
    linkageType: ''
    returnType: void
    signature: void sc_abort(struct stconn *sc)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:616,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:617,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:619,1
    - Dst: sc_strm
      Src: /src/haproxy/src/stconn.c:619,1
    - Dst: sc_set_hcto
      Src: /src/haproxy/src/stconn.c:626,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:627,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:629,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stconn.c:631,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:631,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:645,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:646,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:650,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:651,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:657,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:661,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:678,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:680,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:683,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:683,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 685
    functionName: sc_shutdown
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 7
    functionsReached:
    - se_shutdown
    - sc_strm
    - sc_oc
    - sc_ep_test
    - BUG_ON
    - task_wakeup
    - appctx_wakeup
    - __sc_strm
    - sc_ic
    - sc_report_term_evt
    - __sc_appctx
    - sc_set_hcto
    - sc_strm_task
    linkageType: ''
    returnType: void
    signature: void sc_shutdown(struct stconn *sc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:695,1
    - Dst: sc_strm
      Src: /src/haproxy/src/stconn.c:695,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:697,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:698,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:698,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:699,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:700,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/stconn.c:703,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:706,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:709,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:712,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:713,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/stconn.c:714,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:716,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:717,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:717,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stconn.c:718,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:718,1
    - Dst: CHECK_IF
      Src: /src/haproxy/src/stconn.c:722,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:722,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:724,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:724,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 726
    functionName: sc_chk_rcv
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_opposite
    - sc_strm
    - sc_ep_have_ff_data
    - sc_ep_test
    - BUG_ON
    - sc_ep_report_read_activity
    - CHECK_IF
    - task_wakeup
    - tasklet_wakeup
    - sc_ep_set
    - appctx_wakeup
    - __sc_appctx
    - sc_state_in
    - sc_is_recv_allowed
    - sc_strm_task
    - sc_ep_clr
    linkageType: ''
    returnType: void
    signature: void sc_chk_rcv(struct stconn *sc)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:736,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:738,1
    - Dst: sc_strm
      Src: /src/haproxy/src/stconn.c:738,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:740,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:741,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:741,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:745,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:745,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:745,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:748,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:749,1
    - Dst: sc_conn_send
      Src: /src/haproxy/src/stconn.c:753,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:755,1
    - Dst: sc_is_conn_error
      Src: /src/haproxy/src/stconn.c:755,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:757,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:757,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:764,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:764,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:772,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stconn.c:773,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:778,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:784,1
    - Dst: likely
      Src: /src/haproxy/src/stconn.c:790,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:793,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:794,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:797,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:797,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:800,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:801,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:805,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:808,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:808,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stconn.c:810,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:810,1
    - Dst: CHECK_IF
      Src: /src/haproxy/src/stconn.c:815,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:815,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:817,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:820,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:821,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:821,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:827,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:829,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:829,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 52
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 734
    functionDepth: 4
    functionLinenumber: 734
    functionLinenumberEnd: 831
    functionName: sc_chk_snd
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_ep_have_ff_data
    - sc_oc
    - sc_shutdown
    - sc_ep_test
    - co_data
    - likely
    - sc_is_conn_error
    - sc_state_in
    - sc_strm
    - CHECK_IF
    - sc_ep_set
    - __sc_appctx
    - sc_strm_task
    - sc_ep_clr
    - sc_conn_send
    - BUG_ON
    - task_wakeup
    - appctx_wakeup
    linkageType: ''
    returnType: void
    signature: void sc_chk_snd(struct stconn *sc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:844,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:853,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/stconn.c:854,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:858,1
    - Dst: sc_will_read
      Src: /src/haproxy/src/stconn.c:860,1
    - Dst: sc_chk_rcv
      Src: /src/haproxy/src/stconn.c:862,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 842
    functionDepth: 2
    functionLinenumber: 842
    functionLinenumberEnd: 863
    functionName: sc_update_rx
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_will_read
    - sc_chk_rcv
    - sc_wont_read
    - sc_have_room
    - sc_ic
    - channel_recv_max
    linkageType: ''
    returnType: void
    signature: void sc_update_rx(struct stconn *sc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:876,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:882,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:884,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:886,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:892,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 893
    functionName: sc_update_tx
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_oc
    - sc_ep_test
    - co_data
    - sc_ep_set
    - sc_ep_clr
    linkageType: ''
    returnType: void
    signature: void sc_update_tx(struct stconn *sc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:908,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:909,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:910,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:911,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:914,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:914,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:915,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stconn.c:919,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:926,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:928,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:931,1
    - Dst: sc_will_read
      Src: /src/haproxy/src/stconn.c:933,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:947,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:947,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:948,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:948,1
    - Dst: HAS_DATA_FILTERS
      Src: /src/haproxy/src/stconn.c:949,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:949,1
    - Dst: channel_input_data
      Src: /src/haproxy/src/stconn.c:949,1
    - Dst: channel_full
      Src: /src/haproxy/src/stconn.c:950,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:950,1
    - Dst: channel_input_data
      Src: /src/haproxy/src/stconn.c:950,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:953,1
    - Dst: sc_ep_ff_data
      Src: /src/haproxy/src/stconn.c:953,1
    - Dst: sc_chk_snd
      Src: /src/haproxy/src/stconn.c:954,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:955,1
    - Dst: sc_ep_ff_data
      Src: /src/haproxy/src/stconn.c:955,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:960,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/stconn.c:961,1
    - Dst: sc_will_read
      Src: /src/haproxy/src/stconn.c:965,1
    - Dst: sc_chk_rcv
      Src: /src/haproxy/src/stconn.c:967,1
    - Dst: sc_chk_rcv
      Src: /src/haproxy/src/stconn.c:968,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:982,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:990,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:991,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stconn.c:997,1
    - Dst: tick_first
      Src: /src/haproxy/src/stconn.c:998,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stconn.c:998,1
    - Dst: tick_first
      Src: /src/haproxy/src/stconn.c:999,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stconn.c:999,1
    - Dst: tick_first
      Src: /src/haproxy/src/stconn.c:1000,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stconn.c:1000,1
    - Dst: tick_first
      Src: /src/haproxy/src/stconn.c:1001,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stconn.c:1001,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1003,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stconn.c:1003,1
    - Dst: task_queue
      Src: /src/haproxy/src/stconn.c:1004,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 37
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 906
    functionDepth: 5
    functionLinenumber: 906
    functionLinenumberEnd: 1010
    functionName: sc_notify
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_ep_have_ff_data
    - sc_shutdown
    - sc_oc
    - sc_conn
    - sc_will_read
    - sc_ep_test
    - sc_wont_read
    - co_data
    - task_queue
    - sc_chk_snd
    - channel_input_data
    - HAS_DATA_FILTERS
    - __sc_strm
    - tick_is_expired
    - sc_ep_ff_data
    - sc_ep_set
    - channel_full
    - tick_first
    - sc_strm_task
    - sc_ep_clr
    - sc_opposite
    - sc_ep_snd_ex
    - sc_chk_rcv
    - BUG_ON
    - task_wakeup
    - sc_have_room
    - sc_ep_rcv_ex
    - sc_ic
    - channel_recv_max
    linkageType: ''
    returnType: void
    signature: void sc_notify(struct stconn *sc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:1019,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1021,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:1021,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1027,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:1028,1
    - Dst: sc_cond_forward_shut
      Src: /src/haproxy/src/stconn.c:1035,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:1046,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1053,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1017
    functionDepth: 3
    functionLinenumber: 1017
    functionLinenumberEnd: 1055
    functionName: sc_conn_eos
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_cond_forward_shut
    - se_shutdown
    - sc_conn
    - sc_ep_report_read_activity
    - BUG_ON
    - __sc_strm
    - sc_ic
    - sc_report_term_evt
    linkageType: ''
    returnType: void
    signature: void sc_conn_eos(struct stconn *sc)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/stconn.c:1065,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:1066,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/stconn.c:1078,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1095,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/stconn.c:1096,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1098,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:1103,1
    - Dst: channel_check_idletimer
      Src: /src/haproxy/src/stconn.c:1105,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stconn.c:1111,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1111,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1111,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stconn.c:1112,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1112,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1112,1
    - Dst: strm_sess
      Src: /src/haproxy/src/stconn.c:1113,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1113,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1113,1
    - Dst: sc_is_fastfwd_supported
      Src: /src/haproxy/src/stconn.c:1120,1
    - Dst: channel_data
      Src: /src/haproxy/src/stconn.c:1121,1
    - Dst: sc_ep_fwd_kip
      Src: /src/haproxy/src/stconn.c:1130,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1130,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/stconn.c:1131,1
    - Dst: fastfwd
      Src: /src/haproxy/src/stconn.c:1131,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1142,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1145,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:1146,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1148,1
    - Dst: sc_alloc_ibuf
      Src: /src/haproxy/src/stconn.c:1154,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1154,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stconn.c:1166,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1166,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1166,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stconn.c:1167,1
    - Dst: htx_is_not_empty
      Src: /src/haproxy/src/stconn.c:1169,1
    - Dst: htx_space_wraps
      Src: /src/haproxy/src/stconn.c:1169,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/stconn.c:1170,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1175,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/stconn.c:1176,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1176,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1184,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1186,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1190,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:1197,1
    - Dst: b_is_small
      Src: /src/haproxy/src/stconn.c:1198,1
    - Dst: sc_ib
      Src: /src/haproxy/src/stconn.c:1198,1
    - Dst: b_is_large
      Src: /src/haproxy/src/stconn.c:1198,1
    - Dst: sc_ib
      Src: /src/haproxy/src/stconn.c:1198,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/stconn.c:1200,1
    - Dst: rcv_buf
      Src: /src/haproxy/src/stconn.c:1200,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1202,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1206,1
    - Dst: c_empty
      Src: /src/haproxy/src/stconn.c:1206,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:1208,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:1208,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1213,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:1223,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1230,1
    - Dst: c_adv
      Src: /src/haproxy/src/stconn.c:1237,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1248,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:1253,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:1268,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:1277,1
    - Dst: se_have_no_more_data
      Src: /src/haproxy/src/stconn.c:1291,1
    - Dst: channel_check_xfer
      Src: /src/haproxy/src/stconn.c:1293,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1294,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1302,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1303,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1309,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stconn.c:1312,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1312,1
    - Dst: sc_conn_eos
      Src: /src/haproxy/src/stconn.c:1313,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1316,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:1319,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1325,1
    - Dst: se_have_no_more_data
      Src: /src/haproxy/src/stconn.c:1331,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/stconn.c:1340,1
    - Dst: se_have_no_more_data
      Src: /src/haproxy/src/stconn.c:1341,1
    - Dst: se_have_no_more_data
      Src: /src/haproxy/src/stconn.c:1346,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stconn.c:1348,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stconn.c:1354,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 154
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1063
    functionDepth: 4
    functionLinenumber: 1063
    functionLinenumberEnd: 1359
    functionName: sc_conn_recv
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - rcv_buf
    - struct connection*::mux::subscribe
    - sc_ep_test
    - sc_ep_report_read_activity
    - sc_wont_read
    - co_data
    - channel_check_idletimer
    - se_have_no_more_data
    - strm_fe
    - fastfwd
    - sc_alloc_ibuf
    - conn_xprt_ready
    - strm_sess
    - __sc_strm
    - sc_report_term_evt
    - IS_HTX_STRM
    - se_have_more_data
    - b_is_small
    - c_adv
    - sc_schedule_shutdown
    - htxbuf
    - CALL_MUX_WITH_RET
    - htx_space_wraps
    - __sc_conn
    - channel_data
    - htx_is_not_empty
    - sc_ep_fwd_kip
    - sc_ep_clr
    - sc_ib
    - sc_is_fastfwd_supported
    - c_empty
    - sc_opposite
    - htx_defrag
    - BUG_ON
    - channel_check_xfer
    - sc_waiting_room
    - sc_ic
    - sc_conn_eos
    - proxy_abrt_close
    - b_is_large
    - channel_recv_max
    - sc_need_room
    linkageType: ''
    returnType: int
    signature: int sc_conn_recv(struct stconn *sc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:1370,1
    - Dst: sc_mux_ops
      Src: /src/haproxy/src/stconn.c:1373,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/stconn.c:1379,1
    - Dst: sc_conn_recv
      Src: /src/haproxy/src/stconn.c:1382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1368
    functionDepth: 5
    functionLinenumber: 1368
    functionLinenumberEnd: 1383
    functionName: sc_conn_sync_recv
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_mux_ops
    - sc_conn_recv
    - sc_state_in
    - sc_is_recv_allowed
    linkageType: ''
    returnType: int
    signature: int sc_conn_sync_recv(struct stconn *sc)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/stconn.c:1394,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1395,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1396,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1397,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1401,1
    - Dst: sc_is_conn_error
      Src: /src/haproxy/src/stconn.c:1401,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1410,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1410,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1411,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1413,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1413,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/src/stconn.c:1414,1
    - Dst: sc_ep_fwd_kip
      Src: /src/haproxy/src/stconn.c:1430,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1432,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stconn.c:1438,1
    - Dst: htx_expect_more
      Src: /src/haproxy/src/stconn.c:1439,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stconn.c:1439,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/stconn.c:1448,1
    - Dst: resume_fastfwd
      Src: /src/haproxy/src/stconn.c:1448,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1454,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1461,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stconn.c:1481,1
    - Dst: htx_expect_more
      Src: /src/haproxy/src/stconn.c:1482,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stconn.c:1482,1
    - Dst: b_data
      Src: /src/haproxy/src/stconn.c:1491,1
    - Dst: b_is_large
      Src: /src/haproxy/src/stconn.c:1501,1
    - Dst: htx_copy_to_small_buffer
      Src: /src/haproxy/src/stconn.c:1505,1
    - Dst: b_alloc
      Src: /src/haproxy/src/stconn.c:1506,1
    - Dst: memcpy
      Src: /src/haproxy/src/stconn.c:1509,1
    - Dst: b_orig
      Src: /src/haproxy/src/stconn.c:1509,1
    - Dst: b_orig
      Src: /src/haproxy/src/stconn.c:1510,1
    - Dst: b_size
      Src: /src/haproxy/src/stconn.c:1511,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1516,1
    - Dst: b_set_data
      Src: /src/haproxy/src/stconn.c:1517,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1518,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1523,1
    - Dst: c_data
      Src: /src/haproxy/src/stconn.c:1523,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/stconn.c:1526,1
    - Dst: snd_buf
      Src: /src/haproxy/src/stconn.c:1526,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1526,1
    - Dst: c_rew
      Src: /src/haproxy/src/stconn.c:1529,1
    - Dst: c_realign_if_empty
      Src: /src/haproxy/src/stconn.c:1530,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1532,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:1549,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1549,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/stconn.c:1550,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1552,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1554,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1554,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:1555,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1556,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1562,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1562,1
    - Dst: sc_ep_report_send_activity
      Src: /src/haproxy/src/stconn.c:1564,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/stconn.c:1570,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/stconn.c:1576,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:1577,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/src/stconn.c:1578,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 96
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1392
    functionDepth: 1
    functionLinenumber: 1392
    functionLinenumberEnd: 1582
    functionName: sc_conn_send
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - sc_ep_have_ff_data
    - struct connection*::mux::subscribe
    - sc_oc
    - sc_ep_test
    - co_data
    - sc_is_conn_error
    - c_data
    - resume_fastfwd
    - c_rew
    - __sc_strm
    - htx_copy_to_small_buffer
    - sc_report_term_evt
    - sc_ep_report_send_activity
    - IS_HTX_STRM
    - sc_state_in
    - c_realign_if_empty
    - b_alloc
    - htxbuf
    - b_orig
    - memcpy
    - CALL_MUX_WITH_RET
    - __sc_conn
    - b_data
    - sc_ep_report_blocked_send
    - b_size
    - sc_ep_fwd_kip
    - sc_opposite
    - htx_expect_more
    - BUG_ON
    - snd_buf
    - sc_have_room
    - b_set_data
    - b_is_large
    - channel_recv_max
    linkageType: ''
    returnType: int
    signature: int sc_conn_send(struct stconn *sc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1590,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1598,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:1601,1
    - Dst: sc_mux_ops
      Src: /src/haproxy/src/stconn.c:1604,1
    - Dst: sc_conn_send
      Src: /src/haproxy/src/stconn.c:1607,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1588
    functionDepth: 2
    functionLinenumber: 1588
    functionLinenumberEnd: 1612
    functionName: sc_conn_sync_send
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_oc
    - co_data
    - sc_mux_ops
    - sc_state_in
    - sc_conn_send
    linkageType: ''
    returnType: int
    signature: int sc_conn_sync_send(struct stconn *sc)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/stconn.c:1623,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:1624,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1625,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1627,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1630,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1630,1
    - Dst: sc_conn_send
      Src: /src/haproxy/src/stconn.c:1632,1
    - Dst: sc_is_conn_error
      Src: /src/haproxy/src/stconn.c:1648,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1658,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:1659,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:1660,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:1660,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:1663,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1666,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1679,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1682,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1692,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stconn.c:1695,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1695,1
    - Dst: sc_conn_eos
      Src: /src/haproxy/src/stconn.c:1696,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1699,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:1701,1
    - Dst: sc_notify
      Src: /src/haproxy/src/stconn.c:1709,1
    - Dst: stream_release_buffers
      Src: /src/haproxy/src/stconn.c:1710,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1710,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 37
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1621
    functionDepth: 6
    functionLinenumber: 1621
    functionLinenumberEnd: 1712
    functionName: sc_conn_process
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_ep_have_ff_data
    - sc_oc
    - sc_ep_test
    - sc_ep_report_read_activity
    - co_data
    - sc_is_conn_error
    - __sc_strm
    - sc_report_term_evt
    - sc_state_in
    - sc_schedule_shutdown
    - __sc_conn
    - sc_strm_task
    - sc_ep_clr
    - sc_notify
    - sc_conn_send
    - sc_opposite
    - BUG_ON
    - stream_release_buffers
    - task_wakeup
    - sc_ic
    - sc_conn_eos
    linkageType: ''
    returnType: int
    signature: int sc_conn_process(struct stconn *sc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:1724,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1727,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1727,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1727,1
    - Dst: sc_conn_send
      Src: /src/haproxy/src/stconn.c:1728,1
    - Dst: sc_conn_recv
      Src: /src/haproxy/src/stconn.c:1730,1
    - Dst: sc_conn_process
      Src: /src/haproxy/src/stconn.c:1732,1
    - Dst: stream_release_buffers
      Src: /src/haproxy/src/stconn.c:1734,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1734,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1719
    functionDepth: 7
    functionLinenumber: 1719
    functionLinenumberEnd: 1736
    functionName: sc_conn_io_cb
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_ep_have_ff_data
    - sc_conn
    - sc_oc
    - stream_release_buffers
    - co_data
    - sc_conn_process
    - __sc_strm
    - sc_conn_recv
    - sc_conn_send
    linkageType: ''
    returnType: struct task
    signature: struct task *sc_conn_io_cb(struct task *t, void *ctx, unsigned int
      state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:1745,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1747,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stconn.c:1747,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1753,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:1754,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:1762,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1765,1
    - Dst: sc_cond_forward_shut
      Src: /src/haproxy/src/stconn.c:1767,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stconn.c:1768,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1743
    functionDepth: 4
    functionLinenumber: 1743
    functionLinenumberEnd: 1769
    functionName: sc_applet_eos
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - se_shutdown
    - sc_cond_forward_shut
    - sc_shutdown
    - sc_ep_report_read_activity
    - BUG_ON
    - __sc_strm
    - sc_ic
    - sc_report_term_evt
    - sc_appctx
    linkageType: ''
    returnType: void
    signature: void sc_applet_eos(struct stconn *sc)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:1779,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:1780,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/stconn.c:1788,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:1796,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1800,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1802,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:1807,1
    - Dst: channel_check_idletimer
      Src: /src/haproxy/src/stconn.c:1809,1
    - Dst: sc_is_fastfwd_supported
      Src: /src/haproxy/src/stconn.c:1814,1
    - Dst: channel_data
      Src: /src/haproxy/src/stconn.c:1815,1
    - Dst: sc_ep_fwd_kip
      Src: /src/haproxy/src/stconn.c:1824,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1824,1
    - Dst: appctx_fastfwd
      Src: /src/haproxy/src/stconn.c:1825,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1836,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1839,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:1840,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1842,1
    - Dst: sc_alloc_ibuf
      Src: /src/haproxy/src/stconn.c:1847,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stconn.c:1859,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1859,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1859,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stconn.c:1860,1
    - Dst: htx_is_not_empty
      Src: /src/haproxy/src/stconn.c:1862,1
    - Dst: htx_space_wraps
      Src: /src/haproxy/src/stconn.c:1862,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/stconn.c:1863,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1867,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:1874,1
    - Dst: b_is_small
      Src: /src/haproxy/src/stconn.c:1875,1
    - Dst: sc_ib
      Src: /src/haproxy/src/stconn.c:1875,1
    - Dst: b_is_large
      Src: /src/haproxy/src/stconn.c:1875,1
    - Dst: sc_ib
      Src: /src/haproxy/src/stconn.c:1875,1
    - Dst: appctx_rcv_buf
      Src: /src/haproxy/src/stconn.c:1877,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1878,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1882,1
    - Dst: c_empty
      Src: /src/haproxy/src/stconn.c:1882,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:1884,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:1884,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1889,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:1898,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1905,1
    - Dst: c_adv
      Src: /src/haproxy/src/stconn.c:1912,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1923,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:1928,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:1943,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:1952,1
    - Dst: channel_check_xfer
      Src: /src/haproxy/src/stconn.c:1958,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1959,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1967,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1968,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1974,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stconn.c:1977,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1977,1
    - Dst: sc_applet_eos
      Src: /src/haproxy/src/stconn.c:1978,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1982,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stconn.c:1987,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 128
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1777
    functionDepth: 5
    functionLinenumber: 1777
    functionLinenumberEnd: 1992
    functionName: sc_applet_recv
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_ep_test
    - sc_ep_report_read_activity
    - sc_wont_read
    - co_data
    - channel_check_idletimer
    - se_fl_test
    - sc_alloc_ibuf
    - __sc_strm
    - IS_HTX_STRM
    - se_have_more_data
    - appctx_rcv_buf
    - b_is_small
    - c_adv
    - sc_schedule_shutdown
    - htxbuf
    - htx_space_wraps
    - channel_data
    - __sc_appctx
    - htx_is_not_empty
    - sc_ep_fwd_kip
    - sc_ep_clr
    - sc_ib
    - sc_is_fastfwd_supported
    - c_empty
    - sc_opposite
    - htx_defrag
    - BUG_ON
    - channel_check_xfer
    - sc_waiting_room
    - sc_ic
    - appctx_fastfwd
    - sc_applet_eos
    - b_is_large
    - channel_recv_max
    - sc_need_room
    linkageType: ''
    returnType: int
    signature: int sc_applet_recv(struct stconn *sc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/src/stconn.c:2003,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2003,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:2006,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:2009,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/stconn.c:2012,1
    - Dst: sc_applet_recv
      Src: /src/haproxy/src/stconn.c:2015,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2001
    functionDepth: 6
    functionLinenumber: 2001
    functionLinenumberEnd: 2016
    functionName: sc_applet_sync_recv
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - sc_applet_recv
    - appctx_app_test
    - __sc_appctx
    - sc_state_in
    - sc_is_recv_allowed
    - se_fl_test
    linkageType: ''
    returnType: int
    signature: int sc_applet_sync_recv(struct stconn *sc)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:2025,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:2026,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2030,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2031,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2031,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2032,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/src/stconn.c:2033,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2037,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:2045,1
    - Dst: sc_ep_fwd_kip
      Src: /src/haproxy/src/stconn.c:2048,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2051,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:2051,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2053,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2056,1
    - Dst: c_data
      Src: /src/haproxy/src/stconn.c:2056,1
    - Dst: appctx_snd_buf
      Src: /src/haproxy/src/stconn.c:2059,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2059,1
    - Dst: c_rew
      Src: /src/haproxy/src/stconn.c:2062,1
    - Dst: c_realign_if_empty
      Src: /src/haproxy/src/stconn.c:2063,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2065,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:2078,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:2078,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/stconn.c:2079,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2081,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2083,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2083,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2084,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2089,1
    - Dst: sc_ep_report_send_activity
      Src: /src/haproxy/src/stconn.c:2091,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/src/stconn.c:2094,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2023
    functionDepth: 2
    functionLinenumber: 2023
    functionLinenumberEnd: 2098
    functionName: sc_applet_send
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_opposite
    - sc_ep_have_ff_data
    - sc_oc
    - c_realign_if_empty
    - sc_ep_test
    - BUG_ON
    - appctx_snd_buf
    - co_data
    - sc_have_room
    - sc_ep_report_blocked_send
    - sc_ep_report_send_activity
    - channel_recv_max
    - c_data
    - sc_ep_fwd_kip
    - se_fl_test
    - c_rew
    linkageType: ''
    returnType: int
    signature: int sc_applet_send(struct stconn *sc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:2102,1
    - Dst: appctx_app_test
      Src: /src/haproxy/src/stconn.c:2106,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2106,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2112,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:2115,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:2118,1
    - Dst: sc_applet_send
      Src: /src/haproxy/src/stconn.c:2121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2100
    functionDepth: 3
    functionLinenumber: 2100
    functionLinenumberEnd: 2124
    functionName: sc_applet_sync_send
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - sc_oc
    - sc_applet_send
    - co_data
    - appctx_app_test
    - __sc_appctx
    - sc_state_in
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void sc_applet_sync_send(struct stconn *sc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:2134,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2136,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stconn.c:2136,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2140,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:2141,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2146,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2149,1
    - Dst: sc_applet_eos
      Src: /src/haproxy/src/stconn.c:2151,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2154,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2154,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2159,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:2160,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2166,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/stconn.c:2167,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2167,1
    - Dst: sc_notify
      Src: /src/haproxy/src/stconn.c:2170,1
    - Dst: stream_release_buffers
      Src: /src/haproxy/src/stconn.c:2171,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:2171,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/stconn.c:2178,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stconn.c:2178,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2178,1
    - Dst: sc_is_send_allowed
      Src: /src/haproxy/src/stconn.c:2179,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stconn.c:2179,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2179,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stconn.c:2180,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2180,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2132
    functionDepth: 6
    functionLinenumber: 2132
    functionLinenumberEnd: 2182
    functionName: sc_applet_process
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 2
    functionsReached:
    - sc_ep_report_read_activity
    - sc_ep_test
    - BUG_ON
    - applet_have_more_data
    - stream_release_buffers
    - applet_fl_test
    - sc_ep_set
    - appctx_wakeup
    - __sc_strm
    - sc_ic
    - __sc_appctx
    - sc_appctx
    - sc_is_recv_allowed
    - sc_applet_eos
    - sc_notify
    - sc_is_send_allowed
    linkageType: ''
    returnType: int
    signature: int sc_applet_process(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2191,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:2191,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:2192,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:2193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2189
    functionDepth: 1
    functionLinenumber: 2189
    functionLinenumberEnd: 2194
    functionName: sc_conn_prepare_endp_upgrade
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - sc_ep_clr
    - sc_ep_set
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sc_conn_prepare_endp_upgrade(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:2199,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:2200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2197
    functionDepth: 1
    functionLinenumber: 2197
    functionLinenumberEnd: 2201
    functionName: sc_conn_abort_endp_upgrade
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_ep_clr
    - sc_ep_set
    linkageType: ''
    returnType: void
    signature: void sc_conn_abort_endp_upgrade(struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2209,1
    - Dst: sc_detach_endp
      Src: /src/haproxy/src/stconn.c:2211,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2213,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2207
    functionDepth: 7
    functionLinenumber: 2207
    functionLinenumberEnd: 2215
    functionName: sc_conn_commit_endp_upgrade
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_detach_endp
    - sc_ep_test
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sc_conn_commit_endp_upgrade(struct stconn *sc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:2231,1
    - Dst: struct connection*::mux::sctl
      Src: /src/haproxy/src/stconn.c:2247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2221
    functionDepth: 1
    functionLinenumber: 2221
    functionLinenumberEnd: 2254
    functionName: smp_fetch_debug_str
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - struct connection*::mux::sctl
    linkageType: ''
    returnType: int
    signature: int smp_fetch_debug_str(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:2269,1
    - Dst: struct connection*::mux::sctl
      Src: /src/haproxy/src/stconn.c:2283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2258
    functionDepth: 1
    functionLinenumber: 2258
    functionLinenumberEnd: 2292
    functionName: smp_fetch_sid
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - struct connection*::mux::sctl
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sid(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2296
    functionDepth: 0
    functionLinenumber: 2296
    functionLinenumberEnd: 2314
    functionName: smp_fetch_strm_aborted
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_strm_aborted(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2319
    functionDepth: 0
    functionLinenumber: 2319
    functionLinenumberEnd: 2343
    functionName: smp_fetch_strm_rst_code
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_strm_rst_code(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_proxy
      Src: /src/haproxy/src/ssl_trace.c:94,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:95,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/ssl_trace.c:95,1
    - Dst: conn_err_code_str
      Src: /src/haproxy/src/ssl_trace.c:98,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:112,1
    - Dst: ERR_error_string
      Src: /src/haproxy/src/ssl_trace.c:113,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:118,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_trace.c:126,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_trace.c:127,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:130,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/haproxy/src/ssl_trace.c:132,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:133,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:135,1
    - Dst: SSL_get_version
      Src: /src/haproxy/src/ssl_trace.c:135,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:137,1
    - Dst: SSL_get_cipher_name
      Src: /src/haproxy/src/ssl_trace.c:137,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_trace.c:140,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_trace.c:143,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:145,1
    - Dst: X509_NAME_oneline
      Src: /src/haproxy/src/ssl_trace.c:146,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:156,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:161,1
    - Dst: ERR_error_string
      Src: /src/haproxy/src/ssl_trace.c:162,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:171,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:175,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_trace.c:176,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:182,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_trace.c:183,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:192,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:200,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:202,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:211,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_trace.c:215,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:217,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:229,1
    - Dst: sigalg2str
      Src: /src/haproxy/src/ssl_trace.c:232,1
    - Dst: ntohs
      Src: /src/haproxy/src/ssl_trace.c:232,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:235,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:239,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:260,1
    - Dst: ntohs
      Src: /src/haproxy/src/ssl_trace.c:265,1
    - Dst: SSL_get_cipher_by_value
      Src: /src/haproxy/src/ssl_trace.c:267,1
    - Dst: SSL_CIPHER_find
      Src: /src/haproxy/src/ssl_trace.c:269,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/haproxy/src/ssl_trace.c:271,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_trace.c:272,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:273,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:275,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:291,1
    - Dst: curveid2str
      Src: /src/haproxy/src/ssl_trace.c:294,1
    - Dst: ntohs
      Src: /src/haproxy/src/ssl_trace.c:294,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:297,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_trace.c:301,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 127
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 315
    functionName: ssl_trace
    functionSourceFile: /src/haproxy/src/ssl_trace.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - ERR_reason_error_string
    - X509_NAME_oneline
    - SSL_CIPHER_find
    - chunk_appendf
    - SSL_get_certificate
    - get_trash_chunk
    - strcmp
    - container_of
    - SSL_CIPHER_get_name
    - curveid2str
    - SSL_get_servername
    - SSL_get_version
    - SSL_get_cipher_name
    - ERR_error_string
    - ntohs
    - SSL_get_cipher_by_value
    - sigalg2str
    - conn_err_code_str
    - SSL_get0_alpn_selected
    - conn_get_proxy
    - X509_get_subject_name
    linkageType: ''
    returnType: void
    signature: "void ssl_trace(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n                      const struct ist where, const struct
      ist func,\n                      const void *a1, const void *a2, const void
      *a3, const void *a4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: TO_STR
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_STR(x)
  - 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: _TO_STR
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TO_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:60,1
    - Dst: _ceb_insert
      Src: /src/haproxy/src/_ceb_str.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - NODEK
    - _ceb_insert
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _insert, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_first
      Src: /src/haproxy/src/_ceb_str.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: CEB_FDECL2
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_first
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL2(struct ceb_node *, CEB_MKEY_PFX, _first, struct ceb_root
      *const *, root, ptrdiff_t, kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_last
      Src: /src/haproxy/src/_ceb_str.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: CEB_FDECL2
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_last
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL2(struct ceb_node *, CEB_MKEY_PFX, _last, struct ceb_root
      *const *, root, ptrdiff_t, kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup
      Src: /src/haproxy/src/_ceb_str.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _lookup, struct ceb_root
      *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_le
      Src: /src/haproxy/src/_ceb_str.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_le
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _lookup_le, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_lt
      Src: /src/haproxy/src/_ceb_str.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_lt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _lookup_lt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_ge
      Src: /src/haproxy/src/_ceb_str.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_ge
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _lookup_ge, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_gt
      Src: /src/haproxy/src/_ceb_str.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_gt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _lookup_gt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:139,1
    - Dst: _ceb_next_unique
      Src: /src/haproxy/src/_ceb_str.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_next_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _next_unique, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:152,1
    - Dst: _ceb_prev_unique
      Src: /src/haproxy/src/_ceb_str.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_prev_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _prev_unique, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:163,1
    - Dst: _ceb_next_dup
      Src: /src/haproxy/src/_ceb_str.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_next_dup
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _next_dup, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:173,1
    - Dst: _ceb_prev_dup
      Src: /src/haproxy/src/_ceb_str.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_prev_dup
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _prev_dup, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:185,1
    - Dst: _ceb_next
      Src: /src/haproxy/src/_ceb_str.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_next
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _next, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:198,1
    - Dst: _ceb_prev
      Src: /src/haproxy/src/_ceb_str.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_prev
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _prev, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:209,1
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_str.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _delete, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_str.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _pick, struct ceb_root
      **, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:243,1
    - Dst: _ceb_insert
      Src: /src/haproxy/src/_ceb_str.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - NODEK
    - _ceb_insert
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _insert, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_first
      Src: /src/haproxy/src/_ceb_str.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: CEB_FDECL2
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_first
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL2(struct ceb_node *, CEB_UKEY_PFX, _first, struct ceb_root
      *const *, root, ptrdiff_t, kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_last
      Src: /src/haproxy/src/_ceb_str.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: CEB_FDECL2
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_last
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL2(struct ceb_node *, CEB_UKEY_PFX, _last, struct ceb_root
      *const *, root, ptrdiff_t, kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup
      Src: /src/haproxy/src/_ceb_str.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup, struct ceb_root
      *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_le
      Src: /src/haproxy/src/_ceb_str.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_le
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_le, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_lt
      Src: /src/haproxy/src/_ceb_str.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_lt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_lt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_ge
      Src: /src/haproxy/src/_ceb_str.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_ge
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_ge, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_gt
      Src: /src/haproxy/src/_ceb_str.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_gt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_gt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:307,1
    - Dst: _ceb_next_unique
      Src: /src/haproxy/src/_ceb_str.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_next_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _next, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:319,1
    - Dst: _ceb_prev_unique
      Src: /src/haproxy/src/_ceb_str.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_prev_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _prev, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_str.c:329,1
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_str.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _delete, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_str.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _pick, struct ceb_root
      **, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: TO_STR
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: _TO_STR
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TO_STR(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/_ceb_str.c:368,1
    - Dst: TO_STR
      Src: /src/haproxy/src/_ceb_str.c:368,1
    - Dst: printf
      Src: /src/haproxy/src/_ceb_str.c:374,1
    - Dst: printf
      Src: /src/haproxy/src/_ceb_str.c:377,1
    - Dst: ceb_imm_default_dump_tree
      Src: /src/haproxy/src/_ceb_str.c:380,1
    - Dst: printf
      Src: /src/haproxy/src/_ceb_str.c:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 384
    functionName: CEB_FDECL5
    functionSourceFile: /src/haproxy/src/_ceb_str.c
    functionUses: 0
    functionsReached:
    - ceb_imm_default_dump_tree
    - printf
    - TO_STR
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL5(void, CEB_MKEY_PFX, _default_dump, struct ceb_root
      *const *, root, ptrdiff_t, kofs, const char *, label, const void *, ctx, int,
      sub)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 47
    functionName: hash_wt6
    functionSourceFile: /src/haproxy/src/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash_wt6(const void *input, int len)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 76
    functionName: hash_djb2
    functionSourceFile: /src/haproxy/src/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash_djb2(const void *input, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: hash_sdbm
    functionSourceFile: /src/haproxy/src/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash_sdbm(const void *input, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: hash_crc32
    functionSourceFile: /src/haproxy/src/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash_crc32(const void *input, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: hash_crc32c
    functionSourceFile: /src/haproxy/src/hash.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_crc32c(const void *input, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/haproxy/src/sock_inet.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 110
    functionName: sock_inet4_addrcmp
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int sock_inet4_addrcmp(const struct sockaddr_storage *a, const struct
      sockaddr_storage *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/haproxy/src/sock_inet.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: sock_inet6_addrcmp
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int sock_inet6_addrcmp(const struct sockaddr_storage *a, const struct
      sockaddr_storage *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/haproxy/src/sock_inet.c:139,1
    - Dst: htons
      Src: /src/haproxy/src/sock_inet.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - addr
    - port
    argTypes:
    - struct sockaddr_storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: sock_inet_set_port
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 1
    functionsReached:
    - htons
    linkageType: ''
    returnType: void
    signature: void sock_inet_set_port(struct sockaddr_storage *addr, int port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getpeername
      Src: /src/haproxy/src/sock_inet.c:158,1
    - Dst: getsockname
      Src: /src/haproxy/src/sock_inet.c:160,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:177,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - fd
    - sa
    - salen
    - dir
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 185
    functionName: sock_inet_get_dst
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 0
    functionsReached:
    - getsockname
    - getpeername
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int sock_inet_get_dst(int fd, struct sockaddr *sa, socklen_t salen,
      int dir)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:200,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:205,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:210,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:215,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:223,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:228,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:233,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:238,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 2
    argNames:
    - fd
    - family
    argTypes:
    - int
    - sa_family_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 244
    functionName: sock_inet_is_foreign
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 0
    functionsReached:
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int sock_inet_is_foreign(int fd, sa_family_t family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:255,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:258,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:261,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 267
    functionName: sock_inet4_make_foreign
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 2
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int sock_inet4_make_foreign(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:278,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:281,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:284,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 290
    functionName: sock_inet6_make_foreign
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 2
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int sock_inet6_make_foreign(int fd)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock_inet.c:321,1
    - Dst: sock_find_compatible_fd
      Src: /src/haproxy/src/sock_inet.c:337,1
    - Dst: my_socketat
      Src: /src/haproxy/src/sock_inet.c:348,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:352,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_inet.c:352,1
    - Dst: dup
      Src: /src/haproxy/src/sock_inet.c:367,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:370,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_inet.c:370,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:377,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/sock_inet.c:381,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:383,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:387,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:389,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:398,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:406,1
    - Dst: sock_inet4_make_foreign
      Src: /src/haproxy/src/sock_inet.c:412,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:413,1
    - Dst: sock_inet6_make_foreign
      Src: /src/haproxy/src/sock_inet.c:418,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:419,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:429,1
    - Dst: strlen
      Src: /src/haproxy/src/sock_inet.c:431,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:432,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_inet.c:432,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:446,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:448,1
    - Dst: bind
      Src: /src/haproxy/src/sock_inet.c:452,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:454,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_inet.c:454,1
    - Dst: fd_insert
      Src: /src/haproxy/src/sock_inet.c:461,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/sock_inet.c:465,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/sock_inet.c:471,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:472,1
    - Dst: get_host_port
      Src: /src/haproxy/src/sock_inet.c:472,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:478,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 110
    argCount: 2
    argNames:
    - rx
    - errmsg
    argTypes:
    - struct receiver*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 297
    functionDepth: 5
    functionLinenumber: 297
    functionLinenumberEnd: 480
    functionName: sock_inet_bind_receiver
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 0
    functionsReached:
    - memprintf
    - sock_inet4_make_foreign
    - BUG_ON
    - strerror
    - sock_inet6_make_foreign
    - sock_find_compatible_fd
    - my_socketat
    - dup
    - setsockopt
    - get_host_port
    - close
    - fd_set_nonblock
    - HA_ATOMIC_OR
    - bind
    - addr_to_str
    - fd_insert
    - strlen
    linkageType: ''
    returnType: int
    signature: int sock_inet_bind_receiver(struct receiver *rx, char **errmsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sock_inet.c:494,1
    - Dst: tick_isset
      Src: /src/haproxy/src/sock_inet.c:499,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/sock_inet.c:500,1
    - Dst: tick_add
      Src: /src/haproxy/src/sock_inet.c:500,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sock_inet.c:500,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sock_inet.c:501,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/sock_inet.c:504,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sock_inet.c:504,1
    - Dst: socket
      Src: /src/haproxy/src/sock_inet.c:506,1
    - Dst: htons
      Src: /src/haproxy/src/sock_inet.c:511,1
    - Dst: connect
      Src: /src/haproxy/src/sock_inet.c:512,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:514,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/sock_inet.c:517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 519
    functionName: is_inet6_reachable
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - HA_ATOMIC_LOAD
    - tick_isset
    - tick_is_expired
    - connect
    - socket
    - close
    - tick_add
    - htons
    linkageType: ''
    returnType: int
    signature: int is_inet6_reachable(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/haproxy/src/sock_inet.c:526,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:531,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:534,1
    - Dst: socket
      Src: /src/haproxy/src/sock_inet.c:537,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:542,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:549,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:552,1
    - Dst: socket
      Src: /src/haproxy/src/sock_inet.c:556,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:561,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:564,1
    - Dst: socket
      Src: /src/haproxy/src/sock_inet.c:567,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:572,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:575,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 578
    functionName: sock_inet_prepare
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 0
    functionsReached:
    - close
    - getsockopt
    - socket
    linkageType: ''
    returnType: void
    signature: void sock_inet_prepare()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb64_insert
      Src: /src/haproxy/src/eb64tree.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: eb64_insert
    functionSourceFile: /src/haproxy/src/eb64tree.c
    functionUses: 10
    functionsReached:
    - __eb64_insert
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_insert(struct eb_root *root, struct eb64_node
      *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb64i_insert
      Src: /src/haproxy/src/eb64tree.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: eb64i_insert
    functionSourceFile: /src/haproxy/src/eb64tree.c
    functionUses: 1
    functionsReached:
    - __eb64i_insert
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64i_insert(struct eb_root *root, struct eb64_node
      *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb64_lookup
      Src: /src/haproxy/src/eb64tree.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: eb64_lookup
    functionSourceFile: /src/haproxy/src/eb64tree.c
    functionUses: 5
    functionsReached:
    - __eb64_lookup
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_lookup(struct eb_root *root, u64 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb64i_lookup
      Src: /src/haproxy/src/eb64tree.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - s64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: eb64i_lookup
    functionSourceFile: /src/haproxy/src/eb64tree.c
    functionUses: 1
    functionsReached:
    - __eb64i_lookup
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64i_lookup(struct eb_root *root, s64 x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/eb64tree.c:56,1
    - Dst: unlikely
      Src: /src/haproxy/src/eb64tree.c:60,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb64tree.c:60,1
    - Dst: container_of
      Src: /src/haproxy/src/eb64tree.c:65,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:65,1
    - Dst: container_of
      Src: /src/haproxy/src/eb64tree.c:73,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:73,1
    - Dst: eb_prefetch
      Src: /src/haproxy/src/eb64tree.c:76,1
    - Dst: eb_prefetch
      Src: /src/haproxy/src/eb64tree.c:77,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb64tree.c:94,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:95,1
    - Dst: container_of
      Src: /src/haproxy/src/eb64tree.c:96,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:96,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/eb64tree.c:111,1
    - Dst: eb_walk_down
      Src: /src/haproxy/src/eb64tree.c:111,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb64tree.c:126,1
    - Dst: unlikely
      Src: /src/haproxy/src/eb64tree.c:130,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/eb64tree.c:130,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:130,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/eb64tree.c:132,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:132,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:135,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/eb64tree.c:136,1
    - Dst: eb_walk_down
      Src: /src/haproxy/src/eb64tree.c:136,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 138
    functionName: eb64_lookup_le
    functionSourceFile: /src/haproxy/src/eb64tree.c
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - eb64_entry
    - container_of
    - eb_root_to_node
    - eb_walk_down
    - eb_clrtag
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_lookup_le(struct eb_root *root, u64 x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/eb64tree.c:151,1
    - Dst: unlikely
      Src: /src/haproxy/src/eb64tree.c:155,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb64tree.c:155,1
    - Dst: container_of
      Src: /src/haproxy/src/eb64tree.c:160,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:160,1
    - Dst: container_of
      Src: /src/haproxy/src/eb64tree.c:168,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:168,1
    - Dst: eb_prefetch
      Src: /src/haproxy/src/eb64tree.c:171,1
    - Dst: eb_prefetch
      Src: /src/haproxy/src/eb64tree.c:172,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb64tree.c:189,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:190,1
    - Dst: container_of
      Src: /src/haproxy/src/eb64tree.c:191,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:191,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/eb64tree.c:206,1
    - Dst: eb_walk_down
      Src: /src/haproxy/src/eb64tree.c:206,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb64tree.c:221,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/eb64tree.c:223,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:223,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb64tree.c:226,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/eb64tree.c:227,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/eb64tree.c:230,1
    - Dst: eb_walk_down
      Src: /src/haproxy/src/eb64tree.c:230,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 232
    functionName: eb64_lookup_ge
    functionSourceFile: /src/haproxy/src/eb64tree.c
    functionUses: 0
    functionsReached:
    - unlikely
    - eb_gettag
    - eb64_entry
    - container_of
    - eb_root_to_node
    - eb_walk_down
    - eb_clrtag
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_lookup_ge(struct eb_root *root, u64 x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/compression.c:117,1
    - Dst: strlen
      Src: /src/haproxy/src/compression.c:120,1
    - Dst: strdup
      Src: /src/haproxy/src/compression.c:121,1
    - Dst: free
      Src: /src/haproxy/src/compression.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - types
    - type
    argTypes:
    - struct comp_type**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 132
    functionName: comp_append_type
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 1
    functionsReached:
    - calloc
    - strdup
    - free
    - strlen
    linkageType: ''
    returnType: int
    signature: int comp_append_type(struct comp_type **types, const char *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/compression.c:145,1
    - Dst: calloc
      Src: /src/haproxy/src/compression.c:146,1
    - Dst: memmove
      Src: /src/haproxy/src/compression.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - algos
    - algo
    argTypes:
    - struct comp_algo**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 156
    functionName: comp_append_algo
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 1
    functionsReached:
    - calloc
    - memmove
    - strcmp
    linkageType: ''
    returnType: int
    signature: int comp_append_algo(struct comp_algo **algos, const char *algo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/compression.c:173,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/compression.c:181,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/compression.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - comp_ctx
    argTypes:
    - struct comp_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 190
    functionName: init_comp_ctx
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - __ha_barrier_atomic_store
    - _HA_ATOMIC_ADD
    - pool_alloc
    linkageType: ''
    returnType: int
    signature: int init_comp_ctx(struct comp_ctx **comp_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/compression.c:200,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/compression.c:204,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/compression.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - comp_ctx
    argTypes:
    - struct comp_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: deinit_comp_ctx
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_SUB
    - __ha_barrier_atomic_store
    - pool_free
    linkageType: ''
    returnType: int
    signature: int deinit_comp_ctx(struct comp_ctx **comp_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comp_ctx
    - level
    argTypes:
    - struct comp_ctx**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: comp_identity_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int comp_identity_init(struct comp_ctx **comp_ctx, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_tail
      Src: /src/haproxy/src/compression.c:230,1
    - Dst: b_room
      Src: /src/haproxy/src/compression.c:231,1
    - Dst: memcpy
      Src: /src/haproxy/src/compression.c:236,1
    - Dst: b_add
      Src: /src/haproxy/src/compression.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - comp_ctx
    - in_data
    - in_len
    - out
    argTypes:
    - struct comp_ctx*
    - char*
    - int
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 241
    functionName: comp_identity_add_data
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - b_room
    - memcpy
    - b_tail
    - b_add
    linkageType: ''
    returnType: int
    signature: int comp_identity_add_data(struct comp_ctx *comp_ctx, const char *in_data,
      int in_len, struct buffer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comp_ctx
    - out
    argTypes:
    - struct comp_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: comp_identity_flush
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int comp_identity_flush(struct comp_ctx *comp_ctx, struct buffer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comp_ctx
    - out
    argTypes:
    - struct comp_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: comp_identity_finish
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int comp_identity_finish(struct comp_ctx *comp_ctx, struct buffer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comp_ctx
    argTypes:
    - struct comp_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: comp_identity_end
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int comp_identity_end(struct comp_ctx **comp_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_comp_ctx
      Src: /src/haproxy/src/compression.c:267,1
    - Dst: slz_rfc1952_init
      Src: /src/haproxy/src/compression.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - comp_ctx
    - level
    argTypes:
    - struct comp_ctx**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: comp_rfc1952_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - init_comp_ctx
    - slz_rfc1952_init
    linkageType: ''
    returnType: int
    signature: int comp_rfc1952_init(struct comp_ctx **comp_ctx, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_comp_ctx
      Src: /src/haproxy/src/compression.c:277,1
    - Dst: slz_rfc1951_init
      Src: /src/haproxy/src/compression.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - comp_ctx
    - level
    argTypes:
    - struct comp_ctx**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: comp_rfc1951_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - init_comp_ctx
    - slz_rfc1951_init
    linkageType: ''
    returnType: int
    signature: int comp_rfc1951_init(struct comp_ctx **comp_ctx, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_comp_ctx
      Src: /src/haproxy/src/compression.c:287,1
    - Dst: slz_rfc1950_init
      Src: /src/haproxy/src/compression.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - comp_ctx
    - level
    argTypes:
    - struct comp_ctx**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: comp_rfc1950_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - init_comp_ctx
    - slz_rfc1950_init
    linkageType: ''
    returnType: int
    signature: int comp_rfc1950_init(struct comp_ctx **comp_ctx, int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: b_is_null
      Src: /src/haproxy/src/compression.c:305,1
    - Dst: b_alloc
      Src: /src/haproxy/src/compression.c:310,1
    - Dst: b_reset
      Src: /src/haproxy/src/compression.c:312,1
    - Dst: memcpy
      Src: /src/haproxy/src/compression.c:313,1
    - Dst: b_tail
      Src: /src/haproxy/src/compression.c:313,1
    - Dst: b_add
      Src: /src/haproxy/src/compression.c:314,1
    - Dst: b_is_null
      Src: /src/haproxy/src/compression.c:321,1
    - Dst: memcpy
      Src: /src/haproxy/src/compression.c:323,1
    - Dst: b_tail
      Src: /src/haproxy/src/compression.c:323,1
    - Dst: b_add
      Src: /src/haproxy/src/compression.c:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - comp_ctx
    - in_data
    - in_len
    - out
    argTypes:
    - struct comp_ctx*
    - char*
    - int
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 331
    functionName: comp_rfc195x_add_data
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - b_is_null
    - memcpy
    - b_tail
    - b_add
    - b_reset
    linkageType: ''
    returnType: int
    signature: int comp_rfc195x_add_data(struct comp_ctx *comp_ctx, const char *in_data,
      int in_len, struct buffer *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: b_is_null
      Src: /src/haproxy/src/compression.c:348,1
    - Dst: b_head
      Src: /src/haproxy/src/compression.c:349,1
    - Dst: b_data
      Src: /src/haproxy/src/compression.c:350,1
    - Dst: b_data
      Src: /src/haproxy/src/compression.c:353,1
    - Dst: b_add
      Src: /src/haproxy/src/compression.c:356,1
    - Dst: slz_encode
      Src: /src/haproxy/src/compression.c:356,1
    - Dst: b_tail
      Src: /src/haproxy/src/compression.c:356,1
    - Dst: b_add
      Src: /src/haproxy/src/compression.c:359,1
    - Dst: slz_finish
      Src: /src/haproxy/src/compression.c:359,1
    - Dst: b_tail
      Src: /src/haproxy/src/compression.c:359,1
    - Dst: b_add
      Src: /src/haproxy/src/compression.c:361,1
    - Dst: slz_flush
      Src: /src/haproxy/src/compression.c:361,1
    - Dst: b_tail
      Src: /src/haproxy/src/compression.c:361,1
    - Dst: b_data
      Src: /src/haproxy/src/compression.c:363,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/compression.c:371,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - comp_ctx
    - out
    - finish
    argTypes:
    - struct comp_ctx*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 382
    functionName: comp_rfc195x_flush_or_finish
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - b_is_null
    - b_head
    - slz_finish
    - b_tail
    - b_add
    - slz_flush
    - read_freq_ctr
    - b_data
    - slz_encode
    linkageType: ''
    returnType: int
    signature: int comp_rfc195x_flush_or_finish(struct comp_ctx *comp_ctx, struct
      buffer *out, int finish)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: comp_rfc195x_flush_or_finish
      Src: /src/haproxy/src/compression.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comp_ctx
    - out
    argTypes:
    - struct comp_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: comp_rfc195x_flush
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - comp_rfc195x_flush_or_finish
    linkageType: ''
    returnType: int
    signature: int comp_rfc195x_flush(struct comp_ctx *comp_ctx, struct buffer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: comp_rfc195x_flush_or_finish
      Src: /src/haproxy/src/compression.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comp_ctx
    - out
    argTypes:
    - struct comp_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: comp_rfc195x_finish
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - comp_rfc195x_flush_or_finish
    linkageType: ''
    returnType: int
    signature: int comp_rfc195x_finish(struct comp_ctx *comp_ctx, struct buffer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deinit_comp_ctx
      Src: /src/haproxy/src/compression.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comp_ctx
    argTypes:
    - struct comp_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: comp_rfc195x_end
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deinit_comp_ctx
    linkageType: ''
    returnType: int
    signature: int comp_rfc195x_end(struct comp_ctx **comp_ctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/compression.c:420,1
    - Dst: create_pool
      Src: /src/haproxy/src/compression.c:422,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/compression.c:423,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/compression.c:426,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/compression.c:431,1
    - Dst: create_pool
      Src: /src/haproxy/src/compression.c:433,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/compression.c:434,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/compression.c:437,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/compression.c:442,1
    - Dst: create_pool
      Src: /src/haproxy/src/compression.c:444,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/compression.c:445,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/compression.c:448,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/compression.c:453,1
    - Dst: create_pool
      Src: /src/haproxy/src/compression.c:455,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/compression.c:456,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/compression.c:459,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/compression.c:464,1
    - Dst: create_pool
      Src: /src/haproxy/src/compression.c:466,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/compression.c:467,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/compression.c:470,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/compression.c:474,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/compression.c:475,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - void*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 488
    functionName: alloc_zlib
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - _HA_ATOMIC_ADD
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - __ha_barrier_atomic_store
    - create_pool
    linkageType: ''
    returnType: void
    signature: void *alloc_zlib(void *opaque, unsigned int items, unsigned int size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/compression.c:507,1
    - Dst: pool_free
      Src: /src/haproxy/src/compression.c:511,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/compression.c:512,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/compression.c:513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 514
    functionName: free_zlib
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - ABORT_NOW
    - _HA_ATOMIC_SUB
    - __ha_barrier_atomic_store
    - pool_free
    linkageType: ''
    returnType: void
    signature: void free_zlib(void *opaque, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_comp_ctx
      Src: /src/haproxy/src/compression.c:523,1
    - Dst: deflateInit2
      Src: /src/haproxy/src/compression.c:528,1
    - Dst: deinit_comp_ctx
      Src: /src/haproxy/src/compression.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - comp_ctx
    - level
    argTypes:
    - struct comp_ctx**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 536
    functionName: comp_gzip_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deinit_comp_ctx
    - init_comp_ctx
    - deflateInit2
    linkageType: ''
    returnType: int
    signature: int comp_gzip_init(struct comp_ctx **comp_ctx, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_comp_ctx
      Src: /src/haproxy/src/compression.c:543,1
    - Dst: deflateInit2
      Src: /src/haproxy/src/compression.c:548,1
    - Dst: deinit_comp_ctx
      Src: /src/haproxy/src/compression.c:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - comp_ctx
    - level
    argTypes:
    - struct comp_ctx**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 555
    functionName: comp_raw_def_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deinit_comp_ctx
    - init_comp_ctx
    - deflateInit2
    linkageType: ''
    returnType: int
    signature: int comp_raw_def_init(struct comp_ctx **comp_ctx, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_comp_ctx
      Src: /src/haproxy/src/compression.c:565,1
    - Dst: deflateInit2
      Src: /src/haproxy/src/compression.c:570,1
    - Dst: deinit_comp_ctx
      Src: /src/haproxy/src/compression.c:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - comp_ctx
    - level
    argTypes:
    - struct comp_ctx**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 578
    functionName: comp_deflate_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deinit_comp_ctx
    - init_comp_ctx
    - deflateInit2
    linkageType: ''
    returnType: int
    signature: int comp_deflate_init(struct comp_ctx **comp_ctx, int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_tail
      Src: /src/haproxy/src/compression.c:585,1
    - Dst: b_room
      Src: /src/haproxy/src/compression.c:586,1
    - Dst: deflate
      Src: /src/haproxy/src/compression.c:600,1
    - Dst: b_add
      Src: /src/haproxy/src/compression.c:605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - comp_ctx
    - in_data
    - in_len
    - out
    argTypes:
    - struct comp_ctx*
    - char*
    - int
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 608
    functionName: comp_deflate_add_data
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - b_room
    - deflate
    - b_tail
    - b_add
    linkageType: ''
    returnType: int
    signature: int comp_deflate_add_data(struct comp_ctx *comp_ctx, const char *in_data,
      int in_len, struct buffer *out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: b_tail
      Src: /src/haproxy/src/compression.c:618,1
    - Dst: b_room
      Src: /src/haproxy/src/compression.c:619,1
    - Dst: deflate
      Src: /src/haproxy/src/compression.c:621,1
    - Dst: b_room
      Src: /src/haproxy/src/compression.c:625,1
    - Dst: b_add
      Src: /src/haproxy/src/compression.c:626,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/compression.c:629,1
    - Dst: deflateParams
      Src: /src/haproxy/src/compression.c:634,1
    - Dst: deflateParams
      Src: /src/haproxy/src/compression.c:640,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - comp_ctx
    - out
    - flag
    argTypes:
    - struct comp_ctx*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 644
    functionName: comp_deflate_flush_or_finish
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deflateParams
    - b_tail
    - b_add
    - b_room
    - read_freq_ctr
    - deflate
    linkageType: ''
    returnType: int
    signature: int comp_deflate_flush_or_finish(struct comp_ctx *comp_ctx, struct
      buffer *out, int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: comp_deflate_flush_or_finish
      Src: /src/haproxy/src/compression.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comp_ctx
    - out
    argTypes:
    - struct comp_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: comp_deflate_flush
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - comp_deflate_flush_or_finish
    linkageType: ''
    returnType: int
    signature: int comp_deflate_flush(struct comp_ctx *comp_ctx, struct buffer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: comp_deflate_flush_or_finish
      Src: /src/haproxy/src/compression.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comp_ctx
    - out
    argTypes:
    - struct comp_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 654
    functionName: comp_deflate_finish
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - comp_deflate_flush_or_finish
    linkageType: ''
    returnType: int
    signature: int comp_deflate_finish(struct comp_ctx *comp_ctx, struct buffer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deflateEnd
      Src: /src/haproxy/src/compression.c:661,1
    - Dst: deinit_comp_ctx
      Src: /src/haproxy/src/compression.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - comp_ctx
    argTypes:
    - struct comp_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 666
    functionName: comp_deflate_end
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deinit_comp_ctx
    - deflateEnd
    linkageType: ''
    returnType: int
    signature: int comp_deflate_end(struct comp_ctx **comp_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/compression.c:673,1
    - Dst: memprintf
      Src: /src/haproxy/src/compression.c:677,1
    - Dst: atoi
      Src: /src/haproxy/src/compression.c:681,1
    - Dst: memprintf
      Src: /src/haproxy/src/compression.c:683,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 669
    functionDepth: 5
    functionLinenumber: 669
    functionLinenumberEnd: 687
    functionName: zlib_parse_global_memlevel
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int zlib_parse_global_memlevel(char **args, int section_type, struct
      proxy *curpx,\n                                      const struct proxy *defpx,
      const char *file, int line,\n                                      char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/compression.c:695,1
    - Dst: memprintf
      Src: /src/haproxy/src/compression.c:699,1
    - Dst: atoi
      Src: /src/haproxy/src/compression.c:703,1
    - Dst: memprintf
      Src: /src/haproxy/src/compression.c:705,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 691
    functionDepth: 5
    functionLinenumber: 691
    functionLinenumberEnd: 709
    functionName: zlib_parse_global_windowsize
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int zlib_parse_global_windowsize(char **args, int section_type, struct
      proxy *curpx,\n                                        const struct proxy *defpx,
      const char *file, int line,\n                                        char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/compression.c:731,1
    - Dst: memprintf
      Src: /src/haproxy/src/compression.c:732,1
    - Dst: zlibVersion
      Src: /src/haproxy/src/compression.c:732,1
    - Dst: memprintf
      Src: /src/haproxy/src/compression.c:734,1
    - Dst: memprintf
      Src: /src/haproxy/src/compression.c:736,1
    - Dst: memprintf
      Src: /src/haproxy/src/compression.c:738,1
    - Dst: memprintf
      Src: /src/haproxy/src/compression.c:741,1
    - Dst: memprintf
      Src: /src/haproxy/src/compression.c:744,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/compression.c:746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 725
    functionDepth: 5
    functionLinenumber: 725
    functionLinenumberEnd: 747
    functionName: comp_register_build_opts
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - memprintf
    - zlibVersion
    - hap_register_build_opts
    linkageType: ''
    returnType: void
    signature: void comp_register_build_opts(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cause
    argTypes:
    - enum srv_adm_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: srv_adm_st_chg_cause
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *srv_adm_st_chg_cause(enum srv_adm_st_chg_cause cause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/server.c:146,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/server.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: srv_reset_path_parameters
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void srv_reset_path_parameters(struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cause
    argTypes:
    - enum srv_op_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: srv_op_st_chg_cause
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *srv_op_st_chg_cause(enum srv_op_st_chg_cause cause)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:159,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: srv_downtime
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ns_to_sec
    linkageType: ''
    returnType: int
    signature: int srv_downtime(const struct server *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: srv_getinter
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_getinter(const struct check *check)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ipcpy
      Src: /src/haproxy/src/server.c:188,1
    - Dst: struct server*::proxy::lbprm::ops::update_server_eweight
      Src: /src/haproxy/src/server.c:197,1
    - Dst: ipcpy
      Src: /src/haproxy/src/server.c:202,1
    - Dst: set_host_port
      Src: /src/haproxy/src/server.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - srv
    - addr
    - svc_port
    - mapped_port
    argTypes:
    - struct server*
    - struct sockaddr_storage*
    - unsigned int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 205
    functionName: _srv_set_inetaddr_port
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - set_host_port
    - ipcpy
    - struct server*::proxy::lbprm::ops::update_server_eweight
    linkageType: ''
    returnType: void
    signature: "void _srv_set_inetaddr_port(struct server *srv,\n                                   const
      struct sockaddr_storage *addr,\n                                   unsigned
      int svc_port, uint8_t mapped_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _srv_set_inetaddr_port
      Src: /src/haproxy/src/server.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - srv
    - addr
    argTypes:
    - struct server*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: _srv_set_inetaddr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _srv_set_inetaddr_port
    linkageType: ''
    returnType: void
    signature: "void _srv_set_inetaddr(struct server *srv,\n                              const
      struct sockaddr_storage *addr)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:245,1
    - Dst: event_hdl_async_equeue_pop
      Src: /src/haproxy/src/server.c:249,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/server.c:253,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/server.c:255,1
    - Dst: task_destroy
      Src: /src/haproxy/src/server.c:256,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/server.c:262,1
    - Dst: thread_isolated
      Src: /src/haproxy/src/server.c:279,1
    - Dst: thread_isolate_full
      Src: /src/haproxy/src/server.c:280,1
    - Dst: proxy_find_by_id
      Src: /src/haproxy/src/server.c:283,1
    - Dst: server_find_by_id_unique
      Src: /src/haproxy/src/server.c:286,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:291,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:299,1
    - Dst: _srv_set_inetaddr_port
      Src: /src/haproxy/src/server.c:312,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/src/server.c:322,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:326,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:327,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:328,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:329,1
    - Dst: srv_cleanup_connections
      Src: /src/haproxy/src/server.c:332,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/server.c:333,1
    - Dst: srv_set_addr_desc
      Src: /src/haproxy/src/server.c:334,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/server.c:336,1
    - Dst: thread_isolated
      Src: /src/haproxy/src/server.c:343,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:344,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:354,1
    - Dst: event_hdl_async_equeue_isempty
      Src: /src/haproxy/src/server.c:355,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/server.c:356,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 360
    functionName: server_atomic_sync
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_set_dyncookie
    - srv_cleanup_connections
    - event_hdl_async_equeue_pop
    - server_find_by_id_unique
    - event_hdl_async_equeue_isempty
    - task_destroy
    - thread_isolated
    - chunk_printf
    - event_hdl_async_free_event
    - thread_release
    - memcpy
    - chunk_reset
    - send_log
    - proxy_find_by_id
    - _srv_set_inetaddr_port
    - memset
    - BUG_ON
    - srv_set_addr_desc
    - srv_clr_admin_flag
    - task_wakeup
    - event_hdl_sub_type_equal
    - ha_warning
    - thread_isolate_full
    linkageType: ''
    returnType: struct task
    signature: struct task *server_atomic_sync(struct task *task, void *context, unsigned
      int state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/server.c:372,1
    - Dst: event_hdl_async_equeue_init
      Src: /src/haproxy/src/server.c:376,1
    - Dst: event_hdl_sub_type_add
      Src: /src/haproxy/src/server.c:379,1
    - Dst: event_hdl_subscribe
      Src: /src/haproxy/src/server.c:380,1
    - Dst: EVENT_HDL_ASYNC_TASK
      Src: /src/haproxy/src/server.c:381,1
    - Dst: task_destroy
      Src: /src/haproxy/src/server.c:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 394
    functionName: server_atomic_sync_start
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - task_new_anywhere
    - event_hdl_subscribe
    - EVENT_HDL_ASYNC_TASK
    - task_destroy
    - event_hdl_sub_type_add
    - event_hdl_async_equeue_init
    linkageType: ''
    returnType: int
    signature: int server_atomic_sync_start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/server.c:407,1
    - Dst: snprintf
      Src: /src/haproxy/src/server.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - cb_data
    - srv
    - thread_isolate
    argTypes:
    - struct event_hdl_cb_data_server*
    - struct server*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 418
    functionName: _srv_event_hdl_prepare
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void _srv_event_hdl_prepare(struct event_hdl_cb_data_server *cb_data,\n
      \                                         struct server *srv, uint8_t thread_isolate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - checkres
    - check
    argTypes:
    - struct event_hdl_cb_data_server_checkres*
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 432
    functionName: _srv_event_hdl_prepare_checkres
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _srv_event_hdl_prepare_checkres(struct event_hdl_cb_data_server_checkres
      *checkres,\n                                     struct check *check)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _srv_event_hdl_prepare_checkres
      Src: /src/haproxy/src/server.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - cb_data
    - srv
    - type
    - cause
    - prev_state
    - requeued
    argTypes:
    - struct event_hdl_cb_data_server_state*
    - struct server*
    - int
    - int
    - enum srv_state
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 463
    functionName: _srv_event_hdl_prepare_state
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _srv_event_hdl_prepare_checkres
    linkageType: ''
    returnType: void
    signature: "void _srv_event_hdl_prepare_state(struct event_hdl_cb_data_server_state
      *cb_data,\n                                  struct server *srv, int type, int
      cause,\n                                  enum srv_state prev_state, int requeued)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/server.c:479,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - cb_data
    - srv
    - next_inetaddr
    - updater
    argTypes:
    - struct event_hdl_cb_data_server_inetaddr*
    - struct server*
    - struct server_inetaddr*
    - struct server_inetaddr_updater
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 493
    functionName: _srv_event_hdl_prepare_inetaddr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_get_inetaddr
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: "void _srv_event_hdl_prepare_inetaddr(struct event_hdl_cb_data_server_inetaddr
      *cb_data,\n                                            struct server *srv,\n
      \                                           const struct server_inetaddr *next_inetaddr,\n
      \                                           struct server_inetaddr_updater updater)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - e
    - ','
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 500
    functionName: _srv_event_hdl_publish
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _srv_event_hdl_publish(e, d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _srv_event_hdl_prepare
      Src: /src/haproxy/src/server.c:519,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - event
    - srv
    - thread_isolate
    argTypes:
    - struct event_hdl_sub_type
    - struct server*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 521
    functionName: srv_event_hdl_publish
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - _srv_event_hdl_publish
    - _srv_event_hdl_prepare
    linkageType: ''
    returnType: void
    signature: "void srv_event_hdl_publish(struct event_hdl_sub_type event,\n                                  struct
      server *srv, uint8_t thread_isolate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _srv_event_hdl_prepare_checkres
      Src: /src/haproxy/src/server.c:534,1
    - Dst: _srv_event_hdl_prepare
      Src: /src/haproxy/src/server.c:539,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - srv
    - check
    argTypes:
    - struct server*
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 542
    functionName: srv_event_hdl_publish_check
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _srv_event_hdl_publish
    - _srv_event_hdl_prepare_checkres
    - _srv_event_hdl_prepare
    linkageType: ''
    returnType: void
    signature: void srv_event_hdl_publish_check(struct server *srv, struct check *check)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:561,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:562,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 568
    functionName: srv_check_for_dup_dyncookie
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void srv_check_for_dup_dyncookie(struct server *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/server.c:583,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:589,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:607,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:608,1
    - Dst: htonl
      Src: /src/haproxy/src/server.c:617,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:618,1
    - Dst: XXH64
      Src: /src/haproxy/src/server.c:619,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:620,1
    - Dst: srv_check_for_dup_dyncookie
      Src: /src/haproxy/src/server.c:630,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/server.c:632,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 573
    functionDepth: 5
    functionLinenumber: 573
    functionLinenumberEnd: 633
    functionName: srv_set_dyncookie
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - srv_check_for_dup_dyncookie
    - memprintf
    - HA_RWLOCK_RDLOCK
    - memcpy
    - HA_RWLOCK_RDUNLOCK
    - strlen
    - htonl
    - XXH64
    linkageType: ''
    returnType: void
    signature: void srv_set_dyncookie(struct server *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: isteq
      Src: /src/haproxy/src/server.c:658,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:658,1
    - Dst: isteq
      Src: /src/haproxy/src/server.c:666,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:666,1
    - Dst: ist2
      Src: /src/haproxy/src/server.c:676,1
    - Dst: istchr
      Src: /src/haproxy/src/server.c:684,1
    - Dst: isteq
      Src: /src/haproxy/src/server.c:689,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:689,1
    - Dst: isteq
      Src: /src/haproxy/src/server.c:692,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:692,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 697
    functionName: srv_check_reuse_ws
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - ist2
    - ist
    - isteq
    - istchr
    linkageType: ''
    returnType: int
    signature: int srv_check_reuse_ws(struct server *srv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_mux_proto
      Src: /src/haproxy/src/server.c:712,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:712,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/server.c:716,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 721
    functionName: srv_get_ws_proto
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - get_mux_proto
    - ist
    linkageType: ''
    returnType: struct mux_ops
    signature: struct mux_ops *srv_get_ws_proto(struct server *srv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:735,1
    - Dst: sa2str
      Src: /src/haproxy/src/server.c:737,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:740,1
    - Dst: free
      Src: /src/haproxy/src/server.c:741,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/server.c:745,1
    - Dst: cebuis_item_delete
      Src: /src/haproxy/src/server.c:746,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/server.c:747,1
    - Dst: free
      Src: /src/haproxy/src/server.c:749,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/server.c:756,1
    - Dst: cebuis_item_insert
      Src: /src/haproxy/src/server.c:757,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/server.c:758,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - s
    - reattach
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 761
    functionName: srv_set_addr_desc
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - HA_RWLOCK_WRUNLOCK
    - strcmp
    - cebuis_item_insert
    - free
    - HA_RWLOCK_WRLOCK
    - cebuis_item_delete
    - sa2str
    linkageType: ''
    returnType: void
    signature: void srv_set_addr_desc(struct server *s, int reattach)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/server.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct srv_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 770
    functionName: srv_register_keywords
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void srv_register_keywords(struct srv_kw_list *kwl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/server.c:786,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:788,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/server.c:790,1
    - Dst: strncmp
      Src: /src/haproxy/src/server.c:792,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 802
    functionName: srv_find_kw
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - strncmp
    - strchr
    - strlen
    linkageType: ''
    returnType: struct srv_kw
    signature: struct srv_kw *srv_find_kw(const char *kw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/server.c:817,1
    - Dst: srv_find_kw
      Src: /src/haproxy/src/server.c:820,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 808
    functionDepth: 5
    functionLinenumber: 808
    functionLinenumberEnd: 830
    functionName: srv_dump_kws
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_find_kw
    - memprintf
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void srv_dump_kws(char **out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/server.c:848,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/server.c:849,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/server.c:851,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/server.c:852,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/server.c:861,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/server.c:862,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:869,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:869,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 838
    functionDepth: 4
    functionLinenumber: 838
    functionLinenumberEnd: 873
    functionName: srv_find_best_kw
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strlen
    - word_fingerprint_distance
    - make_word_fingerprint
    - list_for_each_entry
    linkageType: ''
    returnType: char
    signature: char *srv_find_best_kw(const char *word)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ceb32_item_lookup_ge
      Src: /src/haproxy/src/server.c:884,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - px
    - from
    argTypes:
    - struct proxy*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 890
    functionName: server_get_next_id
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ceb32_item_lookup_ge
    linkageType: ''
    returnType: uint
    signature: uint server_get_next_id(const struct proxy *px, uint from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 898
    functionName: srv_parse_backup
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int srv_parse_backup(char **args, int *cur_arg,\n                            struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:909,1
    - Dst: free
      Src: /src/haproxy/src/server.c:913,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:914,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 902
    functionDepth: 5
    functionLinenumber: 902
    functionLinenumberEnd: 918
    functionName: srv_parse_cookie
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strlen
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int srv_parse_cookie(char **args, int *cur_arg,\n                            struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 929
    functionName: srv_parse_disabled
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int srv_parse_disabled(char **args, int *cur_arg,\n                              struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srv_set_init_state
      Src: /src/haproxy/src/server.c:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 942
    functionName: srv_parse_enabled
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_set_init_state
    linkageType: ''
    returnType: int
    signature: "int srv_parse_enabled(char **args, int *cur_arg,\n                             struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:949,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:954,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 945
    functionDepth: 5
    functionLinenumber: 945
    functionLinenumberEnd: 963
    functionName: srv_parse_error_limit
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int srv_parse_error_limit(char **args, int *cur_arg,\n                                 struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:973,1
    - Dst: guid_insert
      Src: /src/haproxy/src/server.c:978,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:979,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 966
    functionDepth: 5
    functionLinenumber: 966
    functionLinenumberEnd: 985
    functionName: srv_parse_guid
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - guid_insert
    linkageType: ''
    returnType: int
    signature: "int srv_parse_guid(char **args, int *cur_arg,\n                        struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:992,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:996,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:999,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1002,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 988
    functionDepth: 5
    functionLinenumber: 988
    functionLinenumberEnd: 1012
    functionName: srv_parse_ws
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int srv_parse_ws(char **args, int *cur_arg,\n                        struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1019,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1023,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1026,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1029,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1032,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1035,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1039,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1015
    functionDepth: 5
    functionLinenumber: 1015
    functionLinenumberEnd: 1044
    functionName: srv_parse_hash_key
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int srv_parse_hash_key(char **args, int *cur_arg,\n\t\t\t      struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1054,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/server.c:1058,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1060,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1065,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1070,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1047
    functionDepth: 5
    functionLinenumber: 1047
    functionLinenumberEnd: 1081
    functionName: srv_parse_idle_ping
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int srv_parse_idle_ping(char **args, int *cur_arg,\n                               struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/server.c:1092,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:1100,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1101,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:1102,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1104,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:1105,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1107,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:1108,1
    - Dst: str2ip2
      Src: /src/haproxy/src/server.c:1110,1
    - Dst: is_addr
      Src: /src/haproxy/src/server.c:1111,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1112,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:1117,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1120,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1125,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1084
    functionDepth: 5
    functionLinenumber: 1084
    functionLinenumberEnd: 1132
    functionName: srv_parse_init_addr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_append_initaddr
    - memprintf
    - memset
    - strcmp
    - str2ip2
    - is_addr
    linkageType: ''
    returnType: int
    signature: "int srv_parse_init_addr(char **args, int *cur_arg,\n                               struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1138,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1140,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1142,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1144,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1146,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1149,1
    - Dst: srv_set_init_state
      Src: /src/haproxy/src/server.c:1154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1135
    functionDepth: 5
    functionLinenumber: 1135
    functionLinenumberEnd: 1156
    functionName: srv_parse_init_state
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - srv_set_init_state
    linkageType: ''
    returnType: int
    signature: "int srv_parse_init_state(char **args, int *cur_arg,\n\t\t\t\tstruct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1163,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:1168,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1159
    functionDepth: 5
    functionLinenumber: 1159
    functionLinenumberEnd: 1177
    functionName: srv_parse_log_bufsize
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int srv_parse_log_bufsize(char **args, int *cur_arg,\n                                 struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1183,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1185,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1180
    functionDepth: 5
    functionLinenumber: 1180
    functionLinenumberEnd: 1194
    functionName: srv_parse_log_proto
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int srv_parse_log_proto(char **args, int *cur_arg,\n                               struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atol
      Src: /src/haproxy/src/server.c:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1202
    functionName: srv_parse_maxconn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atol
    linkageType: ''
    returnType: int
    signature: "int srv_parse_maxconn(char **args, int *cur_arg,\n                             struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atol
      Src: /src/haproxy/src/server.c:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1210
    functionName: srv_parse_maxqueue
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atol
    linkageType: ''
    returnType: int
    signature: "int srv_parse_maxqueue(char **args, int *cur_arg,\n                              struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atol
      Src: /src/haproxy/src/server.c:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1213
    functionDepth: 0
    functionLinenumber: 1213
    functionLinenumberEnd: 1218
    functionName: srv_parse_minconn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atol
    linkageType: ''
    returnType: int
    signature: "int srv_parse_minconn(char **args, int *cur_arg,\n                             struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1226,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:1229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1220
    functionDepth: 5
    functionLinenumber: 1220
    functionLinenumberEnd: 1232
    functionName: srv_parse_max_reuse
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: int
    signature: int srv_parse_max_reuse(char **args, int *cur_arg, struct proxy *curproxy,
      struct server *newsrv, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1242,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/server.c:1245,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1247,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1252,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1234
    functionDepth: 5
    functionLinenumber: 1234
    functionLinenumberEnd: 1264
    functionName: srv_parse_pool_purge_delay
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: int srv_parse_pool_purge_delay(char **args, int *cur_arg, struct proxy
      *curproxy, struct server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1272,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:1276,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:1277,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1266
    functionDepth: 5
    functionLinenumber: 1266
    functionLinenumberEnd: 1284
    functionName: srv_parse_pool_conn_name
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_parse_pool_conn_name(char **args, int *cur_arg, struct proxy
      *curproxy, struct server *newsrv, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1292,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:1296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1286
    functionDepth: 5
    functionLinenumber: 1286
    functionLinenumberEnd: 1298
    functionName: srv_parse_pool_low_conn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: int
    signature: int srv_parse_pool_low_conn(char **args, int *cur_arg, struct proxy
      *curproxy, struct server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1306,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:1310,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1300
    functionDepth: 5
    functionLinenumber: 1300
    functionLinenumberEnd: 1317
    functionName: srv_parse_pool_max_conn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: int
    signature: int srv_parse_pool_max_conn(char **args, int *cur_arg, struct proxy
      *curproxy, struct server *newsrv, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1326,1
    - Dst: atol
      Src: /src/haproxy/src/server.c:1330,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1332,1
    - Dst: server_find_by_id
      Src: /src/haproxy/src/server.c:1337,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1320
    functionDepth: 5
    functionLinenumber: 1320
    functionLinenumberEnd: 1347
    functionName: srv_parse_id
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_find_by_id
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: int srv_parse_id(char **args, int *cur_arg, struct proxy *curproxy,
      struct server *newsrv, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1358,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1362,1
    - Dst: netns_store_lookup
      Src: /src/haproxy/src/server.c:1376,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:1376,1
    - Dst: netns_store_insert
      Src: /src/haproxy/src/server.c:1378,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1381,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1350
    functionDepth: 5
    functionLinenumber: 1350
    functionLinenumberEnd: 1391
    functionName: srv_parse_namespace
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - netns_store_lookup
    - netns_store_insert
    - strlen
    linkageType: ''
    returnType: int
    signature: "int srv_parse_namespace(char **args, int *cur_arg,\n                               struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1399
    functionName: srv_parse_no_backup
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int srv_parse_no_backup(char **args, int *cur_arg,\n                               struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - srv
    - flags
    argTypes:
    - struct server*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1403
    functionDepth: 0
    functionLinenumber: 1403
    functionLinenumberEnd: 1407
    functionName: srv_disable_pp_flags
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_disable_pp_flags(struct server *srv, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srv_disable_pp_flags
      Src: /src/haproxy/src/server.c:1413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1414
    functionName: srv_parse_no_send_proxy
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_disable_pp_flags
    linkageType: ''
    returnType: int
    signature: "int srv_parse_no_send_proxy(char **args, int *cur_arg,\n                                   struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srv_disable_pp_flags
      Src: /src/haproxy/src/server.c:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1421
    functionName: srv_parse_no_send_proxy_v2
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_disable_pp_flags
    linkageType: ''
    returnType: int
    signature: "int srv_parse_no_send_proxy_v2(char **args, int *cur_arg,\n                                      struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atol
      Src: /src/haproxy/src/server.c:1427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1424
    functionDepth: 0
    functionLinenumber: 1424
    functionLinenumberEnd: 1429
    functionName: srv_parse_shard
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atol
    linkageType: ''
    returnType: int
    signature: "int srv_parse_shard(char **args, int *cur_arg,\n                           struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1432
    functionDepth: 0
    functionLinenumber: 1432
    functionLinenumberEnd: 1437
    functionName: srv_parse_no_tfo
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int srv_parse_no_tfo(char **args, int *cur_arg,\n                            struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1440
    functionDepth: 0
    functionLinenumber: 1440
    functionLinenumberEnd: 1445
    functionName: srv_parse_non_stick
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int srv_parse_non_stick(char **args, int *cur_arg,\n                               struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - srv
    - flags
    argTypes:
    - struct server*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1452
    functionName: srv_enable_pp_flags
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_enable_pp_flags(struct server *srv, unsigned int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1460,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:1463,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/server.c:1464,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1466,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1472,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/server.c:1476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1454
    functionDepth: 5
    functionLinenumber: 1454
    functionLinenumberEnd: 1479
    functionName: srv_parse_proto
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - get_mux_proto
    - ist
    - mark_tainted
    linkageType: ''
    returnType: int
    signature: "int srv_parse_proto(char **args, int *cur_arg,\n\t\t\t   struct proxy
      *px, struct server *newsrv, char **err)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/server.c:1487,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1490,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1492,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1495,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1498,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1501,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1504,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1506,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1508,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1516,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1482
    functionDepth: 5
    functionLinenumber: 1482
    functionLinenumberEnd: 1518
    functionName: srv_parse_proxy_v2_options
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - strchr
    linkageType: ''
    returnType: int
    signature: "int srv_parse_proxy_v2_options(char **args, int *cur_arg,\n\t\t\t\t
      \     struct proxy *px, struct server *newsrv, char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1528,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1532,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1535,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1538,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1540,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1521
    functionDepth: 5
    functionLinenumber: 1521
    functionLinenumberEnd: 1552
    functionName: srv_parse_observe
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int srv_parse_observe(char **args, int *cur_arg,\n                             struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1558,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1560,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1562,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1564,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1555
    functionDepth: 5
    functionLinenumber: 1555
    functionLinenumberEnd: 1574
    functionName: srv_parse_on_error
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int srv_parse_on_error(char **args, int *cur_arg,\n                              struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1580,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1577
    functionDepth: 5
    functionLinenumber: 1577
    functionLinenumberEnd: 1589
    functionName: srv_parse_on_marked_down
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int srv_parse_on_marked_down(char **args, int *cur_arg,\n                                    struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1595,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1592
    functionDepth: 5
    functionLinenumber: 1592
    functionLinenumberEnd: 1604
    functionName: srv_parse_on_marked_up
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int srv_parse_on_marked_up(char **args, int *cur_arg,\n                                  struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1614,1
    - Dst: free
      Src: /src/haproxy/src/server.c:1618,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:1619,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:1620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1607
    functionDepth: 5
    functionLinenumber: 1607
    functionLinenumberEnd: 1623
    functionName: srv_parse_redir
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strlen
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int srv_parse_redir(char **args, int *cur_arg,\n                           struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/server.c:1629,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:1630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1626
    functionDepth: 3
    functionLinenumber: 1626
    functionLinenumberEnd: 1632
    functionName: srv_parse_resolvers
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int srv_parse_resolvers(char **args, int *cur_arg,\n                           struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1643,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1658,1
    - Dst: str2net
      Src: /src/haproxy/src/server.c:1669,1
    - Dst: str62net
      Src: /src/haproxy/src/server.c:1673,1
    - Dst: len2mask6
      Src: /src/haproxy/src/server.c:1676,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1680,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1635
    functionDepth: 5
    functionLinenumber: 1635
    functionLinenumberEnd: 1689
    functionName: srv_parse_resolve_net
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - len2mask6
    - memprintf
    - str2net
    - str62net
    linkageType: ''
    returnType: int
    signature: "int srv_parse_resolve_net(char **args, int *cur_arg,\n                                 struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1703,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1706,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1709,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1713,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1692
    functionDepth: 5
    functionLinenumber: 1692
    functionLinenumberEnd: 1720
    functionName: srv_parse_resolve_opts
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int srv_parse_resolve_opts(char **args, int *cur_arg,\n                                  struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1726,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1728,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1723
    functionDepth: 5
    functionLinenumber: 1723
    functionLinenumberEnd: 1737
    functionName: srv_parse_resolve_prefer
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int srv_parse_resolve_prefer(char **args, int *cur_arg,\n                                    struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srv_enable_pp_flags
      Src: /src/haproxy/src/server.c:1743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1740
    functionDepth: 1
    functionLinenumber: 1740
    functionLinenumberEnd: 1744
    functionName: srv_parse_send_proxy
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_enable_pp_flags
    linkageType: ''
    returnType: int
    signature: "int srv_parse_send_proxy(char **args, int *cur_arg,\n                                struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srv_enable_pp_flags
      Src: /src/haproxy/src/server.c:1750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1747
    functionDepth: 1
    functionLinenumber: 1747
    functionLinenumberEnd: 1751
    functionName: srv_parse_send_proxy_v2
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_enable_pp_flags
    linkageType: ''
    returnType: int
    signature: "int srv_parse_send_proxy_v2(char **args, int *cur_arg,\n                                   struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1763,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:1767,1
    - Dst: strtoul
      Src: /src/haproxy/src/server.c:1772,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:1773,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1774,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1778,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1782,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1786,1
    - Dst: malloc
      Src: /src/haproxy/src/server.c:1791,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:1792,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1793,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/server.c:1797,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:1798,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:1799,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1800,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/server.c:1804,1
    - Dst: free
      Src: /src/haproxy/src/server.c:1811,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1754
    functionDepth: 5
    functionLinenumber: 1754
    functionLinenumberEnd: 1814
    functionName: srv_parse_set_proxy_v2_tlv_fmt
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - unlikely
    - malloc
    - memprintf
    - lf_expr_init
    - strtoul
    - LIST_APPEND
    - free
    - strdup
    - strlen
    linkageType: ''
    returnType: int
    signature: "int srv_parse_set_proxy_v2_tlv_fmt(char **args, int *cur_arg,\n                                   struct
      proxy *px, struct server *newsrv, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_time_err
      Src: /src/haproxy/src/server.c:1822,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1825,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1830,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1835,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1817
    functionDepth: 5
    functionLinenumber: 1817
    functionLinenumberEnd: 1842
    functionName: srv_parse_slowstart
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int srv_parse_slowstart(char **args, int *cur_arg,\n                               struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1855,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/server.c:1861,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1865,1
    - Dst: port_range_alloc_range
      Src: /src/haproxy/src/server.c:1875,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1877,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1886,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1889,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1893,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1897,1
    - Dst: strncmp
      Src: /src/haproxy/src/server.c:1901,1
    - Dst: isspace
      Src: /src/haproxy/src/server.c:1905,1
    - Dst: isspace
      Src: /src/haproxy/src/server.c:1909,1
    - Dst: free
      Src: /src/haproxy/src/server.c:1914,1
    - Dst: calloc
      Src: /src/haproxy/src/server.c:1915,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1917,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:1921,1
    - Dst: isspace
      Src: /src/haproxy/src/server.c:1926,1
    - Dst: isdigit
      Src: /src/haproxy/src/server.c:1933,1
    - Dst: strl2ic
      Src: /src/haproxy/src/server.c:1935,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1939,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/server.c:1949,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1953,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1964,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1969,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1972,1
    - Dst: free
      Src: /src/haproxy/src/server.c:1975,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:1976,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:1977,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1980,1
    - Dst: free
      Src: /src/haproxy/src/server.c:1993,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 117
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1995
      start: 1845
    functionDepth: 5
    functionLinenumber: 1845
    functionLinenumberEnd: 1995
    functionName: srv_parse_source
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - isspace
    - memprintf
    - memcpy
    - calloc
    - strcmp
    - free
    - strncmp
    - strlen
    - isdigit
    - ha_alert
    - str2sa_range
    - port_range_alloc_range
    - strl2ic
    - strdup
    linkageType: ''
    returnType: int
    signature: "int srv_parse_source(char **args, int *cur_arg,\n                            struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 2003
    functionName: srv_parse_stick
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int srv_parse_stick(char **args, int *cur_arg,\n                           struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:2013,1
    - Dst: free
      Src: /src/haproxy/src/server.c:2017,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2006
    functionDepth: 5
    functionLinenumber: 2006
    functionLinenumberEnd: 2021
    functionName: srv_parse_track
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int srv_parse_track(char **args, int *cur_arg,\n                           struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:2034,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/server.c:2039,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:2043,1
    - Dst: free
      Src: /src/haproxy/src/server.c:2053,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2024
    functionDepth: 5
    functionLinenumber: 2024
    functionLinenumberEnd: 2055
    functionName: srv_parse_socks4
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - str2sa_range
    linkageType: ''
    returnType: int
    signature: "int srv_parse_socks4(char **args, int *cur_arg,\n                            struct
      proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2059
    functionDepth: 0
    functionLinenumber: 2059
    functionLinenumberEnd: 2063
    functionName: srv_parse_tfo
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_tfo(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:2068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2066
    functionDepth: 5
    functionLinenumber: 2066
    functionLinenumberEnd: 2071
    functionName: srv_parse_usesrc
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int srv_parse_usesrc(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atol
      Src: /src/haproxy/src/server.c:2078,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:2080,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2074
    functionDepth: 5
    functionLinenumber: 2074
    functionLinenumberEnd: 2087
    functionName: srv_parse_weight
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: int srv_parse_weight(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2095
    functionName: srv_parse_strict_maxconn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_strict_maxconn(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/server.c:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2100
    functionName: srv_has_streams
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int srv_has_streams(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/server.c:2115,1
    - Dst: stream_shutdown
      Src: /src/haproxy/src/server.c:2117,1
    - Dst: pendconn_redistribute
      Src: /src/haproxy/src/server.c:2120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - srv
    - why
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2108
    functionDepth: 3
    functionLinenumber: 2108
    functionLinenumberEnd: 2121
    functionName: srv_shutdown_streams
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - pendconn_redistribute
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - stream_shutdown
    linkageType: ''
    returnType: void
    signature: void srv_shutdown_streams(struct server *srv, int why)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: srv_shutdown_streams
      Src: /src/haproxy/src/server.c:2135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - px
    - why
    argTypes:
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2129
    functionDepth: 4
    functionLinenumber: 2129
    functionLinenumberEnd: 2136
    functionName: srv_shutdown_backup_streams
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - srv_shutdown_streams
    linkageType: ''
    returnType: void
    signature: void srv_shutdown_backup_streams(struct proxy *px, int why)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_append_info
      Src: /src/haproxy/src/server.c:2144,1
    - Dst: check_append_info
      Src: /src/haproxy/src/server.c:2147,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:2150,1
    - Dst: srv_op_st_chg_cause
      Src: /src/haproxy/src/server.c:2150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - msg
    - s
    - cause
    argTypes:
    - struct buffer*
    - struct server*
    - enum srv_op_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2138
    functionDepth: 1
    functionLinenumber: 2138
    functionLinenumberEnd: 2153
    functionName: srv_append_op_chg_cause
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - check_append_info
    - chunk_appendf
    - srv_op_st_chg_cause
    linkageType: ''
    returnType: void
    signature: void srv_append_op_chg_cause(struct buffer *msg, struct server *s,
      enum srv_op_st_chg_cause cause)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:2158,1
    - Dst: srv_adm_st_chg_cause
      Src: /src/haproxy/src/server.c:2158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - msg
    - s
    - cause
    argTypes:
    - struct buffer*
    - struct server*
    - enum srv_adm_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2159
    functionName: srv_append_adm_chg_cause
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - srv_adm_st_chg_cause
    linkageType: ''
    returnType: void
    signature: void srv_append_adm_chg_cause(struct buffer *msg, struct server *s,
      enum srv_adm_st_chg_cause cause)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:2174,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:2179,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:2185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - msg
    - s
    - xferred
    - forced
    argTypes:
    - struct buffer*
    - struct server*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2170
    functionDepth: 1
    functionLinenumber: 2170
    functionLinenumberEnd: 2191
    functionName: srv_append_more
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void srv_append_more(struct buffer *msg, struct server *s,\n                            int
      xferred, int forced)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: srv_update_status
      Src: /src/haproxy/src/server.c:2209,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:2212,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/server.c:2213,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - cause
    argTypes:
    - struct server*
    - enum srv_op_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2199
    functionDepth: 1
    functionLinenumber: 2199
    functionLinenumberEnd: 2216
    functionName: srv_set_stopped
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 5
    functionsReached:
    - srv_update_status
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - srv_set_stopped
    linkageType: ''
    returnType: void
    signature: void srv_set_stopped(struct server *s, enum srv_op_st_chg_cause cause)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: srv_update_status
      Src: /src/haproxy/src/server.c:2240,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:2243,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/server.c:2244,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - s
    - cause
    argTypes:
    - struct server*
    - enum srv_op_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2224
    functionDepth: 1
    functionLinenumber: 2224
    functionLinenumberEnd: 2247
    functionName: srv_set_running
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 5
    functionsReached:
    - srv_update_status
    - srv_set_running
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void srv_set_running(struct server *s, enum srv_op_st_chg_cause cause)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: srv_update_status
      Src: /src/haproxy/src/server.c:2268,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:2271,1
    - Dst: srv_set_stopping
      Src: /src/haproxy/src/server.c:2272,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - s
    - cause
    argTypes:
    - struct server*
    - enum srv_op_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2255
    functionDepth: 1
    functionLinenumber: 2255
    functionLinenumberEnd: 2275
    functionName: srv_set_stopping
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 4
    functionsReached:
    - srv_update_status
    - srv_set_stopping
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: void
    signature: void srv_set_stopping(struct server *s, enum srv_op_st_chg_cause cause)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srv_update_status
      Src: /src/haproxy/src/server.c:2301,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:2315,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:2316,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2317,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - s
    - mode
    - cause
    argTypes:
    - struct server*
    - enum srv_admin
    - enum srv_adm_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2287
    functionDepth: 1
    functionLinenumber: 2287
    functionLinenumberEnd: 2319
    functionName: srv_set_admin_flag
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - srv_update_status
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - srv_set_admin_flag
    linkageType: ''
    returnType: void
    signature: void srv_set_admin_flag(struct server *s, enum srv_admin mode, enum
      srv_adm_st_chg_cause cause)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srv_update_status
      Src: /src/haproxy/src/server.c:2343,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:2356,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/src/server.c:2357,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2358,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - struct server*
    - enum srv_admin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2329
    functionDepth: 1
    functionLinenumber: 2329
    functionLinenumberEnd: 2360
    functionName: srv_clr_admin_flag
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 3
    functionsReached:
    - srv_update_status
    - srv_clr_admin_flag
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: void
    signature: void srv_clr_admin_flag(struct server *s, enum srv_admin mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:2373,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:2375,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:2378,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2379,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2365
    functionDepth: 2
    functionLinenumber: 2365
    functionLinenumberEnd: 2381
    functionName: srv_propagate_admin_state
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - srv_set_admin_flag
    linkageType: ''
    returnType: void
    signature: void srv_propagate_admin_state(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: srv_propagate_admin_state
      Src: /src/haproxy/src/server.c:2394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2387
    functionDepth: 3
    functionLinenumber: 2387
    functionLinenumberEnd: 2396
    functionName: srv_compute_all_admin_states
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_propagate_admin_state
    linkageType: ''
    returnType: void
    signature: void srv_compute_all_admin_states(struct proxy *px)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:2512,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:2512,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:2524,1
    - Dst: srv_update_status
      Src: /src/haproxy/src/server.c:2532,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 2
    argNames:
    - sv
    - must_update
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2507
    functionDepth: 1
    functionLinenumber: 2507
    functionLinenumberEnd: 2533
    functionName: server_recalc_eweight
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - srv_update_status
    - ns_to_sec
    linkageType: ''
    returnType: void
    signature: void server_recalc_eweight(struct server *sv, int must_update)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct server*::proxy::lbprm::ops::server_requeue
      Src: /src/haproxy/src/server.c:2547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2539
    functionDepth: 1
    functionLinenumber: 2539
    functionLinenumberEnd: 2549
    functionName: server_requeue
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - struct server*::proxy::lbprm::ops::server_requeue
    linkageType: ''
    returnType: struct task
    signature: struct task *server_requeue(struct task *t, void *context, unsigned
      int state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/server.c:2572,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:2594,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - sv
    - weight_str
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2557
    functionDepth: 2
    functionLinenumber: 2557
    functionLinenumberEnd: 2597
    functionName: server_parse_weight_change_request
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - server_recalc_eweight
    - strtol
    linkageType: ''
    returnType: char
    signature: "char *server_parse_weight_change_request(struct server *sv,\n\t\t\t\t\t
      \      const char *weight_str)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/server.c:2611,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/server.c:2623,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/server.c:2624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - sv
    - maxconn_str
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2602
    functionDepth: 4
    functionLinenumber: 2602
    functionLinenumberEnd: 2627
    functionName: server_parse_maxconn_change_request
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - may_dequeue_tasks
    - process_srv_queue
    - strtol
    linkageType: ''
    returnType: char
    signature: "char *server_parse_maxconn_change_request(struct server *sv,\n                                                const
      char *maxconn_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/server.c:2647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - expr
    - args_px
    - file
    - linenum
    - err
    argTypes:
    - char*
    - struct arg_list*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2635
    functionDepth: 1
    functionLinenumber: 2635
    functionLinenumberEnd: 2648
    functionName: _parse_srv_expr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - sample_parse_expr
    linkageType: ''
    returnType: struct sample_expr
    signature: "struct sample_expr *_parse_srv_expr(char *expr, struct arg_list *args_px,\n
      \                                   const char *file, int linenum, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _parse_srv_expr
      Src: /src/haproxy/src/server.c:2665,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:2670,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/server.c:2672,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/server.c:2677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - str
    - out
    - px
    - err
    argTypes:
    - char*
    - struct sample_expr**
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2657
    functionDepth: 5
    functionLinenumber: 2657
    functionLinenumberEnd: 2681
    functionName: parse_srv_expr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 3
    functionsReached:
    - _parse_srv_expr
    - release_sample_expr
    - sample_src_names
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int parse_srv_expr(char *str, struct sample_expr **out, struct proxy
      *px,\n                          char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: indent_msg
      Src: /src/haproxy/src/server.c:2690,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:2697,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:2699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - file
    - linenum
    - args
    - cur_arg
    - err_code
    - err
    argTypes:
    - char*
    - int
    - char**
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2683
    functionDepth: 4
    functionLinenumber: 2683
    functionLinenumberEnd: 2700
    functionName: display_parser_err
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - indent_msg
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void display_parser_err(const char *file, int linenum, char **args,
      int cur_arg, int err_code, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_range_alloc_range
      Src: /src/haproxy/src/server.c:2708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - srv
    - src
    argTypes:
    - struct server*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2702
    functionDepth: 1
    functionLinenumber: 2702
    functionLinenumberEnd: 2718
    functionName: srv_conn_src_sport_range_cpy
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - port_range_alloc_range
    linkageType: ''
    returnType: void
    signature: void srv_conn_src_sport_range_cpy(struct server *srv, const struct
      server *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: srv_conn_src_sport_range_cpy
      Src: /src/haproxy/src/server.c:2730,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2734,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:2735,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - srv
    - src
    argTypes:
    - struct server*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2723
    functionDepth: 2
    functionLinenumber: 2723
    functionLinenumberEnd: 2744
    functionName: srv_conn_src_cpy
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strlen
    - srv_conn_src_sport_range_cpy
    - strdup
    linkageType: ''
    returnType: void
    signature: void srv_conn_src_cpy(struct server *srv, const struct server *src)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:2754,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2760,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2762,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2764,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2770,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2772,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2783,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2785,1
    - Dst: malloc
      Src: /src/haproxy/src/server.c:2788,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:2790,1
    - Dst: malloc
      Src: /src/haproxy/src/server.c:2797,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:2799,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 2
    argNames:
    - srv
    - src
    argTypes:
    - struct server*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2751
    functionDepth: 0
    functionLinenumber: 2751
    functionLinenumberEnd: 2804
    functionName: srv_ssl_settings_cpy
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - BUG_ON
    - strdup
    linkageType: ''
    returnType: void
    signature: void srv_ssl_settings_cpy(struct server *srv, const struct server *src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: server_parse_exprs
      Src: /src/haproxy/src/server.c:2818,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:2820,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:2823,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/server.c:2824,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:2827,1
    - Dst: is_addr
      Src: /src/haproxy/src/server.c:2830,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - s
    - use_ssl
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2834
      start: 2811
    functionDepth: 1
    functionLinenumber: 2811
    functionLinenumberEnd: 2834
    functionName: srv_set_ssl
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - xprt_get
    - strcmp
    - server_parse_exprs
    - is_addr
    - release_sample_expr
    linkageType: ''
    returnType: int
    signature: int srv_set_ssl(struct server *s, int use_ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/server.c:2851,1
    - Dst: resolv_str_to_dn_label
      Src: /src/haproxy/src/server.c:2853,1
    - Dst: free
      Src: /src/haproxy/src/server.c:2859,1
    - Dst: free
      Src: /src/haproxy/src/server.c:2860,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2861,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2862,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:2870,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:2871,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - srv
    - hostname
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2873
      start: 2843
    functionDepth: 3
    functionLinenumber: 2843
    functionLinenumberEnd: 2873
    functionName: srv_prepare_for_resolution
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - ha_free
    - free
    - strlen
    - resolv_str_to_dn_label
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_prepare_for_resolution(struct server *srv, const char *hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:2917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2918
      start: 2880
    functionDepth: 1
    functionLinenumber: 2880
    functionLinenumberEnd: 2918
    functionName: srv_settings_init
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void srv_settings_init(struct server *srv)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: srv_settings_init
      Src: /src/haproxy/src/server.c:2940,1
    - Dst: srv_conn_src_cpy
      Src: /src/haproxy/src/server.c:2945,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2955,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2959,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2972,1
    - Dst: malloc
      Src: /src/haproxy/src/server.c:2974,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:2976,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2985,1
    - Dst: calloc
      Src: /src/haproxy/src/server.c:2997,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:3001,1
    - Dst: dup_tcpcheck_vars
      Src: /src/haproxy/src/server.c:3002,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3021,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3045,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:3051,1
    - Dst: srv_set_init_state
      Src: /src/haproxy/src/server.c:3060,1
    - Dst: srv_ssl_settings_cpy
      Src: /src/haproxy/src/server.c:3062,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3066,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3069,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3075,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:3094,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/server.c:3096,1
    - Dst: malloc
      Src: /src/haproxy/src/server.c:3097,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:3098,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3101,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:3102,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3103,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/server.c:3107,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:3109,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/server.c:3109,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3111,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3112,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/server.c:3116,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 143
    argCount: 3
    argNames:
    - srv
    - src
    - srv_tmpl
    argTypes:
    - struct server*
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3118
      start: 2935
    functionDepth: 3
    functionLinenumber: 2935
    functionLinenumberEnd: 3118
    functionName: srv_settings_cpy
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - malloc
    - dup_tcpcheck_vars
    - unlikely
    - lf_expr_init
    - parse_logformat_string
    - memcpy
    - list_for_each_entry
    - calloc
    - srv_settings_init
    - free
    - LIST_APPEND
    - srv_conn_src_cpy
    - srv_ssl_settings_cpy
    - srv_set_init_state
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: void
    signature: void srv_settings_cpy(struct server *srv, const struct server *src,
      int srv_tmpl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: srv_alloc
      Src: /src/haproxy/src/server.c:3131,1
    - Dst: srv_take
      Src: /src/haproxy/src/server.c:3135,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/server.c:3139,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:3140,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:3141,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:3142,1
    - Dst: event_hdl_sub_list_init
      Src: /src/haproxy/src/server.c:3143,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:3147,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3159,1
    - Dst: guid_init
      Src: /src/haproxy/src/server.c:3161,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/server.c:3162,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/server.c:3166,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/server.c:3187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3190
      start: 3127
    functionDepth: 2
    functionLinenumber: 3127
    functionLinenumberEnd: 3190
    functionName: new_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 9
    functionsReached:
    - ns_to_sec
    - HA_RWLOCK_INIT
    - srv_alloc
    - xprt_get
    - MT_LIST_APPEND
    - MT_LIST_INIT
    - srv_take
    - guid_init
    - event_hdl_sub_list_init
    - LIST_INIT
    linkageType: ''
    returnType: struct server
    signature: struct server *new_server(struct proxy *proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/server.c:3195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3196
      start: 3193
    functionDepth: 1
    functionLinenumber: 3193
    functionLinenumberEnd: 3196
    functionName: srv_take
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void srv_take(struct server *srv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/server.c:3203,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3204,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3205,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3206,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3207,1
    - Dst: ha_aligned_free
      Src: /src/haproxy/src/server.c:3208,1
    - Dst: ha_aligned_free
      Src: /src/haproxy/src/server.c:3209,1
    - Dst: ha_aligned_free
      Src: /src/haproxy/src/server.c:3210,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3211,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/server.c:3212,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3213,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3214,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3215,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3216,1
    - Dst: counters_be_shared_drop
      Src: /src/haproxy/src/server.c:3217,1
    - Dst: deinit_log_target
      Src: /src/haproxy/src/server.c:3219,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3220,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3222,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3224,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3224,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3225,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3226,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3226,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3227,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/server.c:3229,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/server.c:3230,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/server.c:3231,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/server.c:3232,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:3233,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:3234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3236
      start: 3199
    functionDepth: 3
    functionLinenumber: 3199
    functionLinenumberEnd: 3236
    functionName: srv_free_params
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - ha_aligned_free
    - ha_free
    - xprt_get
    - free
    - counters_be_shared_drop
    - deinit_log_target
    - LIST_ISEMPTY
    - lf_expr_deinit
    - release_sample_expr
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void srv_free_params(struct server *srv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/server.c:3266,1
    - Dst: guid_remove
      Src: /src/haproxy/src/server.c:3277,1
    - Dst: tasklet_kill
      Src: /src/haproxy/src/server.c:3280,1
    - Dst: task_destroy
      Src: /src/haproxy/src/server.c:3281,1
    - Dst: task_destroy
      Src: /src/haproxy/src/server.c:3282,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3284,1
    - Dst: istfree
      Src: /src/haproxy/src/server.c:3288,1
    - Dst: EXTRA_COUNTERS_FREE
      Src: /src/haproxy/src/server.c:3291,1
    - Dst: srv_free_params
      Src: /src/haproxy/src/server.c:3293,1
    - Dst: HA_SPIN_DESTROY
      Src: /src/haproxy/src/server.c:3295,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/server.c:3297,1
    - Dst: event_hdl_sub_list_destroy
      Src: /src/haproxy/src/server.c:3298,1
    - Dst: srv_free
      Src: /src/haproxy/src/server.c:3300,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/server.c:3302,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3306
      start: 3248
    functionDepth: 5
    functionLinenumber: 3248
    functionLinenumberEnd: 3306
    functionName: srv_drop
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 3
    functionsReached:
    - HA_SPIN_DESTROY
    - MT_LIST_DELETE
    - HA_ATOMIC_SUB_FETCH
    - task_destroy
    - EXTRA_COUNTERS_FREE
    - proxy_drop
    - istfree
    - event_hdl_sub_list_destroy
    - guid_remove
    - tasklet_kill
    - free
    - srv_free_params
    - srv_free
    linkageType: ''
    returnType: struct server
    signature: struct server *srv_drop(struct server *srv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:3330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3331
      start: 3314
    functionDepth: 0
    functionLinenumber: 3314
    functionLinenumberEnd: 3331
    functionName: release_server_track
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void release_server_track(struct server *srv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:3346,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:3347,1
    - Dst: strchr
      Src: /src/haproxy/src/server.c:3349,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:3351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - srv
    - arg
    - nb_low
    - nb_high
    argTypes:
    - struct server*
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3362
      start: 3340
    functionDepth: 1
    functionLinenumber: 3340
    functionLinenumberEnd: 3362
    functionName: _srv_parse_tmpl_range
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atoi
    - chunk_printf
    - strchr
    linkageType: ''
    returnType: int
    signature: "int _srv_parse_tmpl_range(struct server *srv, const char *arg,\n                                 int
      *nb_low, int *nb_high)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:3377,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3378,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - srv
    - prefix
    - nb
    argTypes:
    - struct server*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3374
    functionDepth: 3
    functionLinenumber: 3374
    functionLinenumberEnd: 3380
    functionName: _srv_parse_set_id_from_prefix
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - free
    - strdup
    linkageType: ''
    returnType: void
    signature: "void _srv_parse_set_id_from_prefix(struct server *srv,\n                                                 const
      char *prefix, int nb)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3392,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:3394,1
    - Dst: parse_srv_expr
      Src: /src/haproxy/src/server.c:3402,1
    - Dst: parse_srv_expr
      Src: /src/haproxy/src/server.c:3408,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - srv
    - px
    - errmsg
    argTypes:
    - struct server*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3415
      start: 3384
    functionDepth: 6
    functionLinenumber: 3384
    functionLinenumberEnd: 3415
    functionName: server_parse_exprs
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - parse_srv_expr
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int server_parse_exprs(struct server *srv, struct proxy *px, char **errmsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3424,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:3426,1
    - Dst: server_parse_exprs
      Src: /src/haproxy/src/server.c:3431,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:3432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - srv
    - err_code
    - err
    argTypes:
    - struct server*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3422
    functionDepth: 7
    functionLinenumber: 3422
    functionLinenumberEnd: 3438
    functionName: srv_configure_auto_sni
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - server_parse_exprs
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_configure_auto_sni(struct server *srv, int *err_code, char
      **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _srv_parse_set_id_from_prefix
      Src: /src/haproxy/src/server.c:3457,1
    - Dst: cebis_item_insert
      Src: /src/haproxy/src/server.c:3458,1
    - Dst: new_server
      Src: /src/haproxy/src/server.c:3462,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3466,1
    - Dst: srv_settings_cpy
      Src: /src/haproxy/src/server.c:3469,1
    - Dst: srv_prepare_for_resolution
      Src: /src/haproxy/src/server.c:3470,1
    - Dst: server_parse_exprs
      Src: /src/haproxy/src/server.c:3472,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/server.c:3477,1
    - Dst: _srv_parse_set_id_from_prefix
      Src: /src/haproxy/src/server.c:3480,1
    - Dst: cebis_item_insert
      Src: /src/haproxy/src/server.c:3482,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/server.c:3489,1
    - Dst: free_check
      Src: /src/haproxy/src/server.c:3490,1
    - Dst: free_check
      Src: /src/haproxy/src/server.c:3491,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/server.c:3492,1
    - Dst: srv_detach
      Src: /src/haproxy/src/server.c:3493,1
    - Dst: srv_drop
      Src: /src/haproxy/src/server.c:3495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - srv
    - px
    argTypes:
    - struct server*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3497
      start: 3451
    functionDepth: 7
    functionLinenumber: 3451
    functionLinenumberEnd: 3497
    functionName: _srv_parse_tmpl_init
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - srv_detach
    - cebis_item_insert
    - srv_prepare_for_resolution
    - LIST_APPEND
    - srv_drop
    - release_sample_expr
    - server_parse_exprs
    - srv_settings_cpy
    - free_check
    - _srv_parse_set_id_from_prefix
    - new_server
    - strdup
    linkageType: ''
    returnType: int
    signature: int _srv_parse_tmpl_init(struct server *srv, struct proxy *px)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: set_usermsgs_ctx
      Src: /src/haproxy/src/server.c:3516,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3535,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3543,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3550,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/server.c:3550,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:3558,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/server.c:3564,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 2
    argNames:
    - srv
    - postparse
    argTypes:
    - struct server*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3567
      start: 3508
    functionDepth: 1
    functionLinenumber: 3508
    functionLinenumberEnd: 3567
    functionName: _srv_check_proxy_mode
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - reset_usermsgs_ctx
    - ha_alert
    - ha_warning
    - proxy_mode_str
    - set_usermsgs_ctx
    linkageType: ''
    returnType: int
    signature: int _srv_check_proxy_mode(struct server *srv, char postparse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: srv_init_per_thr
      Src: /src/haproxy/src/server.c:3578,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3586
      start: 3574
    functionDepth: 1
    functionLinenumber: 3574
    functionLinenumberEnd: 3586
    functionName: srv_preinit
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ha_alert
    - srv_init_per_thr
    linkageType: ''
    returnType: int
    signature: int srv_preinit(struct server *srv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _srv_check_proxy_mode
      Src: /src/haproxy/src/server.c:3603,1
    - Dst: counters_be_shared_prepare
      Src: /src/haproxy/src/server.c:3608,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3609,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:3610,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:3619,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/server.c:3620,1
    - Dst: init_srv_requeue
      Src: /src/haproxy/src/server.c:3623,1
    - Dst: init_srv_slowstart
      Src: /src/haproxy/src/server.c:3628,1
    - Dst: ha_aligned_zalloc
      Src: /src/haproxy/src/server.c:3635,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/server.c:3635,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3637,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3646
      start: 3598
    functionDepth: 2
    functionLinenumber: 3598
    functionLinenumberEnd: 3646
    functionName: srv_postinit
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - counters_be_shared_prepare
    - _srv_check_proxy_mode
    - server_recalc_eweight
    - ha_free
    - init_srv_slowstart
    - ha_aligned_zalloc
    - ha_alert
    - srv_lb_commit_status
    - array_size_or_fail
    - init_srv_requeue
    linkageType: ''
    returnType: int
    signature: int srv_postinit(struct server *srv)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3679,1
    - Dst: invalid_prefix_char
      Src: /src/haproxy/src/server.c:3685,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3690,1
    - Dst: invalid_char
      Src: /src/haproxy/src/server.c:3696,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3700,1
    - Dst: _srv_parse_tmpl_range
      Src: /src/haproxy/src/server.c:3710,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3711,1
    - Dst: new_server
      Src: /src/haproxy/src/server.c:3723,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3725,1
    - Dst: register_parsing_obj
      Src: /src/haproxy/src/server.c:3729,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3744,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3746,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/server.c:3758,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3765,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:3767,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:3773,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3779,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/server.c:3786,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3787,1
    - Dst: quic_transport_params_init
      Src: /src/haproxy/src/server.c:3788,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:3791,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3792,1
    - Dst: find_srvrq_by_name
      Src: /src/haproxy/src/server.c:3816,1
    - Dst: new_resolv_srvrq
      Src: /src/haproxy/src/server.c:3817,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/server.c:3822,1
    - Dst: srv_prepare_for_resolution
      Src: /src/haproxy/src/server.c:3824,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3825,1
    - Dst: srv_set_addr_desc
      Src: /src/haproxy/src/server.c:3842,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/server.c:3845,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3846,1
    - Dst: srv_settings_cpy
      Src: /src/haproxy/src/server.c:3856,1
    - Dst: srv_settings_init
      Src: /src/haproxy/src/server.c:3858,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/server.c:3859,1
    - Dst: srv_alloc
      Src: /src/haproxy/src/server.c:3868,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3870,1
    - Dst: srv_settings_init
      Src: /src/haproxy/src/server.c:3875,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3882,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3886,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 150
    argCount: 5
    argNames:
    - srv
    - args
    - cur_arg
    - curproxy
    - parse_flags
    argTypes:
    - struct server**
    - char**
    - int*
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3888
      start: 3660
    functionDepth: 4
    functionLinenumber: 3660
    functionLinenumberEnd: 3888
    functionName: _srv_parse_init
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _srv_parse_tmpl_range
    - srv_alloc
    - srv_is_quic
    - quic_transport_params_init
    - LIST_APPEND
    - free
    - new_server
    - invalid_char
    - ha_free
    - mark_tainted
    - str2sa_range
    - find_srvrq_by_name
    - srv_prepare_for_resolution
    - register_parsing_obj
    - invalid_prefix_char
    - new_resolv_srvrq
    - HA_SPIN_INIT
    - srv_set_addr_desc
    - srv_settings_init
    - xprt_get
    - ha_alert
    - srv_settings_cpy
    - protocol_lookup
    - strdup
    linkageType: ''
    returnType: int
    signature: "int _srv_parse_init(struct server **srv, char **args, int *cur_arg,\n
      \                          struct proxy *curproxy,\n                           int
      parse_flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: srv_find_kw
      Src: /src/haproxy/src/server.c:3909,1
    - Dst: srv_find_best_kw
      Src: /src/haproxy/src/server.c:3911,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3913,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3918,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3926,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3933,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3939,1
    - Dst: struct srv_kw*::parse
      Src: /src/haproxy/src/server.c:3945,1
    - Dst: display_parser_err
      Src: /src/haproxy/src/server.c:3947,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3948,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 5
    argNames:
    - srv
    - args
    - cur_arg
    - curproxy
    - parse_flags
    argTypes:
    - struct server*
    - char**
    - int*
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3956
      start: 3900
    functionDepth: 5
    functionLinenumber: 3900
    functionLinenumberEnd: 3956
    functionName: _srv_parse_kw
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - display_parser_err
    - struct srv_kw*::parse
    - srv_find_best_kw
    - free
    - srv_find_kw
    - ha_alert
    linkageType: ''
    returnType: int
    signature: "int _srv_parse_kw(struct server *srv, char **args, int *cur_arg,\n
      \                        struct proxy *curproxy,\n                         int
      parse_flags)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3974,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3978,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3983,1
    - Dst: server_parse_exprs
      Src: /src/haproxy/src/server.c:3988,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3990,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3991,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/server.c:4006,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:4007,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/server.c:4007,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:4010,1
    - Dst: free
      Src: /src/haproxy/src/server.c:4011,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:4017,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:4021,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:4025,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:4027,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:4030,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:4043,1
    - Dst: strstr
      Src: /src/haproxy/src/server.c:4049,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:4051,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/server.c:4056,1
    - Dst: _srv_check_proxy_mode
      Src: /src/haproxy/src/server.c:4066,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/server.c:4069,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 5
    argNames:
    - args
    - cur_arg
    - srv
    - px
    - parse_flags
    argTypes:
    - char**
    - int
    - struct server*
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4072
      start: 3965
    functionDepth: 7
    functionLinenumber: 3965
    functionLinenumberEnd: 4072
    functionName: _srv_parse_finalize
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - unlikely
    - parse_logformat_string
    - _srv_check_proxy_mode
    - list_for_each_entry
    - ha_warning
    - srv_is_quic
    - free
    - mark_tainted
    - strlen
    - ha_alert
    - server_parse_exprs
    - srv_lb_commit_status
    - strstr
    - strdup
    linkageType: ''
    returnType: int
    signature: "int _srv_parse_finalize(char **args, int cur_arg,\n                               struct
      server *srv, struct proxy *px,\n                               int parse_flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: set_usermsgs_ctx
      Src: /src/haproxy/src/server.c:4083,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:4086,1
    - Dst: failifnotcap
      Src: /src/haproxy/src/server.c:4090,1
    - Dst: _srv_parse_init
      Src: /src/haproxy/src/server.c:4101,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:4108,1
    - Dst: _srv_parse_kw
      Src: /src/haproxy/src/server.c:4112,1
    - Dst: _srv_parse_finalize
      Src: /src/haproxy/src/server.c:4119,1
    - Dst: _srv_parse_tmpl_init
      Src: /src/haproxy/src/server.c:4125,1
    - Dst: cebis_item_insert
      Src: /src/haproxy/src/server.c:4128,1
    - Dst: server_index_id
      Src: /src/haproxy/src/server.c:4138,1
    - Dst: HA_DIAG_WARNING_COND
      Src: /src/haproxy/src/server.c:4140,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/server.c:4143,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/server.c:4147,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 6
    argNames:
    - file
    - linenum
    - args
    - curproxy
    - defproxy
    - parse_flags
    argTypes:
    - char*
    - int
    - char**
    - struct proxy*
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4149
      start: 4074
    functionDepth: 8
    functionLinenumber: 4074
    functionLinenumberEnd: 4149
    functionName: parse_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - reset_usermsgs_ctx
    - failifnotcap
    - cebis_item_insert
    - _srv_parse_kw
    - _srv_parse_finalize
    - _srv_parse_tmpl_init
    - server_index_id
    - HA_DIAG_WARNING_COND
    - ha_alert
    - _srv_parse_init
    - set_usermsgs_ctx
    - strdup
    linkageType: ''
    returnType: int
    signature: "int parse_server(const char *file, int linenum, char **args,\n                 struct
      proxy *curproxy, const struct proxy *defproxy,\n                 int parse_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_find_by_id
      Src: /src/haproxy/src/server.c:4164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - bk
    - id
    - rid
    argTypes:
    - struct proxy*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4168
      start: 4160
    functionDepth: 1
    functionLinenumber: 4160
    functionLinenumberEnd: 4168
    functionName: server_find_by_id_unique
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - server_find_by_id
    linkageType: ''
    returnType: struct server
    signature: struct server *server_find_by_id_unique(struct proxy *bk, int id, uint32_t
      rid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cebis_item_lookup
      Src: /src/haproxy/src/server.c:4179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - px
    - name
    argTypes:
    - struct proxy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4180
      start: 4174
    functionDepth: 1
    functionLinenumber: 4174
    functionLinenumberEnd: 4180
    functionName: server_find_by_name
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - cebis_item_lookup
    linkageType: ''
    returnType: struct server
    signature: struct server *server_find_by_name(struct proxy *px, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/server.c:4191,1
    - Dst: cebuis_item_lookup
      Src: /src/haproxy/src/server.c:4192,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/server.c:4193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - px
    - addr
    argTypes:
    - struct proxy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4195
      start: 4187
    functionDepth: 1
    functionLinenumber: 4187
    functionLinenumberEnd: 4195
    functionName: server_find_by_addr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDUNLOCK
    - cebuis_item_lookup
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct server
    signature: struct server *server_find_by_addr(struct proxy *px, const char *addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: server_find_by_id
      Src: /src/haproxy/src/server.c:4214,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:4214,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/server.c:4217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - bk
    - name
    argTypes:
    - struct proxy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4221
      start: 4201
    functionDepth: 2
    functionLinenumber: 4201
    functionLinenumberEnd: 4221
    functionName: server_find
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 3
    functionsReached:
    - server_find_by_id
    - atoi
    - server_find_by_name
    linkageType: ''
    returnType: struct server
    signature: struct server *server_find(struct proxy *bk, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_find
      Src: /src/haproxy/src/server.c:4244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - bk
    - name
    - rid
    argTypes:
    - struct proxy*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4248
      start: 4240
    functionDepth: 3
    functionLinenumber: 4240
    functionLinenumberEnd: 4248
    functionName: server_find_unique
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_find
    linkageType: ''
    returnType: struct server
    signature: struct server *server_find_unique(struct proxy *bk, const char *name,
      uint32_t rid)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: server_find
      Src: /src/haproxy/src/server.c:4264,1
    - Dst: server_find_by_id
      Src: /src/haproxy/src/server.c:4275,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 4
    argNames:
    - bk
    - name
    - id
    - diff
    argTypes:
    - struct proxy*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4309
      start: 4250
    functionDepth: 3
    functionLinenumber: 4250
    functionLinenumberEnd: 4309
    functionName: server_find_best_match
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_find_by_id
    - server_find
    linkageType: ''
    returnType: struct server
    signature: struct server *server_find_best_match(struct proxy *bk, char *name,
      int id, int *diff)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:4323,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:4327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - s
    - inetaddr
    argTypes:
    - struct server*
    - struct server_inetaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4338
      start: 4316
    functionDepth: 0
    functionLinenumber: 4316
    functionLinenumberEnd: 4338
    functionName: server_get_inetaddr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - memset
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void server_get_inetaddr(struct server *s, struct server_inetaddr *inetaddr)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - by
    argTypes:
    - enum server_inetaddr_updater_by
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4342
    functionDepth: 0
    functionLinenumber: 4342
    functionLinenumberEnd: 4360
    functionName: server_inetaddr_updater_by_to_str
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *server_inetaddr_updater_by_to_str(enum server_inetaddr_updater_by
      by)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:4382,1
    - Dst: find_nameserver_by_resolvers_and_id
      Src: /src/haproxy/src/server.c:4383,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:4384,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4385,1
    - Dst: server_inetaddr_updater_by_to_str
      Src: /src/haproxy/src/server.c:4392,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - out
    - s
    - updater
    argTypes:
    - struct buffer*
    - struct server*
    - struct server_inetaddr_updater
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4398
      start: 4364
    functionDepth: 1
    functionLinenumber: 4364
    functionLinenumberEnd: 4398
    functionName: _srv_append_inetaddr_updater_info
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - find_nameserver_by_resolvers_and_id
    - server_inetaddr_updater_by_to_str
    - chunk_appendf
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: "void _srv_append_inetaddr_updater_info(struct buffer *out,\n                                              struct
      server *s,\n                                              struct server_inetaddr_updater
      updater)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/server.c:4403,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/server.c:4407,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/server.c:4410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - family
    - addr
    - addr_str
    - len
    argTypes:
    - int
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4413
      start: 4401
    functionDepth: 1
    functionLinenumber: 4401
    functionLinenumberEnd: 4413
    functionName: _addr_to_str
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strlcpy2
    - inet_ntop
    - memset
    linkageType: ''
    returnType: void
    signature: void _addr_to_str(int family, const void *addr, char *addr_str, size_t
      len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/haproxy/src/server.c:4425,1
    - Dst: memcmp
      Src: /src/haproxy/src/server.c:4430,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - inetaddr
    - addr
    argTypes:
    - struct server_inetaddr*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4435
      start: 4415
    functionDepth: 0
    functionLinenumber: 4415
    functionLinenumberEnd: 4435
    functionName: _inetaddr_addr_cmp
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int _inetaddr_addr_cmp(const struct server_inetaddr *inetaddr, const
      struct sockaddr_storage *addr)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:4478,1
    - Dst: _inetaddr_addr_cmp
      Src: /src/haproxy/src/server.c:4484,1
    - Dst: _addr_to_str
      Src: /src/haproxy/src/server.c:4498,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:4499,1
    - Dst: _addr_to_str
      Src: /src/haproxy/src/server.c:4500,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4501,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4524,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4525,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4550,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4552,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4554,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4556,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4558,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4559,1
    - Dst: _srv_event_hdl_prepare
      Src: /src/haproxy/src/server.c:4564,1
    - Dst: _srv_event_hdl_prepare_inetaddr
      Src: /src/haproxy/src/server.c:4565,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:4570,1
    - Dst: _srv_append_inetaddr_updater_info
      Src: /src/haproxy/src/server.c:4576,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 64
    argCount: 4
    argNames:
    - s
    - inetaddr
    - updater
    - msg
    argTypes:
    - struct server*
    - struct server_inetaddr*
    - struct server_inetaddr_updater
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4578
      start: 4463
    functionDepth: 2
    functionLinenumber: 4463
    functionLinenumberEnd: 4578
    functionName: server_set_inetaddr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _srv_append_inetaddr_updater_info
    - BUG_ON
    - _srv_event_hdl_publish
    - chunk_printf
    - chunk_appendf
    - _addr_to_str
    - _srv_event_hdl_prepare
    - _srv_event_hdl_prepare_inetaddr
    - _inetaddr_addr_cmp
    linkageType: ''
    returnType: int
    signature: "int server_set_inetaddr(struct server *s,\n                        const
      struct server_inetaddr *inetaddr,\n                        struct server_inetaddr_updater
      updater, struct buffer *msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/server.c:4590,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:4593,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/server.c:4595,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:4598,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:4601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - s
    - inetaddr
    - updater
    argTypes:
    - struct server*
    - struct server_inetaddr*
    - struct server_inetaddr_updater
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4604
      start: 4586
    functionDepth: 3
    functionLinenumber: 4586
    functionLinenumberEnd: 4604
    functionName: server_set_inetaddr_warn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_set_inetaddr
    - get_trash_chunk
    - ha_warning
    - send_log
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: "int server_set_inetaddr_warn(struct server *s,\n                             const
      struct server_inetaddr *inetaddr,\n                             struct server_inetaddr_updater
      updater)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/server.c:4621,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:4622,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:4629,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:4632,1
    - Dst: server_set_inetaddr_warn
      Src: /src/haproxy/src/server.c:4636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - s
    - ip
    - ip_sin_family
    - updater
    argTypes:
    - struct server*
    - void*
    - int
    - struct server_inetaddr_updater
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4639
      start: 4617
    functionDepth: 4
    functionLinenumber: 4617
    functionLinenumberEnd: 4639
    functionName: srv_update_addr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_set_inetaddr_warn
    - memcpy
    - server_get_inetaddr
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int srv_update_addr(struct server *s, void *ip, int ip_sin_family,
      struct server_inetaddr_updater updater)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/server.c:4652,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:4653,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/server.c:4656,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:4660,1
    - Dst: str2ip
      Src: /src/haproxy/src/server.c:4661,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4662,1
    - Dst: strl2irc
      Src: /src/haproxy/src/server.c:4667,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:4667,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4668,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4672,1
    - Dst: set_srv_agent_addr
      Src: /src/haproxy/src/server.c:4681,1
    - Dst: set_srv_agent_port
      Src: /src/haproxy/src/server.c:4683,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - s
    - addr
    - port
    argTypes:
    - struct server*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4690
      start: 4646
    functionDepth: 2
    functionLinenumber: 4646
    functionLinenumberEnd: 4690
    functionName: srv_update_agent_addr_port
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - memset
    - chunk_strcat
    - chunk_appendf
    - get_trash_chunk
    - set_srv_agent_port
    - strl2irc
    - set_srv_agent_addr
    - chunk_reset
    - str2ip
    - strlen
    linkageType: ''
    returnType: char
    signature: char *srv_update_agent_addr_port(struct server *s, const char *addr,
      const char *port)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/server.c:4705,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:4706,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/server.c:4709,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/server.c:4713,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4715,1
    - Dst: strl2irc
      Src: /src/haproxy/src/server.c:4720,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:4720,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4721,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4725,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4730,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:4748,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 3
    argNames:
    - s
    - addr
    - port
    argTypes:
    - struct server*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4751
      start: 4697
    functionDepth: 4
    functionLinenumber: 4697
    functionLinenumberEnd: 4751
    functionName: srv_update_check_addr_port
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - chunk_strcat
    - xprt_get
    - chunk_appendf
    - get_trash_chunk
    - strl2irc
    - str2sa_range
    - chunk_reset
    - strlen
    linkageType: ''
    returnType: char
    signature: char *srv_update_check_addr_port(struct server *s, const char *addr,
      const char *port)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/server.c:4774,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:4775,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:4781,1
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/server.c:4785,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:4788,1
    - Dst: str2ip2
      Src: /src/haproxy/src/server.c:4789,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:4790,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:4796,1
    - Dst: strtol
      Src: /src/haproxy/src/server.c:4819,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4821,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/server.c:4845,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:4847,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 4
    argNames:
    - s
    - addr
    - port
    - updater
    argTypes:
    - struct server*
    - char*
    - char*
    - struct server_inetaddr_updater
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4851
      start: 4766
    functionDepth: 3
    functionLinenumber: 4766
    functionLinenumberEnd: 4851
    functionName: srv_update_addr_port
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - server_set_inetaddr
    - memset
    - chunk_printf
    - chunk_appendf
    - server_get_inetaddr
    - get_trash_chunk
    - strtol
    - chunk_reset
    - str2ip2
    linkageType: ''
    returnType: char
    signature: "char *srv_update_addr_port(struct server *s, const char *addr, const
      char *port,\n                                 struct server_inetaddr_updater
      updater)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:4869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4871
      start: 4861
    functionDepth: 2
    functionLinenumber: 4861
    functionLinenumberEnd: 4871
    functionName: srvrq_set_srv_down
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_set_admin_flag
    linkageType: ''
    returnType: int
    signature: int srvrq_set_srv_down(struct server *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: srvrq_set_srv_down
      Src: /src/haproxy/src/server.c:4893,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:4905,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4910,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:4911,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:4914,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4919,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:4920,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:4923,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4928,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:4929,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:4932,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4937,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:4938,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:4941,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4947
      start: 4881
    functionDepth: 3
    functionLinenumber: 4881
    functionLinenumberEnd: 4947
    functionName: snr_set_srv_down
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - tick_is_expired
    - srvrq_set_srv_down
    - srv_set_admin_flag
    - tick_add
    linkageType: ''
    returnType: int
    signature: int snr_set_srv_down(struct server *s)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/server.c:4973,1
    - Dst: resolv_get_ip_from_response
      Src: /src/haproxy/src/server.c:5014,1
    - Dst: srv_update_addr
      Src: /src/haproxy/src/server.c:5039,1
    - Dst: SERVER_INETADDR_UPDATER_DNS_RESOLVER
      Src: /src/haproxy/src/server.c:5040,1
    - Dst: srv_update_addr
      Src: /src/haproxy/src/server.c:5043,1
    - Dst: snr_set_srv_down
      Src: /src/haproxy/src/server.c:5046,1
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/server.c:5050,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:5052,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/server.c:5053,1
    - Dst: snr_set_srv_down
      Src: /src/haproxy/src/server.c:5062,1
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/server.c:5066,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:5068,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/server.c:5069,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 2
    argNames:
    - requester
    - counters
    argTypes:
    - struct resolv_requester*
    - struct dns_counters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5072
      start: 4964
    functionDepth: 5
    functionLinenumber: 4964
    functionLinenumberEnd: 5072
    functionName: snr_resolution_cb
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_set_inetaddr
    - memset
    - srv_update_addr
    - snr_set_srv_down
    - server_get_inetaddr
    - resolv_get_ip_from_response
    - SERVER_INETADDR_UPDATER_DNS_RESOLVER
    - objt_server
    linkageType: ''
    returnType: int
    signature: int snr_resolution_cb(struct resolv_requester *requester, struct dns_counters
      *counters)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: objt_resolv_srvrq
      Src: /src/haproxy/src/server.c:5090,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:5101,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:5102,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:5108,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:5109,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:5115,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:5116,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:5122,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:5123,1
    - Dst: resolv_detach_from_resolution_answer_items
      Src: /src/haproxy/src/server.c:5128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - requester
    - error_code
    argTypes:
    - struct resolv_requester*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5131
      start: 5082
    functionDepth: 1
    functionLinenumber: 5082
    functionLinenumberEnd: 5131
    functionName: srvrq_resolution_error_cb
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - resolv_detach_from_resolution_answer_items
    - objt_resolv_srvrq
    - tick_is_expired
    - tick_add
    linkageType: ''
    returnType: int
    signature: int srvrq_resolution_error_cb(struct resolv_requester *requester, int
      error_code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/server.c:5145,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5149,1
    - Dst: snr_set_srv_down
      Src: /src/haproxy/src/server.c:5150,1
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/server.c:5154,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:5156,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/server.c:5157,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5158,1
    - Dst: resolv_detach_from_resolution_answer_items
      Src: /src/haproxy/src/server.c:5159,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - requester
    - error_code
    argTypes:
    - struct resolv_requester*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5165
      start: 5141
    functionDepth: 4
    functionLinenumber: 5141
    functionLinenumberEnd: 5165
    functionName: snr_resolution_error_cb
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - resolv_detach_from_resolution_answer_items
    - server_set_inetaddr
    - memset
    - snr_set_srv_down
    - HA_SPIN_UNLOCK
    - server_get_inetaddr
    - HA_SPIN_LOCK
    - objt_server
    linkageType: ''
    returnType: int
    signature: int snr_resolution_error_cb(struct resolv_requester *requester, int
      error_code)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5196,1
    - Dst: memcmp
      Src: /src/haproxy/src/server.c:5199,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5201,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5207,1
    - Dst: memcmp
      Src: /src/haproxy/src/server.c:5216,1
    - Dst: memcmp
      Src: /src/haproxy/src/server.c:5218,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5219,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5222,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 23
    argCount: 3
    argNames:
    - srv
    - ip
    - ip_family
    argTypes:
    - struct server*
    - void*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5227
      start: 5175
    functionDepth: 1
    functionLinenumber: 5175
    functionLinenumberEnd: 5227
    functionName: snr_check_ip_callback
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memcmp
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: struct server
    signature: struct server *snr_check_ip_callback(struct server *srv, void *ip,
      unsigned char *ip_family)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/server.c:5238,1
    - Dst: str2ip2
      Src: /src/haproxy/src/server.c:5242,1
    - Dst: _srv_set_inetaddr
      Src: /src/haproxy/src/server.c:5247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - srv
    - err_code
    argTypes:
    - struct server*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5249
      start: 5234
    functionDepth: 4
    functionLinenumber: 5234
    functionLinenumberEnd: 5249
    functionName: srv_set_addr_via_libc
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _srv_set_inetaddr
    - memset
    - str2ip2
    linkageType: ''
    returnType: int
    signature: int srv_set_addr_via_libc(struct server *srv, int *err_code)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5269,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:5276,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5277,1
    - Dst: resolv_str_to_dn_label
      Src: /src/haproxy/src/server.c:5279,1
    - Dst: memcmp
      Src: /src/haproxy/src/server.c:5288,1
    - Dst: resolv_unlink_resolution
      Src: /src/haproxy/src/server.c:5291,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:5293,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:5294,1
    - Dst: free
      Src: /src/haproxy/src/server.c:5298,1
    - Dst: free
      Src: /src/haproxy/src/server.c:5299,1
    - Dst: resolv_link_resolution
      Src: /src/haproxy/src/server.c:5309,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5314,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5319,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:5320,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:5321,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 3
    argNames:
    - srv
    - hostname
    - resolv_locked
    argTypes:
    - struct server*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5323
      start: 5256
    functionDepth: 3
    functionLinenumber: 5256
    functionLinenumberEnd: 5323
    functionName: srv_set_fqdn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - memcmp
    - ha_free
    - resolv_link_resolution
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - free
    - resolv_str_to_dn_label
    - chunk_reset
    - strdup
    - resolv_unlink_resolution
    - strlen
    linkageType: ''
    returnType: int
    signature: int srv_set_fqdn(struct server *srv, const char *hostname, int resolv_locked)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/server.c:5334,1
    - Dst: str2ip2
      Src: /src/haproxy/src/server.c:5338,1
    - Dst: _srv_set_inetaddr
      Src: /src/haproxy/src/server.c:5343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - srv
    - err_code
    argTypes:
    - struct server*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5345
      start: 5330
    functionDepth: 4
    functionLinenumber: 5330
    functionLinenumberEnd: 5345
    functionName: srv_apply_lastaddr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _srv_set_inetaddr
    - memset
    - str2ip2
    linkageType: ''
    returnType: int
    signature: int srv_apply_lastaddr(struct server *srv, int *err_code)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:5362,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:5363,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:5366,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:5375,1
    - Dst: srv_get_next_initaddr
      Src: /src/haproxy/src/server.c:5379,1
    - Dst: srv_apply_lastaddr
      Src: /src/haproxy/src/server.c:5383,1
    - Dst: srv_set_addr_via_libc
      Src: /src/haproxy/src/server.c:5391,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:5397,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server.c:5399,1
    - Dst: _srv_set_inetaddr
      Src: /src/haproxy/src/server.c:5405,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server.c:5407,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:5418,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:5420,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/server.c:5425,1
    - Dst: srv_set_addr_desc
      Src: /src/haproxy/src/server.c:5426,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5428
      start: 5348
    functionDepth: 6
    functionLinenumber: 5348
    functionLinenumberEnd: 5428
    functionName: srv_iterate_initaddr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_set_dyncookie
    - srv_append_initaddr
    - ha_notice
    - srv_set_addr_via_libc
    - srv_set_addr_desc
    - srv_get_next_initaddr
    - _srv_set_inetaddr
    - srv_apply_lastaddr
    - ha_alert
    - srv_set_admin_flag
    linkageType: ''
    returnType: int
    signature: int srv_iterate_initaddr(struct server *srv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_usermsgs_ctx
      Src: /src/haproxy/src/server.c:5452,1
    - Dst: srv_iterate_initaddr
      Src: /src/haproxy/src/server.c:5454,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/server.c:5455,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5463
      start: 5438
    functionDepth: 7
    functionLinenumber: 5438
    functionLinenumberEnd: 5463
    functionName: srv_init_addr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - reset_usermsgs_ctx
    - set_usermsgs_ctx
    - srv_iterate_initaddr
    linkageType: ''
    returnType: int
    signature: int srv_init_addr(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/server.c:5473,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:5474,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5476,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5477,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5481,1
    - Dst: invalid_domainchar
      Src: /src/haproxy/src/server.c:5481,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5482,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5486,1
    - Dst: srv_set_fqdn
      Src: /src/haproxy/src/server.c:5489,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:5490,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5491,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5501,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5502,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - server
    - fqdn
    - updater
    - resolv_locked
    argTypes:
    - struct server*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5505
      start: 5468
    functionDepth: 4
    functionLinenumber: 5468
    functionLinenumberEnd: 5505
    functionName: srv_update_fqdn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strcmp
    - chunk_appendf
    - get_trash_chunk
    - srv_set_fqdn
    - invalid_domainchar
    - chunk_reset
    - strlen
    linkageType: ''
    returnType: char
    signature: char *srv_update_fqdn(struct server *server, const char *fqdn, const
      char *updater, int resolv_locked)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/server.c:5518,1
    - Dst: istsplit
      Src: /src/haproxy/src/server.c:5520,1
    - Dst: istlen
      Src: /src/haproxy/src/server.c:5521,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5522,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/server.c:5526,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:5526,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5527,1
    - Dst: server_find
      Src: /src/haproxy/src/server.c:5530,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:5530,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5531,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - appctx
    - arg
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5541
      start: 5514
    functionDepth: 3
    functionLinenumber: 5514
    functionLinenumberEnd: 5541
    functionName: cli_find_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ist
    - ist0
    - istsplit
    - server_find
    - proxy_be_by_name
    - istlen
    - cli_err
    linkageType: ''
    returnType: struct server
    signature: struct server *cli_find_server(struct appctx *appctx, char *arg)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:5550,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5553,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5557,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5558,1
    - Dst: server_parse_weight_change_request
      Src: /src/haproxy/src/server.c:5559,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5560,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5562,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5564,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5565,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5566,1
    - Dst: srv_adm_set_ready
      Src: /src/haproxy/src/server.c:5567,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5568,1
    - Dst: srv_adm_set_drain
      Src: /src/haproxy/src/server.c:5569,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5570,1
    - Dst: srv_adm_set_maint
      Src: /src/haproxy/src/server.c:5571,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5573,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5574,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5576,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5577,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5579,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5580,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/server.c:5582,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5584,1
    - Dst: srv_set_stopping
      Src: /src/haproxy/src/server.c:5586,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5588,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/server.c:5590,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5593,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5594,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5596,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5597,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5599,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5600,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/server.c:5602,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5604,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/server.c:5606,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5609,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5610,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5612,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5615,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5616,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5621,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5623,1
    - Dst: srv_update_agent_addr_port
      Src: /src/haproxy/src/server.c:5624,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5625,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5627,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5629,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5631,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5632,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5637,1
    - Dst: srv_update_agent_addr_port
      Src: /src/haproxy/src/server.c:5638,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5639,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5641,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5643,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5644,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5646,1
    - Dst: set_srv_agent_send
      Src: /src/haproxy/src/server.c:5648,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5649,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5651,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5653,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5656,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5657,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5662,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5664,1
    - Dst: srv_update_check_addr_port
      Src: /src/haproxy/src/server.c:5665,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5666,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5668,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5670,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5672,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5673,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5678,1
    - Dst: srv_update_check_addr_port
      Src: /src/haproxy/src/server.c:5679,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5680,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5682,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5684,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5687,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5688,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5694,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5697,1
    - Dst: srv_update_addr_port
      Src: /src/haproxy/src/server.c:5698,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5700,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5701,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5703,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5705,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5709,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5713,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5716,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5717,1
    - Dst: srv_update_fqdn
      Src: /src/haproxy/src/server.c:5722,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5723,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5724,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5726,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5728,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5733,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5738,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5743,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5744,1
    - Dst: srv_set_ssl
      Src: /src/haproxy/src/server.c:5745,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5746,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/server.c:5747,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:5747,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5750,1
    - Dst: srv_set_ssl
      Src: /src/haproxy/src/server.c:5751,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5752,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/server.c:5753,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:5753,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5757,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5758,1
    - Dst: srv_cleanup_connections
      Src: /src/haproxy/src/server.c:5761,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5762,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5763,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5765,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5768,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 210
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5776
      start: 5545
    functionDepth: 5
    functionLinenumber: 5545
    functionLinenumberEnd: 5776
    functionName: cli_parse_set_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - srv_cleanup_connections
    - HA_SPIN_LOCK
    - srv_set_stopped
    - srv_adm_set_maint
    - srv_set_stopping
    - srv_update_fqdn
    - cli_dynerr
    - strcmp
    - srv_update_addr_port
    - cli_has_level
    - set_srv_agent_send
    - cli_err
    - srv_set_running
    - server_parse_weight_change_request
    - srv_adm_set_drain
    - cli_find_server
    - cli_msg
    - srv_set_ssl
    - srv_update_check_addr_port
    - srv_update_agent_addr_port
    - HA_SPIN_UNLOCK
    - srv_adm_set_ready
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_server(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/server.c:5782,1
    - Dst: istsplit
      Src: /src/haproxy/src/server.c:5784,1
    - Dst: istlen
      Src: /src/haproxy/src/server.c:5785,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5786,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/server.c:5788,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:5788,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5789,1
    - Dst: server_find
      Src: /src/haproxy/src/server.c:5790,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:5790,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5791,1
    - Dst: snprintf
      Src: /src/haproxy/src/server.c:5794,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/server.c:5796,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5799
      start: 5778
    functionDepth: 3
    functionLinenumber: 5778
    functionLinenumberEnd: 5799
    functionName: cli_parse_get_weight
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ist
    - ist0
    - istsplit
    - server_find
    - applet_putstr
    - proxy_be_by_name
    - istlen
    - snprintf
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_get_weight(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:5810,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5813,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5817,1
    - Dst: server_parse_weight_change_request
      Src: /src/haproxy/src/server.c:5819,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5821,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5826
      start: 5805
    functionDepth: 4
    functionLinenumber: 5805
    functionLinenumberEnd: 5826
    functionName: cli_parse_set_weight
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - server_parse_weight_change_request
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_weight(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:5837,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5840,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5844,1
    - Dst: server_parse_maxconn_change_request
      Src: /src/haproxy/src/server.c:5846,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5848,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5850,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5853
      start: 5832
    functionDepth: 5
    functionLinenumber: 5832
    functionLinenumberEnd: 5853
    functionName: cli_parse_set_maxconn_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - server_parse_maxconn_change_request
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_maxconn_server(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:5863,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5866,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5870,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5874
      start: 5859
    functionDepth: 4
    functionLinenumber: 5859
    functionLinenumberEnd: 5874
    functionName: cli_parse_disable_agent
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - cli_has_level
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int cli_parse_disable_agent(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:5884,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5887,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5891,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5895
      start: 5880
    functionDepth: 4
    functionLinenumber: 5880
    functionLinenumberEnd: 5895
    functionName: cli_parse_disable_health
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - cli_has_level
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int cli_parse_disable_health(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:5905,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5908,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5912,1
    - Dst: srv_adm_set_maint
      Src: /src/haproxy/src/server.c:5913,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5914,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5916
      start: 5901
    functionDepth: 4
    functionLinenumber: 5901
    functionLinenumberEnd: 5916
    functionName: cli_parse_disable_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - srv_adm_set_maint
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - cli_has_level
    linkageType: ''
    returnType: int
    signature: int cli_parse_disable_server(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:5926,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5929,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5934,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5936,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5938,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5940
      start: 5922
    functionDepth: 4
    functionLinenumber: 5922
    functionLinenumberEnd: 5940
    functionName: cli_parse_enable_agent
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_enable_agent(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:5950,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5953,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5958,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5960,1
    - Dst: srv_set_init_state
      Src: /src/haproxy/src/server.c:5962,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5965
      start: 5946
    functionDepth: 4
    functionLinenumber: 5946
    functionLinenumberEnd: 5965
    functionName: cli_parse_enable_health
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - cli_has_level
    - srv_set_init_state
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_enable_health(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:5975,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5978,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5982,1
    - Dst: srv_adm_set_ready
      Src: /src/haproxy/src/server.c:5983,1
    - Dst: srv_check_for_dup_dyncookie
      Src: /src/haproxy/src/server.c:5987,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5988,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5990
      start: 5971
    functionDepth: 4
    functionLinenumber: 5971
    functionLinenumberEnd: 5990
    functionName: cli_parse_enable_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - srv_check_for_dup_dyncookie
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - srv_adm_set_ready
    - cli_has_level
    linkageType: ''
    returnType: int
    signature: int cli_parse_enable_server(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct proxy*::lbprm::ops::server_init
      Src: /src/haproxy/src/server.c:6007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - sv
    - be
    argTypes:
    - struct server*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6011
      start: 6000
    functionDepth: 0
    functionLinenumber: 6000
    functionLinenumberEnd: 6011
    functionName: srv_alloc_lb
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - struct proxy*::lbprm::ops::server_init
    linkageType: ''
    returnType: int
    signature: int srv_alloc_lb(struct server *sv, struct proxy *be)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:6027,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:6030,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:6032,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/server.c:6035,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:6042,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/server.c:6042,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:6042,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6044
      start: 6017
    functionDepth: 4
    functionLinenumber: 6017
    functionLinenumberEnd: 6044
    functionName: server_warmup
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_recalc_eweight
    - process_srv_queue
    - HA_SPIN_UNLOCK
    - MS_TO_TICKS
    - HA_SPIN_LOCK
    - MAX
    - tick_add
    linkageType: ''
    returnType: struct task
    signature: struct task *server_warmup(struct task *t, void *context, unsigned
      int state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/server.c:6056,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6057,1
    - Dst: task_schedule
      Src: /src/haproxy/src/server.c:6070,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:6071,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/server.c:6072,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:6072,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:6072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6077
      start: 6051
    functionDepth: 1
    functionLinenumber: 6051
    functionLinenumberEnd: 6077
    functionName: init_srv_slowstart
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - task_new_anywhere
    - ns_to_sec
    - task_schedule
    - MS_TO_TICKS
    - MAX
    - ha_alert
    - tick_add
    linkageType: ''
    returnType: int
    signature: int init_srv_slowstart(struct server *srv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_new
      Src: /src/haproxy/src/server.c:6084,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6085,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/server.c:6098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6100
      start: 6080
    functionDepth: 1
    functionLinenumber: 6080
    functionLinenumberEnd: 6100
    functionName: init_srv_requeue
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - ha_alert
    - tasklet_wakeup
    - tasklet_new
    linkageType: ''
    returnType: int
    signature: int init_srv_requeue(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_aligned_zalloc
      Src: /src/haproxy/src/server.c:6109,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/server.c:6109,1
    - Dst: ha_aligned_zalloc
      Src: /src/haproxy/src/server.c:6110,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/server.c:6110,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/server.c:6118,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/server.c:6119,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:6121,1
    - Dst: queue_init
      Src: /src/haproxy/src/server.c:6126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6130
      start: 6105
    functionDepth: 1
    functionLinenumber: 6105
    functionLinenumberEnd: 6130
    functionName: srv_init_per_thr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - queue_init
    - MT_LIST_INIT
    - ha_aligned_zalloc
    - array_size_or_fail
    - LIST_INIT
    linkageType: ''
    returnType: int
    signature: int srv_init_per_thr(struct server *srv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: applet_putstr
      Src: /src/haproxy/src/server.c:6158,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6159,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/server.c:6161,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:6172,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6173,1
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/server.c:6174,1
    - Dst: applet_putchk_stress
      Src: /src/haproxy/src/server.c:6174,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/server.c:6175,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/server.c:6180,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/server.c:6188,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6196
      start: 6148
    functionDepth: 1
    functionLinenumber: 6148
    functionLinenumberEnd: 6196
    functionName: cli_io_handler_add_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - STRESS_RUN1
    - applet_putchk_stress
    - LIST_NEXT
    - chunk_printf
    - ABORT_NOW
    - applet_putchk
    - chunk_reset
    - applet_putstr
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_add_server(struct appctx *appctx)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/server.c:6204,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/server.c:6212,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:6214,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:6219,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6237,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/server.c:6239,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6241,1
    - Dst: be_supports_dynamic_srv
      Src: /src/haproxy/src/server.c:6244,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/server.c:6245,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:6245,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/server.c:6255,1
    - Dst: server_find
      Src: /src/haproxy/src/server.c:6260,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:6261,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6262,1
    - Dst: _srv_parse_init
      Src: /src/haproxy/src/server.c:6267,1
    - Dst: _srv_parse_kw
      Src: /src/haproxy/src/server.c:6272,1
    - Dst: _srv_parse_finalize
      Src: /src/haproxy/src/server.c:6278,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:6289,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/server.c:6294,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:6294,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/server.c:6298,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/server.c:6301,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:6301,1
    - Dst: isteq
      Src: /src/haproxy/src/server.c:6303,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6304,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:6308,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6309,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:6312,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6313,1
    - Dst: srv_minmax_conn_apply
      Src: /src/haproxy/src/server.c:6320,1
    - Dst: check_server_tcpcheck
      Src: /src/haproxy/src/server.c:6322,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6329,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6329,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6330,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6333,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6333,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6334,1
    - Dst: srv_configure_auto_sni
      Src: /src/haproxy/src/server.c:6342,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6343,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:6344,1
    - Dst: srv_apply_track
      Src: /src/haproxy/src/server.c:6350,1
    - Dst: init_srv_check
      Src: /src/haproxy/src/server.c:6359,1
    - Dst: init_srv_agent_check
      Src: /src/haproxy/src/server.c:6366,1
    - Dst: srv_preinit
      Src: /src/haproxy/src/server.c:6372,1
    - Dst: srv_alloc_lb
      Src: /src/haproxy/src/server.c:6376,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6377,1
    - Dst: stats_allocate_proxy_counters_internal
      Src: /src/haproxy/src/server.c:6381,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6387,1
    - Dst: srv_postinit
      Src: /src/haproxy/src/server.c:6391,1
    - Dst: server_get_next_id
      Src: /src/haproxy/src/server.c:6397,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6399,1
    - Dst: server_index_id
      Src: /src/haproxy/src/server.c:6407,1
    - Dst: cebis_item_insert
      Src: /src/haproxy/src/server.c:6408,1
    - Dst: cebuis_item_insert
      Src: /src/haproxy/src/server.c:6411,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/server.c:6426,1
    - Dst: srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:6432,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:6434,1
    - Dst: start_check_task
      Src: /src/haproxy/src/server.c:6442,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6443,1
    - Dst: start_check_task
      Src: /src/haproxy/src/server.c:6446,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6447,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6451,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server.c:6453,1
    - Dst: cli_umsg
      Src: /src/haproxy/src/server.c:6454,1
    - Dst: release_server_track
      Src: /src/haproxy/src/server.c:6459,1
    - Dst: free_check
      Src: /src/haproxy/src/server.c:6462,1
    - Dst: srv_drop
      Src: /src/haproxy/src/server.c:6463,1
    - Dst: free_check
      Src: /src/haproxy/src/server.c:6466,1
    - Dst: srv_drop
      Src: /src/haproxy/src/server.c:6467,1
    - Dst: srv_detach
      Src: /src/haproxy/src/server.c:6471,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:6474,1
    - Dst: usermsgs_empty
      Src: /src/haproxy/src/server.c:6476,1
    - Dst: cli_umsgerr
      Src: /src/haproxy/src/server.c:6477,1
    - Dst: srv_drop
      Src: /src/haproxy/src/server.c:6480,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 188
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6483
      start: 6202
    functionDepth: 8
    functionLinenumber: 6202
    functionLinenumberEnd: 6483
    functionName: cli_parse_add_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_set_dyncookie
    - memprintf
    - srv_event_hdl_publish
    - ha_notice
    - srv_is_quic
    - cebis_item_insert
    - _srv_parse_finalize
    - applet_reserve_svcctx
    - srv_drop
    - srv_minmax_conn_apply
    - usermsgs_empty
    - init_srv_check
    - cebuis_item_insert
    - cli_dynerr
    - ist
    - server_get_next_id
    - srv_detach
    - thread_isolate
    - ha_free
    - strcmp
    - be_supports_dynamic_srv
    - get_mux_proto
    - isteq
    - release_server_track
    - init_srv_agent_check
    - cli_has_level
    - srv_apply_track
    - start_check_task
    - thread_release
    - cli_err
    - srv_preinit
    - cli_umsgerr
    - stats_allocate_proxy_counters_internal
    - _srv_parse_kw
    - srv_configure_auto_sni
    - usermsgs_clr
    - _srv_parse_init
    - free_check
    - cli_umsg
    - srv_postinit
    - check_server_tcpcheck
    - xprt_get
    - conn_pr_mode_to_proto_mode
    - server_index_id
    - server_find
    - srv_alloc_lb
    - conn_get_best_mux_entry
    - ha_alert
    - ha_warning
    - proxy_be_by_name
    linkageType: ''
    returnType: int
    signature: int cli_parse_add_server(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/server.c:6507,1
    - Dst: server_find
      Src: /src/haproxy/src/server.c:6512,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/server.c:6537,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/server.c:6538,1
    - Dst: srv_has_streams
      Src: /src/haproxy/src/server.c:6538,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/server.c:6539,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/server.c:6539,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 5
    argNames:
    - bename
    - svname
    - pb
    - ps
    - pm
    argTypes:
    - char*
    - char*
    - struct proxy**
    - struct server**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6554
      start: 6497
    functionDepth: 3
    functionLinenumber: 6497
    functionLinenumberEnd: 6554
    functionName: srv_check_for_deletion
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - proxy_be_by_name
    - srv_has_streams
    - server_find
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int srv_check_for_deletion(const char *bename, const char *svname,
      struct proxy **pb, struct server **ps, const char **pm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:6568,1
    - Dst: thread_isolate_full
      Src: /src/haproxy/src/server.c:6579,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:6581,1
    - Dst: istsplit
      Src: /src/haproxy/src/server.c:6582,1
    - Dst: istlen
      Src: /src/haproxy/src/server.c:6583,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6584,1
    - Dst: srv_check_for_deletion
      Src: /src/haproxy/src/server.c:6588,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:6588,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:6588,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6591,1
    - Dst: srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:6598,1
    - Dst: release_server_track
      Src: /src/haproxy/src/server.c:6602,1
    - Dst: check_purge
      Src: /src/haproxy/src/server.c:6606,1
    - Dst: check_purge
      Src: /src/haproxy/src/server.c:6608,1
    - Dst: struct server*::proxy::lbprm::ops::server_deinit
      Src: /src/haproxy/src/server.c:6611,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/server.c:6613,1
    - Dst: MT_LIST_NEXT
      Src: /src/haproxy/src/server.c:6614,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:6615,1
    - Dst: watcher_next
      Src: /src/haproxy/src/server.c:6616,1
    - Dst: srv_detach
      Src: /src/haproxy/src/server.c:6623,1
    - Dst: proxy_take
      Src: /src/haproxy/src/server.c:6633,1
    - Dst: ceb32_item_delete
      Src: /src/haproxy/src/server.c:6636,1
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/server.c:6637,1
    - Dst: cebuis_item_delete
      Src: /src/haproxy/src/server.c:6638,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/server.c:6641,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:6646,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server.c:6648,1
    - Dst: srv_drop
      Src: /src/haproxy/src/server.c:6649,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:6651,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:6655,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6657
      start: 6559
    functionDepth: 6
    functionLinenumber: 6559
    functionLinenumberEnd: 6657
    functionName: cli_parse_delete_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_event_hdl_publish
    - ha_notice
    - ceb32_item_delete
    - srv_drop
    - MT_LIST_ISEMPTY
    - cebis_item_delete
    - istlen
    - ist
    - srv_detach
    - istsplit
    - release_server_track
    - cli_has_level
    - cli_err
    - thread_release
    - ist0
    - struct server*::proxy::lbprm::ops::server_deinit
    - cebuis_item_delete
    - watcher_next
    - MT_LIST_NEXT
    - cli_msg
    - proxy_take
    - BUG_ON
    - eb32_delete
    - srv_check_for_deletion
    - thread_isolate_full
    - check_purge
    linkageType: ''
    returnType: int
    signature: int cli_parse_delete_server(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/haproxy/src/server.c:6698,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/server.c:6709,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6711,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/server.c:6720,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6722,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6728,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6735,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6745,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6757,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:6769,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - srv
    - curproxy
    argTypes:
    - struct server*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6772
      start: 6688
    functionDepth: 2
    functionLinenumber: 6688
    functionLinenumberEnd: 6772
    functionName: srv_apply_track
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - ha_free
    - strrchr
    - server_find_by_name
    - ha_alert
    - proxy_be_by_name
    linkageType: ''
    returnType: int
    signature: int srv_apply_track(struct server *srv, struct proxy *curproxy)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct proxy*::lbprm::ops::update_server_eweight
      Src: /src/haproxy/src/server.c:6783,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/server.c:6784,1
    - Dst: struct proxy*::lbprm::ops::set_server_status_up
      Src: /src/haproxy/src/server.c:6786,1
    - Dst: struct proxy*::lbprm::ops::set_server_status_down
      Src: /src/haproxy/src/server.c:6790,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6792
      start: 6775
    functionDepth: 1
    functionLinenumber: 6775
    functionLinenumberEnd: 6792
    functionName: srv_lb_propagate
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_willbe_usable
    - struct proxy*::lbprm::ops::set_server_status_up
    - struct proxy*::lbprm::ops::update_server_eweight
    - struct proxy*::lbprm::ops::set_server_status_down
    linkageType: ''
    returnType: void
    signature: void srv_lb_propagate(struct server *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:6809,1
    - Dst: srv_shutdown_streams
      Src: /src/haproxy/src/server.c:6812,1
    - Dst: srv_reset_path_parameters
      Src: /src/haproxy/src/server.c:6814,1
    - Dst: pendconn_redistribute
      Src: /src/haproxy/src/server.c:6819,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6821,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6823,1
    - Dst: srv_append_op_chg_cause
      Src: /src/haproxy/src/server.c:6827,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:6828,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6830,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6834,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6836,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:6840,1
    - Dst: srv_reset_path_parameters
      Src: /src/haproxy/src/server.c:6842,1
    - Dst: pendconn_redistribute
      Src: /src/haproxy/src/server.c:6847,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6849,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6851,1
    - Dst: srv_append_op_chg_cause
      Src: /src/haproxy/src/server.c:6855,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:6856,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6858,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6859,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6861,1
    - Dst: task_schedule
      Src: /src/haproxy/src/server.c:6868,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:6868,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/server.c:6868,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:6868,1
    - Dst: srv_reset_path_parameters
      Src: /src/haproxy/src/server.c:6870,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:6871,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:6873,1
    - Dst: srv_shutdown_backup_streams
      Src: /src/haproxy/src/server.c:6882,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/server.c:6887,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6889,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6891,1
    - Dst: srv_append_op_chg_cause
      Src: /src/haproxy/src/server.c:6895,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:6896,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6898,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6899,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6901,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:6906,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 2
    argNames:
    - s
    - cause
    argTypes:
    - struct server*
    - enum srv_op_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6909
      start: 6801
    functionDepth: 5
    functionLinenumber: 6801
    functionLinenumberEnd: 6909
    functionName: _srv_update_status_op
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - pendconn_redistribute
    - srv_lb_propagate
    - server_recalc_eweight
    - process_srv_queue
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_printf
    - task_schedule
    - MS_TO_TICKS
    - srv_append_more
    - MAX
    - srv_reset_path_parameters
    - srv_append_op_chg_cause
    - ha_warning
    - send_log
    - srv_shutdown_streams
    - srv_shutdown_backup_streams
    - tick_add
    linkageType: ''
    returnType: int
    signature: int _srv_update_status_op(struct server *s, enum srv_op_st_chg_cause
      cause)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6933,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6935,1
    - Dst: srv_append_adm_chg_cause
      Src: /src/haproxy/src/server.c:6938,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:6939,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6942,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6943,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6946,1
    - Dst: srv_cleanup_connections
      Src: /src/haproxy/src/server.c:6950,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:6956,1
    - Dst: srv_reset_path_parameters
      Src: /src/haproxy/src/server.c:6958,1
    - Dst: srv_shutdown_streams
      Src: /src/haproxy/src/server.c:6961,1
    - Dst: srv_cleanup_connections
      Src: /src/haproxy/src/server.c:6964,1
    - Dst: pendconn_redistribute
      Src: /src/haproxy/src/server.c:6969,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6971,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6973,1
    - Dst: srv_append_adm_chg_cause
      Src: /src/haproxy/src/server.c:6977,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:6978,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6981,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6982,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6985,1
    - Dst: srv_set_init_state
      Src: /src/haproxy/src/server.c:7009,1
    - Dst: task_schedule
      Src: /src/haproxy/src/server.c:7022,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:7022,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/server.c:7022,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:7022,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:7030,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7033,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7041,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7049,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:7056,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:7057,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:7059,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:7062,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:7064,1
    - Dst: srv_shutdown_backup_streams
      Src: /src/haproxy/src/server.c:7073,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/server.c:7078,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:7085,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7087,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:7093,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:7095,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:7096,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:7098,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:7102,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7104,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:7110,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:7112,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:7113,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:7115,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:7119,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7121,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:7125,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:7126,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:7128,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:7138,1
    - Dst: pendconn_redistribute
      Src: /src/haproxy/src/server.c:7144,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:7146,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7148,1
    - Dst: srv_append_adm_chg_cause
      Src: /src/haproxy/src/server.c:7150,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:7151,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:7154,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:7155,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:7158,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:7163,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:7165,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7168,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7175,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:7181,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:7185,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:7186,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:7188,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:7192,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:7197,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7200,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:7206,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7210,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:7215,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:7216,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:7218,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 163
    argCount: 2
    argNames:
    - s
    - cause
    argTypes:
    - struct server*
    - enum srv_adm_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7223
      start: 6919
    functionDepth: 5
    functionLinenumber: 6919
    functionLinenumberEnd: 7223
    functionName: _srv_update_status_adm
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - alloc_trash_chunk
    - task_schedule
    - srv_cleanup_connections
    - chunk_appendf
    - srv_append_more
    - srv_reset_path_parameters
    - srv_shutdown_streams
    - srv_append_adm_chg_cause
    - chunk_printf
    - tick_add
    - pendconn_redistribute
    - process_srv_queue
    - free_trash_chunk
    - MS_TO_TICKS
    - send_log
    - srv_shutdown_backup_streams
    - srv_lb_propagate
    - server_recalc_eweight
    - MAX
    - ha_warning
    - srv_set_init_state
    linkageType: ''
    returnType: int
    signature: int _srv_update_status_adm(struct server *s, enum srv_adm_st_chg_cause
      cause)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _srv_event_hdl_prepare
      Src: /src/haproxy/src/server.c:7247,1
    - Dst: _srv_update_status_adm
      Src: /src/haproxy/src/server.c:7253,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:7256,1
    - Dst: _srv_update_status_op
      Src: /src/haproxy/src/server.c:7259,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/server.c:7264,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7270,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7271,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:7272,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/server.c:7277,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:7278,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/server.c:7287,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7290,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/server.c:7292,1
    - Dst: _srv_event_hdl_prepare_state
      Src: /src/haproxy/src/server.c:7295,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:7297,1
    - Dst: set_backend_down
      Src: /src/haproxy/src/server.c:7302,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7309,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7310,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7311,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/server.c:7313,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 3
    argNames:
    - s
    - type
    - cause
    argTypes:
    - struct server*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7315
      start: 7235
    functionDepth: 6
    functionLinenumber: 7235
    functionLinenumberEnd: 7315
    functionName: srv_update_status
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 6
    functionsReached:
    - _srv_update_status_op
    - _srv_update_status_adm
    - ns_to_sec
    - HA_ATOMIC_STORE
    - _srv_event_hdl_prepare_state
    - _srv_event_hdl_publish
    - HA_ATOMIC_INC
    - set_backend_down
    - HA_ATOMIC_CAS
    - _srv_event_hdl_prepare
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void srv_update_status(struct server *s, int type, int cause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/server.c:7321,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/server.c:7323,1
    - Dst: destroy
      Src: /src/haproxy/src/server.c:7323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7327
      start: 7317
    functionDepth: 1
    functionLinenumber: 7317
    functionLinenumberEnd: 7327
    functionName: srv_cleanup_toremove_conns
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - destroy
    - MT_LIST_POP
    - CALL_MUX_NO_RET
    linkageType: ''
    returnType: struct task
    signature: struct task *srv_cleanup_toremove_conns(struct task *task, void *context,
      unsigned int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/server.c:7343,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/server.c:7347,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/server.c:7348,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/server.c:7349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - srv
    - thr
    - toremove_nb
    argTypes:
    - struct server*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7354
      start: 7338
    functionDepth: 2
    functionLinenumber: 7338
    functionLinenumberEnd: 7354
    functionName: srv_migrate_conns_to_remove
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - conn_delete_from_tree
    - MT_LIST_APPEND
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int srv_migrate_conns_to_remove(struct server *srv, int thr, int toremove_nb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:7371,1
    - Dst: srv_migrate_conns_to_remove
      Src: /src/haproxy/src/server.c:7374,1
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/server.c:7378,1
    - Dst: sess_conns_cleanup_all_idle
      Src: /src/haproxy/src/server.c:7379,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/server.c:7382,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/server.c:7383,1
    - Dst: pool_free
      Src: /src/haproxy/src/server.c:7384,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7389,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/server.c:7391,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7396
      start: 7358
    functionDepth: 3
    functionLinenumber: 7358
    functionLinenumberEnd: 7396
    functionName: srv_cleanup_connections
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 3
    functionsReached:
    - LIST_DELETE
    - MT_LIST_POP
    - task_wakeup
    - HA_SPIN_UNLOCK
    - srv_migrate_conns_to_remove
    - HA_SPIN_LOCK
    - LIST_ISEMPTY
    - pool_free
    - sess_conns_cleanup_all_idle
    linkageType: ''
    returnType: void
    signature: void srv_cleanup_connections(struct server *srv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7402,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7409,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7410,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7411,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7417,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/server.c:7421,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:7422,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/server.c:7423,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - srv
    - conn
    argTypes:
    - struct server*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7427
      start: 7399
    functionDepth: 2
    functionLinenumber: 7399
    functionLinenumberEnd: 7427
    functionName: srv_release_conn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - conn_delete_from_tree
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - ceb_intree
    - _HA_ATOMIC_DEC
    linkageType: ''
    returnType: void
    signature: void srv_release_conn(struct server *srv, struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb64_item_lookup
      Src: /src/haproxy/src/server.c:7434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree
    - hash
    argTypes:
    - struct ceb_root**
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7435
      start: 7432
    functionDepth: 1
    functionLinenumber: 7432
    functionLinenumberEnd: 7435
    functionName: srv_lookup_conn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - ceb64_item_lookup
    linkageType: ''
    returnType: struct connection
    signature: struct connection *srv_lookup_conn(struct ceb_root **tree, uint64_t
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb64_item_next_dup
      Src: /src/haproxy/src/server.c:7442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree
    - conn
    argTypes:
    - struct ceb_root**
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7443
      start: 7440
    functionDepth: 1
    functionLinenumber: 7440
    functionLinenumberEnd: 7443
    functionName: srv_lookup_conn_next
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - ceb64_item_next_dup
    linkageType: ''
    returnType: struct connection
    signature: struct connection *srv_lookup_conn_next(struct ceb_root **tree, struct
      connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb64_item_insert
      Src: /src/haproxy/src/server.c:7461,1
    - Dst: BUG_ON_STRESS
      Src: /src/haproxy/src/server.c:7463,1
    - Dst: mt_list_isempty
      Src: /src/haproxy/src/server.c:7463,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/server.c:7465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - srv
    - conn
    - is_safe
    argTypes:
    - struct server*
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7466
      start: 7455
    functionDepth: 1
    functionLinenumber: 7455
    functionLinenumberEnd: 7466
    functionName: _srv_add_idle
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - BUG_ON_STRESS
    - ceb64_item_insert
    - mt_list_isempty
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void _srv_add_idle(struct server *srv, struct connection *conn, int
      is_safe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:7479,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/server.c:7480,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - srv
    - conn
    - is_safe
    argTypes:
    - struct server*
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7482
      start: 7477
    functionDepth: 2
    functionLinenumber: 7477
    functionLinenumberEnd: 7482
    functionName: srv_add_idle
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 5
    functionsReached:
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - _srv_add_idle
    linkageType: ''
    returnType: void
    signature: void srv_add_idle(struct server *srv, struct connection *conn, int
      is_safe)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ceb_isempty
      Src: /src/haproxy/src/server.c:7501,1
    - Dst: ceb_isempty
      Src: /src/haproxy/src/server.c:7502,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:7505,1
    - Dst: struct connection*::mux::used_streams
      Src: /src/haproxy/src/server.c:7507,1
    - Dst: struct connection*::mux::avail_streams
      Src: /src/haproxy/src/server.c:7507,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/server.c:7510,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7512,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7515,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:7517,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/server.c:7518,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/server.c:7522,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/server.c:7523,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/server.c:7526,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/server.c:7527,1
    - Dst: BUG_ON_STRESS
      Src: /src/haproxy/src/server.c:7530,1
    - Dst: mt_list_isempty
      Src: /src/haproxy/src/server.c:7530,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7531,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/server.c:7532,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/server.c:7534,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:7535,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/server.c:7536,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:7537,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/server.c:7539,1
    - Dst: task_in_wq
      Src: /src/haproxy/src/server.c:7540,1
    - Dst: task_in_rq
      Src: /src/haproxy/src/server.c:7541,1
    - Dst: task_schedule
      Src: /src/haproxy/src/server.c:7542,1
    - Dst: BUG_ON_STRESS
      Src: /src/haproxy/src/server.c:7545,1
    - Dst: mt_list_isempty
      Src: /src/haproxy/src/server.c:7545,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7547,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 37
    argCount: 3
    argNames:
    - srv
    - conn
    - is_safe
    argTypes:
    - struct server*
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7552
      start: 7487
    functionDepth: 2
    functionLinenumber: 7487
    functionLinenumberEnd: 7552
    functionName: srv_add_to_idle_list
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_LOAD
    - task_schedule
    - HA_SPIN_LOCK
    - eb32_insert
    - struct connection*::mux::avail_streams
    - struct connection*::mux::used_streams
    - ceb_isempty
    - _HA_ATOMIC_DEC
    - tick_add
    - task_in_rq
    - _HA_ATOMIC_ADD_FETCH
    - _srv_add_idle
    - conn_delete_from_tree
    - task_in_wq
    - BUG_ON_STRESS
    - _HA_ATOMIC_INC
    - _HA_ATOMIC_LOAD
    - HA_SPIN_UNLOCK
    - MAX
    - mt_list_isempty
    linkageType: ''
    returnType: int
    signature: int srv_add_to_idle_list(struct server *srv, struct connection *conn,
      int is_safe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:7560,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/server.c:7560,1
    - Dst: BUG_ON_STRESS
      Src: /src/haproxy/src/server.c:7561,1
    - Dst: mt_list_isempty
      Src: /src/haproxy/src/server.c:7561,1
    - Dst: ceb64_item_insert
      Src: /src/haproxy/src/server.c:7562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - srv
    - conn
    argTypes:
    - struct server*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7563
      start: 7557
    functionDepth: 1
    functionLinenumber: 7557
    functionLinenumberEnd: 7563
    functionName: srv_add_to_avail_list
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 4
    functionsReached:
    - BUG_ON_STRESS
    - BUG_ON
    - mt_list_isempty
    - ceb64_item_insert
    - LIST_INLIST
    linkageType: ''
    returnType: void
    signature: void srv_add_to_avail_list(struct server *srv, struct connection *conn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:7573,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/server.c:7579,1
    - Dst: eb32_first
      Src: /src/haproxy/src/server.c:7586,1
    - Dst: likely
      Src: /src/haproxy/src/server.c:7587,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/server.c:7590,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/server.c:7595,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:7605,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/server.c:7612,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:7625,1
    - Dst: srv_migrate_conns_to_remove
      Src: /src/haproxy/src/server.c:7626,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7627,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/server.c:7630,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/server.c:7636,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:7642,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/server.c:7643,1
    - Dst: tick_first
      Src: /src/haproxy/src/server.c:7644,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7647,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7651
      start: 7565
    functionDepth: 3
    functionLinenumber: 7565
    functionLinenumberEnd: 7651
    functionName: srv_cleanup_idle_conns
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - eb32_insert
    - tick_is_lt
    - task_wakeup
    - HA_SPIN_UNLOCK
    - eb32_delete
    - HA_SPIN_LOCK
    - MAX
    - likely
    - srv_migrate_conns_to_remove
    - tick_first
    - eb32_lookup_ge
    - eb32_entry
    - eb32_first
    - tick_add
    linkageType: ''
    returnType: struct task
    signature: struct task *srv_cleanup_idle_conns(struct task *task, void *context,
      unsigned int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ceb64_item_first
      Src: /src/haproxy/src/server.c:7676,1
    - Dst: struct connection*::ctrl::ctrl_close
      Src: /src/haproxy/src/server.c:7679,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/server.c:7680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7684
      start: 7661
    functionDepth: 2
    functionLinenumber: 7661
    functionLinenumberEnd: 7684
    functionName: srv_close_idle_conns
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - struct connection*::ctrl::ctrl_close
    - conn_delete_from_tree
    - ceb64_item_first
    linkageType: ''
    returnType: void
    signature: void srv_close_idle_conns(struct server *srv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/server.c:7693,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:7696,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:7699,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:7702,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:7706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7710
      start: 7689
    functionDepth: 5
    functionLinenumber: 7689
    functionLinenumberEnd: 7710
    functionName: cfg_parse_idle_pool_shared
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_idle_pool_shared(char **args, int section_type, struct
      proxy *curpx,\n                                      const struct proxy *defpx,
      const char *file, int line,\n                                      char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/server.c:7719,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:7723,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:7726,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7735
      start: 7713
    functionDepth: 5
    functionLinenumber: 7713
    functionLinenumberEnd: 7735
    functionName: cfg_parse_pool_fd_ratio
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_pool_fd_ratio(char **args, int section_type, struct
      proxy *curpx,\n                                   const struct proxy *defpx,
      const char *file, int line,\n                                   char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/haproxy/src/extcheck.c:104,1
    - Dst: sigaddset
      Src: /src/haproxy/src/extcheck.c:105,1
    - Dst: assert
      Src: /src/haproxy/src/extcheck.c:106,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/extcheck.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ha_sigmask(SIG_BLOCK, &set, NULL) == 0)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/haproxy/src/extcheck.c
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: block_sigchld
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - assert
    - ha_sigmask
    - sigaddset
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: void block_sigchld(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/haproxy/src/extcheck.c:112,1
    - Dst: sigaddset
      Src: /src/haproxy/src/extcheck.c:113,1
    - Dst: assert
      Src: /src/haproxy/src/extcheck.c:114,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/extcheck.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ha_sigmask(SIG_UNBLOCK, &set, NULL) == 0)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/haproxy/src/extcheck.c
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: unblock_sigchld
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - assert
    - ha_sigmask
    - sigaddset
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: void unblock_sigchld(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/extcheck.c:122,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/extcheck.c:129,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/extcheck.c:131,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/extcheck.c:132,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/extcheck.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - pid
    - t
    argTypes:
    - pid_t
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 136
    functionName: pid_list_add
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - LIST_INSERT
    - LIST_INIT
    linkageType: ''
    returnType: struct pid_list
    signature: struct pid_list *pid_list_add(pid_t pid, struct task *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/extcheck.c:145,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/extcheck.c:146,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/extcheck.c:147,1
    - Dst: kill
      Src: /src/haproxy/src/extcheck.c:150,1
    - Dst: pool_free
      Src: /src/haproxy/src/extcheck.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - elem
    argTypes:
    - struct pid_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 155
    functionName: pid_list_del
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - kill
    - pool_free
    linkageType: ''
    returnType: void
    signature: void pid_list_del(struct pid_list *elem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/extcheck.c:162,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/extcheck.c:163,1
    - Dst: tick_add
      Src: /src/haproxy/src/extcheck.c:165,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/extcheck.c:168,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/extcheck.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pid
    - status
    argTypes:
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: pid_list_expire
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - task_wakeup
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - tick_add
    linkageType: ''
    returnType: void
    signature: void pid_list_expire(pid_t pid, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/haproxy/src/extcheck.c:180,1
    - Dst: pid_list_expire
      Src: /src/haproxy/src/extcheck.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: sigchld_handler
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - pid_list_expire
    - waitpid
    linkageType: ''
    returnType: void
    signature: void sigchld_handler(struct sig_handler *sh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: signal_register_fct
      Src: /src/haproxy/src/extcheck.c:190,1
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:191,1
    - Dst: strerror
      Src: /src/haproxy/src/extcheck.c:192,1
    - Dst: create_pool
      Src: /src/haproxy/src/extcheck.c:196,1
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:198,1
    - Dst: strerror
      Src: /src/haproxy/src/extcheck.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 204
    functionName: init_pid_list
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - signal_register_fct
    - create_pool
    - ha_alert
    - strerror
    linkageType: ''
    returnType: int
    signature: int init_pid_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - check
    - ','
    - envidx
    - ','
    - value
    - ','
    - fail
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: EXTCHK_SETENV
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTCHK_SETENV(check, envidx, value, fail)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:221,1
    - Dst: strcmp
      Src: /src/haproxy/src/extcheck.c:234,1
    - Dst: strlen
      Src: /src/haproxy/src/extcheck.c:238,1
    - Dst: strlen
      Src: /src/haproxy/src/extcheck.c:240,1
    - Dst: malloc
      Src: /src/haproxy/src/extcheck.c:245,1
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:248,1
    - Dst: snprintf
      Src: /src/haproxy/src/extcheck.c:251,1
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:253,1
    - Dst: strerror
      Src: /src/haproxy/src/extcheck.c:253,1
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - check
    - idx
    - value
    argTypes:
    - struct check*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 261
    functionName: extchk_setenv
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - malloc
    - strerror
    - strcmp
    - ha_alert
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int extchk_setenv(struct check *check, int idx, const char *value)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/extcheck.c:273,1
    - Dst: calloc
      Src: /src/haproxy/src/extcheck.c:283,1
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:285,1
    - Dst: calloc
      Src: /src/haproxy/src/extcheck.c:289,1
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:291,1
    - Dst: strdup
      Src: /src/haproxy/src/extcheck.c:298,1
    - Dst: strdup
      Src: /src/haproxy/src/extcheck.c:299,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/extcheck.c:303,1
    - Dst: strdup
      Src: /src/haproxy/src/extcheck.c:304,1
    - Dst: port_to_str
      Src: /src/haproxy/src/extcheck.c:305,1
    - Dst: strdup
      Src: /src/haproxy/src/extcheck.c:306,1
    - Dst: strdup
      Src: /src/haproxy/src/extcheck.c:314,1
    - Dst: strdup
      Src: /src/haproxy/src/extcheck.c:315,1
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:318,1
    - Dst: calloc
      Src: /src/haproxy/src/extcheck.c:323,1
    - Dst: calloc
      Src: /src/haproxy/src/extcheck.c:324,1
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:328,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:333,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:335,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:336,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/extcheck.c:336,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:337,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:338,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:340,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:341,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/extcheck.c:341,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:342,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:343,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:344,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/extcheck.c:344,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:345,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/extcheck.c:345,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:346,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:358,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:363,1
    - Dst: free
      Src: /src/haproxy/src/extcheck.c:369,1
    - Dst: ha_free
      Src: /src/haproxy/src/extcheck.c:370,1
    - Dst: free
      Src: /src/haproxy/src/extcheck.c:375,1
    - Dst: ha_free
      Src: /src/haproxy/src/extcheck.c:376,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 101
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 379
    functionName: prepare_external_check
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - ha_free
    - calloc
    - port_to_str
    - free
    - EXTCHK_SETENV
    - ha_alert
    - addr_to_str
    - ultoa_r
    - strdup
    linkageType: ''
    returnType: int
    signature: int prepare_external_check(struct check *check)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: block_sigchld
      Src: /src/haproxy/src/extcheck.c:402,1
    - Dst: fork
      Src: /src/haproxy/src/extcheck.c:404,1
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:406,1
    - Dst: strerror
      Src: /src/haproxy/src/extcheck.c:409,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/extcheck.c:410,1
    - Dst: strerror
      Src: /src/haproxy/src/extcheck.c:410,1
    - Dst: my_closefrom
      Src: /src/haproxy/src/extcheck.c:423,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/extcheck.c:428,1
    - Dst: getrlimit
      Src: /src/haproxy/src/extcheck.c:429,1
    - Dst: ha_warning
      Src: /src/haproxy/src/extcheck.c:430,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:441,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/extcheck.c:441,1
    - Dst: real_family
      Src: /src/haproxy/src/extcheck.c:443,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/extcheck.c:446,1
    - Dst: memcpy
      Src: /src/haproxy/src/extcheck.c:447,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/extcheck.c:449,1
    - Dst: snprintf
      Src: /src/haproxy/src/extcheck.c:452,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:455,1
    - Dst: EXTCHK_SETENV
      Src: /src/haproxy/src/extcheck.c:456,1
    - Dst: strchr
      Src: /src/haproxy/src/extcheck.c:463,1
    - Dst: setenv
      Src: /src/haproxy/src/extcheck.c:467,1
    - Dst: haproxy_unblock_signals
      Src: /src/haproxy/src/extcheck.c:471,1
    - Dst: execvp
      Src: /src/haproxy/src/extcheck.c:472,1
    - Dst: ha_alert
      Src: /src/haproxy/src/extcheck.c:473,1
    - Dst: strerror
      Src: /src/haproxy/src/extcheck.c:474,1
    - Dst: exit
      Src: /src/haproxy/src/extcheck.c:476,1
    - Dst: pid_list_add
      Src: /src/haproxy/src/extcheck.c:481,1
    - Dst: tick_add
      Src: /src/haproxy/src/extcheck.c:482,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/extcheck.c:482,1
    - Dst: tick_add
      Src: /src/haproxy/src/extcheck.c:485,1
    - Dst: tick_first
      Src: /src/haproxy/src/extcheck.c:486,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/extcheck.c:492,1
    - Dst: strerror
      Src: /src/haproxy/src/extcheck.c:492,1
    - Dst: kill
      Src: /src/haproxy/src/extcheck.c:494,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/extcheck.c:497,1
    - Dst: strerror
      Src: /src/haproxy/src/extcheck.c:497,1
    - Dst: unblock_sigchld
      Src: /src/haproxy/src/extcheck.c:500,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 502
    functionName: connect_proc_chk
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - exit
    - execvp
    - set_server_check_status
    - snprintf
    - strerror
    - block_sigchld
    - haproxy_unblock_signals
    - strchr
    - real_family
    - tick_add
    - getrlimit
    - fork
    - my_closefrom
    - memcpy
    - raise_rlim_nofile
    - MS_TO_TICKS
    - tick_first
    - strlcpy2
    - pid_list_add
    - addr_to_str
    - ultoa_r
    - setenv
    - EXTCHK_SETENV
    - kill
    - ha_alert
    - ha_warning
    - unblock_sigchld
    linkageType: ''
    returnType: int
    signature: int connect_proc_chk(struct task *t)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/extcheck.c:517,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/extcheck.c:519,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/extcheck.c:534,1
    - Dst: connect_proc_chk
      Src: /src/haproxy/src/extcheck.c:538,1
    - Dst: tick_add
      Src: /src/haproxy/src/extcheck.c:545,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/extcheck.c:545,1
    - Dst: tick_add
      Src: /src/haproxy/src/extcheck.c:548,1
    - Dst: tick_first
      Src: /src/haproxy/src/extcheck.c:549,1
    - Dst: task_set_thread
      Src: /src/haproxy/src/extcheck.c:551,1
    - Dst: check_notify_failure
      Src: /src/haproxy/src/extcheck.c:558,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/extcheck.c:564,1
    - Dst: tick_add
      Src: /src/haproxy/src/extcheck.c:567,1
    - Dst: tick_add
      Src: /src/haproxy/src/extcheck.c:568,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/extcheck.c:568,1
    - Dst: tick_first
      Src: /src/haproxy/src/extcheck.c:571,1
    - Dst: WIFEXITED
      Src: /src/haproxy/src/extcheck.c:586,1
    - Dst: WEXITSTATUS
      Src: /src/haproxy/src/extcheck.c:589,1
    - Dst: WIFEXITED
      Src: /src/haproxy/src/extcheck.c:590,1
    - Dst: WEXITSTATUS
      Src: /src/haproxy/src/extcheck.c:590,1
    - Dst: ha_warning
      Src: /src/haproxy/src/extcheck.c:596,1
    - Dst: kill
      Src: /src/haproxy/src/extcheck.c:597,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/extcheck.c:599,1
    - Dst: check_notify_failure
      Src: /src/haproxy/src/extcheck.c:604,1
    - Dst: check_notify_stopping
      Src: /src/haproxy/src/extcheck.c:608,1
    - Dst: check_notify_success
      Src: /src/haproxy/src/extcheck.c:612,1
    - Dst: task_set_thread
      Src: /src/haproxy/src/extcheck.c:614,1
    - Dst: pid_list_del
      Src: /src/haproxy/src/extcheck.c:617,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/extcheck.c:621,1
    - Dst: statistical_prng
      Src: /src/haproxy/src/extcheck.c:622,1
    - Dst: tick_add
      Src: /src/haproxy/src/extcheck.c:624,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/extcheck.c:624,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/extcheck.c:624,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/extcheck.c:628,1
    - Dst: tick_add
      Src: /src/haproxy/src/extcheck.c:629,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/extcheck.c:629,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/extcheck.c:632,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 634
    functionName: process_chk_proc
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - connect_proc_chk
    - HA_SPIN_LOCK
    - check_notify_failure
    - WIFEXITED
    - statistical_prng
    - set_server_check_status
    - tick_is_expired
    - pid_list_del
    - task_set_thread
    - check_notify_stopping
    - tick_add
    - MS_TO_TICKS
    - tick_first
    - check_notify_success
    - HA_SPIN_UNLOCK
    - srv_getinter
    - WEXITSTATUS
    - kill
    - ha_warning
    linkageType: ''
    returnType: struct task
    signature: struct task *process_chk_proc(struct task *t, void *context, unsigned
      int state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/extcheck.c:645,1
    - Dst: strcmp
      Src: /src/haproxy/src/extcheck.c:649,1
    - Dst: too_many_args
      Src: /src/haproxy/src/extcheck.c:650,1
    - Dst: memprintf
      Src: /src/haproxy/src/extcheck.c:653,1
    - Dst: free
      Src: /src/haproxy/src/extcheck.c:656,1
    - Dst: strdup
      Src: /src/haproxy/src/extcheck.c:657,1
    - Dst: strcmp
      Src: /src/haproxy/src/extcheck.c:659,1
    - Dst: too_many_args
      Src: /src/haproxy/src/extcheck.c:660,1
    - Dst: memprintf
      Src: /src/haproxy/src/extcheck.c:663,1
    - Dst: free
      Src: /src/haproxy/src/extcheck.c:666,1
    - Dst: strdup
      Src: /src/haproxy/src/extcheck.c:667,1
    - Dst: memprintf
      Src: /src/haproxy/src/extcheck.c:670,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 7
    argNames:
    - args
    - section
    - curpx
    - defpx
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 637
    functionDepth: 5
    functionLinenumber: 637
    functionLinenumberEnd: 680
    functionName: proxy_parse_extcheck
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - free
    - too_many_args
    - strdup
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_extcheck(char **args, int section, struct proxy *curpx,\n
      \                        const struct proxy *defpx, const char *file, int line,\n
      \                        char **errmsg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/extcheck.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 694
    functionName: proxy_parse_external_check_opt
    functionSourceFile: /src/haproxy/src/extcheck.c
    functionUses: 1
    functionsReached:
    - alertif_too_many_args_idx
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_external_check_opt(char **args, int cur_arg, struct
      proxy *curpx, const struct proxy *defpx,\n\t\t\t\t   const char *file, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:89,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:90,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct tcpcheck_http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: free_tcpcheck_http_hdr
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - lf_expr_deinit
    - istfree
    - free
    linkageType: ''
    returnType: void
    signature: void free_tcpcheck_http_hdr(struct tcpcheck_http_hdr *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:102,1
    - Dst: free_tcpcheck_http_hdr
      Src: /src/haproxy/src/tcpcheck.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hdrs
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: free_tcpcheck_http_hdrs
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - free_tcpcheck_http_hdr
    linkageType: ''
    returnType: void
    signature: void free_tcpcheck_http_hdrs(struct list *hdrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:102,1
    - Dst: free_tcpcheck_http_hdr
      Src: /src/haproxy/src/tcpcheck.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 41
    functionsReached:
    - LIST_DELETE
    - free_tcpcheck_http_hdr
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(hdr, bhdr, hdrs, list)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:116,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:122,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:126,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:129,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:131,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:133,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:134,1
    - Dst: free_tcpcheck_http_hdrs
      Src: /src/haproxy/src/tcpcheck.c:135,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:137,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:139,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:146,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:147,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcpcheck.c:148,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:151,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:156,1
    - Dst: regex_free
      Src: /src/haproxy/src/tcpcheck.c:162,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:167,1
    - Dst: regex_free
      Src: /src/haproxy/src/tcpcheck.c:171,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:173,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:175,1
    - Dst: regex_free
      Src: /src/haproxy/src/tcpcheck.c:178,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:180,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:182,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:190,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:191,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcpcheck.c:192,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:197,1
    - Dst: pool_free
      Src: /src/haproxy/src/tcpcheck.c:202,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:204,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 86
    argCount: 2
    argNames:
    - rule
    - in_pool
    argTypes:
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 205
    functionName: free_tcpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - istfree
    - free_tcpcheck_http_hdrs
    - free
    - regex_free
    - lf_expr_deinit
    - pool_free
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void free_tcpcheck(struct tcpcheck_rule *rule, int in_pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:214,1
    - Dst: istdup
      Src: /src/haproxy/src/tcpcheck.c:218,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:219,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:220,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 226
    functionName: create_tcpcheck_var
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - calloc
    - free
    - istdup
    - LIST_INIT
    - isttest
    linkageType: ''
    returnType: struct tcpcheck_var
    signature: struct tcpcheck_var *create_tcpcheck_var(const struct ist name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:234,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:236,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:238,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - var
    argTypes:
    - struct tcpcheck_var*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: free_tcpcheck_var
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - istfree
    - free
    linkageType: ''
    returnType: void
    signature: void free_tcpcheck_var(struct tcpcheck_var *var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:248,1
    - Dst: free_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vars
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: free_tcpcheck_vars
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - free_tcpcheck_var
    linkageType: ''
    returnType: void
    signature: void free_tcpcheck_vars(struct list *vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:248,1
    - Dst: free_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 41
    functionsReached:
    - LIST_DELETE
    - free_tcpcheck_var
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(var, back, vars, list)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: create_tcpcheck_var::create_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:260,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:263,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/tcpcheck.c:265,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:265,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:268,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:268,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/tcpcheck.c:271,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:271,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:273,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:273,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:274,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:277,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:278,1
    - Dst: list::list
      Src: /src/haproxy/src/tcpcheck.c:278,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct list*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 285
    functionName: dup_tcpcheck_vars
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - chunk_dup
    - LIST_APPEND
    - create_tcpcheck_var::create_tcpcheck_var
    - data::data
    - list::list
    linkageType: ''
    returnType: int
    signature: int dup_tcpcheck_vars(struct list *dst, const struct list *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: create_tcpcheck_var::create_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:260,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:263,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/tcpcheck.c:265,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:265,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:268,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:268,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/tcpcheck.c:271,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:271,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:273,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:273,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:274,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:277,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:278,1
    - Dst: list::list
      Src: /src/haproxy/src/tcpcheck.c:278,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 279
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 132
    functionsReached:
    - chunk_dup
    - LIST_APPEND
    - create_tcpcheck_var::create_tcpcheck_var
    - data::data
    - list::list
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(var, src, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebis_lookup_len
      Src: /src/haproxy/src/tcpcheck.c:293,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:293,1
    - Dst: container_of
      Src: /src/haproxy/src/tcpcheck.c:295,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 299
    functionName: find_tcpcheck_ruleset
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - ebis_lookup_len
    - typeof
    - container_of
    - strlen
    linkageType: ''
    returnType: struct tcpcheck_ruleset
    signature: struct tcpcheck_ruleset *find_tcpcheck_ruleset(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:308,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:312,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:314,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:318,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:319,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/tcpcheck.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 322
    functionName: create_tcpcheck_ruleset
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - ebis_insert
    - calloc
    - free
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: struct tcpcheck_ruleset
    signature: struct tcpcheck_ruleset *create_tcpcheck_ruleset(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_delete
      Src: /src/haproxy/src/tcpcheck.c:332,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:333,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/tcpcheck.c:334,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:335,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:336,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:338,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct tcpcheck_ruleset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 325
    functionDepth: 6
    functionLinenumber: 325
    functionLinenumberEnd: 340
    functionName: free_tcpcheck_ruleset
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - ebpt_delete
    - free_tcpcheck
    - list_for_each_entry_safe
    - free
    linkageType: ''
    returnType: void
    signature: void free_tcpcheck_ruleset(struct tcpcheck_ruleset *rs)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - check
    - rule
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 363
    functionName: tcpcheck_get_step_id
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tcpcheck_get_step_id(const struct check *check, const struct tcpcheck_rule
      *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcpcheck.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct tcpcheck_ruleset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 377
    functionName: get_first_tcpcheck_rule
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: struct tcpcheck_rule *get_first_tcpcheck_rule(const struct tcpcheck_ruleset
      *rs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_rev
      Src: /src/haproxy/src/tcpcheck.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct tcpcheck_ruleset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 391
    functionName: get_last_tcpcheck_rule
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_rev
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: struct tcpcheck_rule *get_last_tcpcheck_rule(struct tcpcheck_ruleset
      *rs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:402,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/tcpcheck.c:404,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:404,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/tcpcheck.c:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - rs
    - start
    argTypes:
    - struct tcpcheck_ruleset*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 410
    functionName: get_next_tcpcheck_rule
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_from
    - get_first_tcpcheck_rule
    - typeof
    - LIST_NEXT
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: struct tcpcheck_rule *get_next_tcpcheck_rule(struct tcpcheck_ruleset
      *rs, struct tcpcheck_rule *start)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:427,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/tcpcheck.c:428,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:431,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:432,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:432,1
    - Dst: b_room
      Src: /src/haproxy/src/tcpcheck.c:432,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/tcpcheck.c:437,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:437,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:437,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:437,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:439,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:440,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:441,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tcpcheck.c:450,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:453,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:453,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:457,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:457,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:457,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:458,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:461,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:461,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:466,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:466,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:469,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:469,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:473,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:473,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:476,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:476,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:479,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:479,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:482,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:482,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tcpcheck.c:494,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tcpcheck.c:495,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcpcheck.c:502,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:510,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 5
    argNames:
    - msg
    - check
    - rule
    - match
    - info
    argTypes:
    - struct buffer*
    - struct check*
    - struct tcpcheck_rule*
    - int
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 511
    functionName: tcpcheck_expect_onerror_message
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - sample_fetch_as_type
    - chunk_istcat
    - htxbuf
    - TRACE_ERROR
    - chunk_printf
    - chunk_strcat
    - sess_build_logline
    - tcpcheck_get_step_id
    - chunk_appendf
    - b_tail
    - b_room
    - lf_expr_isempty
    - b_data
    - istptr
    - IS_HTX_SC
    - istlen
    - htx_is_empty
    linkageType: ''
    returnType: void
    signature: "void tcpcheck_expect_onerror_message(struct buffer *msg, struct check
      *check, struct tcpcheck_rule *rule,\n\t\t\t\t\t    int match, struct ist info)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:526,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/tcpcheck.c:527,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:528,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:529,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:529,1
    - Dst: b_room
      Src: /src/haproxy/src/tcpcheck.c:529,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tcpcheck.c:533,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcpcheck.c:539,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:547,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 4
    argNames:
    - msg
    - check
    - rule
    - info
    argTypes:
    - struct buffer*
    - struct check*
    - struct tcpcheck_rule*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 548
    functionName: tcpcheck_expect_onsuccess_message
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - chunk_istcat
    - chunk_strcat
    - sess_build_logline
    - b_tail
    - b_room
    - lf_expr_isempty
    - istlen
    - sample_fetch_as_type
    linkageType: ''
    returnType: void
    signature: "void tcpcheck_expect_onsuccess_message(struct buffer *msg, struct
      check *check, struct tcpcheck_rule *rule,\n\t\t\t\t\t      struct ist info)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:564,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:567,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:576,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:577,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:578,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:580,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:589,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:592,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:593,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:594,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:594,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:594,1
    - Dst: get_next_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:598,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:608,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:608,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:611,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:612,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:618,1
    - Dst: tcpcheck_expect_onerror_message
      Src: /src/haproxy/src/tcpcheck.c:620,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:621,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:621,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:625,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 4
    argNames:
    - check
    - rule
    - offset
    - last_read
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 628
    functionName: tcpcheck_mysql_expect_packet
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - b_peek
    - ist2
    - tcpcheck_expect_onerror_message
    - TRACE_LEAVE
    - b_head
    - free_trash_chunk
    - alloc_trash_chunk
    - TRACE_DEVEL
    - TRACE_ENTER
    - b_data
    - set_server_check_status
    - get_next_tcpcheck_rule
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: "enum tcpcheck_eval_ret tcpcheck_mysql_expect_packet(struct check *check,
      struct tcpcheck_rule *rule,\n\t\t\t\t\t\t\t   unsigned int offset, int last_read)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcpcheck_mysql_expect_packet
      Src: /src/haproxy/src/tcpcheck.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - check
    - rule
    - last_read
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 635
    functionDepth: 3
    functionLinenumber: 635
    functionLinenumberEnd: 638
    functionName: tcpcheck_mysql_expect_iniths
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - tcpcheck_mysql_expect_packet
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_mysql_expect_iniths(struct check *check,
      struct tcpcheck_rule *rule, int last_read)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:649,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:650,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:651,1
    - Dst: tcpcheck_mysql_expect_packet
      Src: /src/haproxy/src/tcpcheck.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - check
    - rule
    - last_read
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 654
    functionName: tcpcheck_mysql_expect_ok
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - b_peek
    - tcpcheck_mysql_expect_packet
    - b_head
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_mysql_expect_ok(struct check *check,
      struct tcpcheck_rule *rule, int last_read)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:671,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:677,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:678,1
    - Dst: read_n32
      Src: /src/haproxy/src/tcpcheck.c:695,1
    - Dst: read_n16
      Src: /src/haproxy/src/tcpcheck.c:696,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:699,1
    - Dst: memcmp
      Src: /src/haproxy/src/tcpcheck.c:714,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:716,1
    - Dst: memcmp
      Src: /src/haproxy/src/tcpcheck.c:734,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:736,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:747,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:752,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:755,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:756,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:761,1
    - Dst: tcpcheck_expect_onerror_message
      Src: /src/haproxy/src/tcpcheck.c:763,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:764,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:764,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:775,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 87
    argCount: 3
    argNames:
    - check
    - rule
    - last_read
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 778
    functionName: tcpcheck_ldap_expect_bindrsp
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - ist
    - memcmp
    - b_head
    - TRACE_LEAVE
    - tcpcheck_expect_onerror_message
    - free_trash_chunk
    - alloc_trash_chunk
    - TRACE_DEVEL
    - TRACE_ENTER
    - read_n32
    - b_data
    - set_server_check_status
    - read_n16
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_ldap_expect_bindrsp(struct check *check,
      struct tcpcheck_rule *rule, int last_read)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:796,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:799,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:802,1
    - Dst: read_n32
      Src: /src/haproxy/src/tcpcheck.c:803,1
    - Dst: read_n32
      Src: /src/haproxy/src/tcpcheck.c:805,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:817,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:821,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/tcpcheck.c:830,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:835,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:835,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:835,1
    - Dst: decode_varint
      Src: /src/haproxy/src/tcpcheck.c:844,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:852,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:852,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:852,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/tcpcheck.c:858,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:861,1
    - Dst: spoe_skip_data
      Src: /src/haproxy/src/tcpcheck.c:865,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/tcpcheck.c:880,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:885,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:885,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:885,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/tcpcheck.c:891,1
    - Dst: spoe_str_to_vsn
      Src: /src/haproxy/src/tcpcheck.c:894,1
    - Dst: spoe_check_vsn
      Src: /src/haproxy/src/tcpcheck.c:899,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:905,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:905,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:905,1
    - Dst: decode_varint
      Src: /src/haproxy/src/tcpcheck.c:914,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:923,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:923,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:923,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/tcpcheck.c:929,1
    - Dst: spoe_skip_data
      Src: /src/haproxy/src/tcpcheck.c:936,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:954,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:957,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:958,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:964,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:966,1
    - Dst: tcpcheck_expect_onerror_message
      Src: /src/haproxy/src/tcpcheck.c:968,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:970,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:970,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:984,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 166
    argCount: 3
    argNames:
    - check
    - rule
    - last_read
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 987
    functionName: tcpcheck_spop_expect_hello
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - tcpcheck_expect_onerror_message
    - alloc_trash_chunk
    - TRACE_ENTER
    - set_server_check_status
    - ist2
    - ist
    - TRACE_DEVEL
    - b_tail
    - isteq
    - spoe_check_vsn
    - decode_varint
    - b_head
    - TRACE_LEAVE
    - free_trash_chunk
    - spoe_str_to_vsn
    - spoe_decode_buffer
    - b_data
    - spoe_skip_data
    - read_n32
    - isttest
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_spop_expect_hello(struct check *check,
      struct tcpcheck_rule *rule, int last_read)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:1005,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:1031,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:1032,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1041,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:1046,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1075,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1080,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1085,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1090,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1096,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1099,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1102,1
    - Dst: isdigit
      Src: /src/haproxy/src/tcpcheck.c:1106,1
    - Dst: strchr
      Src: /src/haproxy/src/tcpcheck.c:1106,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/tcpcheck.c:1110,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:1110,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/tcpcheck.c:1114,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:1114,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:1115,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1136,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1137,1
    - Dst: srv_adm_set_drain
      Src: /src/haproxy/src/tcpcheck.c:1138,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1140,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1141,1
    - Dst: srv_adm_set_maint
      Src: /src/haproxy/src/tcpcheck.c:1142,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1145,1
    - Dst: srv_adm_set_ready
      Src: /src/haproxy/src/tcpcheck.c:1146,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1154,1
    - Dst: server_parse_weight_change_request
      Src: /src/haproxy/src/tcpcheck.c:1155,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:1163,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1165,1
    - Dst: server_parse_maxconn_change_request
      Src: /src/haproxy/src/tcpcheck.c:1169,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1191,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1192,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1195,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1196,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1202,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1203,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1204,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1210,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1211,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1212,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1215,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1216,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:1220,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1224,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 141
    argCount: 3
    argNames:
    - check
    - rule
    - last_read
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 993
    functionDepth: 5
    functionLinenumber: 993
    functionLinenumberEnd: 1227
    functionName: tcpcheck_agent_expect_reply
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - srv_adm_set_drain
    - b_head
    - TRACE_LEAVE
    - chunk_printf
    - TRACE_DEVEL
    - TRACE_ENTER
    - b_tail
    - strchr
    - srv_adm_set_ready
    - server_parse_weight_change_request
    - server_parse_maxconn_change_request
    - get_trash_chunk
    - isdigit
    - set_server_check_status
    - srv_adm_set_maint
    - strcasecmp
    - strlen
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_agent_expect_reply(struct check *check,
      struct tcpcheck_rule *rule, int last_read)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_addr
      Src: /src/haproxy/src/tcpcheck.c:1243,1
    - Dst: is_addr
      Src: /src/haproxy/src/tcpcheck.c:1243,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 2
    argCount: 2
    argNames:
    - check
    - connect
    argTypes:
    - struct check*
    - struct tcpcheck_connect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1248
    functionName: tcpcheck_use_nondefault_connect
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - is_addr
    linkageType: ''
    returnType: int
    signature: "int tcpcheck_use_nondefault_connect(const struct check *check,\n                                                  const
      struct tcpcheck_connect *connect)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xprt_get
      Src: /src/haproxy/src/tcpcheck.c:1257,1
    - Dst: xprt_get
      Src: /src/haproxy/src/tcpcheck.c:1258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - check
    - connect
    argTypes:
    - struct check*
    - struct tcpcheck_connect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1261
    functionName: tcpcheck_connect_use_ssl
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - xprt_get
    linkageType: ''
    returnType: int
    signature: "int tcpcheck_connect_use_ssl(const struct check *check,\n\t\t\t\t\t
      \  const struct tcpcheck_connect *connect)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcpcheck.c:1267,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1268,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1268,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1268,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1269,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1270,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:1271,1
    - Dst: b_set_data
      Src: /src/haproxy/src/tcpcheck.c:1279,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:1280,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - check
    - connect
    - chk
    argTypes:
    - struct check*
    - struct tcpcheck_connect*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1282
    functionName: tcpcheck_connect_auto_sni
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - b_orig
    - sess_build_logline
    - b_tail
    - b_data
    - b_size
    - chunk_reset
    - b_set_data
    linkageType: ''
    returnType: void
    signature: "void tcpcheck_connect_auto_sni(const struct check *check,\n\t\t\t\t\t
      \    const struct tcpcheck_connect *connect,\n\t\t\t\t\t     struct buffer *chk)"
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/tcpcheck.c:1295,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:1307,1
    - Dst: tcpcheck_use_nondefault_connect
      Src: /src/haproxy/src/tcpcheck.c:1313,1
    - Dst: srv_is_transparent
      Src: /src/haproxy/src/tcpcheck.c:1314,1
    - Dst: get_next_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:1316,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:1324,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1326,1
    - Dst: tcpcheck_eval_recv
      Src: /src/haproxy/src/tcpcheck.c:1329,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1337,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1338,1
    - Dst: tcpcheck_connect_use_ssl
      Src: /src/haproxy/src/tcpcheck.c:1341,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1342,1
    - Dst: tcpcheck_connect_auto_sni
      Src: /src/haproxy/src/tcpcheck.c:1344,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1345,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1346,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1357,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1360,1
    - Dst: tcpcheck_connect_use_ssl
      Src: /src/haproxy/src/tcpcheck.c:1361,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1363,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1365,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1367,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1367,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1367,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tcpcheck.c:1372,1
    - Dst: be_calculate_conn_hash
      Src: /src/haproxy/src/tcpcheck.c:1380,1
    - Dst: be_reuse_connection
      Src: /src/haproxy/src/tcpcheck.c:1381,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1384,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1385,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:1390,1
    - Dst: __sc_conn
      Src: /src/haproxy/src/tcpcheck.c:1391,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/tcpcheck.c:1392,1
    - Dst: conn_new
      Src: /src/haproxy/src/tcpcheck.c:1400,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1402,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:1403,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:1405,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1406,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1408,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/tcpcheck.c:1411,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1412,1
    - Dst: conn_free
      Src: /src/haproxy/src/tcpcheck.c:1413,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/tcpcheck.c:1421,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/tcpcheck.c:1424,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1425,1
    - Dst: is_addr
      Src: /src/haproxy/src/tcpcheck.c:1437,1
    - Dst: is_addr
      Src: /src/haproxy/src/tcpcheck.c:1439,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/tcpcheck.c:1442,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/tcpcheck.c:1448,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcpcheck.c:1457,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/tcpcheck.c:1463,1
    - Dst: get_host_port
      Src: /src/haproxy/src/tcpcheck.c:1464,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/tcpcheck.c:1467,1
    - Dst: get_host_port
      Src: /src/haproxy/src/tcpcheck.c:1468,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tcpcheck.c:1473,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1474,1
    - Dst: xprt_get
      Src: /src/haproxy/src/tcpcheck.c:1477,1
    - Dst: xprt_get
      Src: /src/haproxy/src/tcpcheck.c:1478,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1483,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1485,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1487,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1487,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1487,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:1489,1
    - Dst: ssl_sock_sni_hash
      Src: /src/haproxy/src/tcpcheck.c:1490,1
    - Dst: conn_prepare
      Src: /src/haproxy/src/tcpcheck.c:1494,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1495,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1503,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1508,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1514,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1519,1
    - Dst: struct protocol*::connect
      Src: /src/haproxy/src/tcpcheck.c:1530,1
    - Dst: conn_set_private
      Src: /src/haproxy/src/tcpcheck.c:1539,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/tcpcheck.c:1544,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:1545,1
    - Dst: ssl_sock_set_servername
      Src: /src/haproxy/src/tcpcheck.c:1546,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:1546,1
    - Dst: ssl_sock_set_alpn
      Src: /src/haproxy/src/tcpcheck.c:1549,1
    - Dst: ssl_sock_set_alpn
      Src: /src/haproxy/src/tcpcheck.c:1551,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/tcpcheck.c:1555,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/tcpcheck.c:1557,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/tcpcheck.c:1560,1
    - Dst: xprt_add_hs
      Src: /src/haproxy/src/tcpcheck.c:1561,1
    - Dst: conn_xprt_start
      Src: /src/haproxy/src/tcpcheck.c:1565,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/tcpcheck.c:1574,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1577,1
    - Dst: tcpchk_rules_type_to_proto_mode
      Src: /src/haproxy/src/tcpcheck.c:1583,1
    - Dst: conn_get_best_mux
      Src: /src/haproxy/src/tcpcheck.c:1585,1
    - Dst: conn_install_mux
      Src: /src/haproxy/src/tcpcheck.c:1587,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1588,1
    - Dst: tick_add
      Src: /src/haproxy/src/tcpcheck.c:1613,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/tcpcheck.c:1613,1
    - Dst: tick_add
      Src: /src/haproxy/src/tcpcheck.c:1616,1
    - Dst: tick_first
      Src: /src/haproxy/src/tcpcheck.c:1617,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1625,1
    - Dst: chk_report_conn_err
      Src: /src/haproxy/src/tcpcheck.c:1627,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:1636,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:1638,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1641,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1648,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/tcpcheck.c:1652,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1655,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:1657,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 251
    argCount: 2
    argNames:
    - check
    - rule
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1288
    functionDepth: 4
    functionLinenumber: 1288
    functionLinenumberEnd: 1659
    functionName: tcpcheck_eval_connect
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - srv_is_transparent
    - struct connection*::mux::subscribe
    - sc_conn
    - tcpcheck_connect_auto_sni
    - conn_ctrl_ready
    - alloc_trash_chunk
    - TRACE_ENTER
    - tcpcheck_get_step_id
    - chunk_appendf
    - xprt_add_hs
    - set_server_check_status
    - sample_fetch_as_type
    - conn_install_mux
    - sockaddr_alloc
    - ist
    - ist2
    - tcpcheck_connect_use_ssl
    - chunk_printf
    - TRACE_DEVEL
    - HA_ATOMIC_AND
    - conn_prepare
    - conn_get_best_mux
    - istptr
    - be_reuse_connection
    - tick_add
    - conn_set_owner
    - b_orig
    - TRACE_ERROR
    - free_trash_chunk
    - sc_attach_mux
    - TRACE_LEAVE
    - MS_TO_TICKS
    - tick_first
    - check_release_buf
    - __sc_conn
    - b_data
    - conn_set_private
    - conn_is_ssl
    - tick_add_ifset
    - ssl_sock_set_alpn
    - get_next_tcpcheck_rule
    - tcpchk_rules_type_to_proto_mode
    - TRACE_STATE
    - struct protocol*::connect
    - conn_free
    - be_calculate_conn_hash
    - ssl_sock_set_servername
    - chk_report_conn_err
    - tcpcheck_eval_recv
    - tcpcheck_use_nondefault_connect
    - get_host_port
    - xprt_get
    - is_inet_addr
    - conn_xprt_start
    - conn_new
    - set_host_port
    - protocol_lookup
    - ssl_sock_sni_hash
    - is_addr
    - isttest
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_eval_connect(struct check *check, struct
      tcpcheck_rule *rule)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/tcpcheck.c:1670,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:1675,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:1679,1
    - Dst: check_get_buf
      Src: /src/haproxy/src/tcpcheck.c:1684,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:1687,1
    - Dst: IS_HTX_CONN
      Src: /src/haproxy/src/tcpcheck.c:1692,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:1692,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:1692,1
    - Dst: IS_HTX_CONN
      Src: /src/haproxy/src/tcpcheck.c:1692,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1692,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1693,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1698,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1703,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1703,1
    - Dst: b_is_small
      Src: /src/haproxy/src/tcpcheck.c:1704,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1706,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1707,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1711,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1712,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1712,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:1713,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1714,1
    - Dst: b_putist
      Src: /src/haproxy/src/tcpcheck.c:1718,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tcpcheck.c:1721,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1722,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1722,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1722,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1723,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1727,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tcpcheck.c:1729,1
    - Dst: alloc_trash_chunk_sz
      Src: /src/haproxy/src/tcpcheck.c:1730,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1733,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1733,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1733,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1734,1
    - Dst: parse_binary
      Src: /src/haproxy/src/tcpcheck.c:1737,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1737,1
    - Dst: alloc_trash_chunk_sz
      Src: /src/haproxy/src/tcpcheck.c:1747,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1747,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1752,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1755,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1755,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1755,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1756,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1756,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1756,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1756,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1756,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:1759,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1759,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:1760,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1760,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1762,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1763,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:1766,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/tcpcheck.c:1769,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/tcpcheck.c:1770,1
    - Dst: http_update_host
      Src: /src/haproxy/src/tcpcheck.c:1774,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:1777,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcpcheck.c:1781,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcpcheck.c:1782,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1783,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1783,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1783,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1784,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1786,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1786,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1786,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/tcpcheck.c:1787,1
    - Dst: isteqi
      Src: /src/haproxy/src/tcpcheck.c:1789,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1789,1
    - Dst: http_update_authority
      Src: /src/haproxy/src/tcpcheck.c:1790,1
    - Dst: isteqi
      Src: /src/haproxy/src/tcpcheck.c:1793,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1793,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcpcheck.c:1799,1
    - Dst: httpchk_build_status_header
      Src: /src/haproxy/src/tcpcheck.c:1800,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/tcpcheck.c:1801,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1801,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1801,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1801,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1801,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcpcheck.c:1807,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1808,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1808,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1808,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1809,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1809,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1809,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/tcpcheck.c:1814,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1814,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1814,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1820,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1821,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1821,1
    - Dst: ultoa
      Src: /src/haproxy/src/tcpcheck.c:1821,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1821,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/tcpcheck.c:1822,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1822,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/tcpcheck.c:1827,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1828,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/tcpcheck.c:1828,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/tcpcheck.c:1833,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/tcpcheck.c:1843,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/tcpcheck.c:1844,1
    - Dst: snd_buf
      Src: /src/haproxy/src/tcpcheck.c:1844,1
    - Dst: IS_HTX_CONN
      Src: /src/haproxy/src/tcpcheck.c:1845,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:1845,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1845,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1846,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1848,1
    - Dst: IS_HTX_CONN
      Src: /src/haproxy/src/tcpcheck.c:1852,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:1852,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:1852,1
    - Dst: IS_HTX_CONN
      Src: /src/haproxy/src/tcpcheck.c:1852,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1852,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:1853,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1855,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1860,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1861,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1862,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:1864,1
    - Dst: htx_reset
      Src: /src/haproxy/src/tcpcheck.c:1869,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/tcpcheck.c:1870,1
    - Dst: b_is_small
      Src: /src/haproxy/src/tcpcheck.c:1872,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1873,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1875,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1876,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1879,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:1880,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1881,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1882,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1887,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:1888,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1889,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1890,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 200
    argCount: 2
    argNames:
    - check
    - rule
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1665
    functionDepth: 4
    functionLinenumber: 1665
    functionLinenumberEnd: 1894
    functionName: tcpcheck_eval_send
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - struct connection*::mux::subscribe
    - sc_ep_test
    - sess_build_logline
    - TRACE_ENTER
    - tcpcheck_get_step_id
    - TRACE_DATA
    - htx_add_data_atonce
    - set_server_check_status
    - istlen
    - htx_is_empty
    - IS_HTX_CONN
    - ist2
    - ist
    - http_update_host
    - chunk_printf
    - TRACE_DEVEL
    - htx_add_header
    - ultoa
    - htx_reset
    - b_putist
    - b_is_small
    - htx_from_buf
    - isteqi
    - htxbuf
    - b_orig
    - parse_binary
    - http_update_authority
    - check_get_buf
    - free_trash_chunk
    - TRACE_LEAVE
    - TRACE_ERROR
    - httpchk_build_status_header
    - CALL_MUX_WITH_RET
    - check_release_buf
    - __sc_conn
    - b_data
    - b_size
    - htx_add_stline
    - chunk_reset
    - alloc_trash_chunk_sz
    - htx_to_buf
    - TRACE_STATE
    - BUG_ON
    - list_for_each_entry
    - snd_buf
    - LIST_ISEMPTY
    - htx_add_endof
    - isttest
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_eval_send(struct check *check, struct
      tcpcheck_rule *rule)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/tcpcheck.c:1904,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:1910,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1913,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1917,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:1921,1
    - Dst: check_get_buf
      Src: /src/haproxy/src/tcpcheck.c:1925,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:1927,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/tcpcheck.c:1934,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1936,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1937,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/tcpcheck.c:1938,1
    - Dst: htx_free_space
      Src: /src/haproxy/src/tcpcheck.c:1938,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:1938,1
    - Dst: b_room
      Src: /src/haproxy/src/tcpcheck.c:1938,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/tcpcheck.c:1939,1
    - Dst: rcv_buf
      Src: /src/haproxy/src/tcpcheck.c:1939,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1942,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/tcpcheck.c:1949,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:1949,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:1949,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1949,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1950,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1956,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1959,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:1960,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1961,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/tcpcheck.c:1964,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1967,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1968,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:1970,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 60
    argCount: 2
    argNames:
    - check
    - rule
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1901
    functionDepth: 1
    functionLinenumber: 1901
    functionLinenumberEnd: 1980
    functionName: tcpcheck_eval_recv
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - rcv_buf
    - struct connection*::mux::subscribe
    - sc_ep_test
    - TRACE_ENTER
    - TRACE_DATA
    - b_room
    - IS_HTX_SC
    - htx_is_empty
    - TRACE_DEVEL
    - htx_free_space
    - htxbuf
    - TRACE_LEAVE
    - TRACE_ERROR
    - check_get_buf
    - CALL_MUX_WITH_RET
    - check_release_buf
    - __sc_conn
    - b_data
    - sc_ep_clr
    - TRACE_STATE
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_eval_recv(struct check *check, struct
      tcpcheck_rule *rule)
  - BBCount: 64
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:1989,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:1999,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/tcpcheck.c:2001,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2004,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:2009,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2011,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2015,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/tcpcheck.c:2019,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:2027,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:2049,1
    - Dst: htx_sl_res_reason
      Src: /src/haproxy/src/tcpcheck.c:2050,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/tcpcheck.c:2053,1
    - Dst: HTX_SL_RES_CPTR
      Src: /src/haproxy/src/tcpcheck.c:2053,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/tcpcheck.c:2053,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:2057,1
    - Dst: htx_sl_res_reason
      Src: /src/haproxy/src/tcpcheck.c:2058,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2067,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2070,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2071,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:2074,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2074,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:2074,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2075,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2077,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2078,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:2081,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2081,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2081,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2087,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2090,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2091,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:2094,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2094,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:2094,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2095,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2097,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2098,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:2101,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2101,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2101,1
    - Dst: http_find_str_header
      Src: /src/haproxy/src/tcpcheck.c:2111,1
    - Dst: http_find_pfx_header
      Src: /src/haproxy/src/tcpcheck.c:2115,1
    - Dst: http_find_sfx_header
      Src: /src/haproxy/src/tcpcheck.c:2119,1
    - Dst: http_find_sub_header
      Src: /src/haproxy/src/tcpcheck.c:2123,1
    - Dst: http_match_header
      Src: /src/haproxy/src/tcpcheck.c:2127,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:2148,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2154,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2154,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:2156,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:2156,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2156,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:2157,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2163,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2163,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:2165,1
    - Dst: istend
      Src: /src/haproxy/src/tcpcheck.c:2165,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2165,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2165,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:2166,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:2172,1
    - Dst: istist
      Src: /src/haproxy/src/tcpcheck.c:2172,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/tcpcheck.c:2178,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:2178,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2178,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:2188,1
    - Dst: htx_sl_res_reason
      Src: /src/haproxy/src/tcpcheck.c:2189,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcpcheck.c:2197,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/tcpcheck.c:2198,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/tcpcheck.c:2198,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/tcpcheck.c:2199,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/tcpcheck.c:2204,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/tcpcheck.c:2204,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2209,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2211,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:2215,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2216,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2217,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2222,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2225,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2226,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:2229,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2229,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:2229,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2230,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2232,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2233,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2239,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2239,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2240,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2240,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2241,1
    - Dst: my_memmem
      Src: /src/haproxy/src/tcpcheck.c:2247,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2247,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2247,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:2247,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2247,1
    - Dst: my_memmem
      Src: /src/haproxy/src/tcpcheck.c:2249,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2249,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2249,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2249,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2249,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/tcpcheck.c:2251,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2251,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2251,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2258,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:2264,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2266,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2267,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:2278,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:2282,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2285,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2286,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2287,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2288,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:2289,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:2293,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2295,1
    - Dst: tcpcheck_expect_onerror_message
      Src: /src/haproxy/src/tcpcheck.c:2297,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2298,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2298,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 280
    argCount: 3
    argNames:
    - check
    - rule
    - last_read
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 1987
    functionDepth: 3
    functionLinenumber: 1987
    functionLinenumberEnd: 2304
    functionName: tcpcheck_eval_expect_http
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - tcpcheck_expect_onerror_message
    - my_memmem
    - alloc_trash_chunk
    - sess_build_logline
    - TRACE_ENTER
    - lf_expr_isempty
    - set_server_check_status
    - HTX_SL_RES_CLEN
    - istlen
    - htx_is_empty
    - http_find_pfx_header
    - htx_sl_res_reason
    - ist
    - ist2
    - TRACE_DEVEL
    - http_match_header
    - htx_get_blk_type
    - isteq
    - istptr
    - htx_get_head_blk
    - htx_get_next_blk
    - chunk_istcat
    - htxbuf
    - b_head
    - b_orig
    - TRACE_ERROR
    - istend
    - free_trash_chunk
    - http_get_stline
    - TRACE_LEAVE
    - b_data
    - b_size
    - chunk_reset
    - htx_free_data_space
    - http_find_str_header
    - htx_get_blk_value
    - regex_exec2
    - TRACE_STATE
    - http_find_sub_header
    - HTX_SL_RES_CPTR
    - istist
    - http_find_sfx_header
    - isttest
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_eval_expect_http(struct check *check,
      struct tcpcheck_rule *rule, int last_read)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:2319,1
    - Dst: b_full
      Src: /src/haproxy/src/tcpcheck.c:2321,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2328,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2328,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2330,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2333,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2335,1
    - Dst: my_memmem
      Src: /src/haproxy/src/tcpcheck.c:2348,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2348,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2348,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:2348,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2348,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/tcpcheck.c:2351,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2351,1
    - Dst: MIN
      Src: /src/haproxy/src/tcpcheck.c:2351,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2351,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:2351,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcpcheck.c:2355,1
    - Dst: dump_binary
      Src: /src/haproxy/src/tcpcheck.c:2356,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2356,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2356,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/tcpcheck.c:2357,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2357,1
    - Dst: MIN
      Src: /src/haproxy/src/tcpcheck.c:2357,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2357,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:2357,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2363,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2366,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2367,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:2370,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2370,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:2370,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2371,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2373,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2374,1
    - Dst: parse_binary
      Src: /src/haproxy/src/tcpcheck.c:2379,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2379,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2381,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2382,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2387,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2390,1
    - Dst: my_memmem
      Src: /src/haproxy/src/tcpcheck.c:2395,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2395,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2395,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2395,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2395,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2404,1
    - Dst: struct tcpcheck_expect*::custom
      Src: /src/haproxy/src/tcpcheck.c:2407,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2421,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:2427,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:2433,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2435,1
    - Dst: tcpcheck_expect_onerror_message
      Src: /src/haproxy/src/tcpcheck.c:2437,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2438,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2438,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2439,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2442,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:2443,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 110
    argCount: 3
    argNames:
    - check
    - rule
    - last_read
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2310
    functionDepth: 2
    functionLinenumber: 2310
    functionLinenumberEnd: 2445
    functionName: tcpcheck_eval_expect
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - tcpcheck_expect_onerror_message
    - my_memmem
    - alloc_trash_chunk
    - sess_build_logline
    - TRACE_ENTER
    - b_full
    - set_server_check_status
    - istlen
    - ist
    - TRACE_DEVEL
    - istptr
    - b_head
    - b_orig
    - TRACE_ERROR
    - parse_binary
    - free_trash_chunk
    - TRACE_LEAVE
    - b_data
    - b_size
    - chunk_reset
    - dump_binary
    - regex_exec2
    - TRACE_STATE
    - MIN
    - struct tcpcheck_expect*::custom
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_eval_expect(struct check *check, struct
      tcpcheck_rule *rule, int last_read)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/tcpcheck.c:2458,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/tcpcheck.c:2459,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:2461,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:2462,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - check
    - rule
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2451
    functionDepth: 1
    functionLinenumber: 2451
    functionLinenumberEnd: 2468
    functionName: tcpcheck_eval_action_kw
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - tcpcheck_get_step_id
    - struct act_rule*::action_ptr
    - EXEC_CTX_WITH_RET
    - set_server_check_status
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_eval_action_kw(struct check *check,
      struct tcpcheck_rule *rule)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/tcpcheck.c:2482,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:2491,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:2499,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2506,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:2506,1
    - Dst: session_new
      Src: /src/haproxy/src/tcpcheck.c:2515,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:2517,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2518,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2519,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/tcpcheck.c:2522,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/tcpcheck.c:2523,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:2523,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcpcheck.c:2526,1
    - Dst: memset
      Src: /src/haproxy/src/tcpcheck.c:2529,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/tcpcheck.c:2530,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/src/tcpcheck.c:2532,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:2532,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2532,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2534,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/tcpcheck.c:2539,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcpcheck.c:2544,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2553,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2558,1
    - Dst: tcpcheck_eval_connect
      Src: /src/haproxy/src/tcpcheck.c:2559,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcpcheck.c:2562,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/tcpcheck.c:2564,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:2564,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:2564,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2564,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2568,1
    - Dst: tcpcheck_eval_send
      Src: /src/haproxy/src/tcpcheck.c:2569,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2574,1
    - Dst: tcpcheck_eval_recv
      Src: /src/haproxy/src/tcpcheck.c:2576,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:2581,1
    - Dst: tcpcheck_eval_expect_http
      Src: /src/haproxy/src/tcpcheck.c:2586,1
    - Dst: tcpcheck_eval_expect
      Src: /src/haproxy/src/tcpcheck.c:2587,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:2592,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2597,1
    - Dst: tcpcheck_eval_action_kw
      Src: /src/haproxy/src/tcpcheck.c:2598,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2622,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2632,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2633,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2637,1
    - Dst: tcpcheck_expect_onsuccess_message
      Src: /src/haproxy/src/tcpcheck.c:2639,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2641,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2641,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2642,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/tcpcheck.c:2648,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2651,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2654,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2657,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2659,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:2662,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2663,1
    - Dst: chk_report_conn_err
      Src: /src/haproxy/src/tcpcheck.c:2665,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:2669,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:2670,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:2673,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 135
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2675
      start: 2478
    functionDepth: 5
    functionLinenumber: 2478
    functionLinenumberEnd: 2675
    functionName: tcpcheck_main
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - struct connection*::mux::subscribe
    - sc_conn
    - LIST_NEXT
    - sc_ep_test
    - tcpcheck_expect_onsuccess_message
    - alloc_trash_chunk
    - tcpcheck_get_step_id
    - TRACE_ENTER
    - vars_init_head
    - set_server_check_status
    - IS_HTX_SC
    - istlen
    - htx_is_empty
    - tcpcheck_eval_expect_http
    - chunk_printf
    - session_new
    - TRACE_DEVEL
    - smp_set_owner
    - tcpcheck_eval_expect
    - istptr
    - vars_set_by_name_ifexist
    - TRACE_PROTO
    - typeof
    - htxbuf
    - TRACE_ERROR
    - b_head
    - free_trash_chunk
    - TRACE_LEAVE
    - tcpcheck_eval_connect
    - check_release_buf
    - b_data
    - conn_is_ssl
    - tcpcheck_eval_action_kw
    - memset
    - list_for_each_entry
    - list_for_each_entry_from
    - tcpcheck_eval_send
    - chk_report_conn_err
    - tcpcheck_eval_recv
    linkageType: ''
    returnType: int
    signature: int tcpcheck_main(struct check *check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: act_add_list
      Src: /src/haproxy/src/tcpcheck.c:2679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2680
      start: 2677
    functionDepth: 2
    functionLinenumber: 2677
    functionLinenumberEnd: 2680
    functionName: tcp_check_keywords_register
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - act_add_list
    linkageType: ''
    returnType: void
    signature: void tcp_check_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: new_act_rule
      Src: /src/haproxy/src/tcpcheck.c:2699,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2701,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/tcpcheck.c:2707,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2708,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:2712,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2714,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2722,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 8
    argNames:
    - args
    - cur_arg
    - px
    - rules
    - kw
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct list*
    - struct action_kw*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2692
    functionDepth: 5
    functionLinenumber: 2692
    functionLinenumberEnd: 2724
    functionName: parse_tcpcheck_action
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - memprintf
    - new_act_rule
    - struct action_kw*::parse
    - calloc
    - free
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: "struct tcpcheck_rule *parse_tcpcheck_action(char **args, int cur_arg,
      struct proxy *px,\n                                            struct list *rules,
      struct action_kw *kw,\n                                            const char
      *file, int line, char **errmsg)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2749,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2757,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2759,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2763,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/tcpcheck.c:2767,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2771,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2777,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2781,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcpcheck.c:2787,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:2788,1
    - Dst: read_uint
      Src: /src/haproxy/src/tcpcheck.c:2789,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcpcheck.c:2794,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2798,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2802,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/tcpcheck.c:2805,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2810,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2815,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2817,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/tcpcheck.c:2820,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2820,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2822,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2826,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2827,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2830,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2831,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2837,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2839,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2843,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:2844,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2846,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2850,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2852,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2854,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2857,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2861,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2863,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2867,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:2868,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2870,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2874,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2876,1
    - Dst: ssl_sock_parse_alpn
      Src: /src/haproxy/src/tcpcheck.c:2877,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2878,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2883,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2890,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 137
    argCount: 7
    argNames:
    - args
    - cur_arg
    - px
    - rules
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct list*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2729
    functionDepth: 5
    functionLinenumber: 2729
    functionLinenumberEnd: 2899
    functionName: parse_tcpcheck_connect
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ist
    - read_uint
    - strcmp
    - sample_src_names
    - free
    - get_mux_proto
    - ssl_sock_parse_alpn
    - str2sa_range
    - sample_parse_expr
    - strdup
    - release_sample_expr
    - strlen
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: "struct tcpcheck_rule *parse_tcpcheck_connect(char **args, int cur_arg,
      struct proxy *px, struct list *rules,\n                                             const
      char *file, int line, char **errmsg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2749,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2753
      start: 2741
    functionDepth: 5
    functionLinenumber: 2741
    functionLinenumberEnd: 2753
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 135
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(chk, rules, list)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2935,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2937,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2939,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2941,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2945,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2954,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2956,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2960,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:2961,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2963,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2968,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:2975,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2977,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2986,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:2986,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:2987,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2988,1
    - Dst: parse_binary
      Src: /src/haproxy/src/tcpcheck.c:2994,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2995,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3003,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3005,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3006,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3018,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3019,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 86
    argCount: 7
    argNames:
    - args
    - cur_arg
    - px
    - rules
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct list*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 2928
    functionDepth: 5
    functionLinenumber: 2928
    functionLinenumberEnd: 3021
    functionName: parse_tcpcheck_send
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - parse_logformat_string
    - memprintf
    - ist
    - isttest
    - parse_binary
    - calloc
    - strcmp
    - free
    - strdup
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: "struct tcpcheck_rule *parse_tcpcheck_send(char **args, int cur_arg,
      struct proxy *px, struct list *rules,\n                                          const
      char *file, int line, char **errmsg)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3037,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3039,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3045,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3045,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3047,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3051,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3056,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3058,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3064,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3066,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3070,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3072,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:3073,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3078,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3079,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3082,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3083,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3088,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3088,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3090,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3094,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3099,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3101,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3105,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3106,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3108,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3113,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:3122,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3124,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:3131,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/tcpcheck.c:3134,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:3134,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3135,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:3136,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3138,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3144,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3146,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3147,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3152,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3152,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3153,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3154,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3160,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3160,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3161,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3162,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:3166,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:3167,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3169,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3172,1
    - Dst: istdup
      Src: /src/haproxy/src/tcpcheck.c:3173,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3174,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3175,1
    - Dst: ist0
      Src: /src/haproxy/src/tcpcheck.c:3179,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3180,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:3180,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:3182,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3188,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3190,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3191,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3196,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3196,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3197,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3198,1
    - Dst: free_tcpcheck_http_hdr
      Src: /src/haproxy/src/tcpcheck.c:3207,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:3208,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3209,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 185
    argCount: 7
    argNames:
    - args
    - cur_arg
    - px
    - rules
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct list*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3211
      start: 3024
    functionDepth: 6
    functionLinenumber: 3024
    functionLinenumberEnd: 3211
    functionName: parse_tcpcheck_send_http
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - LIST_APPEND
    - LIST_INIT
    - istlen
    - lf_expr_init
    - parse_logformat_string
    - ist
    - free_tcpcheck
    - strcmp
    - istptr
    - find_http_meth
    - ist0
    - calloc
    - strdup
    - strcasecmp
    - free_tcpcheck_http_hdr
    - istdup
    - strlen
    - isttest
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: "struct tcpcheck_rule *parse_tcpcheck_send_http(char **args, int cur_arg,
      struct proxy *px, struct list *rules,\n                                               const
      char *file, int line, char **errmsg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3221,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3225,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3227,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:3231,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3233,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 7
    argNames:
    - args
    - cur_arg
    - px
    - rules
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct list*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3243
      start: 3214
    functionDepth: 5
    functionLinenumber: 3214
    functionLinenumberEnd: 3243
    functionName: parse_tcpcheck_comment
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - calloc
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: "struct tcpcheck_rule *parse_tcpcheck_comment(char **args, int cur_arg,
      struct proxy *px, struct list *rules,\n                                             const
      char *file, int line, char **errmsg)"
  - BBCount: 134
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3266,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3275,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3277,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3281,1
    - Dst: atol
      Src: /src/haproxy/src/tcpcheck.c:3286,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3288,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3302,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3302,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3304,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3313,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3319,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3319,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3323,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3329,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3335,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3335,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3337,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3349,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3355,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3355,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3359,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3365,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3371,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3373,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3377,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3382,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3382,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3388,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3393,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3398,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3398,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3399,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3404,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3408,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3410,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3414,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3416,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3418,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3420,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3422,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3424,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3431,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3442,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3442,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3446,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3450,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3453,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3457,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3459,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3461,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3463,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3465,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3467,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3474,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3483,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3489,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3491,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3495,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3499,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3500,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3502,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3506,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3508,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3512,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3518,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3520,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3524,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3530,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3532,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3536,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3539,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3541,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3543,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3545,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3548,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3554,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3556,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3560,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3563,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3565,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3567,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3569,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3571,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3574,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3580,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3584,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3588,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcpcheck.c:3593,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcpcheck.c:3595,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3598,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3602,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/tcpcheck.c:3605,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3609,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3611,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3615,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3618,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3620,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3622,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3625,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3634,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3639,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:3648,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3650,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3654,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3655,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3667,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3668,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3674,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3675,1
    - Dst: read_uint
      Src: /src/haproxy/src/tcpcheck.c:3688,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:3688,1
    - Dst: read_uint
      Src: /src/haproxy/src/tcpcheck.c:3691,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:3691,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3694,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/tcpcheck.c:3699,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3702,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3711,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3720,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3720,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3721,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3722,1
    - Dst: parse_binary
      Src: /src/haproxy/src/tcpcheck.c:3729,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3730,1
    - Dst: regex_comp
      Src: /src/haproxy/src/tcpcheck.c:3740,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3748,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3750,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3751,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3758,1
    - Dst: regex_comp
      Src: /src/haproxy/src/tcpcheck.c:3762,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3768,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3769,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3770,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3775,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3775,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3776,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3777,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3788,1
    - Dst: regex_comp
      Src: /src/haproxy/src/tcpcheck.c:3792,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3798,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3799,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3800,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3805,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3805,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3806,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3807,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3817,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:3837,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3838,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcpcheck.c:3839,1
    CyclomaticComplexity: 215
    EdgeCount: 215
    ICount: 579
    argCount: 8
    argNames:
    - args
    - cur_arg
    - px
    - rules
    - proto
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct list*
    - unsigned int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3841
      start: 3249
    functionDepth: 6
    functionLinenumber: 3249
    functionLinenumberEnd: 3841
    functionName: parse_tcpcheck_expect
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - sample_src_names
    - lf_expr_init
    - parse_logformat_string
    - ist
    - atol
    - free_tcpcheck
    - strcmp
    - sample_parse_expr
    - my_realloc2
    - read_uint
    - parse_binary
    - regex_comp
    - calloc
    - strdup
    - strcasecmp
    - release_sample_expr
    - strlen
    - isttest
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: "struct tcpcheck_rule *parse_tcpcheck_expect(char **args, int cur_arg,
      struct proxy *px,\n                                            struct list *rules,
      unsigned int proto,\n                                            const char
      *file, int line, char **errmsg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3833
      start: 3825
    functionDepth: 0
    functionLinenumber: 3825
    functionLinenumberEnd: 3833
    functionName: list_for_each_entry_rev
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_rev(prev_check, rules, list)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3853,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3854,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3855,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3856,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3857,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3858,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3861,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3861,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3861,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:3863,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:3865,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3867,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3868,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3870,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:3870,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3870,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:3872,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:3874,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3876,1
    - Dst: lf_expr_xfer
      Src: /src/haproxy/src/tcpcheck.c:3877,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3877,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3880,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3880,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:3881,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3882,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3883,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:3886,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3886,1
    - Dst: free_tcpcheck_http_hdrs
      Src: /src/haproxy/src/tcpcheck.c:3887,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/tcpcheck.c:3888,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3888,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:3889,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:3890,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3894,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3894,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3894,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:3896,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:3898,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3900,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3901,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3903,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:3903,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3903,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:3905,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:3907,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3909,1
    - Dst: lf_expr_xfer
      Src: /src/haproxy/src/tcpcheck.c:3910,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3910,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct tcpcheck_rule*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3912
      start: 3848
    functionDepth: 5
    functionLinenumber: 3848
    functionLinenumberEnd: 3912
    functionName: tcpcheck_overwrite_send_http_rule
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - LIST_DELETE
    - istfree
    - free_tcpcheck_http_hdrs
    - list_for_each_entry_safe
    - free
    - send::send
    - LIST_APPEND
    - lf_expr_isempty
    - LIST_ISEMPTY
    - lf_expr_xfer
    - lf_expr_deinit
    - isttest
    linkageType: ''
    returnType: void
    signature: void tcpcheck_overwrite_send_http_rule(struct tcpcheck_rule *old, struct
      tcpcheck_rule *new)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:3946,1
    - Dst: get_next_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:3948,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/tcpcheck.c:3950,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:3952,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:3953,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/tcpcheck.c:3954,1
    - Dst: tcpcheck_overwrite_send_http_rule
      Src: /src/haproxy/src/tcpcheck.c:3957,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:3958,1
    - Dst: get_last_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:3968,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3972,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3977,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3982,1
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:3988,1
    - Dst: tcpcheck_overwrite_send_http_rule
      Src: /src/haproxy/src/tcpcheck.c:3990,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:3991,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:3992,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:3997,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 3
    argNames:
    - chk
    - rs
    - errmsg
    argTypes:
    - struct tcpcheck_rule*
    - struct tcpcheck_ruleset*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4000
      start: 3920
    functionDepth: 6
    functionLinenumber: 3920
    functionLinenumberEnd: 4000
    functionName: tcpcheck_add_http_rule
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - memprintf
    - get_last_tcpcheck_rule
    - free_tcpcheck
    - LIST_APPEND
    - tcpcheck_overwrite_send_http_rule
    - get_first_tcpcheck_rule
    - LIST_INSERT
    - get_next_tcpcheck_rule
    linkageType: ''
    returnType: int
    signature: int tcpcheck_add_http_rule(struct tcpcheck_rule *chk, struct tcpcheck_ruleset
      *rs, char **errmsg)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:4018,1
    - Dst: get_next_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:4020,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:4022,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/tcpcheck.c:4023,1
    - Dst: get_last_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:4032,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4034,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4038,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4040,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4044,1
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:4054,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:4056,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4058,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/tcpcheck.c:4065,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcpcheck.c:4075,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcpcheck.c:4084,1
    - Dst: isteqi
      Src: /src/haproxy/src/tcpcheck.c:4085,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4085,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/tcpcheck.c:4099,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:4103,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4108,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:4110,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4111,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4115,1
    - Dst: get_next_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:4116,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:4121,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:4128,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:4137,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4145,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:4149,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 102
    argCount: 2
    argNames:
    - px
    - rs
    argTypes:
    - struct proxy*
    - struct tcpcheck_ruleset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4153
      start: 4003
    functionDepth: 7
    functionLinenumber: 4003
    functionLinenumberEnd: 4153
    functionName: check_tcpcheck_ruleset
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - isteqi
    - ist
    - istlen
    - parse_tcpcheck_expect
    - get_last_tcpcheck_rule
    - calloc
    - list_for_each_entry
    - list_for_each_entry_safe
    - ha_free
    - free
    - LIST_APPEND
    - get_first_tcpcheck_rule
    - ha_alert
    - LIST_INSERT
    - get_next_tcpcheck_rule
    - strdup
    linkageType: ''
    returnType: int
    signature: int check_tcpcheck_ruleset(struct proxy *px, struct tcpcheck_ruleset
      *rs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: deinit_proxy_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:4161,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:4165,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:4166,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4169,1
    - Dst: check_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4178
      start: 4156
    functionDepth: 8
    functionLinenumber: 4156
    functionLinenumberEnd: 4178
    functionName: check_proxy_tcpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - deinit_proxy_tcpcheck
    - ha_alert
    - ha_free
    - check_tcpcheck_ruleset
    linkageType: ''
    returnType: int
    signature: int check_proxy_tcpcheck(struct proxy *px)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4186,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4188,1
    - Dst: dup_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4193,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4194,1
    - Dst: check_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4207
      start: 4180
    functionDepth: 8
    functionLinenumber: 4180
    functionLinenumberEnd: 4207
    functionName: check_server_tcpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - dup_tcpcheck_vars
    - ha_alert
    - find_tcpcheck_ruleset
    - check_tcpcheck_ruleset
    linkageType: ''
    returnType: int
    signature: int check_server_tcpcheck(struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4214
      start: 4209
    functionDepth: 5
    functionLinenumber: 4209
    functionLinenumberEnd: 4214
    functionName: deinit_proxy_tcpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - free_tcpcheck_vars
    linkageType: ''
    returnType: void
    signature: void deinit_proxy_tcpcheck(struct proxy *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_first
      Src: /src/haproxy/src/tcpcheck.c:4221,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/tcpcheck.c:4223,1
    - Dst: container_of
      Src: /src/haproxy/src/tcpcheck.c:4224,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:4224,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4228
      start: 4216
    functionDepth: 7
    functionLinenumber: 4216
    functionLinenumberEnd: 4228
    functionName: deinit_tcpchecks
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - typeof
    - ebpt_next
    - container_of
    - ebpt_first
    - free_tcpcheck_ruleset
    linkageType: ''
    returnType: void
    signature: void deinit_tcpchecks()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pool_zalloc
      Src: /src/haproxy/src/tcpcheck.c:4235,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:4241,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:4242,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4246,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4246,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:4247,1
    - Dst: pool_free
      Src: /src/haproxy/src/tcpcheck.c:4248,1
    - Dst: list_for_each_entry_rev
      Src: /src/haproxy/src/tcpcheck.c:4256,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - rs
    - str
    argTypes:
    - struct tcpcheck_ruleset*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4267
      start: 4230
    functionDepth: 1
    functionLinenumber: 4230
    functionLinenumberEnd: 4267
    functionName: add_tcpcheck_expect_str
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - pool_zalloc
    - ist
    - list_for_each_entry_rev
    - LIST_APPEND
    - strdup
    - pool_free
    - isttest
    linkageType: ''
    returnType: int
    signature: int add_tcpcheck_expect_str(struct tcpcheck_ruleset *rs, const char
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_zalloc
      Src: /src/haproxy/src/tcpcheck.c:4277,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4285,1
    - Dst: malloc
      Src: /src/haproxy/src/tcpcheck.c:4287,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:4287,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:4288,1
    - Dst: pool_free
      Src: /src/haproxy/src/tcpcheck.c:4289,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:4293,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - rs
    - strs
    argTypes:
    - struct tcpcheck_ruleset*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4300
      start: 4269
    functionDepth: 1
    functionLinenumber: 4269
    functionLinenumberEnd: 4300
    functionName: add_tcpcheck_send_strs
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - malloc
    - pool_zalloc
    - LIST_APPEND
    - strlen
    - istptr
    - istlen
    - pool_free
    - isttest
    linkageType: ''
    returnType: int
    signature: int add_tcpcheck_send_strs(struct tcpcheck_ruleset *rs, const char
      * const *strs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:4310,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/tcpcheck.c:4311,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:4311,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4317,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:4318,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4319,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4319,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4320,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4320,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:4321,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4322,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4323,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4324,1
    - Dst: parse_tcpcheck_comment
      Src: /src/haproxy/src/tcpcheck.c:4325,1
    - Dst: action_kw_tcp_check_lookup
      Src: /src/haproxy/src/tcpcheck.c:4327,1
    - Dst: action_kw_tcp_check_build_list
      Src: /src/haproxy/src/tcpcheck.c:4330,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4331,1
    - Dst: parse_tcpcheck_action
      Src: /src/haproxy/src/tcpcheck.c:4336,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4340,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4347,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:4363,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 6
    argNames:
    - args
    - curpx
    - rs
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - struct proxy*
    - struct tcpcheck_ruleset*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4365
      start: 4303
    functionDepth: 7
    functionLinenumber: 4303
    functionLinenumberEnd: 4365
    functionName: do_parse_tcpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - memprintf
    - typeof
    - parse_tcpcheck_comment
    - parse_tcpcheck_expect
    - LIST_PREV
    - free_tcpcheck
    - strcmp
    - action_kw_tcp_check_build_list
    - LIST_APPEND
    - LIST_ISEMPTY
    - parse_tcpcheck_send
    - parse_tcpcheck_action
    - parse_tcpcheck_connect
    - action_kw_tcp_check_lookup
    linkageType: ''
    returnType: int
    signature: "int do_parse_tcpcheck(char **args, struct proxy *curpx, struct tcpcheck_ruleset
      *rs,\n\t\t\t     const char *file, int line, char **errmsg)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4374,1
    - Dst: too_many_args
      Src: /src/haproxy/src/tcpcheck.c:4377,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4381,1
    - Dst: too_many_args
      Src: /src/haproxy/src/tcpcheck.c:4384,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:4390,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/tcpcheck.c:4391,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:4391,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4397,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:4398,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4399,1
    - Dst: parse_tcpcheck_send_http
      Src: /src/haproxy/src/tcpcheck.c:4400,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4401,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4402,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4404,1
    - Dst: parse_tcpcheck_comment
      Src: /src/haproxy/src/tcpcheck.c:4405,1
    - Dst: action_kw_tcp_check_lookup
      Src: /src/haproxy/src/tcpcheck.c:4407,1
    - Dst: action_kw_tcp_check_build_list
      Src: /src/haproxy/src/tcpcheck.c:4410,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4411,1
    - Dst: parse_tcpcheck_action
      Src: /src/haproxy/src/tcpcheck.c:4416,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4420,1
    - Dst: tcpcheck_add_http_rule
      Src: /src/haproxy/src/tcpcheck.c:4431,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4432,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4440,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:4447,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 6
    argNames:
    - args
    - curpx
    - rs
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - struct proxy*
    - struct tcpcheck_ruleset*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4449
      start: 4367
    functionDepth: 7
    functionLinenumber: 4367
    functionLinenumberEnd: 4449
    functionName: do_parse_httpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - tcpcheck_add_http_rule
    - memprintf
    - typeof
    - parse_tcpcheck_comment
    - parse_tcpcheck_expect
    - LIST_PREV
    - free_tcpcheck
    - strcmp
    - action_kw_tcp_check_build_list
    - LIST_APPEND
    - LIST_ISEMPTY
    - parse_tcpcheck_send_http
    - parse_tcpcheck_action
    - too_many_args
    - parse_tcpcheck_connect
    - action_kw_tcp_check_lookup
    linkageType: ''
    returnType: int
    signature: "int do_parse_httpcheck(char **args, struct proxy *curpx, struct tcpcheck_ruleset
      *rs,\n\t\t\t      const char *file, int line, char **errmsg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4464,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:4467,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:4470,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4473,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4477,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4479,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4486,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4490,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4493,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - rs
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct tcpcheck_ruleset*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4499
      start: 4451
    functionDepth: 7
    functionLinenumber: 4451
    functionLinenumberEnd: 4499
    functionName: do_parse_redis_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - parse_tcpcheck_expect
    - LIST_APPEND
    - free
    - LIST_ISEMPTY
    - parse_tcpcheck_send
    - ha_alert
    - free_tcpcheck_vars
    linkageType: ''
    returnType: int
    signature: "int do_parse_redis_check_opt(char **args, int cur_arg, struct proxy
      *curpx, struct tcpcheck_ruleset *rs,\n\t\t\t\t    const char *file, int line)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4542,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:4545,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:4548,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4551,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4555,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4557,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4563,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4567,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - rs
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct tcpcheck_ruleset*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4576
      start: 4501
    functionDepth: 7
    functionLinenumber: 4501
    functionLinenumberEnd: 4576
    functionName: do_parse_ssl_hello_chk_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - parse_tcpcheck_expect
    - LIST_APPEND
    - free
    - LIST_ISEMPTY
    - parse_tcpcheck_send
    - ha_alert
    - free_tcpcheck_vars
    linkageType: ''
    returnType: int
    signature: "int do_parse_ssl_hello_chk_opt(char **args, int cur_arg, struct proxy
      *curpx, struct tcpcheck_ruleset *rs,\n\t\t\t\t      const char *file, int line)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4592,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4596,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4596,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4598,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4598,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:4599,1
    - Dst: snprintf
      Src: /src/haproxy/src/tcpcheck.c:4601,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4606,1
    - Dst: create_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:4609,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4609,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4611,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4616,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:4617,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4618,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:4622,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:4625,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4628,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4632,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4634,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4641,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4645,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4647,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4655,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4659,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:4661,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4664,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4668,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4670,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4678,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4682,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:4686,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4689,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4693,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4695,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4704,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4708,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4711,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4715,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4716,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4717,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 96
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - rs
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct tcpcheck_ruleset*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4720
      start: 4578
    functionDepth: 7
    functionLinenumber: 4578
    functionLinenumberEnd: 4720
    functionName: do_parse_smtpchk_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - ist
    - parse_tcpcheck_expect
    - calloc
    - strcmp
    - parse_tcpcheck_connect
    - LIST_APPEND
    - free
    - LIST_ISEMPTY
    - ha_alert
    - parse_tcpcheck_send
    - free_tcpcheck_vars
    - strdup
    - create_tcpcheck_var
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int do_parse_smtpchk_opt(char **args, int cur_arg, struct proxy *curpx,
      struct tcpcheck_ruleset *rs,\n\t\t\t\tconst char *file, int line)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4743,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4747,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4751,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4752,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4753,1
    - Dst: create_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:4755,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4755,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4757,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4762,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:4763,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4764,1
    - Dst: create_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:4768,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4768,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4770,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:4775,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4776,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4780,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:4785,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:4788,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4791,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4795,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:4797,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4800,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4804,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4806,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4813,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4817,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4819,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4827,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4831,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4834,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4838,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4839,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4840,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 89
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - rs
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct tcpcheck_ruleset*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4843
      start: 4722
    functionDepth: 7
    functionLinenumber: 4722
    functionLinenumberEnd: 4843
    functionName: do_parse_pgsql_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - ist
    - parse_tcpcheck_expect
    - strcmp
    - LIST_APPEND
    - free
    - LIST_ISEMPTY
    - strlen
    - ha_alert
    - parse_tcpcheck_send
    - free_tcpcheck_vars
    - parse_tcpcheck_connect
    - create_tcpcheck_var
    - strdup
    linkageType: ''
    returnType: int
    signature: "int do_parse_pgsql_check_opt(char **args, int cur_arg, struct proxy
      *curpx, struct tcpcheck_ruleset *rs,\n\t\t\t\t    const char *file, int line)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4938,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4944,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4945,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4951,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:4956,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4957,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4958,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4961,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4965,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4969,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4973,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4979,1
    - Dst: create_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:4989,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4989,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4991,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:4997,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4998,1
    - Dst: create_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:5002,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:5002,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5004,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:5009,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:5010,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5011,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:5016,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:5019,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5022,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5026,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:5029,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5032,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5036,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:5039,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5042,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5047,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:5050,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5053,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5058,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5062,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5066,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5067,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5068,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5069,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 125
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - rs
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct tcpcheck_ruleset*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5072
      start: 4845
    functionDepth: 7
    functionLinenumber: 4845
    functionLinenumberEnd: 5072
    functionName: do_parse_mysql_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - ist
    - parse_tcpcheck_expect
    - calloc
    - strcmp
    - LIST_APPEND
    - free
    - LIST_ISEMPTY
    - strlen
    - ha_alert
    - parse_tcpcheck_send
    - free_tcpcheck_vars
    - parse_tcpcheck_connect
    - create_tcpcheck_var
    - strdup
    linkageType: ''
    returnType: int
    signature: "int do_parse_mysql_check_opt(char **args, int cur_arg, struct proxy
      *curpx, struct tcpcheck_ruleset *rs,\n\t\t\t\t    const char *file, int line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5087,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:5090,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:5093,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5096,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5100,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:5102,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5108,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5112,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:5114,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5117,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5122,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5125,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - rs
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct tcpcheck_ruleset*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5131
      start: 5074
    functionDepth: 7
    functionLinenumber: 5074
    functionLinenumberEnd: 5131
    functionName: do_parse_ldap_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - parse_tcpcheck_expect
    - LIST_APPEND
    - free
    - LIST_ISEMPTY
    - parse_tcpcheck_send
    - ha_alert
    - free_tcpcheck_vars
    linkageType: ''
    returnType: int
    signature: "int do_parse_ldap_check_opt(char **args, int cur_arg, struct proxy
      *curpx, struct tcpcheck_ruleset *rs,\n\t\t\t\t   const char *file, int line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5151,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:5154,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:5157,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5160,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5164,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:5166,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5169,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5173,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:5175,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5178,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5183,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - rs
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct tcpcheck_ruleset*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5191
      start: 5133
    functionDepth: 7
    functionLinenumber: 5133
    functionLinenumberEnd: 5191
    functionName: do_parse_spop_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - parse_tcpcheck_expect
    - LIST_APPEND
    - LIST_ISEMPTY
    - ha_alert
    - parse_tcpcheck_send
    - free_tcpcheck_vars
    - parse_tcpcheck_connect
    linkageType: ''
    returnType: int
    signature: "int do_parse_spop_check_opt(char **args, int cur_arg, struct proxy
      *curpx, struct tcpcheck_ruleset *rs,\n\t\t\t\t   const char *file, int line)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/haproxy/src/tcpcheck.c:5201,1
    - Dst: strstr
      Src: /src/haproxy/src/tcpcheck.c:5202,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5204,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:5209,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5211,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:5218,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/tcpcheck.c:5235,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:5235,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:5236,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:5237,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5239,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:5244,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:5244,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:5245,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5246,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:5251,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:5251,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:5252,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5253,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:5258,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5260,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:5263,1
    - Dst: istdup
      Src: /src/haproxy/src/tcpcheck.c:5264,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:5264,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:5265,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5266,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:5270,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5272,1
    - Dst: free_tcpcheck_http_hdr
      Src: /src/haproxy/src/tcpcheck.c:5279,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:5280,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 4
    argNames:
    - args
    - cur_arg
    - px
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5282
      start: 5194
    functionDepth: 6
    functionLinenumber: 5194
    functionLinenumberEnd: 5282
    functionName: do_parse_httpchk_req
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - parse_logformat_string
    - memprintf
    - ist
    - isttest
    - calloc
    - free_tcpcheck_http_hdr
    - free_tcpcheck
    - LIST_APPEND
    - istdup
    - find_http_meth
    - strstr
    - strdup
    - LIST_INIT
    - strlen
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: struct tcpcheck_rule *do_parse_httpchk_req(char **args, int cur_arg,
      struct proxy *px, char **errmsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5295,1
    - Dst: do_parse_httpchk_req
      Src: /src/haproxy/src/tcpcheck.c:5299,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5301,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tcpcheck.c:5305,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:5307,1
    - Dst: tcpcheck_add_http_rule
      Src: /src/haproxy/src/tcpcheck.c:5310,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5311,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5316,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:5320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - rs
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct tcpcheck_ruleset*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5323
      start: 5284
    functionDepth: 7
    functionLinenumber: 5284
    functionLinenumberEnd: 5323
    functionName: do_parse_httpchk_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - tcpcheck_add_http_rule
    - ha_free
    - do_parse_httpchk_req
    - free_tcpcheck
    - free
    - ha_alert
    - ha_warning
    - free_tcpcheck_vars
    linkageType: ''
    returnType: int
    signature: "int do_parse_httpchk_opt(char **args, int cur_arg, struct proxy *curpx,
      struct tcpcheck_ruleset *rs,\n\t\t\t\tconst char *file, int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - rs
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct tcpcheck_ruleset*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5339
      start: 5325
    functionDepth: 5
    functionLinenumber: 5325
    functionLinenumberEnd: 5339
    functionName: do_parse_tcp_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - free_tcpcheck_vars
    linkageType: ''
    returnType: int
    signature: "int do_parse_tcp_check_opt(char **args, int cur_arg, struct proxy
      *curpx, struct tcpcheck_ruleset *rs,\n\t\t\t\t  const char *file, int line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5348,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:5352,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5356,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5356,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5358,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5358,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5360,1
    - Dst: do_parse_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:5367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 7
    argNames:
    - args
    - section
    - curpx
    - defpx
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5372
      start: 5342
    functionDepth: 8
    functionLinenumber: 5342
    functionLinenumberEnd: 5372
    functionName: proxy_parse_tcpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - memprintf
    - b_orig
    - chunk_printf
    - do_parse_tcpcheck
    - find_tcpcheck_ruleset
    - create_tcpcheck_ruleset
    - warnifnotcap
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_tcpcheck(char **args, int section, struct proxy *curpx,
      const struct proxy *defpx,\n                         const char *file, int line,
      char **errmsg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5381,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:5385,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5389,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5389,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5391,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5391,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5393,1
    - Dst: do_parse_httpcheck
      Src: /src/haproxy/src/tcpcheck.c:5400,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 7
    argNames:
    - args
    - section
    - curpx
    - defpx
    - file
    - line
    - errmsg
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5405
      start: 5375
    functionDepth: 8
    functionLinenumber: 5375
    functionLinenumberEnd: 5405
    functionName: proxy_parse_httpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - memprintf
    - b_orig
    - chunk_printf
    - find_tcpcheck_ruleset
    - do_parse_httpcheck
    - create_tcpcheck_ruleset
    - warnifnotcap
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_httpcheck(char **args, int section, struct proxy *curpx,
      const struct proxy *defpx,\n\t\t\t\t const char *file, int line, char **errmsg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5414,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5417,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5420,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5422,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5424,1
    - Dst: do_parse_redis_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5431,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5435
      start: 5408
    functionDepth: 8
    functionLinenumber: 5408
    functionLinenumberEnd: 5435
    functionName: proxy_parse_redis_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - alertif_too_many_args_idx
    - do_parse_redis_check_opt
    - find_tcpcheck_ruleset
    - ha_alert
    - create_tcpcheck_ruleset
    - warnifnotcap
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_redis_check_opt(char **args, int cur_arg, struct proxy
      *curpx, const struct proxy *defpx,\n\t\t\t\tconst char *file, int line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5444,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5447,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5451,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5453,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5455,1
    - Dst: do_parse_ssl_hello_chk_opt
      Src: /src/haproxy/src/tcpcheck.c:5462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5466
      start: 5438
    functionDepth: 8
    functionLinenumber: 5438
    functionLinenumberEnd: 5466
    functionName: proxy_parse_ssl_hello_chk_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - alertif_too_many_args_idx
    - find_tcpcheck_ruleset
    - ha_alert
    - do_parse_ssl_hello_chk_opt
    - create_tcpcheck_ruleset
    - warnifnotcap
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_ssl_hello_chk_opt(char **args, int cur_arg, struct
      proxy *curpx, const struct proxy *defpx,\n\t\t\t\t  const char *file, int line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5475,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5478,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5481,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5483,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5485,1
    - Dst: do_parse_smtpchk_opt
      Src: /src/haproxy/src/tcpcheck.c:5492,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5496
      start: 5469
    functionDepth: 8
    functionLinenumber: 5469
    functionLinenumberEnd: 5496
    functionName: proxy_parse_smtpchk_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - do_parse_smtpchk_opt
    - alertif_too_many_args_idx
    - find_tcpcheck_ruleset
    - ha_alert
    - create_tcpcheck_ruleset
    - warnifnotcap
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_smtpchk_opt(char **args, int cur_arg, struct proxy
      *curpx, const struct proxy *defpx,\n\t\t\t    const char *file, int line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5505,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5508,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5511,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5513,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5515,1
    - Dst: do_parse_pgsql_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5522,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5526
      start: 5499
    functionDepth: 8
    functionLinenumber: 5499
    functionLinenumberEnd: 5526
    functionName: proxy_parse_pgsql_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - do_parse_pgsql_check_opt
    - alertif_too_many_args_idx
    - find_tcpcheck_ruleset
    - ha_alert
    - create_tcpcheck_ruleset
    - warnifnotcap
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_pgsql_check_opt(char **args, int cur_arg, struct proxy
      *curpx, const struct proxy *defpx,\n\t\t\t\tconst char *file, int line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5535,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5538,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5541,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5543,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5545,1
    - Dst: do_parse_ldap_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5552,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5556
      start: 5529
    functionDepth: 8
    functionLinenumber: 5529
    functionLinenumberEnd: 5556
    functionName: proxy_parse_ldap_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - alertif_too_many_args_idx
    - do_parse_ldap_check_opt
    - find_tcpcheck_ruleset
    - ha_alert
    - create_tcpcheck_ruleset
    - warnifnotcap
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_ldap_check_opt(char **args, int cur_arg, struct proxy
      *curpx, const struct proxy *defpx,\n\t\t\t       const char *file, int line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5565,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5568,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5571,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5573,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5575,1
    - Dst: do_parse_spop_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5582,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5586
      start: 5559
    functionDepth: 8
    functionLinenumber: 5559
    functionLinenumberEnd: 5586
    functionName: proxy_parse_spop_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - alertif_too_many_args_idx
    - find_tcpcheck_ruleset
    - ha_alert
    - create_tcpcheck_ruleset
    - warnifnotcap
    - do_parse_spop_check_opt
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_spop_check_opt(char **args, int cur_arg, struct proxy
      *curpx, const struct proxy *defpx,\n\t\t\t       const char *file, int line)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5599,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5602,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5607,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5608,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5615,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5621,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5623,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5625,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5628,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5635,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5637,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5639,1
    - Dst: do_parse_mysql_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5646,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5650
      start: 5589
    functionDepth: 8
    functionLinenumber: 5589
    functionLinenumberEnd: 5650
    functionName: proxy_parse_mysql_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - strcmp
    - alertif_too_many_args_idx
    - find_tcpcheck_ruleset
    - ha_alert
    - do_parse_mysql_check_opt
    - create_tcpcheck_ruleset
    - warnifnotcap
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_mysql_check_opt(char **args, int cur_arg, struct proxy
      *curpx, const struct proxy *defpx,\n\t\t\t\tconst char *file, int line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5659,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5662,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:5666,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5670,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5670,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5672,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5672,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5674,1
    - Dst: do_parse_httpchk_opt
      Src: /src/haproxy/src/tcpcheck.c:5681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5685
      start: 5653
    functionDepth: 8
    functionLinenumber: 5653
    functionLinenumberEnd: 5685
    functionName: proxy_parse_httpchk_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - b_orig
    - chunk_printf
    - alertif_too_many_args_idx
    - find_tcpcheck_ruleset
    - ha_alert
    - create_tcpcheck_ruleset
    - warnifnotcap
    - do_parse_httpchk_opt
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_httpchk_opt(char **args, int cur_arg, struct proxy
      *curpx, const struct proxy *defpx,\n\t\t\t    const char *file, int line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5694,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5697,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:5701,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5705,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5705,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5707,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5707,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5709,1
    - Dst: do_parse_tcp_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5716,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5720
      start: 5688
    functionDepth: 6
    functionLinenumber: 5688
    functionLinenumberEnd: 5720
    functionName: proxy_parse_tcp_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - b_orig
    - chunk_printf
    - alertif_too_many_args_idx
    - find_tcpcheck_ruleset
    - ha_alert
    - do_parse_tcp_check_opt
    - create_tcpcheck_ruleset
    - warnifnotcap
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_tcp_check_opt(char **args, int cur_arg, struct proxy
      *curpx, const struct proxy *defpx,\n\t\t\t      const char *file, int line)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5728,1
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/tcpcheck.c:5733,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5735,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5745,1
    - Dst: invalid_char
      Src: /src/haproxy/src/tcpcheck.c:5750,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5752,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:5758,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5759,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5759,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5761,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5767,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5767,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5769,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:5773,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5778,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5780,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5787,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5793,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5794,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5799,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5800,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5806,1
    - Dst: do_parse_tcp_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5808,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5811,1
    - Dst: do_parse_httpchk_opt
      Src: /src/haproxy/src/tcpcheck.c:5813,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5816,1
    - Dst: do_parse_ssl_hello_chk_opt
      Src: /src/haproxy/src/tcpcheck.c:5818,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5821,1
    - Dst: do_parse_smtpchk_opt
      Src: /src/haproxy/src/tcpcheck.c:5823,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5826,1
    - Dst: do_parse_pgsql_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5828,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5831,1
    - Dst: do_parse_redis_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5833,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5836,1
    - Dst: do_parse_mysql_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5838,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5841,1
    - Dst: do_parse_ldap_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5843,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5846,1
    - Dst: do_parse_spop_check_opt
      Src: /src/haproxy/src/tcpcheck.c:5848,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5852,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5859,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5862,1
    - Dst: tcpcheck_ruleset_type_to_str
      Src: /src/haproxy/src/tcpcheck.c:5863,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5869,1
    - Dst: do_parse_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:5875,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5877,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tcpcheck.c:5881,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:5886,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5889,1
    - Dst: tcpcheck_ruleset_type_to_str
      Src: /src/haproxy/src/tcpcheck.c:5890,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5896,1
    - Dst: do_parse_httpcheck
      Src: /src/haproxy/src/tcpcheck.c:5902,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5904,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tcpcheck.c:5908,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5914,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5919,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 188
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5921
      start: 5722
    functionDepth: 8
    functionLinenumber: 5722
    functionLinenumberEnd: 5921
    functionName: cfg_parse_healthchecks
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - free
    - do_parse_tcpcheck
    - tcpcheck_ruleset_type_to_str
    - do_parse_httpcheck
    - do_parse_smtpchk_opt
    - create_tcpcheck_ruleset
    - invalid_char
    - chunk_printf
    - strcmp
    - do_parse_ldap_check_opt
    - do_parse_tcp_check_opt
    - do_parse_redis_check_opt
    - do_parse_httpchk_opt
    - b_orig
    - alloc_new_proxy
    - find_tcpcheck_ruleset
    - do_parse_mysql_check_opt
    - do_parse_ssl_hello_chk_opt
    - do_parse_spop_check_opt
    - do_parse_pgsql_check_opt
    - ha_alert
    - ha_warning
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_healthchecks(const char *file, int linenum, char **args,
      int kwm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/tcpcheck.c:5928,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5934,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5940,1
    - Dst: dup_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5945,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5946,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5954,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5959
      start: 5923
    functionDepth: 5
    functionLinenumber: 5923
    functionLinenumberEnd: 5959
    functionName: cfg_post_parse_healthchecks
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - dup_tcpcheck_vars
    - free_tcpcheck_vars
    - ha_alert
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int cfg_post_parse_healthchecks()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5968,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:5975,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:5978,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5980,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:5984,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5987,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:5988,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5989,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5996
      start: 5962
    functionDepth: 5
    functionLinenumber: 5962
    functionLinenumberEnd: 5996
    functionName: srv_parse_healthcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - ha_free
    - calloc
    - memprintf
    - LIST_INIT
    linkageType: ''
    returnType: int
    signature: "int srv_parse_healthcheck(char **args, int *cur_arg, struct proxy
      *curpx, struct server *srv,\n\t\t\t\t char **errmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: fcgi_strm_sc
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline *fcgi_strm_sc(const struct fcgi_strm *fstrm)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:358,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_fcgi.c:358,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:365,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/mux_fcgi.c:368,1
    - Dst: __htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:369,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_fcgi.c:370,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:371,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:374,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/mux_fcgi.c:375,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/mux_fcgi.c:375,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/mux_fcgi.c:376,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/mux_fcgi.c:376,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/mux_fcgi.c:377,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/mux_fcgi.c:377,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:381,1
    - Dst: fconn_st_to_str
      Src: /src/haproxy/src/mux_fcgi.c:381,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:383,1
    - Dst: fstrm_st_to_str
      Src: /src/haproxy/src/mux_fcgi.c:383,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:386,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:388,1
    - Dst: fcgi_rt_str
      Src: /src/haproxy/src/mux_fcgi.c:388,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:397,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:398,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:398,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:399,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:399,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_fcgi.c:402,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:403,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:405,1
    - Dst: br_head_idx
      Src: /src/haproxy/src/mux_fcgi.c:406,1
    - Dst: br_tail_idx
      Src: /src/haproxy/src/mux_fcgi.c:406,1
    - Dst: br_size
      Src: /src/haproxy/src/mux_fcgi.c:406,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:407,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:407,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:408,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:408,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:409,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:409,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:410,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:410,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:415,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:416,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:416,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:417,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:417,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_fcgi.c:432,1
    - Dst: htx_dump
      Src: /src/haproxy/src/mux_fcgi.c:433,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 43
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 435
    functionName: fcgi_trace
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - htx_nbblks
    - htx_get_blk_ptr
    - br_tail
    - br_size
    - br_head
    - fstrm_st_to_str
    - HTX_SL_P1_LEN
    - fconn_st_to_str
    - b_head_ofs
    - htx_get_blk_type
    - chunk_memcat
    - h1m_state_str
    - br_head_idx
    - __htx_get_head_blk
    - fcgi_rt_str
    - b_orig
    - b_data
    - b_size
    - br_tail_idx
    - HTX_SL_P3_LEN
    - HTX_SL_P2_PTR
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - HTX_SL_P2_LEN
    - htx_dump
    linkageType: ''
    returnType: void
    signature: "void fcgi_trace(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n\t\t       const struct ist where, const struct ist func,\n\t\t
      \      const void *a1, const void *a2, const void *a3, const void *a4)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 464
    functionName: fcgi_recv_allowed
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fcgi_recv_allowed(const struct fcgi_conn *fconn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 486
    functionName: fcgi_may_demux
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - b_data
    linkageType: ''
    returnType: int
    signature: int fcgi_may_demux(const struct fcgi_conn *fconn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcgi_recv_allowed
      Src: /src/haproxy/src/mux_fcgi.c:494,1
    - Dst: fcgi_may_demux
      Src: /src/haproxy/src/mux_fcgi.c:494,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - fconn
    - consider_buffer
    argTypes:
    - struct fcgi_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 497
    functionName: fcgi_conn_restart_reading
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_may_demux
    - tasklet_wakeup
    - fcgi_recv_allowed
    linkageType: ''
    returnType: void
    signature: void fcgi_conn_restart_reading(const struct fcgi_conn *fconn, int consider_buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_fcgi.c:510,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:511,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:513,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_fcgi.c:517,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:517,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:518,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:522,1
    - Dst: fcgi_conn_st_by_id
      Src: /src/haproxy/src/mux_fcgi.c:528,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:528,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_fcgi.c:529,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:530,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:532,1
    - Dst: fcgi_strm_notify_recv
      Src: /src/haproxy/src/mux_fcgi.c:533,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - target
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 538
    functionName: fcgi_buf_available
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - fcgi_conn_st_by_id
    - TRACE_STATE
    - br_tail
    - fcgi_strm_notify_recv
    - fcgi_strm_sc
    - fcgi_conn_restart_reading
    linkageType: ''
    returnType: int
    signature: int fcgi_buf_available(void *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/mux_fcgi.c:544,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:544,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:545,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_fcgi.c:545,1
    - Dst: b_queue
      Src: /src/haproxy/src/mux_fcgi.c:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - fconn
    - bptr
    argTypes:
    - struct fcgi_conn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 549
    functionName: fcgi_get_buf
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_alloc
    - b_queue
    - likely
    - LIST_INLIST
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *fcgi_get_buf(struct fcgi_conn *fconn, struct buffer
      *bptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_free
      Src: /src/haproxy/src/mux_fcgi.c:554,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_fcgi.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fconn
    - bptr
    argTypes:
    - struct fcgi_conn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 557
    functionName: fcgi_release_buf
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - offer_buffers
    - b_free
    linkageType: ''
    returnType: void
    signature: void fcgi_release_buf(struct fcgi_conn *fconn, struct buffer *bptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:564,1
    - Dst: br_head_pick
      Src: /src/haproxy/src/mux_fcgi.c:564,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_fcgi.c:565,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_fcgi.c:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 570
    functionName: fcgi_release_mbuf
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - b_free
    - b_size
    - offer_buffers
    - br_head_pick
    linkageType: ''
    returnType: void
    signature: void fcgi_release_mbuf(struct fcgi_conn *fconn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 583
    functionName: fcgi_streams_left
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fcgi_streams_left(const struct fcgi_conn *fconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: fcgi_used_streams
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fcgi_used_streams(struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/mux_fcgi.c:599,1
    - Dst: fcgi_streams_left
      Src: /src/haproxy/src/mux_fcgi.c:611,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:612,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 618
    functionName: fcgi_avail_streams
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - objt_server
    - fcgi_streams_left
    - MIN
    linkageType: ''
    returnType: int
    signature: int fcgi_avail_streams(struct connection *conn)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_px_fcgi_app
      Src: /src/haproxy/src/mux_fcgi.c:634,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:638,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:641,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_fcgi.c:645,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:647,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_fcgi.c:652,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_fcgi.c:668,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_fcgi.c:669,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:671,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_fcgi.c:678,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_fcgi.c:681,1
    - Dst: br_init
      Src: /src/haproxy/src/mux_fcgi.c:702,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_fcgi.c:704,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_fcgi.c:705,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_fcgi.c:710,1
    - Dst: fcgi_stconn_new
      Src: /src/haproxy/src/mux_fcgi.c:717,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:723,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:724,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_fcgi.c:728,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_fcgi.c:729,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_fcgi.c:730,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:733,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 80
    argCount: 4
    argNames:
    - conn
    - px
    - sess
    - input
    argTypes:
    - struct connection*
    - struct proxy*
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 629
    functionDepth: 3
    functionLinenumber: 629
    functionLinenumberEnd: 735
    functionName: fcgi_init
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - TRACE_ERROR
    - tick_add
    - TRACE_LEAVE
    - task_destroy
    - fcgi_conn_restart_reading
    - task_queue
    - TRACE_ENTER
    - tasklet_new
    - fcgi_stconn_new
    - tasklet_free
    - TRACE_DEVEL
    - tick_isset
    - br_init
    - pool_free
    - get_px_fcgi_app
    - LIST_INIT
    - task_new_here
    linkageType: ''
    returnType: int
    signature: "int fcgi_init(struct connection *conn, struct proxy *px, struct session
      *sess,\n\t\t     struct buffer *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tevt_report_event
      Src: /src/haproxy/src/mux_fcgi.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fconn
    - type
    argTypes:
    - struct fcgi_conn*
    - enum muxc_term_event_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 743
    functionName: fcgi_conn_report_term_evt
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - tevt_report_event
    linkageType: ''
    returnType: void
    signature: void fcgi_conn_report_term_evt(struct fcgi_conn *fconn, enum muxc_term_event_type
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 755
    functionName: fcgi_conn_get_next_sid
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t fcgi_conn_get_next_sid(const struct fcgi_conn *fconn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup
      Src: /src/haproxy/src/mux_fcgi.c:768,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - fconn
    - id
    argTypes:
    - struct fcgi_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 772
    functionName: fcgi_conn_st_by_id
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - container_of
    - eb32_lookup
    linkageType: ''
    returnType: struct fcgi_strm
    signature: struct fcgi_strm *fcgi_conn_st_by_id(struct fcgi_conn *fconn, int id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:781,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/mux_fcgi.c:783,1
    - Dst: fcgi_release_buf
      Src: /src/haproxy/src/mux_fcgi.c:785,1
    - Dst: fcgi_release_mbuf
      Src: /src/haproxy/src/mux_fcgi.c:786,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:790,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_fcgi.c:793,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_fcgi.c:796,1
    - Dst: fcgi_conn_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:798,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_fcgi.c:801,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:806,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/mux_fcgi.c:808,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/mux_fcgi.c:809,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/mux_fcgi.c:811,1
    - Dst: conn_free
      Src: /src/haproxy/src/mux_fcgi.c:812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 814
    functionName: fcgi_release
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - conn_full_close
    - conn_free
    - task_wakeup
    - TRACE_DEVEL
    - TRACE_POINT
    - tasklet_free
    - fcgi_conn_report_term_evt
    - b_dequeue
    - fcgi_release_mbuf
    - struct connection*::destroy_cb
    - pool_free
    - conn_stop_tracking
    - fcgi_release_buf
    - struct connection*::xprt::unsubscribe
    linkageType: ''
    returnType: void
    signature: void fcgi_release(struct fcgi_conn *fconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 825
    functionName: fcgi_conn_read0_pending
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fcgi_conn_read0_pending(struct fcgi_conn *fconn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:831,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_fcgi.c:836,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 840
    functionName: fcgi_conn_is_dead
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - eb_is_empty
    - br_data
    linkageType: ''
    returnType: int
    signature: int fcgi_conn_is_dead(struct fcgi_conn *fconn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:851,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:854,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_fcgi.c:856,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 858
    functionName: fcgi_strm_error
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - se_fl_set_error
    - TRACE_STATE
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void fcgi_strm_error(struct fcgi_strm *fstrm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:864,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:865,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 870
    functionName: fcgi_strm_notify_recv
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void fcgi_strm_notify_recv(struct fcgi_strm *fstrm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:876,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:878,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:884,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:885,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 887
    functionName: fcgi_strm_notify_send
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void fcgi_strm_notify_send(struct fcgi_strm *fstrm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:897,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:899,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:900,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:910,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:910,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 912
    functionName: fcgi_strm_alert
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_strm_sc
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void fcgi_strm_alert(struct fcgi_strm *fstrm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - len
    argTypes:
    - void*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 921
    functionName: fcgi_set_record_size
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fcgi_set_record_size(void *record, uint16_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - id
    argTypes:
    - void*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 930
    functionName: fcgi_set_record_id
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fcgi_set_record_id(void *record, uint16_t id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:939,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:943,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:944,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:944,1
    - Dst: fcgi_strm_notify_recv
      Src: /src/haproxy/src/mux_fcgi.c:945,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:948,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:949,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 951
    functionName: fcgi_strm_close
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_ENTER
    - b_data
    - fcgi_strm_notify_recv
    - fcgi_strm_sc
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void fcgi_strm_close(struct fcgi_strm *fstrm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:959,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:962,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:963,1
    - Dst: fcgi_conn_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:966,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:967,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:968,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:969,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:970,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:973,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:975,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:976,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 977
    functionName: fcgi_strm_propagate_term_flags
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - se_fl_test
    - fcgi_conn_read0_pending
    - se_report_term_evt
    linkageType: ''
    returnType: void
    signature: void fcgi_strm_propagate_term_flags(struct fcgi_conn *fconn, struct
      fcgi_strm *fstrm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:986,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:988,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/mux_fcgi.c:989,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:990,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_fcgi.c:991,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_fcgi.c:992,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_fcgi.c:1000,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_fcgi.c:1001,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:1002,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:1002,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_fcgi.c:1003,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_fcgi.c:1004,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1006,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 982
    functionDepth: 4
    functionLinenumber: 982
    functionLinenumberEnd: 1007
    functionName: fcgi_strm_destroy
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - fcgi_strm_close
    - BUG_ON
    - LIST_DEL_INIT
    - eb32_delete
    - TRACE_ENTER
    - b_free
    - b_size
    - pool_free
    - offer_buffers
    - se_fl_test
    - tasklet_free
    - sedesc_free
    linkageType: ''
    returnType: void
    signature: void fcgi_strm_destroy(struct fcgi_strm *fstrm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1019,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_fcgi.c:1021,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1023,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_fcgi.c:1027,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1029,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_fcgi.c:1030,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_fcgi.c:1036,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/mux_fcgi.c:1044,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/mux_fcgi.c:1054,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1058,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1062,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 2
    argNames:
    - fconn
    - id
    argTypes:
    - struct fcgi_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1064
    functionName: fcgi_strm_new
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - eb32_insert
    - pool_alloc
    - TRACE_ERROR
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - tasklet_new
    - h1m_init_res
    - LIST_INIT
    - pool_free
    linkageType: ''
    returnType: struct fcgi_strm
    signature: struct fcgi_strm *fcgi_strm_new(struct fcgi_conn *fconn, int id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1075,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1077,1
    - Dst: fcgi_streams_left
      Src: /src/haproxy/src/mux_fcgi.c:1081,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1082,1
    - Dst: fcgi_strm_new
      Src: /src/haproxy/src/mux_fcgi.c:1087,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1089,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_fcgi.c:1092,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1098,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1102,1
    - Dst: fcgi_strm_destroy
      Src: /src/haproxy/src/mux_fcgi.c:1103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - fconn
    - sc
    - sess
    argTypes:
    - struct fcgi_conn*
    - struct stconn*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1070
    functionDepth: 5
    functionLinenumber: 1070
    functionLinenumberEnd: 1105
    functionName: fcgi_stconn_new
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - fcgi_strm_destroy
    - fcgi_streams_left
    - TRACE_LEAVE
    - TRACE_ERROR
    - sc_attach_mux
    - TRACE_DEVEL
    - TRACE_ENTER
    - fcgi_strm_new
    linkageType: ''
    returnType: struct fcgi_strm
    signature: "struct fcgi_strm *fcgi_stconn_new(struct fcgi_conn *fconn, struct
      stconn *sc,\n\t\t\t\t\t struct session *sess)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1116,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:1118,1
    - Dst: fcgi_strm_destroy
      Src: /src/haproxy/src/mux_fcgi.c:1120,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1121,1
    - Dst: fcgi_conn_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:1125,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1128,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:1131,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_fcgi.c:1135,1
    - Dst: fcgi_strm_propagate_term_flags
      Src: /src/haproxy/src/mux_fcgi.c:1136,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1139,1
    - Dst: fcgi_strm_alert
      Src: /src/haproxy/src/mux_fcgi.c:1143,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1112
    functionDepth: 5
    functionLinenumber: 1112
    functionLinenumberEnd: 1146
    functionName: fcgi_strm_wake_one_stream
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_strm_destroy
    - TRACE_STATE
    - fcgi_strm_close
    - TRACE_LEAVE
    - se_fl_set_error
    - TRACE_DEVEL
    - TRACE_ENTER
    - fcgi_strm_propagate_term_flags
    - fcgi_conn_read0_pending
    - fcgi_strm_alert
    - fcgi_strm_sc
    linkageType: ''
    returnType: void
    signature: void fcgi_strm_wake_one_stream(struct fcgi_strm *fstrm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup
      Src: /src/haproxy/src/mux_fcgi.c:1154,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:1156,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:1159,1
    - Dst: fcgi_strm_wake_one_stream
      Src: /src/haproxy/src/mux_fcgi.c:1160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1149
    functionDepth: 6
    functionLinenumber: 1149
    functionLinenumberEnd: 1162
    functionName: fcgi_wake_unassigned_streams
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - container_of
    - fcgi_strm_wake_one_stream
    - eb32_lookup
    - eb32_next
    linkageType: ''
    returnType: void
    signature: void fcgi_wake_unassigned_streams(struct fcgi_conn *fconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1172,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_fcgi.c:1175,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:1177,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:1178,1
    - Dst: fcgi_strm_wake_one_stream
      Src: /src/haproxy/src/mux_fcgi.c:1179,1
    - Dst: fcgi_wake_unassigned_streams
      Src: /src/haproxy/src/mux_fcgi.c:1181,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fconn
    - last
    argTypes:
    - struct fcgi_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1167
    functionDepth: 7
    functionLinenumber: 1167
    functionLinenumberEnd: 1184
    functionName: fcgi_wake_some_streams
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - fcgi_strm_wake_one_stream
    - TRACE_ENTER
    - container_of
    - eb32_next
    - eb32_lookup_ge
    - fcgi_wake_unassigned_streams
    linkageType: ''
    returnType: void
    signature: void fcgi_wake_some_streams(struct fcgi_conn *fconn, int last)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/mux_fcgi.c:1190,1
    - Dst: sc_check
      Src: /src/haproxy/src/mux_fcgi.c:1191,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:1191,1
    - Dst: conn_src
      Src: /src/haproxy/src/mux_fcgi.c:1191,1
    - Dst: sc_src
      Src: /src/haproxy/src/mux_fcgi.c:1191,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/mux_fcgi.c:1191,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:1191,1
    - Dst: sc_check
      Src: /src/haproxy/src/mux_fcgi.c:1192,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:1192,1
    - Dst: conn_dst
      Src: /src/haproxy/src/mux_fcgi.c:1192,1
    - Dst: sc_dst
      Src: /src/haproxy/src/mux_fcgi.c:1192,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/mux_fcgi.c:1192,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:1192,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/mux_fcgi.c:1202,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1203,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1203,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1204,1
    - Dst: h1_get_uri
      Src: /src/haproxy/src/mux_fcgi.c:1207,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1208,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1208,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1209,1
    - Dst: htx_sl_req_vsn
      Src: /src/haproxy/src/mux_fcgi.c:1212,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1213,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1213,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1214,1
    - Dst: get_host_port
      Src: /src/haproxy/src/mux_fcgi.c:1220,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/mux_fcgi.c:1221,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1221,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:1221,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1224,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1224,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1224,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1230,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/mux_fcgi.c:1234,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1234,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:1234,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1235,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1237,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/mux_fcgi.c:1246,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1246,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:1246,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1247,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1249,1
    - Dst: get_host_port
      Src: /src/haproxy/src/mux_fcgi.c:1257,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/mux_fcgi.c:1258,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1258,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:1258,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1261,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1261,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1261,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:1270,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/mux_fcgi.c:1270,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:1271,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_fcgi.c:1276,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/mux_fcgi.c:1278,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1278,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:1278,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1281,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1281,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1281,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/mux_fcgi.c:1287,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/mux_fcgi.c:1292,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/mux_fcgi.c:1293,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1297,1
    - Dst: istfind
      Src: /src/haproxy/src/mux_fcgi.c:1302,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1308,1
    - Dst: istnext
      Src: /src/haproxy/src/mux_fcgi.c:1309,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1323,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1324,1
    - Dst: url_decode
      Src: /src/haproxy/src/mux_fcgi.c:1325,1
    - Dst: ist0
      Src: /src/haproxy/src/mux_fcgi.c:1325,1
    - Dst: istchr
      Src: /src/haproxy/src/mux_fcgi.c:1345,1
    - Dst: istchr
      Src: /src/haproxy/src/mux_fcgi.c:1345,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/mux_fcgi.c:1351,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1364,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1366,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1373,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1376,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1376,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1377,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1378,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1383,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1383,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:1384,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1385,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 137
    argCount: 5
    argNames:
    - fconn
    - fstrm
    - htx
    - sl
    - params
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    - struct htx*
    - struct htx_sl*
    - struct fcgi_strm_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1186
    functionDepth: 4
    functionLinenumber: 1186
    functionLinenumberEnd: 1392
    functionName: fcgi_set_default_param
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - chunk_appendf
    - http_uri_parser_init
    - b_room
    - sc_src
    - ultoa_o
    - conn_dst
    - htx_sl_req_meth
    - fcgi_strm_sc
    - istlen
    - regex_exec_match2
    - ist2
    - ist
    - b_tail
    - htx_get_blk_type
    - http_parse_path
    - istfind
    - h1_get_uri
    - istchr
    - htx_get_head_blk
    - htx_get_next_blk
    - sc_check
    - chunk_istcat
    - ist0
    - objt_conn
    - url_decode
    - conn_is_ssl
    - istnext
    - addr_to_str
    - sc_opposite
    - htx_sl_req_vsn
    - get_host_port
    - conn_src
    - sc_dst
    linkageType: ''
    returnType: int
    signature: "int fcgi_set_default_param(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm,\n\t\t\t\t  struct htx *htx, struct htx_sl *sl,\n\t\t\t\t  struct fcgi_strm_params
      *params)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_fcgi.c:1402,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1406,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1407,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1410,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1414,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1418,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1422,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1426,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1430,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1434,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1438,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1442,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1446,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1450,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1454,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1455,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1456,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1457,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_fcgi.c:1457,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1457,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1460,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1462,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1463,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1464,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1465,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_fcgi.c:1465,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1465,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1468,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1474,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1475,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1478,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1486,1
    - Dst: fcgi_encode_param
      Src: /src/haproxy/src/mux_fcgi.c:1488,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 115
    argCount: 5
    argNames:
    - fconn
    - fstrm
    - params
    - outbuf
    - flag
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    - struct fcgi_strm_params*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1394
    functionDepth: 2
    functionLinenumber: 1394
    functionLinenumberEnd: 1493
    functionName: fcgi_encode_default_param
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - ist2
    - chunk_istcat
    - ist
    - b_head
    - fcgi_encode_param
    - b_data
    - chunk_reset
    - istlen
    linkageType: ''
    returnType: int
    signature: "int fcgi_encode_default_param(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm,\n\t\t\t\t     struct fcgi_strm_params *params, struct buffer *outbuf,
      int flag)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1504,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1504,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1505,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1505,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1508,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:1510,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:1512,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1515,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:1521,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1521,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:1521,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:1522,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_fcgi.c:1525,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1525,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:1533,1
    - Dst: fcgi_encode_param
      Src: /src/haproxy/src/mux_fcgi.c:1539,1
    - Dst: fcgi_encode_param
      Src: /src/haproxy/src/mux_fcgi.c:1539,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1543,1
    - Dst: fcgi_set_record_size
      Src: /src/haproxy/src/mux_fcgi.c:1544,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_fcgi.c:1545,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1549,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1553,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1554,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_fcgi.c:1558,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1562,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1567,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1568,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1570
    functionName: fcgi_conn_send_get_values
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - br_tail
    - b_contig_space
    - ist
    - TRACE_DEVEL
    - br_tail_add
    - b_tail
    - b_make
    - TRACE_PROTO
    - TRACE_LEAVE
    - memcpy
    - TRACE_ERROR
    - fcgi_encode_param
    - fcgi_get_buf
    - b_add
    - b_data
    - b_slow_realign
    - b_space_wraps
    - TRACE_STATE
    - fcgi_set_record_size
    linkageType: ''
    returnType: int
    signature: int fcgi_conn_send_get_values(struct fcgi_conn *fconn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1583,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:1588,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1592,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1594,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:1598,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_fcgi.c:1598,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/mux_fcgi.c:1603,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:1606,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_fcgi.c:1606,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1606,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1608,1
    - Dst: fcgi_aligned_decode_param
      Src: /src/haproxy/src/mux_fcgi.c:1612,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1615,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_fcgi.c:1620,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1620,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1621,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1621,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1622,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1626,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_fcgi.c:1630,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1630,1
    - Dst: strl2ui
      Src: /src/haproxy/src/mux_fcgi.c:1631,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1632,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1644,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1651,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1655,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:1656,1
    - Dst: fcgi_wake_unassigned_streams
      Src: /src/haproxy/src/mux_fcgi.c:1660,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1661,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1662,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1666,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1667,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1577
    functionDepth: 7
    functionLinenumber: 1577
    functionLinenumberEnd: 1669
    functionName: fcgi_conn_handle_values_result
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TRACE_ENTER
    - b_contig_data
    - strl2ui
    - ist
    - TRACE_DEVEL
    - isteq
    - b_make
    - isteqi
    - TRACE_PROTO
    - b_head
    - fcgi_aligned_decode_param
    - TRACE_ERROR
    - TRACE_LEAVE
    - b_data
    - b_size
    - b_del
    - fcgi_wake_unassigned_streams
    - b_slow_realign_ofs
    - TRACE_STATE
    linkageType: ''
    returnType: int
    signature: int fcgi_conn_handle_values_result(struct fcgi_conn *fconn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1680,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_fcgi.c:1682,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:1684,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:1685,1
    - Dst: fcgi_strm_send_abort
      Src: /src/haproxy/src/mux_fcgi.c:1688,1
    - Dst: fcgi_conn_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:1692,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1693,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1675
    functionDepth: 2
    functionLinenumber: 1675
    functionLinenumberEnd: 1696
    functionName: fcgi_conn_send_aborts
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_ENTER
    - container_of
    - eb32_next
    - eb32_lookup_ge
    - fcgi_conn_report_term_evt
    - fcgi_strm_send_abort
    linkageType: ''
    returnType: int
    signature: int fcgi_conn_send_aborts(struct fcgi_conn *fconn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1709,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:1711,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:1713,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1716,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:1722,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1722,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:1722,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:1723,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_fcgi.c:1726,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1726,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:1734,1
    - Dst: fcgi_set_record_id
      Src: /src/haproxy/src/mux_fcgi.c:1735,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1739,1
    - Dst: fcgi_encode_begin_request
      Src: /src/haproxy/src/mux_fcgi.c:1742,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1746,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_fcgi.c:1747,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1750,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1754,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_fcgi.c:1757,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1761,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1702
    functionDepth: 2
    functionLinenumber: 1702
    functionLinenumberEnd: 1764
    functionName: fcgi_strm_send_begin_request
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - fcgi_set_record_id
    - TRACE_PROTO
    - TRACE_STATE
    - memcpy
    - TRACE_LEAVE
    - TRACE_ENTER
    - br_tail_add
    - b_tail
    - fcgi_get_buf
    - b_add
    - b_data
    - b_slow_realign
    - br_tail
    - b_make
    - b_contig_space
    - fcgi_encode_begin_request
    linkageType: ''
    returnType: int
    signature: int fcgi_strm_send_begin_request(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1777,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:1778,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:1780,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1783,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:1789,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1789,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:1789,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:1790,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_fcgi.c:1793,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1793,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:1801,1
    - Dst: fcgi_set_record_id
      Src: /src/haproxy/src/mux_fcgi.c:1803,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_fcgi.c:1807,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1811,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_fcgi.c:1814,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1818,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 3
    argNames:
    - fconn
    - fstrm
    - rtype
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    - enum fcgi_record_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1770
    functionDepth: 2
    functionLinenumber: 1770
    functionLinenumberEnd: 1821
    functionName: fcgi_strm_send_empty_record
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - fcgi_set_record_id
    - TRACE_STATE
    - memcpy
    - TRACE_LEAVE
    - TRACE_ENTER
    - br_tail_add
    - b_tail
    - fcgi_get_buf
    - b_add
    - b_data
    - b_slow_realign
    - br_tail
    - b_make
    - b_contig_space
    linkageType: ''
    returnType: int
    signature: "int fcgi_strm_send_empty_record(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm,\n\t\t\t\t       enum fcgi_record_type rtype)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:1831,1
    - Dst: fcgi_strm_send_empty_record
      Src: /src/haproxy/src/mux_fcgi.c:1832,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1827
    functionDepth: 3
    functionLinenumber: 1827
    functionLinenumberEnd: 1838
    functionName: fcgi_strm_send_empty_params
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - fcgi_strm_send_empty_record
    - TRACE_POINT
    linkageType: ''
    returnType: int
    signature: int fcgi_strm_send_empty_params(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:1847,1
    - Dst: fcgi_strm_send_empty_record
      Src: /src/haproxy/src/mux_fcgi.c:1848,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1851,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:1852,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1843
    functionDepth: 3
    functionLinenumber: 1843
    functionLinenumberEnd: 1856
    functionName: fcgi_strm_send_empty_stdin
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_STATE
    - fcgi_strm_send_empty_record
    - TRACE_POINT
    - TRACE_USER
    linkageType: ''
    returnType: int
    signature: int fcgi_strm_send_empty_stdin(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:1865,1
    - Dst: fcgi_strm_send_empty_record
      Src: /src/haproxy/src/mux_fcgi.c:1866,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:1869,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1870,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:1871,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1861
    functionDepth: 3
    functionLinenumber: 1861
    functionLinenumberEnd: 1875
    functionName: fcgi_strm_send_abort
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - TRACE_PROTO
    - TRACE_STATE
    - fcgi_strm_send_empty_record
    - TRACE_POINT
    - se_report_term_evt
    - TRACE_USER
    linkageType: ''
    returnType: int
    signature: int fcgi_strm_send_abort(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1892,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:1894,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:1896,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1899,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:1904,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1904,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:1904,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:1905,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_fcgi.c:1908,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1908,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:1921,1
    - Dst: fcgi_set_record_id
      Src: /src/haproxy/src/mux_fcgi.c:1922,1
    - Dst: memset
      Src: /src/haproxy/src/mux_fcgi.c:1925,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_fcgi.c:1926,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:1928,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/mux_fcgi.c:1928,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:1932,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_fcgi.c:1935,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_fcgi.c:1943,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_fcgi.c:1944,1
    - Dst: istmatch
      Src: /src/haproxy/src/mux_fcgi.c:1946,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1946,1
    - Dst: istadv
      Src: /src/haproxy/src/mux_fcgi.c:1947,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1948,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1948,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1950,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1950,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1954,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1954,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1958,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1958,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1962,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1962,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1966,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1966,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1968,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1968,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1970,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1970,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1972,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1972,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1974,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1974,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1976,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1976,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1978,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1978,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1980,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1980,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1982,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1982,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1984,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1984,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1986,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1986,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1989,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1989,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1990,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1993,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1993,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1994,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1998,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1998,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:2000,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:2000,1
    - Dst: istist
      Src: /src/haproxy/src/mux_fcgi.c:2004,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:2004,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_fcgi.c:2005,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:2007,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_fcgi.c:2011,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:2011,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:2014,1
    - Dst: istcat
      Src: /src/haproxy/src/mux_fcgi.c:2015,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:2015,1
    - Dst: istcat
      Src: /src/haproxy/src/mux_fcgi.c:2016,1
    - Dst: fcgi_encode_param
      Src: /src/haproxy/src/mux_fcgi.c:2020,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:2021,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_fcgi.c:2028,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_fcgi.c:2029,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:2034,1
    - Dst: istcat
      Src: /src/haproxy/src/mux_fcgi.c:2035,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:2035,1
    - Dst: istcat
      Src: /src/haproxy/src/mux_fcgi.c:2036,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:2037,1
    - Dst: fcgi_encode_param
      Src: /src/haproxy/src/mux_fcgi.c:2039,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:2040,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2044,1
    - Dst: fcgi_set_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2054,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2055,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2059,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2060,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2061,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2062,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2063,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2064,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2065,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2066,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2067,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2068,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2069,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2070,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2071,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2072,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2073,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2074,1
    - Dst: fcgi_encode_default_param
      Src: /src/haproxy/src/mux_fcgi.c:2075,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:2076,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2082,1
    - Dst: fcgi_set_record_size
      Src: /src/haproxy/src/mux_fcgi.c:2083,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_fcgi.c:2084,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:2089,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_fcgi.c:2091,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_fcgi.c:2092,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:2094,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2099,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2102,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2102,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2102,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2103,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_fcgi.c:2106,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2110,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2115,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:2116,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 189
    argCount: 3
    argNames:
    - fconn
    - fstrm
    - htx
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 1882
    functionDepth: 5
    functionLinenumber: 1882
    functionLinenumberEnd: 2118
    functionName: fcgi_strm_send_params
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - istadv
    - TRACE_ENTER
    - get_trash_chunk
    - htx_get_blk_ptr
    - istmatch
    - br_tail
    - b_contig_space
    - objt_server
    - htx_get_blk_name
    - ist
    - ist2
    - fcgi_strm_error
    - fcgi_encode_default_param
    - br_tail_add
    - b_tail
    - htx_get_blk_type
    - isteq
    - b_make
    - htx_get_head_blk
    - fcgi_set_record_id
    - htx_get_next_blk
    - TRACE_PROTO
    - TRACE_LEAVE
    - memcpy
    - TRACE_ERROR
    - fcgi_encode_param
    - fcgi_get_buf
    - b_add
    - b_data
    - b_size
    - b_slow_realign
    - htx_get_blk_value
    - b_space_wraps
    - memset
    - TRACE_STATE
    - istcat
    - htx_remove_blk
    - fcgi_set_default_param
    - istist
    - fcgi_set_record_size
    - isttest
    linkageType: ''
    returnType: size_t
    signature: "size_t fcgi_strm_send_params(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm,\n\t\t\t\t    struct htx *htx)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2135,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:2139,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:2141,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2144,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:2164,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:2167,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_fcgi.c:2168,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2176,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2176,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2176,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/mux_fcgi.c:2177,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2185,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2192,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2193,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2193,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2194,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:2194,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2199,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:2203,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_fcgi.c:2204,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:2207,1
    - Dst: fcgi_set_record_id
      Src: /src/haproxy/src/mux_fcgi.c:2208,1
    - Dst: fcgi_set_record_size
      Src: /src/haproxy/src/mux_fcgi.c:2209,1
    - Dst: htx_reset
      Src: /src/haproxy/src/mux_fcgi.c:2217,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:2225,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:2225,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:2225,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:2226,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_fcgi.c:2229,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2229,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:2242,1
    - Dst: fcgi_set_record_id
      Src: /src/haproxy/src/mux_fcgi.c:2243,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:2246,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:2248,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_fcgi.c:2249,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2254,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_fcgi.c:2255,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_fcgi.c:2257,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2265,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:2270,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2271,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2271,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2272,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2274,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2276,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_fcgi.c:2278,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/mux_fcgi.c:2286,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_fcgi.c:2296,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2301,1
    - Dst: fcgi_set_record_size
      Src: /src/haproxy/src/mux_fcgi.c:2302,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_fcgi.c:2303,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:2306,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2308,1
    - Dst: fcgi_strm_send_empty_stdin
      Src: /src/haproxy/src/mux_fcgi.c:2309,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2312,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:2313,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2318,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_fcgi.c:2321,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2325,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 136
    argCount: 5
    argNames:
    - fconn
    - fstrm
    - htx
    - count
    - buf
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    - struct htx*
    - size_t
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2123
    functionDepth: 4
    functionLinenumber: 2123
    functionLinenumberEnd: 2327
    functionName: fcgi_strm_send_stdin
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - TRACE_ENTER
    - htx_nbblks
    - b_room
    - br_tail
    - b_contig_space
    - htx_is_empty
    - fcgi_strm_error
    - br_tail_add
    - fcgi_strm_send_empty_stdin
    - b_tail
    - htx_get_blk_type
    - chunk_memcat
    - b_make
    - htx_reset
    - htx_get_head_blk
    - fcgi_set_record_id
    - TRACE_PROTO
    - b_head
    - TRACE_LEAVE
    - memcpy
    - TRACE_ERROR
    - fcgi_get_buf
    - b_add
    - b_data
    - b_size
    - b_slow_realign
    - htx_is_unique_blk
    - htx_get_blk_value
    - b_space_wraps
    - TRACE_STATE
    - htx_cut_data_blk
    - htx_remove_blk
    - fcgi_set_record_size
    linkageType: ''
    returnType: size_t
    signature: "size_t fcgi_strm_send_stdin(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm,\n\t\t\t\t   struct htx *htx, size_t count, struct buffer *buf)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2339,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2347,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2347,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:2352,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2354,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_fcgi.c:2359,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2360,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_fcgi.c:2365,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2369,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2370,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_fcgi.c:2372,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2374,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:2384,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2384,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2385,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2391,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2392,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2395,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2333
    functionDepth: 2
    functionLinenumber: 2333
    functionLinenumberEnd: 2397
    functionName: fcgi_strm_handle_stdout
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - TRACE_PROTO
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_DATA
    - fcgi_get_buf
    - b_data
    - buf_room_for_htx_data
    - MIN
    - b_full
    - b_del
    linkageType: ''
    returnType: int
    signature: int fcgi_strm_handle_stdout(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2408,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2410,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2410,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2416,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:2420,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2420,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2421,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2427,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2428,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2429,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2404
    functionDepth: 1
    functionLinenumber: 2404
    functionLinenumberEnd: 2435
    functionName: fcgi_strm_handle_empty_stdout
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - b_data
    - MIN
    - b_full
    - b_del
    linkageType: ''
    returnType: int
    signature: int fcgi_strm_handle_empty_stdout(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2446,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2453,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2453,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_fcgi.c:2458,1
    - Dst: b_force_xfer
      Src: /src/haproxy/src/mux_fcgi.c:2459,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:2459,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2459,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2463,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_fcgi.c:2467,1
    - Dst: app_log
      Src: /src/haproxy/src/mux_fcgi.c:2468,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:2477,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2477,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2478,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2483,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2484,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2487,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2489
      start: 2440
    functionDepth: 1
    functionLinenumber: 2440
    functionLinenumberEnd: 2489
    functionName: fcgi_strm_handle_stderr
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - app_log
    - TRACE_STATE
    - TRACE_LEAVE
    - b_force_xfer
    - TRACE_DEVEL
    - TRACE_ENTER
    - b_room
    - b_data
    - MIN
    - b_full
    - chunk_reset
    - b_del
    - strlen
    linkageType: ''
    returnType: int
    signature: int fcgi_strm_handle_stderr(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2503,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2507,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2508,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2513,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2515,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2519,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_fcgi.c:2519,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/mux_fcgi.c:2520,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:2522,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_fcgi.c:2522,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2522,1
    - Dst: fcgi_decode_end_request
      Src: /src/haproxy/src/mux_fcgi.c:2524,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2525,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2530,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2531,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:2533,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2535,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2539,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2540,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:2544,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2545,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2497
    functionDepth: 3
    functionLinenumber: 2497
    functionLinenumberEnd: 2547
    functionName: fcgi_strm_handle_end_request
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TRACE_PROTO
    - b_head
    - b_slow_realign_ofs
    - TRACE_ERROR
    - TRACE_STATE
    - fcgi_strm_close
    - fcgi_decode_end_request
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - b_contig_data
    - fcgi_strm_error
    - b_data
    - b_size
    - b_make
    - b_del
    linkageType: ''
    returnType: int
    signature: int fcgi_strm_handle_end_request(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2556,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2561,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2563,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2568,1
    - Dst: fcgi_decode_record_hdr
      Src: /src/haproxy/src/mux_fcgi.c:2569,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2572,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2575,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2579,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2580,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2590,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2593,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2594,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2600,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2605,1
    - Dst: fcgi_decode_record_hdr
      Src: /src/haproxy/src/mux_fcgi.c:2606,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2611,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2619,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2623,1
    - Dst: fcgi_conn_st_by_id
      Src: /src/haproxy/src/mux_fcgi.c:2627,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:2629,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2630,1
    - Dst: fcgi_conn_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:2631,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:2634,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2636,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:2637,1
    - Dst: fcgi_strm_notify_recv
      Src: /src/haproxy/src/mux_fcgi.c:2638,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2647,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2648,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2663,1
    - Dst: fcgi_conn_handle_values_result
      Src: /src/haproxy/src/mux_fcgi.c:2664,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2671,1
    - Dst: fcgi_strm_handle_stdout
      Src: /src/haproxy/src/mux_fcgi.c:2673,1
    - Dst: fcgi_strm_handle_empty_stdout
      Src: /src/haproxy/src/mux_fcgi.c:2675,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2679,1
    - Dst: fcgi_strm_handle_stderr
      Src: /src/haproxy/src/mux_fcgi.c:2680,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2684,1
    - Dst: fcgi_strm_handle_end_request
      Src: /src/haproxy/src/mux_fcgi.c:2685,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2695,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2695,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:2704,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2704,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2705,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2706,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2707,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2714,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2720,1
    - Dst: fcgi_conn_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:2731,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:2731,1
    - Dst: fcgi_conn_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:2735,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:2735,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2740,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:2744,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2745,1
    - Dst: fcgi_conn_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:2746,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:2749,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2751,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:2752,1
    - Dst: fcgi_strm_notify_recv
      Src: /src/haproxy/src/mux_fcgi.c:2753,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:2756,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 150
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2550
    functionDepth: 8
    functionLinenumber: 2550
    functionLinenumberEnd: 2757
    functionName: fcgi_process_demux
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TRACE_ENTER
    - fcgi_conn_read0_pending
    - fcgi_conn_report_term_evt
    - b_full
    - fcgi_strm_notify_recv
    - fcgi_strm_sc
    - se_fl_test
    - eb_is_empty
    - TRACE_DEVEL
    - fcgi_strm_handle_stderr
    - fcgi_conn_handle_values_result
    - fcgi_conn_restart_reading
    - se_fl_set
    - fcgi_conn_st_by_id
    - TRACE_PROTO
    - TRACE_ERROR
    - fcgi_strm_handle_empty_stdout
    - b_data
    - b_del
    - fcgi_decode_record_hdr
    - TRACE_STATE
    - MIN
    - fcgi_strm_handle_stdout
    - fcgi_strm_handle_end_request
    linkageType: ''
    returnType: void
    signature: void fcgi_process_demux(struct fcgi_conn *fconn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2764,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mux_fcgi.c:2766,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_fcgi.c:2780,1
    - Dst: fcgi_strm_notify_send
      Src: /src/haproxy/src/mux_fcgi.c:2784,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2787,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - fconn
    - head
    argTypes:
    - struct fcgi_conn*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2760
    functionDepth: 2
    functionLinenumber: 2760
    functionLinenumberEnd: 2788
    functionName: fcgi_resume_each_sending_fstrm
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - TRACE_ENTER
    - fcgi_strm_notify_send
    linkageType: ''
    returnType: void
    signature: void fcgi_resume_each_sending_fstrm(struct fcgi_conn *fconn, struct
      list *head)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2795,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2797,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2798,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2801,1
    - Dst: fcgi_wake_unassigned_streams
      Src: /src/haproxy/src/mux_fcgi.c:2802,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2805,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2806,1
    - Dst: fcgi_conn_send_get_values
      Src: /src/haproxy/src/mux_fcgi.c:2806,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2809,1
    - Dst: fcgi_resume_each_sending_fstrm
      Src: /src/haproxy/src/mux_fcgi.c:2817,1
    - Dst: fcgi_conn_send_aborts
      Src: /src/haproxy/src/mux_fcgi.c:2822,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2824,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2831,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2793
    functionDepth: 7
    functionLinenumber: 2793
    functionLinenumberEnd: 2833
    functionName: fcgi_process_mux
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TRACE_PROTO
    - TRACE_STATE
    - TRACE_LEAVE
    - fcgi_conn_send_aborts
    - TRACE_DEVEL
    - TRACE_ENTER
    - fcgi_resume_each_sending_fstrm
    - fcgi_conn_send_get_values
    - fcgi_wake_unassigned_streams
    linkageType: ''
    returnType: int
    signature: int fcgi_process_mux(struct fcgi_conn *fconn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2846,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2849,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2850,1
    - Dst: fcgi_recv_allowed
      Src: /src/haproxy/src/mux_fcgi.c:2853,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2854,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:2858,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2860,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2865,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_fcgi.c:2874,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2878,1
    - Dst: struct connection*::xprt::rcv_buf
      Src: /src/haproxy/src/mux_fcgi.c:2880,1
    - Dst: fcgi_recv_allowed
      Src: /src/haproxy/src/mux_fcgi.c:2882,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2883,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_fcgi.c:2884,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2888,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:2891,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2892,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2896,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2897,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2901,1
    - Dst: fcgi_release_buf
      Src: /src/haproxy/src/mux_fcgi.c:2902,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2907,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2912,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2839
    functionDepth: 2
    functionLinenumber: 2839
    functionLinenumberEnd: 2914
    functionName: fcgi_recv
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - struct connection*::xprt::rcv_buf
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_DATA
    - conn_xprt_read0_pending
    - fcgi_get_buf
    - b_room
    - fcgi_release_buf
    - b_data
    - buf_room_for_htx_data
    - struct connection*::xprt::subscribe
    - fcgi_recv_allowed
    linkageType: ''
    returnType: int
    signature: int fcgi_recv(struct fcgi_conn *fconn)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2926,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2929,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_fcgi.c:2932,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:2932,1
    - Dst: fcgi_process_mux
      Src: /src/haproxy/src/mux_fcgi.c:2969,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_fcgi.c:2980,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2980,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_fcgi.c:2980,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2981,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/mux_fcgi.c:2984,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2984,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2990,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2991,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2992,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_fcgi.c:2997,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_fcgi.c:3002,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:3006,1
    - Dst: fcgi_conn_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:3012,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_fcgi.c:3015,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:3015,1
    - Dst: fcgi_resume_each_sending_fstrm
      Src: /src/haproxy/src/mux_fcgi.c:3022,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_fcgi.c:3025,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3026,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:3031,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_fcgi.c:3032,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3035,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 2920
    functionDepth: 8
    functionLinenumber: 2920
    functionLinenumberEnd: 3038
    functionName: fcgi_send
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - br_data
    - TRACE_ENTER
    - TRACE_DATA
    - fcgi_process_mux
    - fcgi_conn_report_term_evt
    - br_tail
    - offer_buffers
    - br_head
    - TRACE_DEVEL
    - fcgi_resume_each_sending_fstrm
    - br_del_head
    - b_free
    - b_data
    - b_size
    - struct connection*::xprt::subscribe
    - b_del
    - TRACE_STATE
    - struct connection*::xprt::snd_buf
    - b_reset
    linkageType: ''
    returnType: int
    signature: int fcgi_send(struct fcgi_conn *fconn)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_fcgi.c:3053,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_fcgi.c:3059,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_fcgi.c:3060,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:3064,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:3069,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:3071,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_fcgi.c:3072,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:3074,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:3076,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_fcgi.c:3078,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_fcgi.c:3084,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3088,1
    - Dst: fcgi_send
      Src: /src/haproxy/src/mux_fcgi.c:3093,1
    - Dst: fcgi_recv
      Src: /src/haproxy/src/mux_fcgi.c:3095,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3096,1
    - Dst: fcgi_process
      Src: /src/haproxy/src/mux_fcgi.c:3097,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_fcgi.c:3108,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/mux_fcgi.c:3112,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/mux_fcgi.c:3118,1
    - Dst: srv_add_idle
      Src: /src/haproxy/src/mux_fcgi.c:3119,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3130,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3041
    functionDepth: 9
    functionLinenumber: 3041
    functionLinenumberEnd: 3132
    functionName: fcgi_io_cb
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_process
    - BUG_ON
    - fcgi_release
    - fcgi_send
    - srv_add_idle
    - HA_SPIN_UNLOCK
    - conn_delete_from_tree
    - HA_SPIN_LOCK
    - TRACE_ENTER
    - TRACE_POINT
    - fcgi_recv
    - session_reinsert_idle_conn
    - b_data
    - session_detach_idle_conn
    - LIST_INLIST
    - ASSUME_NONNULL
    - objt_server
    - tasklet_free
    linkageType: ''
    returnType: struct task
    signature: struct task *fcgi_io_cb(struct task *t, void *ctx, unsigned int state)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:3142,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3145,1
    - Dst: fcgi_process_demux
      Src: /src/haproxy/src/mux_fcgi.c:3147,1
    - Dst: fcgi_recv_allowed
      Src: /src/haproxy/src/mux_fcgi.c:3155,1
    - Dst: fcgi_recv
      Src: /src/haproxy/src/mux_fcgi.c:3159,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3161,1
    - Dst: fcgi_may_demux
      Src: /src/haproxy/src/mux_fcgi.c:3161,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:3164,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_fcgi.c:3167,1
    - Dst: fcgi_send
      Src: /src/haproxy/src/mux_fcgi.c:3169,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:3171,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:3176,1
    - Dst: fcgi_conn_send_aborts
      Src: /src/haproxy/src/mux_fcgi.c:3179,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_fcgi.c:3193,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:3196,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3197,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:3197,1
    - Dst: fcgi_strm_notify_recv
      Src: /src/haproxy/src/mux_fcgi.c:3198,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:3199,1
    - Dst: fcgi_conn_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:3203,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3205,1
    - Dst: fcgi_wake_some_streams
      Src: /src/haproxy/src/mux_fcgi.c:3206,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3208,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3210,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3211,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3216,1
    - Dst: fcgi_release_buf
      Src: /src/haproxy/src/mux_fcgi.c:3217,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_fcgi.c:3220,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_fcgi.c:3220,1
    - Dst: fcgi_release_mbuf
      Src: /src/haproxy/src/mux_fcgi.c:3221,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_fcgi.c:3224,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_fcgi.c:3225,1
    - Dst: fcgi_send
      Src: /src/haproxy/src/mux_fcgi.c:3228,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3229,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 52
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3231
      start: 3138
    functionDepth: 9
    functionLinenumber: 3138
    functionLinenumberEnd: 3231
    functionName: fcgi_process
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fcgi_wake_some_streams
    - fcgi_process_demux
    - br_data
    - task_queue
    - eb32_next
    - fcgi_conn_read0_pending
    - fcgi_strm_notify_recv
    - fcgi_strm_sc
    - se_fl_test
    - fcgi_conn_send_aborts
    - fcgi_recv_allowed
    - eb_is_empty
    - fcgi_release
    - fcgi_send
    - TRACE_DEVEL
    - fcgi_recv
    - container_of
    - fcgi_may_demux
    - eb32_lookup_ge
    - fcgi_conn_restart_reading
    - fcgi_release_buf
    - tick_add
    - TRACE_LEAVE
    - b_data
    - TRACE_STATE
    - TRACE_POINT
    - LIST_ISEMPTY
    - b_reset
    - fcgi_release_mbuf
    linkageType: ''
    returnType: int
    signature: int fcgi_process(struct fcgi_conn *fconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:3239,1
    - Dst: fcgi_process
      Src: /src/haproxy/src/mux_fcgi.c:3240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3235
    functionDepth: 10
    functionLinenumber: 3235
    functionLinenumberEnd: 3241
    functionName: fcgi_wake
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_process
    - TRACE_POINT
    linkageType: ''
    returnType: int
    signature: int fcgi_wake(struct connection *conn)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - conn
    - mux_ctl
    - output
    argTypes:
    - struct connection*
    - enum mux_ctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3265
      start: 3244
    functionDepth: 0
    functionLinenumber: 3244
    functionLinenumberEnd: 3265
    functionName: fcgi_ctl
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fcgi_ctl(struct connection *conn, enum mux_ctl_type mux_ctl, void
      *output)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_fcgi.c:3270,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_fcgi.c:3281,1
    - Dst: fcgi_dump_fcgi_strm_info
      Src: /src/haproxy/src/mux_fcgi.c:3284,1
    - Dst: fcgi_dump_fcgi_conn_info
      Src: /src/haproxy/src/mux_fcgi.c:3287,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:3290,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_fcgi.c:3292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - sc
    - mux_sctl
    - output
    argTypes:
    - struct stconn*
    - enum mux_sctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3302
      start: 3267
    functionDepth: 2
    functionLinenumber: 3267
    functionLinenumberEnd: 3302
    functionName: fcgi_sctl
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - get_trash_chunk
    - __sc_mux_strm
    - tevt_evts2str
    - fcgi_dump_fcgi_strm_info
    - fcgi_dump_fcgi_conn_info
    linkageType: ''
    returnType: int
    signature: int fcgi_sctl(struct stconn *sc, enum mux_sctl_type mux_sctl, void
      *output)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_fcgi.c:3313,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3315,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_fcgi.c:3318,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_fcgi.c:3324,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_fcgi.c:3330,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3331,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_fcgi.c:3339,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_fcgi.c:3341,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_fcgi.c:3343,1
    - Dst: fcgi_conn_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:3345,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_fcgi.c:3349,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3353,1
    - Dst: fcgi_wake_some_streams
      Src: /src/haproxy/src/mux_fcgi.c:3359,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_fcgi.c:3361,1
    - Dst: fcgi_conn_send_aborts
      Src: /src/haproxy/src/mux_fcgi.c:3368,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_fcgi.c:3371,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/mux_fcgi.c:3372,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_fcgi.c:3376,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:3376,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_fcgi.c:3376,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3377,1
    - Dst: struct fcgi_conn*::conn::xprt::snd_buf
      Src: /src/haproxy/src/mux_fcgi.c:3378,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3379,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:3382,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3383,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_fcgi.c:3385,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_fcgi.c:3391,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3398,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3399,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3401,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3403
      start: 3310
    functionDepth: 8
    functionLinenumber: 3310
    functionLinenumberEnd: 3403
    functionName: fcgi_timeout_task
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_wake_some_streams
    - br_data
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - fcgi_conn_report_term_evt
    - offer_buffers
    - br_head
    - fcgi_conn_send_aborts
    - task_destroy
    - eb_is_empty
    - fcgi_release
    - conn_xprt_ready
    - TRACE_DEVEL
    - tick_is_expired
    - TRACE_LEAVE
    - conn_delete_from_tree
    - br_del_head
    - b_free
    - b_data
    - b_size
    - b_del
    - struct fcgi_conn*::conn::xprt::snd_buf
    - HA_SPIN_UNLOCK
    - session_detach_idle_conn
    linkageType: ''
    returnType: struct task
    signature: struct task *fcgi_timeout_task(struct task *t, void *context, unsigned
      int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:3416,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_fcgi.c:3421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - es
    argTypes:
    - struct buffer*
    - struct error_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3423
      start: 3414
    functionDepth: 1
    functionLinenumber: 3414
    functionLinenumberEnd: 3423
    functionName: fcgi_show_error_snapshot
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - h1m_state_str
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void fcgi_show_error_snapshot(struct buffer *out, const struct error_snapshot
      *es)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3440,1
    - Dst: sc_strm
      Src: /src/haproxy/src/mux_fcgi.c:3440,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3440,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/mux_fcgi.c:3442,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3442,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/mux_fcgi.c:3444,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3444,1
    - Dst: proxy_capture_error
      Src: /src/haproxy/src/mux_fcgi.c:3457,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - fconn
    - fstrm
    - h1m
    - buf
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    - struct h1m*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3460
      start: 3432
    functionDepth: 1
    functionLinenumber: 3432
    functionLinenumberEnd: 3460
    functionName: fcgi_strm_capture_bad_message
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_strm_sc
    - sc_strm
    - proxy_capture_error
    - __sc_strm
    linkageType: ''
    returnType: void
    signature: "void fcgi_strm_capture_bad_message(struct fcgi_conn *fconn, struct
      fcgi_strm *fstrm,\n\t\t\t\t\t  struct h1m *h1m, struct buffer *buf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3467,1
    - Dst: h1_parse_msg_hdrs
      Src: /src/haproxy/src/mux_fcgi.c:3468,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3470,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:3472,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3473,1
    - Dst: fcgi_strm_capture_bad_message
      Src: /src/haproxy/src/mux_fcgi.c:3474,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:3487,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3488,1
    - Dst: fcgi_strm_capture_bad_message
      Src: /src/haproxy/src/mux_fcgi.c:3489,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3496,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 6
    argNames:
    - fstrm
    - h1m
    - htx
    - buf
    - ofs
    - max
    argTypes:
    - struct fcgi_strm*
    - struct h1m*
    - struct htx*
    - struct buffer*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3462
    functionDepth: 2
    functionLinenumber: 3462
    functionLinenumberEnd: 3499
    functionName: fcgi_strm_parse_headers
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - h1_parse_msg_hdrs
    - TRACE_LEAVE
    - TRACE_ERROR
    - fcgi_strm_error
    - TRACE_DEVEL
    - TRACE_ENTER
    - fcgi_strm_capture_bad_message
    linkageType: ''
    returnType: size_t
    signature: "size_t fcgi_strm_parse_headers(struct fcgi_strm *fstrm, struct h1m
      *h1m, struct htx *htx,\n\t\t\t\t      struct buffer *buf, size_t *ofs, size_t
      max)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3506,1
    - Dst: h1_parse_msg_data
      Src: /src/haproxy/src/mux_fcgi.c:3507,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3509,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:3511,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3512,1
    - Dst: fcgi_strm_capture_bad_message
      Src: /src/haproxy/src/mux_fcgi.c:3513,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 7
    argNames:
    - fstrm
    - h1m
    - htx
    - buf
    - ofs
    - max
    - htxbuf
    argTypes:
    - struct fcgi_strm*
    - struct h1m*
    - struct htx**
    - struct buffer*
    - size_t*
    - size_t
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3501
    functionDepth: 2
    functionLinenumber: 3501
    functionLinenumberEnd: 3521
    functionName: fcgi_strm_parse_data
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - h1_parse_msg_data
    - fcgi_strm_error
    - TRACE_DEVEL
    - TRACE_ENTER
    - fcgi_strm_capture_bad_message
    linkageType: ''
    returnType: size_t
    signature: "size_t fcgi_strm_parse_data(struct fcgi_strm *fstrm, struct h1m *h1m,
      struct htx **htx,\n\t\t\t\t   struct buffer *buf, size_t *ofs, size_t max, struct
      buffer *htxbuf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3528,1
    - Dst: h1_parse_msg_tlrs
      Src: /src/haproxy/src/mux_fcgi.c:3529,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3531,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:3533,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3534,1
    - Dst: fcgi_strm_capture_bad_message
      Src: /src/haproxy/src/mux_fcgi.c:3535,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - fstrm
    - h1m
    - htx
    - buf
    - ofs
    - max
    argTypes:
    - struct fcgi_strm*
    - struct h1m*
    - struct htx*
    - struct buffer*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3544
      start: 3523
    functionDepth: 2
    functionLinenumber: 3523
    functionLinenumberEnd: 3544
    functionName: fcgi_strm_parse_trailers
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - fcgi_strm_error
    - h1_parse_msg_tlrs
    - TRACE_DEVEL
    - TRACE_ENTER
    - fcgi_strm_capture_bad_message
    linkageType: ''
    returnType: size_t
    signature: "size_t fcgi_strm_parse_trailers(struct fcgi_strm *fstrm, struct h1m
      *h1m, struct htx *htx,\n\t\t\t\t       struct buffer *buf, size_t *ofs, size_t
      max)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_fcgi.c:3555,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3556,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/mux_fcgi.c:3563,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3566,1
    - Dst: fcgi_strm_parse_headers
      Src: /src/haproxy/src/mux_fcgi.c:3567,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:3571,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:3574,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_fcgi.c:3579,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3584,1
    - Dst: fcgi_strm_parse_data
      Src: /src/haproxy/src/mux_fcgi.c:3585,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3588,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3589,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3590,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/mux_fcgi.c:3590,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:3594,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3600,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3603,1
    - Dst: fcgi_strm_parse_trailers
      Src: /src/haproxy/src/mux_fcgi.c:3604,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3608,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:3611,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3612,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3614,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3615,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:3621,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3622,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/mux_fcgi.c:3626,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_fcgi.c:3630,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_fcgi.c:3631,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3632,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:3636,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_fcgi.c:3640,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3642,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 3
    argNames:
    - fstrm
    - buf
    - count
    argTypes:
    - struct fcgi_strm*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3546
    functionDepth: 3
    functionLinenumber: 3546
    functionLinenumberEnd: 3644
    functionName: fcgi_strm_parse_response
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_strm_parse_headers
    - TRACE_ENTER
    - htx_get_blk_ptr
    - htx_is_empty
    - fcgi_strm_error
    - TRACE_DEVEL
    - htx_used_space
    - htx_get_head_blk
    - htx_from_buf
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_data
    - b_del
    - htx_to_buf
    - fcgi_strm_parse_data
    - fcgi_strm_parse_trailers
    - b_reset
    - htx_add_endof
    - TRACE_USER
    linkageType: ''
    returnType: size_t
    signature: size_t fcgi_strm_parse_response(struct fcgi_strm *fstrm, struct buffer
      *buf, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3655,1
    - Dst: fcgi_stconn_new
      Src: /src/haproxy/src/mux_fcgi.c:3656,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/mux_fcgi.c:3661,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/mux_fcgi.c:3662,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3664,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - conn
    - sd
    - sess
    argTypes:
    - struct connection*
    - struct sedesc*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3670
      start: 3650
    functionDepth: 6
    functionLinenumber: 3650
    functionLinenumberEnd: 3670
    functionName: fcgi_attach
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - xprt_set_used
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - HA_ATOMIC_AND
    - fcgi_stconn_new
    linkageType: ''
    returnType: int
    signature: int fcgi_attach(struct connection *conn, struct sedesc *sd, struct
      session *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_fcgi.c:3683,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:3685,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3686,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3687,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:3688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3691
      start: 3677
    functionDepth: 1
    functionLinenumber: 3677
    functionLinenumberEnd: 3691
    functionName: fcgi_get_first_sc
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_strm_sc
    - eb32_first
    - container_of
    - eb32_next
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *fcgi_get_first_sc(const struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:3700,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3701,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:3702,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3696
    functionDepth: 4
    functionLinenumber: 3696
    functionLinenumberEnd: 3705
    functionName: fcgi_destroy
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_release
    - BUG_ON
    - eb_is_empty
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void fcgi_destroy(void *ctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3716,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3719,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3747,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:3754,1
    - Dst: fcgi_strm_destroy
      Src: /src/haproxy/src/mux_fcgi.c:3757,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/mux_fcgi.c:3763,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3765,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:3766,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_fcgi.c:3768,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_fcgi.c:3768,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3769,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_fcgi.c:3776,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_fcgi.c:3777,1
    - Dst: session_check_idle_conn
      Src: /src/haproxy/src/mux_fcgi.c:3780,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_fcgi.c:3781,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_fcgi.c:3781,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3782,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3790,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3795,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/mux_fcgi.c:3800,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_fcgi.c:3807,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_fcgi.c:3808,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_fcgi.c:3810,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_fcgi.c:3810,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_fcgi.c:3812,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_fcgi.c:3812,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3813,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3820,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/mux_fcgi.c:3823,1
    - Dst: fcgi_avail_streams
      Src: /src/haproxy/src/mux_fcgi.c:3824,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_fcgi.c:3824,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:3825,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/mux_fcgi.c:3826,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_fcgi.c:3826,1
    - Dst: fcgi_conn_is_dead
      Src: /src/haproxy/src/mux_fcgi.c:3834,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3836,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3837,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_fcgi.c:3840,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_fcgi.c:3841,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3842,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3845,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 77
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3846
      start: 3710
    functionDepth: 5
    functionLinenumber: 3710
    functionLinenumberEnd: 3846
    functionName: fcgi_detach
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - task_queue
    - TRACE_ENTER
    - HA_ATOMIC_OR
    - objt_server
    - fcgi_strm_destroy
    - eb_is_empty
    - fcgi_release
    - TRACE_DEVEL
    - fcgi_avail_streams
    - srv_add_to_avail_list
    - destroy
    - fcgi_conn_restart_reading
    - tick_add
    - TRACE_LEAVE
    - CALL_MUX_NO_RET
    - fcgi_conn_is_dead
    - LIST_INLIST
    - session_check_idle_conn
    - __objt_server
    - session_add_conn
    - srv_add_to_idle_list
    - ceb_intree
    - xprt_set_idle
    - session_unown_conn
    linkageType: ''
    returnType: void
    signature: void fcgi_detach(struct sedesc *sd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3854,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:3863,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:3865,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:3869,1
    - Dst: fcgi_strm_send_abort
      Src: /src/haproxy/src/mux_fcgi.c:3871,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:3875,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:3878,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3881,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:3890,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_fcgi.c:3892,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3896,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3898
      start: 3850
    functionDepth: 4
    functionLinenumber: 3850
    functionLinenumberEnd: 3898
    functionName: fcgi_do_shutr
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - fcgi_strm_close
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - LIST_APPEND
    - LIST_INLIST
    - se_fl_test
    - fcgi_strm_send_abort
    linkageType: ''
    returnType: void
    signature: void fcgi_do_shutr(struct fcgi_strm *fstrm)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3905,1
    - Dst: fcgi_strm_send_abort
      Src: /src/haproxy/src/mux_fcgi.c:3912,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:3916,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:3924,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:3926,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:3930,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:3934,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3937,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:3946,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_fcgi.c:3948,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3952,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3954
      start: 3901
    functionDepth: 4
    functionLinenumber: 3901
    functionLinenumberEnd: 3954
    functionName: fcgi_do_shutw
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - fcgi_strm_close
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - LIST_APPEND
    - LIST_INLIST
    - se_fl_test
    - fcgi_strm_send_abort
    linkageType: ''
    returnType: void
    signature: void fcgi_do_shutw(struct fcgi_strm *fstrm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3965,1
    - Dst: fcgi_do_shutw
      Src: /src/haproxy/src/mux_fcgi.c:3973,1
    - Dst: fcgi_do_shutr
      Src: /src/haproxy/src/mux_fcgi.c:3976,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_fcgi.c:3980,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3982,1
    - Dst: fcgi_strm_destroy
      Src: /src/haproxy/src/mux_fcgi.c:3983,1
    - Dst: fcgi_conn_is_dead
      Src: /src/haproxy/src/mux_fcgi.c:3984,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3985,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3989,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3991
      start: 3960
    functionDepth: 5
    functionLinenumber: 3960
    functionLinenumberEnd: 3991
    functionName: fcgi_deferred_shut
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_strm_destroy
    - TRACE_LEAVE
    - fcgi_release
    - fcgi_do_shutr
    - LIST_DEL_INIT
    - TRACE_ENTER
    - fcgi_do_shutw
    - fcgi_conn_is_dead
    - fcgi_strm_sc
    linkageType: ''
    returnType: struct task
    signature: struct task *fcgi_deferred_shut(struct task *t, void *ctx, unsigned
      int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_fcgi.c:3995,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3997,1
    - Dst: fcgi_do_shutw
      Src: /src/haproxy/src/mux_fcgi.c:3999,1
    - Dst: fcgi_do_shutr
      Src: /src/haproxy/src/mux_fcgi.c:4001,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:4002,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sc
    - mode
    - reason
    argTypes:
    - struct stconn*
    - unsigned int
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4003
      start: 3993
    functionDepth: 5
    functionLinenumber: 3993
    functionLinenumberEnd: 4003
    functionName: fcgi_shut
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - fcgi_do_shutr
    - TRACE_ENTER
    - fcgi_do_shutw
    - __sc_mux_strm
    linkageType: ''
    returnType: void
    signature: void fcgi_shut(struct stconn *sc, unsigned int mode, struct se_abort_info
      *reason)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_fcgi.c:4012,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:4015,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:4016,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4022,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4025,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:4026,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_fcgi.c:4027,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4030
      start: 4010
    functionDepth: 1
    functionLinenumber: 4010
    functionLinenumberEnd: 4030
    functionName: fcgi_subscribe
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - TRACE_DEVEL
    - LIST_APPEND
    - __sc_mux_strm
    - LIST_INLIST
    linkageType: ''
    returnType: int
    signature: int fcgi_subscribe(struct stconn *sc, int event_type, struct wait_event
      *es)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_fcgi.c:4038,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:4041,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:4042,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4049,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4052,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_fcgi.c:4055,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4058
      start: 4036
    functionDepth: 1
    functionLinenumber: 4036
    functionLinenumberEnd: 4058
    functionName: fcgi_unsubscribe
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - TRACE_DEVEL
    - BUG_ON
    - LIST_DEL_INIT
    linkageType: ''
    returnType: int
    signature: int fcgi_unsubscribe(struct stconn *sc, int event_type, struct wait_event
      *es)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_fcgi.c:4074,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:4078,1
    - Dst: fcgi_strm_parse_response
      Src: /src/haproxy/src/mux_fcgi.c:4081,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:4083,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4085,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4091,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:4092,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_fcgi.c:4095,1
    - Dst: fcgi_strm_propagate_term_flags
      Src: /src/haproxy/src/mux_fcgi.c:4096,1
    - Dst: fcgi_release_buf
      Src: /src/haproxy/src/mux_fcgi.c:4097,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:4103,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:4106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4108
      start: 4072
    functionDepth: 4
    functionLinenumber: 4072
    functionLinenumberEnd: 4108
    functionName: fcgi_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - TRACE_STATE
    - TRACE_LEAVE
    - fcgi_strm_parse_response
    - TRACE_ENTER
    - __sc_mux_strm
    - b_data
    - se_fl_clr
    - fcgi_strm_propagate_term_flags
    - fcgi_conn_restart_reading
    - fcgi_release_buf
    linkageType: ''
    returnType: size_t
    signature: size_t fcgi_rcv_buf(struct stconn *sc, struct buffer *buf, size_t count,
      int flags)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_fcgi.c:4117,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:4126,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_fcgi.c:4132,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:4133,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:4139,1
    - Dst: htxbuf
      Src: /src/haproxy/src/mux_fcgi.c:4143,1
    - Dst: fcgi_conn_get_next_sid
      Src: /src/haproxy/src/mux_fcgi.c:4145,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:4148,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:4149,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4150,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/mux_fcgi.c:4154,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/mux_fcgi.c:4158,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/mux_fcgi.c:4164,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:4167,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:4173,1
    - Dst: fcgi_strm_send_begin_request
      Src: /src/haproxy/src/mux_fcgi.c:4174,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:4182,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/mux_fcgi.c:4183,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:4183,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_fcgi.c:4184,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:4186,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:4189,1
    - Dst: fcgi_strm_send_params
      Src: /src/haproxy/src/mux_fcgi.c:4190,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:4200,1
    - Dst: fcgi_strm_send_empty_params
      Src: /src/haproxy/src/mux_fcgi.c:4201,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_fcgi.c:4205,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:4206,1
    - Dst: fcgi_strm_send_empty_stdin
      Src: /src/haproxy/src/mux_fcgi.c:4207,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:4214,1
    - Dst: fcgi_strm_send_stdin
      Src: /src/haproxy/src/mux_fcgi.c:4215,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_fcgi.c:4217,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_fcgi.c:4226,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:4227,1
    - Dst: fcgi_strm_send_empty_stdin
      Src: /src/haproxy/src/mux_fcgi.c:4228,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_fcgi.c:4236,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4253,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_fcgi.c:4254,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:4255,1
    - Dst: fcgi_strm_send_abort
      Src: /src/haproxy/src/mux_fcgi.c:4256,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:4257,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_fcgi.c:4261,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4265,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:4266,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_fcgi.c:4271,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:4274,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 127
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4276
      start: 4115
    functionDepth: 6
    functionLinenumber: 4115
    functionLinenumberEnd: 4276
    functionName: fcgi_snd_buf
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - fcgi_strm_send_begin_request
    - se_fl_set_error
    - TRACE_ENTER
    - fcgi_strm_send_stdin
    - fcgi_strm_send_empty_params
    - ASSUME_NONNULL
    - htx_is_empty
    - eb32_insert
    - fcgi_strm_send_params
    - fcgi_strm_error
    - TRACE_DEVEL
    - fcgi_strm_send_empty_stdin
    - htx_get_blk_type
    - htx_get_head_blk
    - se_fl_set
    - htx_from_buf
    - htxbuf
    - TRACE_PROTO
    - TRACE_LEAVE
    - fcgi_strm_close
    - LIST_DEL_INIT
    - http_get_stline
    - tasklet_wakeup
    - htx_is_unique_blk
    - se_report_term_evt
    - htx_to_buf
    - TRACE_STATE
    - fcgi_conn_get_next_sid
    - eb32_delete
    - __sc_mux_strm
    - LIST_ISEMPTY
    - htx_remove_blk
    - fcgi_strm_send_abort
    - TRACE_USER
    linkageType: ''
    returnType: size_t
    signature: size_t fcgi_snd_buf(struct stconn *sc, struct buffer *buf, size_t count,
      int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4290,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4292,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:4292,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:4293,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:4293,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:4294,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4297,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4299,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_fcgi.c:4299,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_fcgi.c:4299,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:4300,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4301,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:4302,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:4302,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_fcgi.c:4302,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:4302,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4305,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4307,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4309,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4310,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/mux_fcgi.c:4315,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - msg
    - fstrm
    - pfx
    argTypes:
    - struct buffer*
    - struct fcgi_strm*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4319
      start: 4283
    functionDepth: 6
    functionLinenumber: 4283
    functionLinenumberEnd: 4319
    functionName: fcgi_dump_fcgi_strm_info
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - b_orig
    - se_fl_get
    - chunk_appendf
    - b_head_ofs
    - b_data
    - b_size
    - tevt_evts2str
    - fcgi_strm_sc
    - se_fl_test
    - resolve_sym_name
    linkageType: ''
    returnType: int
    signature: int fcgi_dump_fcgi_strm_info(struct buffer *msg, const struct fcgi_strm
      *fstrm, const char *pfx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mux_fcgi.c:4339,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_fcgi.c:4343,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:4345,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:4347,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:4349,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_fcgi.c:4352,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:4353,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4354,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_fcgi.c:4357,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4360,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4362,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4364,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:4364,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:4365,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:4365,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4369,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4371,1
    - Dst: br_head_idx
      Src: /src/haproxy/src/mux_fcgi.c:4372,1
    - Dst: br_tail_idx
      Src: /src/haproxy/src/mux_fcgi.c:4372,1
    - Dst: br_size
      Src: /src/haproxy/src/mux_fcgi.c:4372,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4373,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:4373,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:4374,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:4374,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4375,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:4375,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:4376,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:4376,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4378,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4380,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_fcgi.c:4381,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_fcgi.c:4382,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_fcgi.c:4382,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_fcgi.c:4382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - msg
    - fconn
    - pfx
    argTypes:
    - struct buffer*
    - struct fcgi_conn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4386
      start: 4326
    functionDepth: 2
    functionLinenumber: 4326
    functionLinenumberEnd: 4386
    functionName: fcgi_dump_fcgi_conn_info
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - chunk_appendf
    - TICKS_TO_MS
    - eb32_next
    - br_tail
    - tevt_evts2str
    - fcgi_strm_sc
    - br_size
    - br_head
    - container_of
    - b_head_ofs
    - tick_is_expired
    - br_head_idx
    - human_time
    - b_orig
    - b_data
    - b_size
    - br_tail_idx
    - list_for_each_entry
    - eb32_first
    linkageType: ''
    returnType: int
    signature: int fcgi_dump_fcgi_conn_info(struct buffer *msg, struct fcgi_conn *fconn,
      const char *pfx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcgi_dump_fcgi_conn_info
      Src: /src/haproxy/src/mux_fcgi.c:4401,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_fcgi.c:4403,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:4405,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4406,1
    - Dst: fcgi_dump_fcgi_strm_info
      Src: /src/haproxy/src/mux_fcgi.c:4407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - msg
    - conn
    argTypes:
    - struct buffer*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4391
    functionDepth: 7
    functionLinenumber: 4391
    functionLinenumberEnd: 4411
    functionName: fcgi_show_fd
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - container_of
    - eb32_first
    - fcgi_dump_fcgi_strm_info
    - fcgi_dump_fcgi_conn_info
    linkageType: ''
    returnType: int
    signature: int fcgi_show_fd(struct buffer *msg, struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4427,1
    - Dst: fcgi_dump_fcgi_strm_info
      Src: /src/haproxy/src/mux_fcgi.c:4428,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4430,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4431,1
    - Dst: fcgi_dump_fcgi_conn_info
      Src: /src/haproxy/src/mux_fcgi.c:4432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - msg
    - sd
    - pfx
    argTypes:
    - struct buffer*
    - struct sedesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4434
      start: 4419
    functionDepth: 7
    functionLinenumber: 4419
    functionLinenumberEnd: 4434
    functionName: fcgi_show_sd
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_dump_fcgi_strm_info
    - chunk_appendf
    - fcgi_dump_fcgi_conn_info
    linkageType: ''
    returnType: int
    signature: int fcgi_show_sd(struct buffer *msg, struct sedesc *sd, const char
      *pfx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:4455,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_fcgi.c:4462,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_fcgi.c:4463,1
    - Dst: fd_takeover
      Src: /src/haproxy/src/mux_fcgi.c:4468,1
    - Dst: struct connection*::xprt::takeover
      Src: /src/haproxy/src/mux_fcgi.c:4471,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_fcgi.c:4478,1
    - Dst: struct fcgi_conn*::conn::xprt::unsubscribe
      Src: /src/haproxy/src/mux_fcgi.c:4483,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/mux_fcgi.c:4493,1
    - Dst: task_kill
      Src: /src/haproxy/src/mux_fcgi.c:4494,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_fcgi.c:4508,1
    - Dst: struct fcgi_conn*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_fcgi.c:4514,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_fcgi.c:4519,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_fcgi.c:4523,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_fcgi.c:4524,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - conn
    - orig_tid
    - release
    argTypes:
    - struct connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4526
      start: 4440
    functionDepth: 2
    functionLinenumber: 4440
    functionLinenumberEnd: 4526
    functionName: fcgi_takeover
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - __task_free
    - task_kill
    - struct fcgi_conn*::conn::xprt::unsubscribe
    - tasklet_wakeup_on
    - tasklet_new
    - fd_takeover
    - tasklet_free
    - __ha_barrier_store
    - LIST_INLIST
    - struct connection*::xprt::takeover
    - struct fcgi_conn*::conn::xprt::subscribe
    - task_new_here
    linkageType: ''
    returnType: int
    signature: int fcgi_takeover(struct connection *conn, int orig_tid, int release)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ebim_lookup
      Src: /src/haproxy/src/ebimtree.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - root
    - x
    - len
    argTypes:
    - struct eb_root*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: ebim_lookup
    functionSourceFile: /src/haproxy/src/ebimtree.c
    functionUses: 1
    functionsReached:
    - __ebim_lookup
    linkageType: ''
    returnType: struct ebpt_node
    signature: 'struct ebpt_node *

      ebim_lookup(struct eb_root *root, const void *x, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ebim_insert
      Src: /src/haproxy/src/ebimtree.c:43,1
    - Dst: len::len
      Src: /src/haproxy/src/ebimtree.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - root
    - new
    - len
    argTypes:
    - struct eb_root*
    - struct ebpt_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: ebim_insert
    functionSourceFile: /src/haproxy/src/ebimtree.c
    functionUses: 1
    functionsReached:
    - __ebim_insert
    - len::len
    linkageType: ''
    returnType: struct ebpt_node
    signature: 'struct ebpt_node *

      ebim_insert(struct eb_root *root, struct ebpt_node *new, unsigned int len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct show_quic_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: cli_show_quic_format
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum quic_dump_format
    signature: enum quic_dump_format cli_show_quic_format(const struct show_quic_ctx
      *ctx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/quic_cli.c:61,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/quic_cli.c:64,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/quic_cli.c:67,1
    - Dst: strcmp
      Src: /src/haproxy/src/quic_cli.c:74,1
    - Dst: strcmp
      Src: /src/haproxy/src/quic_cli.c:78,1
    - Dst: strcmp
      Src: /src/haproxy/src/quic_cli.c:83,1
    - Dst: strcmp
      Src: /src/haproxy/src/quic_cli.c:88,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/quic_cli.c:89,1
    - Dst: cli_err
      Src: /src/haproxy/src/quic_cli.c:104,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:107,1
    - Dst: istsplit
      Src: /src/haproxy/src/quic_cli.c:108,1
    - Dst: isteq
      Src: /src/haproxy/src/quic_cli.c:111,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:111,1
    - Dst: isteq
      Src: /src/haproxy/src/quic_cli.c:114,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:114,1
    - Dst: isteq
      Src: /src/haproxy/src/quic_cli.c:117,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:117,1
    - Dst: isteq
      Src: /src/haproxy/src/quic_cli.c:120,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:120,1
    - Dst: isteq
      Src: /src/haproxy/src/quic_cli.c:123,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:123,1
    - Dst: cli_err
      Src: /src/haproxy/src/quic_cli.c:132,1
    - Dst: istsplit
      Src: /src/haproxy/src/quic_cli.c:139,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:152,1
    - Dst: istmatchi
      Src: /src/haproxy/src/quic_cli.c:154,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:154,1
    - Dst: strtol
      Src: /src/haproxy/src/quic_cli.c:156,1
    - Dst: cli_err
      Src: /src/haproxy/src/quic_cli.c:158,1
    - Dst: istmatch
      Src: /src/haproxy/src/quic_cli.c:167,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:167,1
    - Dst: istmatch
      Src: /src/haproxy/src/quic_cli.c:170,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:170,1
    - Dst: istmatch
      Src: /src/haproxy/src/quic_cli.c:173,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:173,1
    - Dst: cli_err
      Src: /src/haproxy/src/quic_cli.c:177,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_cli.c:184,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 84
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 187
    functionName: cli_parse_show_quic
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - ist
    - istmatchi
    - chunk_printf
    - istsplit
    - strcmp
    - applet_reserve_svcctx
    - isteq
    - istmatch
    - strtol
    - _HA_ATOMIC_FETCH_ADD
    - cli_has_level
    - LIST_INIT
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_quic(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:197,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_cli.c:198,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_cli.c:200,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:202,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:206,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:208,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:210,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:212,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:215,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_cli.c:223,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_cli.c:224,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:225,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_cli.c:227,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_cli.c:228,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:229,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:235,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:237,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:239,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:241,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - qc
    argTypes:
    - struct show_quic_ctx*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 242
    functionName: dump_quic_oneline
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - port_to_str
    - chunk_appendf
    - qc_is_back
    - addr_to_str
    linkageType: ''
    returnType: void
    signature: void dump_quic_oneline(struct show_quic_ctx *ctx, struct quic_conn
      *qc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_cli.c:252,1
    - Dst: eb_entry
      Src: /src/haproxy/src/quic_cli.c:254,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/quic_cli.c:258,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_cli.c:259,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:263,1
    - Dst: human_time
      Src: /src/haproxy/src/quic_cli.c:264,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/quic_cli.c:264,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/quic_cli.c:264,1
    - Dst: bdata_ctr_print
      Src: /src/haproxy/src/quic_cli.c:266,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:268,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:269,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:270,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:273,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:274,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:275,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:278,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_cli.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - qc
    argTypes:
    - struct show_quic_ctx*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 281
    functionName: dump_quic_stream
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - human_time
    - eb64_next
    - ns_to_sec
    - quic_stream_is_uni
    - chunk_appendf
    - eb64_first
    - eb_entry
    - bdata_ctr_print
    linkageType: ''
    returnType: void
    signature: void dump_quic_stream(struct show_quic_ctx *ctx, struct quic_conn *qc)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:293,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_cli.c:294,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:296,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:298,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:300,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:302,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:304,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:306,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:309,1
    - Dst: quic_transport_params_dump
      Src: /src/haproxy/src/quic_cli.c:310,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:311,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:312,1
    - Dst: quic_transport_params_dump
      Src: /src/haproxy/src/quic_cli.c:313,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:314,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:319,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:321,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:323,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:325,1
    - Dst: qc_wait_for_conn
      Src: /src/haproxy/src/quic_cli.c:327,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:328,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_cli.c:329,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:330,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:332,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:336,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_cli.c:337,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_cli.c:337,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:340,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:344,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_cli.c:347,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_cli.c:348,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:349,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_cli.c:351,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_cli.c:352,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:353,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:356,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:363,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:370,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:377,1
    - Dst: struct quic_conn*::path::cc::algo::state_cli
      Src: /src/haproxy/src/quic_cli.c:385,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:387,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:398,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:402,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:406,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:410,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:414,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:418,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:422,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:426,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:430,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:434,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:438,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:442,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_cli.c:444,1
    - Dst: qcc_show_quic
      Src: /src/haproxy/src/quic_cli.c:445,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:447,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 118
    argCount: 2
    argNames:
    - ctx
    - qc
    argTypes:
    - struct show_quic_ctx*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 448
    functionName: dump_quic_full
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - tick_remain
    - qc_is_conn_ready
    - qcc_show_quic
    - port_to_str
    - chunk_appendf
    - qc_wait_for_conn
    - qc_is_back
    - TICKS_TO_MS
    - struct quic_conn*::path::cc::algo::state_cli
    - quic_transport_params_dump
    - addr_to_str
    linkageType: ''
    returnType: void
    signature: void dump_quic_full(struct show_quic_ctx *ctx, struct quic_conn *qc)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - flags
    - thr
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 459
    functionName: cli_quic_get_list
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct list
    signature: struct list *cli_quic_get_list(int flags, int thr)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: thread_isolate
      Src: /src/haproxy/src/quic_cli.c:466,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/quic_cli.c:471,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_cli.c:473,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_cli.c:475,1
    - Dst: cli_quic_get_list
      Src: /src/haproxy/src/quic_cli.c:479,1
    - Dst: cli_show_quic_format
      Src: /src/haproxy/src/quic_cli.c:483,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:484,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/quic_cli.c:488,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/quic_cli.c:523,1
    - Dst: cli_quic_get_list
      Src: /src/haproxy/src/quic_cli.c:537,1
    - Dst: cli_show_quic_format
      Src: /src/haproxy/src/quic_cli.c:542,1
    - Dst: dump_quic_full
      Src: /src/haproxy/src/quic_cli.c:544,1
    - Dst: dump_quic_oneline
      Src: /src/haproxy/src/quic_cli.c:547,1
    - Dst: dump_quic_stream
      Src: /src/haproxy/src/quic_cli.c:551,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_cli.c:556,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/quic_cli.c:559,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_cli.c:561,1
    - Dst: thread_release
      Src: /src/haproxy/src/quic_cli.c:573,1
    - Dst: thread_release
      Src: /src/haproxy/src/quic_cli.c:577,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 80
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 461
    functionDepth: 3
    functionLinenumber: 461
    functionLinenumberEnd: 579
    functionName: cli_io_handler_dump_quic
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - LIST_ELEM
    - thread_isolate
    - dump_quic_oneline
    - LIST_DEL_INIT
    - chunk_appendf
    - LIST_APPEND
    - ABORT_NOW
    - LIST_ISEMPTY
    - cli_show_quic_format
    - thread_release
    - chunk_reset
    - dump_quic_full
    - cli_quic_get_list
    - dump_quic_stream
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_quic(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: thread_isolate
      Src: /src/haproxy/src/quic_cli.c:586,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_cli.c:587,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_cli.c:588,1
    - Dst: thread_release
      Src: /src/haproxy/src/quic_cli.c:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: cli_release_show_quic
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - LIST_ISEMPTY
    - thread_isolate
    - thread_release
    linkageType: ''
    returnType: void
    signature: void cli_release_show_quic(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_cli.c:605,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_cli.c:606,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_cli.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 609
    functionName: cli_quic_init
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void cli_quic_init()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:26,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:26,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:28,1
    - Dst: b_size
      Src: /src/haproxy/src/quic_stream.c:33,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:37,1
    - Dst: b_free
      Src: /src/haproxy/src/quic_stream.c:40,1
    - Dst: bdata_ctr_del
      Src: /src/haproxy/src/quic_stream.c:42,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:42,1
    - Dst: bdata_ctr_bdec
      Src: /src/haproxy/src/quic_stream.c:43,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/quic_stream.c:44,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:46,1
    - Dst: struct qc_stream_desc*::notify_room
      Src: /src/haproxy/src/quic_stream.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - stream
    - stream_buf
    argTypes:
    - struct qc_stream_desc*
    - struct qc_stream_buf**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 52
    functionName: qc_stream_buf_free
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - bdata_ctr_bdec
    - eb_is_empty
    - BUG_ON
    - eb64_delete
    - struct qc_stream_desc*::notify_room
    - b_free
    - bdata_ctr_del
    - b_data
    - b_size
    - offer_buffers
    - pool_free
    linkageType: ''
    returnType: void
    signature: "void qc_stream_buf_free(struct qc_stream_desc *stream,\n                               struct
      qc_stream_buf **stream_buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_stream.c:65,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_stream.c:74,1
    - Dst: bdata_ctr_init
      Src: /src/haproxy/src/quic_stream.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - id
    - type
    - ctx
    - qc
    argTypes:
    - uint64_t
    - enum qcs_type
    - void*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 91
    functionName: qc_stream_desc_new
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 1
    functionsReached:
    - bdata_ctr_init
    - pool_alloc
    - eb64_insert
    linkageType: ''
    returnType: struct qc_stream_desc
    signature: "struct qc_stream_desc *qc_stream_desc_new(uint64_t id, enum qcs_type
      type, void *ctx,\n                                          struct quic_conn
      *qc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:108,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_stream.c:118,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:118,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:121,1
    - Dst: b_sub
      Src: /src/haproxy/src/quic_stream.c:125,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:131,1
    - Dst: qc_stream_buf_free
      Src: /src/haproxy/src/quic_stream.c:132,1
    - Dst: qc_stream_buf_release
      Src: /src/haproxy/src/quic_stream.c:134,1
    - Dst: qc_stream_desc_done
      Src: /src/haproxy/src/quic_stream.c:137,1
    - Dst: qc_stream_desc_free
      Src: /src/haproxy/src/quic_stream.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - stream
    - final_size
    - new_ctx
    argTypes:
    - struct qc_stream_desc*
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 141
    functionName: qc_stream_desc_release
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - b_sub
    - qc_stream_desc_done
    - MAX
    - qc_stream_desc_free
    - b_data
    - qc_stream_buf_free
    - qc_stream_buf_release
    linkageType: ''
    returnType: void
    signature: "void qc_stream_desc_release(struct qc_stream_desc *stream,\n                            uint64_t
      final_size, void *new_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - stream
    argTypes:
    - struct qc_stream_buf*
    - struct qc_stream_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: qc_stream_buf_is_released
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int qc_stream_buf_is_released(const struct qc_stream_buf *buf,\n                                     const
      struct qc_stream_desc *stream)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: eb64_lookup_ge
      Src: /src/haproxy/src/quic_stream.c:163,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:165,1
    - Dst: eb64_lookup_le
      Src: /src/haproxy/src/quic_stream.c:171,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:173,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_stream.c:199,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:200,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:201,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:204,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_stream.c:220,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_stream.c:230,1
    - Dst: qc_stream_buf_is_released
      Src: /src/haproxy/src/quic_stream.c:234,1
    - Dst: struct qc_stream_desc*::notify_room
      Src: /src/haproxy/src/quic_stream.c:235,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 5
    argNames:
    - buf
    - stream
    - offset
    - len
    - fin
    argTypes:
    - struct qc_stream_buf*
    - struct qc_stream_desc*
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 239
    functionName: qc_stream_buf_store_ack
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - eb64_next
    - eb64_entry
    - pool_alloc
    - eb64_delete
    - eb64_lookup_ge
    - eb64_insert
    - qc_stream_buf_is_released
    - struct qc_stream_desc*::notify_room
    - eb64_lookup_le
    - pool_free
    linkageType: ''
    returnType: int
    signature: "int qc_stream_buf_store_ack(struct qc_stream_buf *buf,\n                                   struct
      qc_stream_desc *stream,\n                                   uint64_t offset,
      uint64_t len, int fin)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:256,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_stream.c:260,1
    - Dst: bdata_ctr_del
      Src: /src/haproxy/src/quic_stream.c:262,1
    - Dst: qc_stream_buf_is_released
      Src: /src/haproxy/src/quic_stream.c:265,1
    - Dst: struct qc_stream_desc*::notify_room
      Src: /src/haproxy/src/quic_stream.c:269,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:282,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:282,1
    - Dst: qc_stream_buf_free
      Src: /src/haproxy/src/quic_stream.c:283,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:285,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:286,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_stream.c:286,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - buf
    - stream
    - offset
    - len
    - fin
    argTypes:
    - struct qc_stream_buf*
    - struct qc_stream_desc*
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 291
    functionName: qc_stream_buf_ack
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - eb64_entry
    - BUG_ON
    - eb_is_empty
    - qc_stream_buf_is_released
    - eb64_first
    - bdata_ctr_del
    - b_data
    - qc_stream_buf_free
    - b_del
    - struct qc_stream_desc*::notify_room
    linkageType: ''
    returnType: struct qc_stream_buf
    signature: "struct qc_stream_buf *qc_stream_buf_ack(struct qc_stream_buf *buf,\n
      \                                              struct qc_stream_desc *stream,\n
      \                                              uint64_t offset, uint64_t len,
      int fin)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_stream.c:303,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:305,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_stream.c:313,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:318,1
    - Dst: qc_stream_buf_ack
      Src: /src/haproxy/src/quic_stream.c:319,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:321,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_stream.c:323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - stream_buf
    - stream
    argTypes:
    - struct qc_stream_buf*
    - struct qc_stream_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 325
    functionName: qc_stream_buf_consume
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - eb64_entry
    - eb64_delete
    - eb64_first
    - MAX
    - pool_free
    - qc_stream_buf_ack
    linkageType: ''
    returnType: void
    signature: "void qc_stream_buf_consume(struct qc_stream_buf *stream_buf,\n                                  struct
      qc_stream_desc *stream)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:343,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:350,1
    - Dst: eb64_lookup_le
      Src: /src/haproxy/src/quic_stream.c:356,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:357,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:358,1
    - Dst: qc_stream_buf_store_ack
      Src: /src/haproxy/src/quic_stream.c:359,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:363,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:363,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:366,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_stream.c:366,1
    - Dst: qc_stream_buf_ack
      Src: /src/haproxy/src/quic_stream.c:367,1
    - Dst: qc_stream_buf_consume
      Src: /src/haproxy/src/quic_stream.c:371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - stream
    - offset
    - len
    - fin
    argTypes:
    - struct qc_stream_desc*
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 335
    functionDepth: 4
    functionLinenumber: 335
    functionLinenumberEnd: 375
    functionName: qc_stream_desc_ack
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - eb64_entry
    - eb_is_empty
    - BUG_ON
    - qc_stream_buf_store_ack
    - eb64_first
    - qc_stream_buf_consume
    - eb64_lookup_le
    - qc_stream_buf_ack
    linkageType: ''
    returnType: int
    signature: "int qc_stream_desc_ack(struct qc_stream_desc *stream,\n                       uint64_t
      offset, uint64_t len, int fin)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:388,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:391,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_stream.c:392,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:393,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:399,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:399,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:402,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_stream.c:405,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:406,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:408,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:409,1
    - Dst: b_free
      Src: /src/haproxy/src/quic_stream.c:412,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:414,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:415,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/quic_stream.c:420,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:423,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - stream
    - closing
    argTypes:
    - struct qc_stream_desc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 425
    functionName: qc_stream_desc_free
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 1
    functionsReached:
    - eb64_entry
    - eb_is_empty
    - BUG_ON
    - eb64_delete
    - eb64_first
    - b_free
    - b_data
    - offer_buffers
    - pool_free
    linkageType: ''
    returnType: void
    signature: void qc_stream_desc_free(struct qc_stream_desc *stream, int closing)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct qc_stream_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 434
    functionName: qc_stream_buf_get
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *qc_stream_buf_get(struct qc_stream_desc *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:446,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_stream.c:449,1
    - Dst: b_alloc
      Src: /src/haproxy/src/quic_stream.c:460,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:461,1
    - Dst: b_alloc_small
      Src: /src/haproxy/src/quic_stream.c:467,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:468,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_stream.c:475,1
    - Dst: bdata_ctr_binc
      Src: /src/haproxy/src/quic_stream.c:476,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - stream
    - offset
    - small
    argTypes:
    - struct qc_stream_desc*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 479
    functionName: qc_stream_buf_alloc
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - b_alloc_small
    - pool_alloc
    - BUG_ON
    - eb64_insert
    - bdata_ctr_binc
    - pool_free
    linkageType: ''
    returnType: struct buffer
    signature: "struct buffer *qc_stream_buf_alloc(struct qc_stream_desc *stream,\n
      \                                  uint64_t offset, int small)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:489,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:492,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:492,1
    - Dst: b_free
      Src: /src/haproxy/src/quic_stream.c:495,1
    - Dst: b_alloc
      Src: /src/haproxy/src/quic_stream.c:499,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:500,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct qc_stream_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 507
    functionName: qc_stream_buf_realloc
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - BUG_ON
    - eb64_delete
    - b_free
    - b_data
    - pool_free
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *qc_stream_buf_realloc(struct qc_stream_desc *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:517,1
    - Dst: b_room
      Src: /src/haproxy/src/quic_stream.c:519,1
    - Dst: struct qc_stream_desc*::notify_room
      Src: /src/haproxy/src/quic_stream.c:527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct qc_stream_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 528
    functionName: qc_stream_buf_release
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 1
    functionsReached:
    - b_room
    - struct qc_stream_desc*::notify_room
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void qc_stream_buf_release(struct qc_stream_desc *stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:56,1
    - Dst: _ceb_insert
      Src: /src/haproxy/src/_ceb_int.c:60,1
    - Dst: _ceb_insert
      Src: /src/haproxy/src/_ceb_int.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - NODEK
    - _ceb_insert
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _insert, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_first
      Src: /src/haproxy/src/_ceb_int.c:71,1
    - Dst: _ceb_first
      Src: /src/haproxy/src/_ceb_int.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: CEB_FDECL2
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_first
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL2(struct ceb_node *, CEB_MKEY_PFX, _first, struct ceb_root
      *const *, root, ptrdiff_t, kofs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_last
      Src: /src/haproxy/src/_ceb_int.c:82,1
    - Dst: _ceb_last
      Src: /src/haproxy/src/_ceb_int.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: CEB_FDECL2
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_last
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL2(struct ceb_node *, CEB_MKEY_PFX, _last, struct ceb_root
      *const *, root, ptrdiff_t, kofs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup
      Src: /src/haproxy/src/_ceb_int.c:95,1
    - Dst: _ceb_lookup
      Src: /src/haproxy/src/_ceb_int.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _lookup, struct ceb_root
      *const *, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_le
      Src: /src/haproxy/src/_ceb_int.c:108,1
    - Dst: _ceb_lookup_le
      Src: /src/haproxy/src/_ceb_int.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_le
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _lookup_le, struct
      ceb_root *const *, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_lt
      Src: /src/haproxy/src/_ceb_int.c:121,1
    - Dst: _ceb_lookup_lt
      Src: /src/haproxy/src/_ceb_int.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_lt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _lookup_lt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_ge
      Src: /src/haproxy/src/_ceb_int.c:134,1
    - Dst: _ceb_lookup_ge
      Src: /src/haproxy/src/_ceb_int.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_ge
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _lookup_ge, struct
      ceb_root *const *, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_gt
      Src: /src/haproxy/src/_ceb_int.c:147,1
    - Dst: _ceb_lookup_gt
      Src: /src/haproxy/src/_ceb_int.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_gt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _lookup_gt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:159,1
    - Dst: _ceb_next_unique
      Src: /src/haproxy/src/_ceb_int.c:163,1
    - Dst: _ceb_next_unique
      Src: /src/haproxy/src/_ceb_int.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_next_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _next_unique, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:175,1
    - Dst: _ceb_prev_unique
      Src: /src/haproxy/src/_ceb_int.c:179,1
    - Dst: _ceb_prev_unique
      Src: /src/haproxy/src/_ceb_int.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_prev_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _prev_unique, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:189,1
    - Dst: _ceb_next_dup
      Src: /src/haproxy/src/_ceb_int.c:192,1
    - Dst: _ceb_next_dup
      Src: /src/haproxy/src/_ceb_int.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_next_dup
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _next_dup, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:202,1
    - Dst: _ceb_prev_dup
      Src: /src/haproxy/src/_ceb_int.c:205,1
    - Dst: _ceb_prev_dup
      Src: /src/haproxy/src/_ceb_int.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_prev_dup
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _prev_dup, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:217,1
    - Dst: _ceb_next
      Src: /src/haproxy/src/_ceb_int.c:221,1
    - Dst: _ceb_next
      Src: /src/haproxy/src/_ceb_int.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_next
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _next, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:233,1
    - Dst: _ceb_prev
      Src: /src/haproxy/src/_ceb_int.c:237,1
    - Dst: _ceb_prev
      Src: /src/haproxy/src/_ceb_int.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_prev
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _prev, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:247,1
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_int.c:251,1
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_int.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _delete, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_int.c:264,1
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_int.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _pick, struct ceb_root
      **, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:287,1
    - Dst: _ceb_insert
      Src: /src/haproxy/src/_ceb_int.c:290,1
    - Dst: _ceb_insert
      Src: /src/haproxy/src/_ceb_int.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 293
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - NODEK
    - _ceb_insert
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _insert, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_first
      Src: /src/haproxy/src/_ceb_int.c:299,1
    - Dst: _ceb_first
      Src: /src/haproxy/src/_ceb_int.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: CEB_FDECL2
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_first
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL2(struct ceb_node *, CEB_UKEY_PFX, _first, struct ceb_root
      *const *, root, ptrdiff_t, kofs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_last
      Src: /src/haproxy/src/_ceb_int.c:308,1
    - Dst: _ceb_last
      Src: /src/haproxy/src/_ceb_int.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: CEB_FDECL2
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_last
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL2(struct ceb_node *, CEB_UKEY_PFX, _last, struct ceb_root
      *const *, root, ptrdiff_t, kofs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup
      Src: /src/haproxy/src/_ceb_int.c:319,1
    - Dst: _ceb_lookup
      Src: /src/haproxy/src/_ceb_int.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup, struct ceb_root
      *const *, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_le
      Src: /src/haproxy/src/_ceb_int.c:330,1
    - Dst: _ceb_lookup_le
      Src: /src/haproxy/src/_ceb_int.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_le
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_le, struct
      ceb_root *const *, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_lt
      Src: /src/haproxy/src/_ceb_int.c:341,1
    - Dst: _ceb_lookup_lt
      Src: /src/haproxy/src/_ceb_int.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_lt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_lt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_ge
      Src: /src/haproxy/src/_ceb_int.c:352,1
    - Dst: _ceb_lookup_ge
      Src: /src/haproxy/src/_ceb_int.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_ge
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_ge, struct
      ceb_root *const *, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_gt
      Src: /src/haproxy/src/_ceb_int.c:363,1
    - Dst: _ceb_lookup_gt
      Src: /src/haproxy/src/_ceb_int.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 366
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_gt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_gt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:375,1
    - Dst: _ceb_next_unique
      Src: /src/haproxy/src/_ceb_int.c:378,1
    - Dst: _ceb_next_unique
      Src: /src/haproxy/src/_ceb_int.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 381
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_next_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _next, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:390,1
    - Dst: _ceb_prev_unique
      Src: /src/haproxy/src/_ceb_int.c:393,1
    - Dst: _ceb_prev_unique
      Src: /src/haproxy/src/_ceb_int.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 396
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_prev_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _prev, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_int.c:403,1
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_int.c:406,1
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_int.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 409
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _delete, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_int.c:417,1
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_int.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _pick, struct ceb_root
      **, root, ptrdiff_t, kofs, CEB_KEY_TYPE, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 431
    functionName: TO_STR
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 432
    functionName: _TO_STR
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TO_STR(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/_ceb_int.c:448,1
    - Dst: TO_STR
      Src: /src/haproxy/src/_ceb_int.c:448,1
    - Dst: printf
      Src: /src/haproxy/src/_ceb_int.c:454,1
    - Dst: printf
      Src: /src/haproxy/src/_ceb_int.c:457,1
    - Dst: ceb_imm_default_dump_tree
      Src: /src/haproxy/src/_ceb_int.c:460,1
    - Dst: printf
      Src: /src/haproxy/src/_ceb_int.c:463,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 464
    functionName: CEB_FDECL5
    functionSourceFile: /src/haproxy/src/_ceb_int.c
    functionUses: 0
    functionsReached:
    - ceb_imm_default_dump_tree
    - printf
    - TO_STR
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL5(void, CEB_MKEY_PFX, _default_dump, struct ceb_root
      *const *, root, ptrdiff_t, kofs, const char *, label, const void *, ctx, int,
      sub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/dns_ring.c:36,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/dns_ring.c:37,1
    - Dst: b_make
      Src: /src/haproxy/src/dns_ring.c:39,1
    - Dst: b_putchr
      Src: /src/haproxy/src/dns_ring.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ring
    - area
    - size
    argTypes:
    - struct dns_ring*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: dns_ring_init
    functionSourceFile: /src/haproxy/src/dns_ring.c
    functionUses: 0
    functionsReached:
    - b_make
    - HA_RWLOCK_INIT
    - b_putchr
    - MT_LIST_INIT
    linkageType: ''
    returnType: void
    signature: void dns_ring_init(struct dns_ring *ring, void *area, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/dns_ring.c:55,1
    - Dst: malloc
      Src: /src/haproxy/src/dns_ring.c:59,1
    - Dst: dns_ring_init
      Src: /src/haproxy/src/dns_ring.c:63,1
    - Dst: free
      Src: /src/haproxy/src/dns_ring.c:66,1
    - Dst: free
      Src: /src/haproxy/src/dns_ring.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: dns_ring_new
    functionSourceFile: /src/haproxy/src/dns_ring.c
    functionUses: 0
    functionsReached:
    - malloc
    - dns_ring_init
    - free
    linkageType: ''
    returnType: struct dns_ring
    signature: struct dns_ring *dns_ring_new(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/dns_ring.c:77,1
    - Dst: free
      Src: /src/haproxy/src/dns_ring.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct dns_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: dns_ring_free
    functionSourceFile: /src/haproxy/src/dns_ring.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void dns_ring_free(struct dns_ring *ring)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: varint_bytes
      Src: /src/haproxy/src/dns_ring.c:117,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/dns_ring.c:119,1
    - Dst: b_size
      Src: /src/haproxy/src/dns_ring.c:120,1
    - Dst: b_room
      Src: /src/haproxy/src/dns_ring.c:123,1
    - Dst: b_head
      Src: /src/haproxy/src/dns_ring.c:131,1
    - Dst: b_peek_varint
      Src: /src/haproxy/src/dns_ring.c:133,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns_ring.c:136,1
    - Dst: b_data
      Src: /src/haproxy/src/dns_ring.c:136,1
    - Dst: b_del
      Src: /src/haproxy/src/dns_ring.c:138,1
    - Dst: __b_put_varint
      Src: /src/haproxy/src/dns_ring.c:142,1
    - Dst: __b_putblk
      Src: /src/haproxy/src/dns_ring.c:151,1
    - Dst: __b_putblk
      Src: /src/haproxy/src/dns_ring.c:161,1
    - Dst: b_tail
      Src: /src/haproxy/src/dns_ring.c:165,1
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/dns_ring.c:169,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/dns_ring.c:170,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dns_ring.c:173,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 6
    argNames:
    - ring
    - maxlen
    - pfx
    - npfx
    - msg
    - nmsg
    argTypes:
    - struct dns_ring*
    - size_t
    - struct ist[]
    - size_t
    - struct ist[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 175
    functionName: dns_ring_write
    functionSourceFile: /src/haproxy/src/dns_ring.c
    functionUses: 0
    functionsReached:
    - __b_putblk
    - b_head
    - __b_put_varint
    - BUG_ON
    - HA_RWLOCK_WRUNLOCK
    - appctx_wakeup
    - b_tail
    - b_room
    - b_peek_varint
    - b_data
    - b_size
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - HA_RWLOCK_WRLOCK
    - b_del
    - varint_bytes
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t dns_ring_write(struct dns_ring *ring, size_t maxlen, const
      struct ist pfx[], size_t npfx, const struct ist msg[], size_t nmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/dns_ring.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct dns_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: dns_ring_attach
    functionSourceFile: /src/haproxy/src/dns_ring.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_CAS
    linkageType: ''
    returnType: int
    signature: int dns_ring_attach(struct dns_ring *ring)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/dns_ring.c:204,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns_ring.c:207,1
    - Dst: b_size
      Src: /src/haproxy/src/dns_ring.c:208,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns_ring.c:208,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns_ring.c:210,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns_ring.c:212,1
    - Dst: b_size
      Src: /src/haproxy/src/dns_ring.c:212,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/dns_ring.c:213,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/dns_ring.c:214,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns_ring.c:214,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/dns_ring.c:216,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dns_ring.c:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ring
    - appctx
    - ofs
    argTypes:
    - struct dns_ring*
    - struct appctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 218
    functionName: dns_ring_detach_appctx
    functionSourceFile: /src/haproxy/src/dns_ring.c
    functionUses: 0
    functionsReached:
    - b_peek
    - MT_LIST_DELETE
    - BUG_ON
    - HA_RWLOCK_WRUNLOCK
    - HA_ATOMIC_DEC
    - b_head_ofs
    - b_size
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void dns_ring_detach_appctx(struct dns_ring *ring, struct appctx *appctx,
      size_t ofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name_f
    - ','
    - alt_n
    - ','
    - nature
    - ','
    - format
    - ','
    - offset_f
    - ','
    - cap_f
    - ','
    - desc_f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: ME_NEW_COMMON
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ME_NEW_COMMON(name_f, alt_n, nature, format, offset_f, cap_f, desc_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name_f
    - ','
    - alt_n
    - ','
    - nature
    - ','
    - format
    - ','
    - offset_f
    - ','
    - cap_f
    - ','
    - desc_f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: ME_NEW_PX
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ME_NEW_PX(name_f, alt_n, nature, format, offset_f, cap_f, desc_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name_f
    - ','
    - alt_n
    - ','
    - nature
    - ','
    - format
    - ','
    - offset_f
    - ','
    - cap_f
    - ','
    - desc_f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: ME_NEW_PX_SHARED
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ME_NEW_PX_SHARED(name_f, alt_n, nature, format, offset_f, cap_f, desc_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name_f
    - ','
    - alt_n
    - ','
    - nature
    - ','
    - format
    - ','
    - offset_f
    - ','
    - cap_f
    - ','
    - desc_f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: ME_NEW_FE
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ME_NEW_FE(name_f, alt_n, nature, format, offset_f, cap_f, desc_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name_f
    - ','
    - alt_n
    - ','
    - nature
    - ','
    - format
    - ','
    - offset_f
    - ','
    - cap_f
    - ','
    - desc_f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: ME_NEW_FE_SHARED
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ME_NEW_FE_SHARED(name_f, alt_n, nature, format, offset_f, cap_f, desc_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name_f
    - ','
    - alt_n
    - ','
    - nature
    - ','
    - format
    - ','
    - offset_f
    - ','
    - cap_f
    - ','
    - desc_f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: ME_NEW_BE
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ME_NEW_BE(name_f, alt_n, nature, format, offset_f, cap_f, desc_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name_f
    - ','
    - alt_n
    - ','
    - nature
    - ','
    - format
    - ','
    - offset_f
    - ','
    - cap_f
    - ','
    - desc_f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: ME_NEW_BE_SHARED
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ME_NEW_BE_SHARED(name_f, alt_n, nature, format, offset_f, cap_f, desc_f)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/stats-proxy.c:211,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/stats-proxy.c:213,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stats-proxy.c:216,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/stats-proxy.c:220,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stats-proxy.c:224,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-proxy.c:246,1
    - Dst: COUNTERS_SHARED_LAST
      Src: /src/haproxy/src/stats-proxy.c:255,1
    - Dst: COUNTERS_SHARED_LAST
      Src: /src/haproxy/src/stats-proxy.c:257,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 2
    argNames:
    - idx
    - objt
    argTypes:
    - enum stat_idx_px
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 264
    functionName: stcol_hide
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - COUNTERS_SHARED_LAST
    - BUG_ON
    - __objt_listener
    - __objt_proxy
    - ABORT_NOW
    - obj_type
    linkageType: ''
    returnType: int
    signature: int stcol_hide(enum stat_idx_px idx, enum obj_type *objt)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-proxy.c:285,1
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats-proxy.c:285,1
    - Dst: stcol_nature
      Src: /src/haproxy/src/stats-proxy.c:287,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stats-proxy.c:314,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/stats-proxy.c:322,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:330,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:331,1
    - Dst: stcol_hide
      Src: /src/haproxy/src/stats-proxy.c:346,1
    - Dst: mkf_s32
      Src: /src/haproxy/src/stats-proxy.c:348,1
    - Dst: stcol_format
      Src: /src/haproxy/src/stats-proxy.c:355,1
    - Dst: COUNTERS_SHARED_TOTAL_OFFSET
      Src: /src/haproxy/src/stats-proxy.c:360,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:361,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:364,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stats-proxy.c:368,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-proxy.c:373,1
    - Dst: stcol_format
      Src: /src/haproxy/src/stats-proxy.c:373,1
    - Dst: COUNTERS_SHARED_TOTAL_OFFSET
      Src: /src/haproxy/src/stats-proxy.c:377,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:378,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:381,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats-proxy.c:381,1
    - Dst: stcol_format
      Src: /src/haproxy/src/stats-proxy.c:384,1
    - Dst: COUNTERS_SHARED_LAST_OFFSET
      Src: /src/haproxy/src/stats-proxy.c:391,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stats-proxy.c:396,1
    - Dst: stcol_format
      Src: /src/haproxy/src/stats-proxy.c:398,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:399,1
    - Dst: mkf_s32
      Src: /src/haproxy/src/stats-proxy.c:401,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stats-proxy.c:406,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stats-proxy.c:411,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 84
    argCount: 6
    argNames:
    - col
    - idx
    - objt
    - counters
    - cap
    - stat_file
    argTypes:
    - struct stat_col*
    - enum stat_idx_px
    - enum obj_type*
    - void*
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 415
    functionName: me_generate_field
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - mkf_s32
    - COUNTERS_SHARED_TOTAL_OFFSET
    - stcol_is_generic
    - ns_to_sec
    - BUG_ON
    - COUNTERS_SHARED_LAST_OFFSET
    - stcol_hide
    - mkf_u64
    - stcol_format
    - __objt_proxy
    - stcol_nature
    - ABORT_NOW
    - read_freq_ctr
    - COUNTERS_SHARED_TOTAL
    - mkf_u32
    linkageType: ''
    returnType: struct field
    signature: "struct field me_generate_field(const struct stat_col *col,\n                                      enum
      stat_idx_px idx, enum obj_type *objt,\n                                      const
      void *counters, uint8_t cap,\n                                      int stat_file)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats-proxy.c:435,1
    - Dst: me_generate_field
      Src: /src/haproxy/src/stats-proxy.c:436,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:443,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:446,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:449,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stats-proxy.c:449,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:452,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:455,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:458,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:469,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:473,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:476,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:479,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:482,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:485,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:488,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:491,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:494,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:502,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:504,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:507,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 79
    argCount: 5
    argNames:
    - px
    - flags
    - line
    - len
    - index
    argTypes:
    - struct proxy*
    - int
    - struct field*
    - int
    - enum stat_idx_px*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 524
    functionName: stats_fill_fe_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - stcol_is_generic
    - mkf_str
    - mkf_u64
    - me_generate_field
    - COUNTERS_SHARED_TOTAL
    - proxy_mode_str
    - mkf_u32
    linkageType: ''
    returnType: int
    signature: "int stats_fill_fe_line(struct proxy *px, int flags, struct field *line,
      int len,\n                       enum stat_idx_px *index)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-proxy.c:533,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:545,1
    - Dst: stats_fill_fe_line
      Src: /src/haproxy/src/stats-proxy.c:547,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:550,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-proxy.c:554,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/src/stats-proxy.c:559,1
    - Dst: stats_dump_one_line
      Src: /src/haproxy/src/stats-proxy.c:564,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - sc
    - px
    argTypes:
    - struct stconn*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 531
    functionDepth: 4
    functionLinenumber: 531
    functionLinenumberEnd: 565
    functionName: stats_dump_fe_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - stats_dump_one_line
    - memset
    - list_for_each_entry
    - __sc_appctx
    - stats_px_get_cap
    - stats_fill_fe_line
    - struct stats_module*::fill_stats
    linkageType: ''
    returnType: int
    signature: int stats_dump_fe_line(struct stconn *sc, struct proxy *px)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stats-proxy.c:577,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats-proxy.c:585,1
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats-proxy.c:591,1
    - Dst: me_generate_field
      Src: /src/haproxy/src/stats-proxy.c:592,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:599,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:602,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:605,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stats-proxy.c:605,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:608,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:611,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:614,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:617,1
    - Dst: get_li_status
      Src: /src/haproxy/src/stats-proxy.c:617,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:620,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:623,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:626,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:629,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stats-proxy.c:636,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stats-proxy.c:637,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:639,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:639,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:640,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:643,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:643,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:644,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:649,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:652,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:652,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:653,1
    - Dst: strerror
      Src: /src/haproxy/src/stats-proxy.c:653,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:661,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 85
    argCount: 6
    argNames:
    - px
    - l
    - flags
    - line
    - len
    - selected_field
    argTypes:
    - struct proxy*
    - struct listener*
    - int
    - struct field*
    - int
    - enum stat_idx_px*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 677
    functionName: stats_fill_li_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - chunk_newstr
    - stcol_is_generic
    - mkf_str
    - strerror
    - chunk_strcat
    - get_li_status
    - get_host_port
    - get_trash_chunk
    - chunk_appendf
    - me_generate_field
    - chunk_reset
    - proxy_mode_str
    - addr_to_str
    - mkf_u32
    linkageType: ''
    returnType: int
    signature: "int stats_fill_li_line(struct proxy *px, struct listener *l, int flags,\n
      \                      struct field *line, int len, enum stat_idx_px *selected_field)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-proxy.c:686,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:692,1
    - Dst: stats_fill_li_line
      Src: /src/haproxy/src/stats-proxy.c:694,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:698,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-proxy.c:702,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/src/stats-proxy.c:707,1
    - Dst: stats_dump_one_line
      Src: /src/haproxy/src/stats-proxy.c:712,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - sc
    - px
    - l
    argTypes:
    - struct stconn*
    - struct proxy*
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 684
    functionDepth: 4
    functionLinenumber: 684
    functionLinenumberEnd: 713
    functionName: stats_dump_li_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - stats_dump_one_line
    - memset
    - list_for_each_entry
    - stats_fill_li_line
    - __sc_appctx
    - stats_px_get_cap
    - struct stats_module*::fill_stats
    linkageType: ''
    returnType: int
    signature: int stats_dump_li_line(struct stconn *sc, struct proxy *px, struct
      listener *l)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 37
    argCount: 3
    argNames:
    - sv
    - ref
    - state
    argTypes:
    - struct server*
    - struct server*
    - enum srv_stats_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 790
    functionName: stats_fill_sv_computestate
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void stats_fill_sv_computestate(struct server *sv, struct server *ref,\n
      \                                      enum srv_stats_state *state)"
  - BBCount: 102
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stats-proxy.c:808,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats-proxy.c:816,1
    - Dst: stats_fill_sv_computestate
      Src: /src/haproxy/src/stats-proxy.c:827,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:834,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:834,1
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats-proxy.c:843,1
    - Dst: me_generate_field
      Src: /src/haproxy/src/stats-proxy.c:844,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:851,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:854,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:857,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stats-proxy.c:857,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:860,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:863,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:866,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:869,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:873,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:876,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:880,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:883,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:886,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:889,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:892,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:895,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:897,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:899,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:901,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:903,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:908,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:911,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:914,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:917,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:920,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:924,1
    - Dst: srv_downtime
      Src: /src/haproxy/src/stats-proxy.c:924,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:928,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:931,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:934,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:937,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:940,1
    - Dst: server_is_draining
      Src: /src/haproxy/src/stats-proxy.c:943,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:944,1
    - Dst: server_throttle_rate
      Src: /src/haproxy/src/stats-proxy.c:944,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:948,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:949,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:950,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:954,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:957,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:963,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:964,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:965,1
    - Dst: get_check_status_info
      Src: /src/haproxy/src/stats-proxy.c:965,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:968,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:974,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:979,1
    - Dst: MAX
      Src: /src/haproxy/src/stats-proxy.c:979,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:983,1
    - Dst: get_check_status_description
      Src: /src/haproxy/src/stats-proxy.c:983,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:987,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:991,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:995,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:999,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:1005,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:1006,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:1007,1
    - Dst: get_check_status_info
      Src: /src/haproxy/src/stats-proxy.c:1007,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1010,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1016,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:1020,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1024,1
    - Dst: get_check_status_description
      Src: /src/haproxy/src/stats-proxy.c:1024,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1028,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1032,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1036,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1040,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1043,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1043,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1046,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1046,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1049,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1049,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1052,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1052,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1055,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1058,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1061,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1064,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stats-proxy.c:1068,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1070,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:1070,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:1071,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1074,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:1074,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:1075,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1080,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1083,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:1083,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:1084,1
    - Dst: strerror
      Src: /src/haproxy/src/stats-proxy.c:1084,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1093,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1096,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 266
    argCount: 6
    argNames:
    - px
    - sv
    - flags
    - line
    - len
    - index
    argTypes:
    - struct proxy*
    - struct server*
    - int
    - struct field*
    - int
    - enum stat_idx_px*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 1112
    functionName: stats_fill_sv_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - stcol_is_generic
    - chunk_appendf
    - get_trash_chunk
    - me_generate_field
    - swrate_avg
    - COUNTERS_SHARED_TOTAL
    - stats_fill_sv_computestate
    - mkf_u32
    - strerror
    - get_check_status_info
    - chunk_strcat
    - mkf_u64
    - srv_downtime
    - proxy_mode_str
    - server_is_draining
    - server_throttle_rate
    - get_check_status_description
    - chunk_reset
    - addr_to_str
    - mkf_str
    - MAX
    - chunk_newstr
    linkageType: ''
    returnType: int
    signature: "int stats_fill_sv_line(struct proxy *px, struct server *sv, int flags,\n
      \                      struct field *line, int len,\n                       enum
      stat_idx_px *index)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-proxy.c:1121,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:1127,1
    - Dst: stats_fill_sv_line
      Src: /src/haproxy/src/stats-proxy.c:1129,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:1133,1
    - Dst: stats_get_domain
      Src: /src/haproxy/src/stats-proxy.c:1137,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-proxy.c:1140,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/src/stats-proxy.c:1145,1
    - Dst: stats_dump_one_line
      Src: /src/haproxy/src/stats-proxy.c:1150,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - sc
    - px
    - sv
    argTypes:
    - struct stconn*
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1119
    functionDepth: 4
    functionLinenumber: 1119
    functionLinenumberEnd: 1151
    functionName: stats_dump_sv_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - stats_dump_one_line
    - memset
    - list_for_each_entry
    - stats_px_get_cap
    - __sc_appctx
    - stats_fill_sv_line
    - stats_get_domain
    - struct stats_module*::fill_stats
    linkageType: ''
    returnType: int
    signature: int stats_dump_sv_line(struct stconn *sc, struct proxy *px, struct
      server *sv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/stats-proxy.c:1164,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stats-proxy.c:1171,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stats-proxy.c:1174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - px
    - nbup
    - nbsrv
    - totuw
    argTypes:
    - struct proxy*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1180
    functionName: stats_fill_be_computesrv
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - HA_RWLOCK_RDUNLOCK
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void stats_fill_be_computesrv(struct proxy *px, int *nbup, int *nbsrv,
      int *totuw)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stats-proxy.c:1195,1
    - Dst: stats_fill_be_computesrv
      Src: /src/haproxy/src/stats-proxy.c:1207,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:1213,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:1213,1
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats-proxy.c:1222,1
    - Dst: me_generate_field
      Src: /src/haproxy/src/stats-proxy.c:1223,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1230,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1233,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1236,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stats-proxy.c:1236,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1239,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1242,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1245,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1248,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1251,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:1254,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:1255,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:1257,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:1259,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1260,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1264,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1267,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1270,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1273,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1276,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1279,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1283,1
    - Dst: be_downtime
      Src: /src/haproxy/src/stats-proxy.c:1283,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1286,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1289,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1292,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1295,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1298,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1302,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1306,1
    - Dst: backend_lb_algo_str
      Src: /src/haproxy/src/stats-proxy.c:1306,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1309,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1309,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1312,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1312,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1315,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1315,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1318,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1318,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1321,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1324,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1327,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1330,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 131
    argCount: 5
    argNames:
    - px
    - flags
    - line
    - len
    - index
    argTypes:
    - struct proxy*
    - int
    - struct field*
    - int
    - enum stat_idx_px*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1189
    functionDepth: 3
    functionLinenumber: 1189
    functionLinenumberEnd: 1346
    functionName: stats_fill_be_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - chunk_newstr
    - stcol_is_generic
    - stats_fill_be_computesrv
    - mkf_str
    - backend_lb_algo_str
    - chunk_appendf
    - get_trash_chunk
    - me_generate_field
    - swrate_avg
    - COUNTERS_SHARED_TOTAL
    - proxy_mode_str
    - mkf_u32
    - be_downtime
    linkageType: ''
    returnType: int
    signature: "int stats_fill_be_line(struct proxy *px, int flags, struct field *line,
      int len,\n                       enum stat_idx_px *index)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-proxy.c:1354,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:1366,1
    - Dst: stats_fill_be_line
      Src: /src/haproxy/src/stats-proxy.c:1368,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:1371,1
    - Dst: stats_get_domain
      Src: /src/haproxy/src/stats-proxy.c:1375,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-proxy.c:1378,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/src/stats-proxy.c:1383,1
    - Dst: stats_dump_one_line
      Src: /src/haproxy/src/stats-proxy.c:1388,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - sc
    - px
    argTypes:
    - struct stconn*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1352
    functionDepth: 4
    functionLinenumber: 1352
    functionLinenumberEnd: 1389
    functionName: stats_dump_be_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - stats_dump_one_line
    - memset
    - list_for_each_entry
    - stats_px_get_cap
    - __sc_appctx
    - stats_fill_be_line
    - stats_get_domain
    - struct stats_module*::fill_stats
    linkageType: ''
    returnType: int
    signature: int stats_dump_be_line(struct stconn *sc, struct proxy *px)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-proxy.c:1401,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats-proxy.c:1411,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-proxy.c:1423,1
    - Dst: memcmp
      Src: /src/haproxy/src/stats-proxy.c:1428,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-proxy.c:1432,1
    - Dst: stats_scope_ptr
      Src: /src/haproxy/src/stats-proxy.c:1446,1
    - Dst: strnistr
      Src: /src/haproxy/src/stats-proxy.c:1448,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-proxy.c:1448,1
    - Dst: stats_dump_html_px_hdr
      Src: /src/haproxy/src/stats-proxy.c:1462,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1463,1
    - Dst: stats_dump_fe_line
      Src: /src/haproxy/src/stats-proxy.c:1472,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1473,1
    - Dst: stats_is_full
      Src: /src/haproxy/src/stats-proxy.c:1488,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/stats-proxy.c:1491,1
    - Dst: stats_dump_li_line
      Src: /src/haproxy/src/stats-proxy.c:1504,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1505,1
    - Dst: watcher_attach
      Src: /src/haproxy/src/stats-proxy.c:1515,1
    - Dst: watcher_next
      Src: /src/haproxy/src/stats-proxy.c:1523,1
    - Dst: stats_is_full
      Src: /src/haproxy/src/stats-proxy.c:1525,1
    - Dst: watcher_detach
      Src: /src/haproxy/src/stats-proxy.c:1530,1
    - Dst: stats_dump_sv_line
      Src: /src/haproxy/src/stats-proxy.c:1558,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1559,1
    - Dst: stats_dump_be_line
      Src: /src/haproxy/src/stats-proxy.c:1573,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1574,1
    - Dst: stats_dump_html_px_end
      Src: /src/haproxy/src/stats-proxy.c:1587,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1588,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 147
    argCount: 4
    argNames:
    - sc
    - buf
    - htx
    - px
    argTypes:
    - struct stconn*
    - struct buffer*
    - struct htx*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1398
    functionDepth: 5
    functionLinenumber: 1398
    functionLinenumberEnd: 1607
    functionName: stats_dump_proxy_to_buffer
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - memcmp
    - watcher_detach
    - stats_dump_html_px_end
    - stats_is_full
    - strcmp
    - stats_dump_li_line
    - stats_dump_be_line
    - stats_putchk
    - watcher_attach
    - __sc_appctx
    - chunk_reset
    - watcher_next
    - stats_dump_sv_line
    - stats_scope_ptr
    - strlen
    - strnistr
    - stats_dump_fe_line
    - stats_dump_html_px_hdr
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: "int stats_dump_proxy_to_buffer(struct stconn *sc, struct buffer *buf,\n
      \                                     struct htx *htx, struct proxy *px)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stats-proxy.c:1614,1
    - Dst: watcher_next
      Src: /src/haproxy/src/stats-proxy.c:1621,1
    - Dst: stats_is_full
      Src: /src/haproxy/src/stats-proxy.c:1623,1
    - Dst: stats_dump_proxy_to_buffer
      Src: /src/haproxy/src/stats-proxy.c:1632,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - sc
    - buf
    - htx
    argTypes:
    - struct stconn*
    - struct buffer*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1612
    functionDepth: 6
    functionLinenumber: 1612
    functionLinenumberEnd: 1644
    functionName: stats_dump_proxies
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - watcher_next
    - __sc_appctx
    - stats_dump_proxy_to_buffer
    - stats_is_full
    linkageType: ''
    returnType: int
    signature: int stats_dump_proxies(struct stconn *sc, struct buffer *buf, struct
      htx *htx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:1655,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:1656,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:1677,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:1688,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:1691,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-proxy.c:1702,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1705,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1712,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1720,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:1728,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1729,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 2
    argNames:
    - clrall
    - stat_modules
    argTypes:
    - int
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1646
    functionDepth: 1
    functionLinenumber: 1646
    functionLinenumberEnd: 1737
    functionName: proxy_stats_clear_counters
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - stats_px_get_cap
    - EXTRA_COUNTERS_INIT
    - memset
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void proxy_stats_clear_counters(int clrall, struct list *stat_modules)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-proxy.c:1702,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1705,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1712,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1720,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:1728,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1729,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1697
    functionDepth: 1
    functionLinenumber: 1697
    functionLinenumberEnd: 1736
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 143
    functionsReached:
    - stats_px_get_cap
    - EXTRA_COUNTERS_INIT
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(mod, stat_modules, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: evports_state_to_events
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evports_state_to_events(int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port_dissociate
      Src: /src/haproxy/src/ev_evports.c:59,1
    - Dst: port_associate
      Src: /src/haproxy/src/ev_evports.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - events
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: evports_resync_fd
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 0
    functionsReached:
    - port_associate
    - port_dissociate
    linkageType: ''
    returnType: void
    signature: void evports_resync_fd(int fd, int events)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_evports.c:71,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_evports.c:72,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_evports.c:82,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_evports.c:84,1
    - Dst: evports_state_to_events
      Src: /src/haproxy/src/ev_evports.c:88,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_evports.c:91,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_evports.c:94,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_evports.c:98,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_evports.c:101,1
    - Dst: evports_resync_fd
      Src: /src/haproxy/src/ev_evports.c:105,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 106
    functionName: _update_fd
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 2
    functionsReached:
    - _HA_ATOMIC_LOAD
    - evports_resync_fd
    - _HA_ATOMIC_AND
    - _HA_ATOMIC_OR
    - evports_state_to_events
    linkageType: ''
    returnType: void
    signature: void _update_fd(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - poller
    - fd
    - old_ltid
    - old_tgid
    argTypes:
    - struct poller*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: _do_fixup_tgid_takeover
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _do_fixup_tgid_takeover(struct poller *poller, const int fd, const
      int old_ltid, const int old_tgid)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fd_grab_tgid
      Src: /src/haproxy/src/ev_evports.c:137,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_evports.c:143,1
    - Dst: _update_fd
      Src: /src/haproxy/src/ev_evports.c:146,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/ev_evports.c:150,1
    - Dst: fd_grab_tgid
      Src: /src/haproxy/src/ev_evports.c:165,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/ev_evports.c:172,1
    - Dst: done_update_polling
      Src: /src/haproxy/src/ev_evports.c:176,1
    - Dst: _update_fd
      Src: /src/haproxy/src/ev_evports.c:179,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/ev_evports.c:183,1
    - Dst: thread_idle_now
      Src: /src/haproxy/src/ev_evports.c:186,1
    - Dst: thread_harmless_now
      Src: /src/haproxy/src/ev_evports.c:187,1
    - Dst: compute_poll_timeout
      Src: /src/haproxy/src/ev_evports.c:190,1
    - Dst: clock_entering_poll
      Src: /src/haproxy/src/ev_evports.c:191,1
    - Dst: port_getn
      Src: /src/haproxy/src/ev_evports.c:208,1
    - Dst: clock_update_local_date
      Src: /src/haproxy/src/ev_evports.c:236,1
    - Dst: tick_isset
      Src: /src/haproxy/src/ev_evports.c:242,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/ev_evports.c:242,1
    - Dst: clock_update_global_date
      Src: /src/haproxy/src/ev_evports.c:246,1
    - Dst: fd_leaving_poll
      Src: /src/haproxy/src/ev_evports.c:247,1
    - Dst: fd_tgid
      Src: /src/haproxy/src/ev_evports.c:260,1
    - Dst: port_dissociate
      Src: /src/haproxy/src/ev_evports.c:265,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ev_evports.c:272,1
    - Dst: evports_state_to_events
      Src: /src/haproxy/src/ev_evports.c:280,1
    - Dst: fd_update_events
      Src: /src/haproxy/src/ev_evports.c:298,1
    - Dst: evports_resync_fd
      Src: /src/haproxy/src/ev_evports.c:327,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 84
    argCount: 3
    argNames:
    - p
    - exp
    - wake
    argTypes:
    - struct poller*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 329
    functionName: _do_poll
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 0
    functionsReached:
    - fd_leaving_poll
    - clock_entering_poll
    - thread_harmless_now
    - fd_tgid
    - thread_idle_now
    - port_getn
    - tick_is_expired
    - done_update_polling
    - _HA_ATOMIC_AND
    - compute_poll_timeout
    - _update_fd
    - _HA_ATOMIC_INC
    - fd_grab_tgid
    - fd_update_events
    - fd_drop_tgid
    - clock_update_global_date
    - tick_isset
    - port_dissociate
    - clock_update_local_date
    - evports_resync_fd
    - evports_state_to_events
    linkageType: ''
    returnType: void
    signature: void _do_poll(struct poller *p, int exp, int wake)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ev_evports.c:334,1
    - Dst: port_create
      Src: /src/haproxy/src/ev_evports.c:340,1
    - Dst: fd_reregister_all
      Src: /src/haproxy/src/ev_evports.c:350,1
    - Dst: ha_free
      Src: /src/haproxy/src/ev_evports.c:355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 359
    functionName: init_evports_per_thread
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 0
    functionsReached:
    - ha_free
    - calloc
    - port_create
    - fd_reregister_all
    linkageType: ''
    returnType: int
    signature: int init_evports_per_thread()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/src/ev_evports.c:364,1
    - Dst: ha_free
      Src: /src/haproxy/src/ev_evports.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 368
    functionName: deinit_evports_per_thread
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 0
    functionsReached:
    - ha_free
    - close
    linkageType: ''
    returnType: void
    signature: void deinit_evports_per_thread()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port_create
      Src: /src/haproxy/src/ev_evports.c:378,1
    - Dst: hap_register_per_thread_init
      Src: /src/haproxy/src/ev_evports.c:382,1
    - Dst: hap_register_per_thread_deinit
      Src: /src/haproxy/src/ev_evports.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 390
    functionName: _do_init
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 0
    functionsReached:
    - hap_register_per_thread_deinit
    - port_create
    - hap_register_per_thread_init
    linkageType: ''
    returnType: int
    signature: int _do_init(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/src/ev_evports.c:399,1
    - Dst: ha_free
      Src: /src/haproxy/src/ev_evports.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 408
    functionName: _do_term
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 0
    functionsReached:
    - ha_free
    - close
    linkageType: ''
    returnType: void
    signature: void _do_term(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port_create
      Src: /src/haproxy/src/ev_evports.c:419,1
    - Dst: close
      Src: /src/haproxy/src/ev_evports.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 425
    functionName: _do_test
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 0
    functionsReached:
    - close
    - port_create
    linkageType: ''
    returnType: int
    signature: int _do_test(struct poller *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/src/ev_evports.c:435,1
    - Dst: port_create
      Src: /src/haproxy/src/ev_evports.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 443
    functionName: _do_fork
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 0
    functionsReached:
    - close
    - port_create
    linkageType: ''
    returnType: int
    signature: int _do_fork(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 473
    functionName: _do_register
    functionSourceFile: /src/haproxy/src/ev_evports.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _do_register(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/dict.c:12,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/dict.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 21
    functionName: new_dict
    functionSourceFile: /src/haproxy/src/dict.c
    functionUses: 0
    functionsReached:
    - malloc
    - HA_RWLOCK_INIT
    linkageType: ''
    returnType: struct dict
    signature: struct dict *new_dict(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/dict.c:31,1
    - Dst: strdup
      Src: /src/haproxy/src/dict.c:35,1
    - Dst: strlen
      Src: /src/haproxy/src/dict.c:39,1
    - Dst: ha_free
      Src: /src/haproxy/src/dict.c:45,1
    - Dst: free
      Src: /src/haproxy/src/dict.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 49
    functionName: new_dict_entry
    functionSourceFile: /src/haproxy/src/dict.c
    functionUses: 0
    functionsReached:
    - ha_free
    - calloc
    - free
    - strdup
    - strlen
    linkageType: ''
    returnType: struct dict_entry
    signature: struct dict_entry *new_dict_entry(char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/dict.c:57,1
    - Dst: free
      Src: /src/haproxy/src/dict.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - de
    argTypes:
    - struct dict_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: free_dict_entry
    functionSourceFile: /src/haproxy/src/dict.c
    functionUses: 0
    functionsReached:
    - ha_free
    - free
    linkageType: ''
    returnType: void
    signature: void free_dict_entry(struct dict_entry *de)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebis_lookup
      Src: /src/haproxy/src/dict.c:70,1
    - Dst: container_of
      Src: /src/haproxy/src/dict.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - d
    - s
    argTypes:
    - struct dict*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: __dict_lookup
    functionSourceFile: /src/haproxy/src/dict.c
    functionUses: 0
    functionsReached:
    - ebis_lookup
    - container_of
    linkageType: ''
    returnType: struct dict_entry
    signature: struct dict_entry *__dict_lookup(struct dict *d, const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/dict.c:85,1
    - Dst: __dict_lookup
      Src: /src/haproxy/src/dict.c:86,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dict.c:88,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/dict.c:89,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/dict.c:92,1
    - Dst: new_dict_entry
      Src: /src/haproxy/src/dict.c:94,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/dict.c:98,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/dict.c:99,1
    - Dst: container_of
      Src: /src/haproxy/src/dict.c:100,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dict.c:102,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dict.c:107,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dict.c:108,1
    - Dst: free_dict_entry
      Src: /src/haproxy/src/dict.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - d
    - s
    argTypes:
    - struct dict*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 112
    functionName: dict_insert
    functionSourceFile: /src/haproxy/src/dict.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_RDLOCK
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_RDUNLOCK
    - ebis_insert
    - free_dict_entry
    - HA_ATOMIC_INC
    - container_of
    - HA_RWLOCK_WRLOCK
    - __dict_lookup
    - new_dict_entry
    linkageType: ''
    returnType: struct dict_entry
    signature: struct dict_entry *dict_insert(struct dict *d, char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/dict.c:125,1
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/dict.c:126,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dict.c:127,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/dict.c:130,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dict.c:131,1
    - Dst: free_dict_entry
      Src: /src/haproxy/src/dict.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - d
    - de
    argTypes:
    - struct dict*
    - struct dict_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: dict_entry_unref
    functionSourceFile: /src/haproxy/src/dict.c
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_SUB_FETCH
    - HA_RWLOCK_WRUNLOCK
    - ebpt_delete
    - free_dict_entry
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void dict_entry_unref(struct dict *d, struct dict_entry *de)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/shctx.c:35,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/shctx.c:64,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/shctx.c:68,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/shctx.c:73,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/shctx.c:75,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/shctx.c:79,1
    - Dst: struct shared_context*::free_block
      Src: /src/haproxy/src/shctx.c:83,1
    - Dst: shctx_block_append_hot
      Src: /src/haproxy/src/shctx.c:87,1
    - Dst: shctx_block_detach
      Src: /src/haproxy/src/shctx.c:93,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/shctx.c:110,1
    - Dst: struct shared_context*::reserve_finish
      Src: /src/haproxy/src/shctx.c:113,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 3
    argNames:
    - shctx
    - first
    - data_len
    argTypes:
    - struct shared_context*
    - struct shared_block*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 117
    functionName: shctx_row_reserve_hot
    functionSourceFile: /src/haproxy/src/shctx.c
    functionUses: 1
    functionsReached:
    - struct shared_context*::free_block
    - struct shared_context*::reserve_finish
    - BUG_ON
    - shctx_wrlock
    - list_for_each_entry_safe
    - shctx_block_detach
    - LIST_ISEMPTY
    - shctx_block_append_hot
    - shctx_wrunlock
    linkageType: ''
    returnType: struct shared_block
    signature: "struct shared_block *shctx_row_reserve_hot(struct shared_context *shctx,\n
      \                                          struct shared_block *first, int data_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/shctx.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - shctx
    - first
    argTypes:
    - struct shared_context*
    - struct shared_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 141
    functionName: shctx_row_detach
    functionSourceFile: /src/haproxy/src/shctx.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void shctx_row_detach(struct shared_context *shctx, struct shared_block
      *first)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/shctx.c:152,1
    - Dst: LIST_SPLICE_END_DETACHED
      Src: /src/haproxy/src/shctx.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - shctx
    - first
    argTypes:
    - struct shared_context*
    - struct shared_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 160
    functionName: shctx_row_reattach
    functionSourceFile: /src/haproxy/src/shctx.c
    functionUses: 1
    functionsReached:
    - LIST_SPLICE_END_DETACHED
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void shctx_row_reattach(struct shared_context *shctx, struct shared_block
      *first)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/shctx.c:188,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/shctx.c:198,1
    - Dst: MIN
      Src: /src/haproxy/src/shctx.c:202,1
    - Dst: memcpy
      Src: /src/haproxy/src/shctx.c:204,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/shctx.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - shctx
    - first
    - data
    - len
    argTypes:
    - struct shared_context*
    - struct shared_block*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 218
    functionName: shctx_row_data_append
    functionSourceFile: /src/haproxy/src/shctx.c
    functionUses: 1
    functionsReached:
    - MIN
    - memcpy
    - BUG_ON
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: "int shctx_row_data_append(struct shared_context *shctx, struct shared_block
      *first,\n                          unsigned char *data, int len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/shctx.c:253,1
    - Dst: MIN
      Src: /src/haproxy/src/shctx.c:256,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/shctx.c:257,1
    - Dst: memcpy
      Src: /src/haproxy/src/shctx.c:259,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/shctx.c:264,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - shctx
    - first
    - dst
    - offset
    - len
    argTypes:
    - struct shared_context*
    - struct shared_block*
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 267
    functionName: shctx_row_data_get
    functionSourceFile: /src/haproxy/src/shctx.c
    functionUses: 1
    functionsReached:
    - MIN
    - memcpy
    - BUG_ON
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: "int shctx_row_data_get(struct shared_context *shctx, struct shared_block
      *first,\n                       unsigned char *dst, int offset, int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/haproxy/src/shctx.c:292,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/shctx.c:299,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/shctx.c:303,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/shctx.c:304,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/shctx.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - orig_shctx
    - maxblocks
    - blocksize
    - maxobjsz
    - extra
    - name
    argTypes:
    - struct shared_context**
    - int
    - int
    - unsigned int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 325
    functionName: shctx_init
    functionSourceFile: /src/haproxy/src/shctx.c
    functionUses: 2
    functionsReached:
    - vma_set_name
    - HA_RWLOCK_INIT
    - mmap
    - LIST_APPEND
    - LIST_INIT
    linkageType: ''
    returnType: int
    signature: "int shctx_init(struct shared_context **orig_shctx, int maxblocks,
      int blocksize,\n               unsigned int maxobjsz, int extra, const char
      *name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/qcm_http.c:21,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/qcm_http.c:24,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/qcm_http.c:25,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qcm_http.c:27,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/qcm_http.c:33,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/qcm_http.c:34,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/qcm_http.c:34,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qcm_http.c:41,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qcm_http.c:42,1
    - Dst: b_xfer
      Src: /src/haproxy/src/qcm_http.c:43,1
    - Dst: b_data
      Src: /src/haproxy/src/qcm_http.c:43,1
    - Dst: htx_xfer
      Src: /src/haproxy/src/qcm_http.c:47,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qcm_http.c:48,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/qcm_http.c:51,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qcm_http.c:57,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qcm_http.c:58,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/qcm_http.c:62,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - qcs
    - buf
    - count
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 65
    functionName: qcs_http_rcv_buf
    functionSourceFile: /src/haproxy/src/qcm_http.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - htx_to_buf
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_ENTER
    - b_data
    - htx_xfer
    - htx_used_space
    - htx_is_empty
    - htx_from_buf
    linkageType: ''
    returnType: size_t
    signature: "size_t qcs_http_rcv_buf(struct qcs *qcs, struct buffer *buf, size_t
      count,\n                        char *fin)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qcc_get_stream_rxbuf
      Src: /src/haproxy/src/qcm_http.c:73,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/qcm_http.c:76,1
    - Dst: htx_set_eom
      Src: /src/haproxy/src/qcm_http.c:77,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qcm_http.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 86
    functionName: qcs_http_handle_standalone_fin
    functionSourceFile: /src/haproxy/src/qcm_http.c
    functionUses: 0
    functionsReached:
    - qcc_get_stream_rxbuf
    - htx_set_eom
    - htx_to_buf
    - htx_from_buf
    linkageType: ''
    returnType: int
    signature: int qcs_http_handle_standalone_fin(struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/qcm_http.c:99,1
    - Dst: struct qcs*::qcc::app_ops::snd_buf
      Src: /src/haproxy/src/qcm_http.c:100,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/qcm_http.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - qcs
    - buf
    - count
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: qcs_http_snd_buf
    functionSourceFile: /src/haproxy/src/qcm_http.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    - struct qcs*::qcc::app_ops::snd_buf
    linkageType: ''
    returnType: size_t
    signature: "size_t qcs_http_snd_buf(struct qcs *qcs, struct buffer *buf, size_t
      count,\n                        char *fin)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/qcm_http.c:115,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/qcm_http.c:117,1
    - Dst: htx_reset
      Src: /src/haproxy/src/qcm_http.c:118,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qcm_http.c:119,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/qcm_http.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - qcs
    - buf
    - count
    argTypes:
    - struct qcs*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: qcs_http_reset_buf
    functionSourceFile: /src/haproxy/src/qcm_http.c
    functionUses: 0
    functionsReached:
    - htx_to_buf
    - TRACE_LEAVE
    - TRACE_ENTER
    - htx_reset
    - htx_from_buf
    linkageType: ''
    returnType: size_t
    signature: size_t qcs_http_reset_buf(struct qcs *qcs, struct buffer *buf, size_t
      count)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/proto_uxst.c:190,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_uxst.c:196,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_uxst.c:208,1
    - Dst: sock_accepting_conn
      Src: /src/haproxy/src/proto_uxst.c:217,1
    - Dst: listen
      Src: /src/haproxy/src/proto_uxst.c:220,1
    - Dst: listener_backlog
      Src: /src/haproxy/src/proto_uxst.c:220,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_uxst.c:222,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_uxst.c:222,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/proto_uxst.c:228,1
    - Dst: fd_delete
      Src: /src/haproxy/src/proto_uxst.c:232,1
    - Dst: sa2str
      Src: /src/haproxy/src/proto_uxst.c:237,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_uxst.c:238,1
    - Dst: ha_free
      Src: /src/haproxy/src/proto_uxst.c:239,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/proto_uxst.c:241,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - listener
    - errmsg
    - errlen
    argTypes:
    - struct listener*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 244
    functionName: uxst_bind_listener
    functionSourceFile: /src/haproxy/src/proto_uxst.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - sock_accepting_conn
    - strerror
    - ha_free
    - alloc_trash_chunk
    - listener_set_state
    - free_trash_chunk
    - chunk_appendf
    - listen
    - listener_backlog
    - sa2str
    - snprintf
    linkageType: ''
    returnType: int
    signature: int uxst_bind_listener(struct listener *listener, char *errmsg, int
      errlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_want_recv_safe
      Src: /src/haproxy/src/proto_uxst.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: uxst_enable_listener
    functionSourceFile: /src/haproxy/src/proto_uxst.c
    functionUses: 0
    functionsReached:
    - fd_want_recv_safe
    linkageType: ''
    returnType: void
    signature: void uxst_enable_listener(struct listener *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/proto_uxst.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: uxst_disable_listener
    functionSourceFile: /src/haproxy/src/proto_uxst.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    linkageType: ''
    returnType: void
    signature: void uxst_disable_listener(struct listener *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/proto_uxst.c:271,1
    - Dst: uxst_disable_listener
      Src: /src/haproxy/src/proto_uxst.c:274,1
    - Dst: do_unbind_listener
      Src: /src/haproxy/src/proto_uxst.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: uxst_suspend_receiver
    functionSourceFile: /src/haproxy/src/proto_uxst.c
    functionUses: 0
    functionsReached:
    - do_unbind_listener
    - uxst_disable_listener
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int uxst_suspend_receiver(struct receiver *rx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_uxst.c:316,1
    - Dst: obj_type
      Src: /src/haproxy/src/proto_uxst.c:318,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/proto_uxst.c:320,1
    - Dst: __objt_server
      Src: /src/haproxy/src/proto_uxst.c:324,1
    - Dst: sock_create_server_socket
      Src: /src/haproxy/src/proto_uxst.c:333,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_uxst.c:339,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_uxst.c:342,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_uxst.c:348,1
    - Dst: connect
      Src: /src/haproxy/src/proto_uxst.c:351,1
    - Dst: qfprintf
      Src: /src/haproxy/src/proto_uxst.c:369,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_uxst.c:369,1
    - Dst: close
      Src: /src/haproxy/src/proto_uxst.c:370,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_uxst.c:371,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_uxst.c:371,1
    - Dst: close
      Src: /src/haproxy/src/proto_uxst.c:376,1
    - Dst: close
      Src: /src/haproxy/src/proto_uxst.c:382,1
    - Dst: conn_ctrl_init
      Src: /src/haproxy/src/proto_uxst.c:399,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/proto_uxst.c:400,1
    - Dst: fd_want_send
      Src: /src/haproxy/src/proto_uxst.c:403,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/proto_uxst.c:404,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/proto_uxst.c:405,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 2
    argNames:
    - conn
    - flags
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 409
    functionName: uxst_connect_server
    functionSourceFile: /src/haproxy/src/proto_uxst.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - get_addr_len
    - BUG_ON
    - qfprintf
    - strerror
    - setsockopt
    - fd_want_send
    - __objt_proxy
    - HA_ATOMIC_AND
    - fd_cant_send
    - connect
    - conn_ctrl_init
    - obj_type
    - sock_create_server_socket
    - send_log
    - fd_cant_recv
    - close
    linkageType: ''
    returnType: int
    signature: int uxst_connect_server(struct connection *conn, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_verify
      Src: /src/haproxy/src/ssl_clienthello.c:29,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/haproxy/src/ssl_clienthello.c:29,1
    - Dst: SSL_set_client_CA_list
      Src: /src/haproxy/src/ssl_clienthello.c:30,1
    - Dst: SSL_dup_CA_list
      Src: /src/haproxy/src/ssl_clienthello.c:30,1
    - Dst: SSL_CTX_get_client_CA_list
      Src: /src/haproxy/src/ssl_clienthello.c:30,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/haproxy/src/ssl_clienthello.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ssl
    - ctx
    argTypes:
    - SSL*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: ssl_sock_switchctx_set
    functionSourceFile: /src/haproxy/src/ssl_clienthello.c
    functionUses: 0
    functionsReached:
    - SSL_set_SSL_CTX
    - SSL_set_verify
    - SSL_dup_CA_list
    - SSL_set_client_CA_list
    - SSL_CTX_get_client_CA_list
    - SSL_CTX_get_verify_mode
    linkageType: ''
    returnType: void
    signature: void ssl_sock_switchctx_set(SSL *ssl, SSL_CTX *ctx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_clienthello.c:47,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_clienthello.c:64,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_clienthello.c:66,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_clienthello.c:70,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_clienthello.c:73,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_clienthello.c:79,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_clienthello.c:80,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_clienthello.c:81,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_clienthello.c:90,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:112,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:115,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:118,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:121,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:124,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_clienthello.c:128,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_clienthello.c:129,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:132,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 71
    argCount: 5
    argNames:
    - s
    - conn
    - servername
    - have_rsa_sig
    - have_ecdsa_sig
    argTypes:
    - struct bind_conf*
    - struct connection*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 134
    functionName: ssl_sock_choose_sni_ctx
    functionSourceFile: /src/haproxy/src/ssl_clienthello.c
    functionUses: 2
    functionsReached:
    - TRACE_STATE
    - TRACE_LEAVE
    - list_for_each_entry
    - ebst_lookup
    - TRACE_ENTER
    - strcmp
    - container_of
    - ebmb_next_dup
    linkageType: ''
    returnType: struct sni_ctx
    signature: "struct sni_ctx *ssl_sock_choose_sni_ctx(struct bind_conf *s, struct
      connection *conn,\n                                       const char *servername,
      int have_rsa_sig, int have_ecdsa_sig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_clienthello.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ssl
    - al
    - priv
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: ssl_sock_switchctx_err_cbk
    functionSourceFile: /src/haproxy/src/ssl_clienthello.c
    functionUses: 0
    functionsReached:
    - SSL_get_servername
    linkageType: ''
    returnType: int
    signature: int ssl_sock_switchctx_err_cbk(SSL *ssl, int *al, void *priv)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_clienthello.c:547,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_clienthello.c:552,1
    - Dst: SSL_get_peer_quic_transport_params
      Src: /src/haproxy/src/ssl_clienthello.c:558,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/ssl_clienthello.c:565,1
    - Dst: quic_transport_params_store
      Src: /src/haproxy/src/ssl_clienthello.c:569,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_clienthello.c:577,1
    - Dst: ssl_sock_generate_certificate_from_conn
      Src: /src/haproxy/src/ssl_clienthello.c:580,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:581,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_clienthello.c:586,1
    - Dst: tolower
      Src: /src/haproxy/src/ssl_clienthello.c:601,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:609,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:612,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_clienthello.c:613,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_clienthello.c:613,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_clienthello.c:615,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:622,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_clienthello.c:623,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_clienthello.c:623,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_clienthello.c:625,1
    - Dst: ssl_sock_generate_certificate
      Src: /src/haproxy/src/ssl_clienthello.c:633,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:635,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:636,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:640,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:648,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_clienthello.c:651,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:657,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_clienthello.c:658,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 3
    argNames:
    - ssl
    - al
    - priv
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 537
    functionDepth: 5
    functionLinenumber: 537
    functionLinenumberEnd: 660
    functionName: ssl_sock_switchctx_cbk
    functionSourceFile: /src/haproxy/src/ssl_clienthello.c
    functionUses: 0
    functionsReached:
    - ssl_sock_generate_certificate
    - ssl_sock_generate_certificate_from_conn
    - SSL_get_peer_quic_transport_params
    - TRACE_STATE
    - TRACE_ERROR
    - HA_RWLOCK_RDUNLOCK
    - tolower
    - ebst_lookup
    - quic_set_tls_alert
    - TRACE_ENTER
    - quic_transport_params_store
    - container_of
    - ebmb_next_dup
    - TRACE_LEAVE
    - SSL_get_servername
    - SSL_get_ex_data
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int ssl_sock_switchctx_cbk(SSL *ssl, int *al, void *priv)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_clienthello.c:672,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/ssl_clienthello.c:682,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_clienthello.c:686,1
    - Dst: wolfSSL_get_client_suites_sigalgs
      Src: /src/haproxy/src/ssl_clienthello.c:705,1
    - Dst: SSL_version
      Src: /src/haproxy/src/ssl_clienthello.c:709,1
    - Dst: wolfSSL_get_ciphersuite_info
      Src: /src/haproxy/src/ssl_clienthello.c:716,1
    - Dst: wolfSSL_get_sigalg_info
      Src: /src/haproxy/src/ssl_clienthello.c:730,1
    - Dst: tolower
      Src: /src/haproxy/src/ssl_clienthello.c:745,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:749,1
    - Dst: ssl_sock_choose_sni_ctx
      Src: /src/haproxy/src/ssl_clienthello.c:750,1
    - Dst: ssl_sock_switchctx_set
      Src: /src/haproxy/src/ssl_clienthello.c:754,1
    - Dst: ssl_set_version
      Src: /src/haproxy/src/ssl_clienthello.c:756,1
    - Dst: ssl_set_version
      Src: /src/haproxy/src/ssl_clienthello.c:757,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:759,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:763,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/ssl_clienthello.c:780,1
    - Dst: strncpy
      Src: /src/haproxy/src/ssl_clienthello.c:782,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_clienthello.c:784,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - WOLFSSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 796
    functionName: ssl_sock_switchctx_wolfSSL_cbk
    functionSourceFile: /src/haproxy/src/ssl_clienthello.c
    functionUses: 0
    functionsReached:
    - strncpy
    - wolfSSL_get_ciphersuite_info
    - ssl_sock_choose_sni_ctx
    - pool_alloc
    - HA_RWLOCK_RDUNLOCK
    - SSL_set_ex_data
    - ssl_sock_switchctx_set
    - tolower
    - wolfSSL_get_client_suites_sigalgs
    - ABORT_NOW
    - wolfSSL_get_sigalg_info
    - ssl_set_version
    - SSL_version
    - SSL_get_servername
    - SSL_get_ex_data
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int ssl_sock_switchctx_wolfSSL_cbk(WOLFSSL* ssl, void* arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - i
    - prefix_size
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 24
    functionName: qpack_get_prefix_int_size
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t qpack_get_prefix_int_size(int i, int prefix_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/qpack-enc.c:37,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:40,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:43,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:49,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:52,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:55,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - out
    - i
    - prefix_size
    - before_prefix
    argTypes:
    - struct buffer*
    - int
    - int
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 66
    functionName: qpack_encode_prefix_integer
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - b_room
    - BUG_ON_HOT
    - b_putchr
    linkageType: ''
    returnType: int
    signature: "int qpack_encode_prefix_integer(struct buffer *out, int i,\n                                       int
      prefix_size,\n                                       unsigned char before_prefix)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/qpack-enc.c:74,1
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:100,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:101,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:104,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:118,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:122,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:125,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:128,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:129,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:130,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 2
    argNames:
    - out
    - status
    argTypes:
    - struct buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 134
    functionName: qpack_encode_int_status
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - qpack_get_prefix_int_size
    - b_room
    - b_putchr
    - qpack_encode_prefix_integer
    linkageType: ''
    returnType: int
    signature: int qpack_encode_int_status(struct buffer *out, unsigned int status)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:155,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:158,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qpack-enc.c:161,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:161,1
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:163,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:163,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:163,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:164,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:168,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:169,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:169,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:170,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:171,1
    - Dst: istptr
      Src: /src/haproxy/src/qpack-enc.c:171,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - out
    - meth
    - other
    argTypes:
    - struct buffer*
    - enum http_meth_t
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 175
    functionName: qpack_encode_method
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - qpack_get_prefix_int_size
    - b_room
    - b_putchr
    - qpack_encode_prefix_integer
    - istptr
    - istlen
    linkageType: ''
    returnType: int
    signature: int qpack_encode_method(struct buffer *out, enum http_meth_t meth,
      struct ist other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/qpack-enc.c:183,1
    - Dst: isteq
      Src: /src/haproxy/src/qpack-enc.c:183,1
    - Dst: ist
      Src: /src/haproxy/src/qpack-enc.c:183,1
    - Dst: isteq
      Src: /src/haproxy/src/qpack-enc.c:183,1
    - Dst: ist
      Src: /src/haproxy/src/qpack-enc.c:183,1
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:184,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:184,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:184,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:185,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:189,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:190,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:190,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:191,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:192,1
    - Dst: istptr
      Src: /src/haproxy/src/qpack-enc.c:192,1
    - Dst: isteq
      Src: /src/haproxy/src/qpack-enc.c:195,1
    - Dst: ist
      Src: /src/haproxy/src/qpack-enc.c:195,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:199,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - out
    - scheme
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 207
    functionName: qpack_encode_scheme
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist
    - qpack_get_prefix_int_size
    - b_room
    - isteq
    - b_putchr
    - qpack_encode_prefix_integer
    - istptr
    - istlen
    linkageType: ''
    returnType: int
    signature: int qpack_encode_scheme(struct buffer *out, const struct ist scheme)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/qpack-enc.c:214,1
    - Dst: isteq
      Src: /src/haproxy/src/qpack-enc.c:214,1
    - Dst: ist
      Src: /src/haproxy/src/qpack-enc.c:214,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:215,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:218,1
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:222,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:222,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:222,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:223,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:226,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:227,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:227,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:228,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:229,1
    - Dst: istptr
      Src: /src/haproxy/src/qpack-enc.c:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - out
    - path
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 232
    functionName: qpack_encode_path
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist
    - qpack_get_prefix_int_size
    - b_room
    - isteq
    - b_putchr
    - qpack_encode_prefix_integer
    - istptr
    - istlen
    linkageType: ''
    returnType: int
    signature: int qpack_encode_path(struct buffer *out, const struct ist path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:242,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:242,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:242,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:243,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:246,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:247,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:247,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:248,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:249,1
    - Dst: istptr
      Src: /src/haproxy/src/qpack-enc.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - out
    - auth
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 251
    functionName: qpack_encode_auth
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - qpack_get_prefix_int_size
    - b_room
    - b_putchr
    - qpack_encode_prefix_integer
    - istptr
    - istlen
    linkageType: ''
    returnType: int
    signature: int qpack_encode_auth(struct buffer *out, const struct ist auth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:261,1
    - Dst: b_putblk
      Src: /src/haproxy/src/qpack-enc.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 267
    functionName: qpack_encode_field_section_line
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - b_room
    - b_putblk
    linkageType: ''
    returnType: int
    signature: int qpack_encode_field_section_line(struct buffer *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:275,1
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:276,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:278,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:287,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:290,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:295,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - out
    - n
    - v
    argTypes:
    - struct buffer*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 301
    functionName: qpack_encode_header
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - qpack_get_prefix_int_size
    - b_putchr
    - b_room
    - qpack_encode_prefix_integer
    linkageType: ''
    returnType: int
    signature: int qpack_encode_header(struct buffer *out, const struct ist n, const
      struct ist v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/buf.c:34,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:41,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:41,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:44,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - buf
    - blk
    - len
    - offset
    argTypes:
    - struct buffer*
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: b_getblk_ofs
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 0
    functionsReached:
    - b_orig
    - memcpy
    - BUG_ON
    linkageType: ''
    returnType: size_t
    signature: size_t b_getblk_ofs(const struct buffer *buf, char *blk, size_t len,
      size_t offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/buf.c:61,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/buf.c:62,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/buf.c:63,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:65,1
    - Dst: b_wrap
      Src: /src/haproxy/src/buf.c:68,1
    - Dst: b_head
      Src: /src/haproxy/src/buf.c:68,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:71,1
    - Dst: b_head
      Src: /src/haproxy/src/buf.c:71,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:75,1
    - Dst: b_head
      Src: /src/haproxy/src/buf.c:75,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:76,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:76,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:80,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - buf
    - blk
    - len
    - offset
    argTypes:
    - struct buffer*
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 82
    functionName: b_getblk
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 0
    functionsReached:
    - b_head
    - b_orig
    - memcpy
    - BUG_ON
    - b_data
    - b_wrap
    linkageType: ''
    returnType: size_t
    signature: size_t b_getblk(const struct buffer *buf, char *blk, size_t len, size_t
      offset)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/src/buf.c:109,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:112,1
    - Dst: memset
      Src: /src/haproxy/src/buf.c:120,1
    - Dst: b_next
      Src: /src/haproxy/src/buf.c:146,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 7
    argNames:
    - buf
    - offset
    - count
    - str
    - len
    - delim
    - escape
    argTypes:
    - struct buffer*
    - size_t
    - size_t
    - char*
    - size_t
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 155
    functionName: b_getdelim
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 1
    functionsReached:
    - b_peek
    - b_data
    - b_next
    - memset
    linkageType: ''
    returnType: size_t
    signature: "size_t b_getdelim(const struct buffer *buf, size_t offset, size_t
      count,\n\t\t\t\tchar *str, size_t len, const char *delim, char escape)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/src/buf.c:171,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:174,1
    - Dst: b_next
      Src: /src/haproxy/src/buf.c:188,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - buf
    - offset
    - count
    - str
    - len
    argTypes:
    - struct buffer*
    - size_t
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 197
    functionName: b_getline
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 1
    functionsReached:
    - b_peek
    - b_data
    - b_next
    linkageType: ''
    returnType: size_t
    signature: "size_t b_getline(const struct buffer *buf, size_t offset, size_t count,\n\t\t\t
      \      char *str, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/buf.c:215,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:218,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/buf.c:218,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/buf.c:219,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:222,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:222,1
    - Dst: b_head
      Src: /src/haproxy/src/buf.c:222,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:223,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:223,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:223,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:226,1
    - Dst: b_tail_ofs
      Src: /src/haproxy/src/buf.c:229,1
    - Dst: b_tail_ofs
      Src: /src/haproxy/src/buf.c:230,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:233,1
    - Dst: b_peek
      Src: /src/haproxy/src/buf.c:233,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:234,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:234,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:237,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:237,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:237,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:238,1
    - Dst: b_wrap
      Src: /src/haproxy/src/buf.c:238,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:238,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - b
    - swap
    - output
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 241
    functionName: b_slow_realign
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 21
    functionsReached:
    - b_peek
    - b_head
    - b_orig
    - memcpy
    - b_tail_ofs
    - b_head_ofs
    - b_peek_ofs
    - b_data
    - b_size
    - b_wrap
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void b_slow_realign(struct buffer *b, char *swap, size_t output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:251,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/buf.c:254,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/buf.c:255,1
    - Dst: __b_tail_ofs
      Src: /src/haproxy/src/buf.c:257,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:257,1
    - Dst: b_tail_ofs
      Src: /src/haproxy/src/buf.c:258,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:261,1
    - Dst: b_head
      Src: /src/haproxy/src/buf.c:261,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:262,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:262,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:264,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:266,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:267,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:268,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:270,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:270,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:271,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - b
    - swap
    - ofs
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 274
    functionName: b_slow_realign_ofs
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 3
    functionsReached:
    - b_head
    - b_orig
    - memcpy
    - b_tail_ofs
    - b_data
    - b_size
    - BUG_ON_HOT
    - __b_tail_ofs
    linkageType: ''
    returnType: void
    signature: void b_slow_realign_ofs(struct buffer *b, char *swap, size_t ofs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/buf.c:296,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:303,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:303,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:306,1
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - buf
    - blk
    - len
    - offset
    argTypes:
    - struct buffer*
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 308
    functionName: b_putblk_ofs
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 0
    functionsReached:
    - b_orig
    - memcpy
    - BUG_ON
    linkageType: ''
    returnType: size_t
    signature: size_t b_putblk_ofs(struct buffer *buf, char *blk, size_t len, size_t
      offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_contig_space
      Src: /src/haproxy/src/buf.c:316,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/buf.c:318,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:318,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:318,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:323,1
    - Dst: b_tail
      Src: /src/haproxy/src/buf.c:323,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:326,1
    - Dst: b_peek
      Src: /src/haproxy/src/buf.c:326,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - b
    - blk
    - len
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 328
    functionName: __b_putblk
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 2
    functionsReached:
    - b_peek
    - memcpy
    - BUG_ON
    - b_tail
    - b_data
    - b_size
    - b_contig_space
    linkageType: ''
    returnType: void
    signature: void __b_putblk(struct buffer *b, const char *blk, size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:345,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:351,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:351,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:351,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/buf.c:359,1
    - Dst: __b_putblk
      Src: /src/haproxy/src/buf.c:365,1
    - Dst: b_head
      Src: /src/haproxy/src/buf.c:365,1
    - Dst: __b_putblk
      Src: /src/haproxy/src/buf.c:368,1
    - Dst: b_peek
      Src: /src/haproxy/src/buf.c:368,1
    - Dst: b_del
      Src: /src/haproxy/src/buf.c:370,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - dst
    - src
    - count
    argTypes:
    - struct buffer*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 373
    functionName: b_xfer
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 14
    functionsReached:
    - __b_putblk
    - b_peek
    - b_head
    - b_contig_data
    - b_data
    - b_size
    - b_del
    linkageType: ''
    returnType: size_t
    signature: size_t b_xfer(struct buffer *dst, struct buffer *src, size_t count)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:388,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/buf.c:394,1
    - Dst: __b_putblk
      Src: /src/haproxy/src/buf.c:400,1
    - Dst: b_head
      Src: /src/haproxy/src/buf.c:400,1
    - Dst: __b_putblk
      Src: /src/haproxy/src/buf.c:403,1
    - Dst: b_peek
      Src: /src/haproxy/src/buf.c:403,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - dst
    - src
    - count
    argTypes:
    - struct buffer*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 407
    functionName: b_ncat
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 0
    functionsReached:
    - __b_putblk
    - b_peek
    - b_head
    - b_contig_data
    - b_data
    linkageType: ''
    returnType: size_t
    signature: size_t b_ncat(struct buffer *dst, const struct buffer *src, size_t
      count)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: b_orig
      Src: /src/haproxy/src/buf.c:420,1
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:421,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/buf.c:425,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/buf.c:431,1
    - Dst: memmove
      Src: /src/haproxy/src/buf.c:439,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/buf.c:449,1
    - Dst: memmove
      Src: /src/haproxy/src/buf.c:465,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 4
    argNames:
    - b
    - src
    - len
    - shift
    argTypes:
    - struct buffer*
    - size_t
    - size_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 468
    functionName: b_move
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 2
    functionsReached:
    - memmove
    - b_size
    - b_orig
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void b_move(const struct buffer *b, size_t src, size_t len, ssize_t
      shift)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/buf.c:483,1
    - Dst: __b_tail
      Src: /src/haproxy/src/buf.c:487,1
    - Dst: b_wrap
      Src: /src/haproxy/src/buf.c:487,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:490,1
    - Dst: b_tail
      Src: /src/haproxy/src/buf.c:491,1
    - Dst: b_head
      Src: /src/haproxy/src/buf.c:491,1
    - Dst: b_head
      Src: /src/haproxy/src/buf.c:492,1
    - Dst: b_tail
      Src: /src/haproxy/src/buf.c:492,1
    - Dst: memmove
      Src: /src/haproxy/src/buf.c:496,1
    - Dst: b_tail
      Src: /src/haproxy/src/buf.c:496,1
    - Dst: memcpy
      Src: /src/haproxy/src/buf.c:500,1
    - Dst: b_add
      Src: /src/haproxy/src/buf.c:502,1
    - Dst: b_realign_if_empty
      Src: /src/haproxy/src/buf.c:503,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - b
    - pos
    - end
    - blk
    - len
    argTypes:
    - struct buffer*
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 506
    functionName: b_rep_blk
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 0
    functionsReached:
    - __b_tail
    - b_head
    - memmove
    - BUG_ON
    - memcpy
    - b_realign_if_empty
    - b_tail
    - b_add
    - b_data
    - b_wrap
    linkageType: ''
    returnType: int
    signature: int b_rep_blk(struct buffer *b, char *pos, char *end, const char *blk,
      size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_room
      Src: /src/haproxy/src/buf.c:518,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/buf.c:521,1
    - Dst: b_tail_ofs
      Src: /src/haproxy/src/buf.c:522,1
    - Dst: __b_putblk
      Src: /src/haproxy/src/buf.c:523,1
    - Dst: b_data
      Src: /src/haproxy/src/buf.c:525,1
    - Dst: b_move
      Src: /src/haproxy/src/buf.c:528,1
    - Dst: b_sub
      Src: /src/haproxy/src/buf.c:531,1
    - Dst: __b_putblk
      Src: /src/haproxy/src/buf.c:532,1
    - Dst: b_add
      Src: /src/haproxy/src/buf.c:533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - b
    - 'off'
    - blk
    - len
    argTypes:
    - struct buffer*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 536
    functionName: b_insert_blk
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 1
    functionsReached:
    - __b_putblk
    - b_sub
    - b_tail_ofs
    - b_add
    - b_room
    - b_peek_ofs
    - b_data
    - b_move
    linkageType: ''
    returnType: int
    signature: int b_insert_blk(struct buffer *b, size_t off, const char *blk, size_t
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:546,1
    - Dst: b_wrap
      Src: /src/haproxy/src/buf.c:547,1
    - Dst: b_tail
      Src: /src/haproxy/src/buf.c:548,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/buf.c:550,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/buf.c:572,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - b
    - v
    argTypes:
    - struct buffer*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 575
    functionName: __b_put_varint
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 1
    functionsReached:
    - b_wrap
    - b_size
    - BUG_ON_HOT
    - b_tail
    linkageType: ''
    returnType: void
    signature: void __b_put_varint(struct buffer *b, uint64_t v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/src/buf.c:584,1
    - Dst: b_wrap
      Src: /src/haproxy/src/buf.c:585,1
    - Dst: b_tail
      Src: /src/haproxy/src/buf.c:586,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/buf.c:589,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - b
    - v
    argTypes:
    - struct buffer*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 618
    functionName: b_put_varint
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 1
    functionsReached:
    - b_wrap
    - b_size
    - BUG_ON_HOT
    - b_tail
    linkageType: ''
    returnType: int
    signature: int b_put_varint(struct buffer *b, uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek_varint
      Src: /src/haproxy/src/buf.c:628,1
    - Dst: b_del
      Src: /src/haproxy/src/buf.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - b
    - vptr
    argTypes:
    - struct buffer*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 631
    functionName: b_get_varint
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 0
    functionsReached:
    - b_del
    - b_peek_varint
    linkageType: ''
    returnType: int
    signature: int b_get_varint(struct buffer *b, uint64_t *vptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/buf.c:644,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct bl_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 658
    functionName: bl_deinit
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void bl_deinit(struct bl_elem *head)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/buf.c:670,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/buf.c:699,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - head
    - idx
    argTypes:
    - struct bl_elem*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 711
    functionName: bl_get
    functionSourceFile: /src/haproxy/src/buf.c
    functionUses: 1
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bl_get(struct bl_elem *head, uint32_t idx)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:100,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:103,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:107,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:113,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:116,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:119,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:121,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:122,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:123,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:124,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:125,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:126,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:127,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:128,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:129,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:130,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:131,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:132,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:133,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:134,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:135,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:136,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:137,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:138,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:139,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:147,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:150,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:151,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 86
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 154
    functionName: acme_trace
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void acme_trace(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n                      const struct ist where, const struct
      ist func,\n                      const void *a1, const void *a2, const void
      *a3, const void *a4)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: get_acme_cfg
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct acme_cfg
    signature: struct acme_cfg *get_acme_cfg(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_acme_cfg
      Src: /src/haproxy/src/acme.c:194,1
    - Dst: calloc
      Src: /src/haproxy/src/acme.c:198,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:202,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 225
    functionName: new_acme_cfg
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - calloc
    - get_acme_cfg
    - strdup
    linkageType: ''
    returnType: struct acme_cfg
    signature: struct acme_cfg *new_acme_cfg(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: new_acme_cfg
      Src: /src/haproxy/src/acme.c:235,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:237,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 7
    argNames:
    - value
    - buf
    - s
    - cli
    - filename
    - linenum
    - err
    argTypes:
    - void*
    - char*
    - struct ckch_store*
    - int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 230
    functionDepth: 5
    functionLinenumber: 230
    functionLinenumberEnd: 254
    functionName: ckch_conf_acme_init
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - new_acme_cfg
    - strdup
    - memprintf
    linkageType: ''
    returnType: int
    signature: int ckch_conf_acme_init(void *value, char *buf, struct ckch_store *s,
      int cli, const char *filename, int linenum, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_create_proxy
      Src: /src/haproxy/src/acme.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 9
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: httpclient_acme_init
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - httpclient_create_proxy
    linkageType: ''
    returnType: int
    signature: int httpclient_acme_init()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:281,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/acme.c:285,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:287,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:289,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:294,1
    - Dst: new_acme_cfg
      Src: /src/haproxy/src/acme.c:298,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:301,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:312,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:317,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:318,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acme.c:324,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:328,1
    - Dst: check_kw_experimental
      Src: /src/haproxy/src/acme.c:329,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:330,1
    - Dst: parse
      Src: /src/haproxy/src/acme.c:336,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:338,1
    - Dst: ha_warning
      Src: /src/haproxy/src/acme.c:343,1
    - Dst: cfg_find_best_match
      Src: /src/haproxy/src/acme.c:352,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:354,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:356,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:363,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 79
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 367
    functionName: cfg_parse_acme
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - alertif_too_many_args
    - list_for_each_entry
    - ha_free
    - check_kw_experimental
    - parse
    - strcmp
    - free
    - mark_tainted
    - new_acme_cfg
    - ha_alert
    - ha_warning
    - cfg_find_best_match
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_acme(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:375,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:377,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:381,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:383,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:384,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:387,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:390,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:393,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:397,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:400,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:401,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:404,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:407,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:410,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:414,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:417,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:418,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:421,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:424,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:426,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:430,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:433,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:434,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:437,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:440,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:442,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:446,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:449,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:450,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:453,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:456,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:458,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:462,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:465,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:467,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:469,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:472,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:476,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:478,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:479,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:480,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:481,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:486,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:489,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:490,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:493,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:498,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:503,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:507,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:508,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:513,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:518,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:522,1
    - Dst: isalnum
      Src: /src/haproxy/src/acme.c:528,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:529,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:535,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:536,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:539,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:542,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:545,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:549,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:552,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:553,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:556,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:559,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:564,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:568,1
    - Dst: strtok_r
      Src: /src/haproxy/src/acme.c:573,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:575,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:578,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:581,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:584,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:587,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:593,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:599,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:600,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:605,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:609,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:613,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/acme.c:616,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:618,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:622,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:626,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:630,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:634,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:638,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/acme.c:641,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:643,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:647,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:651,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:655,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:657,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:661,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:664,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:666,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:670,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:674,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:679,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 334
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 681
    functionName: cfg_parse_acme_kws
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - strtok_r
    - alertif_too_many_args
    - ha_free
    - strcmp
    - free
    - ha_alert
    - parse_time_err
    - strcasecmp
    - isalnum
    - strdup
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_acme_kws(char **args, int section_type, struct proxy
      *curpx, const struct proxy *defpx,\n                              const char
      *file, int linenum, char **err)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:696,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:698,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:702,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:707,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:710,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:714,1
    - Dst: strlen
      Src: /src/haproxy/src/acme.c:717,1
    - Dst: malloc
      Src: /src/haproxy/src/acme.c:718,1
    - Dst: realloc
      Src: /src/haproxy/src/acme.c:728,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:730,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:745,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:750,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 685
    functionDepth: 3
    functionLinenumber: 685
    functionLinenumberEnd: 752
    functionName: cfg_parse_acme_vars_provider
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - malloc
    - alertif_too_many_args
    - ha_free
    - strcmp
    - free
    - realloc
    - ha_alert
    - strlen
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_acme_vars_provider(char **args, int section_type, struct
      proxy *curpx, const struct proxy *defpx,\n                                        const
      char *file, int linenum, char **err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:760,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:762,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:766,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:769,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:771,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:774,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:779,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:783,1
    - Dst: strtol
      Src: /src/haproxy/src/acme.c:788,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:791,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:795,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:798,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:800,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:804,1
    - Dst: curves2nid
      Src: /src/haproxy/src/acme.c:807,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:808,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:815,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 817
    functionName: cfg_parse_acme_cfg_key
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - alertif_too_many_args
    - strcmp
    - free
    - strtol
    - ha_alert
    - curves2nid
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_acme_cfg_key(char **args, int section_type, struct proxy
      *curpx, const struct proxy *defpx,\n                              const char
      *file, int linenum, char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:826,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:829,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:832,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:834,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:837,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 820
    functionDepth: 5
    functionLinenumber: 820
    functionLinenumberEnd: 845
    functionName: cfg_parse_global_acme_sched
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - alertif_too_many_args
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_acme_sched(char **args, int section_type, struct
      proxy *curpx, const struct proxy *defpx,\n                                       const
      char *file, int linenum, char **err)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:860,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:865,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:867,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/acme.c:874,1
    - Dst: my_strndup
      Src: /src/haproxy/src/acme.c:879,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:881,1
    - Dst: isalnum
      Src: /src/haproxy/src/acme.c:890,1
    - Dst: ha_warning
      Src: /src/haproxy/src/acme.c:891,1
    - Dst: ha_notice
      Src: /src/haproxy/src/acme.c:897,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:899,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/acme.c:904,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/acme.c:906,1
    - Dst: base64urldec
      Src: /src/haproxy/src/acme.c:910,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:912,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:923,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:929,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/acme.c:935,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:936,1
    - Dst: ha_notice
      Src: /src/haproxy/src/acme.c:941,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:943,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:948,1
    - Dst: snprintf
      Src: /src/haproxy/src/acme.c:957,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:959,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:970,1
    - Dst: ckch_store_new
      Src: /src/haproxy/src/acme.c:974,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:976,1
    - Dst: stat
      Src: /src/haproxy/src/acme.c:982,1
    - Dst: ssl_sock_load_key_into_ckch
      Src: /src/haproxy/src/acme.c:983,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:984,1
    - Dst: indent_msg
      Src: /src/haproxy/src/acme.c:986,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:988,1
    - Dst: ha_notice
      Src: /src/haproxy/src/acme.c:993,1
    - Dst: ssl_gen_EVP_PKEY
      Src: /src/haproxy/src/acme.c:995,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:996,1
    - Dst: BIO_new_file
      Src: /src/haproxy/src/acme.c:1000,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:1001,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/haproxy/src/acme.c:1006,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:1007,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:1017,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/haproxy/src/acme.c:1023,1
    - Dst: jws_thumbprint
      Src: /src/haproxy/src/acme.c:1025,1
    - Dst: my_strndup
      Src: /src/haproxy/src/acme.c:1027,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:1029,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/acme.c:1034,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/acme.c:1037,1
    - Dst: BIO_free_all
      Src: /src/haproxy/src/acme.c:1038,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1039,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 170
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 848
    functionDepth: 5
    functionLinenumber: 848
    functionLinenumberEnd: 1041
    functionName: cfg_postsection_acme
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ha_notice
    - PEM_write_bio_PrivateKey
    - stat
    - get_trash_chunk
    - EVP_PKEY_up_ref
    - snprintf
    - ha_free
    - BIO_free_all
    - read_line_to_trash
    - jws_thumbprint
    - indent_msg
    - my_strndup
    - ssl_gen_EVP_PKEY
    - ckch_store_new
    - base64urldec
    - BIO_new_file
    - EVP_PKEY_free
    - strcasecmp
    - chunk_dup
    - ckch_store_free
    - ssl_sock_load_key_into_ckch
    - ha_alert
    - ha_warning
    - isalnum
    linkageType: ''
    returnType: int
    signature: int cfg_postsection_acme()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_acme_init
      Src: /src/haproxy/src/acme.c:1048,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:1049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1045
    functionDepth: 10
    functionLinenumber: 1045
    functionLinenumberEnd: 1055
    functionName: cfg_precheck_acme
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - ha_alert
    - httpclient_acme_init
    linkageType: ''
    returnType: int
    signature: int cfg_precheck_acme()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:1071,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/acme.c:1077,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:1080,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/acme.c:1089,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:1092,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/acme.c:1098,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1103
    functionName: cfg_postparser_acme
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - task_new_anywhere
    - pat_ref_lookup
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int cfg_postparser_acme()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1114,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1115,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1116,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1117,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1118,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1119,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/acme.c:1120,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1121,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1122,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1123,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1124,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1125,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1126,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1127,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/acme.c:1128,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:1129,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:1131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1107
    functionDepth: 3
    functionLinenumber: 1107
    functionLinenumberEnd: 1134
    functionName: deinit_acme
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - ha_free
    - EVP_PKEY_free
    - free
    - chunk_destroy
    linkageType: ''
    returnType: void
    signature: void deinit_acme()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1178,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1179,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1180,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1181,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1182,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1183,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1189,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1190,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1191,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1192,1
    - Dst: acme_rslv_free
      Src: /src/haproxy/src/acme.c:1193,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:1195,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1199,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1200,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/acme.c:1202,1
    - Dst: X509_REQ_free
      Src: /src/haproxy/src/acme.c:1204,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct acme_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1171
    functionDepth: 3
    functionLinenumber: 1171
    functionLinenumberEnd: 1208
    functionName: acme_ctx_destroy
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - ckch_store_free
    - istfree
    - acme_rslv_free
    - free
    - X509_REQ_free
    linkageType: ''
    returnType: void
    signature: void acme_ctx_destroy(struct acme_ctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: task_wakeup
      Src: /src/haproxy/src/acme.c:1223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1224
    functionName: acme_httpclient_end
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    linkageType: ''
    returnType: void
    signature: void acme_httpclient_end(struct httpclient *hc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/acme.c:1240,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1242,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/acme.c:1246,1
    - Dst: pat_ref_load
      Src: /src/haproxy/src/acme.c:1247,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/acme.c:1248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - map
    - challenge
    - thumbprint
    - errmsg
    argTypes:
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1230
    functionDepth: 5
    functionLinenumber: 1230
    functionLinenumberEnd: 1257
    functionName: acme_add_challenge_map
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - memprintf
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_load
    - HA_RWLOCK_WRLOCK
    - pat_ref_lookup
    linkageType: ''
    returnType: int
    signature: int acme_add_challenge_map(const char *map, const char *challenge,
      const char *thumbprint, char **errmsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/acme.c:1270,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/acme.c:1274,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/acme.c:1275,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/acme.c:1276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - map
    - challenge
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1262
    functionDepth: 5
    functionLinenumber: 1262
    functionLinenumberEnd: 1280
    functionName: acme_del_challenge_map
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - pat_ref_lookup
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_delete
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void acme_del_challenge_map(const char *map, const char *challenge)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acme_del_challenge_map
      Src: /src/haproxy/src/acme.c:1295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct acme_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1285
    functionDepth: 6
    functionLinenumber: 1285
    functionLinenumberEnd: 1299
    functionName: acme_del_acme_ctx_map
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_del_challenge_map
    linkageType: ''
    returnType: void
    signature: void acme_del_acme_ctx_map(const struct acme_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_new_from_proxy
      Src: /src/haproxy/src/acme.c:1305,1
    - Dst: httpclient_req_gen
      Src: /src/haproxy/src/acme.c:1309,1
    - Dst: httpclient_start
      Src: /src/haproxy/src/acme.c:1316,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:1321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 6
    argNames:
    - task
    - ctx
    - url
    - meth
    - hdrs
    - payload
    argTypes:
    - struct task*
    - struct acme_ctx*
    - struct ist
    - enum http_meth_t
    - struct http_hdr*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1301
    functionDepth: 6
    functionLinenumber: 1301
    functionLinenumberEnd: 1326
    functionName: acme_http_req
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - httpclient_destroy
    - httpclient_req_gen
    - httpclient_start
    - httpclient_new_from_proxy
    linkageType: ''
    returnType: int
    signature: int acme_http_req(struct task *task, struct acme_ctx *ctx, struct ist
      url, enum http_meth_t meth, const struct http_hdr *hdrs, struct ist payload)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1343,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/acme.c:1346,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:1347,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/acme.c:1348,1
    - Dst: EVP_Digest
      Src: /src/haproxy/src/acme.c:1350,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/acme.c:1350,1
    - Dst: a2base64url
      Src: /src/haproxy/src/acme.c:1353,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1359,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - thumbprint
    - token
    - output
    argTypes:
    - struct ist
    - struct ist
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1335
    functionDepth: 1
    functionLinenumber: 1335
    functionLinenumberEnd: 1362
    functionName: acme_txt_record
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - chunk_istcat
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_appendf
    - a2base64url
    - EVP_Digest
    - EVP_sha256
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int acme_txt_record(const struct ist thumbprint, const struct
      ist token, struct buffer *output)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1375,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1376,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1377,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1378,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1381,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1385,1
    - Dst: EVP_PKEY_to_pub_jwk
      Src: /src/haproxy/src/acme.c:1386,1
    - Dst: EVP_PKEY_to_jws_alg
      Src: /src/haproxy/src/acme.c:1387,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1390,1
    - Dst: jws_b64_payload
      Src: /src/haproxy/src/acme.c:1394,1
    - Dst: jws_b64_protected
      Src: /src/haproxy/src/acme.c:1395,1
    - Dst: jws_b64_signature
      Src: /src/haproxy/src/acme.c:1396,1
    - Dst: jws_flattened
      Src: /src/haproxy/src/acme.c:1397,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1405,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1406,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1407,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1408,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 7
    argNames:
    - req
    - nonce
    - url
    - pkey
    - kid
    - output
    - errmsg
    argTypes:
    - struct buffer*
    - struct ist
    - struct ist
    - EVP_PKEY*
    - struct ist
    - struct buffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1365
    functionDepth: 5
    functionLinenumber: 1365
    functionLinenumberEnd: 1412
    functionName: acme_jws_payload
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - jws_b64_protected
    - memprintf
    - EVP_PKEY_to_jws_alg
    - jws_flattened
    - free_trash_chunk
    - alloc_trash_chunk
    - jws_b64_payload
    - EVP_PKEY_to_pub_jwk
    - jws_b64_signature
    - isttest
    linkageType: ''
    returnType: int
    signature: int acme_jws_payload(struct buffer *req, struct ist nonce, struct ist
      url, EVP_PKEY *pkey, struct ist kid, struct buffer *output, char **errmsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1422,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1423,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1424,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1425,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1428,1
    - Dst: EVP_PKEY_to_pub_jwk
      Src: /src/haproxy/src/acme.c:1432,1
    - Dst: jws_b64_payload
      Src: /src/haproxy/src/acme.c:1434,1
    - Dst: jws_b64_protected
      Src: /src/haproxy/src/acme.c:1435,1
    - Dst: jws_b64_hmac_signature
      Src: /src/haproxy/src/acme.c:1436,1
    - Dst: jws_flattened
      Src: /src/haproxy/src/acme.c:1437,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1445,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1446,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1447,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1448,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 7
    argNames:
    - url
    - acc_key
    - mac_key
    - alg
    - kid
    - output
    - errmsg
    argTypes:
    - struct ist
    - EVP_PKEY*
    - struct buffer
    - enum jwt_alg
    - char*
    - struct buffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1414
    functionDepth: 5
    functionLinenumber: 1414
    functionLinenumberEnd: 1451
    functionName: acme_jws_eab_payload
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - jws_b64_protected
    - memprintf
    - jws_b64_hmac_signature
    - jws_flattened
    - free_trash_chunk
    - alloc_trash_chunk
    - jws_b64_payload
    - EVP_PKEY_to_pub_jwk
    linkageType: ''
    returnType: int
    signature: int acme_jws_eab_payload(struct ist url, EVP_PKEY *acc_key, struct
      buffer mac_key, enum jwt_alg alg, char *kid, struct buffer *output, char **errmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/acme.c:1468,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1469,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/acme.c:1473,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1474,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/acme.c:1478,1
    - Dst: typeof
      Src: /src/haproxy/src/acme.c:1478,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/acme.c:1481,1
    - Dst: ckch_inst_rebuild
      Src: /src/haproxy/src/acme.c:1484,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acme.c:1489,1
    - Dst: ckch_store_replace
      Src: /src/haproxy/src/acme.c:1493,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:1495,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1498,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1499,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1500,1
    - Dst: sink_find
      Src: /src/haproxy/src/acme.c:1502,1
    - Dst: sink_write
      Src: /src/haproxy/src/acme.c:1504,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/acme.c:1511,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1458
    functionDepth: 5
    functionLinenumber: 1458
    functionLinenumberEnd: 1514
    functionName: acme_update_certificate
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - typeof
    - ckch_inst_rebuild
    - ist
    - list_for_each_entry_from
    - sink_find
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - LIST_APPEND
    - sink_write
    - ckch_store_replace
    - send_log
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int acme_update_certificate(struct task *task, struct acme_ctx *ctx,
      char **errmsg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1528,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1530,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1535,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1536,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1536,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1537,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1538,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1541,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1541,1
    - Dst: __strl2uic
      Src: /src/haproxy/src/acme.c:1542,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1546,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1549,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1551,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1555,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1557,1
    - Dst: b_room
      Src: /src/haproxy/src/acme.c:1569,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1570,1
    - Dst: ssl_sock_load_pem_into_ckch
      Src: /src/haproxy/src/acme.c:1576,1
    - Dst: acme_update_certificate
      Src: /src/haproxy/src/acme.c:1583,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1592,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1593,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:1594,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1516
    functionDepth: 6
    functionLinenumber: 1516
    functionLinenumberEnd: 1598
    functionName: acme_res_certificate
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - __strl2uic
    - isteqi
    - ist
    - mjson_get_string
    - memprintf
    - ssl_sock_load_pem_into_ckch
    - free_trash_chunk
    - alloc_trash_chunk
    - istfree
    - TRACE_DATA
    - b_room
    - istdup
    - httpclient_destroy
    - acme_update_certificate
    - isttest
    linkageType: ''
    returnType: int
    signature: int acme_res_certificate(struct task *task, struct acme_ctx *ctx, char
      **errmsg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1611,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1613,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1618,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1619,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1619,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1620,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1621,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1624,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1624,1
    - Dst: __strl2uic
      Src: /src/haproxy/src/acme.c:1625,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1629,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1632,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1634,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1638,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1640,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1643,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1645,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1649,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1649,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1650,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1651,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1654,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1656,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/acme.c:1660,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1661,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1668,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1669,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:1670,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1600
    functionDepth: 6
    functionLinenumber: 1600
    functionLinenumberEnd: 1674
    functionName: acme_res_chkorder
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - __strl2uic
    - isteqi
    - ist
    - mjson_get_string
    - memprintf
    - ist2
    - free_trash_chunk
    - alloc_trash_chunk
    - istfree
    - TRACE_DATA
    - istdup
    - httpclient_destroy
    - strncasecmp
    - isttest
    linkageType: ''
    returnType: int
    signature: int acme_res_chkorder(struct task *task, struct acme_ctx *ctx, char
      **errmsg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1684,1
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1684,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1691,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1693,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1695,1
    - Dst: i2d_X509_REQ
      Src: /src/haproxy/src/acme.c:1698,1
    - Dst: a2base64url
      Src: /src/haproxy/src/acme.c:1702,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/acme.c:1707,1
    - Dst: acme_jws_payload
      Src: /src/haproxy/src/acme.c:1710,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:1713,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1713,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1719,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/acme.c:1721,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1722,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1723,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1724,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1677
    functionDepth: 7
    functionLinenumber: 1677
    functionLinenumberEnd: 1728
    functionName: acme_req_finalize
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_http_req
    - ist2
    - IST
    - memprintf
    - OPENSSL_free
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_printf
    - i2d_X509_REQ
    - a2base64url
    - acme_jws_payload
    linkageType: ''
    returnType: int
    signature: int acme_req_finalize(struct task *task, struct acme_ctx *ctx, char
      **errmsg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1741,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1743,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1748,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1749,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1749,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1750,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1751,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1754,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1754,1
    - Dst: __strl2uic
      Src: /src/haproxy/src/acme.c:1755,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1759,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1762,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1764,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1768,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1770,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1777,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1778,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:1779,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1730
    functionDepth: 6
    functionLinenumber: 1730
    functionLinenumberEnd: 1783
    functionName: acme_res_finalize
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - __strl2uic
    - isteqi
    - ist
    - mjson_get_string
    - memprintf
    - free_trash_chunk
    - alloc_trash_chunk
    - istfree
    - TRACE_DATA
    - istdup
    - httpclient_destroy
    - isttest
    linkageType: ''
    returnType: int
    signature: int acme_res_finalize(struct task *task, struct acme_ctx *ctx, char
      **errmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1793,1
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1793,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1798,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1800,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/acme.c:1803,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1805,1
    - Dst: acme_jws_payload
      Src: /src/haproxy/src/acme.c:1807,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1810,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:1812,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1812,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1818,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1820,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1821,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - task
    - ctx
    - auth
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - struct acme_auth*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1788
    functionDepth: 7
    functionLinenumber: 1788
    functionLinenumberEnd: 1825
    functionName: acme_req_challenge
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_http_req
    - ist2
    - IST
    - memprintf
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_printf
    - TRACE_DATA
    - acme_jws_payload
    linkageType: ''
    returnType: int
    signature: int acme_req_challenge(struct task *task, struct acme_ctx *ctx, struct
      acme_auth *auth, char **errmsg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1840,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1842,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1847,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1849,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1850,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1850,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1851,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1852,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1855,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1855,1
    - Dst: __strl2uic
      Src: /src/haproxy/src/acme.c:1856,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1860,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1862,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/acme.c:1868,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/acme.c:1868,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1870,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/acme.c:1879,1
    - Dst: mjson_find
      Src: /src/haproxy/src/acme.c:1884,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1886,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1888,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1891,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1893,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1898,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1899,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:1900,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 65
    argCount: 5
    argNames:
    - task
    - ctx
    - auth
    - chk
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - struct acme_auth*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1828
    functionDepth: 6
    functionLinenumber: 1828
    functionLinenumberEnd: 1904
    functionName: acme_res_challenge
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - __strl2uic
    - isteqi
    - ist
    - mjson_get_string
    - memprintf
    - mjson_find
    - free_trash_chunk
    - alloc_trash_chunk
    - istfree
    - TRACE_DATA
    - istdup
    - httpclient_destroy
    - strncasecmp
    - isttest
    linkageType: ''
    returnType: enum acme_ret
    signature: enum acme_ret acme_res_challenge(struct task *task, struct acme_ctx
      *ctx, struct acme_auth *auth, int chk, char **errmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1912,1
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1912,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1917,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1919,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/acme.c:1922,1
    - Dst: acme_jws_payload
      Src: /src/haproxy/src/acme.c:1925,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1928,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:1930,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1930,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1938,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1942,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1946,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1950,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1951,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - task
    - ctx
    - url
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - struct ist
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1907
    functionDepth: 7
    functionLinenumber: 1907
    functionLinenumberEnd: 1954
    functionName: acme_post_as_get
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_http_req
    - ist2
    - IST
    - memprintf
    - free_trash_chunk
    - alloc_trash_chunk
    - TRACE_DATA
    - acme_jws_payload
    - TRACE_USER
    linkageType: ''
    returnType: int
    signature: int acme_post_as_get(struct task *task, struct acme_ctx *ctx, struct
      ist url, char **errmsg)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1969,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1971,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1976,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1977,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1977,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1978,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1979,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1982,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1982,1
    - Dst: __strl2uic
      Src: /src/haproxy/src/acme.c:1983,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1987,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1991,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1993,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1996,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1998,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2003,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2005,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2010,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2012,1
    - Dst: mjson_get_bool
      Src: /src/haproxy/src/acme.c:2017,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2019,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2019,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2021,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2023,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/acme.c:2029,1
    - Dst: snprintf
      Src: /src/haproxy/src/acme.c:2041,1
    - Dst: mjson_find
      Src: /src/haproxy/src/acme.c:2045,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2048,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2050,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/acme.c:2056,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2059,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2061,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2065,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2065,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2066,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2067,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:2071,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2072,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2074,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2078,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2078,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2079,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2080,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:2085,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/acme.c:2094,1
    - Dst: snprintf
      Src: /src/haproxy/src/acme.c:2099,1
    - Dst: mjson_find
      Src: /src/haproxy/src/acme.c:2103,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2107,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2111,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2113,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2119,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2125,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:2130,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:2133,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/acme.c:2139,1
    - Dst: acme_txt_record
      Src: /src/haproxy/src/acme.c:2142,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2142,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2143,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2148,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2149,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2149,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:2152,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2156,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2157,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2158,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2159,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2160,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2163,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2164,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2165,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2168,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2169,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2170,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2172,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2173,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2174,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2175,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2178,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2179,1
    - Dst: sink_find
      Src: /src/haproxy/src/acme.c:2181,1
    - Dst: sink_write
      Src: /src/haproxy/src/acme.c:2183,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:2185,1
    - Dst: acme_add_challenge_map
      Src: /src/haproxy/src/acme.c:2187,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2188,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2193,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2205,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2206,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2207,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 193
    argCount: 4
    argNames:
    - task
    - ctx
    - auth
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - struct acme_auth*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 1956
    functionDepth: 6
    functionLinenumber: 1956
    functionLinenumberEnd: 2211
    functionName: acme_res_auth
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - memprintf
    - mjson_get_bool
    - alloc_trash_chunk
    - chunk_appendf
    - TRACE_DATA
    - get_trash_chunk
    - snprintf
    - __strl2uic
    - ist
    - ist2
    - istfree
    - acme_txt_record
    - sink_find
    - acme_add_challenge_map
    - isteqi
    - mjson_get_string
    - free_trash_chunk
    - sink_write
    - send_log
    - strcasecmp
    - mjson_find
    - istdup
    - httpclient_destroy
    - strncasecmp
    - isttest
    linkageType: ''
    returnType: int
    signature: int acme_res_auth(struct task *task, struct acme_ctx *ctx, struct acme_auth
      *auth, char **errmsg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/src/acme.c:2219,1
    - Dst: IST
      Src: /src/haproxy/src/acme.c:2219,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:2227,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:2229,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/acme.c:2232,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2238,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2242,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2246,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2248,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2249,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:2251,1
    - Dst: acme_jws_payload
      Src: /src/haproxy/src/acme.c:2254,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:2257,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:2258,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2258,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2264,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2266,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2267,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2214
    functionDepth: 7
    functionLinenumber: 2214
    functionLinenumberEnd: 2271
    functionName: acme_req_neworder
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_http_req
    - ist2
    - IST
    - memprintf
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_printf
    - chunk_appendf
    - TRACE_DATA
    - acme_jws_payload
    linkageType: ''
    returnType: int
    signature: int acme_req_neworder(struct task *task, struct acme_ctx *ctx, char
      **errmsg)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:2285,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:2287,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2292,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:2293,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2293,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2294,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2295,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:2298,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2298,1
    - Dst: __strl2uic
      Src: /src/haproxy/src/acme.c:2299,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:2302,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2302,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2303,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2304,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:2307,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2310,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2312,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2315,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2317,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2323,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2326,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2327,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2327,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2328,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2329,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2335,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2336,1
    - Dst: snprintf
      Src: /src/haproxy/src/acme.c:2345,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2346,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2350,1
    - Dst: calloc
      Src: /src/haproxy/src/acme.c:2355,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2356,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2360,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2360,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2361,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:2362,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2363,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2373,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2377,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2378,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2382,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2383,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2383,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2384,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2385,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2392,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2393,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2394,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 109
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2273
    functionDepth: 6
    functionLinenumber: 2273
    functionLinenumberEnd: 2398
    functionName: acme_res_neworder
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - __strl2uic
    - isteqi
    - ist
    - mjson_get_string
    - memprintf
    - ist2
    - free_trash_chunk
    - alloc_trash_chunk
    - istfree
    - calloc
    - TRACE_DATA
    - free
    - istdup
    - httpclient_destroy
    - snprintf
    - isttest
    linkageType: ''
    returnType: int
    signature: int acme_res_neworder(struct task *task, struct acme_ctx *ctx, char
      **errmsg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/src/acme.c:2407,1
    - Dst: IST
      Src: /src/haproxy/src/acme.c:2407,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:2412,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:2414,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:2416,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2420,1
    - Dst: acme_jws_eab_payload
      Src: /src/haproxy/src/acme.c:2422,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2424,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2427,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2428,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2429,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2431,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:2433,1
    - Dst: acme_jws_payload
      Src: /src/haproxy/src/acme.c:2435,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:2438,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2438,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2444,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2446,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2447,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2448,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 4
    argNames:
    - task
    - ctx
    - newaccount
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2401
    functionDepth: 7
    functionLinenumber: 2401
    functionLinenumberEnd: 2451
    functionName: acme_req_account
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_jws_eab_payload
    - acme_http_req
    - ist2
    - IST
    - memprintf
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_appendf
    - TRACE_DATA
    - acme_jws_payload
    linkageType: ''
    returnType: int
    signature: int acme_req_account(struct task *task, struct acme_ctx *ctx, int newaccount,
      char **errmsg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:2464,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:2466,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2471,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:2472,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2472,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2473,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2474,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:2477,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2477,1
    - Dst: __strl2uic
      Src: /src/haproxy/src/acme.c:2478,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:2480,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2480,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2481,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2482,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:2486,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2489,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2491,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:2496,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2501,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2503,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2510,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2511,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2512,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 4
    argNames:
    - task
    - ctx
    - newaccount
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2453
    functionDepth: 6
    functionLinenumber: 2453
    functionLinenumberEnd: 2516
    functionName: acme_res_account
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - __strl2uic
    - isteqi
    - ist
    - mjson_get_string
    - memprintf
    - free_trash_chunk
    - alloc_trash_chunk
    - istfree
    - strcmp
    - TRACE_DATA
    - istdup
    - httpclient_destroy
    - isttest
    linkageType: ''
    returnType: int
    signature: int acme_res_account(struct task *task, struct acme_ctx *ctx, int newaccount,
      char **errmsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2530,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:2534,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2538,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:2539,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2539,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2540,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2541,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2547,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2553,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2557
      start: 2520
    functionDepth: 5
    functionLinenumber: 2520
    functionLinenumberEnd: 2557
    functionName: acme_nonce
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - isteqi
    - memprintf
    - ist
    - istfree
    - TRACE_DATA
    - istdup
    - httpclient_destroy
    - isttest
    linkageType: ''
    returnType: int
    signature: int acme_nonce(struct task *task, struct acme_ctx *ctx, char **errmsg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2570,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:2574,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2576,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2577,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2580,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2580,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2581,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2582,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2586,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2587,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2590,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2590,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2591,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2592,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2595,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2596,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2599,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2599,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2600,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2601,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2605,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2614,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2617,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2618,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2619,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2559
    functionDepth: 6
    functionLinenumber: 2559
    functionLinenumberEnd: 2622
    functionName: acme_directory
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - ist2
    - memprintf
    - mjson_get_string
    - istfree
    - TRACE_DATA
    - istdup
    - httpclient_destroy
    - isttest
    linkageType: ''
    returnType: int
    signature: int acme_directory(struct task *task, struct acme_ctx *ctx, char **errmsg)
  - BBCount: 107
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_USER
      Src: /src/haproxy/src/acme.c:2638,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:2643,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2643,1
    - Dst: acme_directory
      Src: /src/haproxy/src/acme.c:2648,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:2657,1
    - Dst: acme_nonce
      Src: /src/haproxy/src/acme.c:2661,1
    - Dst: acme_req_account
      Src: /src/haproxy/src/acme.c:2671,1
    - Dst: acme_res_account
      Src: /src/haproxy/src/acme.c:2675,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2678,1
    - Dst: acme_req_account
      Src: /src/haproxy/src/acme.c:2687,1
    - Dst: acme_res_account
      Src: /src/haproxy/src/acme.c:2691,1
    - Dst: acme_req_neworder
      Src: /src/haproxy/src/acme.c:2702,1
    - Dst: acme_res_neworder
      Src: /src/haproxy/src/acme.c:2706,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2709,1
    - Dst: acme_post_as_get
      Src: /src/haproxy/src/acme.c:2715,1
    - Dst: acme_res_auth
      Src: /src/haproxy/src/acme.c:2719,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:2723,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:2724,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/acme.c:2761,1
    - Dst: acme_rslv_start
      Src: /src/haproxy/src/acme.c:2763,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/acme.c:2779,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:2787,1
    - Dst: acme_rslv_free
      Src: /src/haproxy/src/acme.c:2794,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:2867,1
    - Dst: tick_add
      Src: /src/haproxy/src/acme.c:2870,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/acme.c:2891,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2892,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:2901,1
    - Dst: tick_add
      Src: /src/haproxy/src/acme.c:2904,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/acme.c:2914,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/acme.c:2920,1
    - Dst: acme_rslv_start
      Src: /src/haproxy/src/acme.c:2922,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/acme.c:2938,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:2950,1
    - Dst: isteq
      Src: /src/haproxy/src/acme.c:2951,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:2954,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:2961,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:2965,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:2967,1
    - Dst: acme_rslv_free
      Src: /src/haproxy/src/acme.c:2972,1
    - Dst: acme_req_challenge
      Src: /src/haproxy/src/acme.c:3001,1
    - Dst: acme_res_challenge
      Src: /src/haproxy/src/acme.c:3005,1
    - Dst: acme_post_as_get
      Src: /src/haproxy/src/acme.c:3033,1
    - Dst: acme_res_challenge
      Src: /src/haproxy/src/acme.c:3037,1
    - Dst: acme_req_finalize
      Src: /src/haproxy/src/acme.c:3052,1
    - Dst: acme_res_finalize
      Src: /src/haproxy/src/acme.c:3056,1
    - Dst: acme_post_as_get
      Src: /src/haproxy/src/acme.c:3068,1
    - Dst: acme_res_chkorder
      Src: /src/haproxy/src/acme.c:3072,1
    - Dst: acme_post_as_get
      Src: /src/haproxy/src/acme.c:3081,1
    - Dst: acme_res_certificate
      Src: /src/haproxy/src/acme.c:3085,1
    - Dst: tick_add
      Src: /src/haproxy/src/acme.c:3115,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:3138,1
    - Dst: tick_add
      Src: /src/haproxy/src/acme.c:3139,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:3142,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:3146,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:3151,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:3152,1
    - Dst: acme_del_acme_ctx_map
      Src: /src/haproxy/src/acme.c:3155,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/acme.c:3156,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/acme.c:3157,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/acme.c:3158,1
    - Dst: acme_ctx_destroy
      Src: /src/haproxy/src/acme.c:3159,1
    - Dst: task_destroy
      Src: /src/haproxy/src/acme.c:3160,1
    CyclomaticComplexity: 185
    EdgeCount: 185
    ICount: 463
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3171
      start: 2630
    functionDepth: 8
    functionLinenumber: 2630
    functionLinenumberEnd: 3171
    functionName: acme_process
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - memprintf
    - TRACE_USER
    - HA_ATOMIC_LOAD
    - HA_RWLOCK_WRUNLOCK
    - acme_post_as_get
    - acme_res_neworder
    - acme_req_challenge
    - acme_ctx_destroy
    - HA_ATOMIC_INC
    - acme_nonce
    - acme_req_account
    - ist
    - acme_res_certificate
    - task_destroy
    - ha_free
    - isteq
    - acme_res_auth
    - tick_add
    - acme_http_req
    - acme_res_challenge
    - ns_to_sec
    - acme_rslv_free
    - acme_directory
    - acme_req_neworder
    - acme_res_account
    - acme_rslv_start
    - acme_req_finalize
    - acme_res_chkorder
    - HA_RWLOCK_WRLOCK
    - send_log
    - strcasecmp
    - ebmb_delete
    - acme_res_finalize
    - acme_del_acme_ctx_map
    - isttest
    linkageType: ''
    returnType: struct task
    signature: struct task *acme_process(struct task *task, void *context, unsigned
      int state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: x509_get_notafter_time_t
      Src: /src/haproxy/src/acme.c:3190,1
    - Dst: x509_get_notbefore_time_t
      Src: /src/haproxy/src/acme.c:3191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct ckch_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3203
      start: 3177
    functionDepth: 1
    functionLinenumber: 3177
    functionLinenumberEnd: 3203
    functionName: acme_schedule_date
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - x509_get_notbefore_time_t
    - x509_get_notafter_time_t
    linkageType: ''
    returnType: time_t
    signature: time_t acme_schedule_date(struct ckch_store *store)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acme_schedule_date
      Src: /src/haproxy/src/acme.c:3217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct ckch_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3223
      start: 3209
    functionDepth: 2
    functionLinenumber: 3209
    functionLinenumberEnd: 3223
    functionName: acme_will_expire
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_schedule_date
    linkageType: ''
    returnType: int
    signature: int acme_will_expire(struct ckch_store *store)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/acme.c:3233,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/acme.c:3236,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/acme.c:3238,1
    - Dst: acme_will_expire
      Src: /src/haproxy/src/acme.c:3242,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/acme.c:3243,1
    - Dst: acme_start_task
      Src: /src/haproxy/src/acme.c:3244,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:3245,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:3246,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/acme.c:3250,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/acme.c:3253,1
    - Dst: tick_add
      Src: /src/haproxy/src/acme.c:3256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3258
      start: 3227
    functionDepth: 3
    functionLinenumber: 3227
    functionLinenumberEnd: 3258
    functionName: acme_scheduler
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - acme_start_task
    - ha_free
    - HA_SPIN_UNLOCK
    - ebmb_entry
    - ebmb_next
    - acme_will_expire
    - ebmb_first
    - send_log
    - tick_add
    - TRACE_USER
    linkageType: ''
    returnType: struct task
    signature: struct task *acme_scheduler(struct task *task, void *context, unsigned
      int state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/acme.c:3268,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:3273,1
    - Dst: X509_REQ_new
      Src: /src/haproxy/src/acme.c:3276,1
    - Dst: X509_REQ_set_pubkey
      Src: /src/haproxy/src/acme.c:3279,1
    - Dst: X509_NAME_new
      Src: /src/haproxy/src/acme.c:3282,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/haproxy/src/acme.c:3286,1
    - Dst: X509_REQ_set_subject_name
      Src: /src/haproxy/src/acme.c:3290,1
    - Dst: sk_X509_EXTENSION_new_null
      Src: /src/haproxy/src/acme.c:3294,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:3298,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:3301,1
    - Dst: my_strndup
      Src: /src/haproxy/src/acme.c:3303,1
    - Dst: X509V3_EXT_conf_nid
      Src: /src/haproxy/src/acme.c:3306,1
    - Dst: sk_X509_EXTENSION_push
      Src: /src/haproxy/src/acme.c:3309,1
    - Dst: X509_REQ_add_extensions
      Src: /src/haproxy/src/acme.c:3314,1
    - Dst: X509_REQ_sign
      Src: /src/haproxy/src/acme.c:3317,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/acme.c:3317,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/haproxy/src/acme.c:3320,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/acme.c:3321,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:3322,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:3323,1
    - Dst: X509_EXTENSION_free
      Src: /src/haproxy/src/acme.c:3328,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/haproxy/src/acme.c:3329,1
    - Dst: X509_REQ_free
      Src: /src/haproxy/src/acme.c:3330,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/acme.c:3331,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:3332,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:3333,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 59
    argCount: 3
    argNames:
    - pkey
    - san
    - ips
    argTypes:
    - EVP_PKEY*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 3263
    functionDepth: 3
    functionLinenumber: 3263
    functionLinenumberEnd: 3336
    functionName: acme_x509_req
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - alloc_trash_chunk
    - chunk_appendf
    - X509V3_EXT_conf_nid
    - free
    - sk_X509_EXTENSION_new_null
    - X509_EXTENSION_free
    - STACK_OF
    - sk_X509_EXTENSION_pop_free
    - sk_X509_EXTENSION_push
    - X509_REQ_set_pubkey
    - EVP_sha256
    - my_strndup
    - X509_REQ_set_subject_name
    - X509_REQ_new
    - free_trash_chunk
    - X509_REQ_sign
    - X509_NAME_free
    - X509_REQ_add_extensions
    - X509_NAME_new
    - X509_NAME_add_entry_by_txt
    - X509_REQ_free
    linkageType: ''
    returnType: X509_REQ
    signature: X509_REQ *acme_x509_req(EVP_PKEY *pkey, char **san, char **ips)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/haproxy/src/acme.c:3347,1
    - Dst: ssl_gen_x509
      Src: /src/haproxy/src/acme.c:3354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3344
    functionDepth: 1
    functionLinenumber: 3344
    functionLinenumberEnd: 3357
    functionName: acme_gen_tmp_x509
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - ssl_gen_x509
    linkageType: ''
    returnType: X509
    signature: X509 *acme_gen_tmp_x509()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_up_ref
      Src: /src/haproxy/src/acme.c:3368,1
    - Dst: ssl_gen_EVP_PKEY
      Src: /src/haproxy/src/acme.c:3372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3375
      start: 3365
    functionDepth: 1
    functionLinenumber: 3365
    functionLinenumberEnd: 3375
    functionName: acme_gen_tmp_pkey
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_up_ref
    - ssl_gen_EVP_PKEY
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *acme_gen_tmp_pkey()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3388,1
    - Dst: get_acme_cfg
      Src: /src/haproxy/src/acme.c:3392,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3394,1
    - Dst: ckchs_dup
      Src: /src/haproxy/src/acme.c:3398,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3400,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/acme.c:3404,1
    - Dst: calloc
      Src: /src/haproxy/src/acme.c:3411,1
    - Dst: strlen
      Src: /src/haproxy/src/acme.c:3411,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3413,1
    - Dst: memcpy
      Src: /src/haproxy/src/acme.c:3417,1
    - Dst: strlen
      Src: /src/haproxy/src/acme.c:3417,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/acme.c:3419,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/acme.c:3420,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3421,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/acme.c:3422,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/acme.c:3425,1
    - Dst: ssl_gen_EVP_PKEY
      Src: /src/haproxy/src/acme.c:3431,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/acme.c:3434,1
    - Dst: acme_x509_req
      Src: /src/haproxy/src/acme.c:3439,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3441,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:3450,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/acme.c:3452,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/acme.c:3453,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/acme.c:3458,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/acme.c:3459,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/acme.c:3461,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/acme.c:3462,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/acme.c:3463,1
    - Dst: acme_ctx_destroy
      Src: /src/haproxy/src/acme.c:3464,1
    - Dst: task_destroy
      Src: /src/haproxy/src/acme.c:3467,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3468,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 2
    argNames:
    - store
    - errmsg
    argTypes:
    - struct ckch_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3379
    functionDepth: 5
    functionLinenumber: 3379
    functionLinenumberEnd: 3470
    functionName: acme_start_task
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 1
    functionsReached:
    - memprintf
    - task_new_anywhere
    - HA_RWLOCK_WRUNLOCK
    - ckchs_dup
    - acme_ctx_destroy
    - task_destroy
    - memcpy
    - ssl_gen_EVP_PKEY
    - calloc
    - HA_RWLOCK_WRLOCK
    - send_log
    - EVP_PKEY_free
    - ebmb_delete
    - ckch_store_free
    - task_wakeup
    - ebst_insert
    - strlen
    - get_acme_cfg
    - acme_x509_req
    - TRACE_USER
    linkageType: ''
    returnType: int
    signature: int acme_start_task(struct ckch_store *store, char **errmsg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/acme.c:3477,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3481,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/acme.c:3485,1
    - Dst: cli_err
      Src: /src/haproxy/src/acme.c:3486,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/acme.c:3488,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3489,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3494,1
    - Dst: acme_start_task
      Src: /src/haproxy/src/acme.c:3498,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/acme.c:3501,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/acme.c:3504,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/acme.c:3505,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3506
      start: 3472
    functionDepth: 6
    functionLinenumber: 3472
    functionLinenumberEnd: 3506
    functionName: cli_acme_renew_parse
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - acme_start_task
    - memprintf
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_acme_renew_parse(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/acme.c:3519,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3523,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/acme.c:3530,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/acme.c:3531,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/acme.c:3533,1
    - Dst: strncmp
      Src: /src/haproxy/src/acme.c:3537,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3542,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/acme.c:3550,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3553,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/acme.c:3558,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/acme.c:3559,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3559,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/acme.c:3561,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:3561,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/acme.c:3566,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3567
      start: 3508
    functionDepth: 5
    functionLinenumber: 3508
    functionLinenumberEnd: 3567
    functionName: cli_acme_chall_ready_parse
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cli_dynmsg
    - HA_RWLOCK_WRUNLOCK
    - task_wakeup
    - ebst_lookup
    - ebmb_entry
    - strncmp
    - HA_RWLOCK_WRLOCK
    - cli_has_level
    - cli_dynerr
    linkageType: ''
    returnType: int
    signature: int cli_acme_chall_ready_parse(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/acme.c:3574,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/acme.c:3577,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:3579,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/acme.c:3580,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/acme.c:3584,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/acme.c:3588,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/acme.c:3590,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/acme.c:3600,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/acme.c:3601,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/acme.c:3602,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:3612,1
    - Dst: x509_get_notafter_time_t
      Src: /src/haproxy/src/acme.c:3614,1
    - Dst: strftime
      Src: /src/haproxy/src/acme.c:3618,1
    - Dst: gmtime
      Src: /src/haproxy/src/acme.c:3618,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:3619,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:3620,1
    - Dst: acme_schedule_date
      Src: /src/haproxy/src/acme.c:3625,1
    - Dst: strftime
      Src: /src/haproxy/src/acme.c:3628,1
    - Dst: gmtime
      Src: /src/haproxy/src/acme.c:3628,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:3629,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:3631,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:3633,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/acme.c:3635,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/acme.c:3638,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/acme.c:3641,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3643
      start: 3569
    functionDepth: 2
    functionLinenumber: 3569
    functionLinenumberEnd: 3643
    functionName: cli_acme_status_io_handler
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - HA_RWLOCK_RDLOCK
    - HA_RWLOCK_RDUNLOCK
    - strftime
    - ebst_lookup
    - chunk_appendf
    - x509_get_notafter_time_t
    - acme_schedule_date
    - ebmb_entry
    - HA_SPIN_UNLOCK
    - ebmb_next
    - ebmb_first
    - chunk_reset
    - gmtime
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_acme_status_io_handler(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/acme.c:3648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3652
      start: 3645
    functionDepth: 2
    functionLinenumber: 3645
    functionLinenumberEnd: 3652
    functionName: cli_acme_parse_status
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    linkageType: ''
    returnType: int
    signature: int cli_acme_parse_status(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hap_register_feature
      Src: /src/haproxy/src/acme.c:3667,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/acme.c:3668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3669
      start: 3665
    functionDepth: 1
    functionLinenumber: 3665
    functionLinenumberEnd: 3669
    functionName: __acme_init
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - hap_register_feature
    - HA_RWLOCK_INIT
    linkageType: ''
    returnType: void
    signature: void __acme_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:39,1
    - Dst: c_adv
      Src: /src/haproxy/src/channel.c:40,1
    - Dst: ci_data
      Src: /src/haproxy/src/channel.c:40,1
    - Dst: MIN
      Src: /src/haproxy/src/channel.c:47,1
    - Dst: MIN
      Src: /src/haproxy/src/channel.c:50,1
    - Dst: ci_data
      Src: /src/haproxy/src/channel.c:50,1
    - Dst: c_adv
      Src: /src/haproxy/src/channel.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - chn
    - bytes
    argTypes:
    - struct channel*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 68
    functionName: __channel_forward
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - c_adv
    - MIN
    - ci_data
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long __channel_forward(struct channel *chn, unsigned
      long long bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c_size
      Src: /src/haproxy/src/channel.c:84,1
    - Dst: c_realign_if_empty
      Src: /src/haproxy/src/channel.c:93,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/channel.c:94,1
    - Dst: memcpy
      Src: /src/haproxy/src/channel.c:98,1
    - Dst: co_tail
      Src: /src/haproxy/src/channel.c:98,1
    - Dst: b_add
      Src: /src/haproxy/src/channel.c:99,1
    - Dst: c_adv
      Src: /src/haproxy/src/channel.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - chn
    - msg
    - len
    argTypes:
    - struct channel*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: co_inject
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 2
    functionsReached:
    - c_realign_if_empty
    - memcpy
    - c_size
    - b_add
    - co_tail
    - b_contig_space
    - c_adv
    linkageType: ''
    returnType: int
    signature: int co_inject(struct channel *chn, const char *msg, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:112,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/channel.c:112,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/channel.c:115,1
    - Dst: ci_tail
      Src: /src/haproxy/src/channel.c:118,1
    - Dst: b_add
      Src: /src/haproxy/src/channel.c:120,1
    - Dst: c_adv
      Src: /src/haproxy/src/channel.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - chn
    - c
    argTypes:
    - struct channel*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 130
    functionName: ci_putchr
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - channel_may_recv
    - b_add
    - ci_tail
    - channel_input_closed
    - c_adv
    linkageType: ''
    returnType: int
    signature: int ci_putchr(struct channel *chn, char c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:144,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/channel.c:144,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/channel.c:150,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:151,1
    - Dst: c_data
      Src: /src/haproxy/src/channel.c:151,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:163,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/channel.c:167,1
    - Dst: memcpy
      Src: /src/haproxy/src/channel.c:168,1
    - Dst: ci_tail
      Src: /src/haproxy/src/channel.c:168,1
    - Dst: MIN
      Src: /src/haproxy/src/channel.c:168,1
    - Dst: memcpy
      Src: /src/haproxy/src/channel.c:170,1
    - Dst: c_orig
      Src: /src/haproxy/src/channel.c:170,1
    - Dst: b_add
      Src: /src/haproxy/src/channel.c:172,1
    - Dst: channel_add_input
      Src: /src/haproxy/src/channel.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - chn
    - blk
    - len
    argTypes:
    - struct channel*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 175
    functionName: ci_putblk
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_contig_space
    - memcpy
    - channel_add_input
    - channel_recv_limit
    - channel_input_closed
    - ci_tail
    - c_orig
    - b_add
    - MIN
    - c_data
    linkageType: ''
    returnType: int
    signature: int ci_putblk(struct channel *chn, const char *blk, int len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:207,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:207,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:207,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:208,1
    - Dst: co_head
      Src: /src/haproxy/src/channel.c:213,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:215,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:216,1
    - Dst: memset
      Src: /src/haproxy/src/channel.c:221,1
    - Dst: b_next
      Src: /src/haproxy/src/channel.c:247,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:251,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/channel.c:251,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:253,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 5
    argNames:
    - chn
    - str
    - len
    - delim
    - escape
    argTypes:
    - struct channel*
    - char*
    - int
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 259
    functionName: co_getdelim
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_next
    - memset
    - co_data
    - channel_may_recv
    - co_head
    - chn_cons
    linkageType: ''
    returnType: int
    signature: int co_getdelim(const struct channel *chn, char *str, int len, const
      char *delim, char escape)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:280,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:280,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:280,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:281,1
    - Dst: co_head
      Src: /src/haproxy/src/channel.c:286,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:288,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:289,1
    - Dst: b_next
      Src: /src/haproxy/src/channel.c:299,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:302,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/channel.c:302,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:304,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 4
    argNames:
    - chn
    - str
    - len
    - sep
    argTypes:
    - struct channel*
    - char*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 310
    functionName: co_getword
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_next
    - co_data
    - channel_may_recv
    - co_head
    - chn_cons
    linkageType: ''
    returnType: int
    signature: int co_getword(const struct channel *chn, char *str, int len, char
      sep)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:331,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:331,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:331,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:332,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:337,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:338,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/channel.c:345,1
    - Dst: MIN
      Src: /src/haproxy/src/channel.c:346,1
    - Dst: b_peek
      Src: /src/haproxy/src/channel.c:347,1
    - Dst: memchr
      Src: /src/haproxy/src/channel.c:348,1
    - Dst: memcpy
      Src: /src/haproxy/src/channel.c:353,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:363,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/channel.c:363,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:365,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 3
    argNames:
    - chn
    - str
    - len
    argTypes:
    - struct channel*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 371
    functionName: co_getline
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_peek
    - memcpy
    - co_data
    - memchr
    - channel_may_recv
    - b_contig_data
    - MIN
    - chn_cons
    linkageType: ''
    returnType: int
    signature: int co_getline(const struct channel *chn, char *str, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:383,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:386,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:386,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:387,1
    - Dst: co_head
      Src: /src/haproxy/src/channel.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - chn
    - c
    argTypes:
    - struct channel*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 394
    functionName: co_getchar
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - co_data
    - chn_cons
    - co_head
    linkageType: ''
    returnType: int
    signature: int co_getchar(const struct channel *chn, char *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:406,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:409,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:409,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:410,1
    - Dst: b_getblk
      Src: /src/haproxy/src/channel.c:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - chn
    - blk
    - len
    - offset
    argTypes:
    - struct channel*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 416
    functionName: co_getblk
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - co_data
    - chn_cons
    - b_getblk
    linkageType: ''
    returnType: int
    signature: int co_getblk(const struct channel *chn, char *blk, int len, int offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:428,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:428,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:429,1
    - Dst: b_getblk_nc
      Src: /src/haproxy/src/channel.c:434,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - chn
    - blk1
    - len1
    - blk2
    - len2
    argTypes:
    - struct channel*
    - char**
    - size_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: co_getblk_nc
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - co_data
    - chn_cons
    - b_getblk_nc
    linkageType: ''
    returnType: int
    signature: int co_getblk_nc(const struct channel *chn, const char **blk1, size_t
      *len1, const char **blk2, size_t *len2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: co_getblk_nc
      Src: /src/haproxy/src/channel.c:453,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:454,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:471,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 5
    argNames:
    - chn
    - blk1
    - len1
    - blk2
    - len2
    argTypes:
    - struct channel*
    - char**
    - size_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 481
    functionName: co_getline_nc
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - co_getblk_nc
    - chn_cons
    linkageType: ''
    returnType: int
    signature: "int co_getline_nc(const struct channel *chn,\n                  const
      char **blk1, size_t *len1,\n                  const char **blk2, size_t *len2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:494,1
    - Dst: ci_data
      Src: /src/haproxy/src/channel.c:494,1
    - Dst: chn_prod
      Src: /src/haproxy/src/channel.c:495,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:500,1
    - Dst: ci_head
      Src: /src/haproxy/src/channel.c:500,1
    - Dst: ci_data
      Src: /src/haproxy/src/channel.c:500,1
    - Dst: c_wrap
      Src: /src/haproxy/src/channel.c:500,1
    - Dst: ci_head
      Src: /src/haproxy/src/channel.c:501,1
    - Dst: c_wrap
      Src: /src/haproxy/src/channel.c:502,1
    - Dst: ci_head
      Src: /src/haproxy/src/channel.c:502,1
    - Dst: c_orig
      Src: /src/haproxy/src/channel.c:503,1
    - Dst: ci_data
      Src: /src/haproxy/src/channel.c:504,1
    - Dst: ci_head
      Src: /src/haproxy/src/channel.c:508,1
    - Dst: ci_data
      Src: /src/haproxy/src/channel.c:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - chn
    - blk1
    - len1
    - blk2
    - len2
    argTypes:
    - struct channel*
    - char**
    - size_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 511
    functionName: ci_getblk_nc
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ci_head
    - ci_data
    - chn_prod
    - c_wrap
    - c_orig
    linkageType: ''
    returnType: int
    signature: "int ci_getblk_nc(const struct channel *chn,\n                 char
      **blk1, size_t *len1,\n                 char **blk2, size_t *len2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ci_getblk_nc
      Src: /src/haproxy/src/channel.c:529,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:530,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:547,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 5
    argNames:
    - chn
    - blk1
    - len1
    - blk2
    - len2
    argTypes:
    - struct channel*
    - char**
    - size_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 557
    functionName: ci_getline_nc
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - chn_cons
    - ci_getblk_nc
    linkageType: ''
    returnType: int
    signature: "int ci_getline_nc(const struct channel *chn,\n                  char
      **blk1, size_t *len1,\n                  char **blk2, size_t *len2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c_ptr
      Src: /src/haproxy/src/channel.c:568,1
    - Dst: __b_tail
      Src: /src/haproxy/src/channel.c:570,1
    - Dst: b_wrap
      Src: /src/haproxy/src/channel.c:570,1
    - Dst: b_data
      Src: /src/haproxy/src/channel.c:573,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:574,1
    - Dst: b_head
      Src: /src/haproxy/src/channel.c:574,1
    - Dst: b_head
      Src: /src/haproxy/src/channel.c:575,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:575,1
    - Dst: memmove
      Src: /src/haproxy/src/channel.c:579,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:579,1
    - Dst: memcpy
      Src: /src/haproxy/src/channel.c:582,1
    - Dst: b_add
      Src: /src/haproxy/src/channel.c:584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - c
    - pos
    - str
    - len
    argTypes:
    - struct channel*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 586
    functionName: ci_insert
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 2
    functionsReached:
    - __b_tail
    - b_head
    - memmove
    - memcpy
    - b_tail
    - b_add
    - b_data
    - b_wrap
    - c_ptr
    linkageType: ''
    returnType: int
    signature: int ci_insert(struct channel *c, int pos, const char *str, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c_ptr
      Src: /src/haproxy/src/channel.c:599,1
    - Dst: __b_tail
      Src: /src/haproxy/src/channel.c:604,1
    - Dst: b_wrap
      Src: /src/haproxy/src/channel.c:604,1
    - Dst: b_data
      Src: /src/haproxy/src/channel.c:607,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:608,1
    - Dst: b_head
      Src: /src/haproxy/src/channel.c:608,1
    - Dst: b_head
      Src: /src/haproxy/src/channel.c:609,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:609,1
    - Dst: memmove
      Src: /src/haproxy/src/channel.c:613,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:613,1
    - Dst: memcpy
      Src: /src/haproxy/src/channel.c:616,1
    - Dst: b_add
      Src: /src/haproxy/src/channel.c:620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - c
    - pos
    - str
    - len
    argTypes:
    - struct channel*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 622
    functionName: ci_insert_line2
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - __b_tail
    - b_head
    - memmove
    - memcpy
    - b_tail
    - b_add
    - b_data
    - b_wrap
    - c_ptr
    linkageType: ''
    returnType: int
    signature: int ci_insert_line2(struct channel *c, int pos, const char *str, int
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_loss.c:23,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_loss.c:24,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_loss.c:36,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_loss.c:47,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_loss.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - ql
    - rtt
    - ack_delay
    - qc
    argTypes:
    - struct quic_loss*
    - unsigned int
    - unsigned int
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 49
    functionName: quic_loss_srtt_update
    functionSourceFile: /src/haproxy/src/quic_loss.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_ENTER
    - TRACE_LEAVE
    - QUIC_MIN
    linkageType: ''
    returnType: void
    signature: "void quic_loss_srtt_update(struct quic_loss *ql,\n                           unsigned
      int rtt, unsigned int ack_delay,\n                           struct quic_conn
      *qc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_loss.c:59,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_loss.c:61,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_loss.c:61,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/quic_loss.c:62,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_loss.c:65,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_loss.c:66,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/quic_loss.c:67,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/quic_loss.c:70,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_loss.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 76
    functionName: quic_loss_pktns
    functionSourceFile: /src/haproxy/src/quic_loss.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - LIST_NEXT
    - TRACE_LEAVE
    - BUG_ON
    - tick_is_lt
    - TRACE_ENTER
    - LIST_ISEMPTY
    - tick_isset
    linkageType: ''
    returnType: struct quic_pktns
    signature: struct quic_pktns *quic_loss_pktns(struct quic_conn *qc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_loss.c:90,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_loss.c:92,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_loss.c:92,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/src/quic_loss.c:95,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/quic_loss.c:111,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_loss.c:119,1
    - Dst: tick_add
      Src: /src/haproxy/src/quic_loss.c:126,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_loss.c:127,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/quic_loss.c:127,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_loss.c:132,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/quic_loss.c:135,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_loss.c:141,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_loss.c:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - qc
    - handshake_confirmed
    - pto
    argTypes:
    - struct quic_conn*
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 145
    functionName: quic_pto_pktns
    functionSourceFile: /src/haproxy/src/quic_loss.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - LIST_NEXT
    - TRACE_STATE
    - BUG_ON
    - tick_is_lt
    - TRACE_LEAVE
    - TRACE_ENTER
    - QUIC_MAX
    - LIST_ISEMPTY
    - tick_isset
    - tick_add
    linkageType: ''
    returnType: struct quic_pktns
    signature: "struct quic_pktns *quic_pto_pktns(struct quic_conn *qc,\n                                  int
      handshake_confirmed,\n                                  unsigned int *pto)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_loss.c:165,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_loss.c:166,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_loss.c:169,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/src/quic_loss.c:173,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/src/quic_loss.c:174,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/quic_loss.c:174,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_loss.c:177,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_loss.c:196,1
    - Dst: QUIC_TUNE_FB_GET
      Src: /src/haproxy/src/quic_loss.c:197,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_loss.c:206,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_loss.c:208,1
    - Dst: tick_add
      Src: /src/haproxy/src/quic_loss.c:213,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/quic_loss.c:219,1
    - Dst: struct quic_cc*::algo::on_pkt_lost
      Src: /src/haproxy/src/quic_loss.c:225,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_loss.c:226,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_loss.c:227,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_loss.c:233,1
    - Dst: tick_first
      Src: /src/haproxy/src/quic_loss.c:234,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_loss.c:242,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_loss.c:243,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - pktns
    - qc
    - lost_pkts
    - bytes_lost
    argTypes:
    - struct quic_pktns*
    - struct quic_conn*
    - struct list*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 244
    functionName: qc_packet_loss_lookup
    functionSourceFile: /src/haproxy/src/quic_loss.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - eb64_entry
    - QUIC_TUNE_FB_GET
    - eb_is_empty
    - eb64_next
    - eb64_delete
    - TRACE_LEAVE
    - MS_TO_TICKS
    - TRACE_ENTER
    - eb64_first
    - tick_is_le
    - QUIC_MAX
    - LIST_APPEND
    - tick_first
    - tick_isset
    - struct quic_cc*::algo::on_pkt_lost
    - tick_add
    linkageType: ''
    returnType: void
    signature: "void qc_packet_loss_lookup(struct quic_pktns *pktns, struct quic_conn
      *qc,\n                           struct list *lost_pkts, uint32_t *bytes_lost)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_loss.c:260,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_loss.c:262,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/quic_loss.c:269,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_loss.c:271,1
    - Dst: qc_handle_frms_of_lost_pkt
      Src: /src/haproxy/src/quic_loss.c:279,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/quic_loss.c:281,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_loss.c:287,1
    - Dst: quic_cc_event
      Src: /src/haproxy/src/quic_loss.c:301,1
    - Dst: struct quic_cc*::algo::congestion_event
      Src: /src/haproxy/src/quic_loss.c:303,1
    - Dst: quic_loss_persistent_congestion
      Src: /src/haproxy/src/quic_loss.c:313,1
    - Dst: struct quic_conn*::path::cc::algo::slow_start
      Src: /src/haproxy/src/quic_loss.c:316,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_loss.c:320,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_loss.c:322,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_loss.c:325,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - qc
    - pktns
    - pkts
    - now_us
    argTypes:
    - struct quic_conn*
    - struct quic_pktns*
    - struct list*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 327
    functionName: qc_release_lost_pkts
    functionSourceFile: /src/haproxy/src/quic_loss.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - struct quic_cc*::algo::congestion_event
    - TRACE_LEAVE
    - TRACE_ENTER
    - quic_tx_packet_refdec
    - quic_cc_event
    - qc_handle_frms_of_lost_pkt
    - LIST_ISEMPTY
    - LIST_HEAD_INIT
    - struct quic_conn*::path::cc::algo::slow_start
    - quic_loss_persistent_congestion
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: "int qc_release_lost_pkts(struct quic_conn *qc, struct quic_pktns *pktns,\n
      \                        struct list *pkts, uint64_t now_us)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_loss.c:271,1
    - Dst: qc_handle_frms_of_lost_pkt
      Src: /src/haproxy/src/quic_loss.c:279,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/quic_loss.c:281,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_loss.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 290
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_loss.c
    functionUses: 46
    functionsReached:
    - LIST_DELETE
    - qc_handle_frms_of_lost_pkt
    - quic_tx_packet_refdec
    - LIST_HEAD_INIT
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(pkt, tmp, pkts, list)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: container_of_safe
      Src: /src/haproxy/src/log.c:121,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/log.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - orig
    argTypes:
    - enum log_orig_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 129
    functionName: log_orig_to_str
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - container_of_safe
    - eb32_lookup
    linkageType: ''
    returnType: char
    signature: char *log_orig_to_str(enum log_orig_id orig)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - orig
    - px
    argTypes:
    - enum log_orig_id
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: log_orig_proxy
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int log_orig_proxy(enum log_orig_id orig, struct proxy *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 376
    functionName: logformat_str_isdefault
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int logformat_str_isdefault(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: logformat_str_isdefault
      Src: /src/haproxy/src/log.c:381,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 383
    functionName: logformat_str_free
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - ha_free
    - logformat_str_isdefault
    linkageType: ''
    returnType: void
    signature: void logformat_str_free(char **str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: logformat_str_isdefault
      Src: /src/haproxy/src/log.c:390,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 393
    functionName: logformat_str_dup
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - logformat_str_isdefault
    - strdup
    linkageType: ''
    returnType: char
    signature: char *logformat_str_dup(char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - node
    - curproxy
    argTypes:
    - struct logformat_node*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 448
    functionName: prepare_addrsource
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int prepare_addrsource(struct logformat_node *node, struct proxy *curproxy)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:463,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:485,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 3
    argNames:
    - args
    - node
    - err
    argTypes:
    - char*
    - struct logformat_node*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 455
    functionDepth: 5
    functionLinenumber: 455
    functionLinenumberEnd: 508
    functionName: parse_logformat_node_args
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_logformat_node_args(char *args, struct logformat_node *node,
      char **err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/log.c:526,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:527,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:528,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:530,1
    - Dst: my_strndup
      Src: /src/haproxy/src/log.c:537,1
    - Dst: my_strndup
      Src: /src/haproxy/src/log.c:540,1
    - Dst: parse_logformat_node_args
      Src: /src/haproxy/src/log.c:541,1
    - Dst: free_logformat_node
      Src: /src/haproxy/src/log.c:561,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:563,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:571,1
    - Dst: free_logformat_node
      Src: /src/haproxy/src/log.c:575,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 10
    argNames:
    - arg
    - arg_len
    - name
    - name_len
    - typecast
    - alias
    - alias_len
    - lf_expr
    - defoptions
    - err
    argTypes:
    - char*
    - int
    - char*
    - int
    - int
    - char*
    - int
    - struct lf_expr*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 517
    functionDepth: 6
    functionLinenumber: 517
    functionLinenumberEnd: 577
    functionName: parse_logformat_alias
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memprintf
    - my_strndup
    - calloc
    - free_logformat_node
    - parse_logformat_node_args
    - LIST_APPEND
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int parse_logformat_alias(char *arg, int arg_len, char *name, int
      name_len, int typecast,\n                                 char *alias, int alias_len,
      struct lf_expr *lf_expr,\n                                 int *defoptions,
      char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/log.c:596,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:597,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:598,1
    - Dst: free
      Src: /src/haproxy/src/log.c:599,1
    - Dst: free
      Src: /src/haproxy/src/log.c:600,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:601,1
    - Dst: strncpy
      Src: /src/haproxy/src/log.c:604,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:608,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:610,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:612,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:616,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - start
    - end
    - type
    - lf_expr
    - err
    argTypes:
    - char*
    - char*
    - int
    - struct lf_expr*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 590
    functionDepth: 5
    functionLinenumber: 590
    functionLinenumberEnd: 619
    functionName: add_to_logformat_list
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - strncpy
    - memprintf
    - calloc
    - free
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int add_to_logformat_list(char *start, char *end, int type, struct
      lf_expr *lf_expr, char **err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/log.c:643,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:646,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:650,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/log.c:652,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:653,1
    - Dst: my_strndup
      Src: /src/haproxy/src/log.c:657,1
    - Dst: my_strndup
      Src: /src/haproxy/src/log.c:664,1
    - Dst: parse_logformat_node_args
      Src: /src/haproxy/src/log.c:665,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:675,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/log.c:676,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:681,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:685,1
    - Dst: free_logformat_node
      Src: /src/haproxy/src/log.c:689,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 12
    argNames:
    - text
    - name
    - name_len
    - typecast
    - arg
    - arg_len
    - lf_expr
    - al
    - options
    - cap
    - err
    - endptr
    argTypes:
    - char*
    - char*
    - int
    - int
    - char*
    - int
    - struct lf_expr*
    - struct arg_list*
    - int
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 629
    functionDepth: 6
    functionLinenumber: 629
    functionLinenumberEnd: 691
    functionName: add_sample_to_logformat_list
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memprintf
    - my_strndup
    - calloc
    - free_logformat_node
    - parse_logformat_node_args
    - sample_src_names
    - LIST_APPEND
    - ha_warning
    - sample_parse_expr
    - release_sample_expr
    linkageType: ''
    returnType: int
    signature: "int add_sample_to_logformat_list(char *text, char *name, int name_len,
      int typecast,\n                                        char *arg, int arg_len,
      struct lf_expr *lf_expr,\n                                        struct arg_list
      *al, int options, int cap, char **err, char **endptr)"
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:727,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:732,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:734,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/log.c:743,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:787,1
    - Dst: type_to_smp
      Src: /src/haproxy/src/log.c:792,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:795,1
    - Dst: isalnum
      Src: /src/haproxy/src/log.c:801,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:802,1
    - Dst: isalpha
      Src: /src/haproxy/src/log.c:819,1
    - Dst: isdigit
      Src: /src/haproxy/src/log.c:825,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:830,1
    - Dst: isalnum
      Src: /src/haproxy/src/log.c:853,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:858,1
    - Dst: add_sample_to_logformat_list
      Src: /src/haproxy/src/log.c:867,1
    - Dst: isprint
      Src: /src/haproxy/src/log.c:878,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:879,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:881,1
    - Dst: isalnum
      Src: /src/haproxy/src/log.c:888,1
    - Dst: parse_logformat_alias
      Src: /src/haproxy/src/log.c:913,1
    - Dst: add_to_logformat_list
      Src: /src/haproxy/src/log.c:918,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:927,1
    - Dst: logformat_str_free
      Src: /src/haproxy/src/log.c:930,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:931,1
    - Dst: logformat_str_free
      Src: /src/haproxy/src/log.c:935,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:936,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 182
    argCount: 5
    argNames:
    - lf_expr
    - al
    - options
    - cap
    - err
    argTypes:
    - struct lf_expr*
    - struct arg_list*
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 711
    functionDepth: 7
    functionLinenumber: 711
    functionLinenumberEnd: 938
    functionName: lf_expr_compile
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memprintf
    - add_sample_to_logformat_list
    - add_to_logformat_list
    - logformat_str_free
    - BUG_ON
    - isprint
    - ha_free
    - strcmp
    - parse_logformat_alias
    - type_to_smp
    - isdigit
    - isalpha
    - LIST_INIT
    - isalnum
    - strdup
    linkageType: ''
    returnType: int
    signature: "int lf_expr_compile(struct lf_expr *lf_expr,\n                    struct
      arg_list *al, int options, int cap, char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:960,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:962,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:964,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:972,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/log.c:976,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:986,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/log.c:993,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:999,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 6
    argNames:
    - fmt
    - curproxy
    - lf_expr
    - options
    - cap
    - err
    argTypes:
    - char*
    - struct proxy*
    - struct lf_expr*
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 952
    functionDepth: 8
    functionLinenumber: 952
    functionLinenumberEnd: 1001
    functionName: parse_logformat_string
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 10
    functionsReached:
    - memprintf
    - lf_expr_postcheck
    - lf_expr_compile
    - LIST_APPEND
    - lf_expr_deinit
    - strdup
    linkageType: ''
    returnType: int
    signature: "int parse_logformat_string(const char *fmt, struct proxy *curproxy,\n
      \                          struct lf_expr *lf_expr,\n                           int
      options, int cap, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - options
    - g_options
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1026
    functionName: _lf_expr_postcheck_node_opt
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _lf_expr_postcheck_node_opt(int *options, int g_options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _lf_expr_postcheck_node_opt
      Src: /src/haproxy/src/log.c:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - lf_expr
    - node
    - err
    argTypes:
    - struct lf_expr*
    - struct logformat_node*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1056
    functionName: lf_expr_postcheck_node_opt
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - _lf_expr_postcheck_node_opt
    linkageType: ''
    returnType: int
    signature: int lf_expr_postcheck_node_opt(struct lf_expr *lf_expr, struct logformat_node
      *node, char **err)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _lf_expr_postcheck_node_opt
      Src: /src/haproxy/src/log.c:1083,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:1085,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/log.c:1091,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1094,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/log.c:1098,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1101,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/log.c:1128,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1131,1
    - Dst: struct logformat_node*::alias::config_callback
      Src: /src/haproxy/src/log.c:1134,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1135,1
    - Dst: lf_expr_postcheck_node_opt
      Src: /src/haproxy/src/log.c:1144,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 44
    argCount: 3
    argNames:
    - lf_expr
    - px
    - err
    argTypes:
    - struct lf_expr*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1073
    functionDepth: 5
    functionLinenumber: 1073
    functionLinenumberEnd: 1151
    functionName: lf_expr_postcheck
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - memprintf
    - proxy_type_str
    - list_for_each_entry
    - _lf_expr_postcheck_node_opt
    - struct logformat_node*::alias::config_callback
    - ha_diag_warning
    - lf_expr_postcheck_node_opt
    linkageType: ''
    returnType: int
    signature: int lf_expr_postcheck(struct lf_expr *lf_expr, struct proxy *px, char
      **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/log.c:1160,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:1161,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/log.c:1162,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:1165,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1171,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1171,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1173,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:1174,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1154
    functionDepth: 6
    functionLinenumber: 1154
    functionLinenumberEnd: 1179
    functionName: postcheck_logformat_proxy
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memprintf
    - lf_expr_postcheck
    - proxy_type_str
    - BUG_ON
    - LIST_DEL_INIT
    - ha_free
    - list_for_each_entry_safe
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int postcheck_logformat_proxy(struct proxy *px)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/log.c:1193,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:1195,1
    - Dst: read_uint
      Src: /src/haproxy/src/log.c:1197,1
    - Dst: read_uint
      Src: /src/haproxy/src/log.c:1205,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1216,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 4
    argNames:
    - low
    - high
    - arg
    - err
    argTypes:
    - unsigned int*
    - unsigned int*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1186
    functionDepth: 5
    functionLinenumber: 1186
    functionLinenumberEnd: 1218
    functionName: get_logger_smp_range
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memprintf
    - read_uint
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int get_logger_smp_range(unsigned int *low, unsigned int *high, char
      **arg, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 5
    argNames:
    - rgs
    - sz
    - low
    - high
    - err
    argTypes:
    - struct smp_log_range*
    - size_t
    - unsigned int
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1225
    functionDepth: 5
    functionLinenumber: 1225
    functionLinenumberEnd: 1239
    functionName: smp_log_ranges_overlap
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int smp_log_ranges_overlap(struct smp_log_range *rgs, size_t sz,\n
      \                          unsigned int low, unsigned int high, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1241
    functionDepth: 0
    functionLinenumber: 1241
    functionLinenumberEnd: 1252
    functionName: smp_log_range_cmp
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_log_range_cmp(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - target
    argTypes:
    - struct log_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1261
    functionName: init_log_target
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_log_target(struct log_target *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1265,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - target
    argTypes:
    - struct log_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1268
    functionName: deinit_log_target
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void deinit_log_target(struct log_target *target)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:1273,1
    - Dst: init_log_target
      Src: /src/haproxy/src/log.c:1274,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:1276,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1282,1
    - Dst: deinit_log_target
      Src: /src/haproxy/src/log.c:1289,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - def
    - cpy
    argTypes:
    - struct log_target*
    - struct log_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1271
    functionDepth: 2
    functionLinenumber: 1271
    functionLinenumberEnd: 1291
    functionName: dup_log_target
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - malloc
    - BUG_ON
    - deinit_log_target
    - init_log_target
    - strdup
    linkageType: ''
    returnType: int
    signature: int dup_log_target(struct log_target *def, struct log_target *cpy)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1299,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1300,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1301,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1302,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1303,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/log.c:1306,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/log.c:1307,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/log.c:1308,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1310,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1311,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1312,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/log.c:1315,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1318,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1319,1
    - Dst: stktable_deinit
      Src: /src/haproxy/src/log.c:1322,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1323,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1325,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1326,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1327,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1328,1
    - Dst: free_stick_rules
      Src: /src/haproxy/src/log.c:1331,1
    - Dst: free_stick_rules
      Src: /src/haproxy/src/log.c:1332,1
    - Dst: isttest
      Src: /src/haproxy/src/log.c:1334,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1335,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1336,1
    - Dst: istfree
      Src: /src/haproxy/src/log.c:1339,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1342,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1343,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1346,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1348,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1349,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1350,1
    - Dst: free_server_rules
      Src: /src/haproxy/src/log.c:1353,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1356,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1357,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:1369,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1369,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1294
    functionDepth: 3
    functionLinenumber: 1294
    functionLinenumberEnd: 1373
    functionName: _postcheck_log_backend_compat
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - ha_warning
    - ha_free
    - free_server_rules
    - istfree
    - LIST_ISEMPTY
    - free_act_rules
    - free_stick_rules
    - ha_alert
    - stktable_deinit
    - isttest
    linkageType: ''
    returnType: int
    signature: int _postcheck_log_backend_compat(struct proxy *be)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _postcheck_log_backend_compat
      Src: /src/haproxy/src/log.c:1386,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1399,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1413,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1415,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/log.c:1419,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1424,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1425,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1427,1
    - Dst: smp_expr_output_type
      Src: /src/haproxy/src/log.c:1438,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1439,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/log.c:1441,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1442,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1445,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:1452,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:1453,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:1456,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1458,1
    - Dst: init_log_target
      Src: /src/haproxy/src/log.c:1462,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:1466,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1468,1
    - Dst: ipcpy
      Src: /src/haproxy/src/log.c:1475,1
    - Dst: set_host_port
      Src: /src/haproxy/src/log.c:1476,1
    - Dst: sink_new_from_srv
      Src: /src/haproxy/src/log.c:1483,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1485,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1495,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:1504,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1505,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 91
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1375
    functionDepth: 6
    functionLinenumber: 1375
    functionLinenumberEnd: 1509
    functionName: postcheck_log_backend
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - malloc
    - memprintf
    - sample_parse_expr
    - BUG_ON
    - ha_free
    - calloc
    - ipcpy
    - sink_new_from_srv
    - set_host_port
    - ha_alert
    - smp_expr_output_type
    - init_log_target
    - _postcheck_log_backend_compat
    - release_sample_expr
    linkageType: ''
    returnType: int
    signature: int postcheck_log_backend(struct proxy *be)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sink_resolve_logger_buffer
      Src: /src/haproxy/src/log.c:1532,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/log.c:1537,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1539,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1543,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1546,1
    - Dst: log_profile_find_by_name
      Src: /src/haproxy/src/log.c:1559,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1561,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1562,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1566,1
    - Dst: log_profile_postcheck
      Src: /src/haproxy/src/log.c:1569,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1570,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - px
    - logger
    - msg
    argTypes:
    - struct proxy*
    - struct logger*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1525
    functionDepth: 8
    functionLinenumber: 1525
    functionLinenumberEnd: 1578
    functionName: resolve_logger
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - log_profile_postcheck
    - memprintf
    - ha_free
    - proxy_find_by_name
    - log_profile_find_by_name
    - sink_resolve_logger_buffer
    linkageType: ''
    returnType: int
    signature: int resolve_logger(struct proxy *px, struct logger *logger, char **msg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:1590,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:1591,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:1592,1
    - Dst: memcpy
      Src: /src/haproxy/src/log.c:1595,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/log.c:1600,1
    - Dst: dup_log_target
      Src: /src/haproxy/src/log.c:1603,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1606,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:1611,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/log.c:1611,1
    - Dst: memcpy
      Src: /src/haproxy/src/log.c:1614,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1618,1
    - Dst: free_logger
      Src: /src/haproxy/src/log.c:1629,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - def
    argTypes:
    - struct logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1586
    functionDepth: 3
    functionLinenumber: 1586
    functionLinenumberEnd: 1631
    functionName: dup_logger
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - malloc
    - unlikely
    - memcpy
    - BUG_ON
    - free_logger
    - dup_log_target
    - array_size_or_fail
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: struct logger
    signature: struct logger *dup_logger(struct logger *def)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:1642,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/log.c:1642,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1643,1
    - Dst: deinit_log_target
      Src: /src/haproxy/src/log.c:1644,1
    - Dst: free
      Src: /src/haproxy/src/log.c:1645,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1647,1
    - Dst: free
      Src: /src/haproxy/src/log.c:1648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - logger
    argTypes:
    - struct logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1637
    functionDepth: 3
    functionLinenumber: 1637
    functionLinenumberEnd: 1649
    functionName: free_logger
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - ha_free
    - free
    - deinit_log_target
    - LIST_INLIST
    linkageType: ''
    returnType: void
    signature: void free_logger(struct logger *logger)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: init_log_target
      Src: /src/haproxy/src/log.c:1660,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:1663,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1665,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:1668,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1670,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:1675,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1677,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/log.c:1684,1
    - Dst: set_host_port
      Src: /src/haproxy/src/log.c:1695,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1706,1
    - Dst: deinit_log_target
      Src: /src/haproxy/src/log.c:1712,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - raw
    - target
    - err
    argTypes:
    - char*
    - struct log_target*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1654
    functionDepth: 5
    functionLinenumber: 1654
    functionLinenumberEnd: 1714
    functionName: parse_log_target
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - malloc
    - memprintf
    - strncmp
    - set_host_port
    - deinit_log_target
    - str2sa_range
    - init_log_target
    - strdup
    linkageType: ''
    returnType: int
    signature: int parse_log_target(char *raw, struct log_target *target, char **err)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1743,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:1748,1
    - Dst: free_logger
      Src: /src/haproxy/src/log.c:1749,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1758,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1760,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:1763,1
    - Dst: dup_logger
      Src: /src/haproxy/src/log.c:1772,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1774,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1779,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1780,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:1784,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1796,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1802,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1804,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:1807,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1809,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/log.c:1812,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1813,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1821,1
    - Dst: atoi
      Src: /src/haproxy/src/log.c:1822,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1824,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1835,1
    - Dst: get_log_format
      Src: /src/haproxy/src/log.c:1836,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1838,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1844,1
    - Dst: strchr
      Src: /src/haproxy/src/log.c:1850,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1852,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:1858,1
    - Dst: get_logger_smp_range
      Src: /src/haproxy/src/log.c:1861,1
    - Dst: smp_log_ranges_overlap
      Src: /src/haproxy/src/log.c:1864,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/log.c:1867,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1869,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1882,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:1887,1
    - Dst: read_uint
      Src: /src/haproxy/src/log.c:1888,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1890,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1896,1
    - Dst: qsort
      Src: /src/haproxy/src/log.c:1904,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1913,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1918,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1921,1
    - Dst: get_log_facility
      Src: /src/haproxy/src/log.c:1926,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1928,1
    - Dst: get_log_level
      Src: /src/haproxy/src/log.c:1936,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1938,1
    - Dst: get_log_level
      Src: /src/haproxy/src/log.c:1947,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1949,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1957,1
    - Dst: parse_log_target
      Src: /src/haproxy/src/log.c:1962,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:1966,1
    - Dst: free
      Src: /src/haproxy/src/log.c:1970,1
    - Dst: free_logger
      Src: /src/haproxy/src/log.c:1971,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 188
    argCount: 6
    argNames:
    - args
    - loggers
    - do_del
    - file
    - linenum
    - err
    argTypes:
    - char**
    - struct list*
    - int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1729
    functionDepth: 6
    functionLinenumber: 1729
    functionLinenumberEnd: 1973
    functionName: parse_logger
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 3
    functionsReached:
    - memprintf
    - dup_logger
    - LIST_APPEND
    - free
    - atoi
    - LIST_INIT
    - smp_log_ranges_overlap
    - ha_free
    - get_log_facility
    - strcmp
    - qsort
    - get_log_level
    - strchr
    - parse_log_target
    - my_realloc2
    - read_uint
    - LIST_DEL_INIT
    - calloc
    - get_logger_smp_range
    - get_log_format
    - strdup
    - list_for_each_entry
    - free_logger
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_logger(char **args, struct list *loggers, int do_del, const
      char *file, int linenum, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:1748,1
    - Dst: free_logger
      Src: /src/haproxy/src/log.c:1749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1747
    functionDepth: 4
    functionLinenumber: 1747
    functionLinenumberEnd: 1750
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 47
    functionsReached:
    - LIST_DEL_INIT
    - free_logger
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(logger, back, loggers, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1766
    functionDepth: 0
    functionLinenumber: 1766
    functionLinenumberEnd: 1769
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 147
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(node, loggers, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1979
    functionDepth: 0
    functionLinenumber: 1979
    functionLinenumberEnd: 1990
    functionName: get_log_format
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: enum log_fmt
    signature: enum log_fmt get_log_format(const char *fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:2000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 2004
    functionName: get_log_level
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int get_log_level(const char *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:2014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fac
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2009
    functionDepth: 0
    functionLinenumber: 2009
    functionLinenumberEnd: 2018
    functionName: get_log_facility
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int get_log_facility(const char *fac)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - start
    - stop
    - byte
    argTypes:
    - char*
    - char*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2036
    functionDepth: 0
    functionLinenumber: 2036
    functionLinenumberEnd: 2044
    functionName: _encode_byte_hex
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *_encode_byte_hex(char *start, char *stop, unsigned char byte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:2059,1
    - Dst: _encode_byte_hex
      Src: /src/haproxy/src/log.c:2069,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - cbor_ctx
    - start
    - stop
    - byte
    argTypes:
    - struct cbor_encode_ctx*
    - char*
    - char*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2054
    functionDepth: 1
    functionLinenumber: 2054
    functionLinenumberEnd: 2070
    functionName: _lf_cbor_encode_byte
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _encode_byte_hex
    - BUG_ON
    linkageType: ''
    returnType: char
    signature: "char *_lf_cbor_encode_byte(struct cbor_encode_ctx *cbor_ctx,\n                                  char
      *start, char *stop, unsigned char byte)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - g_options
    - node
    argTypes:
    - struct lf_buildctx*
    - int
    - struct logformat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2075
    functionDepth: 0
    functionLinenumber: 2075
    functionLinenumberEnd: 2094
    functionName: lf_buildctx_prepare
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void lf_buildctx_prepare(struct lf_buildctx *ctx,\n                                       int
      g_options,\n                                       const struct logformat_node
      *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - start
    - stop
    - byte
    - escape
    argTypes:
    - char*
    - char*
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2099
    functionDepth: 0
    functionLinenumber: 2099
    functionLinenumberEnd: 2109
    functionName: _lf_escape_byte
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *_lf_escape_byte(char *start, char *stop,\n                                    char
      byte, const char escape)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbor_encode_bytes_prefix
      Src: /src/haproxy/src/log.c:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - start
    - stop
    - byte
    - escape
    - cbor_string_prefix
    - ctx
    argTypes:
    - char*
    - char*
    - char
    - char
    - uint8_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2114
    functionDepth: 2
    functionLinenumber: 2114
    functionLinenumberEnd: 2130
    functionName: _lf_cbor_escape_byte
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - cbor_encode_bytes_prefix
    linkageType: ''
    returnType: char
    signature: "char *_lf_cbor_escape_byte(char *start, char *stop,\n                                         char
      byte, const char escape,\n                                         uint8_t cbor_string_prefix,\n
      \                                        struct lf_buildctx *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_bit_test
      Src: /src/haproxy/src/log.c:2146,1
    - Dst: _lf_escape_byte
      Src: /src/haproxy/src/log.c:2149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - start
    - stop
    - byte
    - escape
    - map
    - pending
    - cbor_string_prefix
    - ctx
    argTypes:
    - char*
    - char*
    - char*
    - char
    - long*
    - char**
    - uint8_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2140
    functionDepth: 1
    functionLinenumber: 2140
    functionLinenumberEnd: 2152
    functionName: _lf_map_escape_byte
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - ha_bit_test
    - _lf_escape_byte
    linkageType: ''
    returnType: char
    signature: "char *_lf_map_escape_byte(char *start, char *stop,\n                                        const
      char *byte,\n                                        const char escape, const
      long *map,\n                                        const char **pending, uint8_t
      cbor_string_prefix,\n                                        struct lf_buildctx
      *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_bit_test
      Src: /src/haproxy/src/log.c:2175,1
    - Dst: cbor_encode_bytes_prefix
      Src: /src/haproxy/src/log.c:2181,1
    - Dst: _lf_cbor_escape_byte
      Src: /src/haproxy/src/log.c:2190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - start
    - stop
    - byte
    - escape
    - map
    - pending
    - cbor_string_prefix
    - ctx
    argTypes:
    - char*
    - char*
    - char*
    - char
    - long*
    - char**
    - uint8_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2163
    functionDepth: 3
    functionLinenumber: 2163
    functionLinenumberEnd: 2196
    functionName: _lf_cbor_map_escape_byte
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - cbor_encode_bytes_prefix
    - ha_bit_test
    - _lf_cbor_escape_byte
    linkageType: ''
    returnType: char
    signature: "char *_lf_cbor_map_escape_byte(char *start, char *stop,\n                                             const
      char *byte,\n                                             const char escape,
      const long *map,\n                                             const char **pending,
      uint8_t cbor_string_prefix,\n                                             struct
      lf_buildctx *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_bit_test
      Src: /src/haproxy/src/log.c:2213,1
    - Dst: ha_bit_test
      Src: /src/haproxy/src/log.c:2214,1
    - Dst: _lf_escape_byte
      Src: /src/haproxy/src/log.c:2224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 8
    argNames:
    - start
    - stop
    - byte
    - escape
    - map
    - pending
    - cbor_string_prefix
    - ctx
    argTypes:
    - char*
    - char*
    - char*
    - char
    - long*
    - char**
    - uint8_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2207
    functionDepth: 1
    functionLinenumber: 2207
    functionLinenumberEnd: 2227
    functionName: _lf_rfc5424_escape_byte
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - ha_bit_test
    - _lf_escape_byte
    linkageType: ''
    returnType: char
    signature: "char *_lf_rfc5424_escape_byte(char *start, char *stop,\n                                            const
      char *byte,\n                                            const char escape,
      const long *map,\n                                            const char **pending,
      uint8_t cbor_string_prefix,\n                                            struct
      lf_buildctx *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_bit_test
      Src: /src/haproxy/src/log.c:2244,1
    - Dst: ha_bit_test
      Src: /src/haproxy/src/log.c:2245,1
    - Dst: _lf_escape_byte
      Src: /src/haproxy/src/log.c:2255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 8
    argNames:
    - start
    - stop
    - byte
    - escape
    - map
    - pending
    - cbor_string_prefix
    - ctx
    argTypes:
    - char*
    - char*
    - char*
    - char
    - long*
    - char**
    - uint8_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2258
    functionName: _lf_json_escape_byte
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - ha_bit_test
    - _lf_escape_byte
    linkageType: ''
    returnType: char
    signature: "char *_lf_json_escape_byte(char *start, char *stop,\n                                         const
      char *byte,\n                                         const char escape, const
      long *map,\n                                         const char **pending, uint8_t
      cbor_string_prefix,\n                                         struct lf_buildctx
      *ctx)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _lf_cbor_encode_byte
      Src: /src/haproxy/src/log.c:2317,1
    - Dst: encode_byte
      Src: /src/haproxy/src/log.c:2329,1
    - Dst: encode_byte
      Src: /src/haproxy/src/log.c:2339,1
    - Dst: cbor_encode_bytes_prefix
      Src: /src/haproxy/src/log.c:2352,1
    - Dst: _lf_cbor_encode_byte
      Src: /src/haproxy/src/log.c:2360,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 57
    argCount: 7
    argNames:
    - start
    - stop
    - escape
    - map
    - bytes
    - bytes_stop
    - ctx
    argTypes:
    - char*
    - char*
    - char
    - long*
    - char*
    - char*
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2278
    functionDepth: 2
    functionLinenumber: 2278
    functionLinenumberEnd: 2371
    functionName: _lf_encode_bytes
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - cbor_encode_bytes_prefix
    - encode_byte
    - _lf_cbor_encode_byte
    linkageType: ''
    returnType: char
    signature: "char *_lf_encode_bytes(char *start, char *stop,\n                              const
      char escape, const long *map,\n                              const char *bytes,
      const char *bytes_stop,\n                              struct lf_buildctx *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _lf_encode_bytes
      Src: /src/haproxy/src/log.c:2381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - start
    - stop
    - escape
    - map
    - string
    - ctx
    argTypes:
    - char*
    - char*
    - char
    - long*
    - char*
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2376
    functionDepth: 3
    functionLinenumber: 2376
    functionLinenumberEnd: 2383
    functionName: lf_encode_string
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _lf_encode_bytes
    linkageType: ''
    returnType: char
    signature: "char *lf_encode_string(char *start, char *stop,\n                              const
      char escape, const long *map,\n                              const char *string,\n
      \                             struct lf_buildctx *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _lf_encode_bytes
      Src: /src/haproxy/src/log.c:2393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - start
    - stop
    - escape
    - map
    - chunk
    - ctx
    argTypes:
    - char*
    - char*
    - char
    - long*
    - struct buffer*
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2388
    functionDepth: 3
    functionLinenumber: 2388
    functionLinenumberEnd: 2396
    functionName: lf_encode_chunk
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _lf_encode_bytes
    linkageType: ''
    returnType: char
    signature: "char *lf_encode_chunk(char *start, char *stop,\n                             const
      char escape, const long *map,\n                             const struct buffer
      *chunk,\n                             struct lf_buildctx *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strnlen2
      Src: /src/haproxy/src/log.c:2427,1
    - Dst: cbor_encode_text
      Src: /src/haproxy/src/log.c:2429,1
    - Dst: escape_string
      Src: /src/haproxy/src/log.c:2441,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/log.c:2449,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - dst
    - src
    - len
    - size
    - ctx
    argTypes:
    - char*
    - char*
    - size_t
    - size_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2409
    functionDepth: 3
    functionLinenumber: 2409
    functionLinenumberEnd: 2460
    functionName: _lf_text_len
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - strlcpy2
    - strnlen2
    - escape_string
    - cbor_encode_text
    linkageType: ''
    returnType: char
    signature: "char *_lf_text_len(char *dst, const char *src,\n                                 size_t
      len, size_t size, struct lf_buildctx *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _lf_text_len
      Src: /src/haproxy/src/log.c:2477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - dst
    - src
    - len
    - size
    - ctx
    argTypes:
    - char*
    - char*
    - size_t
    - size_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2465
    functionDepth: 4
    functionLinenumber: 2465
    functionLinenumberEnd: 2490
    functionName: _lf_quotetext_len
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _lf_text_len
    linkageType: ''
    returnType: char
    signature: "char *_lf_quotetext_len(char *dst, const char *src,\n                                      size_t
      len, size_t size, struct lf_buildctx *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _lf_quotetext_len
      Src: /src/haproxy/src/log.c:2503,1
    - Dst: _lf_text_len
      Src: /src/haproxy/src/log.c:2505,1
    - Dst: _lf_text_len
      Src: /src/haproxy/src/log.c:2516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - dst
    - src
    - len
    - size
    - ctx
    argTypes:
    - char*
    - char*
    - size_t
    - size_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2498
    functionDepth: 5
    functionLinenumber: 2498
    functionLinenumberEnd: 2517
    functionName: lf_text_len
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 2
    functionsReached:
    - _lf_text_len
    - _lf_quotetext_len
    linkageType: ''
    returnType: char
    signature: char *lf_text_len(char *dst, const char *src, size_t len, size_t size,
      struct lf_buildctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _lf_quotetext_len
      Src: /src/haproxy/src/log.c:2527,1
    - Dst: _lf_text_len
      Src: /src/haproxy/src/log.c:2528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - dst
    - src
    - len
    - size
    - ctx
    argTypes:
    - char*
    - char*
    - size_t
    - size_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2523
    functionDepth: 5
    functionLinenumber: 2523
    functionLinenumberEnd: 2529
    functionName: lf_rawtext_len
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _lf_text_len
    - _lf_quotetext_len
    linkageType: ''
    returnType: char
    signature: char *lf_rawtext_len(char *dst, const char *src, size_t len, size_t
      size, struct lf_buildctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:2534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - src
    - size
    - ctx
    argTypes:
    - char*
    - char*
    - size_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2532
    functionDepth: 6
    functionLinenumber: 2532
    functionLinenumberEnd: 2535
    functionName: lf_text
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lf_text_len
    linkageType: ''
    returnType: char
    signature: char *lf_text(char *dst, const char *src, size_t size, struct lf_buildctx
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lf_rawtext_len
      Src: /src/haproxy/src/log.c:2540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - src
    - size
    - ctx
    argTypes:
    - char*
    - char*
    - size_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2538
    functionDepth: 6
    functionLinenumber: 2538
    functionLinenumberEnd: 2541
    functionName: lf_rawtext
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lf_rawtext_len
    linkageType: ''
    returnType: char
    signature: char *lf_rawtext(char *dst, const char *src, size_t size, struct lf_buildctx
      *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:2559,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:2563,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:2570,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:2578,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/log.c:2586,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:2587,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - dst
    - sockaddr
    - size
    - ctx
    argTypes:
    - char*
    - struct sockaddr*
    - size_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2547
    functionDepth: 7
    functionLinenumber: 2547
    functionLinenumberEnd: 2590
    functionName: lf_ip
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - addr_to_str
    - lf_text
    - snprintf
    - lf_rawtext
    linkageType: ''
    returnType: char
    signature: char *lf_ip(char *dst, const struct sockaddr *sockaddr, size_t size,
      struct lf_buildctx *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:2605,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:2607,1
    - Dst: _lf_cbor_encode_byte
      Src: /src/haproxy/src/log.c:2616,1
    - Dst: _lf_cbor_encode_byte
      Src: /src/haproxy/src/log.c:2617,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - dst
    - size
    - value
    - ctx
    argTypes:
    - char*
    - size_t
    - uint8_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2595
    functionDepth: 2
    functionLinenumber: 2595
    functionLinenumberEnd: 2621
    functionName: lf_bool_encode
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _lf_cbor_encode_byte
    - snprintf
    linkageType: ''
    returnType: char
    signature: "char *lf_bool_encode(char *dst, size_t size, uint8_t value,\n                            struct
      lf_buildctx *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lf_bool_encode
      Src: /src/haproxy/src/log.c:2631,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:2643,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:2647,1
    - Dst: cbor_encode_int64
      Src: /src/haproxy/src/log.c:2660,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - dst
    - size
    - value
    - ctx
    argTypes:
    - char*
    - size_t
    - int64_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2626
    functionDepth: 3
    functionLinenumber: 2626
    functionLinenumberEnd: 2664
    functionName: lf_int_encode
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - cbor_encode_int64
    - lf_bool_encode
    - snprintf
    linkageType: ''
    returnType: char
    signature: "char *lf_int_encode(char *dst, size_t size, int64_t value,\n                           struct
      lf_buildctx *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lf_int_encode
      Src: /src/haproxy/src/log.c:2682,1
    - Dst: ltoa_o
      Src: /src/haproxy/src/log.c:2686,1
    - Dst: lltoa
      Src: /src/haproxy/src/log.c:2688,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/log.c:2690,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/log.c:2695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - dst
    - size
    - value
    - ctx
    - dft_hdl
    argTypes:
    - char*
    - size_t
    - int64_t
    - struct lf_buildctx*
    - enum lf_int_hdl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2677
    functionDepth: 4
    functionLinenumber: 2677
    functionLinenumberEnd: 2699
    functionName: lf_int
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lltoa
    - utoa_pad
    - lf_int_encode
    - ultoa_o
    - ltoa_o
    linkageType: ''
    returnType: char
    signature: "char *lf_int(char *dst, size_t size, int64_t value,\n                           struct
      lf_buildctx *ctx,\n                           enum lf_int_hdl dft_hdl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:2713,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:2716,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:2718,1
    - Dst: get_host_port
      Src: /src/haproxy/src/log.c:2718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - dst
    - sockaddr
    - size
    - ctx
    argTypes:
    - char*
    - struct sockaddr*
    - size_t
    - struct lf_buildctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2705
    functionDepth: 7
    functionLinenumber: 2705
    functionLinenumberEnd: 2722
    functionName: lf_port
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - get_host_port
    - lf_int
    - snprintf
    - lf_rawtext
    linkageType: ''
    returnType: char
    signature: char *lf_port(char *dst, const struct sockaddr *sockaddr, size_t size,
      struct lf_buildctx *ctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: real_family
      Src: /src/haproxy/src/log.c:2767,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:2772,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/log.c:2778,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:2779,1
    - Dst: socket
      Src: /src/haproxy/src/log.c:2780,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:2785,1
    - Dst: strerror
      Src: /src/haproxy/src/log.c:2786,1
    - Dst: setsockopt
      Src: /src/haproxy/src/log.c:2791,1
    - Dst: setsockopt
      Src: /src/haproxy/src/log.c:2794,1
    - Dst: shutdown
      Src: /src/haproxy/src/log.c:2796,1
    - Dst: fd_set_cloexec
      Src: /src/haproxy/src/log.c:2797,1
    - Dst: build_log_header
      Src: /src/haproxy/src/log.c:2801,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:2807,1
    - Dst: sink_write
      Src: /src/haproxy/src/log.c:2814,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:2819,1
    - Dst: fd_write_frag_line
      Src: /src/haproxy/src/log.c:2821,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:2851,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/log.c:2853,1
    - Dst: sendmsg
      Src: /src/haproxy/src/log.c:2855,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:2862,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:2865,1
    - Dst: strerror
      Src: /src/haproxy/src/log.c:2866,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 6
    argNames:
    - target
    - hdr
    - nblogger
    - maxlen
    - message
    - size
    argTypes:
    - struct log_target*
    - struct log_header
    - int
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2734
    functionDepth: 3
    functionLinenumber: 2734
    functionLinenumberEnd: 2869
    functionName: __do_send_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fd_set_cloexec
    - ist2
    - _HA_ATOMIC_INC
    - get_addr_len
    - BUG_ON
    - strerror
    - fd_write_frag_line
    - setsockopt
    - build_log_header
    - sink_write
    - shutdown
    - ha_alert
    - sendmsg
    - socket
    - protocol_lookup
    - real_family
    linkageType: ''
    returnType: void
    signature: "void __do_send_log(struct log_target *target, struct log_header hdr,\n
      \                                int nblogger, size_t maxlen,\n                                 char
      *message, size_t size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fwrr_get_next_server
      Src: /src/haproxy/src/log.c:2884,1
    - Dst: ss_get_server
      Src: /src/haproxy/src/log.c:2891,1
    - Dst: statistical_prng
      Src: /src/haproxy/src/log.c:2896,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/log.c:2897,1
    - Dst: memset
      Src: /src/haproxy/src/log.c:2903,1
    - Dst: sample_process_cnv
      Src: /src/haproxy/src/log.c:2908,1
    - Dst: gen_hash
      Src: /src/haproxy/src/log.c:2914,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/log.c:2915,1
    - Dst: __do_send_log
      Src: /src/haproxy/src/log.c:2925,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:2929,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - be
    - hdr
    - nblogger
    - maxlen
    - message
    - size
    argTypes:
    - struct proxy*
    - struct log_header
    - int
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2875
    functionDepth: 4
    functionLinenumber: 2875
    functionLinenumberEnd: 2930
    functionName: __do_send_log_backend
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - memset
    - __do_send_log
    - sample_process_cnv
    - gen_hash
    - statistical_prng
    - fwrr_get_next_server
    - map_get_server_hash
    - ss_get_server
    - chash_get_server_hash
    linkageType: ''
    returnType: void
    signature: "void __do_send_log_backend(struct proxy *be, struct log_header hdr,\n
      \                                        int nblogger, size_t maxlen,\n                                         char
      *message, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/log.c:2934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - metadata
    - sd
    - sd_size
    argTypes:
    - struct ist*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2939
      start: 2932
    functionDepth: 1
    functionLinenumber: 2932
    functionLinenumberEnd: 2939
    functionName: __send_log_set_metadata_sd
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - ist2
    linkageType: ''
    returnType: void
    signature: void __send_log_set_metadata_sd(struct ist *metadata, char *sd, size_t
      sd_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __do_send_log_backend
      Src: /src/haproxy/src/log.c:2956,1
    - Dst: __do_send_log
      Src: /src/haproxy/src/log.c:2960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - logger
    - hdr
    - message
    - size
    - nblogger
    argTypes:
    - struct logger*
    - struct log_header
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2949
    functionDepth: 5
    functionLinenumber: 2949
    functionLinenumberEnd: 2962
    functionName: _process_send_log_final
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - __do_send_log
    - __do_send_log_backend
    linkageType: ''
    returnType: void
    signature: "void _process_send_log_final(struct logger *logger, struct log_header
      hdr,\n                                           char *message, size_t size,
      int nblogger)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:2979,1
    - Dst: b_is_null
      Src: /src/haproxy/src/log.c:2981,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:2982,1
    - Dst: container_of_safe
      Src: /src/haproxy/src/log.c:3027,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/log.c:3027,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:3045,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:3046,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:3054,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:3057,1
    - Dst: __send_log_set_metadata_sd
      Src: /src/haproxy/src/log.c:3061,1
    - Dst: _process_send_log_final
      Src: /src/haproxy/src/log.c:3065,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 66
    argCount: 6
    argNames:
    - ctx
    - logger
    - hdr
    - message
    - size
    - nblogger
    argTypes:
    - struct process_send_log_ctx*
    - struct logger*
    - struct log_header
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3071
      start: 2964
    functionDepth: 6
    functionLinenumber: 2964
    functionLinenumberEnd: 3071
    functionName: _process_send_log_override
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - container_of_safe
    - __send_log_set_metadata_sd
    - ist2
    - _process_send_log_final
    - b_is_null
    - BUG_ON
    - eb32_lookup
    - sess_build_logline_orig
    - lf_expr_isempty
    linkageType: ''
    returnType: void
    signature: "void _process_send_log_override(struct process_send_log_ctx *ctx,\n
      \                                             struct logger *logger, struct
      log_header hdr,\n                                              char *message,
      size_t size, int nblogger)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/log.c:3101,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/log.c:3119,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/log.c:3120,1
    - Dst: MAX
      Src: /src/haproxy/src/log.c:3125,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:3133,1
    - Dst: _process_send_log_override
      Src: /src/haproxy/src/log.c:3134,1
    - Dst: _process_send_log_final
      Src: /src/haproxy/src/log.c:3136,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 7
    argNames:
    - ctx
    - loggers
    - level
    - facility
    - metadata
    - message
    - size
    argTypes:
    - struct process_send_log_ctx*
    - struct list*
    - int
    - int
    - struct ist*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3139
      start: 3080
    functionDepth: 7
    functionLinenumber: 3080
    functionLinenumberEnd: 3139
    functionName: process_send_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _process_send_log_final
    - _HA_ATOMIC_LOAD
    - MAX
    - __ha_cpu_relax
    - _HA_ATOMIC_CAS
    - _process_send_log_override
    linkageType: ''
    returnType: void
    signature: "void process_send_log(struct process_send_log_ctx *ctx,\n                             struct
      list *loggers, int level, int facility,\n                             struct
      ist *metadata, char *message, size_t size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/log.c:3101,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/log.c:3119,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/log.c:3120,1
    - Dst: MAX
      Src: /src/haproxy/src/log.c:3125,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:3133,1
    - Dst: _process_send_log_override
      Src: /src/haproxy/src/log.c:3134,1
    - Dst: _process_send_log_final
      Src: /src/haproxy/src/log.c:3136,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3138
      start: 3089
    functionDepth: 7
    functionLinenumber: 3089
    functionLinenumberEnd: 3138
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 147
    functionsReached:
    - unlikely
    - _process_send_log_final
    - _HA_ATOMIC_LOAD
    - MAX
    - __ha_cpu_relax
    - _HA_ATOMIC_CAS
    - _process_send_log_override
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(logger, loggers, list)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:3156,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:3160,1
    - Dst: ist
      Src: /src/haproxy/src/log.c:3165,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3172,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:3174,1
    - Dst: getpid
      Src: /src/haproxy/src/log.c:3174,1
    - Dst: getpid
      Src: /src/haproxy/src/log.c:3178,1
    - Dst: ltoa_o
      Src: /src/haproxy/src/log.c:3179,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3180,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:3180,1
    - Dst: __send_log_set_metadata_sd
      Src: /src/haproxy/src/log.c:3183,1
    - Dst: process_send_log
      Src: /src/haproxy/src/log.c:3185,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 8
    argNames:
    - ctx
    - loggers
    - tagb
    - level
    - message
    - size
    - sd
    - sd_size
    argTypes:
    - struct process_send_log_ctx*
    - struct list*
    - struct buffer*
    - int
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3186
      start: 3147
    functionDepth: 8
    functionLinenumber: 3147
    functionLinenumberEnd: 3186
    functionName: __send_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - getpid
    - unlikely
    - ist2
    - ist
    - __send_log_set_metadata_sd
    - process_send_log
    - LIST_ISEMPTY
    - ltoa_o
    - strlen
    linkageType: ''
    returnType: void
    signature: "void __send_log(struct process_send_log_ctx *ctx,\n                       struct
      list *loggers, struct buffer *tagb, int level,\n                       char
      *message, size_t size, char *sd, size_t sd_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/log.c:3200,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/log.c:3201,1
    - Dst: va_end
      Src: /src/haproxy/src/log.c:3204,1
    - Dst: __send_log
      Src: /src/haproxy/src/log.c:3206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - p
    - level
    - format
    argTypes:
    - struct proxy*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3209
      start: 3192
    functionDepth: 9
    functionLinenumber: 3192
    functionLinenumberEnd: 3209
    functionName: send_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 41
    functionsReached:
    - va_end
    - va_start
    - __send_log
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void send_log(struct proxy *p, int level, const char *format, ...)
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/log.c:3306,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3317,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:3333,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3342,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3344,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3345,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:3353,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:3355,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:3357,1
    - Dst: likely
      Src: /src/haproxy/src/log.c:3366,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3367,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3369,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3373,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3377,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3390,1
    - Dst: memcmp
      Src: /src/haproxy/src/log.c:3399,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:3405,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:3412,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3423,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3425,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3428,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3435,1
    - Dst: timeofday_as_iso_us
      Src: /src/haproxy/src/log.c:3435,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/log.c:3443,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3451,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3454,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3462,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3464,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3466,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3471,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3474,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3478,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3481,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3485,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3488,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3492,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3495,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3499,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3502,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/log.c:3512,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 180
    argCount: 2
    argNames:
    - hdr
    - nbelem
    argTypes:
    - struct log_header
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3516
      start: 3223
    functionDepth: 2
    functionLinenumber: 3223
    functionLinenumberEnd: 3516
    functionName: build_log_header
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 2
    functionsReached:
    - unlikely
    - ist2
    - memcmp
    - likely
    - ABORT_NOW
    - get_localtime
    - timeofday_as_iso_us
    - snprintf
    linkageType: ''
    returnType: struct ist
    signature: struct ist *build_log_header(struct log_header hdr, size_t *nbelem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3230
      start: 3225
    functionDepth: 0
    functionLinenumber: 3225
    functionLinenumberEnd: 3230
    functionName: struct
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: THREAD_LOCAL
    signature: THREAD_LOCAL struct
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3534
      start: 3525
    functionDepth: 0
    functionLinenumber: 3525
    functionLinenumberEnd: 3534
    functionName: LOG_CBOR_BYTE
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_CBOR_BYTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3545
      start: 3538
    functionDepth: 0
    functionLinenumber: 3538
    functionLinenumberEnd: 3545
    functionName: LOGCHAR
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOGCHAR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3570
      start: 3567
    functionDepth: 0
    functionLinenumber: 3567
    functionLinenumberEnd: 3570
    functionName: LOG_VARTEXT_START
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_VARTEXT_START()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3593
      start: 3588
    functionDepth: 0
    functionLinenumber: 3588
    functionLinenumberEnd: 3593
    functionName: LOG_VARTEXT_END
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_VARTEXT_END()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3622
      start: 3618
    functionDepth: 0
    functionLinenumber: 3618
    functionLinenumberEnd: 3622
    functionName: LOG_STRARRAY_START
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_STRARRAY_START()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3638
      start: 3628
    functionDepth: 0
    functionLinenumber: 3628
    functionLinenumberEnd: 3638
    functionName: LOG_STRARRAY_NEXT
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_STRARRAY_NEXT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3640
    functionDepth: 0
    functionLinenumber: 3640
    functionLinenumberEnd: 3644
    functionName: LOG_STRARRAY_END
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_STRARRAY_END()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: my_realloc2
      Src: /src/haproxy/src/log.c:3740,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/log.c:3741,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:3744,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/log.c:3745,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/log.c:3746,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3751
      start: 3738
    functionDepth: 1
    functionLinenumber: 3738
    functionLinenumberEnd: 3751
    functionName: init_log_buffers
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - my_realloc2
    linkageType: ''
    returnType: int
    signature: int init_log_buffers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/log.c:3756,1
    - Dst: free
      Src: /src/haproxy/src/log.c:3757,1
    - Dst: free
      Src: /src/haproxy/src/log.c:3758,1
    - Dst: free
      Src: /src/haproxy/src/log.c:3759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3764
      start: 3754
    functionDepth: 3
    functionLinenumber: 3754
    functionLinenumberEnd: 3764
    functionName: deinit_log_buffers
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void deinit_log_buffers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proxy_drop
      Src: /src/haproxy/src/log.c:3776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3767
    functionDepth: 1
    functionLinenumber: 3767
    functionLinenumberEnd: 3778
    functionName: deinit_log_forward
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - proxy_drop
    linkageType: ''
    returnType: void
    signature: void deinit_log_forward()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release_sample_expr
      Src: /src/haproxy/src/log.c:3786,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:3788,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:3789,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:3790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct logformat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3791
      start: 3781
    functionDepth: 1
    functionLinenumber: 3781
    functionLinenumberEnd: 3791
    functionName: free_logformat_node
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 2
    functionsReached:
    - ha_free
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void free_logformat_node(struct logformat_node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:3798,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/log.c:3802,1
    - Dst: free_logformat_node
      Src: /src/haproxy/src/log.c:3803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3805
      start: 3794
    functionDepth: 2
    functionLinenumber: 3794
    functionLinenumberEnd: 3805
    functionName: free_logformat_list
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - LIST_ISEMPTY
    - free_logformat_node
    linkageType: ''
    returnType: void
    signature: void free_logformat_list(struct list *fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/log.c:3802,1
    - Dst: free_logformat_node
      Src: /src/haproxy/src/log.c:3803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3804
      start: 3801
    functionDepth: 2
    functionLinenumber: 3801
    functionLinenumberEnd: 3804
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 47
    functionsReached:
    - LIST_DELETE
    - free_logformat_node
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(lf, lfb, fmt, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/log.c:3810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3815
      start: 3808
    functionDepth: 1
    functionLinenumber: 3808
    functionLinenumberEnd: 3815
    functionName: lf_expr_init
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 12
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void lf_expr_init(struct lf_expr *expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_logformat_list
      Src: /src/haproxy/src/log.c:3821,1
    - Dst: logformat_str_free
      Src: /src/haproxy/src/log.c:3823,1
    - Dst: free
      Src: /src/haproxy/src/log.c:3824,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:3826,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/log.c:3828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3829
      start: 3818
    functionDepth: 3
    functionLinenumber: 3818
    functionLinenumberEnd: 3829
    functionName: lf_expr_deinit
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 11
    functionsReached:
    - lf_expr_init
    - logformat_str_free
    - LIST_DEL_INIT
    - free
    - free_logformat_list
    linkageType: ''
    returnType: void
    signature: void lf_expr_deinit(struct lf_expr *expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:3839,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:3841,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/log.c:3848,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/log.c:3850,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/log.c:3851,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:3852,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/log.c:3858,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:3859,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/log.c:3862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct lf_expr*
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3863
      start: 3834
    functionDepth: 4
    functionLinenumber: 3834
    functionLinenumberEnd: 3863
    functionName: lf_expr_xfer
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - lf_expr_init
    - BUG_ON
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - LIST_APPEND
    - LIST_INSERT
    - lf_expr_deinit
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void lf_expr_xfer(struct lf_expr *src, struct lf_expr *dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:3871,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:3872,1
    - Dst: logformat_str_dup
      Src: /src/haproxy/src/log.c:3874,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:3879,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:3888,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - orig
    - dest
    argTypes:
    - struct lf_expr*
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3890
      start: 3869
    functionDepth: 4
    functionLinenumber: 3869
    functionLinenumberEnd: 3890
    functionName: lf_expr_dup
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lf_expr_deinit
    - logformat_str_dup
    - BUG_ON
    - strdup
    linkageType: ''
    returnType: int
    signature: int lf_expr_dup(const struct lf_expr *orig, struct lf_expr *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:3901,1
    - Dst: isttest
      Src: /src/haproxy/src/log.c:3901,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/log.c:3903,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3912,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/log.c:3913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - dst
    - sess
    - strm
    - format
    argTypes:
    - struct ist*
    - struct session*
    - struct stream*
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3914
      start: 3897
    functionDepth: 1
    functionLinenumber: 3897
    functionLinenumberEnd: 3914
    functionName: generate_unique_id
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 2
    functionsReached:
    - ist2
    - pool_alloc
    - BUG_ON
    - sess_build_logline
    - isttest
    linkageType: ''
    returnType: void
    signature: void generate_unique_id(struct ist *dst, struct session *sess, struct
      stream *strm, struct lf_expr *format)
  - BBCount: 249
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/log.c:3960,1
    - Dst: sc_conn
      Src: /src/haproxy/src/log.c:3963,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:3976,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:3976,1
    - Dst: objt_conn
      Src: /src/haproxy/src/log.c:3978,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:3979,1
    - Dst: sc_conn
      Src: /src/haproxy/src/log.c:3979,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:3979,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/log.c:3982,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/log.c:3993,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/log.c:4002,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/log.c:4009,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/log.c:4034,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:4042,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:4045,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4049,1
    - Dst: LOG_CBOR_BYTE
      Src: /src/haproxy/src/log.c:4052,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4073,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/log.c:4085,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:4099,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4106,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4107,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4112,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/log.c:4113,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4117,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4118,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4119,1
    - Dst: cbor_encode_text
      Src: /src/haproxy/src/log.c:4122,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4124,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:4137,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4145,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4148,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4151,1
    - Dst: sample_convert
      Src: /src/haproxy/src/log.c:4197,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4200,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4204,1
    - Dst: lf_int_encode
      Src: /src/haproxy/src/log.c:4209,1
    - Dst: lf_bool_encode
      Src: /src/haproxy/src/log.c:4212,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4215,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:4228,1
    - Dst: sc_src
      Src: /src/haproxy/src/log.c:4233,1
    - Dst: sess_src
      Src: /src/haproxy/src/log.c:4233,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4235,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4237,1
    - Dst: sc_src
      Src: /src/haproxy/src/log.c:4245,1
    - Dst: sess_src
      Src: /src/haproxy/src/log.c:4245,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:4248,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4249,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4252,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4255,1
    - Dst: sc_dst
      Src: /src/haproxy/src/log.c:4263,1
    - Dst: sess_dst
      Src: /src/haproxy/src/log.c:4263,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4265,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4267,1
    - Dst: sc_dst
      Src: /src/haproxy/src/log.c:4275,1
    - Dst: sess_dst
      Src: /src/haproxy/src/log.c:4275,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:4278,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4279,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4282,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4285,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/log.c:4293,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4294,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4296,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/log.c:4304,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4305,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4307,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/log.c:4315,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4316,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4318,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/log.c:4326,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4327,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4329,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4340,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4342,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4344,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4347,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4359,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4360,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4362,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4364,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4367,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/log.c:4378,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4380,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4382,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4385,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4396,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/log.c:4397,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4399,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4401,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4404,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4415,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4417,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4420,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4423,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4435,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4436,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4438,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4440,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4443,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:4455,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4458,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4460,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:4473,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4476,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4478,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4489,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4497,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4498,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4505,1
    - Dst: objt_conn
      Src: /src/haproxy/src/log.c:4510,1
    - Dst: ssl_sock_get_cipher_name
      Src: /src/haproxy/src/log.c:4512,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4514,1
    - Dst: objt_conn
      Src: /src/haproxy/src/log.c:4522,1
    - Dst: ssl_sock_get_proto_version
      Src: /src/haproxy/src/log.c:4524,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4526,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4534,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:4541,1
    - Dst: __objt_server
      Src: /src/haproxy/src/log.c:4543,1
    - Dst: __objt_applet
      Src: /src/haproxy/src/log.c:4546,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4549,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4550,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4557,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4564,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4571,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4581,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4589,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4599,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4610,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4621,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4637,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4650,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4651,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4660,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4661,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4672,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4673,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4681,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4689,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4690,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4697,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4705,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4713,1
    - Dst: lf_rawtext_len
      Src: /src/haproxy/src/log.c:4723,1
    - Dst: lf_rawtext_len
      Src: /src/haproxy/src/log.c:4736,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4744,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4751,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4758,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:4768,1
    - Dst: __objt_server
      Src: /src/haproxy/src/log.c:4770,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4773,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4774,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4782,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4795,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4796,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4804,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4812,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4822,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4823,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4826,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4828,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4835,1
    - Dst: LOG_STRARRAY_START
      Src: /src/haproxy/src/log.c:4842,1
    - Dst: LOG_STRARRAY_NEXT
      Src: /src/haproxy/src/log.c:4845,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4846,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4848,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4854,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:4858,1
    - Dst: LOG_STRARRAY_END
      Src: /src/haproxy/src/log.c:4860,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4868,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4869,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4872,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4874,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4881,1
    - Dst: LOG_STRARRAY_START
      Src: /src/haproxy/src/log.c:4888,1
    - Dst: LOG_STRARRAY_NEXT
      Src: /src/haproxy/src/log.c:4891,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4892,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4894,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4900,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:4904,1
    - Dst: LOG_STRARRAY_END
      Src: /src/haproxy/src/log.c:4906,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4912,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4914,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4924,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4926,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4928,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4932,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4938,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4943,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4949,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4960,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4962,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4965,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4969,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4975,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:4978,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/log.c:4981,1
    - Dst: iststop
      Src: /src/haproxy/src/log.c:4982,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/log.c:4982,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4985,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4991,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5000,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5004,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5007,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5014,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5021,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5032,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5034,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5036,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5040,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5046,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5051,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5057,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5067,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5069,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5072,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5077,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5083,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5093,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5095,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5097,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5101,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5106,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5110,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5115,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5118,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5124,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5134,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5137,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5139,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5148,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5151,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5153,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:5163,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5171,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5174,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5176,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5187,1
    - Dst: stream_generate_unique_id
      Src: /src/haproxy/src/log.c:5188,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:5190,1
    - Dst: istptr
      Src: /src/haproxy/src/log.c:5190,1
    - Dst: istlen
      Src: /src/haproxy/src/log.c:5190,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:5198,1
    - Dst: log_orig_to_str
      Src: /src/haproxy/src/log.c:5198,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5213,1
    - Dst: LOG_CBOR_BYTE
      Src: /src/haproxy/src/log.c:5222,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:5230,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:5243,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:5246,1
    - Dst: LOG_CBOR_BYTE
      Src: /src/haproxy/src/log.c:5249,1
    CyclomaticComplexity: 431
    EdgeCount: 431
    ICount: 1012
    argCount: 6
    argNames:
    - sess
    - s
    - dst
    - maxsize
    - lf_expr
    - log_orig
    argTypes:
    - struct session*
    - struct stream*
    - char*
    - size_t
    - struct lf_expr*
    - struct log_orig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5257
      start: 3922
    functionDepth: 8
    functionLinenumber: 3922
    functionLinenumberEnd: 5257
    functionName: sess_build_logline_orig
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - sc_conn
    - lf_text
    - LOG_STRARRAY_END
    - cbor_encode_text
    - stream_generate_unique_id
    - conn_xprt_read0_pending
    - lf_buildctx_prepare
    - LOG_STRARRAY_NEXT
    - likely
    - get_gmtime
    - lf_expr_isempty
    - sc_src
    - LOGMETACHAR
    - http_uri_parser_init
    - get_localtime
    - istlen
    - lf_bool_encode
    - snprintf
    - tv_ms_add
    - gmt2str_log
    - ssl_sock_get_cipher_name
    - LOG_STRARRAY_START
    - ist2
    - date2str_log
    - sess_src
    - log_orig_to_str
    - LOG_VARTEXT_END
    - sample_convert
    - lf_int_encode
    - lf_ip
    - sess_dst
    - obj_type
    - _HA_ATOMIC_FETCH_ADD
    - lf_rawtext
    - real_family
    - http_parse_path
    - istptr
    - lf_text_len
    - LOG_CBOR_BYTE
    - sample_process
    - ns_to_ms
    - lf_rawtext_len
    - objt_conn
    - LOGCHAR
    - strlcpy2
    - localdate2str_log
    - ssl_sock_get_proto_version
    - conn_get_dst
    - conn_get_src
    - lf_int
    - __objt_server
    - LOG_VARTEXT_START
    - iststop
    - BUG_ON
    - struct connection*::mux::ctl
    - lf_port
    - lf_encode_chunk
    - __objt_check
    - HTTP_IS_SPHT
    - __objt_applet
    - sc_dst
    - lf_encode_string
    - strlen
    linkageType: ''
    returnType: size_t
    signature: "size_t sess_build_logline_orig(struct session *sess, struct stream
      *s,\n                            char *dst, size_t maxsize, const struct lf_expr
      *lf_expr,\n                            struct log_orig log_orig)"
  - BBCount: 234
    BranchProfiles: []
    Callsites:
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4073,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/log.c:4085,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:4099,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4106,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4107,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4112,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/log.c:4113,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4117,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4118,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4119,1
    - Dst: cbor_encode_text
      Src: /src/haproxy/src/log.c:4122,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4124,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:4137,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4145,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4148,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4151,1
    - Dst: sample_convert
      Src: /src/haproxy/src/log.c:4197,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4200,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4204,1
    - Dst: lf_int_encode
      Src: /src/haproxy/src/log.c:4209,1
    - Dst: lf_bool_encode
      Src: /src/haproxy/src/log.c:4212,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4215,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:4228,1
    - Dst: sc_src
      Src: /src/haproxy/src/log.c:4233,1
    - Dst: sess_src
      Src: /src/haproxy/src/log.c:4233,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4235,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4237,1
    - Dst: sc_src
      Src: /src/haproxy/src/log.c:4245,1
    - Dst: sess_src
      Src: /src/haproxy/src/log.c:4245,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:4248,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4249,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4252,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4255,1
    - Dst: sc_dst
      Src: /src/haproxy/src/log.c:4263,1
    - Dst: sess_dst
      Src: /src/haproxy/src/log.c:4263,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4265,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4267,1
    - Dst: sc_dst
      Src: /src/haproxy/src/log.c:4275,1
    - Dst: sess_dst
      Src: /src/haproxy/src/log.c:4275,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:4278,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4279,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4282,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4285,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/log.c:4293,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4294,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4296,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/log.c:4304,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4305,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4307,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/log.c:4315,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4316,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4318,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/log.c:4326,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4327,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4329,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4340,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4342,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4344,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4347,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4359,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4360,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4362,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4364,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4367,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/log.c:4378,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4380,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4382,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4385,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4396,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/log.c:4397,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4399,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4401,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4404,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4415,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4417,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4420,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4423,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4435,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4436,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4438,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4440,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4443,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:4455,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4458,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4460,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:4473,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4476,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4478,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4489,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4497,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4498,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4505,1
    - Dst: objt_conn
      Src: /src/haproxy/src/log.c:4510,1
    - Dst: ssl_sock_get_cipher_name
      Src: /src/haproxy/src/log.c:4512,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4514,1
    - Dst: objt_conn
      Src: /src/haproxy/src/log.c:4522,1
    - Dst: ssl_sock_get_proto_version
      Src: /src/haproxy/src/log.c:4524,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4526,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4534,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:4541,1
    - Dst: __objt_server
      Src: /src/haproxy/src/log.c:4543,1
    - Dst: __objt_applet
      Src: /src/haproxy/src/log.c:4546,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4549,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4550,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4557,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4564,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4571,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4581,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4589,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4599,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4610,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4621,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4637,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4650,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4651,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4660,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4661,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4672,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4673,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4681,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4689,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4690,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4697,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4705,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4713,1
    - Dst: lf_rawtext_len
      Src: /src/haproxy/src/log.c:4723,1
    - Dst: lf_rawtext_len
      Src: /src/haproxy/src/log.c:4736,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4744,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4751,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4758,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:4768,1
    - Dst: __objt_server
      Src: /src/haproxy/src/log.c:4770,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4773,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4774,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4782,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4795,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4796,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4804,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4812,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4822,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4823,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4826,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4828,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4835,1
    - Dst: LOG_STRARRAY_START
      Src: /src/haproxy/src/log.c:4842,1
    - Dst: LOG_STRARRAY_NEXT
      Src: /src/haproxy/src/log.c:4845,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4846,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4848,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4854,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:4858,1
    - Dst: LOG_STRARRAY_END
      Src: /src/haproxy/src/log.c:4860,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4868,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4869,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4872,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4874,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4881,1
    - Dst: LOG_STRARRAY_START
      Src: /src/haproxy/src/log.c:4888,1
    - Dst: LOG_STRARRAY_NEXT
      Src: /src/haproxy/src/log.c:4891,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4892,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4894,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4900,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:4904,1
    - Dst: LOG_STRARRAY_END
      Src: /src/haproxy/src/log.c:4906,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4912,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4914,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4924,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4926,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4928,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4932,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4938,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4943,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4949,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4960,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4962,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4965,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4969,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4975,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:4978,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/log.c:4981,1
    - Dst: iststop
      Src: /src/haproxy/src/log.c:4982,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/log.c:4982,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4985,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4991,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5000,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5004,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5007,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5014,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5021,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5032,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5034,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5036,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5040,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5046,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5051,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5057,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5067,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5069,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5072,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5077,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5083,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5093,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5095,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5097,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5101,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5106,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5110,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5115,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5118,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5124,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5134,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5137,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5139,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5148,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5151,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5153,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:5163,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5171,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5174,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5176,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5187,1
    - Dst: stream_generate_unique_id
      Src: /src/haproxy/src/log.c:5188,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:5190,1
    - Dst: istptr
      Src: /src/haproxy/src/log.c:5190,1
    - Dst: istlen
      Src: /src/haproxy/src/log.c:5190,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:5198,1
    - Dst: log_orig_to_str
      Src: /src/haproxy/src/log.c:5198,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5213,1
    - Dst: LOG_CBOR_BYTE
      Src: /src/haproxy/src/log.c:5222,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:5230,1
    CyclomaticComplexity: 410
    EdgeCount: 410
    ICount: 931
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 4055
    functionDepth: 8
    functionLinenumber: 4055
    functionLinenumberEnd: 5238
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 147
    functionsReached:
    - lf_text
    - LOG_STRARRAY_END
    - cbor_encode_text
    - stream_generate_unique_id
    - lf_buildctx_prepare
    - LOG_STRARRAY_NEXT
    - get_gmtime
    - http_uri_parser_init
    - lf_expr_isempty
    - sc_src
    - LOGMETACHAR
    - get_localtime
    - istlen
    - lf_bool_encode
    - snprintf
    - tv_ms_add
    - gmt2str_log
    - ssl_sock_get_cipher_name
    - LOG_STRARRAY_START
    - ist2
    - date2str_log
    - sess_src
    - log_orig_to_str
    - LOG_VARTEXT_END
    - sample_convert
    - lf_int_encode
    - lf_ip
    - sess_dst
    - lf_rawtext
    - obj_type
    - http_parse_path
    - real_family
    - istptr
    - lf_text_len
    - sample_process
    - LOG_CBOR_BYTE
    - lf_rawtext_len
    - LOGCHAR
    - strlcpy2
    - localdate2str_log
    - objt_conn
    - ssl_sock_get_proto_version
    - conn_get_dst
    - conn_get_src
    - lf_int
    - __objt_server
    - LOG_VARTEXT_START
    - iststop
    - BUG_ON
    - lf_port
    - lf_encode_chunk
    - __objt_check
    - HTTP_IS_SPHT
    - __objt_applet
    - sc_dst
    - lf_encode_string
    - strlen
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(tmp, list_format, list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:5268,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5288,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:5289,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:5293,1
    - Dst: __send_log
      Src: /src/haproxy/src/log.c:5295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct process_send_log_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5297
      start: 5259
    functionDepth: 9
    functionLinenumber: 5259
    functionLinenumberEnd: 5297
    functionName: do_log_ctx
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lf_expr_isempty
    - LIST_ISEMPTY
    - __send_log
    - sess_build_logline_orig
    linkageType: ''
    returnType: void
    signature: void do_log_ctx(struct process_send_log_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_log_ctx
      Src: /src/haproxy/src/log.c:5315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - sess
    - s
    - origin
    argTypes:
    - struct session*
    - struct stream*
    - struct log_orig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5316
      start: 5307
    functionDepth: 10
    functionLinenumber: 5307
    functionLinenumberEnd: 5316
    functionName: do_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - do_log_ctx
    linkageType: ''
    returnType: void
    signature: void do_log(struct session *sess, struct stream *s, struct log_orig
      origin)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:5340,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5356,1
    - Dst: build_logline_orig
      Src: /src/haproxy/src/log.c:5357,1
    - Dst: build_logline_orig
      Src: /src/haproxy/src/log.c:5361,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:5363,1
    - Dst: __send_log
      Src: /src/haproxy/src/log.c:5368,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 2
    argNames:
    - s
    - origin
    argTypes:
    - struct stream*
    - struct log_orig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5371
      start: 5322
    functionDepth: 9
    functionLinenumber: 5322
    functionLinenumberEnd: 5371
    functionName: strm_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - lf_expr_isempty
    - LIST_ISEMPTY
    - __send_log
    - build_logline_orig
    linkageType: ''
    returnType: void
    signature: void strm_log(struct stream *s, struct log_orig origin)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_orig
      Src: /src/haproxy/src/log.c:5398,1
    - Dst: log_orig
      Src: /src/haproxy/src/log.c:5400,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:5402,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5409,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:5410,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5416,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:5417,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:5421,1
    - Dst: b_make
      Src: /src/haproxy/src/log.c:5427,1
    - Dst: session_embryonic_build_legacy_err
      Src: /src/haproxy/src/log.c:5428,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:5432,1
    - Dst: __send_log
      Src: /src/haproxy/src/log.c:5437,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - sess
    - embryonic
    argTypes:
    - struct session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5440
      start: 5386
    functionDepth: 9
    functionLinenumber: 5386
    functionLinenumberEnd: 5440
    functionName: _sess_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - sess_build_logline_orig
    - log_orig
    - LIST_ISEMPTY
    - lf_expr_isempty
    - session_embryonic_build_legacy_err
    - __send_log
    - b_make
    linkageType: ''
    returnType: void
    signature: void _sess_log(struct session *sess, int embryonic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/log.c:5450,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/log.c:5451,1
    - Dst: va_end
      Src: /src/haproxy/src/log.c:5454,1
    - Dst: __send_log
      Src: /src/haproxy/src/log.c:5456,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - loggers
    - tag
    - level
    - format
    argTypes:
    - struct list*
    - struct buffer*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5457
      start: 5442
    functionDepth: 9
    functionLinenumber: 5442
    functionLinenumberEnd: 5457
    functionName: app_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - __send_log
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void app_log(struct list *loggers, struct buffer *tag, int level, const
      char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/log.c:5473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - buf
    - buflen
    - level
    - facility
    - metadata
    - message
    - size
    argTypes:
    - char*
    - size_t
    - int*
    - int*
    - struct ist*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5474
      start: 5465
    functionDepth: 0
    functionLinenumber: 5465
    functionLinenumberEnd: 5474
    functionName: prepare_log_message
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void prepare_log_message(char *buf, size_t buflen, int *level, int
      *facility,\n                                struct ist *metadata, char **message,
      size_t *size)"
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/log.c:5510,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:5529,1
    - Dst: memcmp
      Src: /src/haproxy/src/log.c:5701,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:5707,1
    - Dst: isttest
      Src: /src/haproxy/src/log.c:5757,1
    CyclomaticComplexity: 110
    EdgeCount: 110
    ICount: 223
    argCount: 7
    argNames:
    - buf
    - buflen
    - level
    - facility
    - metadata
    - message
    - size
    argTypes:
    - char*
    - size_t
    - int*
    - int*
    - struct ist*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5792
      start: 5485
    functionDepth: 1
    functionLinenumber: 5485
    functionLinenumberEnd: 5792
    functionName: parse_log_message
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - ist2
    - isttest
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void parse_log_message(char *buf, size_t buflen, int *level, int *facility,\n
      \                      struct ist *metadata, char **message, size_t *size)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:5812,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/log.c:5813,1
    - Dst: prepare_log_message
      Src: /src/haproxy/src/log.c:5815,1
    - Dst: parse_log_message
      Src: /src/haproxy/src/log.c:5820,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:5822,1
    - Dst: sa2str
      Src: /src/haproxy/src/log.c:5828,1
    - Dst: ist
      Src: /src/haproxy/src/log.c:5832,1
    - Dst: ist
      Src: /src/haproxy/src/log.c:5837,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:5842,1
    - Dst: ist
      Src: /src/haproxy/src/log.c:5846,1
    - Dst: ist
      Src: /src/haproxy/src/log.c:5849,1
    - Dst: process_send_log
      Src: /src/haproxy/src/log.c:5855,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:5856,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 4
    argNames:
    - frontend
    - l
    - saddr
    - buf
    argTypes:
    - struct proxy*
    - struct listener*
    - struct sockaddr_storage*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5857
      start: 5800
    functionDepth: 8
    functionLinenumber: 5800
    functionLinenumberEnd: 5857
    functionName: syslog_process_message
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - ist
    - _HA_ATOMIC_INC
    - memprintf
    - ha_free
    - process_send_log
    - prepare_log_message
    - proxy_inc_fe_req_ctr
    - parse_log_message
    - real_family
    - sa2str
    linkageType: ''
    returnType: void
    signature: "void syslog_process_message(struct proxy *frontend, struct listener
      *l,\n                                   const struct sockaddr_storage *saddr,\n
      \                                  struct buffer *buf)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/log.c:5865,1
    - Dst: objt_listener
      Src: /src/haproxy/src/log.c:5866,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:5870,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/log.c:5875,1
    - Dst: recvfrom
      Src: /src/haproxy/src/log.c:5887,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/log.c:5892,1
    - Dst: syslog_process_message
      Src: /src/haproxy/src/log.c:5897,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5903
      start: 5862
    functionDepth: 9
    functionLinenumber: 5862
    functionLinenumberEnd: 5903
    functionName: syslog_fd_handler
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - syslog_process_message
    - recvfrom
    - BUG_ON
    - fd_recv_ready
    - get_trash_chunk
    - fd_cant_recv
    - objt_listener
    linkageType: ''
    returnType: void
    signature: void syslog_fd_handler(int fd)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/log.c:5910,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/log.c:5911,1
    - Dst: strm_fe
      Src: /src/haproxy/src/log.c:5912,1
    - Dst: strm_li
      Src: /src/haproxy/src/log.c:5913,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/log.c:5914,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:5919,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/log.c:5919,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/log.c:5920,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/log.c:5924,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/log.c:5925,1
    - Dst: applet_getchar
      Src: /src/haproxy/src/log.c:5938,1
    - Dst: applet_getline
      Src: /src/haproxy/src/log.c:5948,1
    - Dst: applet_getword
      Src: /src/haproxy/src/log.c:5972,1
    - Dst: strtol
      Src: /src/haproxy/src/log.c:5981,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/log.c:5989,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/log.c:6002,1
    - Dst: sc_conn
      Src: /src/haproxy/src/log.c:6004,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/log.c:6005,1
    - Dst: conn_src
      Src: /src/haproxy/src/log.c:6006,1
    - Dst: syslog_process_message
      Src: /src/haproxy/src/log.c:6008,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/log.c:6013,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/log.c:6018,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:6023,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:6025,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:6031,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:6033,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/log.c:6036,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/log.c:6037,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 104
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6041
      start: 5908
    functionDepth: 9
    functionLinenumber: 5908
    functionLinenumberEnd: 6041
    functionName: syslog_io_handler
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_conn
    - applet_need_more_data
    - applet_skip_input
    - applet_getword
    - get_trash_chunk
    - appctx_sc
    - strm_fe
    - __sc_strm
    - strtol
    - applet_reset_input
    - applet_set_eos
    - strm_li
    - syslog_process_message
    - applet_set_error
    - applet_getline
    - applet_input_data
    - conn_get_src
    - _HA_ATOMIC_INC
    - applet_fl_test
    - applet_getchar
    - appctx_wakeup
    - conn_src
    - applet_getblk
    - applet_get_inbuf
    linkageType: ''
    returnType: void
    signature: void syslog_io_handler(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/log.c:6067,1
    - Dst: ulltoa
      Src: /src/haproxy/src/log.c:6068,1
    - Dst: b_size
      Src: /src/haproxy/src/log.c:6068,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:6075,1
    - Dst: b_size
      Src: /src/haproxy/src/log.c:6075,1
    - Dst: vp_peek_ofs
      Src: /src/haproxy/src/log.c:6079,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/log.c:6080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - ctx
    - v1
    - v2
    - ofs
    - len
    - delim
    argTypes:
    - void*
    - struct ist
    - struct ist
    - size_t
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6085
      start: 6061
    functionDepth: 1
    functionLinenumber: 6061
    functionLinenumberEnd: 6085
    functionName: syslog_applet_append_event
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ulltoa
    - vp_peek_ofs
    - b_size
    - chunk_reset
    - applet_putchk
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t syslog_applet_append_event(void *ctx, struct ist v1, struct
      ist v2, size_t ofs, size_t len, char delim)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6100,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6102,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/log.c:6107,1
    - Dst: invalid_char
      Src: /src/haproxy/src/log.c:6110,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6112,1
    - Dst: log_forward_by_name
      Src: /src/haproxy/src/log.c:6118,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6120,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/log.c:6126,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6128,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:6129,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/log.c:6135,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:6138,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:6140,1
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/log.c:6145,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6147,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/log.c:6154,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6163,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/log.c:6164,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6168,1
    - Dst: atol
      Src: /src/haproxy/src/log.c:6172,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/log.c:6173,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6176,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/log.c:6177,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6181,1
    - Dst: atol
      Src: /src/haproxy/src/log.c:6185,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/log.c:6186,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6189,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/log.c:6197,1
    - Dst: xprt_get
      Src: /src/haproxy/src/log.c:6198,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6200,1
    - Dst: str2listener
      Src: /src/haproxy/src/log.c:6208,1
    - Dst: indent_msg
      Src: /src/haproxy/src/log.c:6210,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6211,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6214,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6220,1
    - Dst: bind_parse_args_list
      Src: /src/haproxy/src/log.c:6225,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6232,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/log.c:6240,1
    - Dst: xprt_get
      Src: /src/haproxy/src/log.c:6241,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6243,1
    - Dst: str2receiver
      Src: /src/haproxy/src/log.c:6250,1
    - Dst: indent_msg
      Src: /src/haproxy/src/log.c:6252,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6253,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6256,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6262,1
    - Dst: bind_find_kw
      Src: /src/haproxy/src/log.c:6269,1
    - Dst: struct bind_kw*::parse
      Src: /src/haproxy/src/log.c:6272,1
    - Dst: indent_msg
      Src: /src/haproxy/src/log.c:6276,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6277,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6280,1
    - Dst: bind_find_best_kw
      Src: /src/haproxy/src/log.c:6288,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6290,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6293,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6299,1
    - Dst: parse_logger
      Src: /src/haproxy/src/log.c:6300,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6301,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6306,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6310,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6311,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6317,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/log.c:6321,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6323,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6326,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6329,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6333,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/log.c:6337,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6339,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6341,1
    - Dst: cfg_parse_listen_match_option
      Src: /src/haproxy/src/log.c:6353,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6362,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6365,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6367,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6369,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6371,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6375,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6396,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6400,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6405,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 262
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6407
      start: 6093
    functionDepth: 7
    functionLinenumber: 6093
    functionLinenumberEnd: 6407
    functionName: cfg_parse_log_forward
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_logger
    - proxy_type_str
    - log_forward_by_name
    - copy_file_name
    - str2receiver
    - bind_conf_alloc
    - bind_parse_args_list
    - str2listener
    - invalid_char
    - alertif_too_many_args
    - ha_free
    - atol
    - strcmp
    - struct bind_kw*::parse
    - bind_find_best_kw
    - indent_msg
    - MS_TO_TICKS
    - alloc_new_proxy
    - list_for_each_entry
    - xprt_get
    - proxy_find_by_name
    - bind_find_kw
    - cfg_parse_listen_match_option
    - ha_alert
    - ha_warning
    - parse_time_err
    - warnifnotcap
    linkageType: ''
    returnType: int
    signature: int cfg_parse_log_forward(const char *file, int linenum, char **args,
      int kwm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_init
      Src: /src/haproxy/src/log.c:6411,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/log.c:6412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lprof_step
    argTypes:
    - struct log_profile_step*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6414
      start: 6409
    functionDepth: 2
    functionLinenumber: 6409
    functionLinenumberEnd: 6414
    functionName: log_profile_step_init
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    linkageType: ''
    returnType: void
    signature: void log_profile_step_init(struct log_profile_step *lprof_step)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:6421,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:6422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lprof_step
    argTypes:
    - struct log_profile_step*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6423
      start: 6416
    functionDepth: 4
    functionLinenumber: 6416
    functionLinenumberEnd: 6423
    functionName: log_profile_step_deinit
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lf_expr_deinit
    linkageType: ''
    returnType: void
    signature: void log_profile_step_deinit(struct log_profile_step *lprof_step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_profile_step_deinit
      Src: /src/haproxy/src/log.c:6427,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lprof_step
    argTypes:
    - struct log_profile_step*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6429
      start: 6425
    functionDepth: 5
    functionLinenumber: 6425
    functionLinenumberEnd: 6429
    functionName: log_profile_step_free
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - log_profile_step_deinit
    - free
    linkageType: ''
    returnType: void
    signature: void log_profile_step_free(struct log_profile_step *lprof_step)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:6443,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/log.c:6444,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6445,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:6452,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/log.c:6453,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - px
    - step_name
    - step
    - err
    argTypes:
    - struct proxy*
    - char*
    - struct log_profile_step*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6463
      start: 6436
    functionDepth: 6
    functionLinenumber: 6436
    functionLinenumberEnd: 6463
    functionName: log_profile_step_postcheck
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lf_expr_isempty
    - memprintf
    - lf_expr_postcheck
    linkageType: ''
    returnType: int
    signature: "int log_profile_step_postcheck(struct proxy *px, const char *step_name,\n
      \                                            struct log_profile_step *step,\n
      \                                            char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6482,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6483,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6484,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6485,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6486,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6487,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6488,1
    - Dst: eb32_first
      Src: /src/haproxy/src/log.c:6492,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/log.c:6494,1
    - Dst: eb32_next
      Src: /src/haproxy/src/log.c:6495,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6496,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 3
    argNames:
    - px
    - prof
    - err
    argTypes:
    - struct proxy*
    - struct log_profile*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6501
      start: 6470
    functionDepth: 7
    functionLinenumber: 6470
    functionLinenumberEnd: 6501
    functionName: log_profile_postcheck
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - eb32_entry
    - eb32_first
    - log_profile_step_postcheck
    - eb32_next
    linkageType: ''
    returnType: int
    signature: int log_profile_postcheck(struct proxy *px, struct log_profile *prof,
      char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6508,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6509,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/log.c:6510,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6512,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6513,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6514,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6515,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6516,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6517,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6518,1
    - Dst: eb32_first
      Src: /src/haproxy/src/log.c:6521,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/log.c:6523,1
    - Dst: eb32_next
      Src: /src/haproxy/src/log.c:6524,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/log.c:6525,1
    - Dst: log_profile_step_deinit
      Src: /src/haproxy/src/log.c:6526,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6527,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - prof
    argTypes:
    - struct log_profile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6531
      start: 6503
    functionDepth: 6
    functionLinenumber: 6503
    functionLinenumberEnd: 6531
    functionName: log_profile_free
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - ha_free
    - eb32_delete
    - eb32_first
    - eb32_next
    - free
    - eb32_entry
    - chunk_destroy
    - log_profile_step_free
    - log_profile_step_deinit
    linkageType: ''
    returnType: void
    signature: void log_profile_free(struct log_profile *prof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/log.c:6538,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:6539,1
    - Dst: log_profile_free
      Src: /src/haproxy/src/log.c:6540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6542
      start: 6534
    functionDepth: 7
    functionLinenumber: 6534
    functionLinenumberEnd: 6542
    functionName: deinit_log_profiles
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - log_profile_free
    linkageType: ''
    returnType: void
    signature: void deinit_log_profiles()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6548,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6553
      start: 6544
    functionDepth: 0
    functionLinenumber: 6544
    functionLinenumberEnd: 6553
    functionName: log_profile_find_by_name
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct log_profile
    signature: struct log_profile *log_profile_find_by_name(const char *name)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6569,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6571,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/log.c:6576,1
    - Dst: invalid_char
      Src: /src/haproxy/src/log.c:6579,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6581,1
    - Dst: log_profile_find_by_name
      Src: /src/haproxy/src/log.c:6587,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6589,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:6594,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6595,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6596,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6601,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:6606,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6608,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6610,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/log.c:6614,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/log.c:6615,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6615,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:6615,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:6615,1
    - Dst: b_orig
      Src: /src/haproxy/src/log.c:6616,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/log.c:6617,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6618,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6623,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6632,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6634,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6636,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6638,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6640,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6642,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6644,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6651,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6652,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:6654,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6656,1
    - Dst: log_profile_step_init
      Src: /src/haproxy/src/log.c:6660,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/log.c:6663,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6675,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6677,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6679,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6682,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6687,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6688,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6690,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:6697,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6699,1
    - Dst: log_profile_step_init
      Src: /src/haproxy/src/log.c:6703,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6710,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6718,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6720,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:6728,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6731,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6737,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6738,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/log.c:6741,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6744,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:6746,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6754,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6761,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6766,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 163
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6768
      start: 6562
    functionDepth: 8
    functionLinenumber: 6562
    functionLinenumberEnd: 6768
    functionName: cfg_parse_log_profile
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memprintf
    - LIST_APPEND
    - free
    - chunk_destroy
    - invalid_char
    - eb32_insert
    - alertif_too_many_args
    - ha_free
    - strcmp
    - malloc
    - b_orig
    - calloc
    - log_profile_find_by_name
    - lf_expr_deinit
    - strdup
    - list_for_each_entry
    - lf_expr_compile
    - ha_alert
    - log_profile_step_init
    - chunk_initlen
    - strlen
    linkageType: ''
    returnType: int
    signature: int cfg_parse_log_profile(const char *file, int linenum, char **args,
      int kwm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6787,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6788,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6795,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:6799,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6803,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6805,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:6809,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/log.c:6810,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6814,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6817
      start: 6782
    functionDepth: 3
    functionLinenumber: 6782
    functionLinenumberEnd: 6817
    functionName: log_orig_register
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - malloc
    - eb32_insert
    - list_for_each_entry
    - strcmp
    - free
    - LIST_APPEND
    - ha_alert
    - strdup
    linkageType: ''
    returnType: enum log_orig_id
    signature: enum log_orig_id log_orig_register(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/log.c:6824,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:6825,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6826,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6829
      start: 6820
    functionDepth: 3
    functionLinenumber: 6820
    functionLinenumberEnd: 6829
    functionName: deinit_log_origins
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - free
    linkageType: ''
    returnType: void
    signature: void deinit_log_origins()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: resolve_logger
      Src: /src/haproxy/src/log.c:6846,1
    - Dst: e_func
      Src: /src/haproxy/src/log.c:6857,1
    - Dst: e_func
      Src: /src/haproxy/src/log.c:6860,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - px
    - loggers
    - section
    - section_name
    argTypes:
    - struct proxy*
    - struct list*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6867
      start: 6836
    functionDepth: 9
    functionLinenumber: 6836
    functionLinenumberEnd: 6867
    functionName: postresolve_logger_list
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 2
    functionsReached:
    - resolve_logger
    - ha_free
    - e_func
    linkageType: ''
    returnType: int
    signature: "int postresolve_logger_list(struct proxy *px, struct list *loggers,\n
      \                           const char *section, const char *section_name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: resolve_logger
      Src: /src/haproxy/src/log.c:6846,1
    - Dst: e_func
      Src: /src/haproxy/src/log.c:6857,1
    - Dst: e_func
      Src: /src/haproxy/src/log.c:6860,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6865
      start: 6842
    functionDepth: 9
    functionLinenumber: 6842
    functionLinenumberEnd: 6865
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 151
    functionsReached:
    - resolve_logger
    - ha_free
    - e_func
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(logger, loggers, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: postresolve_logger_list
      Src: /src/haproxy/src/log.c:6878,1
    - Dst: postresolve_logger_list
      Src: /src/haproxy/src/log.c:6881,1
    - Dst: postresolve_logger_list
      Src: /src/haproxy/src/log.c:6884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6887
      start: 6872
    functionDepth: 10
    functionLinenumber: 6872
    functionLinenumberEnd: 6887
    functionName: postresolve_loggers
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - postresolve_logger_list
    linkageType: ''
    returnType: int
    signature: int postresolve_loggers()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6903,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:6904,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6910,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6916,1
    - Dst: strcspn
      Src: /src/haproxy/src/log.c:6929,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6932,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6934,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6936,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6938,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6940,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6945,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:6946,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6946,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6953,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6957,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6958,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:6964,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6978
      start: 6894
    functionDepth: 5
    functionLinenumber: 6894
    functionLinenumberEnd: 6978
    functionName: px_parse_log_steps
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memprintf
    - proxy_type_str
    - BUG_ON
    - list_for_each_entry
    - strcspn
    - strcmp
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int px_parse_log_steps(char **args, int section_type, struct proxy
      *curpx,\n                              const struct proxy *defpx, const char
      *file, int line,\n                              char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:6987,1
    - Dst: log_orig
      Src: /src/haproxy/src/log.c:6989,1
    - Dst: do_log_ctx
      Src: /src/haproxy/src/log.c:6994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6996
      start: 6981
    functionDepth: 10
    functionLinenumber: 6981
    functionLinenumberEnd: 6996
    functionName: do_log_action
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - do_log_ctx
    - log_orig
    - BUG_ON
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return do_log_action(struct act_rule *rule, struct proxy
      *px,\n                                     struct session *sess, struct stream
      *s, int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_profile_find_by_name
      Src: /src/haproxy/src/log.c:7003,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:7005,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:7006,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:7010,1
    - Dst: log_profile_postcheck
      Src: /src/haproxy/src/log.c:7012,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:7013,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:7013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7019
      start: 6998
    functionDepth: 8
    functionLinenumber: 6998
    functionLinenumberEnd: 7019
    functionName: do_log_action_check
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - log_profile_postcheck
    - memprintf
    - proxy_type_str
    - ha_free
    - log_profile_find_by_name
    linkageType: ''
    returnType: int
    signature: int do_log_action_check(struct act_rule *rule, struct proxy *px, char
      **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:7023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7024
      start: 7021
    functionDepth: 1
    functionLinenumber: 7021
    functionLinenumberEnd: 7024
    functionName: do_log_action_release
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void do_log_action_release(struct act_rule *rule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:7045,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:7047,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:7052,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:7054,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - id
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - enum log_orig_id
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7066
      start: 7032
    functionDepth: 5
    functionLinenumber: 7032
    functionLinenumberEnd: 7066
    functionName: do_log_parse_act
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - memprintf
    - strcmp
    - strdup
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret do_log_parse_act(enum log_orig_id id,\n                                    const
      char **args, int *orig_arg, struct proxy *px,\n                                    struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: lshift_args
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lshift_args(char **args)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:175,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse.c:183,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse.c:187,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:202,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:206,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:206,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:208,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:216,1
    - Dst: create_listeners
      Src: /src/haproxy/src/cfgparse.c:231,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:232,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:236,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:239,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 6
    argNames:
    - str
    - curproxy
    - bind_conf
    - file
    - line
    - err
    argTypes:
    - char*
    - struct proxy*
    - struct bind_conf*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 169
    functionDepth: 5
    functionLinenumber: 169
    functionLinenumberEnd: 241
    functionName: str2listener
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 5
    functionsReached:
    - memprintf
    - strchr
    - free
    - create_listeners
    - str2sa_range
    - strdup
    - strlen
    linkageType: ''
    returnType: int
    signature: int str2listener(char *str, struct proxy *curproxy, struct bind_conf
      *bind_conf, const char *file, int line, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:261,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse.c:269,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse.c:273,1
    - Dst: create_listeners
      Src: /src/haproxy/src/cfgparse.c:281,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:282,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:286,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:289,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 6
    argNames:
    - str
    - curproxy
    - bind_conf
    - file
    - line
    - err
    argTypes:
    - char*
    - struct proxy*
    - struct bind_conf*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 255
    functionDepth: 5
    functionLinenumber: 255
    functionLinenumberEnd: 291
    functionName: str2receiver
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - memprintf
    - strchr
    - free
    - create_listeners
    - str2sa_range
    - strdup
    linkageType: ''
    returnType: int
    signature: int str2receiver(char *str, struct proxy *curproxy, struct bind_conf
      *bind_conf, const char *file, int line, char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:311,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:312,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - proxy
    - cap
    - file
    - line
    - arg
    - hint
    argTypes:
    - struct proxy*
    - int
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: warnifnotcap
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 18
    functionsReached:
    - proxy_type_str
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int warnifnotcap(struct proxy *proxy, int cap, const char *file, int
      line, const char *arg, const char *hint)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:336,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:337,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - proxy
    - cap
    - file
    - line
    - arg
    - hint
    argTypes:
    - struct proxy*
    - int
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 341
    functionName: failifnotcap
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - proxy_type_str
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int failifnotcap(struct proxy *proxy, int cap, const char *file, int
      line, const char *arg, const char *hint)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:361,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:363,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - maxarg
    - index
    - args
    - msg
    - err_code
    argTypes:
    - int
    - int
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 352
    functionDepth: 5
    functionLinenumber: 352
    functionLinenumberEnd: 371
    functionName: too_many_args_idx
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 13
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int too_many_args_idx(int maxarg, int index, char **args, char **msg,
      int *err_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args_idx
      Src: /src/haproxy/src/cfgparse.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - maxarg
    - args
    - msg
    - err_code
    argTypes:
    - int
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 6
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: too_many_args
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 68
    functionsReached:
    - too_many_args_idx
    linkageType: ''
    returnType: int
    signature: int too_many_args(int maxarg, char **args, char **msg, int *err_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:395,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:397,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:400,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - maxarg
    - index
    - file
    - linenum
    - args
    - err_code
    argTypes:
    - int
    - int
    - char*
    - int
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 404
    functionName: alertif_too_many_args_idx
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 13
    functionsReached:
    - memprintf
    - ha_alert
    - free
    linkageType: ''
    returnType: int
    signature: int alertif_too_many_args_idx(int maxarg, int index, const char *file,
      int linenum, char **args, int *err_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - maxarg
    - file
    - linenum
    - args
    - err_code
    argTypes:
    - int
    - char*
    - int
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 6
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: alertif_too_many_args
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 12
    functionsReached:
    - alertif_too_many_args_idx
    linkageType: ''
    returnType: int
    signature: int alertif_too_many_args(int maxarg, const char *file, int linenum,
      char **args, int *err_code)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: acl_cond_conflicts
      Src: /src/haproxy/src/cfgparse.c:430,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:433,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse.c:434,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:437,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cfgparse.c:438,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse.c:438,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/cfgparse.c:442,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:446,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse.c:447,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:450,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse.c:451,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - cond
    - where
    - err
    argTypes:
    - struct acl_cond*
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 421
    functionDepth: 5
    functionLinenumber: 421
    functionLinenumberEnd: 454
    functionName: warnif_cond_conflicts
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - memprintf
    - sample_ckp_names
    - acl_cond_kw_conflicts
    - acl_cond_conflicts
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: "int warnif_cond_conflicts(const struct acl_cond *cond, unsigned int
      where,\n                          char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - px
    - cond
    argTypes:
    - struct proxy*
    - struct acl_cond*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: warnif_tcp_http_cond
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 2
    functionsReached:
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int warnif_tcp_http_cond(const struct proxy *px, const struct acl_cond
      *cond)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/cfgparse.c:488,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/cfgparse.c:494,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/cfgparse.c:495,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/cfgparse.c:504,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/cfgparse.c:505,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:513,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:513,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - word
    - list
    - section
    - extra
    argTypes:
    - char*
    - struct list*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 479
    functionDepth: 4
    functionLinenumber: 479
    functionLinenumberEnd: 516
    functionName: cfg_find_best_match
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 2
    functionsReached:
    - word_fingerprint_distance
    - make_word_fingerprint
    - strlen
    linkageType: ''
    returnType: char
    signature: char *cfg_find_best_match(const char *word, const struct list *list,
      int section, const char **extra)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/cfgparse.c:494,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/cfgparse.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 501
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 152
    functionsReached:
    - word_fingerprint_distance
    - make_word_fingerprint
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(kwl, list, list)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse.c:530,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:536,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:538,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:540,1
    - Dst: isdigit
      Src: /src/haproxy/src/cfgparse.c:549,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:550,1
    - Dst: str2uic
      Src: /src/haproxy/src/cfgparse.c:555,1
    - Dst: str2uic
      Src: /src/haproxy/src/cfgparse.c:557,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:566,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 5
    argNames:
    - arg
    - proc
    - max
    - autoinc
    - err
    argTypes:
    - char*
    - unsigned long*
    - int
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 526
    functionDepth: 5
    functionLinenumber: 526
    functionLinenumberEnd: 578
    functionName: parse_process_number
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - strncmp
    - str2uic
    - isdigit
    linkageType: ''
    returnType: int
    signature: int parse_process_number(const char *arg, unsigned long *proc, int
      max, int *autoinc, char **err)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:598,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:600,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:605,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:607,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:618,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:619,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:625,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:626,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:633,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:635,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:640,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:646,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:652,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:654,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:660,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:661,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:671,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:674,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse.c:676,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:680,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:686,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:694,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:697,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:699,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:704,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:708,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse.c:713,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:715,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:721,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:727,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:734,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:741,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:747,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 130
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 590
    functionDepth: 4
    functionLinenumber: 590
    functionLinenumberEnd: 749
    functionName: cfg_parse_mailers
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - invalid_char
    - calloc
    - strcmp
    - xprt_get
    - free
    - ha_alert
    - str2sa_range
    - parse_time_err
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_mailers(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:759,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:762,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:766,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:768,1
    - Dst: netns_store_lookup
      Src: /src/haproxy/src/cfgparse.c:773,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:773,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:774,1
    - Dst: netns_store_insert
      Src: /src/haproxy/src/cfgparse.c:778,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:779,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:788,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 752
    functionDepth: 3
    functionLinenumber: 752
    functionLinenumberEnd: 792
    functionName: cfg_parse_netns
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - invalid_char
    - strcmp
    - ha_alert
    - netns_store_lookup
    - netns_store_insert
    - strlen
    linkageType: ''
    returnType: int
    signature: int cfg_parse_netns(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:801,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:805,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse.c:810,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:813,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:815,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:822,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:823,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:829,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:831,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:836,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:838,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:840,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:852,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:855,1
    - Dst: parse
      Src: /src/haproxy/src/cfgparse.c:856,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:858,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:859,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:866,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 794
    functionDepth: 7
    functionLinenumber: 794
    functionLinenumberEnd: 872
    functionName: cfg_parse_users
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - invalid_char
    - alertif_too_many_args
    - list_for_each_entry
    - parse
    - calloc
    - ha_free
    - strcmp
    - free
    - ha_alert
    - ha_warning
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_users(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:882,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:888,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:890,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:900,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:901,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:907,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:909,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:914,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:916,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:918,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:925,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:927,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:930,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:931,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:932,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:935,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:939,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:942,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:943,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:944,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 7
    argNames:
    - args
    - section_type
    - curproxy
    - defproxy
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 954
    functionName: cfg_parse_users_group
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - invalid_char
    - calloc
    - strcmp
    - free
    - ha_alert
    - ha_warning
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_users_group(char **args, int section_type, struct proxy
      *curproxy, const struct proxy *defproxy, const char *file, int linenum, char
      **err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:963,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:972,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:973,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:979,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:981,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:986,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:994,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/cfgparse.c:999,1
    - Dst: crypt
      Src: /src/haproxy/src/cfgparse.c:1000,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1001,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/cfgparse.c:1006,1
    - Dst: tv_ms_elapsed
      Src: /src/haproxy/src/cfgparse.c:1007,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:1009,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:1013,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1017,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1020,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1021,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1025,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1026,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1030,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 7
    argNames:
    - args
    - section_type
    - curproxy
    - defproxy
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 1039
    functionName: cfg_parse_users_user
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - tv_ms_elapsed
    - calloc
    - strcmp
    - gettimeofday
    - crypt
    - ha_alert
    - ha_warning
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_users_user(char **args, int section_type, struct proxy
      *curproxy, const struct proxy *defproxy, const char *file, int linenum, char
      **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse.c:1049,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1053,1
    - Dst: my_strndup
      Src: /src/haproxy/src/cfgparse.c:1060,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:1061,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1063,1
    - Dst: isspace
      Src: /src/haproxy/src/cfgparse.c:1071,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1074,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1081,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1086,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - file
    - linenum
    - line
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1041
    functionDepth: 3
    functionLinenumber: 1041
    functionLinenumberEnd: 1088
    functionName: cfg_parse_scope
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - isspace
    - invalid_char
    - my_strndup
    - strchr
    - free
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int cfg_parse_scope(const char *file, int linenum, char *line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_uint64
      Src: /src/haproxy/src/cfgparse.c:1098,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1101,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1107,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - track_sc_num
    - arg
    - end
    - errmsg
    argTypes:
    - unsigned int*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1090
    functionDepth: 5
    functionLinenumber: 1090
    functionLinenumberEnd: 1117
    functionName: cfg_parse_track_sc_num
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - read_uint64
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_track_sc_num(unsigned int *track_sc_num,\n                       const
      char *arg, const char *end, char **errmsg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1125,1
    - Dst: _ha_diag_warning
      Src: /src/haproxy/src/cfgparse.c:1127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - section_name
    - file
    - linenum
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1132
    functionName: check_section_position
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - strcmp
    - _ha_diag_warning
    linkageType: ''
    returnType: void
    signature: void check_section_position(char *section_name, const char *file, int
      linenum)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/haproxy/src/cfgparse.c:1148,1
    - Dst: getcwd
      Src: /src/haproxy/src/cfgparse.c:1153,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1155,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse.c:1155,1
    - Dst: chdir
      Src: /src/haproxy/src/cfgparse.c:1159,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1161,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse.c:1161,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse.c:1175,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1177,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1185,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse.c:1188,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1195,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse.c:1198,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse.c:1200,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse.c:1202,1
    - Dst: chdir
      Src: /src/haproxy/src/cfgparse.c:1206,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1208,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse.c:1208,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 3
    argNames:
    - file
    - origin
    - err
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1140
    functionDepth: 5
    functionLinenumber: 1140
    functionLinenumberEnd: 1213
    functionName: cfg_apply_default_path
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - getcwd
    - memprintf
    - memcpy
    - chdir
    - strerror
    - strrchr
    - snprintf
    linkageType: ''
    returnType: int
    signature: int cfg_apply_default_path(const char *file, const char *origin, char
      **err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1224,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1226,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1228,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1230,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1233,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1239,1
    - Dst: cfg_apply_default_path
      Src: /src/haproxy/src/cfgparse.c:1242,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1243,1
    - Dst: cfg_apply_default_path
      Src: /src/haproxy/src/cfgparse.c:1247,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1248,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1216
    functionDepth: 6
    functionLinenumber: 1216
    functionLinenumberEnd: 1257
    functionName: cfg_parse_global_def_path
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - cfg_apply_default_path
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_def_path(char **args, int section_type, struct
      proxy *curpx,\n                                     const struct proxy *defpx,
      const char *file, int line,\n                                     char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:1269,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1271,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1275,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1277,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:1281,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1286,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - li
    - filename
    - err
    argTypes:
    - struct list*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1265
    functionDepth: 5
    functionLinenumber: 1265
    functionLinenumberEnd: 1290
    functionName: list_append_cfgfile
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - memprintf
    - calloc
    - free
    - LIST_APPEND
    - strdup
    linkageType: ''
    returnType: int
    signature: int list_append_cfgfile(struct list *li, const char *filename, char
      **err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/haproxy/src/cfgparse.c:1307,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1308,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse.c:1309,1
    - Dst: fopen
      Src: /src/haproxy/src/cfgparse.c:1317,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1318,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse.c:1319,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1327,1
    - Dst: realloc
      Src: /src/haproxy/src/cfgparse.c:1335,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1337,1
    - Dst: fread
      Src: /src/haproxy/src/cfgparse.c:1345,1
    - Dst: feof
      Src: /src/haproxy/src/cfgparse.c:1348,1
    - Dst: ferror
      Src: /src/haproxy/src/cfgparse.c:1348,1
    - Dst: fclose
      Src: /src/haproxy/src/cfgparse.c:1352,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:1357,1
    - Dst: fclose
      Src: /src/haproxy/src/cfgparse.c:1358,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - filename
    - cfg_content
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1361
    functionName: load_cfg_in_mem
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - fclose
    - strerror
    - ha_free
    - stat
    - feof
    - realloc
    - ha_alert
    - fread
    - ferror
    - fopen
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t load_cfg_in_mem(char *filename, char **cfg_content)
  - BBCount: 132
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/cfgparse.c:1397,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/cfgparse.c:1397,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1398,1
    - Dst: cfg_apply_default_path
      Src: /src/haproxy/src/cfgparse.c:1404,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1405,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1406,1
    - Dst: fgets_from_mem
      Src: /src/haproxy/src/cfgparse.c:1412,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1421,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1432,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:1436,1
    - Dst: realloc
      Src: /src/haproxy/src/cfgparse.c:1445,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/cfgparse.c:1445,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1447,1
    - Dst: isspace
      Src: /src/haproxy/src/cfgparse.c:1474,1
    - Dst: cfg_parse_scope
      Src: /src/haproxy/src/cfgparse.c:1478,1
    - Dst: parse_line
      Src: /src/haproxy/src/cfgparse.c:1488,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:1494,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1496,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:1504,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1506,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:1514,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1516,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:1524,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1526,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:1534,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1536,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/cfgparse.c:1545,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1547,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1560,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/cfgparse.c:1577,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1580,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:1583,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1586,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1599,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1602,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1604,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1613,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:1613,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1616,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1622,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1626,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1629,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1630,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1633,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1634,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1637,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1638,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1638,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1639,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1642,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1642,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1643,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1646,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:1646,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1649,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1652,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1656,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1660,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1661,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1664,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1665,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1669,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1670,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:1670,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1673,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1676,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1680,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1681,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1682,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:1682,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1684,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1687,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1691,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1692,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:1692,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1695,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:1695,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1698,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1701,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1705,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1706,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1708,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1708,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1709,1
    - Dst: HA_ANON_PATH
      Src: /src/haproxy/src/cfgparse.c:1709,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1712,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1715,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1717,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1720,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1721,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:1721,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1724,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1726,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1729,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1730,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1732,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1733,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1736,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:1736,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1739,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1741,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1744,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1745,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:1745,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1746,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:1746,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1749,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1751,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1754,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1755,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:1755,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1758,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1760,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1763,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1764,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:1764,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1767,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1768,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:1768,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1771,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1773,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1776,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1777,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:1778,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:1778,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1780,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1782,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1785,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1786,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1788,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1789,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1792,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1793,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1795,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1796,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1799,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1800,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1802,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1803,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1806,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1807,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1809,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1810,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1813,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1814,1
    - Dst: HA_ANON_PATH
      Src: /src/haproxy/src/cfgparse.c:1814,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1817,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1818,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:1818,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1820,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1822,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1823,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1826,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1826,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1827,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/cfgparse.c:1827,1
    - Dst: MIN
      Src: /src/haproxy/src/cfgparse.c:1832,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1833,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1836,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:1838,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1851,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:1858,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1863,1
    - Dst: cfg_eval_condition
      Src: /src/haproxy/src/cfgparse.c:1878,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:1880,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1882,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1886,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1898,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:1905,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1909,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1916,1
    - Dst: cfg_eval_condition
      Src: /src/haproxy/src/cfgparse.c:1929,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:1931,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1933,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1937,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1949,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1951,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1958,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1965,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1981,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1983,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1990,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2011,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2013,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2019,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2023,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2025,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2031,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2035,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2037,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cfgparse.c:2043,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2046,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2048,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse.c:2054,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2058,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:2085,1
    - Dst: isalnum
      Src: /src/haproxy/src/cfgparse.c:2088,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:2094,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2095,1
    - Dst: isalnum
      Src: /src/haproxy/src/cfgparse.c:2107,1
    - Dst: env_suggest
      Src: /src/haproxy/src/cfgparse.c:2111,1
    - Dst: ist2
      Src: /src/haproxy/src/cfgparse.c:2111,1
    - Dst: isttest
      Src: /src/haproxy/src/cfgparse.c:2112,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cfgparse.c:2113,1
    - Dst: istlen
      Src: /src/haproxy/src/cfgparse.c:2113,1
    - Dst: istptr
      Src: /src/haproxy/src/cfgparse.c:2113,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2125,1
    - Dst: lshift_args
      Src: /src/haproxy/src/cfgparse.c:2127,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2129,1
    - Dst: lshift_args
      Src: /src/haproxy/src/cfgparse.c:2131,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2134,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2135,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2135,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2136,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2136,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2137,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2138,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2139,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2148,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2149,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2153,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:2154,1
    - Dst: check_section_position
      Src: /src/haproxy/src/cfgparse.c:2155,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2166,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2167,1
    - Dst: struct cfg_section*::post_section_parser
      Src: /src/haproxy/src/cfgparse.c:2174,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2191,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2198,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2199,1
    - Dst: struct cfg_section*::section_parser
      Src: /src/haproxy/src/cfgparse.c:2202,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2213,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:2218,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2227,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2228,1
    - Dst: struct cfg_section*::post_section_parser
      Src: /src/haproxy/src/cfgparse.c:2231,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2246,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:2251,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2253,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2254,1
    CyclomaticComplexity: 237
    EdgeCount: 237
    ICount: 610
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct cfgfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 1374
    functionDepth: 6
    functionLinenumber: 1374
    functionLinenumberEnd: 2259
    functionName: parse_cfg
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 2
    functionsReached:
    - ha_notice
    - isttest
    - HA_ANON_STR
    - check_section_position
    - HA_ATOMIC_LOAD
    - lshift_args
    - free
    - env_suggest
    - istlen
    - HA_ANON_ID
    - isspace
    - ist2
    - ha_free
    - parse_line
    - strcmp
    - realloc
    - struct cfg_section*::section_parser
    - cfg_apply_default_path
    - qfprintf
    - istptr
    - cfg_parse_scope
    - malloc
    - sanitize_for_printing
    - my_realloc2
    - ha_diag_warning
    - fgets_from_mem
    - strdup
    - HA_ANON_PATH
    - cfg_eval_condition
    - list_for_each_entry
    - hash_ipanon
    - struct cfg_section*::post_section_parser
    - MIN
    - ha_alert
    - ha_warning
    - array_size_or_fail
    - isalnum
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_cfg(const struct cfgfile *cfg)
  - BBCount: 83
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2308,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2318,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2330,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse.c:2338,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse.c:2339,1
    - Dst: thread_map_to_groups
      Src: /src/haproxy/src/cfgparse.c:2341,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse.c:2346,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse.c:2348,1
    - Dst: userlist_postinit
      Src: /src/haproxy/src/cfgparse.c:2357,1
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/cfgparse.c:2378,1
    - Dst: srv_preinit
      Src: /src/haproxy/src/cfgparse.c:2379,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2384,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2386,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2387,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2388,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2389,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2390,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2391,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2392,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2394,1
    - Dst: smp_resolve_args
      Src: /src/haproxy/src/cfgparse.c:2398,1
    - Dst: indent_msg
      Src: /src/haproxy/src/cfgparse.c:2401,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2402,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:2403,1
    - Dst: acl_find_targets
      Src: /src/haproxy/src/cfgparse.c:2406,1
    - Dst: proxy_check_http_errors
      Src: /src/haproxy/src/cfgparse.c:2409,1
    - Dst: proxy_init_per_thr
      Src: /src/haproxy/src/cfgparse.c:2417,1
    - Dst: proxy_get_next_id
      Src: /src/haproxy/src/cfgparse.c:2427,1
    - Dst: proxy_index_id
      Src: /src/haproxy/src/cfgparse.c:2429,1
    - Dst: ONLY_ONCE
      Src: /src/haproxy/src/cfgparse.c:2433,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2434,1
    - Dst: ONLY_ONCE
      Src: /src/haproxy/src/cfgparse.c:2438,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2439,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:2450,1
    - Dst: proxy_finalize
      Src: /src/haproxy/src/cfgparse.c:2456,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/cfgparse.c:2489,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2491,1
    - Dst: task_new_on
      Src: /src/haproxy/src/cfgparse.c:2499,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2501,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/cfgparse.c:2508,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/cfgparse.c:2509,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2527,1
    - Dst: struct bind_conf*::xprt::prepare_bind_conf
      Src: /src/haproxy/src/cfgparse.c:2529,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2548,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse.c:2554,1
    - Dst: typeof
      Src: /src/haproxy/src/cfgparse.c:2554,1
    - Dst: listener_get_next_id
      Src: /src/haproxy/src/cfgparse.c:2558,1
    - Dst: listener_index_id
      Src: /src/haproxy/src/cfgparse.c:2560,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:2566,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:2568,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:2572,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2584,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:2588,1
    - Dst: li_init_per_thr
      Src: /src/haproxy/src/cfgparse.c:2593,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2599,1
    - Dst: struct bind_conf*::xprt::destroy_bind_conf
      Src: /src/haproxy/src/cfgparse.c:2601,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/cfgparse.c:2608,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2614,1
    - Dst: stop_proxy
      Src: /src/haproxy/src/cfgparse.c:2672,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2676,1
    - Dst: stop_proxy
      Src: /src/haproxy/src/cfgparse.c:2679,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2693,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2694,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:2704,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:2704,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:2705,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:2710,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cfgparse.c:2715,1
    - Dst: typeof
      Src: /src/haproxy/src/cfgparse.c:2715,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2719,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2723,1
    - Dst: bind_complete_thread_setup
      Src: /src/haproxy/src/cfgparse.c:2729,1
    - Dst: struct bind_conf*::xprt::prepare_bind_conf
      Src: /src/haproxy/src/cfgparse.c:2737,1
    - Dst: peers_init_sync
      Src: /src/haproxy/src/cfgparse.c:2740,1
    - Dst: peers_alloc_dcache
      Src: /src/haproxy/src/cfgparse.c:2740,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2741,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2754,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2760,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2774,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2775,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2782,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2789,1
    - Dst: stktable_init
      Src: /src/haproxy/src/cfgparse.c:2798,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2799,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:2800,1
    - Dst: stktable_init
      Src: /src/haproxy/src/cfgparse.c:2814,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2815,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:2816,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2836,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2842,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2843,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2850,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2852,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:2862,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2865,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:2866,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2867,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2874,1
    - Dst: struct cfg_postparser*::func
      Src: /src/haproxy/src/cfgparse.c:2876,1
    - Dst: get_tainted
      Src: /src/haproxy/src/cfgparse.c:2880,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2881,1
    CyclomaticComplexity: 146
    EdgeCount: 146
    ICount: 389
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2891
      start: 2270
    functionDepth: 5
    functionLinenumber: 2270
    functionLinenumberEnd: 2891
    functionName: check_config_validity
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - task_new_anywhere
    - memprintf
    - smp_resolve_args
    - proxy_type_str
    - proxy_index_id
    - struct cfg_postparser*::func
    - free
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - acl_find_targets
    - peers_alloc_dcache
    - listener_index_id
    - struct bind_conf*::xprt::prepare_bind_conf
    - peers_init_sync
    - ONLY_ONCE
    - LIST_ELEM
    - ha_free
    - proxy_init_per_thr
    - listener_get_next_id
    - strcmp
    - indent_msg
    - stktable_init
    - srv_preinit
    - typeof
    - struct bind_conf*::xprt::destroy_bind_conf
    - get_tainted
    - LIST_PREV
    - proxy_finalize
    - calloc
    - task_new_on
    - bind_complete_thread_setup
    - stop_proxy
    - proxy_get_next_id
    - check_action_rules
    - li_init_per_thr
    - strdup
    - BUG_ON
    - list_for_each_entry
    - HA_SPIN_INIT
    - xprt_get
    - MT_LIST_INIT
    - thread_map_to_groups
    - LIST_ISEMPTY
    - ha_alert
    - ha_warning
    - userlist_postinit
    - proxy_check_http_errors
    - create_pool
    linkageType: ''
    returnType: int
    signature: int check_config_validity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:2899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct cfg_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2897
    functionDepth: 1
    functionLinenumber: 2897
    functionLinenumberEnd: 2900
    functionName: cfg_register_keywords
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void cfg_register_keywords(struct cfg_kw_list *kwl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cfgparse.c:2907,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse.c:2908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct cfg_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2905
    functionDepth: 1
    functionLinenumber: 2905
    functionLinenumberEnd: 2909
    functionName: cfg_unregister_keywords
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void cfg_unregister_keywords(struct cfg_kw_list *kwl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2924,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2925,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2926,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:2932,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2934,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:2942,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - section_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2916
    functionDepth: 1
    functionLinenumber: 2916
    functionLinenumberEnd: 2945
    functionName: cfg_register_section
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - calloc
    - strcmp
    - LIST_APPEND
    - ha_alert
    linkageType: ''
    returnType: int
    signature: "int cfg_register_section(char *section_name,\n                         int
      (*section_parser)(const char *, int, char **, int),\n                         int
      (*post_section_parser)())"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:2955,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2957,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:2963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2966
      start: 2951
    functionDepth: 1
    functionLinenumber: 2951
    functionLinenumberEnd: 2966
    functionName: cfg_register_postparser
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - calloc
    - ha_alert
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int cfg_register_postparser(char *name, int (*func)())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/cfgparse.c:2975,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cfgparse.c:2976,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2971
    functionDepth: 3
    functionLinenumber: 2971
    functionLinenumberEnd: 2979
    functionName: cfg_unregister_sections
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - free
    linkageType: ''
    returnType: void
    signature: void cfg_unregister_sections(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/cfgparse.c:2985,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cfgparse.c:2986,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:2987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - backup_sections
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2989
      start: 2981
    functionDepth: 1
    functionLinenumber: 2981
    functionLinenumberEnd: 2989
    functionName: cfg_backup_sections
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void cfg_backup_sections(struct list *backup_sections)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cfgparse.c:2996,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:2997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - backup_sections
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2999
      start: 2991
    functionDepth: 1
    functionLinenumber: 2991
    functionLinenumberEnd: 2999
    functionName: cfg_restore_sections
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void cfg_restore_sections(struct list *backup_sections)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cfgparse.c:2996,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:2997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2998
      start: 2995
    functionDepth: 1
    functionLinenumber: 2995
    functionLinenumberEnd: 2998
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 52
    functionsReached:
    - LIST_DELETE
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(cs, ics, backup_sections, list)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3013,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:3016,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:3019,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3024,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:3041,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:3042,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:3045,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3055,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3057,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:3062,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:3063,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:3066,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:3075,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3079,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3081,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:3085,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:3087,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3096,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3098,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:3103,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:3109,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3116,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3118,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3120,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3122,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3123,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:3126,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:3127,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:3128,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:3129,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:3130,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:3131,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:3132,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:3138,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:3140,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3148,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:3159,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3167,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:3169,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3175
      start: 3002
    functionDepth: 2
    functionLinenumber: 3002
    functionLinenumberEnd: 3175
    functionName: cfg_dump_registered_keywords
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - strcmp
    - dump_act_rules
    - printf
    - strordered
    linkageType: ''
    returnType: void
    signature: void cfg_dump_registered_keywords()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct quic_cc_rs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 24
    functionName: quic_cc_rs_init
    functionSourceFile: /src/haproxy/src/quic_cc_drs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_cc_rs_init(struct quic_cc_rs *rs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_rs_init
      Src: /src/haproxy/src/quic_cc_drs.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - drs
    argTypes:
    - struct quic_cc_drs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: quic_cc_drs_init
    functionSourceFile: /src/haproxy/src/quic_cc_drs.c
    functionUses: 1
    functionsReached:
    - quic_cc_rs_init
    linkageType: ''
    returnType: void
    signature: void quic_cc_drs_init(struct quic_cc_drs *drs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - path
    - pkt
    - drs
    argTypes:
    - struct quic_cc_path*
    - struct quic_tx_packet*
    - struct quic_cc_drs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: quic_cc_drs_on_pkt_sent
    functionSourceFile: /src/haproxy/src/quic_cc_drs.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void quic_cc_drs_on_pkt_sent(struct quic_cc_path *path,\n                             struct
      quic_tx_packet *pkt, struct quic_cc_drs *drs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - drs
    - pkt
    argTypes:
    - struct quic_cc_drs*
    - struct quic_tx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: quic_cc_drs_is_newest_packet
    functionSourceFile: /src/haproxy/src/quic_cc_drs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int quic_cc_drs_is_newest_packet(struct quic_cc_drs *drs,\n                                               struct
      quic_tx_packet *pkt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quic_cc_drs_is_newest_packet
      Src: /src/haproxy/src/quic_cc_drs.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - drs
    - pkt
    - time_ns
    argTypes:
    - struct quic_cc_drs*
    - struct quic_tx_packet*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 112
    functionName: quic_cc_drs_update_rate_sample
    functionSourceFile: /src/haproxy/src/quic_cc_drs.c
    functionUses: 0
    functionsReached:
    - quic_cc_drs_is_newest_packet
    linkageType: ''
    returnType: void
    signature: "void quic_cc_drs_update_rate_sample(struct quic_cc_drs *drs,\n                                    struct
      quic_tx_packet *pkt, uint64_t time_ns)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/quic_cc_drs.c:136,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_cc_drs.c:138,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_cc_drs.c:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - drs
    - path
    - pkt_delivered
    argTypes:
    - struct quic_cc_drs*
    - struct quic_cc_path*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 153
    functionName: quic_cc_drs_on_ack_recv
    functionSourceFile: /src/haproxy/src/quic_cc_drs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - MAX
    linkageType: ''
    returnType: void
    signature: "void quic_cc_drs_on_ack_recv(struct quic_cc_drs *drs, struct quic_cc_path
      *path,\n                             uint64_t pkt_delivered)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ECHSTORE_new
      Src: /src/haproxy/src/ech.c:42,1
    - Dst: scandir
      Src: /src/haproxy/src/ech.c:46,1
    - Dst: strlen
      Src: /src/haproxy/src/ech.c:53,1
    - Dst: strncmp
      Src: /src/haproxy/src/ech.c:56,1
    - Dst: snprintf
      Src: /src/haproxy/src/ech.c:60,1
    - Dst: stat
      Src: /src/haproxy/src/ech.c:61,1
    - Dst: BIO_new_file
      Src: /src/haproxy/src/ech.c:62,1
    - Dst: OSSL_ECHSTORE_read_pem
      Src: /src/haproxy/src/ech.c:65,1
    - Dst: BIO_free_all
      Src: /src/haproxy/src/ech.c:67,1
    - Dst: free
      Src: /src/haproxy/src/ech.c:71,1
    - Dst: OSSL_ECHSTORE_num_keys
      Src: /src/haproxy/src/ech.c:76,1
    - Dst: SSL_CTX_set1_echstore
      Src: /src/haproxy/src/ech.c:78,1
    - Dst: free
      Src: /src/haproxy/src/ech.c:82,1
    - Dst: OSSL_ECHSTORE_free
      Src: /src/haproxy/src/ech.c:83,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 3
    argNames:
    - ctx
    - dirname
    - loaded
    argTypes:
    - SSL_CTX*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 85
    functionName: load_echkeys
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 2
    functionsReached:
    - OSSL_ECHSTORE_new
    - OSSL_ECHSTORE_free
    - scandir
    - SSL_CTX_set1_echstore
    - stat
    - BIO_free_all
    - free
    - strncmp
    - OSSL_ECHSTORE_read_pem
    - OSSL_ECHSTORE_num_keys
    - BIO_new_file
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int load_echkeys(SSL_CTX *ctx, char *dirname, int *loaded)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ech.c:99,1
    - Dst: b_putblk
      Src: /src/haproxy/src/ech.c:105,1
    - Dst: strlen
      Src: /src/haproxy/src/ech.c:105,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/ech.c:118,1
    - Dst: bind_conf_find_by_name
      Src: /src/haproxy/src/ech.c:122,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - name
    - sctx
    argTypes:
    - char*
    - SSL_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 131
    functionName: cli_find_ech_specific_ctx
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 0
    functionsReached:
    - b_putblk
    - proxy_find_by_name
    - get_trash_chunk
    - bind_conf_find_by_name
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_find_ech_specific_ctx(const char *name, SSL_CTX **sctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ech.c:137,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ech.c:139,1
    - Dst: strdup
      Src: /src/haproxy/src/ech.c:146,1
    - Dst: cli_find_ech_specific_ctx
      Src: /src/haproxy/src/ech.c:148,1
    - Dst: cli_err
      Src: /src/haproxy/src/ech.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 163
    functionName: cli_parse_show_ech
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 0
    functionsReached:
    - cli_err
    - applet_reserve_svcctx
    - cli_find_ech_specific_ctx
    - cli_has_level
    - strdup
    linkageType: ''
    returnType: int
    signature: "int cli_parse_show_ech(char **args, char *payload,\n                              struct
      appctx *appctx, void *private)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/haproxy/src/ech.c:171,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ech.c:171,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ech.c:173,1
    - Dst: SSL_CTX_get1_echstore
      Src: /src/haproxy/src/ech.c:176,1
    - Dst: OSSL_ECHSTORE_num_entries
      Src: /src/haproxy/src/ech.c:177,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ech.c:178,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ech.c:182,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ech.c:187,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ech.c:190,1
    - Dst: OSSL_ECHSTORE_get1_info
      Src: /src/haproxy/src/ech.c:193,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ech.c:195,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ech.c:196,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ech.c:197,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ech.c:200,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ech.c:203,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ech.c:204,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ech.c:205,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ech.c:206,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ech.c:208,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ech.c:209,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ech.c:212,1
    - Dst: OSSL_ECHSTORE_free
      Src: /src/haproxy/src/ech.c:213,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - ctx
    - trash
    argTypes:
    - SSL_CTX*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 215
    functionName: cli_print_ech_info
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get1_echstore
    - OSSL_ECHSTORE_get1_info
    - OPENSSL_free
    - free_trash_chunk
    - alloc_trash_chunk
    - OSSL_ECHSTORE_num_entries
    - chunk_appendf
    - BIO_printf
    - BIO_free
    - BIO_read
    - BIO_new
    - OSSL_ECHSTORE_free
    - BIO_s_mem
    linkageType: ''
    returnType: void
    signature: void cli_print_ech_info(SSL_CTX *ctx, struct buffer *trash)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ech.c:229,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ech.c:237,1
    - Dst: cli_print_ech_info
      Src: /src/haproxy/src/ech.c:238,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ech.c:239,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ech.c:251,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ech.c:255,1
    - Dst: typeof
      Src: /src/haproxy/src/ech.c:255,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ech.c:256,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/ech.c:260,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ech.c:265,1
    - Dst: cli_print_ech_info
      Src: /src/haproxy/src/ech.c:266,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ech.c:267,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 282
    functionName: cli_io_handler_ech_details
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 0
    functionsReached:
    - LIST_ELEM
    - typeof
    - cli_print_ech_info
    - list_for_each_entry_from
    - chunk_appendf
    - get_trash_chunk
    - LIST_ISEMPTY
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_ech_details(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ech.c:304,1
    - Dst: cli_err
      Src: /src/haproxy/src/ech.c:308,1
    - Dst: cli_find_ech_specific_ctx
      Src: /src/haproxy/src/ech.c:309,1
    - Dst: cli_err
      Src: /src/haproxy/src/ech.c:310,1
    - Dst: BIO_new_mem_buf
      Src: /src/haproxy/src/ech.c:311,1
    - Dst: strlen
      Src: /src/haproxy/src/ech.c:311,1
    - Dst: SSL_CTX_get1_echstore
      Src: /src/haproxy/src/ech.c:312,1
    - Dst: OSSL_ECHSTORE_read_pem
      Src: /src/haproxy/src/ech.c:313,1
    - Dst: SSL_CTX_set1_echstore
      Src: /src/haproxy/src/ech.c:314,1
    - Dst: OSSL_ECHSTORE_free
      Src: /src/haproxy/src/ech.c:315,1
    - Dst: BIO_free_all
      Src: /src/haproxy/src/ech.c:316,1
    - Dst: cli_err
      Src: /src/haproxy/src/ech.c:317,1
    - Dst: OSSL_ECHSTORE_free
      Src: /src/haproxy/src/ech.c:319,1
    - Dst: BIO_free_all
      Src: /src/haproxy/src/ech.c:320,1
    - Dst: snprintf
      Src: /src/haproxy/src/ech.c:321,1
    - Dst: cli_msg
      Src: /src/haproxy/src/ech.c:323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 324
    functionName: cli_parse_add_ech
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - SSL_CTX_get1_echstore
    - cli_err
    - OSSL_ECHSTORE_free
    - SSL_CTX_set1_echstore
    - BIO_free_all
    - OSSL_ECHSTORE_read_pem
    - BIO_new_mem_buf
    - cli_find_ech_specific_ctx
    - cli_has_level
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_parse_add_ech(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ech.c:334,1
    - Dst: cli_err
      Src: /src/haproxy/src/ech.c:338,1
    - Dst: cli_find_ech_specific_ctx
      Src: /src/haproxy/src/ech.c:339,1
    - Dst: cli_err
      Src: /src/haproxy/src/ech.c:340,1
    - Dst: BIO_new_mem_buf
      Src: /src/haproxy/src/ech.c:341,1
    - Dst: strlen
      Src: /src/haproxy/src/ech.c:341,1
    - Dst: OSSL_ECHSTORE_new
      Src: /src/haproxy/src/ech.c:342,1
    - Dst: OSSL_ECHSTORE_read_pem
      Src: /src/haproxy/src/ech.c:343,1
    - Dst: SSL_CTX_set1_echstore
      Src: /src/haproxy/src/ech.c:344,1
    - Dst: OSSL_ECHSTORE_free
      Src: /src/haproxy/src/ech.c:345,1
    - Dst: BIO_free_all
      Src: /src/haproxy/src/ech.c:346,1
    - Dst: cli_err
      Src: /src/haproxy/src/ech.c:347,1
    - Dst: OSSL_ECHSTORE_free
      Src: /src/haproxy/src/ech.c:349,1
    - Dst: BIO_free_all
      Src: /src/haproxy/src/ech.c:350,1
    - Dst: snprintf
      Src: /src/haproxy/src/ech.c:351,1
    - Dst: cli_msg
      Src: /src/haproxy/src/ech.c:353,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 354
    functionName: cli_parse_set_ech
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - OSSL_ECHSTORE_new
    - cli_err
    - OSSL_ECHSTORE_free
    - SSL_CTX_set1_echstore
    - BIO_free_all
    - OSSL_ECHSTORE_read_pem
    - BIO_new_mem_buf
    - cli_find_ech_specific_ctx
    - cli_has_level
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_ech(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ech.c:364,1
    - Dst: cli_err
      Src: /src/haproxy/src/ech.c:368,1
    - Dst: atoi
      Src: /src/haproxy/src/ech.c:370,1
    - Dst: cli_find_ech_specific_ctx
      Src: /src/haproxy/src/ech.c:371,1
    - Dst: cli_err
      Src: /src/haproxy/src/ech.c:372,1
    - Dst: SSL_CTX_get1_echstore
      Src: /src/haproxy/src/ech.c:373,1
    - Dst: OSSL_ECHSTORE_flush_keys
      Src: /src/haproxy/src/ech.c:374,1
    - Dst: SSL_CTX_set1_echstore
      Src: /src/haproxy/src/ech.c:375,1
    - Dst: OSSL_ECHSTORE_free
      Src: /src/haproxy/src/ech.c:376,1
    - Dst: cli_err
      Src: /src/haproxy/src/ech.c:377,1
    - Dst: OSSL_ECHSTORE_free
      Src: /src/haproxy/src/ech.c:379,1
    - Dst: memset
      Src: /src/haproxy/src/ech.c:380,1
    - Dst: snprintf
      Src: /src/haproxy/src/ech.c:382,1
    - Dst: snprintf
      Src: /src/haproxy/src/ech.c:385,1
    - Dst: cli_msg
      Src: /src/haproxy/src/ech.c:387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 388
    functionName: cli_parse_del_ech
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - SSL_CTX_get1_echstore
    - memset
    - OSSL_ECHSTORE_free
    - SSL_CTX_set1_echstore
    - OSSL_ECHSTORE_flush_keys
    - cli_find_ech_specific_ctx
    - atoi
    - cli_has_level
    - snprintf
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_del_ech(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/ech.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 396
    functionName: cli_release_ech
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void cli_release_ech(struct appctx *appctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ech.c:421,1
    - Dst: SSL_ech_get1_status
      Src: /src/haproxy/src/ech.c:429,1
    - Dst: s
      Src: /src/haproxy/src/ech.c:430,1
    - Dst: s
      Src: /src/haproxy/src/ech.c:431,1
    - Dst: s
      Src: /src/haproxy/src/ech.c:432,1
    - Dst: s
      Src: /src/haproxy/src/ech.c:433,1
    - Dst: s
      Src: /src/haproxy/src/ech.c:434,1
    - Dst: s
      Src: /src/haproxy/src/ech.c:435,1
    - Dst: s
      Src: /src/haproxy/src/ech.c:436,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ech.c:440,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ech.c:441,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ech.c:442,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - conn
    - buf
    argTypes:
    - struct connection*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 444
    functionName: conn_get_ech_status
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - chunk_printf
    - SSL_ech_get1_status
    - conn_get_ssl_sock_ctx
    - s
    linkageType: ''
    returnType: int
    signature: int conn_get_ech_status(struct connection *conn, struct buffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 429
    functionName: s
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 764
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ech.c:449,1
    - Dst: SSL_ech_get1_status
      Src: /src/haproxy/src/ech.c:455,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ech.c:457,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ech.c:458,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ech.c:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - conn
    - buf
    argTypes:
    - struct connection*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: conn_get_ech_outer_sni
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - SSL_ech_get1_status
    - OPENSSL_free
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: int
    signature: int conn_get_ech_outer_sni(struct connection *conn, struct buffer *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ech.c:466,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/ech.c:470,1
    - Dst: free
      Src: /src/haproxy/src/ech.c:472,1
    - Dst: strdup
      Src: /src/haproxy/src/ech.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 463
    functionDepth: 5
    functionLinenumber: 463
    functionLinenumberEnd: 475
    functionName: bind_parse_ech
    functionSourceFile: /src/haproxy/src/ech.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    - free
    - mark_tainted
    linkageType: ''
    returnType: int
    signature: int bind_parse_ech(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: type_to_smp
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int type_to_smp(const char *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/sample.c:366,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/sample.c:378,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/sample.c:388,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct sample_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 398
    functionName: smp_expr_output_type
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 2
    functionsReached:
    - LIST_PREV
    - LIST_ISEMPTY
    - LIST_NEXT
    linkageType: ''
    returnType: int
    signature: int smp_expr_output_type(struct sample_expr *expr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/sample.c:418,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - use
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 424
    functionName: sample_src_names
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 9
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *sample_src_names(unsigned int use)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - use
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 438
    functionName: sample_ckp_names
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sample_ckp_names(unsigned int use)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sample.c:466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct sample_fetch_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 467
    functionName: sample_register_fetches
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void sample_register_fetches(struct sample_fetch_kw_list *kwl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sample.c:490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pckl
    argTypes:
    - struct sample_conv_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 491
    functionName: sample_register_convs
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void sample_register_convs(struct sample_conv_kw_list *pckl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/sample.c:503,1
    - Dst: strncmp
      Src: /src/haproxy/src/sample.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - kw
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 511
    functionName: find_sample_fetch
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 3
    functionsReached:
    - strncmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct sample_fetch
    signature: struct sample_fetch *find_sample_fetch(const char *kw, int len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/haproxy/src/sample.c:524,1
    - Dst: putchar
      Src: /src/haproxy/src/sample.c:526,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:528,1
    - Dst: putchar
      Src: /src/haproxy/src/sample.c:531,1
    - Dst: putchar
      Src: /src/haproxy/src/sample.c:533,1
    - Dst: putchar
      Src: /src/haproxy/src/sample.c:535,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:536,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/sample.c:540,1
    - Dst: strordered
      Src: /src/haproxy/src/sample.c:542,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:552,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:554,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:556,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:559,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:565,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:568,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:569,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:573,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:575,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:577,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:578,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 580
    functionName: smp_dump_fetch_kw
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - putchar
    - strordered
    - printf
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void smp_dump_fetch_kw(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/sample.c:592,1
    - Dst: strordered
      Src: /src/haproxy/src/sample.c:594,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:604,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:607,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:613,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:616,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:617,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:621,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:623,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:625,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:626,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 628
    functionName: smp_dump_conv_kw
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - strordered
    - printf
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void smp_dump_conv_kw(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/sample.c:645,1
    - Dst: container_of
      Src: /src/haproxy/src/sample.c:650,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/sample.c:666,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - current
    - idx
    argTypes:
    - struct sample_fetch*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 671
    functionName: sample_fetch_getnext
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - LIST_NEXT
    - container_of
    linkageType: ''
    returnType: struct sample_fetch
    signature: struct sample_fetch *sample_fetch_getnext(struct sample_fetch *current,
      int *idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/sample.c:688,1
    - Dst: container_of
      Src: /src/haproxy/src/sample.c:693,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/sample.c:708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - current
    - idx
    argTypes:
    - struct sample_conv*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 713
    functionName: sample_conv_getnext
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - LIST_NEXT
    - container_of
    linkageType: ''
    returnType: struct sample_conv
    signature: struct sample_conv *sample_conv_getnext(struct sample_conv *current,
      int *idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/sample.c:725,1
    - Dst: strncmp
      Src: /src/haproxy/src/sample.c:727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - kw
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 733
    functionName: find_sample_conv
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - strncmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct sample_conv
    signature: struct sample_conv *find_sample_conv(const char *kw, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/src/sample.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 744
    functionName: c_ip2int
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: int
    signature: int c_ip2int(struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:748,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/sample.c:750,1
    - Dst: strlen
      Src: /src/haproxy/src/sample.c:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 759
    functionName: c_ip2str
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - get_trash_chunk
    - strlen
    linkageType: ''
    returnType: int
    signature: int c_ip2str(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: v4tov6
      Src: /src/haproxy/src/sample.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 766
    functionName: c_ip2ipv6
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - v4tov6
    linkageType: ''
    returnType: int
    signature: int c_ip2ipv6(struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: v6tov4
      Src: /src/haproxy/src/sample.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 774
    functionName: c_ipv62ip
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - v6tov4
    linkageType: ''
    returnType: int
    signature: int c_ipv62ip(struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:778,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/sample.c:780,1
    - Dst: strlen
      Src: /src/haproxy/src/sample.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 788
    functionName: c_ipv62str
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - get_trash_chunk
    - strlen
    linkageType: ''
    returnType: int
    signature: int c_ipv62str(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/haproxy/src/sample.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 802
    functionName: c_int2ip
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: int
    signature: int c_int2ip(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/haproxy/src/sample.c:806,1
    - Dst: v4tov6
      Src: /src/haproxy/src/sample.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 810
    functionName: c_int2ipv6
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - v4tov6
    - htonl
    linkageType: ''
    returnType: int
    signature: int c_int2ipv6(struct sample *smp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: buf2ip
      Src: /src/haproxy/src/sample.c:814,1
    - Dst: buf2ip6
      Src: /src/haproxy/src/sample.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 824
    functionName: c_str2addr
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - buf2ip
    - buf2ip6
    linkageType: ''
    returnType: int
    signature: int c_str2addr(struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buf2ip
      Src: /src/haproxy/src/sample.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 833
    functionName: c_str2ip
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - buf2ip
    linkageType: ''
    returnType: int
    signature: int c_str2ip(struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buf2ip6
      Src: /src/haproxy/src/sample.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 842
    functionName: c_str2ipv6
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - buf2ip6
    linkageType: ''
    returnType: int
    signature: int c_str2ipv6(struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 860
    functionName: c_bin2str
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int c_bin2str(struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:864,1
    - Dst: lltoa_r
      Src: /src/haproxy/src/sample.c:867,1
    - Dst: strlen
      Src: /src/haproxy/src/sample.c:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 862
    functionDepth: 2
    functionLinenumber: 862
    functionLinenumberEnd: 878
    functionName: c_int2str
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - lltoa_r
    - get_trash_chunk
    - strlen
    linkageType: ''
    returnType: int
    signature: int c_int2str(struct sample *smp)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:906,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:913,1
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:919,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:926,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 938
    functionName: smp_dup
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 4
    functionsReached:
    - get_trash_chunk_sz
    - memcpy
    linkageType: ''
    returnType: int
    signature: int smp_dup(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 943
    functionName: c_none
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int c_none(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/sample.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 959
    functionName: c_pseudo
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ABORT_NOW
    linkageType: ''
    returnType: int
    signature: int c_pseudo(struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_int64
      Src: /src/haproxy/src/sample.c:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 976
    functionName: c_str2int
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - read_int64
    linkageType: ''
    returnType: int
    signature: int c_str2int(struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_http_meth
      Src: /src/haproxy/src/sample.c:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 994
    functionName: c_str2meth
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - find_http_meth
    linkageType: ''
    returnType: int
    signature: int c_str2meth(struct sample *smp)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1021
    functionName: c_meth2str
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int c_meth2str(struct sample *smp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:1025,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:1029,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:1033,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1041
    functionName: c_addr2bin
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int c_addr2bin(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:1045,1
    - Dst: my_htonll
      Src: /src/haproxy/src/sample.c:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1043
    functionDepth: 2
    functionLinenumber: 1043
    functionLinenumberEnd: 1053
    functionName: c_int2bin
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - my_htonll
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int c_int2bin(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:1057,1
    - Dst: my_htonll
      Src: /src/haproxy/src/sample.c:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1064
    functionName: c_bool2bin
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - my_htonll
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int c_bool2bin(struct sample *smp)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1133,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1135,1
    - Dst: is_idchar
      Src: /src/haproxy/src/sample.c:1157,1
    - Dst: ha_free
      Src: /src/haproxy/src/sample.c:1160,1
    - Dst: my_strndup
      Src: /src/haproxy/src/sample.c:1161,1
    - Dst: find_sample_conv
      Src: /src/haproxy/src/sample.c:1163,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1170,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1175,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1181,1
    - Dst: calloc
      Src: /src/haproxy/src/sample.c:1194,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sample.c:1198,1
    - Dst: make_arg_list
      Src: /src/haproxy/src/sample.c:1205,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1207,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1212,1
    - Dst: struct sample_conv*::val_args
      Src: /src/haproxy/src/sample.c:1219,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1220,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1230,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 92
    argCount: 9
    argNames:
    - str
    - idx
    - endptr
    - err_msg
    - al
    - file
    - line
    - expr
    - start
    argTypes:
    - char**
    - int*
    - char**
    - char**
    - struct arg_list*
    - char*
    - int
    - struct sample_expr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1111
    functionDepth: 5
    functionLinenumber: 1111
    functionLinenumberEnd: 1236
    functionName: sample_parse_expr_cnv
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - my_strndup
    - memprintf
    - make_arg_list
    - is_idchar
    - ha_free
    - calloc
    - LIST_APPEND
    - find_sample_conv
    - free
    - struct sample_conv*::val_args
    linkageType: ''
    returnType: int
    signature: "int sample_parse_expr_cnv(char **str, int *idx, char **endptr, char
      **err_msg, struct arg_list *al, const char *file, int line,\n                          struct
      sample_expr *expr, const char *start)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_idchar
      Src: /src/haproxy/src/sample.c:1262,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1266,1
    - Dst: my_strndup
      Src: /src/haproxy/src/sample.c:1271,1
    - Dst: find_sample_fetch
      Src: /src/haproxy/src/sample.c:1273,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1275,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1285,1
    - Dst: calloc
      Src: /src/haproxy/src/sample.c:1289,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/sample.c:1293,1
    - Dst: make_arg_list
      Src: /src/haproxy/src/sample.c:1305,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1306,1
    - Dst: struct sample_fetch*::val_args
      Src: /src/haproxy/src/sample.c:1318,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1319,1
    - Dst: sample_parse_expr_cnv
      Src: /src/haproxy/src/sample.c:1323,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1327,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/sample.c:1331,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 7
    argNames:
    - str
    - idx
    - file
    - line
    - err_msg
    - al
    - endptr
    argTypes:
    - char**
    - int*
    - char*
    - int
    - char**
    - struct arg_list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1251
    functionDepth: 6
    functionLinenumber: 1251
    functionLinenumberEnd: 1334
    functionName: sample_parse_expr
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 14
    functionsReached:
    - my_strndup
    - memprintf
    - find_sample_fetch
    - make_arg_list
    - is_idchar
    - calloc
    - free
    - sample_parse_expr_cnv
    - struct sample_fetch*::val_args
    - LIST_INIT
    - release_sample_expr
    linkageType: ''
    returnType: struct sample_expr
    signature: struct sample_expr *sample_parse_expr(char **str, int *idx, const char
      *file, int line, char **err_msg, struct arg_list *al, char **endptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/sample.c:1347,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/sample.c:1364,1
    - Dst: struct sample_conv_expr*::conv::process
      Src: /src/haproxy/src/sample.c:1365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - expr
    - p
    argTypes:
    - struct sample_expr*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1369
    functionName: sample_process_cnv
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - EXEC_CTX_WITH_RET
    - struct sample_conv_expr*::conv::process
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int sample_process_cnv(struct sample_expr *expr, struct sample *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/sample.c:1401,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:1404,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/sample.c:1405,1
    - Dst: struct sample_expr*::fetch::process
      Src: /src/haproxy/src/sample.c:1406,1
    - Dst: sample_process_cnv
      Src: /src/haproxy/src/sample.c:1409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - px
    - sess
    - strm
    - opt
    - expr
    - p
    argTypes:
    - struct proxy*
    - struct session*
    - struct stream*
    - unsigned int
    - struct sample_expr*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1395
    functionDepth: 2
    functionLinenumber: 1395
    functionLinenumberEnd: 1412
    functionName: sample_process
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 5
    functionsReached:
    - memset
    - struct sample_expr*::fetch::process
    - sample_process_cnv
    - EXEC_CTX_WITH_RET
    - smp_set_owner
    linkageType: ''
    returnType: struct sample
    signature: "struct sample *sample_process(struct proxy *px, struct session *sess,\n
      \                             struct stream *strm, unsigned int opt,\n                              struct
      sample_expr *expr, struct sample *p)"
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/sample.c:1430,1
    - Dst: struct arg*::resolve_ptr
      Src: /src/haproxy/src/sample.c:1485,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1486,1
    - Dst: ha_free
      Src: /src/haproxy/src/sample.c:1490,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1498,1
    - Dst: strrchr
      Src: /src/haproxy/src/sample.c:1506,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/sample.c:1512,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1514,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1523,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/sample.c:1532,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1534,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1544,1
    - Dst: proxy_fe_by_name
      Src: /src/haproxy/src/sample.c:1552,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1556,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1564,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1574,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/sample.c:1582,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1586,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1594,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1604,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1614,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/sample.c:1623,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1625,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1633,1
    - Dst: in_proxies_list
      Src: /src/haproxy/src/sample.c:1640,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1645,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1652,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:1660,1
    - Dst: auth_find_userlist
      Src: /src/haproxy/src/sample.c:1663,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1666,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1674,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1681,1
    - Dst: regex_comp
      Src: /src/haproxy/src/sample.c:1692,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1693,1
    - Dst: ha_free
      Src: /src/haproxy/src/sample.c:1697,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1702,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/sample.c:1710,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1711,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 246
    argCount: 2
    argNames:
    - p
    - err
    argTypes:
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1419
    functionDepth: 5
    functionLinenumber: 1419
    functionLinenumberEnd: 1715
    functionName: smp_resolve_args
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 3
    functionsReached:
    - LIST_DELETE
    - memprintf
    - regex_comp
    - struct arg*::resolve_ptr
    - ha_free
    - proxy_fe_by_name
    - list_for_each_entry_safe
    - in_proxies_list
    - strrchr
    - stktable_find_by_name
    - strcmp
    - free
    - server_find_by_name
    - auth_find_userlist
    - chunk_destroy
    - proxy_be_by_name
    linkageType: ''
    returnType: int
    signature: int smp_resolve_args(struct proxy *p, char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/sample.c:1744,1
    - Dst: sample_process
      Src: /src/haproxy/src/sample.c:1746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 6
    argNames:
    - px
    - sess
    - strm
    - opt
    - expr
    - smp_type
    argTypes:
    - struct proxy*
    - struct session*
    - struct stream*
    - unsigned int
    - struct sample_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1738
    functionDepth: 3
    functionLinenumber: 1738
    functionLinenumberEnd: 1763
    functionName: sample_fetch_as_type
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 9
    functionsReached:
    - sample_process
    - memset
    linkageType: ''
    returnType: struct sample
    signature: "struct sample *sample_fetch_as_type(struct proxy *px, struct session
      *sess,\n                                   struct stream *strm, unsigned int
      opt,\n                                   struct sample_expr *expr, int smp_type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1774,1
    - Dst: regex_free
      Src: /src/haproxy/src/sample.c:1778,1
    - Dst: ha_free
      Src: /src/haproxy/src/sample.c:1783,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1789,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct arg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1765
    functionDepth: 3
    functionLinenumber: 1765
    functionLinenumberEnd: 1790
    functionName: release_sample_arg
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ha_free
    - free
    - chunk_destroy
    - regex_free
    linkageType: ''
    returnType: void
    signature: void release_sample_arg(struct arg *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/sample.c:1799,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/sample.c:1800,1
    - Dst: release_sample_arg
      Src: /src/haproxy/src/sample.c:1801,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1802,1
    - Dst: release_sample_arg
      Src: /src/haproxy/src/sample.c:1805,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct sample_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1792
    functionDepth: 4
    functionLinenumber: 1792
    functionLinenumberEnd: 1807
    functionName: release_sample_expr
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 22
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - release_sample_arg
    - free
    linkageType: ''
    returnType: void
    signature: void release_sample_expr(struct sample_expr *expr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:1823,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sample.c:1828,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sample.c:1831,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sample.c:1833,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:1840,1
    - Dst: b_putchr
      Src: /src/haproxy/src/sample.c:1847,1
    - Dst: isprint
      Src: /src/haproxy/src/sample.c:1849,1
    - Dst: b_putchr
      Src: /src/haproxy/src/sample.c:1850,1
    - Dst: b_putchr
      Src: /src/haproxy/src/sample.c:1852,1
    - Dst: b_putchr
      Src: /src/haproxy/src/sample.c:1854,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:1857,1
    - Dst: sink_write
      Src: /src/haproxy/src/sample.c:1858,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:1860,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/sample.c:1863,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1865
    functionName: sample_conv_debug
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ist2
    - memcpy
    - BUG_ON
    - isprint
    - alloc_trash_chunk
    - chunk_printf
    - free_trash_chunk
    - chunk_appendf
    - sink_write
    - b_putchr
    linkageType: ''
    returnType: int
    signature: int sample_conv_debug(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sink_find_early
      Src: /src/haproxy/src/sample.c:1883,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1885,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1868
    functionDepth: 5
    functionLinenumber: 1868
    functionLinenumberEnd: 1893
    functionName: smp_check_debug
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - sink_find_early
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: "int smp_check_debug(struct arg *args, struct sample_conv *conv,\n
      \                          const char *file, int line, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:1897,1
    - Dst: base64dec
      Src: /src/haproxy/src/sample.c:1903,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1895
    functionDepth: 3
    functionLinenumber: 1895
    functionLinenumberEnd: 1913
    functionName: sample_conv_base642bin
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - base64dec
    - get_trash_chunk_sz
    linkageType: ''
    returnType: int
    signature: int sample_conv_base642bin(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:1917,1
    - Dst: base64urldec
      Src: /src/haproxy/src/sample.c:1923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1915
    functionDepth: 3
    functionLinenumber: 1915
    functionLinenumberEnd: 1933
    functionName: sample_conv_base64url2bin
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - base64urldec
    - get_trash_chunk_sz
    linkageType: ''
    returnType: int
    signature: int sample_conv_base64url2bin(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:1937,1
    - Dst: a2base64
      Src: /src/haproxy/src/sample.c:1943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1935
    functionDepth: 3
    functionLinenumber: 1935
    functionLinenumberEnd: 1953
    functionName: sample_conv_bin2base64
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - a2base64
    - get_trash_chunk_sz
    linkageType: ''
    returnType: int
    signature: int sample_conv_bin2base64(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:1957,1
    - Dst: a2base64url
      Src: /src/haproxy/src/sample.c:1963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1955
    functionDepth: 3
    functionLinenumber: 1955
    functionLinenumberEnd: 1973
    functionName: sample_conv_bin2base64url
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk_sz
    - a2base64url
    linkageType: ''
    returnType: int
    signature: int sample_conv_bin2base64url(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vars_get_by_desc
      Src: /src/haproxy/src/sample.c:1984,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - var
    - smp
    - type
    argTypes:
    - struct var_desc*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1982
    functionDepth: 4
    functionLinenumber: 1982
    functionLinenumberEnd: 1991
    functionName: sample_conv_var2smp
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - vars_get_by_desc
    linkageType: ''
    returnType: int
    signature: int sample_conv_var2smp(const struct var_desc *var, struct sample *smp,
      int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:1996,1
    - Dst: memset
      Src: /src/haproxy/src/sample.c:1998,1
    - Dst: blk_SHA1_Init
      Src: /src/haproxy/src/sample.c:2000,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/sample.c:2001,1
    - Dst: blk_SHA1_Final
      Src: /src/haproxy/src/sample.c:2002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1993
    functionDepth: 2
    functionLinenumber: 1993
    functionLinenumberEnd: 2009
    functionName: sample_conv_sha1
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memset
    - blk_SHA1_Update
    - blk_SHA1_Init
    - get_trash_chunk
    - blk_SHA1_Final
    linkageType: ''
    returnType: int
    signature: int sample_conv_sha1(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sample_conv_var2smp
      Src: /src/haproxy/src/sample.c:2030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - arg
    - smp
    argTypes:
    - struct arg*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2021
    functionDepth: 5
    functionLinenumber: 2021
    functionLinenumberEnd: 2034
    functionName: sample_conv_var2smp_str
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp
    linkageType: ''
    returnType: int
    signature: int sample_conv_var2smp_str(const struct arg *arg, struct sample *smp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:2040,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:2045,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2036
    functionDepth: 5
    functionLinenumber: 2036
    functionLinenumberEnd: 2050
    functionName: sample_conv_2dec_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int sample_conv_2dec_check(struct arg *args, struct sample_conv *conv,\n
      \                                   const char *file, int line, char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:2060,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:2078,1
    - Dst: ulltoa
      Src: /src/haproxy/src/sample.c:2092,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - args
    - smp
    - private
    - be
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2058
    functionDepth: 3
    functionLinenumber: 2058
    functionLinenumberEnd: 2105
    functionName: sample_conv_2dec
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ulltoa
    - get_trash_chunk_sz
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sample_conv_2dec(const struct arg *args, struct sample *smp, void
      *private, int be)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample_conv_2dec
      Src: /src/haproxy/src/sample.c:2115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2113
    functionDepth: 4
    functionLinenumber: 2113
    functionLinenumberEnd: 2116
    functionName: sample_conv_be2dec
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_2dec
    linkageType: ''
    returnType: int
    signature: int sample_conv_be2dec(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample_conv_2dec
      Src: /src/haproxy/src/sample.c:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2124
    functionDepth: 4
    functionLinenumber: 2124
    functionLinenumberEnd: 2127
    functionName: sample_conv_le2dec
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_2dec
    linkageType: ''
    returnType: int
    signature: int sample_conv_le2dec(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:2133,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:2138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2129
    functionDepth: 5
    functionLinenumber: 2129
    functionLinenumberEnd: 2143
    functionName: sample_conv_be2hex_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int sample_conv_be2hex_check(struct arg *args, struct sample_conv
      *conv,\n                                    const char *file, int line, char
      **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:2153,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:2173,1
    - Dst: get_larger_trash_chunk
      Src: /src/haproxy/src/sample.c:2187,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2151
    functionDepth: 3
    functionLinenumber: 2151
    functionLinenumberEnd: 2200
    functionName: sample_conv_be2hex
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_larger_trash_chunk
    - get_trash_chunk_sz
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sample_conv_be2hex(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:2204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2202
    functionDepth: 3
    functionLinenumber: 2202
    functionLinenumberEnd: 2220
    functionName: sample_conv_bin2hex
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk_sz
    linkageType: ''
    returnType: int
    signature: int sample_conv_bin2hex(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:2224,1
    - Dst: get_larger_trash_chunk
      Src: /src/haproxy/src/sample.c:2238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2222
    functionDepth: 3
    functionLinenumber: 2222
    functionLinenumberEnd: 2249
    functionName: sample_conv_bin2base2
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_larger_trash_chunk
    - get_trash_chunk_sz
    linkageType: ''
    returnType: int
    signature: int sample_conv_bin2base2(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hex2i
      Src: /src/haproxy/src/sample.c:2257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2251
    functionDepth: 1
    functionLinenumber: 2251
    functionLinenumberEnd: 2266
    functionName: sample_conv_hex2int
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - hex2i
    linkageType: ''
    returnType: int
    signature: int sample_conv_hex2int(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_djb2
      Src: /src/haproxy/src/sample.c:2271,1
    - Dst: full_hash
      Src: /src/haproxy/src/sample.c:2274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2269
    functionDepth: 2
    functionLinenumber: 2269
    functionLinenumberEnd: 2277
    functionName: sample_conv_djb2
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - hash_djb2
    - full_hash
    linkageType: ''
    returnType: int
    signature: int sample_conv_djb2(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2279
    functionDepth: 0
    functionLinenumber: 2279
    functionLinenumberEnd: 2285
    functionName: sample_conv_length
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_length(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_make_rw
      Src: /src/haproxy/src/sample.c:2292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2288
    functionDepth: 1
    functionLinenumber: 2288
    functionLinenumberEnd: 2300
    functionName: sample_conv_str2lower
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_make_rw
    linkageType: ''
    returnType: int
    signature: int sample_conv_str2lower(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_make_rw
      Src: /src/haproxy/src/sample.c:2306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2302
    functionDepth: 1
    functionLinenumber: 2302
    functionLinenumberEnd: 2314
    functionName: sample_conv_str2upper
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_make_rw
    linkageType: ''
    returnType: int
    signature: int sample_conv_str2upper(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:2324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2317
    functionDepth: 3
    functionLinenumber: 2317
    functionLinenumberEnd: 2337
    functionName: sample_conv_reverse
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk_sz
    linkageType: ''
    returnType: int
    signature: int sample_conv_reverse(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:2364,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:2379,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2342
    functionDepth: 3
    functionLinenumber: 2342
    functionLinenumberEnd: 2395
    functionName: sample_conv_reverse_dom
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk_sz
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sample_conv_reverse_dom(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c_ipv62ip
      Src: /src/haproxy/src/sample.c:2401,1
    - Dst: write_u64
      Src: /src/haproxy/src/sample.c:2412,1
    - Dst: read_u64
      Src: /src/haproxy/src/sample.c:2413,1
    - Dst: read_u64
      Src: /src/haproxy/src/sample.c:2413,1
    - Dst: write_u64
      Src: /src/haproxy/src/sample.c:2414,1
    - Dst: read_u64
      Src: /src/haproxy/src/sample.c:2415,1
    - Dst: read_u64
      Src: /src/haproxy/src/sample.c:2415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2398
    functionDepth: 3
    functionLinenumber: 2398
    functionLinenumberEnd: 2420
    functionName: sample_conv_ipmask
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - write_u64
    - c_ipv62ip
    - read_u64
    linkageType: ''
    returnType: int
    signature: int sample_conv_ipmask(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/sample.c:2449,1
    - Dst: isdigit
      Src: /src/haproxy/src/sample.c:2463,1
    - Dst: isdigit
      Src: /src/haproxy/src/sample.c:2466,1
    - Dst: atoi
      Src: /src/haproxy/src/sample.c:2493,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - format
    - skip
    - width
    argTypes:
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2434
    functionDepth: 0
    functionLinenumber: 2434
    functionLinenumberEnd: 2497
    functionName: lookup_convspec_N
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - atoi
    - isdigit
    - strchr
    linkageType: ''
    returnType: char
    signature: char *lookup_convspec_N(const char *format, int *skip, int *width)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_localtime
      Src: /src/haproxy/src/sample.c:2523,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/sample.c:2525,1
    - Dst: lookup_convspec_N
      Src: /src/haproxy/src/sample.c:2538,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:2546,1
    - Dst: snprintf
      Src: /src/haproxy/src/sample.c:2551,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/sample.c:2553,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:2553,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/sample.c:2555,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:2555,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/sample.c:2563,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2565,1
    - Dst: strftime
      Src: /src/haproxy/src/sample.c:2566,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2568,1
    - Dst: strftime
      Src: /src/haproxy/src/sample.c:2569,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:2573,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 4
    argNames:
    - format
    - curr_date
    - ns
    - local
    argTypes:
    - char*
    - time_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2513
    functionDepth: 2
    functionLinenumber: 2513
    functionLinenumberEnd: 2575
    functionName: conv_time_common
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - chunk_istcat
    - ist2
    - strftime
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_strcat
    - get_trash_chunk
    - get_gmtime
    - get_localtime
    - lookup_convspec_N
    - snprintf
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *conv_time_common(const char *format, time_t curr_date,
      uint64_t ns, int local)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conv_time_common
      Src: /src/haproxy/src/sample.c:2592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2582
    functionDepth: 3
    functionLinenumber: 2582
    functionLinenumberEnd: 2596
    functionName: sample_conv_us_ltime
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - conv_time_common
    linkageType: ''
    returnType: int
    signature: int sample_conv_us_ltime(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conv_time_common
      Src: /src/haproxy/src/sample.c:2611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2601
    functionDepth: 3
    functionLinenumber: 2601
    functionLinenumberEnd: 2615
    functionName: sample_conv_ms_ltime
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - conv_time_common
    linkageType: ''
    returnType: int
    signature: int sample_conv_ms_ltime(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_localtime
      Src: /src/haproxy/src/sample.c:2633,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2635,1
    - Dst: strftime
      Src: /src/haproxy/src/sample.c:2636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2622
    functionDepth: 2
    functionLinenumber: 2622
    functionLinenumberEnd: 2640
    functionName: sample_conv_ltime
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_localtime
    - get_trash_chunk
    - strftime
    linkageType: ''
    returnType: int
    signature: int sample_conv_ltime(const struct arg *args, struct sample *smp, void
      *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_sdbm
      Src: /src/haproxy/src/sample.c:2645,1
    - Dst: full_hash
      Src: /src/haproxy/src/sample.c:2648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2643
    functionDepth: 2
    functionLinenumber: 2643
    functionLinenumberEnd: 2651
    functionName: sample_conv_sdbm
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - hash_sdbm
    - full_hash
    linkageType: ''
    returnType: int
    signature: int sample_conv_sdbm(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conv_time_common
      Src: /src/haproxy/src/sample.c:2666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2656
    functionDepth: 3
    functionLinenumber: 2656
    functionLinenumberEnd: 2670
    functionName: sample_conv_us_utime
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - conv_time_common
    linkageType: ''
    returnType: int
    signature: int sample_conv_us_utime(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conv_time_common
      Src: /src/haproxy/src/sample.c:2685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2675
    functionDepth: 3
    functionLinenumber: 2675
    functionLinenumberEnd: 2689
    functionName: sample_conv_ms_utime
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - conv_time_common
    linkageType: ''
    returnType: int
    signature: int sample_conv_ms_utime(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_gmtime
      Src: /src/haproxy/src/sample.c:2706,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2708,1
    - Dst: strftime
      Src: /src/haproxy/src/sample.c:2709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2713
      start: 2695
    functionDepth: 2
    functionLinenumber: 2695
    functionLinenumberEnd: 2713
    functionName: sample_conv_utime
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - strftime
    - get_trash_chunk
    - get_gmtime
    linkageType: ''
    returnType: int
    signature: int sample_conv_utime(const struct arg *args, struct sample *smp, void
      *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_wt6
      Src: /src/haproxy/src/sample.c:2718,1
    - Dst: full_hash
      Src: /src/haproxy/src/sample.c:2721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2716
    functionDepth: 2
    functionLinenumber: 2716
    functionLinenumberEnd: 2724
    functionName: sample_conv_wt6
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - hash_wt6
    - full_hash
    linkageType: ''
    returnType: int
    signature: int sample_conv_wt6(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH32
      Src: /src/haproxy/src/sample.c:2737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2729
    functionDepth: 0
    functionLinenumber: 2729
    functionLinenumberEnd: 2741
    functionName: sample_conv_xxh32
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - XXH32
    linkageType: ''
    returnType: int
    signature: int sample_conv_xxh32(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH64
      Src: /src/haproxy/src/sample.c:2757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2749
    functionDepth: 0
    functionLinenumber: 2749
    functionLinenumberEnd: 2761
    functionName: sample_conv_xxh64
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - XXH64
    linkageType: ''
    returnType: int
    signature: int sample_conv_xxh64(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH3
      Src: /src/haproxy/src/sample.c:2771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2775
      start: 2763
    functionDepth: 1
    functionLinenumber: 2763
    functionLinenumberEnd: 2775
    functionName: sample_conv_xxh3
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - XXH3
    linkageType: ''
    returnType: int
    signature: int sample_conv_xxh3(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_crc32
      Src: /src/haproxy/src/sample.c:2780,1
    - Dst: full_hash
      Src: /src/haproxy/src/sample.c:2783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2786
      start: 2778
    functionDepth: 2
    functionLinenumber: 2778
    functionLinenumberEnd: 2786
    functionName: sample_conv_crc32
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - full_hash
    - hash_crc32
    linkageType: ''
    returnType: int
    signature: int sample_conv_crc32(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_crc32c
      Src: /src/haproxy/src/sample.c:2791,1
    - Dst: full_hash
      Src: /src/haproxy/src/sample.c:2794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2789
    functionDepth: 2
    functionLinenumber: 2789
    functionLinenumberEnd: 2797
    functionName: sample_conv_crc32c
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - hash_crc32c
    - full_hash
    linkageType: ''
    returnType: int
    signature: int sample_conv_crc32c(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:2822,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:2824,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:2826,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:2828,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:2830,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:2832,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:2835,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:2840,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - arg
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2817
    functionDepth: 5
    functionLinenumber: 2817
    functionLinenumberEnd: 2844
    functionName: sample_conv_json_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: "int sample_conv_json_check(struct arg *arg, struct sample_conv *conv,\n
      \                                 const char *file, int line, char **err)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2859,1
    - Dst: utf8_next
      Src: /src/haproxy/src/sample.c:2872,1
    - Dst: utf8_return_length
      Src: /src/haproxy/src/sample.c:2875,1
    - Dst: utf8_return_code
      Src: /src/haproxy/src/sample.c:2877,1
    - Dst: utf8_return_code
      Src: /src/haproxy/src/sample.c:2879,1
    - Dst: utf8_return_code
      Src: /src/haproxy/src/sample.c:2881,1
    - Dst: utf8_return_code
      Src: /src/haproxy/src/sample.c:2883,1
    - Dst: isprint
      Src: /src/haproxy/src/sample.c:2927,1
    - Dst: snprintf
      Src: /src/haproxy/src/sample.c:2934,1
    - Dst: get_larger_trash_chunk
      Src: /src/haproxy/src/sample.c:2945,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:2951,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2960
      start: 2846
    functionDepth: 3
    functionLinenumber: 2846
    functionLinenumberEnd: 2960
    functionName: sample_conv_json
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - utf8_return_length
    - memcpy
    - isprint
    - get_larger_trash_chunk
    - utf8_return_code
    - get_trash_chunk
    - snprintf
    - utf8_next
    linkageType: ''
    returnType: int
    signature: int sample_conv_json(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:2971,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:2972,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:2991,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:2992,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 2965
    functionDepth: 1
    functionLinenumber: 2965
    functionLinenumberEnd: 3021
    functionName: sample_conv_bytes
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_set_owner
    - sample_conv_var2smp_sint
    linkageType: ''
    returnType: int
    signature: int sample_conv_bytes(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3029,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3034,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3041,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3051
      start: 3023
    functionDepth: 5
    functionLinenumber: 3023
    functionLinenumberEnd: 3051
    functionName: sample_conv_field_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int sample_conv_field_check(struct arg *args, struct sample_conv *conv,\n
      \                                 const char *file, int line, char **err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3129
      start: 3057
    functionDepth: 0
    functionLinenumber: 3057
    functionLinenumberEnd: 3129
    functionName: sample_conv_field
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_field(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 22
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 81
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3230
      start: 3135
    functionDepth: 0
    functionLinenumber: 3135
    functionLinenumberEnd: 3230
    functionName: sample_conv_word
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_word(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - arg
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3232
    functionDepth: 5
    functionLinenumber: 3232
    functionLinenumberEnd: 3241
    functionName: sample_conv_param_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int sample_conv_param_check(struct arg *arg, struct sample_conv *conv,\n
      \                                  const char *file, int line, char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/haproxy/src/sample.c:3262,1
    - Dst: memcmp
      Src: /src/haproxy/src/sample.c:3271,1
    - Dst: memchr
      Src: /src/haproxy/src/sample.c:3273,1
    - Dst: memchr
      Src: /src/haproxy/src/sample.c:3284,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3293
      start: 3243
    functionDepth: 0
    functionLinenumber: 3243
    functionLinenumberEnd: 3293
    functionName: sample_conv_param
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memchr
    linkageType: ''
    returnType: int
    signature: int sample_conv_param(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3295
    functionDepth: 5
    functionLinenumber: 3295
    functionLinenumberEnd: 3325
    functionName: sample_conv_regsub_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int sample_conv_regsub_check(struct arg *args, struct sample_conv
      *conv,\n                                    const char *file, int line, char
      **err)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:3337,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/sample.c:3356,1
    - Dst: b_room
      Src: /src/haproxy/src/sample.c:3363,1
    - Dst: get_larger_trash_chunk
      Src: /src/haproxy/src/sample.c:3364,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3374,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:3381,1
    - Dst: exp_replace
      Src: /src/haproxy/src/sample.c:3385,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:3387,1
    - Dst: b_room
      Src: /src/haproxy/src/sample.c:3393,1
    - Dst: get_larger_trash_chunk
      Src: /src/haproxy/src/sample.c:3394,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3404,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:3409,1
    - Dst: b_room
      Src: /src/haproxy/src/sample.c:3416,1
    - Dst: get_larger_trash_chunk
      Src: /src/haproxy/src/sample.c:3417,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3332
    functionDepth: 3
    functionLinenumber: 3332
    functionLinenumberEnd: 3438
    functionName: sample_conv_regsub
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memcpy
    - free_trash_chunk
    - alloc_trash_chunk
    - get_larger_trash_chunk
    - b_room
    - get_trash_chunk_sz
    - exp_replace
    - regex_exec_match2
    linkageType: ''
    returnType: int
    signature: int sample_conv_regsub(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:3454,1
    - Dst: strlen
      Src: /src/haproxy/src/sample.c:3459,1
    - Dst: read_int64
      Src: /src/haproxy/src/sample.c:3460,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3462,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:3466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3443
    functionDepth: 5
    functionLinenumber: 3443
    functionLinenumberEnd: 3470
    functionName: check_operator
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - vars_check_arg
    - read_int64
    - chunk_destroy
    - strlen
    linkageType: ''
    returnType: int
    signature: "int check_operator(struct arg *args, struct sample_conv *conv,\n                          const
      char *file, int line, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sample_conv_var2smp
      Src: /src/haproxy/src/sample.c:3487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - arg
    - smp
    argTypes:
    - struct arg*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3491
      start: 3479
    functionDepth: 5
    functionLinenumber: 3479
    functionLinenumberEnd: 3491
    functionName: sample_conv_var2smp_sint
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - sample_conv_var2smp
    linkageType: ''
    returnType: int
    signature: int sample_conv_var2smp_sint(const struct arg *arg, struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3500
      start: 3496
    functionDepth: 0
    functionLinenumber: 3496
    functionLinenumberEnd: 3500
    functionName: sample_conv_binary_cpl
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_binary_cpl(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3509,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3514
      start: 3505
    functionDepth: 6
    functionLinenumber: 3505
    functionLinenumberEnd: 3514
    functionName: sample_conv_binary_and
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_set_owner
    - sample_conv_var2smp_sint
    linkageType: ''
    returnType: int
    signature: int sample_conv_binary_and(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3523,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3528
      start: 3519
    functionDepth: 6
    functionLinenumber: 3519
    functionLinenumberEnd: 3528
    functionName: sample_conv_binary_or
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_set_owner
    - sample_conv_var2smp_sint
    linkageType: ''
    returnType: int
    signature: int sample_conv_binary_or(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3537,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3542
      start: 3533
    functionDepth: 6
    functionLinenumber: 3533
    functionLinenumberEnd: 3542
    functionName: sample_conv_binary_xor
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_set_owner
    - sample_conv_var2smp_sint
    linkageType: ''
    returnType: int
    signature: int sample_conv_binary_xor(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - long long int
    - long long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3568
      start: 3544
    functionDepth: 0
    functionLinenumber: 3544
    functionLinenumberEnd: 3568
    functionName: arith_add
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long long int
    signature: long long int arith_add(long long int a, long long int b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3577,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3578,1
    - Dst: arith_add
      Src: /src/haproxy/src/sample.c:3580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3582
      start: 3573
    functionDepth: 6
    functionLinenumber: 3573
    functionLinenumberEnd: 3582
    functionName: sample_conv_arith_add
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_set_owner
    - sample_conv_var2smp_sint
    - arith_add
    linkageType: ''
    returnType: int
    signature: int sample_conv_arith_add(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3592,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3593,1
    - Dst: arith_add
      Src: /src/haproxy/src/sample.c:3601,1
    - Dst: arith_add
      Src: /src/haproxy/src/sample.c:3610,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3612
      start: 3587
    functionDepth: 6
    functionLinenumber: 3587
    functionLinenumberEnd: 3612
    functionName: sample_conv_arith_sub
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_set_owner
    - sample_conv_var2smp_sint
    - arith_add
    linkageType: ''
    returnType: int
    signature: "int sample_conv_arith_sub(const struct arg *arg_p,\n                                 struct
      sample *smp, void *private)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3625,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3626,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3657
      start: 3619
    functionDepth: 6
    functionLinenumber: 3619
    functionLinenumberEnd: 3657
    functionName: sample_conv_arith_mul
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_set_owner
    - sample_conv_var2smp_sint
    linkageType: ''
    returnType: int
    signature: "int sample_conv_arith_mul(const struct arg *arg_p,\n                                 struct
      sample *smp, void *private)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3669,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3686
      start: 3664
    functionDepth: 6
    functionLinenumber: 3664
    functionLinenumberEnd: 3686
    functionName: sample_conv_arith_div
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_set_owner
    - sample_conv_var2smp_sint
    linkageType: ''
    returnType: int
    signature: "int sample_conv_arith_div(const struct arg *arg_p,\n                                 struct
      sample *smp, void *private)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3697,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3698,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3714
      start: 3692
    functionDepth: 6
    functionLinenumber: 3692
    functionLinenumberEnd: 3714
    functionName: sample_conv_arith_mod
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_set_owner
    - sample_conv_var2smp_sint
    linkageType: ''
    returnType: int
    signature: "int sample_conv_arith_mod(const struct arg *arg_p,\n                                 struct
      sample *smp, void *private)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3727
      start: 3719
    functionDepth: 0
    functionLinenumber: 3719
    functionLinenumberEnd: 3727
    functionName: sample_conv_arith_neg
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sample_conv_arith_neg(const struct arg *arg_p,\n                                 struct
      sample *smp, void *private)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3738
      start: 3732
    functionDepth: 0
    functionLinenumber: 3732
    functionLinenumberEnd: 3738
    functionName: sample_conv_arith_bool
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sample_conv_arith_bool(const struct arg *arg_p,\n                                  struct
      sample *smp, void *private)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3749
      start: 3743
    functionDepth: 0
    functionLinenumber: 3743
    functionLinenumberEnd: 3749
    functionName: sample_conv_arith_not
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sample_conv_arith_not(const struct arg *arg_p,\n                                 struct
      sample *smp, void *private)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3760
      start: 3754
    functionDepth: 0
    functionLinenumber: 3754
    functionLinenumberEnd: 3760
    functionName: sample_conv_arith_odd
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sample_conv_arith_odd(const struct arg *arg_p,\n                                 struct
      sample *smp, void *private)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3771
      start: 3765
    functionDepth: 0
    functionLinenumber: 3765
    functionLinenumberEnd: 3771
    functionName: sample_conv_arith_even
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sample_conv_arith_even(const struct arg *arg_p,\n                                  struct
      sample *smp, void *private)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3784,1
    - Dst: vars_get_by_desc
      Src: /src/haproxy/src/sample.c:3785,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:3788,1
    - Dst: b_orig
      Src: /src/haproxy/src/sample.c:3788,1
    - Dst: b_data
      Src: /src/haproxy/src/sample.c:3788,1
    - Dst: alloc_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:3791,1
    - Dst: istlen
      Src: /src/haproxy/src/sample.c:3791,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3799,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3808,1
    - Dst: istlen
      Src: /src/haproxy/src/sample.c:3814,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3819,1
    - Dst: istptr
      Src: /src/haproxy/src/sample.c:3819,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3830,1
    - Dst: smp_dup
      Src: /src/haproxy/src/sample.c:3837,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:3838,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3840
      start: 3776
    functionDepth: 4
    functionLinenumber: 3776
    functionLinenumberEnd: 3840
    functionName: sample_conv_concat
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ist2
    - b_orig
    - memcpy
    - free_trash_chunk
    - vars_get_by_desc
    - b_data
    - smp_set_owner
    - smp_dup
    - istptr
    - istlen
    - alloc_trash_chunk_sz
    linkageType: ''
    returnType: int
    signature: int sample_conv_concat(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:3849,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3855
      start: 3845
    functionDepth: 5
    functionLinenumber: 3845
    functionLinenumberEnd: 3855
    functionName: smp_check_concat
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: "int smp_check_concat(struct arg *args, struct sample_conv *conv,\n
      \                          const char *file, int line, char **err)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3868,1
    - Dst: vars_get_by_desc
      Src: /src/haproxy/src/sample.c:3869,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:3872,1
    - Dst: b_orig
      Src: /src/haproxy/src/sample.c:3872,1
    - Dst: b_data
      Src: /src/haproxy/src/sample.c:3872,1
    - Dst: alloc_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:3875,1
    - Dst: istlen
      Src: /src/haproxy/src/sample.c:3875,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3883,1
    - Dst: istlen
      Src: /src/haproxy/src/sample.c:3889,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3895,1
    - Dst: istlen
      Src: /src/haproxy/src/sample.c:3902,1
    - Dst: istlen
      Src: /src/haproxy/src/sample.c:3903,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3908,1
    - Dst: istptr
      Src: /src/haproxy/src/sample.c:3908,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3920,1
    - Dst: smp_dup
      Src: /src/haproxy/src/sample.c:3927,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:3928,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3930
      start: 3860
    functionDepth: 4
    functionLinenumber: 3860
    functionLinenumberEnd: 3930
    functionName: sample_conv_add_item
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ist2
    - b_orig
    - memcpy
    - free_trash_chunk
    - vars_get_by_desc
    - b_data
    - smp_set_owner
    - smp_dup
    - istptr
    - istlen
    - alloc_trash_chunk_sz
    linkageType: ''
    returnType: int
    signature: int sample_conv_add_item(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:3939,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3940,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3946,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3951
      start: 3935
    functionDepth: 5
    functionLinenumber: 3935
    functionLinenumberEnd: 3951
    functionName: smp_check_add_item
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: "int smp_check_add_item(struct arg *args, struct sample_conv *conv,\n
      \                          const char *file, int line, char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3961,1
    - Dst: sample_conv_var2smp
      Src: /src/haproxy/src/sample.c:3965,1
    - Dst: MIN
      Src: /src/haproxy/src/sample.c:3968,1
    - Dst: strncmp
      Src: /src/haproxy/src/sample.c:3969,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3984
      start: 3956
    functionDepth: 5
    functionLinenumber: 3956
    functionLinenumberEnd: 3984
    functionName: sample_conv_strcmp
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp
    - smp_set_owner
    - MIN
    - strncmp
    linkageType: ''
    returnType: int
    signature: int sample_conv_strcmp(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sample_conv_str2lower
      Src: /src/haproxy/src/sample.c:4008,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3990
    functionDepth: 2
    functionLinenumber: 3990
    functionLinenumberEnd: 4009
    functionName: sample_conv_host_only
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_str2lower
    linkageType: ''
    returnType: int
    signature: int sample_conv_host_only(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strl2ui
      Src: /src/haproxy/src/sample.c:4030,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4035
      start: 4016
    functionDepth: 2
    functionLinenumber: 4016
    functionLinenumberEnd: 4035
    functionName: sample_conv_port_only
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - strl2ui
    linkageType: ''
    returnType: int
    signature: int sample_conv_port_only(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4056
      start: 4041
    functionDepth: 0
    functionLinenumber: 4041
    functionLinenumberEnd: 4056
    functionName: sample_conv_iif
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_iif(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/sample.c:4114,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/sample.c:4118,1
    - Dst: sc_conn
      Src: /src/haproxy/src/sample.c:4122,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/sample.c:4122,1
    - Dst: acl_exec_cond
      Src: /src/haproxy/src/sample.c:4127,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 31
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4139
      start: 4086
    functionDepth: 2
    functionLinenumber: 4086
    functionLinenumberEnd: 4139
    functionName: sample_conv_when
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - sc_appctx
    - acl_exec_cond
    linkageType: ''
    returnType: int
    signature: int sample_conv_when(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:4161,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4166,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4168,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4169,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4175,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4180,1
    - Dst: calloc
      Src: /src/haproxy/src/sample.c:4184,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4186,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/sample.c:4190,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/sample.c:4191,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sample.c:4192,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sample.c:4193,1
    - Dst: find_acl_by_name
      Src: /src/haproxy/src/sample.c:4197,1
    - Dst: find_acl_default
      Src: /src/haproxy/src/sample.c:4198,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4199,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:4200,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4213,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4215,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4218,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4228
      start: 4146
    functionDepth: 5
    functionLinenumber: 4146
    functionLinenumberEnd: 4228
    functionName: check_when_cond
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - find_acl_by_name
    - calloc
    - strcmp
    - LIST_APPEND
    - free
    - chunk_destroy
    - LIST_INIT
    - find_acl_default
    linkageType: ''
    returnType: int
    signature: "int check_when_cond(struct arg *args, struct sample_conv *conv,\n
      \                            const char *file, int line, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/src/sample.c:4251,1
    - Dst: read_u32
      Src: /src/haproxy/src/sample.c:4251,1
    - Dst: protobuf_field_lookup
      Src: /src/haproxy/src/sample.c:4259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4266
      start: 4240
    functionDepth: 1
    functionLinenumber: 4240
    functionLinenumberEnd: 4266
    functionName: sample_conv_ungrpc
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - protobuf_field_lookup
    - ntohl
    - read_u32
    linkageType: ''
    returnType: int
    signature: int sample_conv_ungrpc(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protobuf_field_lookup
      Src: /src/haproxy/src/sample.c:4276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4277
      start: 4268
    functionDepth: 1
    functionLinenumber: 4268
    functionLinenumberEnd: 4277
    functionName: sample_conv_protobuf
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - protobuf_field_lookup
    linkageType: ''
    returnType: int
    signature: int sample_conv_protobuf(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: protobuf_type
      Src: /src/haproxy/src/sample.c:4289,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4291,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4301
      start: 4279
    functionDepth: 5
    functionLinenumber: 4279
    functionLinenumberEnd: 4301
    functionName: sample_conv_protobuf_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - protobuf_type
    - memprintf
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: "int sample_conv_protobuf_check(struct arg *args, struct sample_conv
      *conv,\n                                      const char *file, int line, char
      **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fix_tag_value
      Src: /src/haproxy/src/sample.c:4313,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:4313,1
    - Dst: istlen
      Src: /src/haproxy/src/sample.c:4315,1
    - Dst: isttest
      Src: /src/haproxy/src/sample.c:4316,1
    - Dst: ist2buf
      Src: /src/haproxy/src/sample.c:4323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4308
    functionDepth: 1
    functionLinenumber: 4308
    functionLinenumberEnd: 4327
    functionName: sample_conv_fix_tag_value
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ist2
    - ist2buf
    - fix_tag_value
    - istlen
    - isttest
    linkageType: ''
    returnType: int
    signature: int sample_conv_fix_tag_value(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:4340,1
    - Dst: fix_tagid
      Src: /src/haproxy/src/sample.c:4341,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4343,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4352
      start: 4334
    functionDepth: 5
    functionLinenumber: 4334
    functionLinenumberEnd: 4352
    functionName: sample_conv_fix_value_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ist2
    - chunk_destroy
    - fix_tagid
    linkageType: ''
    returnType: int
    signature: "int sample_conv_fix_value_check(struct arg *args, struct sample_conv
      *conv,\n\t\t\t\t       const char *file, int line, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:4364,1
    - Dst: fix_validate_message
      Src: /src/haproxy/src/sample.c:4367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4381
      start: 4360
    functionDepth: 1
    functionLinenumber: 4360
    functionLinenumberEnd: 4381
    functionName: sample_conv_fix_is_valid
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ist2
    - fix_validate_message
    linkageType: ''
    returnType: int
    signature: int sample_conv_fix_is_valid(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:4396,1
    - Dst: mqtt_field_value
      Src: /src/haproxy/src/sample.c:4401,1
    - Dst: istlen
      Src: /src/haproxy/src/sample.c:4402,1
    - Dst: isttest
      Src: /src/haproxy/src/sample.c:4403,1
    - Dst: ist2buf
      Src: /src/haproxy/src/sample.c:4410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4413
      start: 4391
    functionDepth: 1
    functionLinenumber: 4391
    functionLinenumberEnd: 4413
    functionName: sample_conv_mqtt_field_value
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ist2
    - ist2buf
    - mqtt_field_value
    - istlen
    - isttest
    linkageType: ''
    returnType: int
    signature: int sample_conv_mqtt_field_value(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mqtt_typeid
      Src: /src/haproxy/src/sample.c:4428,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:4428,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4430,1
    - Dst: mqtt_check_type_fieldname
      Src: /src/haproxy/src/sample.c:4435,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:4435,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4437,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4443,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4451
      start: 4422
    functionDepth: 5
    functionLinenumber: 4422
    functionLinenumberEnd: 4451
    functionName: sample_conv_mqtt_field_value_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ist2
    - memprintf
    - mqtt_check_type_fieldname
    - mqtt_typeid
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: "int sample_conv_mqtt_field_value_check(struct arg *args, struct sample_conv
      *conv,\n\t\t\t\t\t      const char *file, int line, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:4463,1
    - Dst: mqtt_validate_message
      Src: /src/haproxy/src/sample.c:4466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4480
      start: 4459
    functionDepth: 1
    functionLinenumber: 4459
    functionLinenumberEnd: 4480
    functionName: sample_conv_mqtt_is_valid
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ist2
    - mqtt_validate_message
    linkageType: ''
    returnType: int
    signature: int sample_conv_mqtt_is_valid(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4489,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:4494,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4500
      start: 4485
    functionDepth: 5
    functionLinenumber: 4485
    functionLinenumberEnd: 4500
    functionName: smp_check_strcmp
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: "int smp_check_strcmp(struct arg *args, struct sample_conv *conv,\n
      \                          const char *file, int line, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/haproxy/src/sample.c:4508,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:4509,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:4511,1
    - Dst: b_head
      Src: /src/haproxy/src/sample.c:4511,1
    - Dst: b_add
      Src: /src/haproxy/src/sample.c:4512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4517
      start: 4503
    functionDepth: 2
    functionLinenumber: 4503
    functionLinenumberEnd: 4517
    functionName: sample_conv_htonl
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - b_head
    - memcpy
    - get_trash_chunk
    - b_add
    - htonl
    linkageType: ''
    returnType: int
    signature: int sample_conv_htonl(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4532
      start: 4520
    functionDepth: 0
    functionLinenumber: 4520
    functionLinenumberEnd: 4532
    functionName: sample_conv_cut_crlf
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_conv_cut_crlf(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/haproxy/src/sample.c:4545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4553
      start: 4535
    functionDepth: 0
    functionLinenumber: 4535
    functionLinenumberEnd: 4553
    functionName: sample_conv_ltrim
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: int
    signature: int sample_conv_ltrim(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/haproxy/src/sample.c:4566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4573
      start: 4556
    functionDepth: 0
    functionLinenumber: 4556
    functionLinenumberEnd: 4573
    functionName: sample_conv_rtrim
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: int
    signature: int sample_conv_rtrim(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4580,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:4585,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - arg
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4594
      start: 4576
    functionDepth: 5
    functionLinenumber: 4576
    functionLinenumberEnd: 4594
    functionName: sample_check_json_query
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sample_check_json_query(struct arg *arg, struct sample_conv *conv,\n
      \                          const char *file, int line, char **err)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:4607,1
    - Dst: mjson_find
      Src: /src/haproxy/src/sample.c:4613,1
    - Dst: strtoll
      Src: /src/haproxy/src/sample.c:4618,1
    - Dst: mjson_get_number
      Src: /src/haproxy/src/sample.c:4629,1
    - Dst: snprintf
      Src: /src/haproxy/src/sample.c:4632,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/sample.c:4652,1
    - Dst: get_larger_trash_chunk
      Src: /src/haproxy/src/sample.c:4655,1
    - Dst: get_larger_trash_chunk
      Src: /src/haproxy/src/sample.c:4673,1
    - Dst: b_putblk
      Src: /src/haproxy/src/sample.c:4677,1
    - Dst: my_unreachable
      Src: /src/haproxy/src/sample.c:4697,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 63
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4699
      start: 4605
    functionDepth: 6
    functionLinenumber: 4605
    functionLinenumberEnd: 4699
    functionName: sample_conv_json_query
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - mjson_get_string
    - mjson_find
    - get_larger_trash_chunk
    - b_putblk
    - get_trash_chunk
    - strtoll
    - mjson_get_number
    - my_unreachable
    - snprintf
    linkageType: ''
    returnType: int
    signature: int sample_conv_json_query(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:4708,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:4709,1
    - Dst: jwt_parse_alg
      Src: /src/haproxy/src/sample.c:4712,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4715,1
    - Dst: jwt_tree_load_cert
      Src: /src/haproxy/src/sample.c:4729,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4746
      start: 4702
    functionDepth: 5
    functionLinenumber: 4702
    functionLinenumberEnd: 4746
    functionName: sample_conv_jwt_verify_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - jwt_parse_alg
    - jwt_tree_load_cert
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: "int sample_conv_jwt_verify_check(struct arg *args, struct sample_conv
      *conv,\n\t\t\t\t\tconst char *file, int line, char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:4754,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:4755,1
    - Dst: jwt_parse_alg
      Src: /src/haproxy/src/sample.c:4758,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4761,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4773,1
    - Dst: jwt_tree_load_cert
      Src: /src/haproxy/src/sample.c:4776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4789
      start: 4748
    functionDepth: 5
    functionLinenumber: 4748
    functionLinenumberEnd: 4789
    functionName: sample_conv_jwt_verify_cert_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - jwt_parse_alg
    - jwt_tree_load_cert
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: "int sample_conv_jwt_verify_cert_check(struct arg *args, struct sample_conv
      *conv,\n                                             const char *file, int line,
      char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:4806,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:4809,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:4812,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/sample.c:4816,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:4819,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/sample.c:4820,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sample.c:4822,1
    - Dst: b_data
      Src: /src/haproxy/src/sample.c:4822,1
    - Dst: b_orig
      Src: /src/haproxy/src/sample.c:4822,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:4825,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/sample.c:4826,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sample.c:4828,1
    - Dst: b_data
      Src: /src/haproxy/src/sample.c:4828,1
    - Dst: b_orig
      Src: /src/haproxy/src/sample.c:4828,1
    - Dst: jwt_verify
      Src: /src/haproxy/src/sample.c:4831,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4839,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4840,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4841,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4843
      start: 4792
    functionDepth: 6
    functionLinenumber: 4792
    functionLinenumberEnd: 4843
    functionName: sample_conv_jwt_verify
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - b_orig
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_printf
    - jwt_verify
    - b_data
    - smp_set_owner
    - chunk_cpy
    - sample_conv_var2smp_str
    - alloc_trash_chunk_sz
    linkageType: ''
    returnType: int
    signature: int sample_conv_jwt_verify(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:4859,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:4862,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:4865,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/sample.c:4869,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:4872,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/sample.c:4873,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sample.c:4875,1
    - Dst: b_data
      Src: /src/haproxy/src/sample.c:4875,1
    - Dst: b_orig
      Src: /src/haproxy/src/sample.c:4875,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:4878,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/sample.c:4879,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sample.c:4881,1
    - Dst: b_data
      Src: /src/haproxy/src/sample.c:4881,1
    - Dst: b_orig
      Src: /src/haproxy/src/sample.c:4881,1
    - Dst: jwt_verify
      Src: /src/haproxy/src/sample.c:4884,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4892,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4893,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4894,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4896
      start: 4845
    functionDepth: 6
    functionLinenumber: 4845
    functionLinenumberEnd: 4896
    functionName: sample_conv_jwt_verify_cert
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - b_orig
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_printf
    - jwt_verify
    - b_data
    - smp_set_owner
    - chunk_cpy
    - sample_conv_var2smp_str
    - alloc_trash_chunk_sz
    linkageType: ''
    returnType: int
    signature: int sample_conv_jwt_verify_cert(const struct arg *args, struct sample
      *smp, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: jwt_tokenize
      Src: /src/haproxy/src/sample.c:4916,1
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/sample.c:4919,1
    - Dst: base64urldec
      Src: /src/haproxy/src/sample.c:4923,1
    - Dst: sample_conv_json_query
      Src: /src/haproxy/src/sample.c:4938,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - args
    - smp
    - private
    - member
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    - enum jwt_elt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4942
      start: 4904
    functionDepth: 7
    functionLinenumber: 4904
    functionLinenumberEnd: 4942
    functionName: sample_conv_jwt_member_query
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - base64urldec
    - get_trash_chunk_sz
    - sample_conv_json_query
    - jwt_tokenize
    linkageType: ''
    returnType: int
    signature: "int sample_conv_jwt_member_query(const struct arg *args, struct sample
      *smp,\n\t\t\t\t\tvoid *private, enum jwt_elt member)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:4952,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - arg
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4961
      start: 4948
    functionDepth: 5
    functionLinenumber: 4948
    functionLinenumberEnd: 4961
    functionName: sample_conv_jwt_query_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sample_conv_jwt_query_check(struct arg *arg, struct sample_conv
      *conv,\n\t\t\t\t       const char *file, int line, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample_conv_jwt_member_query
      Src: /src/haproxy/src/sample.c:4971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4972
      start: 4969
    functionDepth: 8
    functionLinenumber: 4969
    functionLinenumberEnd: 4972
    functionName: sample_conv_jwt_header_query
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_jwt_member_query
    linkageType: ''
    returnType: int
    signature: int sample_conv_jwt_header_query(const struct arg *args, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sample_conv_jwt_member_query
      Src: /src/haproxy/src/sample.c:4981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4982
      start: 4979
    functionDepth: 8
    functionLinenumber: 4979
    functionLinenumberEnd: 4982
    functionName: sample_conv_jwt_payload_query
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_jwt_member_query
    linkageType: ''
    returnType: int
    signature: int sample_conv_jwt_payload_query(const struct arg *args, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4998
      start: 4992
    functionDepth: 0
    functionLinenumber: 4992
    functionLinenumberEnd: 4998
    functionName: smp_fetch_actconn
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_actconn(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_make_rw
      Src: /src/haproxy/src/sample.c:5005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5011
      start: 5002
    functionDepth: 1
    functionLinenumber: 5002
    functionLinenumberEnd: 5011
    functionName: smp_fetch_true
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - smp_make_rw
    linkageType: ''
    returnType: int
    signature: int smp_fetch_true(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5020
      start: 5014
    functionDepth: 0
    functionLinenumber: 5014
    functionLinenumberEnd: 5020
    functionName: smp_fetch_false
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_false(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/haproxy/src/sample.c:5031,1
    - Dst: strlen
      Src: /src/haproxy/src/sample.c:5038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5040
      start: 5023
    functionDepth: 0
    functionLinenumber: 5023
    functionLinenumberEnd: 5040
    functionName: smp_fetch_env
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - getenv
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_env(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:5052,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:5055,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:5058,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:5062,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:5067,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:5072,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5077
      start: 5047
    functionDepth: 5
    functionLinenumber: 5047
    functionLinenumberEnd: 5077
    functionName: smp_check_date_unit
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - memprintf
    - strcmp
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: int smp_check_date_unit(struct arg *args, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5106
      start: 5083
    functionDepth: 0
    functionLinenumber: 5083
    functionLinenumberEnd: 5106
    functionName: smp_fetch_date
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_date(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5116
      start: 5109
    functionDepth: 0
    functionLinenumber: 5109
    functionLinenumberEnd: 5116
    functionName: smp_fetch_date_us
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_date_us(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/sample.c:5126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5128
      start: 5120
    functionDepth: 0
    functionLinenumber: 5120
    functionLinenumberEnd: 5128
    functionName: smp_fetch_hostname
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_hostname(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5137
      start: 5131
    functionDepth: 0
    functionLinenumber: 5131
    functionLinenumberEnd: 5137
    functionName: smp_fetch_nbproc
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_nbproc(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5146
      start: 5140
    functionDepth: 0
    functionLinenumber: 5140
    functionLinenumberEnd: 5146
    functionName: smp_fetch_pid
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_pid(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5156
      start: 5150
    functionDepth: 0
    functionLinenumber: 5150
    functionLinenumberEnd: 5156
    functionName: smp_fetch_proc
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_proc(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5165
      start: 5159
    functionDepth: 0
    functionLinenumber: 5159
    functionLinenumberEnd: 5165
    functionName: smp_fetch_thread
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_thread(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5174
      start: 5168
    functionDepth: 0
    functionLinenumber: 5168
    functionLinenumberEnd: 5174
    functionName: smp_fetch_tgroup
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_tgroup(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5183
      start: 5177
    functionDepth: 0
    functionLinenumber: 5177
    functionLinenumberEnd: 5183
    functionName: smp_fetch_cpu_usage_thr
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cpu_usage_thr(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5197
      start: 5186
    functionDepth: 0
    functionLinenumber: 5186
    functionLinenumberEnd: 5197
    functionName: smp_fetch_cpu_usage_grp
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cpu_usage_grp(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5211
      start: 5200
    functionDepth: 0
    functionLinenumber: 5200
    functionLinenumberEnd: 5211
    functionName: smp_fetch_cpu_usage_proc
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cpu_usage_proc(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: statistical_prng
      Src: /src/haproxy/src/sample.c:5219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5228
      start: 5216
    functionDepth: 0
    functionLinenumber: 5216
    functionLinenumberEnd: 5228
    functionName: smp_fetch_rand
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - statistical_prng
    linkageType: ''
    returnType: int
    signature: int smp_fetch_rand(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5237
      start: 5231
    functionDepth: 0
    functionLinenumber: 5231
    functionLinenumberEnd: 5237
    functionName: smp_fetch_stopping
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_stopping(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5249
      start: 5240
    functionDepth: 0
    functionLinenumber: 5240
    functionLinenumberEnd: 5249
    functionName: smp_fetch_cpu_calls
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cpu_calls(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5261
      start: 5252
    functionDepth: 0
    functionLinenumber: 5252
    functionLinenumberEnd: 5261
    functionName: smp_fetch_cpu_ns_avg
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cpu_ns_avg(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5273
      start: 5264
    functionDepth: 0
    functionLinenumber: 5264
    functionLinenumberEnd: 5273
    functionName: smp_fetch_cpu_ns_tot
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cpu_ns_tot(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5285
      start: 5276
    functionDepth: 0
    functionLinenumber: 5276
    functionLinenumberEnd: 5285
    functionName: smp_fetch_lat_ns_avg
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_lat_ns_avg(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5297
      start: 5288
    functionDepth: 0
    functionLinenumber: 5288
    functionLinenumberEnd: 5297
    functionName: smp_fetch_lat_ns_tot
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_lat_ns_tot(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5306
      start: 5299
    functionDepth: 0
    functionLinenumber: 5299
    functionLinenumberEnd: 5306
    functionName: smp_fetch_const_str
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_const_str(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/haproxy/src/sample.c:5310,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/sample.c:5311,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:5312,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/sample.c:5317,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/sample.c:5318,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:5319,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:5324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5326
      start: 5308
    functionDepth: 5
    functionLinenumber: 5308
    functionLinenumberEnd: 5326
    functionName: smp_check_const_bool
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcasecmp
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: int smp_check_const_bool(struct arg *args, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5333
      start: 5328
    functionDepth: 0
    functionLinenumber: 5328
    functionLinenumberEnd: 5333
    functionName: smp_fetch_const_bool
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_const_bool(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5340
      start: 5335
    functionDepth: 0
    functionLinenumber: 5335
    functionLinenumberEnd: 5340
    functionName: smp_fetch_const_int
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_const_int(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5347
      start: 5342
    functionDepth: 0
    functionLinenumber: 5342
    functionLinenumberEnd: 5347
    functionName: smp_fetch_const_ipv4
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_const_ipv4(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5354
      start: 5349
    functionDepth: 0
    functionLinenumber: 5349
    functionLinenumberEnd: 5354
    functionName: smp_fetch_const_ipv6
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_const_ipv6(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_binary
      Src: /src/haproxy/src/sample.c:5361,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:5363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5368
      start: 5356
    functionDepth: 2
    functionLinenumber: 5356
    functionLinenumberEnd: 5368
    functionName: smp_check_const_bin
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - parse_binary
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: int smp_check_const_bin(struct arg *args, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5377
      start: 5370
    functionDepth: 0
    functionLinenumber: 5370
    functionLinenumberEnd: 5377
    functionName: smp_fetch_const_bin
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_const_bin(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_http_meth
      Src: /src/haproxy/src/sample.c:5384,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:5386,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/sample.c:5396,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:5397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5403
      start: 5379
    functionDepth: 5
    functionLinenumber: 5379
    functionLinenumberEnd: 5403
    functionName: smp_check_const_meth
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - find_http_meth
    - memprintf
    - HTTP_IS_TOKEN
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: int smp_check_const_meth(struct arg *args, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5420
      start: 5405
    functionDepth: 0
    functionLinenumber: 5405
    functionLinenumberEnd: 5420
    functionName: smp_fetch_const_meth
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_const_meth(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:5435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5441
      start: 5424
    functionDepth: 5
    functionLinenumber: 5424
    functionLinenumberEnd: 5441
    functionName: smp_check_uuid
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int smp_check_uuid(struct arg *args, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ha_generate_uuid_v4
      Src: /src/haproxy/src/sample.c:5456,1
    - Dst: ha_generate_uuid_v7
      Src: /src/haproxy/src/sample.c:5459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5469
      start: 5444
    functionDepth: 2
    functionLinenumber: 5444
    functionLinenumberEnd: 5469
    functionName: smp_fetch_uuid
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ha_generate_uuid_v4
    - ha_generate_uuid_v7
    linkageType: ''
    returnType: int
    signature: int smp_fetch_uuid(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ns_to_sec
      Src: /src/haproxy/src/sample.c:5476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5478
      start: 5472
    functionDepth: 1
    functionLinenumber: 5472
    functionLinenumberEnd: 5478
    functionName: smp_fetch_uptime
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ns_to_sec
    linkageType: ''
    returnType: int
    signature: int smp_fetch_uptime(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5492
      start: 5482
    functionDepth: 0
    functionLinenumber: 5482
    functionLinenumberEnd: 5492
    functionName: smp_fetch_quic_enabled
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_quic_enabled(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ns_to_ms
      Src: /src/haproxy/src/sample.c:5510,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5565
      start: 5495
    functionDepth: 1
    functionLinenumber: 5495
    functionLinenumberEnd: 5565
    functionName: smp_fetch_reX_timers
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ns_to_ms
    linkageType: ''
    returnType: int
    signature: int smp_fetch_reX_timers(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5604
      start: 5569
    functionDepth: 0
    functionLinenumber: 5569
    functionLinenumberEnd: 5604
    functionName: smp_fetch_txn_timers
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_txn_timers(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5628
      start: 5607
    functionDepth: 0
    functionLinenumber: 5607
    functionLinenumberEnd: 5628
    functionName: smp_fetch_conn_queues
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_conn_queues(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5689
      start: 5631
    functionDepth: 0
    functionLinenumber: 5631
    functionLinenumberEnd: 5689
    functionName: smp_fetch_conn_timers
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_conn_timers(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5714
      start: 5692
    functionDepth: 0
    functionLinenumber: 5692
    functionLinenumberEnd: 5714
    functionName: smp_fetch_bytes
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_bytes(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: check_operator
      Src: /src/haproxy/src/sample.c:5720,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:5725,1
    - Dst: check_operator
      Src: /src/haproxy/src/sample.c:5731,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:5736,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5743
      start: 5716
    functionDepth: 6
    functionLinenumber: 5716
    functionLinenumberEnd: 5743
    functionName: sample_conv_bytes_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - check_operator
    linkageType: ''
    returnType: int
    signature: "int sample_conv_bytes_check(struct arg *args, struct sample_conv *conv,\n
      \                         const char *file, int line, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chn_prod
      Src: /src/haproxy/src/filters.c:72,1
    - Dst: flt_list_start
      Src: /src/haproxy/src/filters.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - strm
    - chn
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: resume_filter_list_start
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - chn_prod
    - flt_list_start
    linkageType: ''
    returnType: struct filter
    signature: struct filter *resume_filter_list_start(struct stream *strm, struct
      channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flt_list_next
      Src: /src/haproxy/src/filters.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - strm
    - chn
    - filter
    argTypes:
    - struct stream*
    - struct channel*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: resume_filter_list_next
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - flt_list_next
    linkageType: ''
    returnType: struct filter
    signature: "struct filter *resume_filter_list_next(struct stream *strm, struct
      channel *chn,\n                                                     struct filter
      *filter)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - strm
    - chn
    - filter
    - ret
    argTypes:
    - struct stream*
    - struct channel*
    - struct filter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: resume_filter_list_break
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void resume_filter_list_break(struct stream *strm, struct channel
      *chn,\n                                            struct filter *filter, int
      ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/filters.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct flt_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: flt_register_keywords
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void flt_register_keywords(struct flt_kw_list *kwl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/filters.c:140,1
    - Dst: strlen
      Src: /src/haproxy/src/filters.c:142,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:144,1
    - Dst: strncmp
      Src: /src/haproxy/src/filters.c:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 156
    functionName: flt_find_kw
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - strncmp
    - strchr
    - strlen
    linkageType: ''
    returnType: struct flt_kw
    signature: 'struct flt_kw *

      flt_find_kw(const char *kw)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:175,1
    - Dst: flt_find_kw
      Src: /src/haproxy/src/filters.c:178,1
    - Dst: strordered
      Src: /src/haproxy/src/filters.c:179,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:192,1
    - Dst: printf
      Src: /src/haproxy/src/filters.c:197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - out
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 200
    functionName: flt_dump_kws
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - memprintf
    - flt_find_kw
    - list_for_each_entry
    - printf
    - strordered
    linkageType: ''
    returnType: void
    signature: void flt_dump_kws(char **out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/filters.c:210,1
    - Dst: flt_dump_kws
      Src: /src/haproxy/src/filters.c:211,1
    - Dst: strtok_r
      Src: /src/haproxy/src/filters.c:212,1
    - Dst: fprintf
      Src: /src/haproxy/src/filters.c:213,1
    - Dst: free
      Src: /src/haproxy/src/filters.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 6
    functionLinenumber: 205
    functionLinenumberEnd: 215
    functionName: list_filters
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - fprintf
    - flt_dump_kws
    - strtok_r
    - free
    linkageType: ''
    returnType: void
    signature: void list_filters(FILE *out)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:229,1
    - Dst: strcmp
      Src: /src/haproxy/src/filters.c:233,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:238,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/filters.c:240,1
    - Dst: calloc
      Src: /src/haproxy/src/filters.c:243,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:245,1
    - Dst: flt_find_kw
      Src: /src/haproxy/src/filters.c:250,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:255,1
    - Dst: struct flt_kw*::parse
      Src: /src/haproxy/src/filters.c:260,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:262,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:265,1
    - Dst: flt_dump_kws
      Src: /src/haproxy/src/filters.c:271,1
    - Dst: indent_msg
      Src: /src/haproxy/src/filters.c:272,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:273,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:279,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:284,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/filters.c:289,1
    - Dst: free
      Src: /src/haproxy/src/filters.c:294,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 221
    functionDepth: 6
    functionLinenumber: 221
    functionLinenumberEnd: 298
    functionName: parse_filter
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - memprintf
    - flt_find_kw
    - proxy_type_str
    - calloc
    - strcmp
    - struct flt_kw*::parse
    - flt_dump_kws
    - LIST_APPEND
    - free
    - indent_msg
    linkageType: ''
    returnType: int
    signature: "int parse_filter(char **args, int section_type, struct proxy *curpx,\n\t
      \    const struct proxy *defpx, const char *file, int line, char **err)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:309,1
    - Dst: strcmp
      Src: /src/haproxy/src/filters.c:313,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:319,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/filters.c:321,1
    - Dst: strcmp
      Src: /src/haproxy/src/filters.c:325,1
    - Dst: strcmp
      Src: /src/haproxy/src/filters.c:327,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:330,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/filters.c:332,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:337,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/filters.c:339,1
    - Dst: calloc
      Src: /src/haproxy/src/filters.c:347,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:349,1
    - Dst: strcspn
      Src: /src/haproxy/src/filters.c:353,1
    - Dst: my_strndup
      Src: /src/haproxy/src/filters.c:355,1
    - Dst: ha_free
      Src: /src/haproxy/src/filters.c:357,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/filters.c:361,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 303
    functionDepth: 5
    functionLinenumber: 303
    functionLinenumberEnd: 374
    functionName: parse_filter_sequence
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - memprintf
    - my_strndup
    - proxy_type_str
    - ha_free
    - calloc
    - strcspn
    - strcmp
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: "int parse_filter_sequence(char **args, int section_type, struct proxy
      *curpx,\n                      const struct proxy *defpx, const char *file,
      int line, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:381,1
    - Dst: strcmp
      Src: /src/haproxy/src/filters.c:382,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - px
    - elt
    - errmsg
    argTypes:
    - struct proxy*
    - struct filter_sequence_elt*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 376
    functionDepth: 5
    functionLinenumber: 376
    functionLinenumberEnd: 393
    functionName: compile_filter_sequence_elt
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int compile_filter_sequence_elt(struct proxy *px, struct filter_sequence_elt
      *elt, char **errmsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:406,1
    - Dst: compile_filter_sequence_elt
      Src: /src/haproxy/src/filters.c:407,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:409,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:413,1
    - Dst: compile_filter_sequence_elt
      Src: /src/haproxy/src/filters.c:414,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:416,1
    - Dst: ha_alert
      Src: /src/haproxy/src/filters.c:424,1
    - Dst: ha_free
      Src: /src/haproxy/src/filters.c:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 400
    functionDepth: 6
    functionLinenumber: 400
    functionLinenumberEnd: 427
    functionName: postcheck_filter_sequence
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - memprintf
    - list_for_each_entry
    - ha_free
    - compile_filter_sequence_elt
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int postcheck_filter_sequence(struct proxy *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:440,1
    - Dst: struct flt_conf*::ops::init
      Src: /src/haproxy/src/filters.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 445
    functionName: flt_init
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - struct flt_conf*::ops::init
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int flt_init(struct proxy *proxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:457,1
    - Dst: struct flt_conf*::ops::init_per_thread
      Src: /src/haproxy/src/filters.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 462
    functionName: flt_init_per_thread
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - struct flt_conf*::ops::init_per_thread
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int flt_init_per_thread(struct proxy *proxy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flt_init
      Src: /src/haproxy/src/filters.c:475,1
    - Dst: ha_alert
      Src: /src/haproxy/src/filters.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 483
    functionName: flt_init_all
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - ha_alert
    - flt_init
    linkageType: ''
    returnType: int
    signature: int flt_init_all()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flt_init_per_thread
      Src: /src/haproxy/src/filters.c:497,1
    - Dst: ha_alert
      Src: /src/haproxy/src/filters.c:499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 505
    functionName: flt_init_all_per_thread
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - ha_alert
    - flt_init_per_thread
    linkageType: ''
    returnType: int
    signature: int flt_init_all_per_thread()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_implicit_http_comp_flt
      Src: /src/haproxy/src/filters.c:518,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:519,1
    - Dst: struct flt_conf*::ops::check
      Src: /src/haproxy/src/filters.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 524
    functionName: flt_check
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - check_implicit_http_comp_flt
    - struct flt_conf*::ops::check
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int flt_check(struct proxy *proxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/filters.c:536,1
    - Dst: struct flt_conf*::ops::deinit
      Src: /src/haproxy/src/filters.c:538,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/filters.c:539,1
    - Dst: free
      Src: /src/haproxy/src/filters.c:540,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/filters.c:542,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/filters.c:543,1
    - Dst: ha_free
      Src: /src/haproxy/src/filters.c:544,1
    - Dst: ha_free
      Src: /src/haproxy/src/filters.c:545,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/filters.c:547,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/filters.c:548,1
    - Dst: ha_free
      Src: /src/haproxy/src/filters.c:549,1
    - Dst: ha_free
      Src: /src/haproxy/src/filters.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 552
    functionName: flt_deinit
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - struct flt_conf*::ops::deinit
    - LIST_DEL_INIT
    - ha_free
    - list_for_each_entry_safe
    - free
    linkageType: ''
    returnType: void
    signature: void flt_deinit(struct proxy *proxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/filters.c:563,1
    - Dst: struct flt_conf*::ops::deinit_per_thread
      Src: /src/haproxy/src/filters.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 567
    functionName: flt_deinit_per_thread
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - struct flt_conf*::ops::deinit_per_thread
    linkageType: ''
    returnType: void
    signature: void flt_deinit_per_thread(struct proxy *proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flt_deinit_per_thread
      Src: /src/haproxy/src/filters.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 578
    functionName: flt_deinit_all_per_thread
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - flt_deinit_per_thread
    linkageType: ''
    returnType: void
    signature: void flt_deinit_all_per_thread()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/filters.c:586,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/filters.c:589,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:595,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:596,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/filters.c:597,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:597,1
    - Dst: pool_free
      Src: /src/haproxy/src/filters.c:599,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/filters.c:604,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:604,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/filters.c:605,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/filters.c:606,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/filters.c:609,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/filters.c:610,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/filters.c:611,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/filters.c:612,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:614,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - s
    - px
    - fconf
    - flags
    argTypes:
    - struct stream*
    - struct proxy*
    - struct flt_conf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 616
    functionName: flt_stream_add_filter
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - pool_zalloc
    - FLT_OPS
    - strm_flt
    - LIST_APPEND
    - EXEC_CTX_MAKE
    - EXEC_CTX_WITH_RET
    - LIST_ISEMPTY
    - IS_HTX_STRM
    - LIST_INIT
    - pool_free
    linkageType: ''
    returnType: int
    signature: int flt_stream_add_filter(struct stream *s, struct proxy *px, struct
      flt_conf *fconf, unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:623,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:624,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:624,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/filters.c:625,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/filters.c:626,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:629,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:630,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:630,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/filters.c:631,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/filters.c:632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - px
    argTypes:
    - struct stream*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 635
    functionName: flt_stream_organize_filters
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - LIST_INLIST
    - strm_flt
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void flt_stream_organize_filters(struct stream *s, struct proxy *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/filters.c:646,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:646,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:646,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/filters.c:647,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:647,1
    - Dst: memset
      Src: /src/haproxy/src/filters.c:648,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/filters.c:649,1
    - Dst: memset
      Src: /src/haproxy/src/filters.c:650,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/filters.c:651,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:652,1
    - Dst: strm_fe
      Src: /src/haproxy/src/filters.c:652,1
    - Dst: flt_stream_add_filter
      Src: /src/haproxy/src/filters.c:653,1
    - Dst: strm_fe
      Src: /src/haproxy/src/filters.c:653,1
    - Dst: flt_stream_organize_filters
      Src: /src/haproxy/src/filters.c:656,1
    - Dst: strm_fe
      Src: /src/haproxy/src/filters.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 658
    functionName: flt_stream_init
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - memset
    - list_for_each_entry
    - flt_stream_organize_filters
    - flt_stream_add_filter
    - LIST_INIT
    - strm_flt
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int flt_stream_init(struct stream *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/filters.c:671,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:671,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:674,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:675,1
    - Dst: EXEC_CTX_NO_RET
      Src: /src/haproxy/src/filters.c:676,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:676,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/filters.c:678,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/filters.c:679,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/filters.c:680,1
    - Dst: pool_free
      Src: /src/haproxy/src/filters.c:681,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/filters.c:684,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:684,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:685,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - s
    - only_backend
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 686
    functionName: flt_stream_release
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - FLT_OPS
    - list_for_each_entry_safe
    - EXEC_CTX_MAKE
    - LIST_ISEMPTY
    - EXEC_CTX_NO_RET
    - pool_free
    - strm_flt
    linkageType: ''
    returnType: void
    signature: void flt_stream_release(struct stream *s, int only_backend)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:698,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:698,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:699,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:700,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/filters.c:703,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:703,1
    - Dst: strm_li
      Src: /src/haproxy/src/filters.c:710,1
    - Dst: strm_li
      Src: /src/haproxy/src/filters.c:710,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 715
    functionName: flt_stream_start
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - list_for_each_entry
    - EXEC_CTX_MAKE
    - EXEC_CTX_WITH_RET
    - strm_li
    - strm_flt
    linkageType: ''
    returnType: int
    signature: int flt_stream_start(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:726,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:726,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:727,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:728,1
    - Dst: EXEC_CTX_NO_RET
      Src: /src/haproxy/src/filters.c:731,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 734
    functionName: flt_stream_stop
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - list_for_each_entry
    - EXEC_CTX_MAKE
    - EXEC_CTX_NO_RET
    - strm_flt
    linkageType: ''
    returnType: void
    signature: void flt_stream_stop(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:745,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:745,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:746,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:747,1
    - Dst: EXEC_CTX_NO_RET
      Src: /src/haproxy/src/filters.c:750,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 753
    functionName: flt_stream_check_timeouts
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - list_for_each_entry
    - EXEC_CTX_MAKE
    - EXEC_CTX_NO_RET
    - strm_flt
    linkageType: ''
    returnType: void
    signature: void flt_stream_check_timeouts(struct stream *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/filters.c:766,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:769,1
    - Dst: flt_stream_add_filter
      Src: /src/haproxy/src/filters.c:770,1
    - Dst: flt_stream_organize_filters
      Src: /src/haproxy/src/filters.c:774,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:777,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:777,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:778,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:779,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/filters.c:782,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:782,1
    - Dst: strm_fe
      Src: /src/haproxy/src/filters.c:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - s
    - be
    argTypes:
    - struct stream*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 799
    functionName: flt_set_stream_backend
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - list_for_each_entry
    - EXEC_CTX_MAKE
    - EXEC_CTX_WITH_RET
    - flt_stream_organize_filters
    - flt_stream_add_filter
    - strm_flt
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int flt_set_stream_backend(struct stream *s, struct proxy *be)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_STRM_OFF
      Src: /src/haproxy/src/filters.c:813,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:817,1
    - Dst: resume_filter_list_start
      Src: /src/haproxy/src/filters.c:819,1
    - Dst: resume_filter_list_next
      Src: /src/haproxy/src/filters.c:820,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/filters.c:821,1
    - Dst: IS_DATA_FILTER
      Src: /src/haproxy/src/filters.c:827,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:830,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:831,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:833,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:833,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/filters.c:835,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:835,1
    - Dst: resume_filter_list_break
      Src: /src/haproxy/src/filters.c:837,1
    - Dst: c_adv
      Src: /src/haproxy/src/filters.c:843,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:847,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - struct stream*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 849
    functionName: flt_http_end
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OFF
    - DBG_TRACE_ENTER
    - FLT_OPS
    - DBG_TRACE_LEAVE
    - IS_DATA_FILTER
    - resume_filter_list_start
    - EXEC_CTX_MAKE
    - EXEC_CTX_WITH_RET
    - resume_filter_list_break
    - FLT_STRM_OFF
    - DBG_TRACE_DEVEL
    - c_adv
    - FLT_ID
    - resume_filter_list_next
    linkageType: ''
    returnType: int
    signature: int flt_http_end(struct stream *s, struct http_msg *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:860,1
    - Dst: flt_list_start
      Src: /src/haproxy/src/filters.c:862,1
    - Dst: flt_list_next
      Src: /src/haproxy/src/filters.c:863,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:864,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:865,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:867,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:867,1
    - Dst: EXEC_CTX_NO_RET
      Src: /src/haproxy/src/filters.c:869,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:869,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - struct stream*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 873
    functionName: flt_http_reset
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - DBG_TRACE_LEAVE
    - flt_list_next
    - flt_list_start
    - EXEC_CTX_MAKE
    - EXEC_CTX_NO_RET
    - DBG_TRACE_DEVEL
    - FLT_ID
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void flt_http_reset(struct stream *s, struct http_msg *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:884,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:886,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:886,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:887,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:888,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:890,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:890,1
    - Dst: EXEC_CTX_NO_RET
      Src: /src/haproxy/src/filters.c:892,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:892,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - s
    - status
    - msg
    argTypes:
    - struct stream*
    - short
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 896
    functionName: flt_http_reply
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - DBG_TRACE_LEAVE
    - list_for_each_entry
    - EXEC_CTX_MAKE
    - EXEC_CTX_NO_RET
    - DBG_TRACE_DEVEL
    - FLT_ID
    - strm_flt
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void flt_http_reply(struct stream *s, short status, const struct buffer
      *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_STRM_OFF
      Src: /src/haproxy/src/filters.c:911,1
    - Dst: co_data
      Src: /src/haproxy/src/filters.c:912,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:915,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:918,1
    - Dst: flt_list_start
      Src: /src/haproxy/src/filters.c:920,1
    - Dst: flt_list_next
      Src: /src/haproxy/src/filters.c:921,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:922,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/filters.c:923,1
    - Dst: IS_DATA_FILTER
      Src: /src/haproxy/src/filters.c:929,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:929,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:934,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:934,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/filters.c:936,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:936,1
    - Dst: resume_filter_list_break
      Src: /src/haproxy/src/filters.c:938,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:956,1
    - Dst: chn_prod
      Src: /src/haproxy/src/filters.c:962,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:963,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - s
    - msg
    - len
    argTypes:
    - struct stream*
    - struct http_msg*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 965
    functionName: flt_http_payload
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OFF
    - FLT_OPS
    - DBG_TRACE_LEAVE
    - flt_list_next
    - flt_list_start
    - IS_DATA_FILTER
    - co_data
    - chn_prod
    - EXEC_CTX_MAKE
    - EXEC_CTX_WITH_RET
    - resume_filter_list_break
    - FLT_STRM_OFF
    - DBG_TRACE_DEVEL
    - FLT_ID
    - strm_flt
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int flt_http_payload(struct stream *s, struct http_msg *msg, unsigned
      int len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:982,1
    - Dst: resume_filter_list_start
      Src: /src/haproxy/src/filters.c:991,1
    - Dst: resume_filter_list_next
      Src: /src/haproxy/src/filters.c:992,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1005,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:1006,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1008,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:1008,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/filters.c:1010,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1010,1
    - Dst: resume_filter_list_break
      Src: /src/haproxy/src/filters.c:1012,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:1019,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:1020,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - s
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 976
    functionDepth: 2
    functionLinenumber: 976
    functionLinenumberEnd: 1022
    functionName: flt_start_analyze
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - DBG_TRACE_ENTER
    - DBG_TRACE_LEAVE
    - handle_analyzer_result
    - resume_filter_list_start
    - EXEC_CTX_MAKE
    - EXEC_CTX_WITH_RET
    - resume_filter_list_break
    - DBG_TRACE_DEVEL
    - FLT_ID
    - resume_filter_list_next
    linkageType: ''
    returnType: int
    signature: int flt_start_analyze(struct stream *s, struct channel *chn, unsigned
      int an_bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1004
    functionName: FLT_OFF
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FLT_OFF(filter, chn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:1040,1
    - Dst: resume_filter_list_start
      Src: /src/haproxy/src/filters.c:1042,1
    - Dst: resume_filter_list_next
      Src: /src/haproxy/src/filters.c:1043,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1044,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:1045,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1047,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:1047,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/filters.c:1049,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1049,1
    - Dst: resume_filter_list_break
      Src: /src/haproxy/src/filters.c:1051,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:1059,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:1060,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - s
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1062
    functionName: flt_pre_analyze
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - DBG_TRACE_ENTER
    - DBG_TRACE_LEAVE
    - handle_analyzer_result
    - resume_filter_list_start
    - EXEC_CTX_MAKE
    - EXEC_CTX_WITH_RET
    - resume_filter_list_break
    - DBG_TRACE_DEVEL
    - FLT_ID
    - resume_filter_list_next
    linkageType: ''
    returnType: int
    signature: int flt_pre_analyze(struct stream *s, struct channel *chn, unsigned
      int an_bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:1079,1
    - Dst: flt_list_start
      Src: /src/haproxy/src/filters.c:1081,1
    - Dst: flt_list_next
      Src: /src/haproxy/src/filters.c:1082,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1083,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:1084,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1086,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:1086,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/filters.c:1088,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1088,1
    - Dst: resume_filter_list_break
      Src: /src/haproxy/src/filters.c:1090,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:1096,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:1097,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - s
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1099
    functionName: flt_post_analyze
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - DBG_TRACE_LEAVE
    - flt_list_next
    - handle_analyzer_result
    - flt_list_start
    - EXEC_CTX_MAKE
    - EXEC_CTX_WITH_RET
    - resume_filter_list_break
    - DBG_TRACE_DEVEL
    - FLT_ID
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int flt_post_analyze(struct stream *s, struct channel *chn, unsigned
      int an_bit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:1114,1
    - Dst: resume_filter_list_start
      Src: /src/haproxy/src/filters.c:1117,1
    - Dst: resume_filter_list_next
      Src: /src/haproxy/src/filters.c:1118,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1119,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:1120,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1122,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:1122,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/filters.c:1124,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1124,1
    - Dst: resume_filter_list_break
      Src: /src/haproxy/src/filters.c:1126,1
    - Dst: HAS_DATA_FILTERS
      Src: /src/haproxy/src/filters.c:1132,1
    - Dst: http_get_hdrs_size
      Src: /src/haproxy/src/filters.c:1133,1
    - Dst: htxbuf
      Src: /src/haproxy/src/filters.c:1133,1
    - Dst: flt_list_start
      Src: /src/haproxy/src/filters.c:1136,1
    - Dst: flt_list_next
      Src: /src/haproxy/src/filters.c:1137,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/filters.c:1138,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:1142,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:1143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - s
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1106
    functionDepth: 2
    functionLinenumber: 1106
    functionLinenumberEnd: 1145
    functionName: flt_analyze_http_headers
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OFF
    - FLT_OPS
    - DBG_TRACE_ENTER
    - htxbuf
    - flt_list_next
    - http_get_hdrs_size
    - flt_list_start
    - handle_analyzer_result
    - DBG_TRACE_LEAVE
    - resume_filter_list_start
    - HAS_DATA_FILTERS
    - EXEC_CTX_MAKE
    - EXEC_CTX_WITH_RET
    - resume_filter_list_break
    - DBG_TRACE_DEVEL
    - FLT_ID
    - resume_filter_list_next
    linkageType: ''
    returnType: int
    signature: int flt_analyze_http_headers(struct stream *s, struct channel *chn,
      unsigned int an_bit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:1160,1
    - Dst: resume_filter_list_start
      Src: /src/haproxy/src/filters.c:1167,1
    - Dst: resume_filter_list_next
      Src: /src/haproxy/src/filters.c:1168,1
    - Dst: unregister_data_filter
      Src: /src/haproxy/src/filters.c:1170,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1172,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:1173,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1175,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:1175,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/filters.c:1177,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1177,1
    - Dst: resume_filter_list_break
      Src: /src/haproxy/src/filters.c:1179,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:1188,1
    - Dst: flt_stream_release
      Src: /src/haproxy/src/filters.c:1213,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:1214,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - s
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1154
    functionDepth: 2
    functionLinenumber: 1154
    functionLinenumberEnd: 1220
    functionName: flt_end_analyze
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - DBG_TRACE_ENTER
    - DBG_TRACE_LEAVE
    - handle_analyzer_result
    - flt_stream_release
    - resume_filter_list_start
    - EXEC_CTX_MAKE
    - EXEC_CTX_WITH_RET
    - resume_filter_list_break
    - unregister_data_filter
    - DBG_TRACE_DEVEL
    - FLT_ID
    - resume_filter_list_next
    linkageType: ''
    returnType: int
    signature: int flt_end_analyze(struct stream *s, struct channel *chn, unsigned
      int an_bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1169
    functionName: FLT_OFF
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FLT_OFF(filter, chn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_STRM_OFF
      Src: /src/haproxy/src/filters.c:1236,1
    - Dst: co_data
      Src: /src/haproxy/src/filters.c:1237,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:1241,1
    - Dst: flt_list_start
      Src: /src/haproxy/src/filters.c:1242,1
    - Dst: flt_list_next
      Src: /src/haproxy/src/filters.c:1243,1
    - Dst: EXEC_CTX_MAKE
      Src: /src/haproxy/src/filters.c:1244,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/filters.c:1245,1
    - Dst: IS_DATA_FILTER
      Src: /src/haproxy/src/filters.c:1251,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1251,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1256,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:1256,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/filters.c:1258,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1258,1
    - Dst: resume_filter_list_break
      Src: /src/haproxy/src/filters.c:1260,1
    - Dst: chn_prod
      Src: /src/haproxy/src/filters.c:1273,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:1274,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - s
    - chn
    - len
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1276
    functionName: flt_tcp_payload
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OFF
    - FLT_OPS
    - DBG_TRACE_LEAVE
    - flt_list_next
    - flt_list_start
    - IS_DATA_FILTER
    - co_data
    - chn_prod
    - EXEC_CTX_MAKE
    - EXEC_CTX_WITH_RET
    - resume_filter_list_break
    - FLT_STRM_OFF
    - DBG_TRACE_DEVEL
    - FLT_ID
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int flt_tcp_payload(struct stream *s, struct channel *chn, unsigned
      int len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:1292,1
    - Dst: HAS_DATA_FILTERS
      Src: /src/haproxy/src/filters.c:1295,1
    - Dst: htxbuf
      Src: /src/haproxy/src/filters.c:1299,1
    - Dst: c_data
      Src: /src/haproxy/src/filters.c:1303,1
    - Dst: flt_tcp_payload
      Src: /src/haproxy/src/filters.c:1305,1
    - Dst: c_adv
      Src: /src/haproxy/src/filters.c:1308,1
    - Dst: chn_cons
      Src: /src/haproxy/src/filters.c:1315,1
    - Dst: chn_prod
      Src: /src/haproxy/src/filters.c:1319,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/filters.c:1320,1
    - Dst: htxbuf
      Src: /src/haproxy/src/filters.c:1320,1
    - Dst: c_empty
      Src: /src/haproxy/src/filters.c:1320,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1331,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:1336,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:1337,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - s
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1286
    functionDepth: 2
    functionLinenumber: 1286
    functionLinenumberEnd: 1339
    functionName: flt_xfer_data
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - DBG_TRACE_LEAVE
    - handle_analyzer_result
    - c_empty
    - HAS_DATA_FILTERS
    - chn_prod
    - flt_tcp_payload
    - chn_cons
    - DBG_TRACE_DEVEL
    - c_data
    - c_adv
    - htx_is_empty
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int flt_xfer_data(struct stream *s, struct channel *chn, unsigned int
      an_bit)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/filters.c:1363,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/filters.c:1364,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/filters.c:1367,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/filters.c:1370,1
    - Dst: http_error_message
      Src: /src/haproxy/src/filters.c:1371,1
    - Dst: sess_set_term_flags
      Src: /src/haproxy/src/filters.c:1375,1
    - Dst: stream_retnclose
      Src: /src/haproxy/src/filters.c:1376,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1385,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/filters.c:1390,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1391,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - s
    - chn
    - an_bit
    - ret
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1393
    functionName: handle_analyzer_result
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 6
    functionsReached:
    - sess_set_term_flags
    - http_error_message
    - channel_dont_connect
    - stream_retnclose
    - IS_HTX_STRM
    - http_reply_and_close
    - DBG_TRACE_DEVEL
    - http_set_term_flags
    linkageType: ''
    returnType: int
    signature: "int handle_analyzer_result(struct stream *s, struct channel *chn,\n\t\t
      \      unsigned int an_bit, int ret)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/map.c:34,1
    - Dst: buf2ip
      Src: /src/haproxy/src/map.c:36,1
    - Dst: buf2ip6
      Src: /src/haproxy/src/map.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - text
    - data
    argTypes:
    - char*
    - struct sample_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: map_parse_ip
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - buf2ip
    - buf2ip6
    - strlen
    linkageType: ''
    returnType: int
    signature: int map_parse_ip(const char *text, struct sample_data *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/map.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - text
    - data
    argTypes:
    - char*
    - struct sample_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: map_parse_str
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int map_parse_str(const char *text, struct sample_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_int64
      Src: /src/haproxy/src/map.c:69,1
    - Dst: strlen
      Src: /src/haproxy/src/map.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - text
    - data
    argTypes:
    - char*
    - struct sample_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: map_parse_int
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - read_int64
    - strlen
    linkageType: ''
    returnType: int
    signature: int map_parse_int(const char *text, struct sample_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/map.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conv
    argTypes:
    - struct sample_conv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: map_create_descriptor
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: struct map_descriptor
    signature: struct map_descriptor *map_create_descriptor(struct sample_conv *conv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:103,1
    - Dst: map_create_descriptor
      Src: /src/haproxy/src/map.c:108,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:110,1
    - Dst: pattern_init_head
      Src: /src/haproxy/src/map.c:115,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:133,1
    - Dst: pattern_read_from_file
      Src: /src/haproxy/src/map.c:139,1
    - Dst: map_parse_ip
      Src: /src/haproxy/src/map.c:148,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:149,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/map.c:153,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/map.c:164,1
    - Dst: free
      Src: /src/haproxy/src/map.c:170,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 5
    argNames:
    - arg
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 172
    functionName: sample_load_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 1
    functionsReached:
    - map_parse_ip
    - memprintf
    - pattern_read_from_file
    - free
    - pattern_init_head
    - map_create_descriptor
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: "int sample_load_map(struct arg *arg, struct sample_conv *conv,\n                    const
      char *file, int line, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pattern_exec_match
      Src: /src/haproxy/src/map.c:186,1
    - Dst: strlen
      Src: /src/haproxy/src/map.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 197
    functionName: sample_conv_map_key
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - pattern_exec_match
    - strlen
    linkageType: ''
    returnType: int
    signature: int sample_conv_map_key(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pattern_exec_match
      Src: /src/haproxy/src/map.c:212,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/map.c:224,1
    - Dst: memcpy
      Src: /src/haproxy/src/map.c:232,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/map.c:235,1
    - Dst: exp_replace
      Src: /src/haproxy/src/map.c:236,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/map.c:240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 291
    functionName: sample_conv_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - memcpy
    - free_trash_chunk
    - alloc_trash_chunk
    - get_trash_chunk
    - pattern_exec_match
    - exp_replace
    linkageType: ''
    returnType: int
    signature: int sample_conv_map(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/map.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - getnext
    - end
    - flags
    argTypes:
    - struct pat_ref*
    - struct list*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 317
    functionName: pat_list_get_next
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - LIST_NEXT
    linkageType: ''
    returnType: struct pat_ref
    signature: "struct pat_ref *pat_list_get_next(struct pat_ref *getnext, struct
      list *end,\n                                  unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/map.c:328,1
    - Dst: pat_ref_lookupid
      Src: /src/haproxy/src/map.c:333,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/map.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - reference
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 338
    functionName: pat_ref_lookup_ref
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - pat_ref_lookup
    - strtol
    - pat_ref_lookupid
    linkageType: ''
    returnType: struct pat_ref
    signature: struct pat_ref *pat_ref_lookup_ref(const char *reference)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/map.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - getnext
    - end
    argTypes:
    - struct pattern_expr*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 351
    functionName: pat_expr_get_next
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - LIST_NEXT
    linkageType: ''
    returnType: struct pattern_expr
    signature: struct pattern_expr *pat_expr_get_next(struct pattern_expr *getnext,
      struct list *end)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:386,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/map.c:388,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/map.c:389,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/map.c:390,1
    - Dst: pat_ref_gen_get
      Src: /src/haproxy/src/map.c:392,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:394,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/map.c:402,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/map.c:404,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:408,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:412,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/map.c:415,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/map.c:419,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:420,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:427,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 434
    functionName: cli_io_handler_pat_list
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - HA_RWLOCK_WRUNLOCK
    - chunk_appendf
    - LIST_APPEND
    - LIST_ISEMPTY
    - applet_putchk
    - pat_ref_gen_get
    - HA_RWLOCK_WRLOCK
    - LIST_INIT
    - chunk_reset
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_pat_list(struct appctx *appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/map.c:446,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:447,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/map.c:448,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/map.c:456,1
    - Dst: pat_list_get_next
      Src: /src/haproxy/src/map.c:457,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/map.c:464,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:469,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/map.c:474,1
    - Dst: pat_list_get_next
      Src: /src/haproxy/src/map.c:482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 493
    functionName: cli_io_handler_pats_list
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - applet_putchk
    - pat_list_get_next
    - chunk_reset
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_pats_list(struct appctx *appctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/map.c:505,1
    - Dst: pat_expr_get_next
      Src: /src/haproxy/src/map.c:506,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/map.c:511,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/map.c:515,1
    - Dst: sample_convert
      Src: /src/haproxy/src/map.c:524,1
    - Dst: struct show_map_ctx*::expr::pat_head::match
      Src: /src/haproxy/src/map.c:525,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:534,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:536,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:540,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:542,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:547,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:549,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:556,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:558,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:562,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:564,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:569,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:571,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:575,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:577,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:583,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:586,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:590,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/map.c:593,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/map.c:597,1
    - Dst: pat_expr_get_next
      Src: /src/haproxy/src/map.c:602,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/map.c:605,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 612
    functionName: cli_io_handler_map_lookup
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - LIST_ELEM
    - pat_expr_get_next
    - HA_RWLOCK_RDUNLOCK
    - chunk_appendf
    - sample_convert
    - applet_putchk
    - chunk_reset
    - struct show_map_ctx*::expr::pat_head::match
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_map_lookup(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/map.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 619
    functionName: cli_release_mlook
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void cli_release_mlook(struct appctx *appctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:624,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/map.c:626,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:629,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:629,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:639,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:641,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:645,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:648,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:650,1
    - Dst: strlen
      Src: /src/haproxy/src/map.c:657,1
    - Dst: strdup
      Src: /src/haproxy/src/map.c:659,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:661,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 666
    functionName: cli_parse_get_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strcmp
    - pat_ref_lookup_ref
    - applet_reserve_svcctx
    - strlen
    - cli_has_level
    - strdup
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_get_map(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:670,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/map.c:672,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:675,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:676,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:687,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:691,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:693,1
    - Dst: pat_ref_newgen
      Src: /src/haproxy/src/map.c:695,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/map.c:696,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:696,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 668
    functionDepth: 5
    functionLinenumber: 668
    functionLinenumberEnd: 700
    functionName: cli_parse_prepare_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cli_dynmsg
    - strcmp
    - pat_ref_lookup_ref
    - applet_reserve_svcctx
    - pat_ref_newgen
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_prepare_map(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/map.c:706,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:707,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/map.c:708,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 711
    functionName: cli_release_show_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - LIST_ISEMPTY
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void cli_release_show_map(struct appctx *appctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:715,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/map.c:717,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:720,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:721,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:746,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:750,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:752,1
    - Dst: str2uic
      Src: /src/haproxy/src/map.c:757,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/map.c:761,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 768
    functionName: cli_parse_show_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strcmp
    - pat_ref_lookup_ref
    - applet_reserve_svcctx
    - str2uic
    - cli_has_level
    - LIST_INIT
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_map(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:772,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/map.c:774,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:777,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:785,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:788,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:790,1
    - Dst: strtoll
      Src: /src/haproxy/src/map.c:801,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:803,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:808,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:812,1
    - Dst: pat_ref_set_by_id
      Src: /src/haproxy/src/map.c:813,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:814,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/map.c:816,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:816,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:818,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:820,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:827,1
    - Dst: pat_ref_set
      Src: /src/haproxy/src/map.c:828,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:829,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/map.c:831,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:831,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:833,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:835,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 770
    functionDepth: 5
    functionLinenumber: 770
    functionLinenumberEnd: 843
    functionName: cli_parse_set_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - memprintf
    - HA_RWLOCK_WRUNLOCK
    - strcmp
    - cli_dynerr
    - pat_ref_set
    - pat_ref_lookup_ref
    - applet_reserve_svcctx
    - strtoll
    - pat_ref_set_by_id
    - HA_RWLOCK_WRLOCK
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_map(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:847,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/map.c:849,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:852,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:853,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:882,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:887,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:890,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:893,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:895,1
    - Dst: str2uic
      Src: /src/haproxy/src/map.c:899,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:902,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:904,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:913,1
    - Dst: strcspn
      Src: /src/haproxy/src/map.c:936,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/map.c:940,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:940,1
    - Dst: strspn
      Src: /src/haproxy/src/map.c:946,1
    - Dst: strcspn
      Src: /src/haproxy/src/map.c:948,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:958,1
    - Dst: pat_ref_load
      Src: /src/haproxy/src/map.c:959,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:960,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/map.c:964,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:964,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:966,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 69
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 845
    functionDepth: 5
    functionLinenumber: 845
    functionLinenumberEnd: 976
    functionName: cli_parse_add_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - memprintf
    - HA_RWLOCK_WRUNLOCK
    - strcspn
    - strcmp
    - cli_dynerr
    - strspn
    - pat_ref_lookup_ref
    - applet_reserve_svcctx
    - pat_ref_load
    - str2uic
    - HA_RWLOCK_WRLOCK
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_add_map(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:980,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/map.c:982,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:993,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:995,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:999,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1002,1
    - Dst: strtoll
      Src: /src/haproxy/src/map.c:1013,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1015,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1020,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:1023,1
    - Dst: pat_ref_delete_by_id
      Src: /src/haproxy/src/map.c:1024,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1025,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1027,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1029,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:1035,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/map.c:1036,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1037,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1039,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1041,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 978
    functionDepth: 5
    functionLinenumber: 978
    functionLinenumberEnd: 1047
    functionName: cli_parse_del_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_lookup_ref
    - applet_reserve_svcctx
    - strtoll
    - pat_ref_delete_by_id
    - pat_ref_delete
    - HA_RWLOCK_WRLOCK
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_del_map(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:1058,1
    - Dst: pat_ref_purge_range
      Src: /src/haproxy/src/map.c:1059,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1060,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/map.c:1064,1
    - Dst: trim_all_pools
      Src: /src/haproxy/src/map.c:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1053
    functionDepth: 3
    functionLinenumber: 1053
    functionLinenumberEnd: 1070
    functionName: cli_io_handler_clear_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - pat_ref_purge_range
    - HA_RWLOCK_WRUNLOCK
    - applet_have_more_data
    - HA_RWLOCK_WRLOCK
    - trim_all_pools
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_clear_map(struct appctx *appctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:1078,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/map.c:1080,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:1083,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:1083,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1104,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1106,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:1110,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1114,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1116,1
    - Dst: str2uic
      Src: /src/haproxy/src/map.c:1121,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1076
    functionDepth: 2
    functionLinenumber: 1076
    functionLinenumberEnd: 1129
    functionName: cli_parse_clear_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strcmp
    - pat_ref_lookup_ref
    - applet_reserve_svcctx
    - str2uic
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_clear_map(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:1137,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/map.c:1139,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:1142,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:1142,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1154,1
    - Dst: str2uic
      Src: /src/haproxy/src/map.c:1161,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1168,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1170,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:1174,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1178,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1180,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:1183,1
    - Dst: pat_ref_commit
      Src: /src/haproxy/src/map.c:1186,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1189,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1192,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1135
    functionDepth: 2
    functionLinenumber: 1135
    functionLinenumberEnd: 1198
    functionName: cli_parse_commit_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - pat_ref_commit
    - HA_RWLOCK_WRUNLOCK
    - strcmp
    - pat_ref_lookup_ref
    - applet_reserve_svcctx
    - str2uic
    - HA_RWLOCK_WRLOCK
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_commit_map(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:161,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - pkt
    argTypes:
    - struct ist
    - struct mqtt_pkt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: mqtt_read_fixed_hdr
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - istnext
    - istptr
    linkageType: ''
    returnType: struct ist
    signature: struct ist mqtt_read_fixed_hdr(struct ist parser, struct mqtt_pkt *pkt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:183,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:186,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - parser
    - i
    argTypes:
    - struct ist
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: mqtt_read_1byte_int
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - istlen
    - istnext
    - istptr
    linkageType: ''
    returnType: struct ist
    signature: struct ist mqtt_read_1byte_int(struct ist parser, uint8_t *i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:200,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:203,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:204,1
    - Dst: istadv
      Src: /src/haproxy/src/mqtt.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - parser
    - i
    argTypes:
    - struct ist
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: mqtt_read_2byte_int
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - istadv
    - istlen
    - istptr
    linkageType: ''
    returnType: struct ist
    signature: struct ist mqtt_read_2byte_int(struct ist parser, uint16_t *i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:219,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:222,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:223,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:224,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:225,1
    - Dst: istadv
      Src: /src/haproxy/src/mqtt.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - parser
    - i
    argTypes:
    - struct ist
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: mqtt_read_4byte_int
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - istadv
    - istlen
    - istptr
    linkageType: ''
    returnType: struct ist
    signature: struct ist mqtt_read_4byte_int(struct ist parser, uint32_t *i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:255,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:256,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:262,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - parser
    - i
    argTypes:
    - struct ist
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 272
    functionName: mqtt_read_varint
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - istlen
    - istnext
    - istptr
    linkageType: ''
    returnType: struct ist
    signature: struct ist mqtt_read_varint(struct ist parser, uint32_t *i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:295,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:298,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:299,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:299,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:303,1
    - Dst: istadv
      Src: /src/haproxy/src/mqtt.c:307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - parser
    - str
    argTypes:
    - struct ist
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 311
    functionName: mqtt_read_string
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - istadv
    - mqtt_read_2byte_int
    - istptr
    - istlen
    - isttest
    linkageType: ''
    returnType: struct ist
    signature: struct ist mqtt_read_string(struct ist parser, struct ist *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ultoa_o
      Src: /src/haproxy/src/mqtt.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - i
    argTypes:
    - struct buffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: mqtt_uint2str
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - ultoa_o
    linkageType: ''
    returnType: size_t
    signature: size_t mqtt_uint2str(struct buffer *buf, uint32_t i)
  - BBCount: 124
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mqtt.c:336,1
    - Dst: mqtt_validate_message
      Src: /src/haproxy/src/mqtt.c:340,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:355,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:357,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:361,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:367,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:369,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:373,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:379,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:385,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:391,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:397,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:403,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:405,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:412,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:414,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:421,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:423,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:430,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:439,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:448,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:456,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:458,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:464,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:472,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:480,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:482,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:489,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:491,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:497,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:499,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:505,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:507,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:513,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:515,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:521,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:523,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:534,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:536,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:540,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:542,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:546,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:548,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:554,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:556,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:562,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:570,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:572,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:578,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:586,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:594,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:602,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:610,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:618,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:620,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:626,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:628,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:634,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:636,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:642,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:644,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:650,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:652,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:658,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:660,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:666,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:668,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:674,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:676,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:692,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:692,1
    CyclomaticComplexity: 206
    EdgeCount: 206
    ICount: 426
    argCount: 3
    argNames:
    - msg
    - type
    - fieldname_id
    argTypes:
    - struct ist
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 696
    functionName: mqtt_field_value
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 1
    functionsReached:
    - mqtt_uint2str
    - ist2
    - get_trash_chunk
    - istptr
    - istlen
    - mqtt_validate_message
    linkageType: ''
    returnType: struct ist
    signature: struct ist mqtt_field_value(struct ist msg, int type, int fieldname_id)
  - BBCount: 64
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:715,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:722,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:723,1
    - Dst: isteqi
      Src: /src/haproxy/src/mqtt.c:723,1
    - Dst: ist
      Src: /src/haproxy/src/mqtt.c:723,1
    - Dst: isteqi
      Src: /src/haproxy/src/mqtt.c:723,1
    - Dst: ist
      Src: /src/haproxy/src/mqtt.c:723,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:727,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:728,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:737,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:738,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:746,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:747,1
    - Dst: mqtt_read_varint
      Src: /src/haproxy/src/mqtt.c:757,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:758,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:758,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:760,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:760,1
    - Dst: istadv
      Src: /src/haproxy/src/mqtt.c:761,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:763,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:764,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:768,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:768,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:775,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:775,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:785,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:785,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:795,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:795,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:802,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:802,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:812,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:812,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:826,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:826,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:827,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:829,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:836,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:836,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:843,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:843,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:851,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:857,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:858,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:867,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:868,1
    - Dst: mqtt_read_varint
      Src: /src/haproxy/src/mqtt.c:881,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:882,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:882,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:884,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:884,1
    - Dst: istadv
      Src: /src/haproxy/src/mqtt.c:885,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:887,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:888,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:892,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:892,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:899,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:899,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:909,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:909,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:916,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:916,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:923,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:923,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:930,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:930,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:941,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:941,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:942,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:944,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:952,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:959,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:960,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:962,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:963,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:969,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:970,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:976,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:977,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:981,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 226
    argCount: 2
    argNames:
    - parser
    - mpkt
    argTypes:
    - struct ist
    - struct mqtt_pkt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 986
    functionName: mqtt_parse_connect
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - isteqi
    - ist
    - ist2
    - istadv
    - mqtt_read_1byte_int
    - mqtt_read_varint
    - mqtt_read_2byte_int
    - istptr
    - istnext
    - mqtt_read_string
    - istlen
    - mqtt_read_4byte_int
    - isttest
    linkageType: ''
    returnType: int
    signature: int mqtt_parse_connect(struct ist parser, struct mqtt_pkt *mpkt)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1004,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1007,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1009,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1019,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1020,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1024,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1025,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1030,1
    - Dst: mqtt_read_varint
      Src: /src/haproxy/src/mqtt.c:1042,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1043,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1043,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:1045,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:1045,1
    - Dst: istadv
      Src: /src/haproxy/src/mqtt.c:1046,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1048,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:1049,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:1053,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1053,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:1060,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1060,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1070,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1070,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1080,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1080,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:1090,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1090,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1100,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1100,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1101,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:1109,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1109,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1116,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1116,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1123,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1123,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1133,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1133,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1143,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1143,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:1153,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1153,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1160,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1160,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1167,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1167,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1178,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1178,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1179,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1181,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1188,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1188,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1195,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1195,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1203,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1208,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 190
    argCount: 2
    argNames:
    - parser
    - mpkt
    argTypes:
    - struct ist
    - struct mqtt_pkt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1000
    functionDepth: 3
    functionLinenumber: 1000
    functionLinenumberEnd: 1212
    functionName: mqtt_parse_connack
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_read_string
    - ist2
    - istadv
    - mqtt_read_1byte_int
    - istnext
    - istptr
    - mqtt_read_2byte_int
    - mqtt_read_varint
    - istlen
    - mqtt_read_4byte_int
    - isttest
    linkageType: ''
    returnType: int
    signature: int mqtt_parse_connack(struct ist parser, struct mqtt_pkt *mpkt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/mqtt.c:1243,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1246,1
    - Dst: mqtt_read_fixed_hdr
      Src: /src/haproxy/src/mqtt.c:1252,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1253,1
    - Dst: mqtt_read_varint
      Src: /src/haproxy/src/mqtt.c:1259,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1260,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1265,1
    - Dst: mqtt_parse_connect
      Src: /src/haproxy/src/mqtt.c:1271,1
    - Dst: mqtt_parse_connack
      Src: /src/haproxy/src/mqtt.c:1274,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - msg
    - mpkt
    argTypes:
    - struct ist
    - struct mqtt_pkt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1235
    functionDepth: 4
    functionLinenumber: 1235
    functionLinenumberEnd: 1282
    functionName: mqtt_validate_message
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 2
    functionsReached:
    - mqtt_read_fixed_hdr
    - memset
    - mqtt_parse_connect
    - mqtt_read_varint
    - istlen
    - mqtt_parse_connack
    - isttest
    linkageType: ''
    returnType: int
    signature: int mqtt_validate_message(const struct ist msg, struct mqtt_pkt *mpkt)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:94,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:94,1
    - Dst: isteqi
      Src: /src/haproxy/src/h2.c:114,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:114,1
    - Dst: isteqi
      Src: /src/haproxy/src/h2.c:116,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:116,1
    - Dst: http_validate_scheme
      Src: /src/haproxy/src/h2.c:118,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:121,1
    - Dst: isteqi
      Src: /src/haproxy/src/h2.c:185,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:185,1
    - Dst: isteqi
      Src: /src/haproxy/src/h2.c:187,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:187,1
    - Dst: http_validate_scheme
      Src: /src/haproxy/src/h2.c:189,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:203,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:205,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:206,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:206,1
    - Dst: http_authority_has_forbidden_char
      Src: /src/haproxy/src/h2.c:219,1
    - Dst: ist2bin
      Src: /src/haproxy/src/h2.c:232,1
    - Dst: istcat
      Src: /src/haproxy/src/h2.c:233,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:233,1
    - Dst: istcat
      Src: /src/haproxy/src/h2.c:234,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:235,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:235,1
    - Dst: istcat
      Src: /src/haproxy/src/h2.c:236,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h2.c:263,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:276,1
    - Dst: HTTP_IS_CTL
      Src: /src/haproxy/src/h2.c:276,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/h2.c:285,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h2.c:291,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:291,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 130
    argCount: 4
    argNames:
    - fields
    - phdr
    - htx
    - msgf
    argTypes:
    - uint32_t
    - struct ist*
    - struct htx*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 298
    functionName: h2_prepare_htx_reqline
    functionSourceFile: /src/haproxy/src/h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HTTP_IS_CTL
    - isteqi
    - ist
    - istcat
    - HTTP_IS_LWS
    - isteq
    - http_authority_has_forbidden_char
    - htx_add_stline
    - ist2bin
    - find_http_meth
    - HTTP_IS_TOKEN
    - http_validate_scheme
    linkageType: ''
    returnType: struct htx_sl
    signature: struct htx_sl *h2_prepare_htx_reqline(uint32_t fields, struct ist *phdr,
      struct htx *htx, unsigned int *msgf)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/h2.c:327,1
    - Dst: isttest
      Src: /src/haproxy/src/h2.c:343,1
    - Dst: h2_str_to_phdr
      Src: /src/haproxy/src/h2.c:355,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h2.c:358,1
    - Dst: ist_find_range
      Src: /src/haproxy/src/h2.c:367,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:368,1
    - Dst: http_path_has_forbidden_char
      Src: /src/haproxy/src/h2.c:368,1
    - Dst: ist_find_ctl
      Src: /src/haproxy/src/h2.c:371,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:372,1
    - Dst: http_header_has_forbidden_char
      Src: /src/haproxy/src/h2.c:372,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:398,1
    - Dst: h2_prepare_htx_reqline
      Src: /src/haproxy/src/h2.c:400,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:413,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:413,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:419,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:419,1
    - Dst: http_authority_has_forbidden_char
      Src: /src/haproxy/src/h2.c:425,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:429,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:429,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/h2.c:430,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:442,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:442,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:443,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:443,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:444,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:444,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:445,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:445,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:446,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:446,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:449,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:449,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:449,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:449,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:453,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:453,1
    - Dst: http_cookie_register
      Src: /src/haproxy/src/h2.c:454,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:460,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:460,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:462,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:462,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:466,1
    - Dst: h2_prepare_htx_reqline
      Src: /src/haproxy/src/h2.c:476,1
    - Dst: isteqi
      Src: /src/haproxy/src/h2.c:494,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:494,1
    - Dst: isteqi
      Src: /src/haproxy/src/h2.c:495,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:495,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:499,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:499,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:501,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:501,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:501,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:514,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:514,1
    - Dst: http_cookie_merge
      Src: /src/haproxy/src/h2.c:522,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h2.c:527,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h2.c:531,1
    - Dst: http_scheme_based_normalize
      Src: /src/haproxy/src/h2.c:536,1
    - Dst: htx_truncate_blk
      Src: /src/haproxy/src/h2.c:542,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 147
    argCount: 5
    argNames:
    - list
    - htx
    - msgf
    - body_len
    - relaxed
    argTypes:
    - struct http_hdr*
    - struct htx*
    - unsigned int*
    - unsigned long long*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 325
    functionDepth: 5
    functionLinenumber: 325
    functionLinenumberEnd: 544
    functionName: h2_make_htx_request
    functionSourceFile: /src/haproxy/src/h2.c
    functionUses: 1
    functionsReached:
    - unlikely
    - htx_nbblks
    - http_scheme_based_normalize
    - ist_find_range
    - htx_get_tail_blk
    - http_cookie_register
    - ist_find_ctl
    - h2_str_to_phdr
    - h2_prepare_htx_reqline
    - ist
    - htx_add_header
    - isteq
    - isteqi
    - http_parse_cont_len_header
    - http_header_has_forbidden_char
    - htx_truncate_blk
    - http_path_has_forbidden_char
    - http_cookie_merge
    - http_authority_has_forbidden_char
    - HTTP_IS_LWS
    - htx_add_endof
    - HTTP_IS_TOKEN
    - isttest
    linkageType: ''
    returnType: int
    signature: int h2_make_htx_request(struct http_hdr *list, struct htx *htx, unsigned
      int *msgf, unsigned long long *body_len, int relaxed)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:568,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:569,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:569,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:570,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h2.c:615,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:615,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:615,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 4
    argNames:
    - fields
    - phdr
    - htx
    - msgf
    argTypes:
    - uint32_t
    - struct ist*
    - struct htx*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 622
    functionName: h2_prepare_htx_stsline
    functionSourceFile: /src/haproxy/src/h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist
    - isteq
    - htx_add_stline
    linkageType: ''
    returnType: struct htx_sl
    signature: struct htx_sl *h2_prepare_htx_stsline(uint32_t fields, struct ist *phdr,
      struct htx *htx, unsigned int *msgf)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/h2.c:647,1
    - Dst: isttest
      Src: /src/haproxy/src/h2.c:661,1
    - Dst: h2_str_to_phdr
      Src: /src/haproxy/src/h2.c:673,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h2.c:676,1
    - Dst: ist_find_ctl
      Src: /src/haproxy/src/h2.c:683,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:684,1
    - Dst: http_header_has_forbidden_char
      Src: /src/haproxy/src/h2.c:684,1
    - Dst: h2_prepare_htx_stsline
      Src: /src/haproxy/src/h2.c:711,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:717,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:717,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/h2.c:718,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:730,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:730,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:731,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:731,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:732,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:732,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:733,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:733,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:734,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:734,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:739,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:739,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:741,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:741,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:745,1
    - Dst: h2_prepare_htx_stsline
      Src: /src/haproxy/src/h2.c:755,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:761,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:761,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:761,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:763,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:763,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:763,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h2.c:793,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h2.c:797,1
    - Dst: htx_truncate_blk
      Src: /src/haproxy/src/h2.c:804,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 105
    argCount: 5
    argNames:
    - list
    - htx
    - msgf
    - body_len
    - upgrade_protocol
    argTypes:
    - struct http_hdr*
    - struct htx*
    - unsigned int*
    - unsigned long long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 806
    functionName: h2_make_htx_response
    functionSourceFile: /src/haproxy/src/h2.c
    functionUses: 1
    functionsReached:
    - unlikely
    - h2_str_to_phdr
    - h2_prepare_htx_stsline
    - ist
    - http_parse_cont_len_header
    - htx_add_header
    - htx_nbblks
    - htx_get_tail_blk
    - isteq
    - htx_truncate_blk
    - HTTP_IS_LWS
    - htx_add_endof
    - HTTP_IS_TOKEN
    - http_header_has_forbidden_char
    - ist_find_ctl
    - isttest
    linkageType: ''
    returnType: int
    signature: int h2_make_htx_response(struct http_hdr *list, struct htx *htx, unsigned
      int *msgf, unsigned long long *body_len, char *upgrade_protocol)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/h2.c:824,1
    - Dst: isttest
      Src: /src/haproxy/src/h2.c:831,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h2.c:841,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:845,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:845,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:846,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:846,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:847,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:847,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:848,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:848,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:849,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:849,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:850,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:850,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:851,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:851,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:852,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:852,1
    - Dst: ist_find_ctl
      Src: /src/haproxy/src/h2.c:858,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:859,1
    - Dst: http_header_has_forbidden_char
      Src: /src/haproxy/src/h2.c:859,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:864,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:864,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:866,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:866,1
    - Dst: htx_add_trailer
      Src: /src/haproxy/src/h2.c:870,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h2.c:878,1
    - Dst: htx_truncate_blk
      Src: /src/haproxy/src/h2.c:884,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 38
    argCount: 2
    argNames:
    - list
    - htx
    argTypes:
    - struct http_hdr*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 886
    functionName: h2_make_htx_trailers
    functionSourceFile: /src/haproxy/src/h2.c
    functionUses: 1
    functionsReached:
    - unlikely
    - ist
    - htx_add_trailer
    - htx_get_tail_blk
    - isteq
    - htx_truncate_blk
    - HTTP_IS_LWS
    - htx_add_endof
    - HTTP_IS_TOKEN
    - http_header_has_forbidden_char
    - ist_find_ctl
    - isttest
    linkageType: ''
    returnType: int
    signature: int h2_make_htx_trailers(struct http_hdr *list, struct htx *htx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/haproxy/src/sock_unix.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 109
    functionName: sock_abns_addrcmp
    functionSourceFile: /src/haproxy/src/sock_unix.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int sock_abns_addrcmp(const struct sockaddr_storage *a, const struct
      sockaddr_storage *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/sock_unix.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: sock_abnsz_addrcmp
    functionSourceFile: /src/haproxy/src/sock_unix.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int sock_abnsz_addrcmp(const struct sockaddr_storage *a, const struct
      sockaddr_storage *b)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/haproxy/src/sock_unix.c:184,1
    - Dst: strcmp
      Src: /src/haproxy/src/sock_unix.c:186,1
    - Dst: isdigit
      Src: /src/haproxy/src/sock_unix.c:192,1
    - Dst: strcmp
      Src: /src/haproxy/src/sock_unix.c:194,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 200
    functionName: sock_unix_addrcmp
    functionSourceFile: /src/haproxy/src/sock_unix.c
    functionUses: 0
    functionsReached:
    - strcmp
    - isdigit
    linkageType: ''
    returnType: int
    signature: int sock_unix_addrcmp(const struct sockaddr_storage *a, const struct
      sockaddr_storage *b)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock_unix.c:231,1
    - Dst: sock_find_compatible_fd
      Src: /src/haproxy/src/sock_unix.c:247,1
    - Dst: MIN
      Src: /src/haproxy/src/sock_unix.c:250,1
    - Dst: snprintf
      Src: /src/haproxy/src/sock_unix.c:263,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:266,1
    - Dst: snprintf
      Src: /src/haproxy/src/sock_unix.c:270,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:273,1
    - Dst: unlink
      Src: /src/haproxy/src/sock_unix.c:278,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:280,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:280,1
    - Dst: unlink
      Src: /src/haproxy/src/sock_unix.c:284,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:286,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:286,1
    - Dst: link
      Src: /src/haproxy/src/sock_unix.c:291,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:293,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:293,1
    - Dst: strlen
      Src: /src/haproxy/src/sock_unix.c:303,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:305,1
    - Dst: strncpy
      Src: /src/haproxy/src/sock_unix.c:309,1
    - Dst: memcpy
      Src: /src/haproxy/src/sock_unix.c:316,1
    - Dst: my_socketat
      Src: /src/haproxy/src/sock_unix.c:320,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:324,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:324,1
    - Dst: dup
      Src: /src/haproxy/src/sock_unix.c:339,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:342,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:342,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:349,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/sock_unix.c:353,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:355,1
    - Dst: bind
      Src: /src/haproxy/src/sock_unix.c:359,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/sock_unix.c:359,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:364,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:369,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:369,1
    - Dst: chown
      Src: /src/haproxy/src/sock_unix.c:381,1
    - Dst: chmod
      Src: /src/haproxy/src/sock_unix.c:382,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:384,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:384,1
    - Dst: rename
      Src: /src/haproxy/src/sock_unix.c:392,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:394,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:394,1
    - Dst: unlink
      Src: /src/haproxy/src/sock_unix.c:400,1
    - Dst: fd_insert
      Src: /src/haproxy/src/sock_unix.c:412,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/sock_unix.c:416,1
    - Dst: rename
      Src: /src/haproxy/src/sock_unix.c:421,1
    - Dst: unlink
      Src: /src/haproxy/src/sock_unix.c:423,1
    - Dst: unlink
      Src: /src/haproxy/src/sock_unix.c:426,1
    - Dst: close
      Src: /src/haproxy/src/sock_unix.c:427,1
    - Dst: unlink
      Src: /src/haproxy/src/sock_unix.c:430,1
    - Dst: sa2str
      Src: /src/haproxy/src/sock_unix.c:436,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:437,1
    - Dst: ha_free
      Src: /src/haproxy/src/sock_unix.c:438,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:441,1
    - Dst: close
      Src: /src/haproxy/src/sock_unix.c:447,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 167
    argCount: 2
    argNames:
    - rx
    - errmsg
    argTypes:
    - struct receiver*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 207
    functionDepth: 5
    functionLinenumber: 207
    functionLinenumberEnd: 449
    functionName: sock_unix_bind_receiver
    functionSourceFile: /src/haproxy/src/sock_unix.c
    functionUses: 0
    functionsReached:
    - memprintf
    - chmod
    - dup
    - unlink
    - HA_ATOMIC_OR
    - close
    - snprintf
    - get_addr_len
    - strerror
    - ha_free
    - bind
    - rename
    - link
    - strncpy
    - memcpy
    - sock_find_compatible_fd
    - my_socketat
    - chown
    - fd_insert
    - BUG_ON
    - fd_set_nonblock
    - MIN
    - sa2str
    - strlen
    linkageType: ''
    returnType: int
    signature: int sock_unix_bind_receiver(struct receiver *rx, char **errmsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/freq_ctr.c:34,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:35,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:36,1
    - Dst: HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/freq_ctr.c:39,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/freq_ctr.c:46,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/freq_ctr.c:54,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/freq_ctr.c:54,1
    - Dst: likely
      Src: /src/haproxy/src/freq_ctr.c:56,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/freq_ctr.c:58,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/freq_ctr.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - ctr
    - period
    - inc
    argTypes:
    - struct freq_ctr*
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 65
    functionName: update_freq_ctr_period_slow
    functionSourceFile: /src/haproxy/src/freq_ctr.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_ADD_FETCH
    - HA_ATOMIC_STORE
    - HA_ATOMIC_LOAD
    - likely
    - __ha_cpu_relax
    - HA_ATOMIC_CAS
    - HA_ATOMIC_XCHG
    linkageType: ''
    returnType: uint
    signature: uint update_freq_ctr_period_slow(struct freq_ctr *ctr, uint period,
      uint inc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:84,1
    - Dst: unlikely
      Src: /src/haproxy/src/freq_ctr.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - period
    - pend
    - tick
    - past
    - curr
    argTypes:
    - uint
    - int
    - uint
    - ullong
    - ullong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 103
    functionName: _freq_ctr_total_from_values
    functionSourceFile: /src/haproxy/src/freq_ctr.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: ullong
    signature: "ullong _freq_ctr_total_from_values(uint period, int pend,\n\t\t\t\t
      \  uint tick, ullong past, ullong curr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:120,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:121,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:122,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:136,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:143,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:147,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:156,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:158,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:160,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/freq_ctr.c:162,1
    - Dst: _freq_ctr_total_from_values
      Src: /src/haproxy/src/freq_ctr.c:164,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - ctr
    - period
    - pend
    argTypes:
    - struct freq_ctr*
    - uint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 165
    functionName: freq_ctr_total
    functionSourceFile: /src/haproxy/src/freq_ctr.c
    functionUses: 0
    functionsReached:
    - __ha_cpu_relax
    - _freq_ctr_total_from_values
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: ullong
    signature: ullong freq_ctr_total(const struct freq_ctr *ctr, uint period, int
      pend)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:179,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:180,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:181,1
    - Dst: _freq_ctr_total_from_values
      Src: /src/haproxy/src/freq_ctr.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ctr
    - period
    - pend
    argTypes:
    - struct freq_ctr*
    - uint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: freq_ctr_total_estimate
    functionSourceFile: /src/haproxy/src/freq_ctr.c
    functionUses: 0
    functionsReached:
    - _freq_ctr_total_from_values
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: ullong
    signature: ullong freq_ctr_total_estimate(const struct freq_ctr *ctr, uint period,
      int pend)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:200,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:201,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:214,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:221,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:230,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:232,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/freq_ctr.c:234,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/freq_ctr.c:242,1
    - Dst: unlikely
      Src: /src/haproxy/src/freq_ctr.c:243,1
    - Dst: div64_32
      Src: /src/haproxy/src/freq_ctr.c:248,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - ctr
    - period
    - freq
    argTypes:
    - struct freq_ctr*
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 254
    functionName: freq_ctr_overshoot_period
    functionSourceFile: /src/haproxy/src/freq_ctr.c
    functionUses: 1
    functionsReached:
    - unlikely
    - __ha_cpu_relax
    - div64_32
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint
    signature: uint freq_ctr_overshoot_period(const struct freq_ctr *ctr, uint period,
      uint freq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:63,1
    - Dst: kill
      Src: /src/haproxy/src/mworker.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: mworker_kill
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - kill
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void mworker_kill(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:74,1
    - Dst: kill
      Src: /src/haproxy/src/mworker.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: mworker_kill_max_reloads
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - kill
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void mworker_kill_max_reloads(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: mworker_current_child
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int mworker_current_child(int pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: mworker_child_nb
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int mworker_child_nb()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:119,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:128,1
    - Dst: setenv
      Src: /src/haproxy/src/mworker.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 132
    functionName: mworker_proc_list_to_env
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - memprintf
    - setenv
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void mworker_proc_list_to_env()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/mworker.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 150
    functionName: mworker_proc_new
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: struct mworker_proc
    signature: struct mworker_proc *mworker_proc_new()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/haproxy/src/mworker.c:163,1
    - Dst: strdup
      Src: /src/haproxy/src/mworker.c:167,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:169,1
    - Dst: strtok_r
      Src: /src/haproxy/src/mworker.c:174,1
    - Dst: mworker_proc_new
      Src: /src/haproxy/src/mworker.c:180,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:182,1
    - Dst: strtok_r
      Src: /src/haproxy/src/mworker.c:187,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:191,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:202,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:203,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:206,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:207,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:210,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:211,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:212,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:214,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:215,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:216,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:217,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:218,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:219,1
    - Dst: strdup
      Src: /src/haproxy/src/mworker.c:220,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:221,1
    - Dst: strdup
      Src: /src/haproxy/src/mworker.c:222,1
    - Dst: list_for_each_entry_rev
      Src: /src/haproxy/src/mworker.c:233,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/mworker.c:239,1
    - Dst: mworker_free_child
      Src: /src/haproxy/src/mworker.c:241,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:247,1
    - Dst: unsetenv
      Src: /src/haproxy/src/mworker.c:252,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:258,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:263,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 265
    functionName: mworker_env_to_proc_list
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - strtok_r
    - mworker_proc_new
    - list_for_each_entry
    - list_for_each_entry_rev
    - unsetenv
    - free
    - strncmp
    - getenv
    - ha_alert
    - mworker_free_child
    - atoi
    - LIST_INSERT
    - strdup
    linkageType: ''
    returnType: int
    signature: int mworker_env_to_proc_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/haproxy/src/mworker.c:273,1
    - Dst: sigaddset
      Src: /src/haproxy/src/mworker.c:274,1
    - Dst: sigaddset
      Src: /src/haproxy/src/mworker.c:275,1
    - Dst: sigaddset
      Src: /src/haproxy/src/mworker.c:276,1
    - Dst: sigaddset
      Src: /src/haproxy/src/mworker.c:277,1
    - Dst: sigaddset
      Src: /src/haproxy/src/mworker.c:278,1
    - Dst: sigaddset
      Src: /src/haproxy/src/mworker.c:279,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/mworker.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 281
    functionName: mworker_block_signals
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - ha_sigmask
    - sigaddset
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: void mworker_block_signals()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:287,1
    - Dst: sigemptyset
      Src: /src/haproxy/src/mworker.c:289,1
    - Dst: sigaddset
      Src: /src/haproxy/src/mworker.c:290,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/mworker.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: mworker_unblock_sigchld
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - signal_register_fct
    - ha_sigmask
    - sigaddset
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: void mworker_unblock_sigchld()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal_unregister
      Src: /src/haproxy/src/mworker.c:297,1
    - Dst: signal_unregister
      Src: /src/haproxy/src/mworker.c:298,1
    - Dst: signal_unregister
      Src: /src/haproxy/src/mworker.c:299,1
    - Dst: signal_unregister
      Src: /src/haproxy/src/mworker.c:300,1
    - Dst: signal_unregister
      Src: /src/haproxy/src/mworker.c:301,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:303,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:304,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:305,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:306,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:307,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:308,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:309,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:310,1
    - Dst: haproxy_unblock_signals
      Src: /src/haproxy/src/mworker.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 313
    functionName: mworker_unblock_signals
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 1
    functionsReached:
    - signal_register_fct
    - haproxy_unblock_signals
    - signal_unregister
    linkageType: ''
    returnType: void
    signature: void mworker_unblock_signals()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mworker_kill
      Src: /src/haproxy/src/mworker.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: mworker_broadcast_signal
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - mworker_kill
    linkageType: ''
    returnType: void
    signature: void mworker_broadcast_signal(struct sig_handler *sh)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mworker_block_signals
      Src: /src/haproxy/src/mworker.c:338,1
    - Dst: clean_env
      Src: /src/haproxy/src/mworker.c:347,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:348,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:349,1
    - Dst: restore_env
      Src: /src/haproxy/src/mworker.c:352,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:353,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:354,1
    - Dst: setenv
      Src: /src/haproxy/src/mworker.c:357,1
    - Dst: mworker_proc_list_to_env
      Src: /src/haproxy/src/mworker.c:359,1
    - Dst: mworker_cli_proxy_stop
      Src: /src/haproxy/src/mworker.c:366,1
    - Dst: deinit_pollers
      Src: /src/haproxy/src/mworker.c:369,1
    - Dst: RAND_keep_random_devices_open
      Src: /src/haproxy/src/mworker.c:373,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/mworker.c:379,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:380,1
    - Dst: calloc
      Src: /src/haproxy/src/mworker.c:390,1
    - Dst: mworker_child_nb
      Src: /src/haproxy/src/mworker.c:390,1
    - Dst: strcmp
      Src: /src/haproxy/src/mworker.c:399,1
    - Dst: mworker_child_nb
      Src: /src/haproxy/src/mworker.c:405,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:413,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:419,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:427,1
    - Dst: startup_logs_free
      Src: /src/haproxy/src/mworker.c:446,1
    - Dst: signal
      Src: /src/haproxy/src/mworker.c:448,1
    - Dst: execvp
      Src: /src/haproxy/src/mworker.c:449,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:450,1
    - Dst: strerror
      Src: /src/haproxy/src/mworker.c:450,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:451,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:455,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:456,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 1
    argNames:
    - hardreload
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 327
    functionDepth: 6
    functionLinenumber: 327
    functionLinenumberEnd: 458
    functionName: mworker_reexec
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - memprintf
    - exit
    - mworker_block_signals
    - signal
    - execvp
    - mworker_proc_list_to_env
    - startup_logs_free
    - deinit_pollers
    - strerror
    - ha_free
    - strcmp
    - restore_env
    - raise_rlim_nofile
    - mworker_cli_proxy_stop
    - calloc
    - RAND_keep_random_devices_open
    - list_for_each_entry
    - setenv
    - mworker_child_nb
    - clean_env
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void mworker_reexec(int hardreload)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_notice
      Src: /src/haproxy/src/mworker.c:466,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:469,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:476,1
    - Dst: clock_gettime
      Src: /src/haproxy/src/mworker.c:483,1
    - Dst: sd_notifyf
      Src: /src/haproxy/src/mworker.c:485,1
    - Dst: mworker_reexec
      Src: /src/haproxy/src/mworker.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - hardreload
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 461
    functionDepth: 7
    functionLinenumber: 461
    functionLinenumberEnd: 492
    functionName: mworker_reload
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - list_for_each_entry
    - mworker_reexec
    - clock_gettime
    - sd_notifyf
    linkageType: ''
    returnType: void
    signature: void mworker_reload(int hardreload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mworker_reload
      Src: /src/haproxy/src/mworker.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 8
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: mworker_catch_sighup
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - mworker_reload
    linkageType: ''
    returnType: void
    signature: void mworker_catch_sighup(struct sig_handler *sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sd_notify
      Src: /src/haproxy/src/mworker.c:508,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:510,1
    - Dst: mworker_kill
      Src: /src/haproxy/src/mworker.c:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: mworker_catch_sigterm
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - sd_notify
    - mworker_kill
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void mworker_catch_sigterm(struct sig_handler *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mworker_unblock_signals
      Src: /src/haproxy/src/mworker.c:517,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mworker.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 520
    functionName: mworker_task_child_failure
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - task_destroy
    - mworker_unblock_signals
    linkageType: ''
    returnType: struct task
    signature: struct task *mworker_task_child_failure(struct task *task, void *context,
      unsigned int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:532,1
    - Dst: sock_drop_unused_old_sockets
      Src: /src/haproxy/src/mworker.c:537,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/mworker.c:539,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:541,1
    - Dst: strsignal
      Src: /src/haproxy/src/mworker.c:541,1
    - Dst: sd_notify
      Src: /src/haproxy/src/mworker.c:545,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mworker.c:548,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:549,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mworker.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - exitpid
    - status
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 555
    functionName: mworker_on_new_child_failure
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - sock_drop_unused_old_sockets
    - list_for_each_entry
    - task_wakeup
    - usermsgs_clr
    - sd_notify
    - ha_warning
    - strsignal
    - task_new_here
    linkageType: ''
    returnType: void
    signature: void mworker_on_new_child_failure(int exitpid, int status)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/haproxy/src/mworker.c:573,1
    - Dst: WIFEXITED
      Src: /src/haproxy/src/mworker.c:577,1
    - Dst: WEXITSTATUS
      Src: /src/haproxy/src/mworker.c:578,1
    - Dst: WIFSIGNALED
      Src: /src/haproxy/src/mworker.c:579,1
    - Dst: WTERMSIG
      Src: /src/haproxy/src/mworker.c:580,1
    - Dst: WIFSTOPPED
      Src: /src/haproxy/src/mworker.c:581,1
    - Dst: WSTOPSIG
      Src: /src/haproxy/src/mworker.c:582,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mworker.c:587,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mworker.c:591,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:598,1
    - Dst: strsignal
      Src: /src/haproxy/src/mworker.c:598,1
    - Dst: mworker_on_new_child_failure
      Src: /src/haproxy/src/mworker.c:600,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mworker.c:604,1
    - Dst: unbind_listener
      Src: /src/haproxy/src/mworker.c:606,1
    - Dst: delete_listener
      Src: /src/haproxy/src/mworker.c:607,1
    - Dst: srv_detach
      Src: /src/haproxy/src/mworker.c:614,1
    - Dst: srv_drop
      Src: /src/haproxy/src/mworker.c:615,1
    - Dst: fd_delete
      Src: /src/haproxy/src/mworker.c:619,1
    - Dst: mworker_free_child
      Src: /src/haproxy/src/mworker.c:621,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:630,1
    - Dst: fd_delete
      Src: /src/haproxy/src/mworker.c:635,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:637,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:639,1
    - Dst: strsignal
      Src: /src/haproxy/src/mworker.c:639,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:644,1
    - Dst: display_version
      Src: /src/haproxy/src/mworker.c:645,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:649,1
    - Dst: mworker_kill
      Src: /src/haproxy/src/mworker.c:650,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:659,1
    - Dst: strsignal
      Src: /src/haproxy/src/mworker.c:659,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:661,1
    - Dst: strsignal
      Src: /src/haproxy/src/mworker.c:661,1
    - Dst: fd_delete
      Src: /src/haproxy/src/mworker.c:663,1
    - Dst: delete_oldpid
      Src: /src/haproxy/src/mworker.c:664,1
    - Dst: mworker_free_child
      Src: /src/haproxy/src/mworker.c:667,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:678,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:680,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:685,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:686,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 86
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 561
    functionDepth: 6
    functionLinenumber: 561
    functionLinenumberEnd: 689
    functionName: mworker_catch_sigchld
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - WIFSTOPPED
    - exit
    - list_for_each_entry_safe
    - WIFEXITED
    - srv_drop
    - mworker_on_new_child_failure
    - srv_detach
    - WTERMSIG
    - strsignal
    - delete_oldpid
    - WIFSIGNALED
    - unbind_listener
    - WSTOPSIG
    - LIST_DELETE
    - waitpid
    - list_for_each_entry
    - delete_listener
    - mworker_kill
    - WEXITSTATUS
    - display_version
    - mworker_free_child
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void mworker_catch_sigchld(struct sig_handler *sh)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/haproxy/src/mworker.c:704,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/mworker.c:709,1
    - Dst: listener_accept
      Src: /src/haproxy/src/mworker.c:717,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:727,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 698
    functionDepth: 6
    functionLinenumber: 698
    functionLinenumberEnd: 731
    functionName: mworker_accept_wrapper
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - recv
    - listener_accept
    - fd_cant_recv
    - exit
    linkageType: ''
    returnType: void
    signature: void mworker_accept_wrapper(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/mworker.c:749,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/mworker.c:752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 738
    functionDepth: 2
    functionLinenumber: 738
    functionLinenumberEnd: 754
    functionName: mworker_sockpair_register_per_thread
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - fd_set_nonblock
    - fd_want_recv
    linkageType: ''
    returnType: int
    signature: int mworker_sockpair_register_per_thread()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stop_proxy
      Src: /src/haproxy/src/mworker.c:774,1
    - Dst: signal_unregister_handler
      Src: /src/haproxy/src/mworker.c:777,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mworker.c:778,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mworker.c:787,1
    - Dst: unbind_listener
      Src: /src/haproxy/src/mworker.c:790,1
    - Dst: delete_listener
      Src: /src/haproxy/src/mworker.c:791,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 763
    functionDepth: 4
    functionLinenumber: 763
    functionLinenumberEnd: 800
    functionName: mworker_cleanlisteners
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - task_destroy
    - list_for_each_entry_safe
    - delete_listener
    - unbind_listener
    - stop_proxy
    - signal_unregister_handler
    linkageType: ''
    returnType: void
    signature: void mworker_cleanlisteners()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mworker.c:810,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:815,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:817,1
    - Dst: srv_detach
      Src: /src/haproxy/src/mworker.c:820,1
    - Dst: srv_drop
      Src: /src/haproxy/src/mworker.c:821,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mworker.c:823,1
    - Dst: mworker_free_child
      Src: /src/haproxy/src/mworker.c:824,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 806
    functionDepth: 6
    functionLinenumber: 806
    functionLinenumberEnd: 827
    functionName: mworker_cleanup_proc
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - srv_detach
    - list_for_each_entry_safe
    - srv_drop
    - mworker_free_child
    - close
    linkageType: ''
    returnType: void
    signature: void mworker_cleanup_proc()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:843,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:844,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:846,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:847,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - child
    - tv_sec
    argTypes:
    - struct cli_showproc_ctx*
    - struct mworker_proc*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 835
    functionDepth: 5
    functionLinenumber: 835
    functionLinenumberEnd: 849
    functionName: cli_append_worker_row
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void cli_append_worker_row(struct cli_showproc_ctx *ctx, struct mworker_proc
      *child, time_t tv_sec)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/mworker.c:864,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:867,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/mworker.c:868,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:870,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:871,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:874,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:875,1
    - Dst: getpid
      Src: /src/haproxy/src/mworker.c:875,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:877,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:878,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:880,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:881,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:885,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:886,1
    - Dst: cli_append_worker_row
      Src: /src/haproxy/src/mworker.c:899,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/mworker.c:902,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:911,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:912,1
    - Dst: cli_append_worker_row
      Src: /src/haproxy/src/mworker.c:952,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/mworker.c:954,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/mworker.c:963,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 852
    functionDepth: 6
    functionLinenumber: 852
    functionLinenumberEnd: 970
    functionName: cli_io_handler_show_proc
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - getpid
    - memprintf
    - list_for_each_entry
    - ha_free
    - chunk_printf
    - chunk_appendf
    - chunk_reset
    - cli_append_worker_row
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_proc(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/mworker.c:977,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/mworker.c:979,1
    - Dst: strcmp
      Src: /src/haproxy/src/mworker.c:984,1
    - Dst: cli_err
      Src: /src/haproxy/src/mworker.c:987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 973
    functionDepth: 2
    functionLinenumber: 973
    functionLinenumberEnd: 991
    functionName: cli_parse_show_proc
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - strcmp
    - cli_err
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_proc(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/mworker.c:1003,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:1006,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/mworker.c:1011,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:1012,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:1013,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/mworker.c:1015,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/mworker.c:1029,1
    - Dst: sc_strm
      Src: /src/haproxy/src/mworker.c:1031,1
    - Dst: sc_conn
      Src: /src/haproxy/src/mworker.c:1033,1
    - Dst: conn_fd
      Src: /src/haproxy/src/mworker.c:1035,1
    - Dst: send_fd_uxst
      Src: /src/haproxy/src/mworker.c:1038,1
    - Dst: fd_delete
      Src: /src/haproxy/src/mworker.c:1039,1
    - Dst: mworker_reload
      Src: /src/haproxy/src/mworker.c:1041,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 994
    functionDepth: 8
    functionLinenumber: 994
    functionLinenumberEnd: 1044
    functionName: cli_parse_reload
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - sc_strm
    - sc_conn
    - fd_delete
    - send_fd_uxst
    - list_for_each_entry
    - chunk_printf
    - chunk_appendf
    - conn_fd
    - appctx_sc
    - mworker_reload
    - cli_has_level
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_parse_reload(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/mworker.c:1052,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:1058,1
    - Dst: tick_add
      Src: /src/haproxy/src/mworker.c:1060,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/mworker.c:1066,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/mworker.c:1068,1
    - Dst: ring_data
      Src: /src/haproxy/src/mworker.c:1070,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:1071,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/mworker.c:1073,1
    - Dst: ring_attach_cli
      Src: /src/haproxy/src/mworker.c:1078,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1048
    functionDepth: 3
    functionLinenumber: 1048
    functionLinenumberEnd: 1082
    functionName: cli_io_handler_show_loadstatus
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - chunk_printf
    - chunk_appendf
    - ring_data
    - ring_attach_cli
    - cli_has_level
    - tick_add
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_loadstatus(struct appctx *appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/mworker.c:1090,1
    - Dst: too_many_args
      Src: /src/haproxy/src/mworker.c:1091,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:1095,1
    - Dst: atol
      Src: /src/haproxy/src/mworker.c:1099,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:1101,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mworker.c:1105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1084
    functionDepth: 7
    functionLinenumber: 1084
    functionLinenumberEnd: 1110
    functionName: mworker_parse_global_max_reloads
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - memprintf
    - BUG_ON
    - atol
    - strcmp
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int mworker_parse_global_max_reloads(char **args, int section_type,
      struct proxy *curpx,\n           const struct proxy *defpx, const char *file,
      int linenum, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1120,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1122,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1123,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1124,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:1125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - child
    argTypes:
    - struct mworker_proc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1112
    functionDepth: 3
    functionLinenumber: 1112
    functionLinenumberEnd: 1126
    functionName: mworker_free_child
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 3
    functionsReached:
    - ha_free
    - free
    linkageType: ''
    returnType: void
    signature: void mworker_free_child(struct mworker_proc *child)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mworker.c:1133,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mworker.c:1136,1
    - Dst: mworker_cli_master_proxy_new_listener
      Src: /src/haproxy/src/mworker.c:1137,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1138,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1139,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mworker.c:1141,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:1142,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:1143,1
    - Dst: socketpair
      Src: /src/haproxy/src/mworker.c:1155,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1156,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1157,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:1162,1
    - Dst: mworker_cli_master_proxy_new_listener
      Src: /src/haproxy/src/mworker.c:1164,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1166,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1167,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1129
    functionDepth: 5
    functionLinenumber: 1129
    functionLinenumberEnd: 1171
    functionName: mworker_create_master_cli
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - memprintf
    - exit
    - ha_free
    - list_for_each_entry_safe
    - free
    - socketpair
    - mworker_cli_master_proxy_new_listener
    - LIST_ISEMPTY
    - ha_alert
    linkageType: ''
    returnType: void
    signature: void mworker_create_master_cli(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/haproxy/src/mworker.c:1182,1
    - Dst: getenv
      Src: /src/haproxy/src/mworker.c:1184,1
    - Dst: mworker_proc_new
      Src: /src/haproxy/src/mworker.c:1186,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1188,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1189,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mworker.c:1196,1
    - Dst: mworker_proc_new
      Src: /src/haproxy/src/mworker.c:1199,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1201,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1202,1
    - Dst: socketpair
      Src: /src/haproxy/src/mworker.c:1210,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1211,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1212,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mworker.c:1214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1215
    functionName: mworker_prepare_master
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - mworker_proc_new
    - exit
    - setenv
    - LIST_APPEND
    - socketpair
    - getenv
    - ha_alert
    linkageType: ''
    returnType: void
    signature: void mworker_prepare_master(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mworker_unblock_sigchld
      Src: /src/haproxy/src/mworker.c:1223,1
    - Dst: mworker_cleantasks
      Src: /src/haproxy/src/mworker.c:1224,1
    - Dst: mworker_catch_sigchld
      Src: /src/haproxy/src/mworker.c:1226,1
    - Dst: fork_poller
      Src: /src/haproxy/src/mworker.c:1233,1
    - Dst: run_thread_poll_loop
      Src: /src/haproxy/src/mworker.c:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1217
    functionDepth: 7
    functionLinenumber: 1217
    functionLinenumberEnd: 1235
    functionName: mworker_loop
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - mworker_unblock_sigchld
    - fork_poller
    - mworker_cleantasks
    - run_thread_poll_loop
    - mworker_catch_sigchld
    linkageType: ''
    returnType: void
    signature: void mworker_loop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1241,1
    - Dst: mworker_loop
      Src: /src/haproxy/src/mworker.c:1245,1
    - Dst: ssl_free_dh
      Src: /src/haproxy/src/mworker.c:1247,1
    - Dst: mworker_cli_proxy_stop
      Src: /src/haproxy/src/mworker.c:1251,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mworker.c:1254,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1260,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mworker.c:1263,1
    - Dst: mworker_free_child
      Src: /src/haproxy/src/mworker.c:1264,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1237
    functionDepth: 8
    functionLinenumber: 1237
    functionLinenumberEnd: 1269
    functionName: mworker_run_master
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - ssl_free_dh
    - exit
    - mworker_cli_proxy_stop
    - list_for_each_entry_safe
    - mworker_free_child
    - mworker_loop
    - close
    linkageType: ''
    returnType: void
    signature: void mworker_run_master(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/haproxy/src/mworker.c:1287,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1290,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1292,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1295,1
    - Dst: unsetenv
      Src: /src/haproxy/src/mworker.c:1300,1
    - Dst: ha_random_jump128
      Src: /src/haproxy/src/mworker.c:1301,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:1303,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1305,1
    - Dst: mworker_cli_global_proxy_new_listener
      Src: /src/haproxy/src/mworker.c:1314,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1315,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1327,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1329,1
    - Dst: ha_notice
      Src: /src/haproxy/src/mworker.c:1335,1
    - Dst: mworker_cli_create_master_proxy
      Src: /src/haproxy/src/mworker.c:1346,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1347,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:1348,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1349,1
    - Dst: mworker_cli_attach_server
      Src: /src/haproxy/src/mworker.c:1353,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1354,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:1355,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1356,1
    - Dst: mworker_create_master_cli
      Src: /src/haproxy/src/mworker.c:1360,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:1363,1
    - Dst: strdup
      Src: /src/haproxy/src/mworker.c:1367,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1369,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:1373,1
    - Dst: mworker_cli_master_proxy_new_listener
      Src: /src/haproxy/src/mworker.c:1374,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1375,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1376,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1378,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1280
    functionDepth: 6
    functionLinenumber: 1280
    functionLinenumberEnd: 1384
    functionName: mworker_apply_master_worker_mode
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - fork
    - ha_notice
    - memprintf
    - exit
    - ha_random_jump128
    - list_for_each_entry
    - mworker_cli_global_proxy_new_listener
    - mworker_create_master_cli
    - ha_free
    - unsetenv
    - free
    - mworker_cli_attach_server
    - mworker_cli_master_proxy_new_listener
    - ha_alert
    - mworker_cli_create_master_proxy
    - close
    - strdup
    linkageType: ''
    returnType: void
    signature: void mworker_apply_master_worker_mode(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/src/slz.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - strm
    - x
    - xbits
    argTypes:
    - struct slz_stream*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: enqueue24
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - __builtin_expect
    linkageType: ''
    returnType: void
    signature: void enqueue24(struct slz_stream *strm, uint64_t x, uint32_t xbits)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct slz_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 204
    functionName: flush_bits
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void flush_bits(struct slz_stream *strm)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - strm
    - x
    - xbits
    argTypes:
    - struct slz_stream*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 237
    functionName: enqueue24
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void enqueue24(struct slz_stream *strm, uint32_t x, uint32_t xbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/src/slz.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - strm
    - x
    - xbits
    argTypes:
    - struct slz_stream*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 255
    functionName: enqueue8
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - __builtin_expect
    linkageType: ''
    returnType: void
    signature: void enqueue8(struct slz_stream *strm, uint32_t x, uint32_t xbits)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct slz_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 268
    functionName: flush_bits
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void flush_bits(struct slz_stream *strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - strm
    - x
    argTypes:
    - struct slz_stream*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: copy_8b
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_8b(struct slz_stream *strm, uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - strm
    - x
    argTypes:
    - struct slz_stream*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: copy_16b
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_16b(struct slz_stream *strm, uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - strm
    - x
    argTypes:
    - struct slz_stream*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: copy_32b
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_32b(struct slz_stream *strm, uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enqueue24
      Src: /src/haproxy/src/slz.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - strm
    - code
    argTypes:
    - struct slz_stream*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 305
    functionName: send_huff
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - enqueue24
    linkageType: ''
    returnType: void
    signature: void send_huff(struct slz_stream *strm, unsigned long code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enqueue8
      Src: /src/haproxy/src/slz.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct slz_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: send_eob
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - enqueue8
    linkageType: ''
    returnType: void
    signature: void send_eob(struct slz_stream *strm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/src/slz.c:321,1
    - Dst: send_eob
      Src: /src/haproxy/src/slz.c:327,1
    - Dst: enqueue8
      Src: /src/haproxy/src/slz.c:331,1
    - Dst: flush_bits
      Src: /src/haproxy/src/slz.c:332,1
    - Dst: copy_16b
      Src: /src/haproxy/src/slz.c:333,1
    - Dst: copy_16b
      Src: /src/haproxy/src/slz.c:334,1
    - Dst: memcpy
      Src: /src/haproxy/src/slz.c:335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - strm
    - buf
    - len
    - more
    argTypes:
    - struct slz_stream*
    - void*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 339
    functionName: copy_lit
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - copy_16b
    - memcpy
    - __builtin_expect
    - enqueue8
    - send_eob
    - flush_bits
    linkageType: ''
    returnType: void
    signature: void copy_lit(struct slz_stream *strm, const void *buf, uint32_t len,
      int more)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enqueue8
      Src: /src/haproxy/src/slz.c:354,1
    - Dst: send_eob
      Src: /src/haproxy/src/slz.c:357,1
    - Dst: send_huff
      Src: /src/haproxy/src/slz.c:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - strm
    - buf
    - len
    - more
    argTypes:
    - struct slz_stream*
    - unsigned char*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 365
    functionName: copy_lit_huff
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - send_huff
    - enqueue8
    - send_eob
    linkageType: ''
    returnType: void
    signature: void copy_lit_huff(struct slz_stream *strm, const unsigned char *buf,
      uint32_t len, int more)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 397
    functionName: slz_hash
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t slz_hash(uint32_t a)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 47
    argCount: 3
    argNames:
    - a
    - b
    - max
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 476
    functionName: memmatch
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long memmatch(const unsigned char *a, const unsigned char *b, long
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - refs
    - count
    argTypes:
    - union ref*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 508
    functionName: reset_refs
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_refs(union ref *refs, long count)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: reset_refs
      Src: /src/haproxy/src/slz.c:540,1
    - Dst: slz_hash
      Src: /src/haproxy/src/slz.c:553,1
    - Dst: memmatch
      Src: /src/haproxy/src/slz.c:595,1
    - Dst: memmatch
      Src: /src/haproxy/src/slz.c:630,1
    - Dst: copy_lit
      Src: /src/haproxy/src/slz.c:706,1
    - Dst: copy_lit_huff
      Src: /src/haproxy/src/slz.c:708,1
    - Dst: enqueue8
      Src: /src/haproxy/src/slz.c:716,1
    - Dst: enqueue24
      Src: /src/haproxy/src/slz.c:720,1
    - Dst: enqueue24
      Src: /src/haproxy/src/slz.c:723,1
    - Dst: __builtin_expect
      Src: /src/haproxy/src/slz.c:737,1
    - Dst: copy_lit
      Src: /src/haproxy/src/slz.c:749,1
    - Dst: copy_lit_huff
      Src: /src/haproxy/src/slz.c:751,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 100
    argCount: 5
    argNames:
    - strm
    - out
    - in
    - ilen
    - more
    argTypes:
    - struct slz_stream*
    - unsigned char*
    - unsigned char*
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 517
    functionDepth: 4
    functionLinenumber: 517
    functionLinenumberEnd: 758
    functionName: slz_rfc1951_encode
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - enqueue24
    - reset_refs
    - copy_lit
    - copy_lit_huff
    - enqueue8
    - memmatch
    - slz_hash
    linkageType: ''
    returnType: long
    signature: long slz_rfc1951_encode(struct slz_stream *strm, unsigned char *out,
      const unsigned char *in, long ilen, int more)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - strm
    - level
    argTypes:
    - struct slz_stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 775
    functionName: slz_rfc1951_init
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int slz_rfc1951_init(struct slz_stream *strm, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_eob
      Src: /src/haproxy/src/slz.c:797,1
    - Dst: enqueue8
      Src: /src/haproxy/src/slz.c:801,1
    - Dst: flush_bits
      Src: /src/haproxy/src/slz.c:802,1
    - Dst: copy_32b
      Src: /src/haproxy/src/slz.c:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 811
    functionName: slz_rfc1951_flush
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - copy_32b
    - enqueue8
    - send_eob
    - flush_bits
    linkageType: ''
    returnType: int
    signature: int slz_rfc1951_flush(struct slz_stream *strm, unsigned char *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: send_eob
      Src: /src/haproxy/src/slz.c:826,1
    - Dst: enqueue8
      Src: /src/haproxy/src/slz.c:831,1
    - Dst: send_eob
      Src: /src/haproxy/src/slz.c:832,1
    - Dst: flush_bits
      Src: /src/haproxy/src/slz.c:836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 838
    functionName: slz_rfc1951_finish
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - enqueue8
    - send_eob
    - flush_bits
    linkageType: ''
    returnType: int
    signature: int slz_rfc1951_finish(struct slz_stream *strm, unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - crc
    - x
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 983
    functionName: crc32_char
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc32_char(uint32_t crc, uint8_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 1004
    functionName: crc32_uint32
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc32_uint32(uint32_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32_char
      Src: /src/haproxy/src/slz.c:1013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1015
    functionName: slz_crc32_by1
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - crc32_char
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t slz_crc32_by1(uint32_t crc, const unsigned char *buf, int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32_uint32
      Src: /src/haproxy/src/slz.c:1044,1
    - Dst: crc32_uint32
      Src: /src/haproxy/src/slz.c:1047,1
    - Dst: crc32_uint32
      Src: /src/haproxy/src/slz.c:1050,1
    - Dst: crc32_uint32
      Src: /src/haproxy/src/slz.c:1053,1
    - Dst: crc32_uint32
      Src: /src/haproxy/src/slz.c:1082,1
    - Dst: crc32_char
      Src: /src/haproxy/src/slz.c:1093,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1095
    functionName: slz_crc32_by4
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - crc32_char
    - crc32_uint32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t slz_crc32_by4(uint32_t crc, const unsigned char *buf, int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: slz_crc32_by4
      Src: /src/haproxy/src/slz.c:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1098
    functionDepth: 2
    functionLinenumber: 1098
    functionLinenumberEnd: 1101
    functionName: update_crc
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - slz_crc32_by4
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t update_crc(uint32_t crc, const void *buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/slz.c:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1113
    functionName: slz_rfc1952_send_header
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int slz_rfc1952_send_header(struct slz_stream *strm, unsigned char
      *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/src/slz.c:1123,1
    - Dst: slz_rfc1952_send_header
      Src: /src/haproxy/src/slz.c:1124,1
    - Dst: update_crc
      Src: /src/haproxy/src/slz.c:1126,1
    - Dst: slz_rfc1951_encode
      Src: /src/haproxy/src/slz.c:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - strm
    - out
    - in
    - ilen
    - more
    argTypes:
    - struct slz_stream*
    - unsigned char*
    - unsigned char*
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1119
    functionDepth: 5
    functionLinenumber: 1119
    functionLinenumberEnd: 1129
    functionName: slz_rfc1952_encode
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - update_crc
    - slz_rfc1951_encode
    - slz_rfc1952_send_header
    linkageType: ''
    returnType: long
    signature: long slz_rfc1952_encode(struct slz_stream *strm, unsigned char *out,
      const unsigned char *in, long ilen, int more)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - strm
    - level
    argTypes:
    - struct slz_stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1146
    functionName: slz_rfc1952_init
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int slz_rfc1952_init(struct slz_stream *strm, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/src/slz.c:1162,1
    - Dst: slz_rfc1952_send_header
      Src: /src/haproxy/src/slz.c:1163,1
    - Dst: slz_rfc1951_flush
      Src: /src/haproxy/src/slz.c:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1158
    functionDepth: 4
    functionLinenumber: 1158
    functionLinenumberEnd: 1167
    functionName: slz_rfc1952_flush
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - slz_rfc1951_flush
    - slz_rfc1952_send_header
    linkageType: ''
    returnType: int
    signature: int slz_rfc1952_flush(struct slz_stream *strm, unsigned char *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/src/slz.c:1182,1
    - Dst: slz_rfc1952_send_header
      Src: /src/haproxy/src/slz.c:1183,1
    - Dst: slz_rfc1951_finish
      Src: /src/haproxy/src/slz.c:1185,1
    - Dst: copy_32b
      Src: /src/haproxy/src/slz.c:1186,1
    - Dst: copy_32b
      Src: /src/haproxy/src/slz.c:1187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1178
    functionDepth: 4
    functionLinenumber: 1178
    functionLinenumberEnd: 1191
    functionName: slz_rfc1952_finish
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - slz_rfc1951_finish
    - slz_rfc1952_send_header
    - copy_32b
    linkageType: ''
    returnType: int
    signature: int slz_rfc1952_finish(struct slz_stream *strm, unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1325
    functionName: slz_adler32_by1
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t slz_adler32_by1(uint32_t crc, const unsigned char *buf, int
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1377
    functionName: slz_adler32_block
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t slz_adler32_block(uint32_t crc, const unsigned char *buf,
      long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/slz.c:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1389
    functionName: slz_rfc1950_send_header
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int slz_rfc1950_send_header(struct slz_stream *strm, unsigned char
      *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/src/slz.c:1399,1
    - Dst: slz_rfc1950_send_header
      Src: /src/haproxy/src/slz.c:1400,1
    - Dst: slz_adler32_block
      Src: /src/haproxy/src/slz.c:1402,1
    - Dst: slz_rfc1951_encode
      Src: /src/haproxy/src/slz.c:1403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - strm
    - out
    - in
    - ilen
    - more
    argTypes:
    - struct slz_stream*
    - unsigned char*
    - unsigned char*
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1395
    functionDepth: 5
    functionLinenumber: 1395
    functionLinenumberEnd: 1405
    functionName: slz_rfc1950_encode
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - slz_rfc1950_send_header
    - slz_rfc1951_encode
    - slz_adler32_block
    linkageType: ''
    returnType: long
    signature: long slz_rfc1950_encode(struct slz_stream *strm, unsigned char *out,
      const unsigned char *in, long ilen, int more)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - strm
    - level
    argTypes:
    - struct slz_stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1422
    functionName: slz_rfc1950_init
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int slz_rfc1950_init(struct slz_stream *strm, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/src/slz.c:1438,1
    - Dst: slz_rfc1950_send_header
      Src: /src/haproxy/src/slz.c:1439,1
    - Dst: slz_rfc1951_flush
      Src: /src/haproxy/src/slz.c:1441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1434
    functionDepth: 4
    functionLinenumber: 1434
    functionLinenumberEnd: 1443
    functionName: slz_rfc1950_flush
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - slz_rfc1951_flush
    - slz_rfc1950_send_header
    linkageType: ''
    returnType: int
    signature: int slz_rfc1950_flush(struct slz_stream *strm, unsigned char *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/src/slz.c:1458,1
    - Dst: slz_rfc1950_send_header
      Src: /src/haproxy/src/slz.c:1459,1
    - Dst: slz_rfc1951_finish
      Src: /src/haproxy/src/slz.c:1461,1
    - Dst: copy_8b
      Src: /src/haproxy/src/slz.c:1462,1
    - Dst: copy_8b
      Src: /src/haproxy/src/slz.c:1463,1
    - Dst: copy_8b
      Src: /src/haproxy/src/slz.c:1464,1
    - Dst: copy_8b
      Src: /src/haproxy/src/slz.c:1465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1454
    functionDepth: 4
    functionLinenumber: 1454
    functionLinenumberEnd: 1468
    functionName: slz_rfc1950_finish
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - slz_rfc1951_finish
    - slz_rfc1950_send_header
    - copy_8b
    linkageType: ''
    returnType: int
    signature: int slz_rfc1950_finish(struct slz_stream *strm, unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __slz_make_crc_table
      Src: /src/haproxy/src/slz.c:1474,1
    - Dst: __slz_prepare_dist_table
      Src: /src/haproxy/src/slz.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1477
    functionName: __slz_initialize
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - __slz_make_crc_table
    - __slz_prepare_dist_table
    linkageType: ''
    returnType: void
    signature: void __slz_initialize(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:38,1
    - Dst: istend
      Src: /src/haproxy/src/fix.c:39,1
    - Dst: read_uint
      Src: /src/haproxy/src/fix.c:40,1
    - Dst: isttest
      Src: /src/haproxy/src/fix.c:51,1
    - Dst: istissame
      Src: /src/haproxy/src/fix.c:59,1
    - Dst: istissame
      Src: /src/haproxy/src/fix.c:61,1
    - Dst: istissame
      Src: /src/haproxy/src/fix.c:63,1
    - Dst: istissame
      Src: /src/haproxy/src/fix.c:65,1
    - Dst: istissame
      Src: /src/haproxy/src/fix.c:67,1
    - Dst: istissame
      Src: /src/haproxy/src/fix.c:72,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 25
    argCount: 2
    argNames:
    - str
    - version
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 76
    functionName: fix_check_id
    functionSourceFile: /src/haproxy/src/fix.c
    functionUses: 0
    functionsReached:
    - read_uint
    - istend
    - istissame
    - istptr
    - isttest
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fix_check_id(const struct ist str, const struct ist version)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/fix.c:101,1
    - Dst: istlen
      Src: /src/haproxy/src/fix.c:114,1
    - Dst: iststop
      Src: /src/haproxy/src/fix.c:120,1
    - Dst: istfind
      Src: /src/haproxy/src/fix.c:120,1
    - Dst: istend
      Src: /src/haproxy/src/fix.c:123,1
    - Dst: istend
      Src: /src/haproxy/src/fix.c:123,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:128,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:128,1
    - Dst: istlen
      Src: /src/haproxy/src/fix.c:128,1
    - Dst: ist2
      Src: /src/haproxy/src/fix.c:132,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:132,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:132,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:132,1
    - Dst: istnext
      Src: /src/haproxy/src/fix.c:133,1
    - Dst: fix_check_id
      Src: /src/haproxy/src/fix.c:136,1
    - Dst: fix_version
      Src: /src/haproxy/src/fix.c:146,1
    - Dst: isttest
      Src: /src/haproxy/src/fix.c:147,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:155,1
    - Dst: istend
      Src: /src/haproxy/src/fix.c:156,1
    - Dst: read_uint
      Src: /src/haproxy/src/fix.c:157,1
    - Dst: istend
      Src: /src/haproxy/src/fix.c:165,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:177,1
    - Dst: istlen
      Src: /src/haproxy/src/fix.c:180,1
    - Dst: strl2ui
      Src: /src/haproxy/src/fix.c:182,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:182,1
    - Dst: istlen
      Src: /src/haproxy/src/fix.c:182,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:191,1
    - Dst: istend
      Src: /src/haproxy/src/fix.c:191,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:194,1
    - Dst: istend
      Src: /src/haproxy/src/fix.c:194,1
    - Dst: istadv
      Src: /src/haproxy/src/fix.c:199,1
    - Dst: istlen
      Src: /src/haproxy/src/fix.c:199,1
    - Dst: istlen
      Src: /src/haproxy/src/fix.c:199,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 81
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 209
    functionName: fix_validate_message
    functionSourceFile: /src/haproxy/src/fix.c
    functionUses: 1
    functionsReached:
    - ist2
    - iststop
    - istadv
    - read_uint
    - istend
    - strl2ui
    - istnext
    - istptr
    - fix_version
    - istfind
    - istlen
    - fix_check_id
    - isttest
    linkageType: ''
    returnType: int
    signature: int fix_validate_message(const struct ist msg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/fix.c:231,1
    - Dst: iststop
      Src: /src/haproxy/src/fix.c:232,1
    - Dst: istfind
      Src: /src/haproxy/src/fix.c:232,1
    - Dst: istend
      Src: /src/haproxy/src/fix.c:235,1
    - Dst: istend
      Src: /src/haproxy/src/fix.c:235,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:239,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:239,1
    - Dst: istlen
      Src: /src/haproxy/src/fix.c:239,1
    - Dst: ist2
      Src: /src/haproxy/src/fix.c:242,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:242,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:242,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:242,1
    - Dst: istnext
      Src: /src/haproxy/src/fix.c:243,1
    - Dst: fix_check_id
      Src: /src/haproxy/src/fix.c:245,1
    - Dst: istadv
      Src: /src/haproxy/src/fix.c:257,1
    - Dst: istlen
      Src: /src/haproxy/src/fix.c:257,1
    - Dst: istlen
      Src: /src/haproxy/src/fix.c:257,1
    - Dst: ist2
      Src: /src/haproxy/src/fix.c:260,1
    - Dst: istptr
      Src: /src/haproxy/src/fix.c:260,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - msg
    - tagid
    argTypes:
    - struct ist
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 264
    functionName: fix_tag_value
    functionSourceFile: /src/haproxy/src/fix.c
    functionUses: 1
    functionsReached:
    - ist2
    - iststop
    - istadv
    - istend
    - istnext
    - istptr
    - istfind
    - istlen
    - fix_check_id
    linkageType: ''
    returnType: struct ist
    signature: struct ist fix_tag_value(const struct ist msg, unsigned int tagid)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: ssl_sock_sni_is_valid
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_sock_sni_is_valid(const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_gencert.c:75,1
    - Dst: NCONF_new
      Src: /src/haproxy/src/ssl_gencert.c:77,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_gencert.c:84,1
    - Dst: X509V3_EXT_nconf_nid
      Src: /src/haproxy/src/ssl_gencert.c:85,1
    - Dst: X509_add_ext
      Src: /src/haproxy/src/ssl_gencert.c:92,1
    - Dst: X509_EXTENSION_free
      Src: /src/haproxy/src/ssl_gencert.c:101,1
    - Dst: NCONF_free
      Src: /src/haproxy/src/ssl_gencert.c:102,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - cert
    - servername
    argTypes:
    - X509V3_CTX*
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 105
    functionName: ssl_sock_add_san_ext
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - NCONF_free
    - X509V3_EXT_nconf_nid
    - X509_add_ext
    - chunk_appendf
    - X509_EXTENSION_free
    - get_trash_chunk
    - NCONF_new
    linkageType: ''
    returnType: int
    signature: int ssl_sock_add_san_ext(X509V3_CTX* ctx, X509* cert, const char *servername)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_sni_is_valid
      Src: /src/haproxy/src/ssl_gencert.c:131,1
    - Dst: ssl_sock_choose_sni_ctx
      Src: /src/haproxy/src/ssl_gencert.c:134,1
    - Dst: SSL_CTX_get0_privatekey
      Src: /src/haproxy/src/ssl_gencert.c:140,1
    - Dst: SSL_new
      Src: /src/haproxy/src/ssl_gencert.c:142,1
    - Dst: SSL_get_privatekey
      Src: /src/haproxy/src/ssl_gencert.c:144,1
    - Dst: X509_new
      Src: /src/haproxy/src/ssl_gencert.c:150,1
    - Dst: X509_set_version
      Src: /src/haproxy/src/ssl_gencert.c:155,1
    - Dst: ASN1_INTEGER_set
      Src: /src/haproxy/src/ssl_gencert.c:157,1
    - Dst: X509_get_serialNumber
      Src: /src/haproxy/src/ssl_gencert.c:157,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/ssl_gencert.c:157,1
    - Dst: X509_gmtime_adj
      Src: /src/haproxy/src/ssl_gencert.c:160,1
    - Dst: X509_getm_notBefore
      Src: /src/haproxy/src/ssl_gencert.c:160,1
    - Dst: X509_gmtime_adj
      Src: /src/haproxy/src/ssl_gencert.c:161,1
    - Dst: X509_getm_notAfter
      Src: /src/haproxy/src/ssl_gencert.c:161,1
    - Dst: X509_set_pubkey
      Src: /src/haproxy/src/ssl_gencert.c:165,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_gencert.c:169,1
    - Dst: X509_set_issuer_name
      Src: /src/haproxy/src/ssl_gencert.c:171,1
    - Dst: X509_NAME_dup
      Src: /src/haproxy/src/ssl_gencert.c:175,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_gencert.c:177,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/haproxy/src/ssl_gencert.c:178,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_gencert.c:181,1
    - Dst: X509_set_subject_name
      Src: /src/haproxy/src/ssl_gencert.c:185,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_gencert.c:186,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_gencert.c:189,1
    - Dst: NCONF_new
      Src: /src/haproxy/src/ssl_gencert.c:192,1
    - Dst: X509V3_set_ctx
      Src: /src/haproxy/src/ssl_gencert.c:193,1
    - Dst: X509V3_EXT_nconf
      Src: /src/haproxy/src/ssl_gencert.c:197,1
    - Dst: X509_add_ext
      Src: /src/haproxy/src/ssl_gencert.c:199,1
    - Dst: X509_EXTENSION_free
      Src: /src/haproxy/src/ssl_gencert.c:200,1
    - Dst: X509_EXTENSION_free
      Src: /src/haproxy/src/ssl_gencert.c:203,1
    - Dst: ssl_sock_add_san_ext
      Src: /src/haproxy/src/ssl_gencert.c:207,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_gencert.c:213,1
    - Dst: EVP_sha1
      Src: /src/haproxy/src/ssl_gencert.c:216,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/ssl_gencert.c:218,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/ssl_gencert.c:220,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/haproxy/src/ssl_gencert.c:225,1
    - Dst: EVP_get_digestbynid
      Src: /src/haproxy/src/ssl_gencert.c:227,1
    - Dst: X509_sign
      Src: /src/haproxy/src/ssl_gencert.c:234,1
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/ssl_gencert.c:238,1
    - Dst: SSLv23_server_method
      Src: /src/haproxy/src/ssl_gencert.c:238,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_gencert.c:242,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/haproxy/src/ssl_gencert.c:244,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/haproxy/src/ssl_gencert.c:246,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/haproxy/src/ssl_gencert.c:248,1
    - Dst: SSL_CTX_add1_chain_cert
      Src: /src/haproxy/src/ssl_gencert.c:253,1
    - Dst: sk_X509_num
      Src: /src/haproxy/src/ssl_gencert.c:258,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_gencert.c:259,1
    - Dst: SSL_CTX_add1_chain_cert
      Src: /src/haproxy/src/ssl_gencert.c:260,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_gencert.c:267,1
    - Dst: SSL_CTX_set_tmp_dh_callback
      Src: /src/haproxy/src/ssl_gencert.c:271,1
    - Dst: ssl_sock_set_tmp_dh_from_pkey
      Src: /src/haproxy/src/ssl_gencert.c:273,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/haproxy/src/ssl_gencert.c:281,1
    - Dst: OBJ_sn2nid
      Src: /src/haproxy/src/ssl_gencert.c:292,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/haproxy/src/ssl_gencert.c:294,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/haproxy/src/ssl_gencert.c:296,1
    - Dst: EC_KEY_free
      Src: /src/haproxy/src/ssl_gencert.c:297,1
    - Dst: NCONF_free
      Src: /src/haproxy/src/ssl_gencert.c:305,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_gencert.c:306,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_gencert.c:307,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_gencert.c:308,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 141
    argCount: 3
    argNames:
    - servername
    - bind_conf
    - ssl
    argTypes:
    - char*
    - struct bind_conf*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 310
    functionName: ssl_sock_do_create_cert
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - ssl_sock_sni_is_valid
    - SSL_new
    - SSL_CTX_set_security_level
    - SSL_CTX_set_tmp_ecdh
    - SSL_CTX_free
    - EVP_get_digestbynid
    - OBJ_sn2nid
    - X509_EXTENSION_free
    - NCONF_new
    - EVP_PKEY_get_default_digest_nid
    - EC_KEY_new_by_curve_name
    - NCONF_free
    - SSL_CTX_check_private_key
    - X509_get_serialNumber
    - SSL_CTX_add1_chain_cert
    - SSL_CTX_set1_curves_list
    - sk_X509_num
    - X509_set_version
    - SSL_free
    - X509_sign
    - X509_set_issuer_name
    - X509V3_set_ctx
    - SSL_get_privatekey
    - EVP_sha256
    - X509_set_pubkey
    - EVP_sha1
    - SSL_CTX_get0_privatekey
    - ssl_sock_choose_sni_ctx
    - ASN1_INTEGER_set
    - _HA_ATOMIC_ADD_FETCH
    - X509_gmtime_adj
    - SSL_CTX_use_PrivateKey
    - sk_X509_value
    - X509_add_ext
    - SSL_CTX_new
    - X509_getm_notAfter
    - X509_NAME_free
    - X509_NAME_dup
    - SSL_CTX_use_certificate
    - SSL_CTX_set_tmp_dh_callback
    - EC_KEY_free
    - X509_free
    - X509_getm_notBefore
    - SSLv23_server_method
    - ssl_sock_set_tmp_dh_from_pkey
    - X509V3_EXT_nconf
    - X509_NAME_add_entry_by_txt
    - ssl_sock_add_san_ext
    - X509_new
    - X509_set_subject_name
    - EVP_PKEY_base_id
    - X509_get_subject_name
    - strlen
    linkageType: ''
    returnType: SSL_CTX
    signature: SSL_CTX *ssl_sock_do_create_cert(const char *servername, struct bind_conf
      *bind_conf, SSL *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_gencert.c:320,1
    - Dst: lru64_lookup
      Src: /src/haproxy/src/ssl_gencert.c:321,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/haproxy/src/ssl_gencert.c:324,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_gencert.c:325,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_gencert.c:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - key
    - bind_conf
    - ssl
    argTypes:
    - unsigned int
    - struct bind_conf*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 331
    functionName: ssl_sock_assign_generated_cert
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - SSL_set_SSL_CTX
    - lru64_lookup
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: SSL_CTX
    signature: SSL_CTX *ssl_sock_assign_generated_cert(unsigned int key, struct bind_conf
      *bind_conf, SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_assign_generated_cert
      Src: /src/haproxy/src/ssl_gencert.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - bind_conf
    argTypes:
    - unsigned int
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: ssl_sock_get_generated_cert
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - ssl_sock_assign_generated_cert
    linkageType: ''
    returnType: SSL_CTX
    signature: 'SSL_CTX *

      ssl_sock_get_generated_cert(unsigned int key, struct bind_conf *bind_conf)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_gencert.c:350,1
    - Dst: lru64_get
      Src: /src/haproxy/src/ssl_gencert.c:351,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_gencert.c:353,1
    - Dst: struct lru64*::free
      Src: /src/haproxy/src/ssl_gencert.c:357,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/ssl_gencert.c:358,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_gencert.c:359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ssl_ctx
    - key
    - bind_conf
    argTypes:
    - SSL_CTX*
    - unsigned int
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 363
    functionName: ssl_sock_set_generated_cert
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - lru64_commit
    - HA_RWLOCK_WRUNLOCK
    - lru64_get
    - struct lru64*::free
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int ssl_sock_set_generated_cert(SSL_CTX *ssl_ctx, unsigned int key,
      struct bind_conf *bind_conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH32
      Src: /src/haproxy/src/ssl_gencert.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: ssl_sock_generated_cert_key
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - XXH32
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ssl_sock_generated_cert_key(const void *data, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_generated_cert_key
      Src: /src/haproxy/src/ssl_gencert.c:382,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_gencert.c:382,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_gencert.c:384,1
    - Dst: lru64_get
      Src: /src/haproxy/src/ssl_gencert.c:385,1
    - Dst: ssl_sock_do_create_cert
      Src: /src/haproxy/src/ssl_gencert.c:389,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_gencert.c:391,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/ssl_gencert.c:394,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/haproxy/src/ssl_gencert.c:396,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_gencert.c:397,1
    - Dst: ssl_sock_do_create_cert
      Src: /src/haproxy/src/ssl_gencert.c:401,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/haproxy/src/ssl_gencert.c:404,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_gencert.c:406,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - servername
    - bind_conf
    - ssl
    argTypes:
    - char*
    - struct bind_conf*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 375
    functionDepth: 6
    functionLinenumber: 375
    functionLinenumberEnd: 411
    functionName: ssl_sock_generate_certificate
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 1
    functionsReached:
    - lru64_commit
    - ssl_sock_do_create_cert
    - SSL_CTX_free
    - lru64_get
    - HA_RWLOCK_WRUNLOCK
    - SSL_set_SSL_CTX
    - HA_RWLOCK_WRLOCK
    - ssl_sock_generated_cert_key
    - strlen
    linkageType: ''
    returnType: int
    signature: int ssl_sock_generate_certificate(const char *servername, struct bind_conf
      *bind_conf, SSL *ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_gencert.c:415,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/ssl_gencert.c:417,1
    - Dst: ssl_sock_generated_cert_key
      Src: /src/haproxy/src/ssl_gencert.c:418,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/ssl_gencert.c:418,1
    - Dst: ssl_sock_assign_generated_cert
      Src: /src/haproxy/src/ssl_gencert.c:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bind_conf
    - ssl
    argTypes:
    - struct bind_conf*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 423
    functionName: ssl_sock_generate_certificate_from_conn
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 1
    functionsReached:
    - get_addr_len
    - ssl_sock_assign_generated_cert
    - ssl_sock_generated_cert_key
    - conn_get_dst
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: int ssl_sock_generate_certificate_from_conn(struct bind_conf *bind_conf,
      SSL *ssl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lru64_new
      Src: /src/haproxy/src/ssl_gencert.c:439,1
    - Dst: time
      Src: /src/haproxy/src/ssl_gencert.c:441,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_gencert.c:446,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_gencert.c:453,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_gencert.c:455,1
    - Dst: ssl_sock_load_files_into_ckch
      Src: /src/haproxy/src/ssl_gencert.c:461,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_gencert.c:462,1
    - Dst: free
      Src: /src/haproxy/src/ssl_gencert.c:464,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_gencert.c:470,1
    - Dst: ssl_sock_free_cert_key_and_chain_contents
      Src: /src/haproxy/src/ssl_gencert.c:481,1
    - Dst: free
      Src: /src/haproxy/src/ssl_gencert.c:482,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 488
    functionName: ssl_sock_gencert_load_ca
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 2
    functionsReached:
    - lru64_new
    - calloc
    - ssl_sock_load_files_into_ckch
    - time
    - free
    - ha_alert
    - ssl_sock_free_cert_key_and_chain_contents
    linkageType: ''
    returnType: int
    signature: int ssl_sock_gencert_load_ca(struct bind_conf *bind_conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_free_cert_key_and_chain_contents
      Src: /src/haproxy/src/ssl_gencert.c:495,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_gencert.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 498
    functionName: ssl_sock_gencert_free_ca
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 2
    functionsReached:
    - ha_free
    - ssl_sock_free_cert_key_and_chain_contents
    linkageType: ''
    returnType: void
    signature: void ssl_sock_gencert_free_ca(struct bind_conf *bind_conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lru64_destroy
      Src: /src/haproxy/src/ssl_gencert.c:507,1
    - Dst: HA_RWLOCK_DESTROY
      Src: /src/haproxy/src/ssl_gencert.c:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 511
    functionName: __ssl_gencert_deinit
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_DESTROY
    - lru64_destroy
    linkageType: ''
    returnType: void
    signature: void __ssl_gencert_deinit(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/haproxy/src/ssl_gencert.c:520,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_gencert.c:521,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/haproxy/src/ssl_gencert.c:525,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_gencert.c:526,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/haproxy/src/ssl_gencert.c:531,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_gencert.c:532,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/haproxy/src/ssl_gencert.c:536,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_gencert.c:537,1
    - Dst: EVP_PKEY_keygen
      Src: /src/haproxy/src/ssl_gencert.c:542,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_gencert.c:543,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/ssl_gencert.c:548,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 4
    argNames:
    - keytype
    - curves
    - bits
    - errmsg
    argTypes:
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 514
    functionDepth: 5
    functionLinenumber: 514
    functionLinenumberEnd: 550
    functionName: ssl_gen_EVP_PKEY
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 3
    functionsReached:
    - memprintf
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_keygen
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *ssl_gen_EVP_PKEY(int keytype, int curves, int bits, char
      **errmsg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/haproxy/src/ssl_gencert.c:564,1
    - Dst: X509_set_version
      Src: /src/haproxy/src/ssl_gencert.c:569,1
    - Dst: X509_gmtime_adj
      Src: /src/haproxy/src/ssl_gencert.c:573,1
    - Dst: X509_getm_notBefore
      Src: /src/haproxy/src/ssl_gencert.c:573,1
    - Dst: X509_gmtime_adj
      Src: /src/haproxy/src/ssl_gencert.c:574,1
    - Dst: X509_getm_notAfter
      Src: /src/haproxy/src/ssl_gencert.c:574,1
    - Dst: X509_set_pubkey
      Src: /src/haproxy/src/ssl_gencert.c:578,1
    - Dst: X509_NAME_new
      Src: /src/haproxy/src/ssl_gencert.c:581,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/haproxy/src/ssl_gencert.c:585,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_gencert.c:587,1
    - Dst: X509_set_subject_name
      Src: /src/haproxy/src/ssl_gencert.c:590,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_gencert.c:591,1
    - Dst: X509_set_issuer_name
      Src: /src/haproxy/src/ssl_gencert.c:595,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_gencert.c:596,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_gencert.c:599,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_gencert.c:602,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/ssl_gencert.c:605,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/ssl_gencert.c:607,1
    - Dst: X509_sign
      Src: /src/haproxy/src/ssl_gencert.c:611,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_gencert.c:617,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 620
    functionName: ssl_gen_x509
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 1
    functionsReached:
    - X509_set_pubkey
    - X509_free
    - X509_getm_notBefore
    - X509_gmtime_adj
    - X509_NAME_new
    - X509_NAME_add_entry_by_txt
    - X509_getm_notAfter
    - X509_new
    - X509_set_issuer_name
    - X509_set_version
    - X509_NAME_free
    - X509_sign
    - X509_set_subject_name
    - EVP_PKEY_base_id
    - EVP_sha256
    linkageType: ''
    returnType: X509
    signature: X509 *ssl_gen_x509(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: round_ptr_size
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: round_ptr_size(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cebis_item_insert
      Src: /src/haproxy/src/stick_table.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct stktable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: stktable_store_name
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - cebis_item_insert
    linkageType: ''
    returnType: void
    signature: void stktable_store_name(struct stktable *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cebis_item_lookup
      Src: /src/haproxy/src/stick_table.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: stktable_find_by_name
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 5
    functionsReached:
    - cebis_item_lookup
    linkageType: ''
    returnType: struct stktable
    signature: struct stktable *stktable_find_by_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:93,1
    - Dst: pool_free
      Src: /src/haproxy/src/stick_table.c:94,1
    - Dst: round_ptr_size
      Src: /src/haproxy/src/stick_table.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: __stksess_free
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - pool_free
    - round_ptr_size
    - HA_ATOMIC_DEC
    linkageType: ''
    returnType: void
    signature: void __stksess_free(struct stktable *t, struct stksess *ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:106,1
    - Dst: dict_entry_unref
      Src: /src/haproxy/src/stick_table.c:108,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:108,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:109,1
    - Dst: __stksess_free
      Src: /src/haproxy/src/stick_table.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: stksess_free
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 2
    functionsReached:
    - __stksess_free
    - stktable_data_ptr
    - stktable_data_cast
    - dict_entry_unref
    linkageType: ''
    returnType: void
    signature: void stksess_free(struct stktable *t, struct stksess *ts)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:124,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/stick_table.c:128,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:131,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:137,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:138,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:141,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:142,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/stick_table.c:143,1
    - Dst: __stksess_free
      Src: /src/haproxy/src/stick_table.c:144,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: __stksess_kill
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - __stksess_free
    - HA_ATOMIC_LOAD
    - HA_RWLOCK_WRUNLOCK
    - eb32_delete
    - HA_RWLOCK_WRLOCK
    - ebmb_delete
    linkageType: ''
    returnType: int
    signature: int __stksess_kill(struct stktable *t, struct stksess *ts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:168,1
    - Dst: stktable_calc_bucket_num
      Src: /src/haproxy/src/stick_table.c:172,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/stick_table.c:175,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:177,1
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/stick_table.c:178,1
    - Dst: __stksess_kill
      Src: /src/haproxy/src/stick_table.c:179,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 183
    functionName: stksess_kill
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_SUB_FETCH
    - ALREADY_CHECKED
    - HA_RWLOCK_WRUNLOCK
    - stktable_calc_bucket_num
    - HA_RWLOCK_WRLOCK
    - __stksess_kill
    - strlen
    linkageType: ''
    returnType: int
    signature: int stksess_kill(struct stktable *t, struct stksess *ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/stick_table.c:192,1
    - Dst: memcpy
      Src: /src/haproxy/src/stick_table.c:194,1
    - Dst: MIN
      Src: /src/haproxy/src/stick_table.c:194,1
    - Dst: MIN
      Src: /src/haproxy/src/stick_table.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - t
    - ts
    - key
    argTypes:
    - struct stktable*
    - struct stksess*
    - struct stktable_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: stksess_setkey
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - MIN
    - memcpy
    linkageType: ''
    returnType: void
    signature: void stksess_setkey(struct stktable *t, struct stksess *ts, struct
      stktable_key *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strnlen2
      Src: /src/haproxy/src/stick_table.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 216
    functionName: stksess_getkey
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - strnlen2
    linkageType: ''
    returnType: struct stktable_key
    signature: struct stktable_key *stksess_getkey(struct stktable *t, struct stksess
      *ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH64
      Src: /src/haproxy/src/stick_table.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - t
    - key
    - len
    argTypes:
    - struct stktable*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: stktable_get_key_shard
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - XXH64
    linkageType: ''
    returnType: int
    signature: int stktable_get_key_shard(struct stktable *t, const void *key, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stktable_get_key_shard
      Src: /src/haproxy/src/stick_table.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - t
    - ts
    - key
    argTypes:
    - struct stktable*
    - struct stksess*
    - struct stktable_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: stksess_setkey_shard
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stktable_get_key_shard
    linkageType: ''
    returnType: void
    signature: "void stksess_setkey_shard(struct stktable *t, struct stksess *ts,\n
      \                                struct stktable_key *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/stick_table.c:256,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/stick_table.c:263,1
    - Dst: tick_add
      Src: /src/haproxy/src/stick_table.c:264,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stick_table.c:264,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/stick_table.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 267
    functionName: __stksess_init
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - memset
    - MS_TO_TICKS
    - MT_LIST_INIT
    - tick_add
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *__stksess_init(struct stktable *t, struct stksess *
      ts)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/stick_table.c:292,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/stick_table.c:293,1
    - Dst: HA_RWLOCK_TRYWRLOCK
      Src: /src/haproxy/src/stick_table.c:304,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:310,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/stick_table.c:313,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:315,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:324,1
    - Dst: likely
      Src: /src/haproxy/src/stick_table.c:325,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/stick_table.c:333,1
    - Dst: eb32_next
      Src: /src/haproxy/src/stick_table.c:334,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:340,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:342,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:344,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:352,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:363,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:365,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:382,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:387,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/stick_table.c:391,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/stick_table.c:392,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:393,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stick_table.c:394,1
    - Dst: mt_list_to_list
      Src: /src/haproxy/src/stick_table.c:394,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:405,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:407,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/stick_table.c:422,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/stick_table.c:423,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stick_table.c:424,1
    - Dst: mt_list_to_list
      Src: /src/haproxy/src/stick_table.c:424,1
    - Dst: __stksess_free
      Src: /src/haproxy/src/stick_table.c:425,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 82
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct stktable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 429
    functionName: stktable_trash_oldest
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HA_ATOMIC_LOAD
    - HA_RWLOCK_WRUNLOCK
    - eb32_next
    - likely
    - LIST_APPEND
    - LIST_INIT
    - eb32_insert
    - LIST_ELEM
    - statistical_prng_range
    - __stksess_free
    - tick_is_lt
    - eb32_lookup_ge
    - HA_RWLOCK_TRYWRLOCK
    - MT_LIST_DELETE
    - eb32_entry
    - HA_RWLOCK_WRLOCK
    - ebmb_delete
    - LIST_DELETE
    - eb32_delete
    - LIST_ISEMPTY
    - tick_isset
    - eb32_first
    - mt_list_to_list
    linkageType: ''
    returnType: int
    signature: int stktable_trash_oldest(struct stktable *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/stick_table.c:444,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:446,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:449,1
    - Dst: stktable_trash_oldest
      Src: /src/haproxy/src/stick_table.c:452,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:456,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/stick_table.c:461,1
    - Dst: round_ptr_size
      Src: /src/haproxy/src/stick_table.c:463,1
    - Dst: __stksess_init
      Src: /src/haproxy/src/stick_table.c:464,1
    - Dst: stksess_setkey
      Src: /src/haproxy/src/stick_table.c:466,1
    - Dst: stksess_setkey_shard
      Src: /src/haproxy/src/stick_table.c:467,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - t
    - key
    argTypes:
    - struct stktable*
    - struct stktable_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 473
    functionName: stksess_new
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - unlikely
    - pool_alloc
    - stksess_setkey_shard
    - round_ptr_size
    - HA_ATOMIC_DEC
    - HA_ATOMIC_FETCH_ADD
    - stksess_setkey
    - stktable_trash_oldest
    - __stksess_init
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *stksess_new(struct stktable *t, struct stktable_key
      *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebst_lookup_len
      Src: /src/haproxy/src/stick_table.c:484,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/stick_table.c:486,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:488,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - t
    - key
    - bucket
    argTypes:
    - struct stktable*
    - struct stktable_key*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 494
    functionName: __stktable_lookup_key
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ebst_lookup_len
    - ebmb_lookup
    - ebmb_entry
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *__stktable_lookup_key(struct stktable *t, struct stktable_key
      *key, uint bucket)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stktable_calc_bucket_num
      Src: /src/haproxy/src/stick_table.c:513,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:515,1
    - Dst: __stktable_lookup_key
      Src: /src/haproxy/src/stick_table.c:516,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:518,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - t
    - key
    argTypes:
    - struct stktable*
    - struct stktable_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 522
    functionName: stktable_lookup_key
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 2
    functionsReached:
    - HA_RWLOCK_RDLOCK
    - stktable_calc_bucket_num
    - __stktable_lookup_key
    - HA_ATOMIC_INC
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *stktable_lookup_key(struct stktable *t, struct stktable_key
      *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:537,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/stick_table.c:542,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:546,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/stick_table.c:551,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:554,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - t
    - ptr
    argTypes:
    - struct stktable*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 561
    functionName: stktable_lookup_ptr
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDUNLOCK
    - ebmb_entry
    - ebmb_next
    - ebmb_first
    - HA_ATOMIC_INC
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *stktable_lookup_ptr(struct stktable *t, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebst_lookup
      Src: /src/haproxy/src/stick_table.c:575,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/stick_table.c:577,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:579,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - t
    - ts
    - bucket
    argTypes:
    - struct stktable*
    - struct stksess*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 583
    functionName: __stktable_lookup
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ebst_lookup
    - ebmb_lookup
    - ebmb_entry
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *__stktable_lookup(struct stktable *t, struct stksess
      *ts, uint bucket)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:601,1
    - Dst: stktable_calc_bucket_num
      Src: /src/haproxy/src/stick_table.c:605,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:607,1
    - Dst: __stktable_lookup
      Src: /src/haproxy/src/stick_table.c:608,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:610,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 594
    functionDepth: 3
    functionLinenumber: 594
    functionLinenumberEnd: 614
    functionName: stktable_lookup
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_RDUNLOCK
    - stktable_calc_bucket_num
    - strlen
    - HA_ATOMIC_INC
    - __stktable_lookup
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *stktable_lookup(struct stktable *t, struct stksess
      *ts)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:627,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/stick_table.c:629,1
    - Dst: stktable_requeue_exp
      Src: /src/haproxy/src/stick_table.c:630,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:639,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/stick_table.c:640,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/src/stick_table.c:641,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/stick_table.c:646,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/src/stick_table.c:647,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/stick_table.c:654,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:657,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - t
    - ts
    - local
    - expire
    - decrefcnt
    argTypes:
    - struct stktable*
    - struct stksess*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 658
    functionName: stktable_touch_with_exp
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - HA_ATOMIC_LOAD
    - _HA_ATOMIC_LOAD
    - tasklet_wakeup
    - _HA_ATOMIC_STORE
    - HA_ATOMIC_DEC
    - stktable_requeue_exp
    - MT_LIST_TRY_APPEND
    linkageType: ''
    returnType: void
    signature: void stktable_touch_with_exp(struct stktable *t, struct stksess *ts,
      int local, int expire, int decrefcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stktable_touch_with_exp
      Src: /src/haproxy/src/stick_table.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - ts
    - decrefcnt
    argTypes:
    - struct stktable*
    - struct stksess*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 669
    functionName: stktable_touch_remote
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stktable_touch_with_exp
    linkageType: ''
    returnType: void
    signature: void stktable_touch_remote(struct stktable *t, struct stksess *ts,
      int decrefcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tick_add
      Src: /src/haproxy/src/stick_table.c:679,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stick_table.c:679,1
    - Dst: stktable_touch_with_exp
      Src: /src/haproxy/src/stick_table.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - ts
    - decrefcnt
    argTypes:
    - struct stktable*
    - struct stksess*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 682
    functionName: stktable_touch_local
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stktable_touch_with_exp
    - MS_TO_TICKS
    - tick_add
    linkageType: ''
    returnType: void
    signature: void stktable_touch_local(struct stktable *t, struct stksess *ts, int
      decrefcnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 693
    functionName: stktable_release
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_DEC
    linkageType: ''
    returnType: void
    signature: void stktable_release(struct stktable *t, struct stksess *ts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebst_insert
      Src: /src/haproxy/src/stick_table.c:705,1
    - Dst: ebmb_insert
      Src: /src/haproxy/src/stick_table.c:707,1
    - Dst: likely
      Src: /src/haproxy/src/stick_table.c:708,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:710,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - t
    - ts
    - bucket
    argTypes:
    - struct stktable*
    - struct stksess*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 713
    functionName: __stktable_store
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - eb32_insert
    - ebmb_entry
    - ebst_insert
    - ebmb_insert
    - likely
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *__stktable_store(struct stktable *t, struct stksess
      *ts, uint bucket)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:728,1
    - Dst: stktable_calc_bucket_num
      Src: /src/haproxy/src/stick_table.c:732,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:735,1
    - Dst: tick_first
      Src: /src/haproxy/src/stick_table.c:736,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stick_table.c:742,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stick_table.c:746,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/stick_table.c:749,1
    - Dst: tick_first
      Src: /src/haproxy/src/stick_table.c:750,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:754,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:760,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:760,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/src/stick_table.c:763,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stick_table.c:765,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 767
    functionName: stktable_requeue_exp
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_LOAD
    - tick_is_lt
    - stktable_calc_bucket_num
    - task_wakeup
    - tick_first
    - __ha_cpu_relax
    - tick_isset
    - HA_ATOMIC_CAS
    - MT_LIST_TRY_APPEND
    - strlen
    linkageType: ''
    returnType: void
    signature: void stktable_requeue_exp(struct stktable *t, const struct stksess
      *ts)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stktable_calc_bucket_num
      Src: /src/haproxy/src/stick_table.c:788,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:790,1
    - Dst: __stktable_lookup_key
      Src: /src/haproxy/src/stick_table.c:791,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:793,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:794,1
    - Dst: stksess_new
      Src: /src/haproxy/src/stick_table.c:802,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:814,1
    - Dst: __stktable_store
      Src: /src/haproxy/src/stick_table.c:816,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:818,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:819,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:821,1
    - Dst: __stksess_free
      Src: /src/haproxy/src/stick_table.c:825,1
    - Dst: stktable_requeue_exp
      Src: /src/haproxy/src/stick_table.c:829,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - table
    - key
    argTypes:
    - struct stktable*
    - struct stktable_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 774
    functionDepth: 4
    functionLinenumber: 774
    functionLinenumberEnd: 831
    functionName: stktable_get_entry
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 2
    functionsReached:
    - unlikely
    - HA_RWLOCK_RDLOCK
    - __stksess_free
    - HA_RWLOCK_WRUNLOCK
    - stktable_calc_bucket_num
    - __stktable_store
    - stksess_new
    - stktable_requeue_exp
    - __stktable_lookup_key
    - HA_RWLOCK_WRLOCK
    - HA_ATOMIC_INC
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *stktable_get_entry(struct stktable *table, struct stktable_key
      *key)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_TRYWRLOCK
      Src: /src/haproxy/src/stick_table.c:840,1
    - Dst: MT_LIST_POP_LOCKED
      Src: /src/haproxy/src/stick_table.c:844,1
    - Dst: typeof
      Src: /src/haproxy/src/stick_table.c:844,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:865,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:875,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:876,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:878,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:879,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/stick_table.c:887,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:890,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/stick_table.c:895,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stick_table.c:899,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 902
    functionName: stktable_add_pend_updates
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_TRYWRLOCK
    - eb32_insert
    - typeof
    - HA_RWLOCK_WRUNLOCK
    - task_wakeup
    - eb32_delete
    - tasklet_wakeup
    - MT_LIST_INIT
    - MT_LIST_POP_LOCKED
    linkageType: ''
    returnType: struct task
    signature: struct task *stktable_add_pend_updates(struct task *t, void *ctx, unsigned
      int state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:915,1
    - Dst: stktable_calc_bucket_num
      Src: /src/haproxy/src/stick_table.c:919,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:921,1
    - Dst: __stktable_lookup
      Src: /src/haproxy/src/stick_table.c:922,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:924,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:925,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:930,1
    - Dst: HA_RWLOCK_TRYRDTOSK
      Src: /src/haproxy/src/stick_table.c:932,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:934,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:935,1
    - Dst: HA_RWLOCK_SKTOWR
      Src: /src/haproxy/src/stick_table.c:938,1
    - Dst: __stktable_store
      Src: /src/haproxy/src/stick_table.c:942,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:944,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:945,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:947,1
    - Dst: stktable_requeue_exp
      Src: /src/haproxy/src/stick_table.c:950,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - table
    - nts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 908
    functionDepth: 3
    functionLinenumber: 908
    functionLinenumberEnd: 952
    functionName: stktable_set_entry
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_RDUNLOCK
    - stktable_calc_bucket_num
    - HA_RWLOCK_TRYRDTOSK
    - __stktable_store
    - HA_ATOMIC_DEC
    - HA_RWLOCK_SKTOWR
    - stktable_requeue_exp
    - strlen
    - HA_RWLOCK_WRLOCK
    - HA_ATOMIC_INC
    - __stktable_lookup
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *stktable_set_entry(struct stktable *table, struct stksess
      *nts)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/stick_table.c:972,1
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/stick_table.c:981,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:982,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:986,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:987,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:990,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:992,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/stick_table.c:994,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:996,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/stick_table.c:1002,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:1005,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1009,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:1009,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:1013,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/stick_table.c:1015,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:1018,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:1024,1
    - Dst: likely
      Src: /src/haproxy/src/stick_table.c:1025,1
    - Dst: likely
      Src: /src/haproxy/src/stick_table.c:1029,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:1029,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1031,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:1031,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/stick_table.c:1040,1
    - Dst: eb32_next
      Src: /src/haproxy/src/stick_table.c:1041,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:1047,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:1049,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stick_table.c:1055,1
    - Dst: tick_add
      Src: /src/haproxy/src/stick_table.c:1056,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stick_table.c:1056,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stick_table.c:1059,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1060,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:1064,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:1075,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:1077,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:1090,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:1095,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/stick_table.c:1099,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/stick_table.c:1100,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:1101,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stick_table.c:1102,1
    - Dst: mt_list_to_list
      Src: /src/haproxy/src/stick_table.c:1102,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:1106,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/stick_table.c:1112,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:1114,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1121,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1121,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:1121,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:1123,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/stick_table.c:1125,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/stick_table.c:1126,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stick_table.c:1127,1
    - Dst: mt_list_to_list
      Src: /src/haproxy/src/stick_table.c:1127,1
    - Dst: __stksess_free
      Src: /src/haproxy/src/stick_table.c:1128,1
    - Dst: eb32_next
      Src: /src/haproxy/src/stick_table.c:1131,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:1138,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stick_table.c:1140,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:1146,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:1149,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1154,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/stick_table.c:1154,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stick_table.c:1158,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 104
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 1166
    functionName: process_tables_expire
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HA_ATOMIC_LOAD
    - HA_RWLOCK_WRUNLOCK
    - eb32_next
    - likely
    - LIST_APPEND
    - LIST_INIT
    - eb32_insert
    - LIST_ELEM
    - __stksess_free
    - MT_LIST_POP
    - tick_is_lt
    - eb32_lookup_ge
    - tick_is_expired
    - HA_ATOMIC_CAS
    - tick_add
    - MT_LIST_DELETE
    - MS_TO_TICKS
    - tick_is_le
    - eb32_entry
    - HA_RWLOCK_WRLOCK
    - ebmb_delete
    - LIST_DELETE
    - task_wakeup
    - eb32_delete
    - LIST_ISEMPTY
    - tick_isset
    - eb32_first
    - mt_list_to_list
    linkageType: ''
    returnType: struct task
    signature: struct task *process_tables_expire(struct task *task, void *context,
      unsigned int state)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: XXH64
      Src: /src/haproxy/src/stick_table.c:1180,1
    - Dst: memset
      Src: /src/haproxy/src/stick_table.c:1185,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/stick_table.c:1186,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/stick_table.c:1187,1
    - Dst: create_pool
      Src: /src/haproxy/src/stick_table.c:1192,1
    - Dst: round_ptr_size
      Src: /src/haproxy/src/stick_table.c:1192,1
    - Dst: peers_register_table
      Src: /src/haproxy/src/stick_table.c:1195,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/stick_table.c:1205,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:1207,1
    - Dst: ha_free
      Src: /src/haproxy/src/stick_table.c:1208,1
    - Dst: ha_free
      Src: /src/haproxy/src/stick_table.c:1211,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:1213,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:1217,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:1223,1
    - Dst: calloc
      Src: /src/haproxy/src/stick_table.c:1231,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/stick_table.c:1235,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/stick_table.c:1236,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:1244,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 2
    argNames:
    - t
    - err_msg
    argTypes:
    - struct stktable*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1174
    functionDepth: 5
    functionLinenumber: 1174
    functionLinenumberEnd: 1246
    functionName: stktable_init
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - memprintf
    - HA_RWLOCK_INIT
    - memset
    - ha_free
    - calloc
    - peers_register_table
    - stktable_find_by_name
    - round_ptr_size
    - MT_LIST_INIT
    - tasklet_new
    - XXH64
    - create_pool
    linkageType: ''
    returnType: int
    signature: int stktable_init(struct stktable *t, char **err_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/stick_table.c:1261,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:1262,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/stick_table.c:1263,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/stick_table.c:1264,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/stick_table.c:1266,1
    - Dst: ha_free
      Src: /src/haproxy/src/stick_table.c:1267,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/stick_table.c:1268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct stktable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1269
    functionName: stktable_deinit
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - MT_LIST_DELETE
    - ha_free
    - eb32_delete
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - pool_destroy
    - tasklet_free
    linkageType: ''
    returnType: void
    signature: void stktable_deinit(struct stktable *t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1292,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1298,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1305,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:1309,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1311,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1323,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 6
    argNames:
    - args
    - myidx
    - type
    - key_size
    - file
    - linenum
    argTypes:
    - char**
    - int*
    - unsigned long*
    - size_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1325
    functionName: stktable_parse_type
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - ha_alert
    - strcmp
    - strtol
    linkageType: ''
    returnType: int
    signature: int stktable_parse_type(char **args, int *myidx, unsigned long *type,
      size_t *key_size, const char *file, int linenum)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/haproxy/src/stick_table.c:1352,1
    - Dst: atoi
      Src: /src/haproxy/src/stick_table.c:1366,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/stick_table.c:1371,1
    - Dst: stktable_type_size
      Src: /src/haproxy/src/stick_table.c:1377,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - t
    - type
    - sa
    - sa2
    argTypes:
    - struct stktable*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1380
    functionName: stktable_alloc_data_type
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - atoi
    - stktable_type_size
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: int stktable_alloc_data_type(struct stktable *t, int type, const char
      *sa, const char *sa2)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1401,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:1413,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/stick_table.c:1416,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1424,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1427,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/stick_table.c:1432,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1433,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1441,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1444,1
    - Dst: ha_free
      Src: /src/haproxy/src/stick_table.c:1449,1
    - Dst: strdup
      Src: /src/haproxy/src/stick_table.c:1450,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1452,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1455,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/stick_table.c:1460,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1462,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1468,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1474,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1482,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1486,1
    - Dst: stktable_parse_type
      Src: /src/haproxy/src/stick_table.c:1488,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1494,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1511,1
    - Dst: stktable_get_data_type
      Src: /src/haproxy/src/stick_table.c:1528,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1530,1
    - Dst: stktable_alloc_data_type
      Src: /src/haproxy/src/stick_table.c:1536,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stick_table.c:1540,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1546,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1552,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1557,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1563,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1571,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1577,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1583,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1589,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1593,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1596,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1600,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1608,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1612,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1618,1
    - Dst: ha_free
      Src: /src/haproxy/src/stick_table.c:1624,1
    - Dst: strdup
      Src: /src/haproxy/src/stick_table.c:1625,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1628,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1631,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/stick_table.c:1636,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1637,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1643,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1651,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1659,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1666,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 252
    argCount: 7
    argNames:
    - file
    - linenum
    - args
    - t
    - id
    - nid
    - peers
    argTypes:
    - char*
    - int
    - char**
    - struct stktable*
    - char*
    - char*
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1393
    functionDepth: 4
    functionLinenumber: 1393
    functionLinenumberEnd: 1674
    functionName: parse_stick_table
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stktable_get_data_type
    - parse_size_err
    - ha_warning
    - ha_free
    - strcmp
    - stktable_parse_type
    - copy_file_name
    - stktable_alloc_data_type
    - ha_alert
    - parse_time_err
    - strdup
    - strlen
    linkageType: ''
    returnType: int
    signature: "int parse_stick_table(const char *file, int linenum, char **args,\n
      \                     struct stktable *t, char *id, char *nid, struct peers
      *peers)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sample_convert
      Src: /src/haproxy/src/stick_table.c:1686,1
    - Dst: smp_make_safe
      Src: /src/haproxy/src/stick_table.c:1722,1
    - Dst: smp_make_rw
      Src: /src/haproxy/src/stick_table.c:1731,1
    - Dst: smp_dup
      Src: /src/haproxy/src/stick_table.c:1735,1
    - Dst: memset
      Src: /src/haproxy/src/stick_table.c:1739,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - smp
    - t
    argTypes:
    - struct sample*
    - struct stktable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1683
    functionDepth: 4
    functionLinenumber: 1683
    functionLinenumberEnd: 1752
    functionName: smp_to_stkey
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - memset
    - smp_make_safe
    - smp_make_rw
    - sample_convert
    - smp_dup
    linkageType: ''
    returnType: struct stktable_key
    signature: struct stktable_key *smp_to_stkey(struct sample *smp, struct stktable
      *t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/stick_table.c:1768,1
    - Dst: memcpy
      Src: /src/haproxy/src/stick_table.c:1771,1
    - Dst: smp_make_safe
      Src: /src/haproxy/src/stick_table.c:1786,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - smp
    - key
    - key_type
    argTypes:
    - struct sample*
    - struct stktable_key*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1760
    functionDepth: 1
    functionLinenumber: 1760
    functionLinenumberEnd: 1795
    functionName: stkey_to_smp
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_make_safe
    - memcpy
    linkageType: ''
    returnType: int
    signature: int stkey_to_smp(struct sample *smp, struct stktable_key *key, int
      key_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/stick_table.c:1818,1
    - Dst: sample_process
      Src: /src/haproxy/src/stick_table.c:1820,1
    - Dst: smp_to_stkey
      Src: /src/haproxy/src/stick_table.c:1827,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 7
    argNames:
    - t
    - px
    - sess
    - strm
    - opt
    - expr
    - smp
    argTypes:
    - struct stktable*
    - struct proxy*
    - struct session*
    - struct stream*
    - unsigned int
    - struct sample_expr*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1814
    functionDepth: 5
    functionLinenumber: 1814
    functionLinenumberEnd: 1828
    functionName: stktable_fetch_key
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - sample_process
    - memset
    - smp_to_stkey
    linkageType: ''
    returnType: struct stktable_key
    signature: "struct stktable_key *stktable_fetch_key(struct stktable *t, struct
      proxy *px, struct session *sess, struct stream *strm,\n                                        unsigned
      int opt, struct sample_expr *expr, struct sample *smp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_expr_output_type
      Src: /src/haproxy/src/stick_table.c:1841,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - expr
    - table_type
    argTypes:
    - struct sample_expr*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1834
    functionDepth: 2
    functionLinenumber: 1834
    functionLinenumberEnd: 1848
    functionName: stktable_compatible_sample
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 2
    functionsReached:
    - smp_expr_output_type
    linkageType: ''
    returnType: int
    signature: int stktable_compatible_sample(struct sample_expr *expr, unsigned long
      table_type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1897,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - idx
    - name
    - std_type
    - arg_type
    argTypes:
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1912
    functionName: stktable_register_data_store
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int stktable_register_data_store(int idx, const char *name, int std_type,
      int arg_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1925,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1929,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1918
    functionDepth: 0
    functionLinenumber: 1918
    functionLinenumberEnd: 1932
    functionName: stktable_get_data_type
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int stktable_get_data_type(char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/haproxy/src/stick_table.c:1944,1
    - Dst: stktable_get_data_type
      Src: /src/haproxy/src/stick_table.c:1949,1
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:1958,1
    - Dst: strtoul
      Src: /src/haproxy/src/stick_table.c:1963,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - name
    - idx
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1941
    functionDepth: 1
    functionLinenumber: 1941
    functionLinenumberEnd: 1973
    functionName: stktable_get_data_type_idx
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - strcspn
    - strncmp
    - strtoul
    - stktable_get_data_type
    linkageType: ''
    returnType: int
    signature: int stktable_get_data_type_idx(char *name, unsigned int *idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_to_stkey
      Src: /src/haproxy/src/stick_table.c:1985,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/stick_table.c:1990,1
    - Dst: stktable_lookup_key
      Src: /src/haproxy/src/stick_table.c:1991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - table
    - smp
    - create
    argTypes:
    - struct stktable*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1980
    functionDepth: 5
    functionLinenumber: 1980
    functionLinenumberEnd: 1992
    functionName: smp_fetch_stksess
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stktable_lookup_key
    - stktable_get_entry
    - smp_to_stkey
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *smp_fetch_stksess(struct stktable *table, struct sample
      *smp, int create)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2008,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 2001
    functionDepth: 6
    functionLinenumber: 2001
    functionLinenumberEnd: 2015
    functionName: sample_conv_in_table
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stktable_release
    linkageType: ''
    returnType: int
    signature: int sample_conv_in_table(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2029,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2029,1
    - Dst: smp_fetch_bytes_in_rate
      Src: /src/haproxy/src/stick_table.c:2031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2024
    functionDepth: 6
    functionLinenumber: 2024
    functionLinenumberEnd: 2032
    functionName: sample_conv_table_bytes_in_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_bytes_in_rate
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_bytes_in_rate(const struct arg *arg_p, struct
      sample *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2046,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2046,1
    - Dst: smp_fetch_bytes_out_rate
      Src: /src/haproxy/src/stick_table.c:2048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2041
    functionDepth: 6
    functionLinenumber: 2041
    functionLinenumberEnd: 2049
    functionName: sample_conv_table_bytes_out_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_bytes_out_rate
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_bytes_out_rate(const struct arg *arg_p, struct
      sample *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2065,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2065,1
    - Dst: smp_fetch_clr_gpc
      Src: /src/haproxy/src/stick_table.c:2067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2058
    functionDepth: 6
    functionLinenumber: 2058
    functionLinenumberEnd: 2068
    functionName: sample_conv_table_clr_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_clr_gpc
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_clr_gpc(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2082,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2082,1
    - Dst: smp_fetch_clr_gpc0
      Src: /src/haproxy/src/stick_table.c:2084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2077
    functionDepth: 6
    functionLinenumber: 2077
    functionLinenumberEnd: 2085
    functionName: sample_conv_table_clr_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_clr_gpc0
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_clr_gpc0(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2099,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2099,1
    - Dst: smp_fetch_clr_gpc1
      Src: /src/haproxy/src/stick_table.c:2101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2094
    functionDepth: 6
    functionLinenumber: 2094
    functionLinenumberEnd: 2102
    functionName: sample_conv_table_clr_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_clr_gpc1
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_clr_gpc1(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2116,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2116,1
    - Dst: smp_fetch_conn_cnt
      Src: /src/haproxy/src/stick_table.c:2118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2111
    functionDepth: 6
    functionLinenumber: 2111
    functionLinenumberEnd: 2119
    functionName: sample_conv_table_conn_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_conn_cnt
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_conn_cnt(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2133,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2133,1
    - Dst: smp_fetch_conn_cur
      Src: /src/haproxy/src/stick_table.c:2135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2128
    functionDepth: 6
    functionLinenumber: 2128
    functionLinenumberEnd: 2136
    functionName: sample_conv_table_conn_cur
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_conn_cur
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_conn_cur(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2150,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2150,1
    - Dst: smp_fetch_conn_rate
      Src: /src/haproxy/src/stick_table.c:2152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2145
    functionDepth: 6
    functionLinenumber: 2145
    functionLinenumberEnd: 2153
    functionName: sample_conv_table_conn_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_conn_rate
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_conn_rate(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2167,1
    - Dst: tick_remain
      Src: /src/haproxy/src/stick_table.c:2182,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:2184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2160
    functionDepth: 6
    functionLinenumber: 2160
    functionLinenumberEnd: 2186
    functionName: sample_conv_table_expire
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stktable_release
    - smp_fetch_stksess
    - tick_remain
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_expire(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2200,1
    - Dst: tick_remain
      Src: /src/haproxy/src/stick_table.c:2215,1
    - Dst: tick_remain
      Src: /src/haproxy/src/stick_table.c:2215,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:2217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2193
    functionDepth: 6
    functionLinenumber: 2193
    functionLinenumberEnd: 2219
    functionName: sample_conv_table_idle
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stktable_release
    - smp_fetch_stksess
    - tick_remain
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_idle(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2234,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2234,1
    - Dst: smp_fetch_inc_gpc
      Src: /src/haproxy/src/stick_table.c:2236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2227
    functionDepth: 6
    functionLinenumber: 2227
    functionLinenumberEnd: 2237
    functionName: sample_conv_table_inc_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_inc_gpc
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_inc_gpc(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2251,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2251,1
    - Dst: smp_fetch_inc_gpc0
      Src: /src/haproxy/src/stick_table.c:2253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2246
    functionDepth: 6
    functionLinenumber: 2246
    functionLinenumberEnd: 2254
    functionName: sample_conv_table_inc_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_inc_gpc0
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_inc_gpc0(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2268,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2268,1
    - Dst: smp_fetch_inc_gpc1
      Src: /src/haproxy/src/stick_table.c:2270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2263
    functionDepth: 6
    functionLinenumber: 2263
    functionLinenumberEnd: 2271
    functionName: sample_conv_table_inc_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_inc_gpc1
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_inc_gpc1(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2285,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2285,1
    - Dst: smp_fetch_glitch_cnt
      Src: /src/haproxy/src/stick_table.c:2287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2280
    functionDepth: 6
    functionLinenumber: 2280
    functionLinenumberEnd: 2288
    functionName: sample_conv_table_glitch_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_glitch_cnt
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_glitch_cnt(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2302,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2302,1
    - Dst: smp_fetch_glitch_rate
      Src: /src/haproxy/src/stick_table.c:2304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2297
    functionDepth: 6
    functionLinenumber: 2297
    functionLinenumberEnd: 2305
    functionName: sample_conv_table_glitch_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_glitch_rate
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_glitch_rate(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2321,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2321,1
    - Dst: smp_fetch_get_gpt
      Src: /src/haproxy/src/stick_table.c:2323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2314
    functionDepth: 6
    functionLinenumber: 2314
    functionLinenumberEnd: 2324
    functionName: sample_conv_table_gpt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_get_gpt
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_gpt(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2338,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2338,1
    - Dst: smp_fetch_get_gpt0
      Src: /src/haproxy/src/stick_table.c:2340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2333
    functionDepth: 6
    functionLinenumber: 2333
    functionLinenumberEnd: 2341
    functionName: sample_conv_table_gpt0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_get_gpt0
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_gpt0(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2357,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2357,1
    - Dst: smp_fetch_get_gpc
      Src: /src/haproxy/src/stick_table.c:2359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2350
    functionDepth: 6
    functionLinenumber: 2350
    functionLinenumberEnd: 2360
    functionName: sample_conv_table_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_get_gpc
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_gpc(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2376,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2376,1
    - Dst: smp_fetch_gpc_rate
      Src: /src/haproxy/src/stick_table.c:2378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2369
    functionDepth: 6
    functionLinenumber: 2369
    functionLinenumberEnd: 2379
    functionName: sample_conv_table_gpc_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_gpc_rate
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_gpc_rate(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2393,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2393,1
    - Dst: smp_fetch_get_gpc0
      Src: /src/haproxy/src/stick_table.c:2395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2388
    functionDepth: 6
    functionLinenumber: 2388
    functionLinenumberEnd: 2396
    functionName: sample_conv_table_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_get_gpc0
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_gpc0(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2410,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2410,1
    - Dst: smp_fetch_gpc0_rate
      Src: /src/haproxy/src/stick_table.c:2412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2405
    functionDepth: 6
    functionLinenumber: 2405
    functionLinenumberEnd: 2413
    functionName: sample_conv_table_gpc0_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_gpc0_rate
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_gpc0_rate(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2427,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2427,1
    - Dst: smp_fetch_get_gpc1
      Src: /src/haproxy/src/stick_table.c:2429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2422
    functionDepth: 6
    functionLinenumber: 2422
    functionLinenumberEnd: 2430
    functionName: sample_conv_table_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_get_gpc1
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_gpc1(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2444,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2444,1
    - Dst: smp_fetch_gpc1_rate
      Src: /src/haproxy/src/stick_table.c:2446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2439
    functionDepth: 6
    functionLinenumber: 2439
    functionLinenumberEnd: 2447
    functionName: sample_conv_table_gpc1_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_gpc1_rate
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_gpc1_rate(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2461,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2461,1
    - Dst: smp_fetch_http_err_cnt
      Src: /src/haproxy/src/stick_table.c:2463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2456
    functionDepth: 6
    functionLinenumber: 2456
    functionLinenumberEnd: 2464
    functionName: sample_conv_table_http_err_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_http_err_cnt
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_http_err_cnt(const struct arg *arg_p, struct
      sample *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2478,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2478,1
    - Dst: smp_fetch_http_err_rate
      Src: /src/haproxy/src/stick_table.c:2480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2481
      start: 2473
    functionDepth: 6
    functionLinenumber: 2473
    functionLinenumberEnd: 2481
    functionName: sample_conv_table_http_err_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_http_err_rate
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_http_err_rate(const struct arg *arg_p, struct
      sample *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2495,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2495,1
    - Dst: smp_fetch_http_fail_cnt
      Src: /src/haproxy/src/stick_table.c:2497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2490
    functionDepth: 6
    functionLinenumber: 2490
    functionLinenumberEnd: 2498
    functionName: sample_conv_table_http_fail_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_http_fail_cnt
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_http_fail_cnt(const struct arg *arg_p, struct
      sample *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2512,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2512,1
    - Dst: smp_fetch_http_fail_rate
      Src: /src/haproxy/src/stick_table.c:2514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2507
    functionDepth: 6
    functionLinenumber: 2507
    functionLinenumberEnd: 2515
    functionName: sample_conv_table_http_fail_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_http_fail_rate
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_http_fail_rate(const struct arg *arg_p, struct
      sample *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2529,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2529,1
    - Dst: smp_fetch_http_req_cnt
      Src: /src/haproxy/src/stick_table.c:2531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2524
    functionDepth: 6
    functionLinenumber: 2524
    functionLinenumberEnd: 2532
    functionName: sample_conv_table_http_req_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_http_req_cnt
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_http_req_cnt(const struct arg *arg_p, struct
      sample *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2546,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2546,1
    - Dst: smp_fetch_http_req_rate
      Src: /src/haproxy/src/stick_table.c:2548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2541
    functionDepth: 6
    functionLinenumber: 2541
    functionLinenumberEnd: 2549
    functionName: sample_conv_table_http_req_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_http_req_rate
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_http_req_rate(const struct arg *arg_p, struct
      sample *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2563,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2563,1
    - Dst: smp_fetch_kbytes_in
      Src: /src/haproxy/src/stick_table.c:2565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2566
      start: 2558
    functionDepth: 6
    functionLinenumber: 2558
    functionLinenumberEnd: 2566
    functionName: sample_conv_table_kbytes_in
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_kbytes_in
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_kbytes_in(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2580,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2580,1
    - Dst: smp_fetch_kbytes_out
      Src: /src/haproxy/src/stick_table.c:2582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2575
    functionDepth: 6
    functionLinenumber: 2575
    functionLinenumberEnd: 2583
    functionName: sample_conv_table_kbytes_out
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_kbytes_out
    - smp_fetch_stksess
    - stkctr_set_entry
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_kbytes_out(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2599,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:2608,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:2610,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2612,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:2614,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:2617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2591
    functionDepth: 6
    functionLinenumber: 2591
    functionLinenumberEnd: 2619
    functionName: sample_conv_table_server_id
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDLOCK
    - stktable_release
    - smp_fetch_stksess
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_server_id(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2633,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2633,1
    - Dst: smp_fetch_sess_cnt
      Src: /src/haproxy/src/stick_table.c:2635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2628
    functionDepth: 6
    functionLinenumber: 2628
    functionLinenumberEnd: 2636
    functionName: sample_conv_table_sess_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_sess_cnt
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_sess_cnt(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:2650,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2650,1
    - Dst: smp_fetch_sess_rate
      Src: /src/haproxy/src/stick_table.c:2652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2645
    functionDepth: 6
    functionLinenumber: 2645
    functionLinenumberEnd: 2653
    functionName: sample_conv_table_sess_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stkctr_set_entry
    - smp_fetch_sess_rate
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_sess_rate(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2668,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:2677,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:2679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2661
    functionDepth: 6
    functionLinenumber: 2661
    functionLinenumberEnd: 2681
    functionName: sample_conv_table_trackers
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stktable_release
    - smp_fetch_stksess
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_trackers(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:2703,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2708,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2709,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:2712,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:2715,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2715,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2719,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:2721,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:2724,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2689
    functionDepth: 3
    functionLinenumber: 2689
    functionLinenumberEnd: 2728
    functionName: action_inc_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_inc_gpc(struct act_rule *rule, struct proxy
      *px,\n                                      struct session *sess, struct stream
      *s, int flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:2746,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:2751,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2757,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:2762,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2765,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:2769,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:2772,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2772,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2776,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:2778,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:2781,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2731
    functionDepth: 3
    functionLinenumber: 2731
    functionLinenumberEnd: 2785
    functionName: action_inc_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_inc_gpc0(struct act_rule *rule, struct proxy
      *px,\n                                       struct session *sess, struct stream
      *s, int flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:2803,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:2808,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2814,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:2819,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2822,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:2826,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:2829,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2829,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2833,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:2835,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:2838,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2788
    functionDepth: 3
    functionLinenumber: 2788
    functionLinenumberEnd: 2842
    functionName: action_inc_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_inc_gpc1(struct act_rule *rule, struct proxy
      *px,\n                                       struct session *sess, struct stream
      *s, int flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2861,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:2865,1
    - Dst: strtoul
      Src: /src/haproxy/src/stick_table.c:2868,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2870,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:2875,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2877,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2882,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2899,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:2903,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2905,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2910,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2922,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 5
    argNames:
    - args
    - arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2927
      start: 2854
    functionDepth: 5
    functionLinenumber: 2854
    functionLinenumberEnd: 2927
    functionName: parse_inc_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strtol
    - strtoul
    - strlen
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_inc_gpc(const char **args, int *arg, struct
      proxy *px,\n                                        struct act_rule *rule, char
      **err)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:2955,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2960,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:2974,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:2976,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/stick_table.c:2981,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:2983,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:2985,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:2991,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2993,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:2995,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:2997,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2937
    functionDepth: 10
    functionLinenumber: 2937
    functionLinenumberEnd: 3001
    functionName: action_set_gpt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr_idx
    - ha_alert
    - stktable_data_cast
    - HA_RWLOCK_WRLOCK
    - stktable_touch_local
    - send_log
    - sample_fetch_as_type
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_set_gpt(struct act_rule *rule, struct proxy
      *px,\n                                      struct session *sess, struct stream
      *s, int flags)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3022,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3027,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3029,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:3043,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:3045,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/stick_table.c:3050,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:3052,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:3054,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:3060,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3062,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:3064,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:3066,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3004
    functionDepth: 10
    functionLinenumber: 3004
    functionLinenumberEnd: 3070
    functionName: action_set_gpt0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - ha_alert
    - stktable_data_cast
    - HA_RWLOCK_WRLOCK
    - stktable_touch_local
    - send_log
    - sample_fetch_as_type
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_set_gpt0(struct act_rule *rule, struct proxy
      *px,\n                                       struct session *sess, struct stream
      *s, int flags)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3091,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:3095,1
    - Dst: strtoul
      Src: /src/haproxy/src/stick_table.c:3098,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3100,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:3105,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3107,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3112,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3127,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:3131,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3133,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3138,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3147,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:3153,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/stick_table.c:3158,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3171,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3175,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/stick_table.c:3176,1
    - Dst: free
      Src: /src/haproxy/src/stick_table.c:3177,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 90
    argCount: 5
    argNames:
    - args
    - arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3083
    functionDepth: 7
    functionLinenumber: 3083
    functionLinenumberEnd: 3185
    functionName: parse_set_gpt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strtoul
    - sample_src_names
    - free
    - strtol
    - sample_parse_expr
    - strlen
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_set_gpt(const char **args, int *arg, struct
      proxy *px,\n                                         struct act_rule *rule,
      char **err)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3211,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3216,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3217,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:3231,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:3233,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/stick_table.c:3238,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:3240,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:3242,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:3250,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:3253,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3253,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3257,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:3259,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:3262,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3266
      start: 3195
    functionDepth: 10
    functionLinenumber: 3195
    functionLinenumberEnd: 3266
    functionName: action_add_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr_idx
    - ha_alert
    - stktable_data_cast
    - HA_RWLOCK_WRLOCK
    - stktable_touch_local
    - send_log
    - sample_fetch_as_type
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_add_gpc(struct act_rule *rule, struct proxy
      *px,\n                                      struct session *sess, struct stream
      *s, int flags)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:3285,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3287,1
    - Dst: strtoul
      Src: /src/haproxy/src/stick_table.c:3291,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3293,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:3298,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3300,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3305,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:3314,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/stick_table.c:3319,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3332,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3337,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/stick_table.c:3338,1
    - Dst: free
      Src: /src/haproxy/src/stick_table.c:3339,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 5
    argNames:
    - args
    - arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3347
      start: 3278
    functionDepth: 7
    functionLinenumber: 3278
    functionLinenumberEnd: 3347
    functionName: parse_add_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strtoul
    - sample_src_names
    - free
    - strtol
    - sample_parse_expr
    - strlen
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_add_gpc(const char **args, int *arg, struct
      proxy *px,\n                                         struct act_rule *rule,
      char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3359
      start: 3352
    functionDepth: 0
    functionLinenumber: 3352
    functionLinenumberEnd: 3359
    functionName: smp_fetch_table_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_table_cnt(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3374
      start: 3364
    functionDepth: 0
    functionLinenumber: 3364
    functionLinenumberEnd: 3374
    functionName: smp_fetch_table_avl
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_table_avl(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stick_table.c:3403,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3417,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3422,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3426,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:3430,1
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:3438,1
    - Dst: stktable_lookup
      Src: /src/haproxy/src/stick_table.c:3438,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - sess
    - strm
    - args
    - kw
    - stkctr
    argTypes:
    - struct session*
    - struct stream*
    - struct arg*
    - char*
    - struct stkctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3442
      start: 3390
    functionDepth: 4
    functionLinenumber: 3390
    functionLinenumberEnd: 3442
    functionName: smp_fetch_sc_stkctr
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - unlikely
    - stkctr_entry
    - stkctr_set_entry
    - BUG_ON
    - stktable_lookup
    linkageType: ''
    returnType: struct stkctr
    signature: 'struct stkctr *

      smp_fetch_sc_stkctr(struct session *sess, struct stream *strm, const struct
      arg *args, const char *kw, struct stkctr *stkctr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/stick_table.c:3452,1
    - Dst: smp_fetch_src
      Src: /src/haproxy/src/stick_table.c:3462,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:3465,1
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:3468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - sess
    - strm
    - args
    - stkctr
    - create
    argTypes:
    - struct session*
    - struct stream*
    - struct arg*
    - struct stkctr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3447
    functionDepth: 6
    functionLinenumber: 3447
    functionLinenumberEnd: 3470
    functionName: smp_fetch_src_stkctr
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - stkctr_set_entry
    - smp_fetch_stksess
    - smp_fetch_src
    linkageType: ''
    returnType: struct stkctr
    signature: "struct stkctr *\nsmp_fetch_src_stkctr(struct session *sess, struct
      stream *strm,\n                     const struct arg *args, struct stkctr *stkctr,
      int create)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3484,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3489,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3492
      start: 3476
    functionDepth: 5
    functionLinenumber: 3476
    functionLinenumberEnd: 3492
    functionName: smp_fetch_sc_tracked
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_release
    - smp_fetch_sc_stkctr
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_tracked(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3500,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3503,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3503,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3506,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3506,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3510,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3510,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3512,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3514,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3514,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3517,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - stkctr
    - smp
    - idx
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3520
      start: 3494
    functionDepth: 2
    functionLinenumber: 3494
    functionLinenumberEnd: 3520
    functionName: smp_fetch_get_gpt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_get_gpt(struct stkctr *stkctr, struct sample *smp, unsigned
      int idx, int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:3537,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3538,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3540,1
    - Dst: smp_fetch_get_gpt
      Src: /src/haproxy/src/stick_table.c:3545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3546
      start: 3528
    functionDepth: 7
    functionLinenumber: 3528
    functionLinenumberEnd: 3546
    functionName: smp_fetch_sc_get_gpt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_get_gpt
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_get_gpt(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3554,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3557,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3557,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3559,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3559,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3563,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3563,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3567,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3567,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3569,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3571,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3571,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3574,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3574,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3577
      start: 3548
    functionDepth: 2
    functionLinenumber: 3548
    functionLinenumberEnd: 3577
    functionName: smp_fetch_get_gpt0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_get_gpt0(struct stkctr *stkctr, struct sample *smp, int
      decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:3590,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3591,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3593,1
    - Dst: smp_fetch_get_gpt0
      Src: /src/haproxy/src/stick_table.c:3598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3599
      start: 3584
    functionDepth: 7
    functionLinenumber: 3584
    functionLinenumberEnd: 3599
    functionName: smp_fetch_sc_get_gpt0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_get_gpt0
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_get_gpt0(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3607,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3610,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3610,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3613,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3613,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3617,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3617,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3619,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3621,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3621,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3624,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - stkctr
    - smp
    - idx
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3627
      start: 3601
    functionDepth: 2
    functionLinenumber: 3601
    functionLinenumberEnd: 3627
    functionName: smp_fetch_get_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_get_gpc(struct stkctr *stkctr, struct sample *smp, unsigned
      int idx, int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:3644,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3645,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3647,1
    - Dst: smp_fetch_get_gpc
      Src: /src/haproxy/src/stick_table.c:3652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3653
      start: 3635
    functionDepth: 7
    functionLinenumber: 3635
    functionLinenumberEnd: 3653
    functionName: smp_fetch_sc_get_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_get_gpc
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_get_gpc(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3661,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3664,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3664,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3667,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3667,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3672,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3672,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3676,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3676,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3678,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3680,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3680,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3683,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3683,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3686
      start: 3655
    functionDepth: 2
    functionLinenumber: 3655
    functionLinenumberEnd: 3686
    functionName: smp_fetch_get_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_get_gpc0(struct stkctr *stkctr, struct sample *smp, int
      decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:3699,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3700,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3702,1
    - Dst: smp_fetch_get_gpc0
      Src: /src/haproxy/src/stick_table.c:3707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3708
      start: 3693
    functionDepth: 7
    functionLinenumber: 3693
    functionLinenumberEnd: 3708
    functionName: smp_fetch_sc_get_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_get_gpc0
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_get_gpc0(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3716,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3719,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3719,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3722,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3722,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3727,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3727,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3731,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3731,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3733,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3735,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3735,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3738,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3738,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3741
      start: 3710
    functionDepth: 2
    functionLinenumber: 3710
    functionLinenumberEnd: 3741
    functionName: smp_fetch_get_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_get_gpc1(struct stkctr *stkctr, struct sample *smp, int
      decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:3754,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3755,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3757,1
    - Dst: smp_fetch_get_gpc1
      Src: /src/haproxy/src/stick_table.c:3762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3763
      start: 3748
    functionDepth: 7
    functionLinenumber: 3748
    functionLinenumberEnd: 3763
    functionName: smp_fetch_sc_get_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_get_gpc1
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_get_gpc1(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3770,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3773,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3773,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3776,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3776,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3780,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3780,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:3782,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3782,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3785,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3785,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3788,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - stkctr
    - smp
    - idx
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3791
      start: 3765
    functionDepth: 2
    functionLinenumber: 3765
    functionLinenumberEnd: 3791
    functionName: smp_fetch_gpc_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - read_freq_ctr_period
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_gpc_rate(struct stkctr *stkctr, struct sample *smp, unsigned
      int idx, int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:3808,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3809,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3811,1
    - Dst: smp_fetch_gpc_rate
      Src: /src/haproxy/src/stick_table.c:3816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3817
      start: 3799
    functionDepth: 7
    functionLinenumber: 3799
    functionLinenumberEnd: 3817
    functionName: smp_fetch_sc_gpc_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_gpc_rate
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_gpc_rate(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3826,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3829,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3829,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3835,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3835,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3842,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3842,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3846,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3846,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:3848,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3848,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3850,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3850,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3853,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3853,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3856
      start: 3819
    functionDepth: 2
    functionLinenumber: 3819
    functionLinenumberEnd: 3856
    functionName: smp_fetch_gpc0_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - read_freq_ctr_period
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_gpc0_rate(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:3869,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3870,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3872,1
    - Dst: smp_fetch_gpc0_rate
      Src: /src/haproxy/src/stick_table.c:3877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3878
      start: 3863
    functionDepth: 7
    functionLinenumber: 3863
    functionLinenumberEnd: 3878
    functionName: smp_fetch_sc_gpc0_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_gpc0_rate
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_gpc0_rate(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3887,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3890,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3890,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3896,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3896,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3903,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3903,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3907,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3907,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:3909,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3909,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3911,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3911,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3914,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3914,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3917
      start: 3880
    functionDepth: 2
    functionLinenumber: 3880
    functionLinenumberEnd: 3917
    functionName: smp_fetch_gpc1_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - read_freq_ctr_period
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_gpc1_rate(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:3930,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3931,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3933,1
    - Dst: smp_fetch_gpc1_rate
      Src: /src/haproxy/src/stick_table.c:3938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3939
      start: 3924
    functionDepth: 7
    functionLinenumber: 3924
    functionLinenumberEnd: 3939
    functionName: smp_fetch_sc_gpc1_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_gpc1_rate
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_gpc1_rate(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3947,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3954,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3954,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3955,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3955,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:3957,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3957,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:3960,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3960,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3962,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3966,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:3968,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3968,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:3971,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3971,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3974,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3974,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - stkctr
    - smp
    - idx
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3977
      start: 3941
    functionDepth: 3
    functionLinenumber: 3941
    functionLinenumberEnd: 3977
    functionName: smp_fetch_inc_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_release
    - stktable_data_ptr_idx
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_inc_gpc(struct stkctr *stkctr, struct sample *smp, unsigned
      int idx, int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:3993,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3994,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3996,1
    - Dst: smp_fetch_inc_gpc
      Src: /src/haproxy/src/stick_table.c:4001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4002
      start: 3984
    functionDepth: 7
    functionLinenumber: 3984
    functionLinenumberEnd: 4002
    functionName: smp_fetch_sc_inc_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_inc_gpc
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_inc_gpc(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4013,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4020,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4020,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4026,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4026,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4031,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4031,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4034,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4034,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4038,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4038,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4041,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4041,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4043,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4047,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4049,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4049,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4052,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4052,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4055,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4055,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4058
      start: 4005
    functionDepth: 3
    functionLinenumber: 4005
    functionLinenumberEnd: 4058
    functionName: smp_fetch_inc_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_release
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_inc_gpc0(struct stkctr *stkctr, struct sample *smp, int
      decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4070,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4071,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4073,1
    - Dst: smp_fetch_inc_gpc0
      Src: /src/haproxy/src/stick_table.c:4078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4079
      start: 4064
    functionDepth: 7
    functionLinenumber: 4064
    functionLinenumberEnd: 4079
    functionName: smp_fetch_sc_inc_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_inc_gpc0
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_inc_gpc0(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4089,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4096,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4096,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4102,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4102,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4107,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4107,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4110,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4110,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4114,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4114,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4117,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4117,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4119,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4123,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4125,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4125,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4128,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4128,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4131,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4081
    functionDepth: 3
    functionLinenumber: 4081
    functionLinenumberEnd: 4134
    functionName: smp_fetch_inc_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_release
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_inc_gpc1(struct stkctr *stkctr, struct sample *smp, int
      decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4146,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4147,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4149,1
    - Dst: smp_fetch_inc_gpc1
      Src: /src/haproxy/src/stick_table.c:4154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4155
      start: 4140
    functionDepth: 7
    functionLinenumber: 4140
    functionLinenumberEnd: 4155
    functionName: smp_fetch_sc_inc_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_inc_gpc1
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_inc_gpc1(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4163,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4166,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4166,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4169,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4169,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4173,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4173,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4175,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4178,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4178,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4181,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - stkctr
    - smp
    - idx
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4184
      start: 4157
    functionDepth: 3
    functionLinenumber: 4157
    functionLinenumberEnd: 4184
    functionName: smp_fetch_clr_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_clr_gpc(struct stkctr *stkctr, struct sample *smp, unsigned
      int idx, int decrefcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4176
      start: 4176
    functionDepth: 0
    functionLinenumber: 4176
    functionLinenumberEnd: 4176
    functionName: stktable_data_cast
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stktable_data_cast(ptr, std_t_uint)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4200,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4201,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4203,1
    - Dst: smp_fetch_clr_gpc
      Src: /src/haproxy/src/stick_table.c:4208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4209
      start: 4191
    functionDepth: 7
    functionLinenumber: 4191
    functionLinenumberEnd: 4209
    functionName: smp_fetch_sc_clr_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_clr_gpc
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_clr_gpc(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4217,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4220,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4220,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4223,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4223,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4228,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4228,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4232,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4232,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4234,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4237,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4237,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4240,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4243
      start: 4211
    functionDepth: 3
    functionLinenumber: 4211
    functionLinenumberEnd: 4243
    functionName: smp_fetch_clr_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_clr_gpc0(struct stkctr *stkctr, struct sample *smp, int
      decrefcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4235
      start: 4235
    functionDepth: 0
    functionLinenumber: 4235
    functionLinenumberEnd: 4235
    functionName: stktable_data_cast
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stktable_data_cast(ptr, std_t_uint)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4255,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4256,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4258,1
    - Dst: smp_fetch_clr_gpc0
      Src: /src/haproxy/src/stick_table.c:4263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4264
      start: 4249
    functionDepth: 7
    functionLinenumber: 4249
    functionLinenumberEnd: 4264
    functionName: smp_fetch_sc_clr_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_clr_gpc0
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_clr_gpc0(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4272,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4275,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4275,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4278,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4278,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4283,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4283,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4287,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4287,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4289,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4292,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4292,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4295,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4298
      start: 4266
    functionDepth: 3
    functionLinenumber: 4266
    functionLinenumberEnd: 4298
    functionName: smp_fetch_clr_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr_idx
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_clr_gpc1(struct stkctr *stkctr, struct sample *smp, int
      decrefcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4290
      start: 4290
    functionDepth: 0
    functionLinenumber: 4290
    functionLinenumberEnd: 4290
    functionName: stktable_data_cast
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stktable_data_cast(ptr, std_t_uint)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4310,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4311,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4313,1
    - Dst: smp_fetch_clr_gpc1
      Src: /src/haproxy/src/stick_table.c:4318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4319
      start: 4304
    functionDepth: 7
    functionLinenumber: 4304
    functionLinenumberEnd: 4319
    functionName: smp_fetch_sc_clr_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_clr_gpc1
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_clr_gpc1(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4326,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4329,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4329,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4332,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4332,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4336,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4336,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4338,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4340,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4340,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4343,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4348
      start: 4321
    functionDepth: 2
    functionLinenumber: 4321
    functionLinenumberEnd: 4348
    functionName: smp_fetch_conn_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_conn_cnt(struct stkctr *stkctr, struct sample *smp, int
      decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4360,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4361,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4363,1
    - Dst: smp_fetch_conn_cnt
      Src: /src/haproxy/src/stick_table.c:4368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4369
      start: 4354
    functionDepth: 7
    functionLinenumber: 4354
    functionLinenumberEnd: 4369
    functionName: smp_fetch_sc_conn_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_conn_cnt
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_conn_cnt(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4376,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4379,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4379,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4382,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4382,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4386,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4386,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4388,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4388,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4391,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4391,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4394,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4397
      start: 4371
    functionDepth: 2
    functionLinenumber: 4371
    functionLinenumberEnd: 4397
    functionName: smp_fetch_conn_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - read_freq_ctr_period
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_conn_rate(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4409,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4410,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4412,1
    - Dst: smp_fetch_conn_rate
      Src: /src/haproxy/src/stick_table.c:4417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4403
    functionDepth: 7
    functionLinenumber: 4403
    functionLinenumberEnd: 4418
    functionName: smp_fetch_sc_conn_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_conn_rate
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_conn_rate(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4424,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4427,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4427,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4434,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4434,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4436,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4438,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4438,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4442,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - stkctr
    - smp
    argTypes:
    - struct stkctr*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4446
      start: 4420
    functionDepth: 3
    functionLinenumber: 4420
    functionLinenumberEnd: 4446
    functionName: smp_fetch_updt_conn_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_updt_conn_cnt(struct stkctr *stkctr, struct sample *smp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4458,1
    - Dst: smp_fetch_updt_conn_cnt
      Src: /src/haproxy/src/stick_table.c:4463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4464
      start: 4452
    functionDepth: 7
    functionLinenumber: 4452
    functionLinenumberEnd: 4464
    functionName: smp_fetch_src_updt_conn_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_src_stkctr
    - smp_fetch_updt_conn_cnt
    linkageType: ''
    returnType: int
    signature: int smp_fetch_src_updt_conn_cnt(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4471,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4474,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4474,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4477,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4477,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4481,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4481,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4483,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4485,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4485,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4488,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4491
      start: 4466
    functionDepth: 2
    functionLinenumber: 4466
    functionLinenumberEnd: 4491
    functionName: smp_fetch_conn_cur
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_conn_cur(struct stkctr *stkctr, struct sample *smp, int
      decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4503,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4504,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4506,1
    - Dst: smp_fetch_conn_cur
      Src: /src/haproxy/src/stick_table.c:4511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4512
      start: 4497
    functionDepth: 7
    functionLinenumber: 4497
    functionLinenumberEnd: 4512
    functionName: smp_fetch_sc_conn_cur
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_conn_cur
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_conn_cur(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4519,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4522,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4522,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4525,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4525,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4529,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4529,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4531,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4533,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4533,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4536,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4539
      start: 4514
    functionDepth: 2
    functionLinenumber: 4514
    functionLinenumberEnd: 4539
    functionName: smp_fetch_glitch_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_glitch_cnt(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4551,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4552,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4554,1
    - Dst: smp_fetch_glitch_cnt
      Src: /src/haproxy/src/stick_table.c:4559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4560
      start: 4545
    functionDepth: 7
    functionLinenumber: 4545
    functionLinenumberEnd: 4560
    functionName: smp_fetch_sc_glitch_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_glitch_cnt
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_glitch_cnt(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4567,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4570,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4570,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4573,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4573,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4577,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4577,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4579,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4579,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4582,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4582,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4585,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4562
    functionDepth: 2
    functionLinenumber: 4562
    functionLinenumberEnd: 4588
    functionName: smp_fetch_glitch_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - read_freq_ctr_period
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_glitch_rate(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4600,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4601,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4603,1
    - Dst: smp_fetch_glitch_rate
      Src: /src/haproxy/src/stick_table.c:4608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4609
      start: 4594
    functionDepth: 7
    functionLinenumber: 4594
    functionLinenumberEnd: 4609
    functionName: smp_fetch_sc_glitch_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_glitch_rate
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_glitch_rate(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4616,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4619,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4619,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4622,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4622,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4626,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4626,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4628,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4630,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4630,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4633,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4636
      start: 4611
    functionDepth: 2
    functionLinenumber: 4611
    functionLinenumberEnd: 4636
    functionName: smp_fetch_sess_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sess_cnt(struct stkctr *stkctr, struct sample *smp, int
      decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4648,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4649,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4651,1
    - Dst: smp_fetch_sess_cnt
      Src: /src/haproxy/src/stick_table.c:4656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4657
      start: 4642
    functionDepth: 7
    functionLinenumber: 4642
    functionLinenumberEnd: 4657
    functionName: smp_fetch_sc_sess_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_sess_cnt
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_sess_cnt(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4664,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4667,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4667,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4670,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4670,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4674,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4674,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4676,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4676,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4679,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4679,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4682,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4685
      start: 4659
    functionDepth: 2
    functionLinenumber: 4659
    functionLinenumberEnd: 4685
    functionName: smp_fetch_sess_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - read_freq_ctr_period
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sess_rate(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4696,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4697,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4699,1
    - Dst: smp_fetch_sess_rate
      Src: /src/haproxy/src/stick_table.c:4704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4690
    functionDepth: 7
    functionLinenumber: 4690
    functionLinenumberEnd: 4705
    functionName: smp_fetch_sc_sess_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_sess_rate
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_sess_rate(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4712,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4715,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4715,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4718,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4718,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4722,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4722,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4724,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4726,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4726,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4729,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4729,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4732
      start: 4707
    functionDepth: 2
    functionLinenumber: 4707
    functionLinenumberEnd: 4732
    functionName: smp_fetch_http_req_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_req_cnt(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4744,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4745,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4747,1
    - Dst: smp_fetch_http_req_cnt
      Src: /src/haproxy/src/stick_table.c:4752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4753
      start: 4738
    functionDepth: 7
    functionLinenumber: 4738
    functionLinenumberEnd: 4753
    functionName: smp_fetch_sc_http_req_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_http_req_cnt
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_http_req_cnt(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4760,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4763,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4763,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4766,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4766,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4770,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4770,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4772,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4772,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4775,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4775,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4778,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4778,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4781
      start: 4755
    functionDepth: 2
    functionLinenumber: 4755
    functionLinenumberEnd: 4781
    functionName: smp_fetch_http_req_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - read_freq_ctr_period
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_req_rate(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4793,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4794,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4796,1
    - Dst: smp_fetch_http_req_rate
      Src: /src/haproxy/src/stick_table.c:4801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4787
    functionDepth: 7
    functionLinenumber: 4787
    functionLinenumberEnd: 4802
    functionName: smp_fetch_sc_http_req_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_http_req_rate
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_http_req_rate(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4809,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4812,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4812,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4815,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4815,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4819,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4819,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4821,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4823,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4823,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4826,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4829
      start: 4804
    functionDepth: 2
    functionLinenumber: 4804
    functionLinenumberEnd: 4829
    functionName: smp_fetch_http_err_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_err_cnt(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4841,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4842,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4844,1
    - Dst: smp_fetch_http_err_cnt
      Src: /src/haproxy/src/stick_table.c:4849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4835
    functionDepth: 7
    functionLinenumber: 4835
    functionLinenumberEnd: 4850
    functionName: smp_fetch_sc_http_err_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_http_err_cnt
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_http_err_cnt(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4857,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4860,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4860,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4863,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4863,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4867,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4867,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4869,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4869,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4872,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4872,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4875,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4878
      start: 4852
    functionDepth: 2
    functionLinenumber: 4852
    functionLinenumberEnd: 4878
    functionName: smp_fetch_http_err_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - read_freq_ctr_period
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_err_rate(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4890,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4891,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4893,1
    - Dst: smp_fetch_http_err_rate
      Src: /src/haproxy/src/stick_table.c:4898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4899
      start: 4884
    functionDepth: 7
    functionLinenumber: 4884
    functionLinenumberEnd: 4899
    functionName: smp_fetch_sc_http_err_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_http_err_rate
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_http_err_rate(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4906,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4909,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4909,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4912,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4912,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4916,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4916,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4918,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4920,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4920,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4923,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4923,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4926
      start: 4901
    functionDepth: 2
    functionLinenumber: 4901
    functionLinenumberEnd: 4926
    functionName: smp_fetch_http_fail_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_fail_cnt(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4938,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4939,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4941,1
    - Dst: smp_fetch_http_fail_cnt
      Src: /src/haproxy/src/stick_table.c:4946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4947
      start: 4932
    functionDepth: 7
    functionLinenumber: 4932
    functionLinenumberEnd: 4947
    functionName: smp_fetch_sc_http_fail_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_http_fail_cnt
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_http_fail_cnt(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4954,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4957,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4957,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4960,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4960,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4964,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4964,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4966,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4966,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4969,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4969,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4972,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4972,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4976
      start: 4949
    functionDepth: 2
    functionLinenumber: 4949
    functionLinenumberEnd: 4976
    functionName: smp_fetch_http_fail_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - read_freq_ctr_period
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_http_fail_rate(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:4988,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4989,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4991,1
    - Dst: smp_fetch_http_fail_rate
      Src: /src/haproxy/src/stick_table.c:4996,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4997
      start: 4982
    functionDepth: 7
    functionLinenumber: 4982
    functionLinenumberEnd: 4997
    functionName: smp_fetch_sc_http_fail_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_http_fail_rate
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_http_fail_rate(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5004,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5007,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5007,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5010,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5010,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:5014,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5014,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5016,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5018,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5018,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5021,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5021,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5024
      start: 4999
    functionDepth: 2
    functionLinenumber: 4999
    functionLinenumberEnd: 5024
    functionName: smp_fetch_kbytes_in
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_kbytes_in(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:5036,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:5037,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:5039,1
    - Dst: smp_fetch_kbytes_in
      Src: /src/haproxy/src/stick_table.c:5044,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5045
      start: 5030
    functionDepth: 7
    functionLinenumber: 5030
    functionLinenumberEnd: 5045
    functionName: smp_fetch_sc_kbytes_in
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_kbytes_in
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_kbytes_in(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5052,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5055,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5055,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5058,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5058,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:5062,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5062,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:5064,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5064,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5067,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5067,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5070,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5070,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5073
      start: 5047
    functionDepth: 2
    functionLinenumber: 5047
    functionLinenumberEnd: 5073
    functionName: smp_fetch_bytes_in_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - read_freq_ctr_period
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_bytes_in_rate(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:5085,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:5086,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:5088,1
    - Dst: smp_fetch_bytes_in_rate
      Src: /src/haproxy/src/stick_table.c:5093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5094
      start: 5079
    functionDepth: 7
    functionLinenumber: 5079
    functionLinenumberEnd: 5094
    functionName: smp_fetch_sc_bytes_in_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_bytes_in_rate
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_bytes_in_rate(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5101,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5104,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5104,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5107,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5107,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:5111,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5111,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5113,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5115,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5115,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5118,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5121
      start: 5096
    functionDepth: 2
    functionLinenumber: 5096
    functionLinenumberEnd: 5121
    functionName: smp_fetch_kbytes_out
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_kbytes_out(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:5133,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:5134,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:5136,1
    - Dst: smp_fetch_kbytes_out
      Src: /src/haproxy/src/stick_table.c:5141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5142
      start: 5127
    functionDepth: 7
    functionLinenumber: 5127
    functionLinenumberEnd: 5142
    functionName: smp_fetch_sc_kbytes_out
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_kbytes_out
    - smp_fetch_src_stkctr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_kbytes_out(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:5154,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5158,1
    - Dst: stkey_to_smp
      Src: /src/haproxy/src/stick_table.c:5160,1
    - Dst: stksess_getkey
      Src: /src/haproxy/src/stick_table.c:5160,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5168
      start: 5147
    functionDepth: 5
    functionLinenumber: 5147
    functionLinenumberEnd: 5168
    functionName: smp_fetch_sc_key
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stkey_to_smp
    - stktable_release
    - smp_fetch_sc_stkctr
    - stksess_getkey
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_key(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5175,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5178,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5178,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5181,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5181,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:5185,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5185,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:5187,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5187,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5190,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5190,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5193,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5196
      start: 5170
    functionDepth: 2
    functionLinenumber: 5170
    functionLinenumberEnd: 5196
    functionName: smp_fetch_bytes_out_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - read_freq_ctr_period
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int smp_fetch_bytes_out_rate(struct stkctr *stkctr, struct sample *smp,
      int decrefcnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:5208,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:5209,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:5211,1
    - Dst: smp_fetch_bytes_out_rate
      Src: /src/haproxy/src/stick_table.c:5216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5217
      start: 5202
    functionDepth: 7
    functionLinenumber: 5202
    functionLinenumberEnd: 5217
    functionName: smp_fetch_sc_bytes_out_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - smp_fetch_src_stkctr
    - smp_fetch_bytes_out_rate
    - strncmp
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_bytes_out_rate(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:5228,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5235,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:5235,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5235,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5236,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5236,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5239,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:5239,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5243
      start: 5222
    functionDepth: 5
    functionLinenumber: 5222
    functionLinenumberEnd: 5243
    functionName: smp_fetch_sc_trackers
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_ATOMIC_LOAD
    - smp_fetch_sc_stkctr
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sc_trackers(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/src/stick_table.c:5267,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/stick_table.c:5267,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5269,1
    - Dst: strm_li
      Src: /src/haproxy/src/stick_table.c:5274,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5275,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stick_table.c:5277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - msg
    - appctx
    - t
    - target
    argTypes:
    - struct buffer*
    - struct appctx*
    - struct stktable*
    - struct stktable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5281
      start: 5263
    functionDepth: 1
    functionLinenumber: 5263
    functionLinenumberEnd: 5281
    functionName: table_dump_head_to_buffer
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - __sc_strm
    - appctx_sc
    - strm_li
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: "int table_dump_head_to_buffer(struct buffer *msg,\n                                     struct
      appctx *appctx,\n                                     struct stktable *t, struct
      stktable *target)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5293,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/stick_table.c:5297,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5298,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/stick_table.c:5302,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5303,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5306,1
    - Dst: read_u32
      Src: /src/haproxy/src/stick_table.c:5306,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5309,1
    - Dst: dump_text
      Src: /src/haproxy/src/stick_table.c:5310,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5313,1
    - Dst: dump_binary
      Src: /src/haproxy/src/stick_table.c:5314,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5317,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:5317,1
    - Dst: tick_remain
      Src: /src/haproxy/src/stick_table.c:5317,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:5346,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5349,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5351,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5354,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5354,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5357,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5357,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5360,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5360,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:5363,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5363,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5367,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:5370,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5375,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5377,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5379,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5382,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5382,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5385,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5385,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5388,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5388,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:5391,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5391,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5395,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5399,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5400,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5405,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stick_table.c:5407,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 92
    argCount: 4
    argNames:
    - msg
    - appctx
    - t
    - entry
    argTypes:
    - struct buffer*
    - struct appctx*
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5411
      start: 5287
    functionDepth: 1
    functionLinenumber: 5287
    functionLinenumberEnd: 5411
    functionName: table_dump_entry_to_buffer
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - tick_remain
    - read_freq_ctr_period
    - HA_ATOMIC_LOAD
    - stktable_data_ptr_idx
    - chunk_appendf
    - dump_text
    - inet_ntop
    - read_u32
    - stktable_data_cast
    - stktable_data_ptr
    - dump_binary
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: "int table_dump_entry_to_buffer(struct buffer *msg,\n                                      struct
      appctx *appctx,\n                                      struct stktable *t, struct
      stksess *entry)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5454,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5456,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5458,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5460,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/stick_table.c:5465,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stick_table.c:5473,1
    - Dst: table_dump_head_to_buffer
      Src: /src/haproxy/src/stick_table.c:5474,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:5477,1
    - Dst: table_dump_entry_to_buffer
      Src: /src/haproxy/src/stick_table.c:5478,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5479,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5482,1
    - Dst: stksess_kill
      Src: /src/haproxy/src/stick_table.c:5491,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5493,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:5498,1
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:5502,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5503,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5504,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5505,1
    - Dst: stktable_get_data_type_idx
      Src: /src/haproxy/src/stick_table.c:5509,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5511,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5512,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5513,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5518,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5519,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5520,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/stick_table.c:5524,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:5524,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5525,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5526,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5527,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:5532,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5534,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5535,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5536,1
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5541,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5545,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5548,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5551,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5559,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5570,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5571,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5575,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 105
    argCount: 3
    argNames:
    - appctx
    - tsptr
    - args
    argTypes:
    - struct appctx*
    - struct stksess**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5579
      start: 5434
    functionDepth: 4
    functionLinenumber: 5434
    functionLinenumberEnd: 5579
    functionName: table_process_entry
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRLOCK
    - __stktable_data_ptr
    - cli_err
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr_idx
    - strncmp
    - table_dump_head_to_buffer
    - strlen
    - stktable_touch_local
    - stksess_kill
    - chunk_reset
    - stktable_data_cast
    - cli_has_level
    - stktable_get_data_type_idx
    - strl2llrc
    - table_dump_entry_to_buffer
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int table_process_entry(struct appctx *appctx, struct stksess **tsptr,
      char **args)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5593,1
    - Dst: memset
      Src: /src/haproxy/src/stick_table.c:5595,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:5598,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stick_table.c:5606,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5608,1
    - Dst: smp_to_stkey
      Src: /src/haproxy/src/stick_table.c:5618,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5619,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/stick_table.c:5622,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5624,1
    - Dst: stktable_lookup_key
      Src: /src/haproxy/src/stick_table.c:5626,1
    - Dst: table_process_entry
      Src: /src/haproxy/src/stick_table.c:5628,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5630,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - appctx
    - args
    argTypes:
    - struct appctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5632
      start: 5584
    functionDepth: 5
    functionLinenumber: 5584
    functionLinenumberEnd: 5632
    functionName: table_process_entry_per_key
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - table_process_entry
    - memset
    - cli_err
    - BUG_ON
    - stktable_release
    - smp_to_stkey
    - stktable_lookup_key
    - stktable_get_entry
    - strlen
    linkageType: ''
    returnType: int
    signature: int table_process_entry_per_key(struct appctx *appctx, char **args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5647,1
    - Dst: strtoul
      Src: /src/haproxy/src/stick_table.c:5650,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5652,1
    - Dst: stktable_lookup_ptr
      Src: /src/haproxy/src/stick_table.c:5654,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5656,1
    - Dst: table_process_entry
      Src: /src/haproxy/src/stick_table.c:5658,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5660,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - appctx
    - args
    argTypes:
    - struct appctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5662
      start: 5637
    functionDepth: 5
    functionLinenumber: 5637
    functionLinenumberEnd: 5662
    functionName: table_process_entry_per_ptr
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - table_process_entry
    - stktable_release
    - stktable_lookup_ptr
    - strtoul
    - cli_err
    linkageType: ''
    returnType: int
    signature: int table_process_entry_per_ptr(struct appctx *appctx, char **args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5674,1
    - Dst: stktable_get_data_type_idx
      Src: /src/haproxy/src/stick_table.c:5680,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/stick_table.c:5682,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5682,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/stick_table.c:5685,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5685,1
    - Dst: get_std_op
      Src: /src/haproxy/src/stick_table.c:5687,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/stick_table.c:5689,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5689,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/stick_table.c:5691,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:5691,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/stick_table.c:5692,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5692,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/stick_table.c:5696,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5696,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - appctx
    - args
    argTypes:
    - struct appctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5701
      start: 5667
    functionDepth: 5
    functionLinenumber: 5667
    functionLinenumberEnd: 5701
    functionName: table_prepare_data_request
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cli_err
    - get_std_op
    - strlen
    - stktable_get_data_type_idx
    - strl2llrc
    - cli_dynerr
    linkageType: ''
    returnType: int
    signature: int table_prepare_data_request(struct appctx *appctx, char **args)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/stick_table.c:5706,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/stick_table.c:5716,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5718,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/stick_table.c:5728,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:5731,1
    - Dst: table_process_entry_per_key
      Src: /src/haproxy/src/stick_table.c:5732,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:5733,1
    - Dst: table_process_entry_per_ptr
      Src: /src/haproxy/src/stick_table.c:5734,1
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:5735,1
    - Dst: table_prepare_data_request
      Src: /src/haproxy/src/stick_table.c:5736,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5745,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5747,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5749,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5751,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5753
      start: 5704
    functionDepth: 6
    functionLinenumber: 5704
    functionLinenumberEnd: 5753
    functionName: cli_parse_table_req
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - table_process_entry_per_key
    - table_process_entry_per_ptr
    - strcmp
    - stktable_find_by_name
    - applet_reserve_svcctx
    - strncmp
    - cli_has_level
    - table_prepare_data_request
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_table_req(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/stick_table.c:5762,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stick_table.c:5763,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stick_table.c:5780,1
    - Dst: table_dump_head_to_buffer
      Src: /src/haproxy/src/stick_table.c:5793,1
    - Dst: strm_li
      Src: /src/haproxy/src/stick_table.c:5797,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:5799,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/stick_table.c:5800,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:5802,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:5803,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5805,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5808,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:5825,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:5840,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5850,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stick_table.c:5856,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5862,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5865,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5868,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:5871,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5871,1
    - Dst: table_dump_entry_to_buffer
      Src: /src/haproxy/src/stick_table.c:5895,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5896,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5900,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:5902,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:5903,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/stick_table.c:5905,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:5908,1
    - Dst: __stksess_kill_if_expired
      Src: /src/haproxy/src/stick_table.c:5910,1
    - Dst: __stksess_kill
      Src: /src/haproxy/src/stick_table.c:5912,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:5913,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5914,1
    - Dst: __stksess_kill_if_expired
      Src: /src/haproxy/src/stick_table.c:5920,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:5921,1
    - Dst: __stksess_kill
      Src: /src/haproxy/src/stick_table.c:5922,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5924,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 109
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5939
      start: 5759
    functionDepth: 3
    functionLinenumber: 5759
    functionLinenumberEnd: 5939
    functionName: cli_io_handler_table
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - HA_ATOMIC_LOAD
    - stktable_data_ptr_idx
    - ebmb_entry
    - appctx_sc
    - HA_ATOMIC_INC
    - __stksess_kill
    - __sc_strm
    - table_dump_head_to_buffer
    - ebmb_next
    - stktable_data_ptr
    - strm_li
    - ebmb_first
    - stktable_data_cast
    - HA_RWLOCK_WRLOCK
    - chunk_reset
    - HA_RWLOCK_RDLOCK
    - read_freq_ctr_period
    - BUG_ON
    - HA_ATOMIC_DEC
    - __stksess_kill_if_expired
    - table_dump_entry_to_buffer
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_table(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stksess_kill_if_expired
      Src: /src/haproxy/src/stick_table.c:5946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5948
      start: 5941
    functionDepth: 1
    functionLinenumber: 5941
    functionLinenumberEnd: 5948
    functionName: cli_release_show_table
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stksess_kill_if_expired
    linkageType: ''
    returnType: void
    signature: void cli_release_show_table(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:5957,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5959,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5970
      start: 5950
    functionDepth: 5
    functionLinenumber: 5950
    functionLinenumberEnd: 5970
    functionName: stk_parse_stick_counters
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strtol
    linkageType: ''
    returnType: int
    signature: "int stk_parse_stick_counters(char **args, int section_type, struct
      proxy *curpx,\n                                const struct proxy *defpx, const
      char *file, int line,\n                                char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_pool
      Src: /src/haproxy/src/stick_table.c:5981,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/stick_table.c:5981,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:5983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5987
      start: 5976
    functionDepth: 1
    functionLinenumber: 5976
    functionLinenumberEnd: 5987
    functionName: stkt_create_stk_ctr_pool
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - array_size_or_fail
    - ha_alert
    - create_pool
    linkageType: ''
    returnType: int
    signature: int stkt_create_stk_ctr_pool(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_sample_fetch
      Src: /src/haproxy/src/stick_table.c:5994,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:5994,1
    - Dst: stkt_create_stk_ctr_pool
      Src: /src/haproxy/src/stick_table.c:5998,1
    - Dst: exit
      Src: /src/haproxy/src/stick_table.c:5999,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/stick_table.c:6002,1
    - Dst: task_new_on
      Src: /src/haproxy/src/stick_table.c:6004,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:6006,1
    - Dst: exit
      Src: /src/haproxy/src/stick_table.c:6007,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/stick_table.c:6011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6013
      start: 5989
    functionDepth: 2
    functionLinenumber: 5989
    functionLinenumberEnd: 6013
    functionName: stkt_late_init
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkt_create_stk_ctr_pool
    - find_sample_fetch
    - exit
    - HA_SPIN_INIT
    - task_new_on
    - MT_LIST_INIT
    - ha_alert
    - strlen
    linkageType: ''
    returnType: void
    signature: void stkt_late_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6333,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6334,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6337,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6338,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6341,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - id
    - metric
    - desc
    argTypes:
    - unsigned int
    - struct promex_metric*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6348
      start: 6329
    functionDepth: 1
    functionLinenumber: 6329
    functionLinenumberEnd: 6348
    functionName: stk_promex_metric_info
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - ist
    linkageType: ''
    returnType: int
    signature: int stk_promex_metric_info(unsigned int id, struct promex_metric *metric,
      struct ist *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unused
    - id
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6353
      start: 6350
    functionDepth: 0
    functionLinenumber: 6350
    functionLinenumberEnd: 6353
    functionName: stk_promex_start_ts
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *stk_promex_start_ts(void *unused, unsigned int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unused
    - metric_ctx
    - id
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6360
      start: 6355
    functionDepth: 0
    functionLinenumber: 6355
    functionLinenumberEnd: 6360
    functionName: stk_promex_next_ts
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *stk_promex_next_ts(void *unused, void *metric_ctx, unsigned int
      id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6369,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6370,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6371,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6372,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stick_table.c:6376,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stick_table.c:6379,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stick_table.c:6390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - unused
    - metric_ctx
    - id
    - labels
    - field
    argTypes:
    - void*
    - void*
    - unsigned int
    - struct promex_label*
    - struct field*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6396
      start: 6362
    functionDepth: 1
    functionLinenumber: 6362
    functionLinenumberEnd: 6396
    functionName: stk_promex_fill_ts
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - ist
    - mkf_u32
    linkageType: ''
    returnType: int
    signature: int stk_promex_fill_ts(void *unused, void *metric_ctx, unsigned int
      id, struct promex_label *labels, struct field *field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptr_hash
      Src: /src/haproxy/src/pool.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: pool_pbucket
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - ptr_hash
    linkageType: ''
    returnType: forceinline unsigned
    signature: forceinline unsigned pool_pbucket(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: pool_tbucket
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline unsigned
    signature: forceinline unsigned pool_tbucket(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: thread_isolated
      Src: /src/haproxy/src/pool.c:148,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/pool.c:151,1
    - Dst: malloc_trim
      Src: /src/haproxy/src/pool.c:153,1
    - Dst: thread_release
      Src: /src/haproxy/src/pool.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: trim_all_pools
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - thread_isolated
    - malloc_trim
    - thread_isolate
    - thread_release
    linkageType: ''
    returnType: void
    signature: void trim_all_pools(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sym_curr_addr
      Src: /src/haproxy/src/pool.c:182,1
    - Dst: mallinfo2
      Src: /src/haproxy/src/pool.c:196,1
    - Dst: mallinfo
      Src: /src/haproxy/src/pool.c:198,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/pool.c:200,1
    - Dst: malloc
      Src: /src/haproxy/src/pool.c:200,1
    - Dst: mallinfo2
      Src: /src/haproxy/src/pool.c:202,1
    - Dst: mallinfo
      Src: /src/haproxy/src/pool.c:204,1
    - Dst: free
      Src: /src/haproxy/src/pool.c:206,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/pool.c:206,1
    - Dst: memcmp
      Src: /src/haproxy/src/pool.c:208,1
    - Dst: malloc_default_zone
      Src: /src/haproxy/src/pool.c:210,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/pool.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 216
    functionName: detect_allocator
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - DISGUISE
    - malloc
    - memcmp
    - malloc_default_zone
    - mallinfo2
    - free
    - get_sym_next_addr
    - get_sym_curr_addr
    - mallinfo
    linkageType: ''
    returnType: void
    signature: void detect_allocator(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pool.c:228,1
    - Dst: my_mallctl
      Src: /src/haproxy/src/pool.c:239,1
    - Dst: snprintf
      Src: /src/haproxy/src/pool.c:242,1
    - Dst: my_mallctl
      Src: /src/haproxy/src/pool.c:243,1
    - Dst: _malloc_trim
      Src: /src/haproxy/src/pool.c:254,1
    - Dst: malloc_get_all_zones
      Src: /src/haproxy/src/pool.c:262,1
    - Dst: malloc_zone_pressure_relief
      Src: /src/haproxy/src/pool.c:268,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/pool.c:275,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - pad
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 279
    functionName: malloc_trim
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 2
    functionsReached:
    - _malloc_trim
    - my_mallctl
    - malloc_zone_pressure_relief
    - malloc_get_all_zones
    - HA_ATOMIC_DEC
    - HA_ATOMIC_INC
    - snprintf
    linkageType: ''
    returnType: int
    signature: int malloc_trim(size_t pad)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/pool.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 292
    functionName: mem_should_fail
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - statistical_prng_range
    linkageType: ''
    returnType: int
    signature: int mem_should_fail(const struct pool_head *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/pool.c:311,1
    - Dst: create_pool_from_reg
      Src: /src/haproxy/src/pool.c:322,1
    - Dst: free
      Src: /src/haproxy/src/pool.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - name
    - size
    - align
    - flags
    - file
    - line
    argTypes:
    - char*
    - ullong
    - unsigned int
    - unsigned int
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 326
    functionName: create_pool_with_loc
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - create_pool_from_reg
    - calloc
    - free
    linkageType: ''
    returnType: struct pool_head
    signature: "struct pool_head *create_pool_with_loc(const char *name, ullong size,\n\t\t\t\t
      \      unsigned int align, unsigned int flags,\n\t\t\t\t       const char *file,
      unsigned int line)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/pool.c:367,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:416,1
    - Dst: pool_allocated
      Src: /src/haproxy/src/pool.c:418,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:432,1
    - Dst: abs
      Src: /src/haproxy/src/pool.c:434,1
    - Dst: calloc
      Src: /src/haproxy/src/pool.c:462,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/pool.c:471,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pool.c:476,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pool.c:477,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pool.c:482,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/pool.c:496,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pool.c:499,1
    - Dst: ha_alert
      Src: /src/haproxy/src/pool.c:506,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 92
    argCount: 2
    argNames:
    - name
    - reg
    argTypes:
    - char*
    - struct pool_registration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 510
    functionName: create_pool_from_reg
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - calloc
    - DPRINTF
    - strcmp
    - abs
    - LIST_APPEND
    - strlcpy2
    - ha_alert
    - pool_allocated
    - LIST_INIT
    linkageType: ''
    returnType: struct pool_head
    signature: struct pool_head *create_pool_from_reg(const char *name, struct pool_registration
      *reg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pool_allocated
      Src: /src/haproxy/src/pool.c:518,1
    - Dst: pool_alloc_area_uaf
      Src: /src/haproxy/src/pool.c:522,1
    - Dst: pool_alloc_area
      Src: /src/haproxy/src/pool.c:524,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/pool.c:527,1
    - Dst: pool_tbucket
      Src: /src/haproxy/src/pool.c:527,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 532
    functionName: pool_get_from_os_noinc
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - pool_alloc_area
    - _HA_ATOMIC_INC
    - pool_alloc_area_uaf
    - pool_tbucket
    - pool_allocated
    linkageType: ''
    returnType: void
    signature: void *pool_get_from_os_noinc(struct pool_head *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_free_area_uaf
      Src: /src/haproxy/src/pool.c:541,1
    - Dst: pool_free_area
      Src: /src/haproxy/src/pool.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pool
    - ptr
    argTypes:
    - struct pool_head*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 544
    functionName: pool_put_to_os_nodec
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - pool_free_area
    - pool_free_area_uaf
    linkageType: ''
    returnType: void
    signature: void pool_put_to_os_nodec(struct pool_head *pool, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_get_from_os_noinc
      Src: /src/haproxy/src/pool.c:556,1
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:560,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/pool.c:562,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/pool.c:563,1
    - Dst: swrate_add_scaled_opportunistic
      Src: /src/haproxy/src/pool.c:564,1
    - Dst: POOL_DEBUG_SET_MARK
      Src: /src/haproxy/src/pool.c:567,1
    - Dst: POOL_DEBUG_TRACE_CALLER
      Src: /src/haproxy/src/pool.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - caller
    argTypes:
    - struct pool_head*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 570
    functionName: pool_alloc_nocache
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - _HA_ATOMIC_FETCH_ADD
    - swrate_add_scaled_opportunistic
    - pool_get_from_os_noinc
    - pool_pbucket
    - POOL_DEBUG_SET_MARK
    - POOL_DEBUG_TRACE_CALLER
    linkageType: ''
    returnType: void
    signature: void *pool_alloc_nocache(struct pool_head *pool, const void *caller)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:578,1
    - Dst: _HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/pool.c:581,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/pool.c:582,1
    - Dst: swrate_add_opportunistic
      Src: /src/haproxy/src/pool.c:583,1
    - Dst: pool_put_to_os_nodec
      Src: /src/haproxy/src/pool.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - ptr
    argTypes:
    - struct pool_head*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 586
    functionName: pool_free_nocache
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - pool_put_to_os_nodec
    - swrate_add_opportunistic
    - _HA_ATOMIC_DEC
    - pool_pbucket
    - _HA_ATOMIC_SUB_FETCH
    linkageType: ''
    returnType: void
    signature: void pool_free_nocache(struct pool_head *pool, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/pool.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pch
    - item
    - size
    argTypes:
    - struct pool_cache_head*
    - struct pool_cache_item*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 601
    functionName: pool_copy_pattern
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void pool_copy_pattern(struct pool_cache_head *pch, struct pool_cache_item
      *item, uint size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pch
    - item
    - size
    argTypes:
    - struct pool_cache_head*
    - struct pool_cache_item*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 622
    functionName: pool_fill_pattern
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pool_fill_pattern(struct pool_cache_head *pch, struct pool_cache_item
      *item, uint size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:644,1
    - Dst: pool_inspect_item
      Src: /src/haproxy/src/pool.c:645,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/pool.c:646,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:655,1
    - Dst: pool_inspect_item
      Src: /src/haproxy/src/pool.c:656,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/pool.c:657,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - pch
    - pool
    - item
    - caller
    argTypes:
    - struct pool_cache_head*
    - struct pool_head*
    - struct pool_cache_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 662
    functionName: pool_check_pattern
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - unlikely
    - pool_inspect_item
    - ABORT_NOW
    linkageType: ''
    returnType: void
    signature: void pool_check_pattern(struct pool_cache_head *pch, struct pool_head
      *pool, struct pool_cache_item *item, const void *caller)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/pool.c:675,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:682,1
    - Dst: pool_releasable
      Src: /src/haproxy/src/pool.c:685,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pool.c:687,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/pool.c:688,1
    - Dst: typeof
      Src: /src/haproxy/src/pool.c:688,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:689,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:690,1
    - Dst: pool_check_pattern
      Src: /src/haproxy/src/pool.c:691,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pool.c:692,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pool.c:693,1
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:695,1
    - Dst: _HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/pool.c:696,1
    - Dst: swrate_add_opportunistic
      Src: /src/haproxy/src/pool.c:697,1
    - Dst: pool_put_to_shared_cache
      Src: /src/haproxy/src/pool.c:708,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/pool.c:714,1
    - Dst: pool_put_to_os_nodec
      Src: /src/haproxy/src/pool.c:715,1
    - Dst: pool_put_to_shared_cache
      Src: /src/haproxy/src/pool.c:723,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - pool
    - ph
    - count
    argTypes:
    - struct pool_head*
    - struct pool_cache_head*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 728
    functionName: pool_evict_last_items
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - unlikely
    - LIST_DELETE
    - typeof
    - pool_put_to_os_nodec
    - swrate_add_opportunistic
    - BUG_ON
    - pool_put_to_shared_cache
    - LIST_PREV
    - pool_check_pattern
    - _HA_ATOMIC_DEC
    - LIST_ISEMPTY
    - __builtin_return_address
    - pool_pbucket
    - _HA_ATOMIC_SUB_FETCH
    - pool_releasable
    linkageType: ''
    returnType: void
    signature: void pool_evict_last_items(struct pool_head *pool, struct pool_cache_head
      *ph, uint count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:741,1
    - Dst: pool_evict_last_items
      Src: /src/haproxy/src/pool.c:747,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - full
    argTypes:
    - struct pool_head*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 737
    functionDepth: 3
    functionLinenumber: 737
    functionLinenumberEnd: 749
    functionName: pool_evict_from_local_cache
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - pool_evict_last_items
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void pool_evict_from_local_cache(struct pool_head *pool, int full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:760,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/pool.c:763,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:764,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/pool.c:768,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:769,1
    - Dst: container_of
      Src: /src/haproxy/src/pool.c:771,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:772,1
    - Dst: pool_evict_last_items
      Src: /src/haproxy/src/pool.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 776
    functionName: pool_evict_from_local_caches
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - pool_evict_last_items
    - LIST_NEXT
    - BUG_ON
    - LIST_PREV
    - container_of
    linkageType: ''
    returnType: void
    signature: void pool_evict_from_local_caches()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:790,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/pool.c:792,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/pool.c:793,1
    - Dst: POOL_DEBUG_TRACE_CALLER
      Src: /src/haproxy/src/pool.c:794,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:796,1
    - Dst: pool_copy_pattern
      Src: /src/haproxy/src/pool.c:797,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:799,1
    - Dst: pool_fill_pattern
      Src: /src/haproxy/src/pool.c:800,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:805,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:808,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:810,1
    - Dst: pool_evict_from_local_cache
      Src: /src/haproxy/src/pool.c:813,1
    - Dst: pool_evict_from_local_caches
      Src: /src/haproxy/src/pool.c:815,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:817,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:818,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - pool
    - ptr
    - caller
    argTypes:
    - struct pool_head*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 785
    functionDepth: 4
    functionLinenumber: 785
    functionLinenumberEnd: 820
    functionName: pool_put_to_cache
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - unlikely
    - BUG_ON
    - pool_evict_from_local_caches
    - now_mono_time
    - pool_copy_pattern
    - pool_evict_from_local_cache
    - pool_fill_pattern
    - LIST_INSERT
    - POOL_DEBUG_TRACE_CALLER
    linkageType: ''
    returnType: void
    signature: void pool_put_to_cache(struct pool_head *pool, void *ptr, const void
      *caller)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:836,1
    - Dst: pool_tbucket
      Src: /src/haproxy/src/pool.c:844,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/pool.c:845,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:853,1
    - Dst: statistical_prng
      Src: /src/haproxy/src/pool.c:854,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/pool.c:855,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:859,1
    - Dst: _HA_ATOMIC_XCHG
      Src: /src/haproxy/src/pool.c:859,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:861,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:862,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:867,1
    - Dst: POOL_DEBUG_TRACE_CALLER
      Src: /src/haproxy/src/pool.c:877,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/pool.c:878,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/pool.c:879,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/pool.c:880,1
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:880,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:882,1
    - Dst: pool_fill_pattern
      Src: /src/haproxy/src/pool.c:883,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - pool
    - pch
    argTypes:
    - struct pool_head*
    - struct pool_cache_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 889
    functionName: pool_refill_local_from_shared
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _HA_ATOMIC_XCHG
    - HA_ATOMIC_STORE
    - _HA_ATOMIC_INC
    - _HA_ATOMIC_LOAD
    - BUG_ON
    - pool_fill_pattern
    - statistical_prng
    - LIST_INSERT
    - pool_tbucket
    - pool_pbucket
    - POOL_DEBUG_TRACE_CALLER
    linkageType: ''
    returnType: void
    signature: void pool_refill_local_from_shared(struct pool_head *pool, struct pool_cache_head
      *pch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:899,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/pool.c:905,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:908,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/pool.c:910,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:912,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/pool.c:913,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/pool.c:914,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/pool.c:915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - item
    argTypes:
    - struct pool_head*
    - struct pool_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 896
    functionDepth: 2
    functionLinenumber: 896
    functionLinenumberEnd: 916
    functionName: pool_put_to_shared_cache
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - unlikely
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_STORE
    - _HA_ATOMIC_CAS
    - __ha_barrier_atomic_store
    - pool_pbucket
    linkageType: ''
    returnType: void
    signature: void pool_put_to_shared_cache(struct pool_head *pool, struct pool_item
      *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:935,1
    - Dst: pl_wait_new_long
      Src: /src/haproxy/src/pool.c:936,1
    - Dst: _HA_ATOMIC_XCHG
      Src: /src/haproxy/src/pool.c:941,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:943,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/pool.c:953,1
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:953,1
    - Dst: pool_put_to_os_nodec
      Src: /src/haproxy/src/pool.c:954,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 959
    functionName: pool_flush
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - unlikely
    - _HA_ATOMIC_XCHG
    - pl_wait_new_long
    - HA_ATOMIC_STORE
    - pool_put_to_os_nodec
    - pool_pbucket
    - _HA_ATOMIC_DEC
    linkageType: ''
    returnType: void
    signature: void pool_flush(struct pool_head *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: thread_isolated
      Src: /src/haproxy/src/pool.c:970,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:972,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:974,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/pool.c:977,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:979,1
    - Dst: pool_allocated
      Src: /src/haproxy/src/pool.c:981,1
    - Dst: pool_used
      Src: /src/haproxy/src/pool.c:982,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/pool.c:998,1
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:998,1
    - Dst: pool_put_to_os_nodec
      Src: /src/haproxy/src/pool.c:999,1
    - Dst: trim_all_pools
      Src: /src/haproxy/src/pool.c:1004,1
    - Dst: thread_release
      Src: /src/haproxy/src/pool.c:1007,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:1010,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - pool_ctx
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 966
    functionDepth: 2
    functionLinenumber: 966
    functionLinenumberEnd: 1011
    functionName: pool_gc
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 3
    functionsReached:
    - unlikely
    - pool_put_to_os_nodec
    - thread_isolate
    - list_for_each_entry
    - thread_isolated
    - now_mono_time
    - pool_pbucket
    - pool_used
    - pool_allocated
    - _HA_ATOMIC_DEC
    - trim_all_pools
    - thread_release
    linkageType: ''
    returnType: void
    signature: void pool_gc(struct pool_head *pool_ctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/pool.c:1022,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1024,1
    - Dst: mem_should_fail
      Src: /src/haproxy/src/pool.c:1025,1
    - Dst: likely
      Src: /src/haproxy/src/pool.c:1028,1
    - Dst: pool_get_from_cache
      Src: /src/haproxy/src/pool.c:1029,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1031,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1035,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:1037,1
    - Dst: pool_alloc_nocache
      Src: /src/haproxy/src/pool.c:1039,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1041,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:1042,1
    - Dst: likely
      Src: /src/haproxy/src/pool.c:1045,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1047,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/pool.c:1051,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/pool.c:1051,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1052,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1053,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1054,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1055,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:1056,1
    - Dst: POOL_DEBUG_TRACE_CALLER
      Src: /src/haproxy/src/pool.c:1063,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1066,1
    - Dst: memset
      Src: /src/haproxy/src/pool.c:1067,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1068,1
    - Dst: memset
      Src: /src/haproxy/src/pool.c:1069,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 2
    argNames:
    - pool
    - flags
    argTypes:
    - struct pool_head*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1019
    functionDepth: 3
    functionLinenumber: 1019
    functionLinenumberEnd: 1072
    functionName: __pool_alloc
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - unlikely
    - pool_alloc_nocache
    - memset
    - _HA_ATOMIC_ADD
    - mem_should_fail
    - _HA_ATOMIC_STORE
    - now_mono_time
    - likely
    - pool_get_from_cache
    - memprof_get_bin
    - __builtin_return_address
    - POOL_DEBUG_TRACE_CALLER
    linkageType: ''
    returnType: void
    signature: void *__pool_alloc(struct pool_head *pool, unsigned int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/pool.c:1080,1
    - Dst: POOL_DEBUG_CHECK_MARK
      Src: /src/haproxy/src/pool.c:1083,1
    - Dst: POOL_DEBUG_RESET_MARK
      Src: /src/haproxy/src/pool.c:1084,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1087,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/pool.c:1091,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/pool.c:1091,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1092,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1093,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1094,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1095,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:1096,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1103,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1104,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1109,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1114,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:1116,1
    - Dst: pool_free_nocache
      Src: /src/haproxy/src/pool.c:1118,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1120,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:1121,1
    - Dst: pool_put_to_cache
      Src: /src/haproxy/src/pool.c:1125,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - pool
    - ptr
    argTypes:
    - struct pool_head*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1078
    functionDepth: 5
    functionLinenumber: 1078
    functionLinenumberEnd: 1127
    functionName: __pool_free
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - POOL_DEBUG_CHECK_MARK
    - unlikely
    - _HA_ATOMIC_ADD
    - _HA_ATOMIC_STORE
    - now_mono_time
    - POOL_DEBUG_RESET_MARK
    - pool_put_to_cache
    - memprof_get_bin
    - pool_free_nocache
    - __builtin_return_address
    linkageType: ''
    returnType: void
    signature: void __pool_free(struct pool_head *pool, void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pool_evict_from_local_cache
      Src: /src/haproxy/src/pool.c:1140,1
    - Dst: pool_flush
      Src: /src/haproxy/src/pool.c:1142,1
    - Dst: pool_used
      Src: /src/haproxy/src/pool.c:1143,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pool.c:1150,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pool.c:1151,1
    - Dst: free
      Src: /src/haproxy/src/pool.c:1153,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pool.c:1156,1
    - Dst: free
      Src: /src/haproxy/src/pool.c:1159,1
    - Dst: memprof_remove_stale_info
      Src: /src/haproxy/src/pool.c:1163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1136
    functionDepth: 4
    functionLinenumber: 1136
    functionLinenumberEnd: 1166
    functionName: pool_destroy
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 2
    functionsReached:
    - LIST_DELETE
    - pool_flush
    - list_for_each_entry_safe
    - memprof_remove_stale_info
    - free
    - pool_used
    - pool_evict_from_local_cache
    linkageType: ''
    returnType: void
    signature: void *pool_destroy(struct pool_head *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pool.c:1173,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/pool.c:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1169
    functionDepth: 5
    functionLinenumber: 1169
    functionLinenumberEnd: 1181
    functionName: pool_destroy_all
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - pool_destroy
    linkageType: ''
    returnType: void
    signature: void pool_destroy_all()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/pool.c:1192,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/pool.c:1197,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1199,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pool.c:1206,1
    - Dst: dump_area_with_syms
      Src: /src/haproxy/src/pool.c:1207,1
    - Dst: may_access
      Src: /src/haproxy/src/pool.c:1216,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1218,1
    - Dst: may_access
      Src: /src/haproxy/src/pool.c:1222,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1223,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1225,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1227,1
    - Dst: may_access
      Src: /src/haproxy/src/pool.c:1229,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1235,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1237,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1245,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/pool.c:1249,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1250,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1252,1
    - Dst: dump_area_with_syms
      Src: /src/haproxy/src/pool.c:1254,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/pool.c:1260,1
    - Dst: may_access
      Src: /src/haproxy/src/pool.c:1267,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/pool.c:1269,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1270,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1277,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1278,1
    - Dst: may_access
      Src: /src/haproxy/src/pool.c:1282,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pool.c:1289,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/pool.c:1290,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1291,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1292,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1300,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/pool.c:1301,1
    - Dst: write
      Src: /src/haproxy/src/pool.c:1301,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 5
    argNames:
    - msg
    - pool
    - item
    - caller
    - ofs
    argTypes:
    - char*
    - struct pool_head*
    - void*
    - void*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1188
    functionDepth: 6
    functionLinenumber: 1188
    functionLinenumberEnd: 1302
    functionName: pool_inspect_item
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - DISGUISE
    - list_for_each_entry
    - chunk_printf
    - write
    - chunk_appendf
    - dump_area_with_syms
    - get_trash_chunk
    - may_access
    - resolve_sym_name
    linkageType: ''
    returnType: void
    signature: void pool_inspect_item(const char *msg, struct pool_head *pool, const
      void *item, const void *caller, ssize_t ofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:1310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1311
    functionName: cmp_dump_pools_name
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmp_dump_pools_name(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1325
    functionName: cmp_dump_pools_size
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_dump_pools_size(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1339
    functionName: cmp_dump_pools_usage
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_dump_pools_usage(const void *a, const void *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1356,1
    - Dst: calloc
      Src: /src/haproxy/src/pool.c:1359,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1363,1
    - Dst: pool_allocated
      Src: /src/haproxy/src/pool.c:1367,1
    - Dst: strncmp
      Src: /src/haproxy/src/pool.c:1373,1
    - Dst: strlen
      Src: /src/haproxy/src/pool.c:1373,1
    - Dst: pool_used
      Src: /src/haproxy/src/pool.c:1385,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/pool.c:1387,1
    - Dst: pool_needed_avg
      Src: /src/haproxy/src/pool.c:1387,1
    - Dst: pool_failed
      Src: /src/haproxy/src/pool.c:1388,1
    - Dst: qsort
      Src: /src/haproxy/src/pool.c:1400,1
    - Dst: qsort
      Src: /src/haproxy/src/pool.c:1402,1
    - Dst: qsort
      Src: /src/haproxy/src/pool.c:1404,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct show_pools_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1410
    functionName: get_show_pools_info
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - calloc
    - qsort
    - strncmp
    - pool_failed
    - pool_needed_avg
    - pool_used
    - swrate_avg
    - pool_allocated
    - strlen
    linkageType: ''
    returnType: int
    signature: int get_show_pools_info(struct show_pools_ctx *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/pool.c:1420,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1422,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1423,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/pool.c:1425,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pool.c:1432,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1445,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1446,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1448,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1449,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/pool.c:1453,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pool.c:1459,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/pool.c:1464,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1468
    functionName: dump_pools_info
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - list_for_each_entry
    - chunk_appendf
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int dump_pools_info(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1476,1
    - Dst: pool_failed
      Src: /src/haproxy/src/pool.c:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1471
    functionDepth: 1
    functionLinenumber: 1471
    functionLinenumberEnd: 1479
    functionName: pool_total_failures
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - pool_failed
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int pool_total_failures()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1487,1
    - Dst: pool_allocated
      Src: /src/haproxy/src/pool.c:1488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1490
    functionName: pool_total_allocated
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - pool_allocated
    - list_for_each_entry
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long pool_total_allocated()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1498,1
    - Dst: pool_used
      Src: /src/haproxy/src/pool.c:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1493
    functionDepth: 1
    functionLinenumber: 1493
    functionLinenumberEnd: 1501
    functionName: pool_total_used
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - pool_used
    - list_for_each_entry
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long pool_total_used()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/pool.c:1521,1
    - Dst: ist
      Src: /src/haproxy/src/pool.c:1533,1
    - Dst: istlen
      Src: /src/haproxy/src/pool.c:1533,1
    - Dst: istadv
      Src: /src/haproxy/src/pool.c:1533,1
    - Dst: istfind
      Src: /src/haproxy/src/pool.c:1533,1
    - Dst: iststop
      Src: /src/haproxy/src/pool.c:1534,1
    - Dst: istlen
      Src: /src/haproxy/src/pool.c:1536,1
    - Dst: isteq
      Src: /src/haproxy/src/pool.c:1539,1
    - Dst: ist
      Src: /src/haproxy/src/pool.c:1539,1
    - Dst: ha_free
      Src: /src/haproxy/src/pool.c:1540,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1541,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1550,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1559,1
    - Dst: isteq
      Src: /src/haproxy/src/pool.c:1575,1
    - Dst: ist
      Src: /src/haproxy/src/pool.c:1575,1
    - Dst: isteq
      Src: /src/haproxy/src/pool.c:1587,1
    - Dst: ist
      Src: /src/haproxy/src/pool.c:1587,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1597,1
    - Dst: istlen
      Src: /src/haproxy/src/pool.c:1597,1
    - Dst: istptr
      Src: /src/haproxy/src/pool.c:1597,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - str
    - err
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1512
    functionDepth: 5
    functionLinenumber: 1512
    functionLinenumberEnd: 1604
    functionName: pool_parse_debugging
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - ist
    - istadv
    - iststop
    - memprintf
    - ha_free
    - istptr
    - isteq
    - strtol
    - istfind
    - istlen
    linkageType: ''
    returnType: int
    signature: int pool_parse_debugging(const char *str, char **err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/pool.c:1609,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:1613,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:1616,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:1619,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:1622,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:1625,1
    - Dst: strdup
      Src: /src/haproxy/src/pool.c:1626,1
    - Dst: cli_err
      Src: /src/haproxy/src/pool.c:1628,1
    - Dst: isdigit
      Src: /src/haproxy/src/pool.c:1631,1
    - Dst: atoi
      Src: /src/haproxy/src/pool.c:1632,1
    - Dst: cli_err
      Src: /src/haproxy/src/pool.c:1635,1
    - Dst: get_show_pools_info
      Src: /src/haproxy/src/pool.c:1638,1
    - Dst: cli_err
      Src: /src/haproxy/src/pool.c:1639,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1607
    functionDepth: 2
    functionLinenumber: 1607
    functionLinenumberEnd: 1641
    functionName: cli_parse_show_pools
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - get_show_pools_info
    - strcmp
    - applet_reserve_svcctx
    - isdigit
    - atoi
    - strdup
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_pools(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/pool.c:1648,1
    - Dst: ha_free
      Src: /src/haproxy/src/pool.c:1649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1644
    functionDepth: 1
    functionLinenumber: 1644
    functionLinenumberEnd: 1650
    functionName: cli_release_show_pools
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void cli_release_show_pools(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_pools_info
      Src: /src/haproxy/src/pool.c:1658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1656
    functionDepth: 2
    functionLinenumber: 1656
    functionLinenumberEnd: 1659
    functionName: cli_io_handler_dump_pools
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - dump_pools_info
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_pools(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_pool_from_reg
      Src: /src/haproxy/src/pool.c:1667,1
    - Dst: ha_alert
      Src: /src/haproxy/src/pool.c:1669,1
    - Dst: strerror
      Src: /src/haproxy/src/pool.c:1670,1
    - Dst: exit
      Src: /src/haproxy/src/pool.c:1671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - name
    - reg
    argTypes:
    - struct pool_head**
    - char*
    - struct pool_registration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1665
    functionDepth: 2
    functionLinenumber: 1665
    functionLinenumberEnd: 1673
    functionName: create_pool_callback
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - create_pool_from_reg
    - exit
    - ha_alert
    - strerror
    linkageType: ''
    returnType: void
    signature: void create_pool_callback(struct pool_head **ptr, char *name, struct
      pool_registration *reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pool.c:1681,1
    - Dst: detect_allocator
      Src: /src/haproxy/src/pool.c:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1676
    functionDepth: 4
    functionLinenumber: 1676
    functionLinenumberEnd: 1685
    functionName: init_pools
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - detect_allocator
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void init_pools()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1694,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/pool.c:1695,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/pool.c:1696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1690
    functionDepth: 5
    functionLinenumber: 1690
    functionLinenumberEnd: 1698
    functionName: pools_register_build_options
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - memprintf
    - hap_register_build_opts
    - mark_tainted
    linkageType: ''
    returnType: void
    signature: void pools_register_build_options(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/pool.c:1715,1
    - Dst: atoi
      Src: /src/haproxy/src/pool.c:1717,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1711
    functionDepth: 7
    functionLinenumber: 1711
    functionLinenumberEnd: 1723
    functionName: mem_parse_global_fail_alloc
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int mem_parse_global_fail_alloc(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/pool.c:1732,1
    - Dst: atol
      Src: /src/haproxy/src/pool.c:1735,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1726
    functionDepth: 7
    functionLinenumber: 1726
    functionLinenumberEnd: 1743
    functionName: mem_parse_global_hot_size
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - atol
    linkageType: ''
    returnType: int
    signature: "int mem_parse_global_hot_size(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/pool.c:1750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1746
    functionDepth: 7
    functionLinenumber: 1746
    functionLinenumberEnd: 1754
    functionName: mem_parse_global_no_mem_trim
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int mem_parse_global_no_mem_trim(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:54,1
    - Dst: _ceb_insert
      Src: /src/haproxy/src/_ceb_blk.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - NODEK
    - _ceb_insert
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _insert, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_first
      Src: /src/haproxy/src/_ceb_blk.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_first
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _first, struct ceb_root
      *const *, root, ptrdiff_t, kofs, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_last
      Src: /src/haproxy/src/_ceb_blk.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_last
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_MKEY_PFX, _last, struct ceb_root
      *const *, root, ptrdiff_t, kofs, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup
      Src: /src/haproxy/src/_ceb_blk.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _lookup, struct ceb_root
      *const *, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_le
      Src: /src/haproxy/src/_ceb_blk.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_le
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _lookup_le, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_lt
      Src: /src/haproxy/src/_ceb_blk.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_lt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _lookup_lt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_ge
      Src: /src/haproxy/src/_ceb_blk.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_ge
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _lookup_ge, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_gt
      Src: /src/haproxy/src/_ceb_blk.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_gt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _lookup_gt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:134,1
    - Dst: _ceb_next_unique
      Src: /src/haproxy/src/_ceb_blk.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_next_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _next_unique, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:148,1
    - Dst: _ceb_prev_unique
      Src: /src/haproxy/src/_ceb_blk.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_prev_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _prev_unique, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:159,1
    - Dst: _ceb_next_dup
      Src: /src/haproxy/src/_ceb_blk.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_next_dup
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _next_dup, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:169,1
    - Dst: _ceb_prev_dup
      Src: /src/haproxy/src/_ceb_blk.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_prev_dup
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _prev_dup, struct
      ceb_root *const *, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:182,1
    - Dst: _ceb_next
      Src: /src/haproxy/src/_ceb_blk.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_next
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _next, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:196,1
    - Dst: _ceb_prev
      Src: /src/haproxy/src/_ceb_blk.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_prev
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _prev, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:208,1
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_blk.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _delete, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_blk.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 222
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_MKEY_PFX, _pick, struct ceb_root
      **, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:242,1
    - Dst: _ceb_insert
      Src: /src/haproxy/src/_ceb_blk.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - NODEK
    - _ceb_insert
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_UKEY_PFX, _insert, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_first
      Src: /src/haproxy/src/_ceb_blk.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_first
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _first, struct ceb_root
      *const *, root, ptrdiff_t, kofs, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_last
      Src: /src/haproxy/src/_ceb_blk.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_last
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _last, struct ceb_root
      *const *, root, ptrdiff_t, kofs, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup
      Src: /src/haproxy/src/_ceb_blk.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_UKEY_PFX, _lookup, struct ceb_root
      *const *, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_le
      Src: /src/haproxy/src/_ceb_blk.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_le
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_UKEY_PFX, _lookup_le, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_lt
      Src: /src/haproxy/src/_ceb_blk.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_lt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_UKEY_PFX, _lookup_lt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_ge
      Src: /src/haproxy/src/_ceb_blk.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_ge
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_UKEY_PFX, _lookup_ge, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_gt
      Src: /src/haproxy/src/_ceb_blk.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_gt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_UKEY_PFX, _lookup_gt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:307,1
    - Dst: _ceb_next_unique
      Src: /src/haproxy/src/_ceb_blk.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_next_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_UKEY_PFX, _next, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:320,1
    - Dst: _ceb_prev_unique
      Src: /src/haproxy/src/_ceb_blk.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_prev_unique
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_UKEY_PFX, _prev, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/src/_ceb_blk.c:331,1
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_blk.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    - NODEK
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_UKEY_PFX, _delete, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_blk.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/src/_ceb_blk.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL4(struct ceb_node *, CEB_UKEY_PFX, _pick, struct ceb_root
      **, root, ptrdiff_t, kofs, const void *, key, size_t, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - conn
    - xprt_ctx
    - buf
    - count
    - msg_control
    - msg_controllen
    - flags
    argTypes:
    - struct connection*
    - void*
    - struct buffer*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: xprt_handshake_from_buf
    functionSourceFile: /src/haproxy/src/xprt_handshake.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t xprt_handshake_from_buf(struct connection *conn, void *xprt_ctx,
      const struct buffer *buf, size_t count, void *msg_control, size_t msg_controllen,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - conn
    - xprt_ctx
    - buf
    - count
    - msg_control
    - msg_controllen
    - flags
    argTypes:
    - struct connection*
    - void*
    - struct buffer*
    - size_t
    - void*
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: xprt_handshake_to_buf
    functionSourceFile: /src/haproxy/src/xprt_handshake.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t xprt_handshake_to_buf(struct connection *conn, void *xprt_ctx,
      struct buffer *buf, size_t count, void *msg_control, size_t *msg_controllen,
      int flags)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: conn_send_socks4_proxy_request
      Src: /src/haproxy/src/xprt_handshake.c:45,1
    - Dst: struct xprt_handshake_ctx*::xprt::subscribe
      Src: /src/haproxy/src/xprt_handshake.c:46,1
    - Dst: conn_recv_socks4_proxy_response
      Src: /src/haproxy/src/xprt_handshake.c:53,1
    - Dst: struct xprt_handshake_ctx*::xprt::subscribe
      Src: /src/haproxy/src/xprt_handshake.c:54,1
    - Dst: conn_recv_netscaler_cip
      Src: /src/haproxy/src/xprt_handshake.c:60,1
    - Dst: struct xprt_handshake_ctx*::xprt::subscribe
      Src: /src/haproxy/src/xprt_handshake.c:61,1
    - Dst: conn_recv_proxy
      Src: /src/haproxy/src/xprt_handshake.c:67,1
    - Dst: struct xprt_handshake_ctx*::xprt::subscribe
      Src: /src/haproxy/src/xprt_handshake.c:68,1
    - Dst: conn_send_proxy
      Src: /src/haproxy/src/xprt_handshake.c:74,1
    - Dst: struct xprt_handshake_ctx*::xprt::subscribe
      Src: /src/haproxy/src/xprt_handshake.c:75,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/xprt_handshake.c:92,1
    - Dst: struct xprt_handshake_ctx*::xprt::unsubscribe
      Src: /src/haproxy/src/xprt_handshake.c:100,1
    - Dst: struct connection*::xprt::remove_xprt
      Src: /src/haproxy/src/xprt_handshake.c:109,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/xprt_handshake.c:118,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/src/xprt_handshake.c:120,1
    - Dst: wake
      Src: /src/haproxy/src/xprt_handshake.c:120,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/xprt_handshake.c:122,1
    - Dst: pool_free
      Src: /src/haproxy/src/xprt_handshake.c:123,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 3
    argNames:
    - t
    - bctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 127
    functionName: xprt_handshake_io_cb
    functionSourceFile: /src/haproxy/src/xprt_handshake.c
    functionUses: 0
    functionsReached:
    - conn_recv_socks4_proxy_response
    - conn_recv_proxy
    - conn_recv_netscaler_cip
    - struct connection*::xprt::remove_xprt
    - conn_send_proxy
    - tasklet_wakeup
    - wake
    - CALL_MUX_WITH_RET
    - conn_create_mux
    - struct xprt_handshake_ctx*::xprt::subscribe
    - struct xprt_handshake_ctx*::xprt::unsubscribe
    - conn_send_socks4_proxy_request
    - pool_free
    - tasklet_free
    linkageType: ''
    returnType: struct task
    signature: struct task *xprt_handshake_io_cb(struct task *t, void *bctx, unsigned
      int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct xprt_handshake_ctx*::xprt::start
      Src: /src/haproxy/src/xprt_handshake.c:136,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/xprt_handshake.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 143
    functionName: xprt_handshake_start
    functionSourceFile: /src/haproxy/src/xprt_handshake.c
    functionUses: 0
    functionsReached:
    - struct xprt_handshake_ctx*::xprt::start
    - tasklet_wakeup
    linkageType: ''
    returnType: int
    signature: int xprt_handshake_start(struct connection *conn, void *xprt_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/xprt_handshake.c:152,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/xprt_handshake.c:158,1
    - Dst: pool_free
      Src: /src/haproxy/src/xprt_handshake.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 174
    functionName: xprt_handshake_init
    functionSourceFile: /src/haproxy/src/xprt_handshake.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - pool_free
    - tasklet_new
    linkageType: ''
    returnType: int
    signature: int xprt_handshake_init(struct connection *conn, void **xprt_ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct xprt_handshake_ctx*::xprt::unsubscribe
      Src: /src/haproxy/src/xprt_handshake.c:182,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/xprt_handshake.c:187,1
    - Dst: struct xprt_handshake_ctx*::xprt::close
      Src: /src/haproxy/src/xprt_handshake.c:191,1
    - Dst: xprt_get
      Src: /src/haproxy/src/xprt_handshake.c:201,1
    - Dst: xprt_get
      Src: /src/haproxy/src/xprt_handshake.c:202,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/xprt_handshake.c:203,1
    - Dst: pool_free
      Src: /src/haproxy/src/xprt_handshake.c:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 206
    functionName: xprt_handshake_close
    functionSourceFile: /src/haproxy/src/xprt_handshake.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - xprt_get
    - struct xprt_handshake_ctx*::xprt::close
    - struct xprt_handshake_ctx*::xprt::unsubscribe
    - pool_free
    - tasklet_free
    linkageType: ''
    returnType: void
    signature: void xprt_handshake_close(struct connection *conn, void *xprt_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_handshake.c:217,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_handshake.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - event_type
    - es
    argTypes:
    - struct connection*
    - void*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: xprt_handshake_subscribe
    functionSourceFile: /src/haproxy/src/xprt_handshake.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int xprt_handshake_subscribe(struct connection *conn, void *xprt_ctx,
      int event_type, struct wait_event *es)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_handshake.c:234,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_handshake.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - event_type
    - es
    argTypes:
    - struct connection*
    - void*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: xprt_handshake_unsubscribe
    functionSourceFile: /src/haproxy/src/xprt_handshake.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int xprt_handshake_unsubscribe(struct connection *conn, void *xprt_ctx,
      int event_type, struct wait_event *es)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - conn
    - xprt_ctx
    - toadd_ctx
    - toadd_ops
    - oldxprt_ctx
    - oldxprt_ops
    argTypes:
    - struct connection*
    - void*
    - void*
    - struct xprt_ops*
    - void**
    - struct xprt_ops**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 259
    functionName: xprt_handshake_add_xprt
    functionSourceFile: /src/haproxy/src/xprt_handshake.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xprt_handshake_add_xprt(struct connection *conn, void *xprt_ctx,
      void *toadd_ctx, const struct xprt_ops *toadd_ops, void **oldxprt_ctx, const
      struct xprt_ops **oldxprt_ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct xprt_handshake_ctx*::xprt::remove_xprt
      Src: /src/haproxy/src/xprt_handshake.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - conn
    - xprt_ctx
    - toremove_ctx
    - newops
    - newctx
    argTypes:
    - struct connection*
    - void*
    - void*
    - struct xprt_ops*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: xprt_handshake_remove_xprt
    functionSourceFile: /src/haproxy/src/xprt_handshake.c
    functionUses: 0
    functionsReached:
    - struct xprt_handshake_ctx*::xprt::remove_xprt
    linkageType: ''
    returnType: int
    signature: int xprt_handshake_remove_xprt(struct connection *conn, void *xprt_ctx,
      void *toremove_ctx, const struct xprt_ops *newops, void *newctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xprt_register
      Src: /src/haproxy/src/xprt_handshake.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: __xprt_handshake_init
    functionSourceFile: /src/haproxy/src/xprt_handshake.c
    functionUses: 0
    functionsReached:
    - xprt_register
    linkageType: ''
    returnType: void
    signature: void __xprt_handshake_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:151,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: quic_peer_validated_addr
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - qc_is_back
    linkageType: ''
    returnType: int
    signature: int quic_peer_validated_addr(struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:165,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:166,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/quic_conn.c:171,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_conn.c:173,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: qc_kill_conn
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - task_wakeup
    - TRACE_ENTER
    - qc_notify_err
    linkageType: ''
    returnType: void
    signature: void qc_kill_conn(struct quic_conn *qc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:187,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:188,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:192,1
    - Dst: quic_loss_pktns
      Src: /src/haproxy/src/quic_conn.c:196,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_conn.c:197,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_conn.c:205,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:207,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_conn.c:212,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:213,1
    - Dst: quic_pto_pktns
      Src: /src/haproxy/src/quic_conn.c:220,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_conn.c:221,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/quic_conn.c:227,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:228,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/quic_conn.c:229,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:232,1
    - Dst: task_schedule
      Src: /src/haproxy/src/quic_conn.c:233,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:236,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:237,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 238
    functionName: qc_set_timer
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - task_wakeup
    - quic_pto_pktns
    - quic_loss_pktns
    - TRACE_ENTER
    - quic_peer_validated_addr
    - TRACE_DEVEL
    - task_schedule
    - tick_isset
    - tick_is_expired
    linkageType: ''
    returnType: void
    signature: void qc_set_timer(struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:245,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:249,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - qc
    - err
    argTypes:
    - struct quic_conn*
    - struct quic_err
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 256
    functionName: quic_set_connection_close
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ENTER
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void quic_set_connection_close(struct quic_conn *qc, const struct quic_err
      err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:261,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_conn.c:263,1
    - Dst: quic_err_tls
      Src: /src/haproxy/src/quic_conn.c:263,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:265,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - qc
    - alert
    argTypes:
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 268
    functionName: quic_set_tls_alert
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 5
    functionsReached:
    - quic_set_connection_close
    - TRACE_LEAVE
    - TRACE_STATE
    - quic_err_tls
    - TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void quic_set_tls_alert(struct quic_conn *qc, int alert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_alpn_to_app_ops
      Src: /src/haproxy/src/quic_conn.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - qc
    - alpn
    - alpn_len
    argTypes:
    - struct quic_conn*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: qc_register_alpn
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 2
    functionsReached:
    - quic_alpn_to_app_ops
    linkageType: ''
    returnType: int
    signature: int qc_register_alpn(struct quic_conn *qc, const char *alpn, int alpn_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:295,1
    - Dst: qc_register_alpn
      Src: /src/haproxy/src/quic_conn.c:297,1
    - Dst: strlen
      Src: /src/haproxy/src/quic_conn.c:297,1
    - Dst: qc_early_transport_params_reuse
      Src: /src/haproxy/src/quic_conn.c:300,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:303,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - qc
    - alpn
    - etps
    argTypes:
    - struct quic_conn*
    - char*
    - struct quic_early_transport_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 308
    functionName: quic_reuse_srv_params
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - qc_register_alpn
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - qc_early_transport_params_reuse
    - strlen
    linkageType: ''
    returnType: int
    signature: "int quic_reuse_srv_params(struct quic_conn *qc,\n                          const
      char *alpn,\n                          const struct quic_early_transport_params
      *etps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:318,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_conn.c:320,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_conn.c:322,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:323,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: qc_check_close_on_released_mux
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - quic_set_connection_close
    - TRACE_LEAVE
    - eb_is_empty
    - tasklet_wakeup
    - TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void qc_check_close_on_released_mux(struct quic_conn *qc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:341,1
    - Dst: quic_tls_finalize
      Src: /src/haproxy/src/quic_conn.c:346,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - qc
    - server
    argTypes:
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 357
    functionName: qc_conn_finalize
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ENTER
    - quic_tls_finalize
    linkageType: ''
    returnType: int
    signature: int qc_conn_finalize(struct quic_conn *qc, int server)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:361,1
    - Dst: quic_stats_transp_err_count_inc
      Src: /src/haproxy/src/quic_conn.c:364,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_conn.c:367,1
    - Dst: struct quic_conn*::qcc::app_ops::inc_err_cnt
      Src: /src/haproxy/src/quic_conn.c:370,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - qc
    - frm
    argTypes:
    - struct quic_conn*
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: quic_conn_closed_err_count_inc
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - qc_is_conn_ready
    - TRACE_ENTER
    - struct quic_conn*::qcc::app_ops::inc_err_cnt
    - quic_stats_transp_err_count_inc
    linkageType: ''
    returnType: void
    signature: void quic_conn_closed_err_count_inc(struct quic_conn *qc, struct quic_frame
      *frm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_conn.c:387,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_conn.c:389,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/quic_conn.c:395,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:398,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/quic_conn.c:401,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_conn.c:405,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:407,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - qc
    - closing
    argTypes:
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 409
    functionName: qc_detach_th_ctx_list
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - LIST_NEXT
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - LIST_APPEND
    - qc_is_back
    - __ha_barrier_store
    linkageType: ''
    returnType: void
    signature: void qc_detach_th_ctx_list(struct quic_conn *qc, int closing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_hkdf_extract_and_expand
      Src: /src/haproxy/src/quic_conn.c:428,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/quic_conn.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pos
    - len
    - salt
    - saltlen
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: quic_stateless_reset_token_cpy
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - EVP_sha256
    - quic_hkdf_extract_and_expand
    linkageType: ''
    returnType: int
    signature: "int quic_stateless_reset_token_cpy(unsigned char *pos, size_t len,\n
      \                                  const unsigned char *salt, size_t saltlen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_conn.c:444,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:447,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:450,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_conn.c:453,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:455,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:459,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_conn.c:461,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:463,1
    - Dst: quic_generate_token
      Src: /src/haproxy/src/quic_conn.c:468,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:471,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:475,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:477,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_conn.c:487,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_conn.c:492,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:494,1
    - Dst: quic_cid_alloc
      Src: /src/haproxy/src/quic_conn.c:498,1
    - Dst: qc_cid_side
      Src: /src/haproxy/src/quic_conn.c:498,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_conn.c:500,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:501,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:505,1
    - Dst: quic_cid_generate_from_hash
      Src: /src/haproxy/src/quic_conn.c:506,1
    - Dst: quic_cid_generate_random
      Src: /src/haproxy/src/quic_conn.c:507,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_conn.c:509,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:510,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:511,1
    - Dst: quic_cid_insert
      Src: /src/haproxy/src/quic_conn.c:515,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:516,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:517,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_conn.c:518,1
    - Dst: quic_cid_register_seq_num
      Src: /src/haproxy/src/quic_conn.c:522,1
    - Dst: quic_connection_id_to_frm_cpy
      Src: /src/haproxy/src/quic_conn.c:523,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:524,1
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/quic_conn.c:527,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:532,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_conn.c:537,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_conn.c:538,1
    - Dst: eb64_lookup_ge
      Src: /src/haproxy/src/quic_conn.c:543,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_conn.c:547,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_conn.c:551,1
    - Dst: quic_cid_delete
      Src: /src/haproxy/src/quic_conn.c:552,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_conn.c:554,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:555,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 2
    argNames:
    - qc
    - to_frm_list
    argTypes:
    - struct quic_conn*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 558
    functionName: quic_build_post_handshake_frames
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - qc_cid_side
    - LIST_SPLICE
    - eb64_delete
    - quic_cid_alloc
    - list_for_each_entry_safe
    - TRACE_ENTER
    - qc_is_back
    - LIST_APPEND
    - qc_frm_alloc
    - quic_cid_insert
    - eb64_next
    - pool_free
    - eb64_entry
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_cid_delete
    - qc_frm_free
    - quic_cid_generate_from_hash
    - quic_connection_id_to_frm_cpy
    - LIST_HEAD_INIT
    - QUIC_MIN
    - TRACE_STATE
    - BUG_ON
    - eb64_lookup_ge
    - quic_cid_register_seq_num
    - quic_cid_generate_random
    - quic_generate_token
    linkageType: ''
    returnType: int
    signature: "int quic_build_post_handshake_frames(struct quic_conn *qc,\n                                     struct
      list *to_frm_list)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_conn.c:563,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:566,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:567,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:569,1
    - Dst: qc_rcv_buf
      Src: /src/haproxy/src/quic_conn.c:569,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:570,1
    - Dst: qc_kill_conn
      Src: /src/haproxy/src/quic_conn.c:571,1
    - Dst: quic_build_post_handshake_frames
      Src: /src/haproxy/src/quic_conn.c:581,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:586,1
    - Dst: qc_dgrams_retransmit
      Src: /src/haproxy/src/quic_conn.c:588,1
    - Dst: qc_treat_rx_pkts
      Src: /src/haproxy/src/quic_conn.c:592,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:593,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:599,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:605,1
    - Dst: qel_need_sending
      Src: /src/haproxy/src/quic_conn.c:610,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_conn.c:611,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_conn.c:613,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:614,1
    - Dst: quic_conn_release
      Src: /src/haproxy/src/quic_conn.c:620,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:625,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 561
    functionDepth: 5
    functionLinenumber: 561
    functionLinenumberEnd: 627
    functionName: quic_conn_app_io_cb
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - qc_treat_rx_pkts
    - quic_build_post_handshake_frames
    - qel_register_send
    - TRACE_STATE
    - qc_test_fd
    - TRACE_ERROR
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - qc_rcv_buf
    - LIST_HEAD_INIT
    - qc_send
    - quic_conn_release
    - qc_kill_conn
    - qel_need_sending
    - qc_dgrams_retransmit
    linkageType: ''
    returnType: struct task
    signature: struct task *quic_conn_app_io_cb(struct task *t, void *context, unsigned
      int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:633,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:635,1
    - Dst: qc_release_fd
      Src: /src/haproxy/src/quic_conn.c:636,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_conn.c:638,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/quic_conn.c:640,1
    - Dst: free_quic_conn_cids
      Src: /src/haproxy/src/quic_conn.c:641,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:642,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:644,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:647,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - cc_qc
    argTypes:
    - struct quic_conn_closed*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 650
    functionName: quic_release_cc_conn
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - task_destroy
    - TRACE_ENTER
    - free_quic_conn_cids
    - qc_is_back
    - qc_release_fd
    - pool_free
    - tasklet_free
    linkageType: ''
    returnType: void
    signature: void quic_release_cc_conn(struct quic_conn_closed *cc_qc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:662,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:664,1
    - Dst: qc_rcv_buf
      Src: /src/haproxy/src/quic_conn.c:664,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:665,1
    - Dst: quic_may_send_bytes
      Src: /src/haproxy/src/quic_conn.c:672,1
    - Dst: b_make
      Src: /src/haproxy/src/quic_conn.c:675,1
    - Dst: qc_snd_buf
      Src: /src/haproxy/src/quic_conn.c:677,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:678,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:685,1
    - Dst: quic_release_cc_conn
      Src: /src/haproxy/src/quic_conn.c:690,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 653
    functionDepth: 5
    functionLinenumber: 653
    functionLinenumberEnd: 695
    functionName: quic_conn_closed_io_cb
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - qc_test_fd
    - qc_snd_buf
    - TRACE_ENTER
    - quic_release_cc_conn
    - quic_may_send_bytes
    - qc_rcv_buf
    - b_make
    linkageType: ''
    returnType: struct task
    signature: struct task *quic_conn_closed_io_cb(struct task *t, void *context,
      unsigned int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_release_cc_conn
      Src: /src/haproxy/src/quic_conn.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 705
    functionName: quic_conn_closed_idle_timer_task
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - quic_release_cc_conn
    linkageType: ''
    returnType: struct task
    signature: struct task *quic_conn_closed_idle_timer_task(struct task *t, void
      *ctx, unsigned int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_conn.c:717,1
    - Dst: quic_conn_mv_cids_to_cc_conn
      Src: /src/haproxy/src/quic_conn.c:721,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:723,1
    - Dst: qc_init_fd
      Src: /src/haproxy/src/quic_conn.c:729,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_conn.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 774
    functionName: qc_new_cc_conn
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - qc_is_back
    - TRACE_PRINTF
    - qc_init_fd
    - quic_conn_mv_cids_to_cc_conn
    linkageType: ''
    returnType: struct quic_conn_closed
    signature: struct quic_conn_closed *qc_new_cc_conn(struct quic_conn *qc)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_conn.c:780,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:786,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:789,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:792,1
    - Dst: qc_ssl_do_hanshake
      Src: /src/haproxy/src/quic_conn.c:794,1
    - Dst: qc_ssl_provide_all_quic_data
      Src: /src/haproxy/src/quic_conn.c:796,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/quic_conn.c:798,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:802,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:808,1
    - Dst: qc_dgrams_retransmit
      Src: /src/haproxy/src/quic_conn.c:810,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:814,1
    - Dst: qc_rcv_buf
      Src: /src/haproxy/src/quic_conn.c:814,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:815,1
    - Dst: qc_kill_conn
      Src: /src/haproxy/src/quic_conn.c:816,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:821,1
    - Dst: qc_treat_rx_pkts
      Src: /src/haproxy/src/quic_conn.c:825,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:833,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:834,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:844,1
    - Dst: quic_tls_pktns_is_dcd
      Src: /src/haproxy/src/quic_conn.c:845,1
    - Dst: quic_tls_pktns_is_dcd
      Src: /src/haproxy/src/quic_conn.c:849,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:855,1
    - Dst: quic_pktns_discard
      Src: /src/haproxy/src/quic_conn.c:856,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_conn.c:857,1
    - Dst: qc_el_rx_pkts_del
      Src: /src/haproxy/src/quic_conn.c:858,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_conn.c:859,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:860,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:866,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_conn.c:879,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_conn.c:882,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_conn.c:883,1
    - Dst: quic_rx_packet_refdec
      Src: /src/haproxy/src/quic_conn.c:884,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:905,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:906,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_conn.c:914,1
    - Dst: qel_need_sending
      Src: /src/haproxy/src/quic_conn.c:915,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_conn.c:916,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_conn.c:919,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:920,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:932,1
    - Dst: quic_tls_pktns_is_dcd
      Src: /src/haproxy/src/quic_conn.c:932,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:935,1
    - Dst: quic_pktns_discard
      Src: /src/haproxy/src/quic_conn.c:936,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_conn.c:937,1
    - Dst: qc_el_rx_pkts_del
      Src: /src/haproxy/src/quic_conn.c:938,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_conn.c:939,1
    - Dst: qc_txb_release
      Src: /src/haproxy/src/quic_conn.c:942,1
    - Dst: quic_tls_pktns_is_dcd
      Src: /src/haproxy/src/quic_conn.c:949,1
    - Dst: qc_need_sending
      Src: /src/haproxy/src/quic_conn.c:950,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:954,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_conn.c:955,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:956,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_conn.c:957,1
    - Dst: quic_nictx_free
      Src: /src/haproxy/src/quic_conn.c:959,1
    - Dst: quic_conn_release
      Src: /src/haproxy/src/quic_conn.c:963,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:968,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:969,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 110
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 777
    functionDepth: 5
    functionLinenumber: 777
    functionLinenumberEnd: 971
    functionName: quic_conn_io_cb
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - qc_treat_rx_pkts
    - HA_ATOMIC_LOAD
    - qc_test_fd
    - list_for_each_entry_safe
    - TRACE_ENTER
    - qc_is_back
    - qc_send
    - qc_release_pktns_frms
    - qc_need_sending
    - TRACE_DEVEL
    - quic_pktns_discard
    - quic_conn_release
    - qc_ssl_do_hanshake
    - quic_nictx_free
    - qc_kill_conn
    - qc_enc_level_free
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - LIST_DEL_INIT
    - tasklet_wakeup
    - qc_set_timer
    - qc_rcv_buf
    - qc_ssl_provide_all_quic_data
    - LIST_HEAD_INIT
    - qc_dgrams_retransmit
    - qel_register_send
    - TRACE_STATE
    - quic_rx_packet_refdec
    - list_for_each_entry
    - quic_pktns_release
    - qc_txb_release
    - LIST_ISEMPTY
    - qc_el_rx_pkts_del
    - HA_ATOMIC_AND
    - qel_need_sending
    - quic_tls_pktns_is_dcd
    linkageType: ''
    returnType: struct task
    signature: struct task *quic_conn_io_cb(struct task *t, void *context, unsigned
      int state)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:979,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:980,1
    - Dst: quic_loss_pktns
      Src: /src/haproxy/src/quic_conn.c:984,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:987,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_conn.c:991,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_conn.c:992,1
    - Dst: qc_packet_loss_lookup
      Src: /src/haproxy/src/quic_conn.c:994,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_conn.c:995,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:996,1
    - Dst: qc_release_lost_pkts
      Src: /src/haproxy/src/quic_conn.c:997,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_conn.c:998,1
    - Dst: quic_pto_pktns
      Src: /src/haproxy/src/quic_conn.c:1003,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1005,1
    - Dst: qc_may_probe_ipktns
      Src: /src/haproxy/src/quic_conn.c:1010,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1013,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1016,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1021,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1025,1
    - Dst: qc_may_probe_ipktns
      Src: /src/haproxy/src/quic_conn.c:1029,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1031,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1034,1
    - Dst: qc_notify_send
      Src: /src/haproxy/src/quic_conn.c:1041,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1042,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:1048,1
    - Dst: quic_tls_has_tx_sec
      Src: /src/haproxy/src/quic_conn.c:1049,1
    - Dst: quic_tls_has_tx_sec
      Src: /src/haproxy/src/quic_conn.c:1051,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:1055,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1059,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1060,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 3
    argNames:
    - task
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 974
    functionDepth: 3
    functionLinenumber: 974
    functionLinenumberEnd: 1063
    functionName: qc_process_timer
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_STATE
    - TRACE_LEAVE
    - quic_pto_pktns
    - quic_loss_pktns
    - TRACE_ENTER
    - qc_packet_loss_lookup
    - tasklet_wakeup
    - qc_set_timer
    - qc_is_back
    - LIST_ISEMPTY
    - tick_isset
    - qc_notify_send
    - LIST_HEAD_INIT
    - quic_tls_has_tx_sec
    - qc_release_lost_pkts
    - qc_may_probe_ipktns
    linkageType: ''
    returnType: struct task
    signature: struct task *qc_process_timer(struct task *task, void *ctx, unsigned
      int state)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/src/quic_conn.c:1094,1
    - Dst: objt_server
      Src: /src/haproxy/src/quic_conn.c:1095,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_conn.c:1096,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1101,1
    - Dst: increment_sslconn
      Src: /src/haproxy/src/quic_conn.c:1103,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1105,1
    - Dst: increment_actconn
      Src: /src/haproxy/src/quic_conn.c:1110,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_conn.c:1112,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1113,1
    - Dst: quic_increment_curr_handshake
      Src: /src/haproxy/src/quic_conn.c:1117,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1119,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_conn.c:1124,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1126,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1141,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1143,1
    - Dst: qc_init_fd
      Src: /src/haproxy/src/quic_conn.c:1151,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1154,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1155,1
    - Dst: quic_tls_ku_reset
      Src: /src/haproxy/src/quic_conn.c:1172,1
    - Dst: quic_tls_ku_reset
      Src: /src/haproxy/src/quic_conn.c:1173,1
    - Dst: quic_tls_ku_reset
      Src: /src/haproxy/src/quic_conn.c:1174,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1183,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1186,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_conn.c:1188,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1190,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:1205,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_conn.c:1217,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:1226,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_conn.c:1235,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_conn.c:1240,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_conn.c:1243,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1250,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_conn.c:1255,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_conn.c:1260,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1262,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:1266,1
    - Dst: is_addr
      Src: /src/haproxy/src/quic_conn.c:1268,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/quic_conn.c:1270,1
    - Dst: qc_alloc_fd
      Src: /src/haproxy/src/quic_conn.c:1271,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:1276,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_conn.c:1277,1
    - Dst: qc_enc_level_alloc
      Src: /src/haproxy/src/quic_conn.c:1280,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1281,1
    - Dst: memset
      Src: /src/haproxy/src/quic_conn.c:1294,1
    - Dst: memset
      Src: /src/haproxy/src/quic_conn.c:1301,1
    - Dst: b_make
      Src: /src/haproxy/src/quic_conn.c:1302,1
    - Dst: quic_tls_ku_init
      Src: /src/haproxy/src/quic_conn.c:1312,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1313,1
    - Dst: quic_cc_path_init
      Src: /src/haproxy/src/quic_conn.c:1320,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_conn.c:1325,1
    - Dst: memset
      Src: /src/haproxy/src/quic_conn.c:1327,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_conn.c:1328,1
    - Dst: qc_lstnr_params_init
      Src: /src/haproxy/src/quic_conn.c:1331,1
    - Dst: qc_srv_params_init
      Src: /src/haproxy/src/quic_conn.c:1337,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/quic_conn.c:1344,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1346,1
    - Dst: qc_alloc_ssl_sock_ctx
      Src: /src/haproxy/src/quic_conn.c:1359,1
    - Dst: quic_conn_init_timer
      Src: /src/haproxy/src/quic_conn.c:1360,1
    - Dst: quic_conn_init_idle_timer_task
      Src: /src/haproxy/src/quic_conn.c:1361,1
    - Dst: qc_new_isecs
      Src: /src/haproxy/src/quic_conn.c:1367,1
    - Dst: memset
      Src: /src/haproxy/src/quic_conn.c:1371,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:1373,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:1374,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:1376,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:1377,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1379,1
    - Dst: quic_conn_release
      Src: /src/haproxy/src/quic_conn.c:1384,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1391,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1393,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1395,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1397,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 192
    argCount: 7
    argNames:
    - target
    - initial_pkt
    - token_odcid
    - conn
    - conn_id
    - local_addr
    - peer_addr
    argTypes:
    - void*
    - struct quic_rx_packet*
    - struct quic_cid*
    - struct connection*
    - struct quic_connection_id*
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1085
    functionDepth: 6
    functionLinenumber: 1085
    functionLinenumberEnd: 1399
    functionName: qc_new_conn
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - quic_tls_ku_reset
    - HA_ATOMIC_LOAD
    - qc_test_fd
    - TRACE_ENTER
    - qc_is_back
    - LIST_APPEND
    - increment_sslconn
    - HA_ATOMIC_INC
    - increment_actconn
    - objt_server
    - objt_listener
    - LIST_INIT
    - qc_alloc_fd
    - pool_alloc
    - tasklet_new
    - quic_err_transport
    - quic_cc_path_init
    - quic_conn_release
    - b_make
    - _HA_ATOMIC_DEC
    - qc_lstnr_params_init
    - TRACE_LEAVE
    - TRACE_ERROR
    - memcpy
    - quic_conn_init_timer
    - qc_srv_params_init
    - quic_tls_ku_init
    - __objt_server
    - qc_alloc_ssl_sock_ctx
    - _HA_ATOMIC_INC
    - EXTRA_COUNTERS_GET
    - TRACE_STATE
    - memset
    - qc_new_isecs
    - RAND_bytes
    - quic_conn_init_idle_timer_task
    - MT_LIST_INIT
    - quic_increment_curr_handshake
    - qc_enc_level_alloc
    - qc_init_fd
    - is_addr
    - TRACE_USER
    linkageType: ''
    returnType: struct quic_conn
    signature: "struct quic_conn *qc_new_conn(void *target,\n                              const
      struct quic_rx_packet *initial_pkt,\n                              const struct
      quic_cid *token_odcid,\n                              struct connection *conn,\n
      \                             struct quic_connection_id *conn_id,\n                              struct
      sockaddr_storage *local_addr,\n                              struct sockaddr_storage
      *peer_addr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1410,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1421,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1433,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:1448,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1450,1
    - Dst: qc_release_fd
      Src: /src/haproxy/src/quic_conn.c:1451,1
    - Dst: qc_alloc_fd
      Src: /src/haproxy/src/quic_conn.c:1453,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1460,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - qc
    - peer_addr
    - local_addr
    argTypes:
    - struct quic_conn*
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1406
    functionDepth: 2
    functionLinenumber: 1406
    functionLinenumberEnd: 1466
    functionName: qc_handle_conn_migration
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_ERROR
    - qc_test_fd
    - TRACE_LEAVE
    - TRACE_ENTER
    - qc_alloc_fd
    - qc_release_fd
    linkageType: ''
    returnType: int
    signature: "int qc_handle_conn_migration(struct quic_conn *qc,\n                             const
      struct sockaddr_storage *peer_addr,\n                             const struct
      sockaddr_storage *local_addr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1475,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1476,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1477,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1478,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1479,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1480,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1481,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1486,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1487,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1489,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1490,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1491,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1493
    functionName: quic_conn_prx_cntrs_update
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: void
    signature: void quic_conn_prx_cntrs_update(struct quic_conn *qc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1510,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1516,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1519,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:1529,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:1529,1
    - Dst: qc_new_cc_conn
      Src: /src/haproxy/src/quic_conn.c:1530,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_conn.c:1534,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/quic_conn.c:1536,1
    - Dst: free_quic_conn_cids
      Src: /src/haproxy/src/quic_conn.c:1538,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1539,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1541,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:1546,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:1546,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1547,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:1553,1
    - Dst: qc_release_fd
      Src: /src/haproxy/src/quic_conn.c:1555,1
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/src/quic_conn.c:1561,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/quic_conn.c:1562,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1563,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1564,1
    - Dst: cshared_add
      Src: /src/haproxy/src/quic_conn.c:1569,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_conn.c:1574,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_conn.c:1578,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_conn.c:1579,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1584,1
    - Dst: qc_stream_desc_free
      Src: /src/haproxy/src/quic_conn.c:1585,1
    - Dst: qc_free_ssl_sock_ctx
      Src: /src/haproxy/src/quic_conn.c:1589,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_conn.c:1591,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/quic_conn.c:1592,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1593,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_conn.c:1596,1
    - Dst: quic_tls_ku_free
      Src: /src/haproxy/src/quic_conn.c:1599,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1604,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1605,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1608,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:1611,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:1612,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:1613,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:1614,1
    - Dst: quic_tls_ctx_free
      Src: /src/haproxy/src/quic_conn.c:1616,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_conn.c:1618,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_conn.c:1619,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_conn.c:1620,1
    - Dst: qc_detach_th_ctx_list
      Src: /src/haproxy/src/quic_conn.c:1622,1
    - Dst: quic_conn_prx_cntrs_update
      Src: /src/haproxy/src/quic_conn.c:1624,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1625,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_conn.c:1629,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1631,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:1631,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1632,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1639,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:1641,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1642,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_conn.c:1645,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1646,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1647,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1651,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1654,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1656,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 89
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1503
    functionDepth: 4
    functionLinenumber: 1503
    functionLinenumberEnd: 1658
    functionName: quic_conn_release
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 4
    functionsReached:
    - unlikely
    - qc_test_fd
    - list_for_each_entry_safe
    - TRACE_ENTER
    - free_quic_conn_cids
    - qc_is_back
    - MT_LIST_INLIST
    - qc_stream_desc_free
    - qc_free_ssl_sock_ctx
    - qc_release_fd
    - eb64_next
    - task_destroy
    - qc_detach_th_ctx_list
    - eb64_first
    - _HA_ATOMIC_DEC
    - qc_enc_level_free
    - pool_free
    - quic_tls_ctx_free
    - MT_LIST_DELETE
    - TRACE_PROTO
    - eb64_entry
    - TRACE_LEAVE
    - cshared_add
    - LIST_DELETE
    - qc_new_cc_conn
    - BUG_ON
    - quic_pktns_release
    - HA_ATOMIC_DEC
    - quic_tls_ku_free
    - quic_conn_prx_cntrs_update
    - tasklet_free
    linkageType: ''
    returnType: int
    signature: int quic_conn_release(struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1667,1
    - Dst: task_new_here
      Src: /src/haproxy/src/quic_conn.c:1669,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1671,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1683
    functionName: quic_conn_init_timer
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ENTER
    - TRACE_ERROR
    - task_new_here
    linkageType: ''
    returnType: int
    signature: int quic_conn_init_timer(struct quic_conn *qc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1691,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1695,1
    - Dst: MIN
      Src: /src/haproxy/src/quic_conn.c:1712,1
    - Dst: quic_pto
      Src: /src/haproxy/src/quic_conn.c:1712,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/src/quic_conn.c:1723,1
    - Dst: quic_pto
      Src: /src/haproxy/src/quic_conn.c:1723,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_conn.c:1726,1
    - Dst: quic_pto
      Src: /src/haproxy/src/quic_conn.c:1727,1
    - Dst: tick_add
      Src: /src/haproxy/src/quic_conn.c:1728,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/quic_conn.c:1728,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_conn.c:1735,1
    - Dst: tick_add
      Src: /src/haproxy/src/quic_conn.c:1736,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/quic_conn.c:1736,1
    - Dst: task_queue
      Src: /src/haproxy/src/quic_conn.c:1738,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1739,1
    - Dst: tick_first
      Src: /src/haproxy/src/quic_conn.c:1743,1
    - Dst: tick_first
      Src: /src/haproxy/src/quic_conn.c:1745,1
    - Dst: task_queue
      Src: /src/haproxy/src/quic_conn.c:1746,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1747,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1751,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - qc
    - arm_ack
    argTypes:
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1687
    functionDepth: 1
    functionLinenumber: 1687
    functionLinenumberEnd: 1752
    functionName: qc_idle_timer_do_rearm
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - quic_pto
    - MS_TO_TICKS
    - TRACE_ENTER
    - task_queue
    - QUIC_MAX
    - tick_first
    - TRACE_PRINTF
    - tick_isset
    - MIN
    - tick_add
    linkageType: ''
    returnType: void
    signature: void qc_idle_timer_do_rearm(struct quic_conn *qc, int arm_ack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1761,1
    - Dst: qc_idle_timer_do_rearm
      Src: /src/haproxy/src/quic_conn.c:1769,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - qc
    - read
    - arm_ack
    argTypes:
    - struct quic_conn*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1759
    functionDepth: 2
    functionLinenumber: 1759
    functionLinenumberEnd: 1773
    functionName: qc_idle_timer_rearm
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    - qc_idle_timer_do_rearm
    linkageType: ''
    returnType: void
    signature: void qc_idle_timer_rearm(struct quic_conn *qc, int read, int arm_ack)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1780,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/quic_conn.c:1782,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/quic_conn.c:1785,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1786,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:1795,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1801,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_conn.c:1805,1
    - Dst: quic_conn_release
      Src: /src/haproxy/src/quic_conn.c:1812,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_conn.c:1816,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1827,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1776
    functionDepth: 5
    functionLinenumber: 1776
    functionLinenumberEnd: 1829
    functionName: qc_idle_timer_task
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - task_destroy
    - tasklet_wakeup
    - TRACE_ENTER
    - qc_notify_err
    - tick_is_expired
    - quic_conn_release
    linkageType: ''
    returnType: struct task
    signature: struct task *qc_idle_timer_task(struct task *t, void *ctx, unsigned
      int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1840,1
    - Dst: task_new_here
      Src: /src/haproxy/src/quic_conn.c:1844,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1846,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/quic_conn.c:1853,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/quic_conn.c:1853,1
    - Dst: qc_idle_timer_rearm
      Src: /src/haproxy/src/quic_conn.c:1854,1
    - Dst: task_queue
      Src: /src/haproxy/src/quic_conn.c:1855,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - qc
    - px
    argTypes:
    - struct quic_conn*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1834
    functionDepth: 3
    functionLinenumber: 1834
    functionLinenumberEnd: 1861
    functionName: quic_conn_init_idle_timer_task
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - MS_TO_TICKS
    - TRACE_ENTER
    - task_queue
    - tick_add_ifset
    - qc_idle_timer_rearm
    - task_new_here
    linkageType: ''
    returnType: int
    signature: "int quic_conn_init_idle_timer_task(struct quic_conn *qc,\n                                          struct
      proxy *px)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/quic_conn.c:1870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1866
    functionDepth: 1
    functionLinenumber: 1866
    functionLinenumberEnd: 1878
    functionName: qc_supported_version
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: struct quic_version
    signature: struct quic_version *qc_supported_version(uint32_t version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/haproxy/src/quic_conn.c:1890,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_conn.c:1892,1
    - Dst: quic_cmp_cid_conn
      Src: /src/haproxy/src/quic_conn.c:1903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - qc
    - dcid
    - dcid_len
    argTypes:
    - struct quic_conn*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1886
    functionDepth: 2
    functionLinenumber: 1886
    functionLinenumberEnd: 1904
    functionName: qc_check_dcid
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - memcmp
    - quic_cmp_cid_conn
    linkageType: ''
    returnType: int
    signature: int qc_check_dcid(struct quic_conn *qc, unsigned char *dcid, size_t
      dcid_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1916,1
    - Dst: quic_cc_path_prep_data
      Src: /src/haproxy/src/quic_conn.c:1926,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:1927,1
    - Dst: fd_send_active
      Src: /src/haproxy/src/quic_conn.c:1927,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:1928,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_conn.c:1940,1
    - Dst: qcc_notify_buf
      Src: /src/haproxy/src/quic_conn.c:1941,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1912
    functionDepth: 1
    functionLinenumber: 1912
    functionLinenumberEnd: 1944
    functionName: qc_notify_send
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 3
    functionsReached:
    - quic_cc_path_prep_data
    - TRACE_STATE
    - qc_test_fd
    - qc_is_conn_ready
    - tasklet_wakeup
    - qcc_notify_buf
    - fd_send_active
    linkageType: ''
    returnType: int
    signature: int qc_notify_send(struct quic_conn *qc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1949,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_conn.c:1951,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1952,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:1963,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/quic_conn.c:1970,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1971,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1974,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1947
    functionDepth: 2
    functionLinenumber: 1947
    functionLinenumberEnd: 1975
    functionName: qc_notify_err
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 2
    functionsReached:
    - TRACE_STATE
    - TRACE_ERROR
    - qc_is_conn_ready
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - conn_create_mux
    linkageType: ''
    returnType: void
    signature: void qc_notify_err(struct quic_conn *qc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1988,1
    - Dst: task_new_on
      Src: /src/haproxy/src/quic_conn.c:1993,1
    - Dst: task_new_on
      Src: /src/haproxy/src/quic_conn.c:1994,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/quic_conn.c:1995,1
    - Dst: task_kill
      Src: /src/haproxy/src/quic_conn.c:2000,1
    - Dst: task_kill
      Src: /src/haproxy/src/quic_conn.c:2008,1
    - Dst: tasklet_kill
      Src: /src/haproxy/src/quic_conn.c:2017,1
    - Dst: qc_detach_th_ctx_list
      Src: /src/haproxy/src/quic_conn.c:2028,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:2032,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_conn.c:2036,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_conn.c:2037,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/quic_conn.c:2038,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:2040,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - qc
    - new_tid
    argTypes:
    - struct quic_conn*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 1983
    functionDepth: 2
    functionLinenumber: 1983
    functionLinenumberEnd: 2042
    functionName: qc_bind_tid_prep
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - task_kill
    - TRACE_LEAVE
    - task_destroy
    - qc_detach_th_ctx_list
    - TRACE_DEVEL
    - TRACE_ENTER
    - tasklet_new
    - tasklet_kill
    - task_new_on
    - tasklet_free
    linkageType: ''
    returnType: int
    signature: int qc_bind_tid_prep(struct quic_conn *qc, uint new_tid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:2057,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:2060,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:2069,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:2076,1
    - Dst: fd_migrate_on
      Src: /src/haproxy/src/quic_conn.c:2078,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_conn.c:2081,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:2089,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_conn.c:2089,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_conn.c:2090,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/quic_conn.c:2095,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:2098,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - qc
    - new_li
    argTypes:
    - struct quic_conn*
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2051
    functionDepth: 2
    functionLinenumber: 2051
    functionLinenumberEnd: 2099
    functionName: qc_bind_tid_commit
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - fd_migrate_on
    - HA_ATOMIC_STORE
    - eb64_next
    - eb64_entry
    - qc_test_fd
    - BUG_ON
    - HA_ATOMIC_LOAD
    - TRACE_LEAVE
    - TRACE_ENTER
    - eb64_first
    linkageType: ''
    returnType: void
    signature: void qc_bind_tid_commit(struct quic_conn *qc, struct listener *new_li)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:2106,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:2109,1
    - Dst: task_set_thread
      Src: /src/haproxy/src/quic_conn.c:2114,1
    - Dst: task_set_thread
      Src: /src/haproxy/src/quic_conn.c:2116,1
    - Dst: tasklet_set_tid
      Src: /src/haproxy/src/quic_conn.c:2117,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:2119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2120
    functionName: qc_bind_tid_reset
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - BUG_ON
    - tasklet_set_tid
    - TRACE_ENTER
    - task_set_thread
    linkageType: ''
    returnType: void
    signature: void qc_bind_tid_reset(struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:2125,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:2128,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:2137,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:2140,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:2141,1
    - Dst: qc_want_recv
      Src: /src/haproxy/src/quic_conn.c:2144,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_conn.c:2147,1
    - Dst: task_queue
      Src: /src/haproxy/src/quic_conn.c:2150,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:2154,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:2158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2123
    functionDepth: 3
    functionLinenumber: 2123
    functionLinenumberEnd: 2159
    functionName: qc_finalize_tid_rebind
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - HA_ATOMIC_LOAD
    - qc_want_recv
    - BUG_ON
    - task_queue
    - TRACE_ENTER
    - qc_set_timer
    - LIST_APPEND
    - tasklet_wakeup
    linkageType: ''
    returnType: void
    signature: void qc_finalize_tid_rebind(struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:77,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:78,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/thread.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: thread_harmless_till_end
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_OR
    - _HA_ATOMIC_LOAD
    - ha_thread_relax
    linkageType: ''
    returnType: void
    signature: void thread_harmless_till_end()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:93,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/thread.c:94,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:95,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:111,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:112,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/thread.c:116,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:125,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/thread.c:130,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/thread.c:131,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:135,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 142
    functionName: thread_isolate
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 15
    functionsReached:
    - _HA_ATOMIC_INC
    - ha_thread_relax
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - _HA_ATOMIC_CAS
    - __ha_barrier_atomic_store
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void thread_isolate()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:162,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:163,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/thread.c:164,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:165,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:181,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:182,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:183,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/thread.c:187,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:196,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/thread.c:200,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/thread.c:201,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:208,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:209,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 216
    functionName: thread_isolate_full
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 2
    functionsReached:
    - _HA_ATOMIC_INC
    - ha_thread_relax
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - _HA_ATOMIC_CAS
    - __ha_barrier_atomic_store
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void thread_isolate_full()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/thread.c:226,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/thread.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: thread_release
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 17
    functionsReached:
    - HA_ATOMIC_STORE
    - HA_ATOMIC_DEC
    linkageType: ''
    returnType: void
    signature: void thread_release()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/haproxy/src/thread.c:244,1
    - Dst: struct tgroup_info*::start
      Src: /src/haproxy/src/thread.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 252
    functionName: start_extra_tgroup_threads
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - struct tgroup_info*::start
    - pthread_create
    linkageType: ''
    returnType: void
    signature: void *start_extra_tgroup_threads(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/haproxy/src/thread.c:263,1
    - Dst: sigdelset
      Src: /src/haproxy/src/thread.c:264,1
    - Dst: sigdelset
      Src: /src/haproxy/src/thread.c:265,1
    - Dst: sigdelset
      Src: /src/haproxy/src/thread.c:266,1
    - Dst: sigdelset
      Src: /src/haproxy/src/thread.c:267,1
    - Dst: sigdelset
      Src: /src/haproxy/src/thread.c:268,1
    - Dst: pthread_sigmask
      Src: /src/haproxy/src/thread.c:269,1
    - Dst: pthread_self
      Src: /src/haproxy/src/thread.c:272,1
    - Dst: pthread_create
      Src: /src/haproxy/src/thread.c:280,1
    - Dst: start_extra_tgroup_threads
      Src: /src/haproxy/src/thread.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - (*handler)(void *)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 286
    functionName: setup_extra_threads
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - sigfillset
    - sigdelset
    - pthread_sigmask
    - start_extra_tgroup_threads
    - pthread_self
    linkageType: ''
    returnType: void
    signature: void setup_extra_threads(void *(*handler)(void *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/haproxy/src/thread.c:297,1
    - Dst: show_lock_stats
      Src: /src/haproxy/src/thread.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: wait_for_threads_completion
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - show_lock_stats
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void wait_for_threads_completion()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/thread.c:313,1
    - Dst: ffsl
      Src: /src/haproxy/src/thread.c:319,1
    - Dst: pthread_mach_thread_np
      Src: /src/haproxy/src/thread.c:323,1
    - Dst: pthread_self
      Src: /src/haproxy/src/thread.c:323,1
    - Dst: thread_policy_set
      Src: /src/haproxy/src/thread.c:324,1
    - Dst: pthread_setaffinity_np
      Src: /src/haproxy/src/thread.c:330,1
    - Dst: pthread_self
      Src: /src/haproxy/src/thread.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 334
    functionName: set_thread_cpu_affinity
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pthread_mach_thread_np
    - thread_policy_set
    - ffsl
    - pthread_setaffinity_np
    - pthread_self
    - ha_cpuset_count
    linkageType: ''
    returnType: void
    signature: void set_thread_cpu_affinity()
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - thr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 364
    functionName: ha_get_pthread_id
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long ha_get_pthread_id(unsigned int thr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_kill
      Src: /src/haproxy/src/thread.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - thr
    - sig
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: ha_tkill
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 4
    functionsReached:
    - pthread_kill
    linkageType: ''
    returnType: void
    signature: void ha_tkill(unsigned int thr, int sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_kill
      Src: /src/haproxy/src/thread.c:384,1
    - Dst: raise
      Src: /src/haproxy/src/thread.c:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 387
    functionName: ha_tkillall
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - raise
    - pthread_kill
    linkageType: ''
    returnType: void
    signature: void ha_tkillall(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sched_yield
      Src: /src/haproxy/src/thread.c:392,1
    - Dst: pl_cpu_relax
      Src: /src/haproxy/src/thread.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 396
    functionName: ha_thread_relax
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 7
    functionsReached:
    - sched_yield
    - pl_cpu_relax
    linkageType: ''
    returnType: void
    signature: void ha_thread_relax(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/thread.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - HA_SPINLOCK_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: ha_spin_init
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_INIT
    linkageType: ''
    returnType: void
    signature: void ha_spin_init(HA_SPINLOCK_T *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/thread.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - HA_RWLOCK_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: ha_rwlock_init
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    linkageType: ''
    returnType: void
    signature: void ha_rwlock_init(HA_RWLOCK_T *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_detect_bound
      Src: /src/haproxy/src/thread.c:419,1
    - Dst: sysconf
      Src: /src/haproxy/src/thread.c:422,1
    - Dst: MAX
      Src: /src/haproxy/src/thread.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 427
    functionName: thread_cpus_enabled
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - sysconf
    - MAX
    - ha_cpuset_detect_bound
    linkageType: ''
    returnType: int
    signature: int thread_cpus_enabled()
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 101
    argCount: 1
    argNames:
    - label
    argTypes:
    - enum lock_label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 487
    functionName: lock_label
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 1
    functionsReached:
    - abort
    linkageType: ''
    returnType: char
    signature: char *lock_label(enum lock_label label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lbl
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 505
    functionName: get_lock_stat_num_read
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_lock_stat_num_read(int lbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lbl
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 515
    functionName: get_lock_stat_num_seek
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_lock_stat_num_seek(int lbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lbl
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 525
    functionName: get_lock_stat_num_write
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_lock_stat_num_write(int lbl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_lock_stat_num_write
      Src: /src/haproxy/src/thread.c:533,1
    - Dst: get_lock_stat_num_seek
      Src: /src/haproxy/src/thread.c:534,1
    - Dst: get_lock_stat_num_read
      Src: /src/haproxy/src/thread.c:535,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:538,1
    - Dst: lock_label
      Src: /src/haproxy/src/thread.c:540,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:544,1
    - Dst: lock_label
      Src: /src/haproxy/src/thread.c:546,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:549,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:563,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:564,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:568,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:582,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:583,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:587,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:601,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:602,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 605
    functionName: show_lock_stats
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 1
    functionsReached:
    - get_lock_stat_num_seek
    - lock_label
    - get_lock_stat_num_read
    - get_lock_stat_num_write
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_lock_stats()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/thread.c:609,1
    - Dst: __RWLOCK_INIT
      Src: /src/haproxy/src/thread.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct ha_rwlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 611
    functionName: __ha_rwlock_init
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - memset
    - __RWLOCK_INIT
    linkageType: ''
    returnType: void
    signature: void __ha_rwlock_init(struct ha_rwlock *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __RWLOCK_DESTROY
      Src: /src/haproxy/src/thread.c:615,1
    - Dst: memset
      Src: /src/haproxy/src/thread.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct ha_rwlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: __ha_rwlock_destroy
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - __RWLOCK_DESTROY
    - memset
    linkageType: ''
    returnType: void
    signature: void __ha_rwlock_destroy(struct ha_rwlock *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:629,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:631,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:633,1
    - Dst: __RWLOCK_WRLOCK
      Src: /src/haproxy/src/thread.c:634,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:635,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:636,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:639,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:640,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 648
    functionName: __ha_rwlock_wrlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - __RWLOCK_WRLOCK
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - HA_ATOMIC_OR
    - HA_ATOMIC_AND
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: void
    signature: "void __ha_rwlock_wrlock(enum lock_label lbl, struct ha_rwlock *l,\n
      \                       const char *func, const char *file, int line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:660,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:663,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:665,1
    - Dst: __RWLOCK_TRYWRLOCK
      Src: /src/haproxy/src/thread.c:666,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:667,1
    - Dst: unlikely
      Src: /src/haproxy/src/thread.c:668,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:669,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:672,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:675,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:676,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 686
    functionName: __ha_rwlock_trywrlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - unlikely
    - flsnz
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - HA_ATOMIC_OR
    - HA_ATOMIC_AND
    - HA_ATOMIC_ADD
    - __RWLOCK_TRYWRLOCK
    linkageType: ''
    returnType: int
    signature: "int __ha_rwlock_trywrlock(enum lock_label lbl, struct ha_rwlock *l,\n
      \                         const char *func, const char *file, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/thread.c:694,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:696,1
    - Dst: __RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/thread.c:704,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 707
    functionName: __ha_rwlock_wrunlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HA_ATOMIC_INC
    - __RWLOCK_WRUNLOCK
    - abort
    linkageType: ''
    returnType: void
    signature: "void __ha_rwlock_wrunlock(enum lock_label lbl,struct ha_rwlock *l,\n
      \                         const char *func, const char *file, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:717,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:719,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:721,1
    - Dst: __RWLOCK_RDLOCK
      Src: /src/haproxy/src/thread.c:722,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:723,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:724,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:727,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:728,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:730,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - lbl
    - l
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 733
    functionName: __ha_rwlock_rdlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - HA_ATOMIC_AND
    - HA_ATOMIC_OR
    - __RWLOCK_RDLOCK
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: void
    signature: void __ha_rwlock_rdlock(enum lock_label lbl,struct ha_rwlock *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:744,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:747,1
    - Dst: __RWLOCK_TRYRDLOCK
      Src: /src/haproxy/src/thread.c:748,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:749,1
    - Dst: unlikely
      Src: /src/haproxy/src/thread.c:751,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:754,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:757,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:758,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - lbl
    - l
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 763
    functionName: __ha_rwlock_tryrdlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - unlikely
    - flsnz
    - __RWLOCK_TRYRDLOCK
    - abort
    - HA_ATOMIC_INC
    - now_mono_time
    - HA_ATOMIC_OR
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: int
    signature: int __ha_rwlock_tryrdlock(enum lock_label lbl,struct ha_rwlock *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/thread.c:770,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:772,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:775,1
    - Dst: __RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/thread.c:777,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - lbl
    - l
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 780
    functionName: __ha_rwlock_rdunlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - unlikely
    - abort
    - __RWLOCK_RDUNLOCK
    - HA_ATOMIC_AND
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void __ha_rwlock_rdunlock(enum lock_label lbl,struct ha_rwlock *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:791,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:794,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:796,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:798,1
    - Dst: __RWLOCK_WRTORD
      Src: /src/haproxy/src/thread.c:799,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:800,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:801,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:804,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:805,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:807,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:808,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 814
    functionName: __ha_rwlock_wrtord
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - HA_ATOMIC_OR
    - __RWLOCK_WRTORD
    - HA_ATOMIC_AND
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: void
    signature: "void __ha_rwlock_wrtord(enum lock_label lbl, struct ha_rwlock *l,\n
      \                       const char *func, const char *file, int line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:825,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:828,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:830,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:832,1
    - Dst: __RWLOCK_WRTOSK
      Src: /src/haproxy/src/thread.c:833,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:834,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:835,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:838,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:839,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:841,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:842,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 816
    functionDepth: 2
    functionLinenumber: 816
    functionLinenumberEnd: 848
    functionName: __ha_rwlock_wrtosk
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - HA_ATOMIC_OR
    - HA_ATOMIC_AND
    - HA_ATOMIC_ADD
    - __RWLOCK_WRTOSK
    linkageType: ''
    returnType: void
    signature: "void __ha_rwlock_wrtosk(enum lock_label lbl, struct ha_rwlock *l,\n
      \                       const char *func, const char *file, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:859,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:861,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:863,1
    - Dst: __RWLOCK_SKLOCK
      Src: /src/haproxy/src/thread.c:864,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:865,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:866,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:869,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:870,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:872,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 878
    functionName: __ha_rwlock_sklock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - HA_ATOMIC_OR
    - HA_ATOMIC_AND
    - HA_ATOMIC_ADD
    - __RWLOCK_SKLOCK
    linkageType: ''
    returnType: void
    signature: "void __ha_rwlock_sklock(enum lock_label lbl, struct ha_rwlock *l,\n
      \                       const char *func, const char *file, int line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:889,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:892,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:894,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:896,1
    - Dst: __RWLOCK_SKTOWR
      Src: /src/haproxy/src/thread.c:897,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:898,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:899,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:902,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:903,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:905,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:906,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:911,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 912
    functionName: __ha_rwlock_sktowr
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_INC
    - abort
    - __RWLOCK_SKTOWR
    - now_mono_time
    - HA_ATOMIC_OR
    - HA_ATOMIC_AND
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: void
    signature: "void __ha_rwlock_sktowr(enum lock_label lbl, struct ha_rwlock *l,\n
      \                       const char *func, const char *file, int line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:923,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:926,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:928,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:930,1
    - Dst: __RWLOCK_SKTORD
      Src: /src/haproxy/src/thread.c:931,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:932,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:933,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:936,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:937,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:939,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:940,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 946
    functionName: __ha_rwlock_sktord
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - HA_ATOMIC_OR
    - __RWLOCK_SKTORD
    - HA_ATOMIC_AND
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: void
    signature: "void __ha_rwlock_sktord(enum lock_label lbl, struct ha_rwlock *l,\n
      \                       const char *func, const char *file, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:954,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:956,1
    - Dst: __RWLOCK_SKUNLOCK
      Src: /src/haproxy/src/thread.c:961,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 964
    functionName: __ha_rwlock_skunlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_AND
    - HA_ATOMIC_INC
    - abort
    - __RWLOCK_SKUNLOCK
    linkageType: ''
    returnType: void
    signature: "void __ha_rwlock_skunlock(enum lock_label lbl,struct ha_rwlock *l,\n
      \                         const char *func, const char *file, int line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:976,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:978,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:980,1
    - Dst: __RWLOCK_TRYSKLOCK
      Src: /src/haproxy/src/thread.c:981,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:982,1
    - Dst: likely
      Src: /src/haproxy/src/thread.c:984,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:986,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:989,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:990,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:991,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 966
    functionDepth: 2
    functionLinenumber: 966
    functionLinenumberEnd: 999
    functionName: __ha_rwlock_trysklock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - __RWLOCK_TRYSKLOCK
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - likely
    - HA_ATOMIC_OR
    - HA_ATOMIC_AND
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: int
    signature: "int __ha_rwlock_trysklock(enum lock_label lbl, struct ha_rwlock *l,\n
      \                         const char *func, const char *file, int line)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:1011,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:1014,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:1016,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1018,1
    - Dst: __RWLOCK_TRYRDTOSK
      Src: /src/haproxy/src/thread.c:1019,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1020,1
    - Dst: likely
      Src: /src/haproxy/src/thread.c:1022,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:1024,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:1027,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:1028,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:1029,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:1030,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:1036,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1001
    functionDepth: 2
    functionLinenumber: 1001
    functionLinenumberEnd: 1038
    functionName: __ha_rwlock_tryrdtosk
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - likely
    - HA_ATOMIC_OR
    - __RWLOCK_TRYRDTOSK
    - HA_ATOMIC_AND
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: int
    signature: "int __ha_rwlock_tryrdtosk(enum lock_label lbl, struct ha_rwlock *l,\n
      \                         const char *func, const char *file, int line)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:1050,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:1053,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:1055,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1057,1
    - Dst: __RWLOCK_TRYRDTOWR
      Src: /src/haproxy/src/thread.c:1058,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1059,1
    - Dst: likely
      Src: /src/haproxy/src/thread.c:1061,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:1063,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:1066,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:1067,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:1068,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:1069,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:1075,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1040
    functionDepth: 2
    functionLinenumber: 1040
    functionLinenumberEnd: 1077
    functionName: __ha_rwlock_tryrdtowr
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - likely
    - HA_ATOMIC_OR
    - HA_ATOMIC_AND
    - HA_ATOMIC_ADD
    - __RWLOCK_TRYRDTOWR
    linkageType: ''
    returnType: int
    signature: "int __ha_rwlock_tryrdtowr(enum lock_label lbl, struct ha_rwlock *l,\n
      \                         const char *func, const char *file, int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/thread.c:1082,1
    - Dst: __SPIN_INIT
      Src: /src/haproxy/src/thread.c:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct ha_spinlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1084
    functionName: __spin_init
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - memset
    - __SPIN_INIT
    linkageType: ''
    returnType: void
    signature: void __spin_init(struct ha_spinlock *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __SPIN_DESTROY
      Src: /src/haproxy/src/thread.c:1088,1
    - Dst: memset
      Src: /src/haproxy/src/thread.c:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct ha_spinlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1090
    functionName: __spin_destroy
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - memset
    - __SPIN_DESTROY
    linkageType: ''
    returnType: void
    signature: void __spin_destroy(struct ha_spinlock *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/thread.c:1100,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:1102,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:1105,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1107,1
    - Dst: __SPIN_LOCK
      Src: /src/haproxy/src/thread.c:1108,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1109,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:1110,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:1113,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:1114,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:1122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_spinlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1092
    functionDepth: 2
    functionLinenumber: 1092
    functionLinenumberEnd: 1123
    functionName: __spin_lock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - unlikely
    - flsnz
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - HA_ATOMIC_OR
    - __SPIN_LOCK
    - HA_ATOMIC_AND
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: void
    signature: "void __spin_lock(enum lock_label lbl, struct ha_spinlock *l,\n                 const
      char *func, const char *file, int line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/thread.c:1134,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:1136,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1140,1
    - Dst: __SPIN_TRYLOCK
      Src: /src/haproxy/src/thread.c:1141,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1142,1
    - Dst: unlikely
      Src: /src/haproxy/src/thread.c:1144,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:1147,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:1150,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:1151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_spinlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1125
    functionDepth: 2
    functionLinenumber: 1125
    functionLinenumberEnd: 1159
    functionName: __spin_trylock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - unlikely
    - flsnz
    - HA_ATOMIC_INC
    - abort
    - now_mono_time
    - __SPIN_TRYLOCK
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: int
    signature: "int __spin_trylock(enum lock_label lbl, struct ha_spinlock *l,\n                   const
      char *func, const char *file, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/thread.c:1167,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:1169,1
    - Dst: __SPIN_UNLOCK
      Src: /src/haproxy/src/thread.c:1177,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:1178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - lbl
    - l
    - func
    - file
    - line
    argTypes:
    - enum lock_label
    - struct ha_spinlock*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1179
    functionName: __spin_unlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HA_ATOMIC_INC
    - __SPIN_UNLOCK
    - abort
    linkageType: ''
    returnType: void
    signature: "void __spin_unlock(enum lock_label lbl, struct ha_spinlock *l,\n                   const
      char *func, const char *file, int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - rwlock
    - attr
    argTypes:
    - pthread_rwlock_t*
    - pthread_rwlockattr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1203
    functionName: pthread_rwlock_init
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock, const pthread_rwlockattr_t
      *restrict attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - pthread_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1211
    functionName: pthread_rwlock_destroy
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_rwlock_destroy(pthread_rwlock_t *rwlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl_lorw_rdlock
      Src: /src/haproxy/src/thread.c:1215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - pthread_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1217
    functionName: pthread_rwlock_rdlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pl_lorw_rdlock
    linkageType: ''
    returnType: int
    signature: int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl_cmpxchg
      Src: /src/haproxy/src/thread.c:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - pthread_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1222
    functionName: pthread_rwlock_tryrdlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pl_cmpxchg
    linkageType: ''
    returnType: int
    signature: int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_tryrdlock
      Src: /src/haproxy/src/thread.c:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rwlock
    - abstime
    argTypes:
    - pthread_rwlock_t*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1224
    functionDepth: 2
    functionLinenumber: 1224
    functionLinenumberEnd: 1227
    functionName: pthread_rwlock_timedrdlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pthread_rwlock_tryrdlock
    linkageType: ''
    returnType: int
    signature: int pthread_rwlock_timedrdlock(pthread_rwlock_t *restrict rwlock, const
      struct timespec *restrict abstime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl_lorw_wrlock
      Src: /src/haproxy/src/thread.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - pthread_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1233
    functionName: pthread_rwlock_wrlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pl_lorw_wrlock
    linkageType: ''
    returnType: int
    signature: int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl_cmpxchg
      Src: /src/haproxy/src/thread.c:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - pthread_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1238
    functionName: pthread_rwlock_trywrlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pl_cmpxchg
    linkageType: ''
    returnType: int
    signature: int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_trywrlock
      Src: /src/haproxy/src/thread.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rwlock
    - abstime
    argTypes:
    - pthread_rwlock_t*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1240
    functionDepth: 2
    functionLinenumber: 1240
    functionLinenumberEnd: 1243
    functionName: pthread_rwlock_timedwrlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pthread_rwlock_trywrlock
    linkageType: ''
    returnType: int
    signature: int pthread_rwlock_timedwrlock(pthread_rwlock_t *restrict rwlock, const
      struct timespec *restrict abstime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl_lorw_unlock
      Src: /src/haproxy/src/thread.c:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - pthread_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1249
    functionName: pthread_rwlock_unlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pl_lorw_unlock
    linkageType: ''
    returnType: int
    signature: int pthread_rwlock_unlock(pthread_rwlock_t *rwlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_exit
      Src: /src/haproxy/src/thread.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1265
    functionName: dummy_thread_function
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pthread_exit
    linkageType: ''
    returnType: void
    signature: void *dummy_thread_function(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/haproxy/src/thread.c:1270,1
    - Dst: pthread_join
      Src: /src/haproxy/src/thread.c:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1272
    functionName: preload_libgcc_s
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - pthread_create
    linkageType: ''
    returnType: void
    signature: void preload_libgcc_s(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: preload_libgcc_s
      Src: /src/haproxy/src/thread.c:1280,1
    - Dst: thread_cpus_enabled
      Src: /src/haproxy/src/thread.c:1283,1
    - Dst: MIN
      Src: /src/haproxy/src/thread.c:1284,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1286,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/thread.c:1288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1275
    functionDepth: 5
    functionLinenumber: 1275
    functionLinenumberEnd: 1289
    functionName: __thread_init
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - memprintf
    - hap_register_build_opts
    - MIN
    - thread_cpus_enabled
    - preload_libgcc_s
    linkageType: ''
    returnType: void
    signature: void __thread_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise
      Src: /src/haproxy/src/thread.c:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - thr
    - sig
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1298
    functionName: ha_tkill
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 4
    functionsReached:
    - raise
    linkageType: ''
    returnType: void
    signature: void ha_tkill(unsigned int thr, int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise
      Src: /src/haproxy/src/thread.c:1303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1304
    functionName: ha_tkillall
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - raise
    linkageType: ''
    returnType: void
    signature: void ha_tkillall(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sched_yield
      Src: /src/haproxy/src/thread.c:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1306
    functionDepth: 0
    functionLinenumber: 1306
    functionLinenumberEnd: 1311
    functionName: ha_thread_relax
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 7
    functionsReached:
    - sched_yield
    linkageType: ''
    returnType: void
    signature: void ha_thread_relax(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/thread.c:1333,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1321
    functionDepth: 2
    functionLinenumber: 1321
    functionLinenumberEnd: 1355
    functionName: thread_detect_binding_discrepancies
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_count
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int thread_detect_binding_discrepancies(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/thread.c:1370,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/thread.c:1371,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/thread.c:1372,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/thread.c:1377,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/thread.c:1378,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/thread.c:1383,1
    - Dst: ha_cpuset_detect_bound
      Src: /src/haproxy/src/thread.c:1385,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/thread.c:1386,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/thread.c:1389,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/thread.c:1390,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1393,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1362
    functionDepth: 2
    functionLinenumber: 1362
    functionLinenumberEnd: 1410
    functionName: thread_detect_more_than_cpus
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_zero
    - ha_cpuset_detect_bound
    - ha_cpuset_assign
    - ha_warning
    - ha_cpuset_or
    - ha_cpuset_count
    linkageType: ''
    returnType: int
    signature: int thread_detect_more_than_cpus(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/thread.c:1434,1
    - Dst: ha_alert
      Src: /src/haproxy/src/thread.c:1442,1
    - Dst: ha_alert
      Src: /src/haproxy/src/thread.c:1459,1
    - Dst: ha_alert
      Src: /src/haproxy/src/thread.c:1492,1
    - Dst: ha_alert
      Src: /src/haproxy/src/thread.c:1505,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1511,1
    - Dst: nbits
      Src: /src/haproxy/src/thread.c:1521,1
    - Dst: cpu_reorder_by_index
      Src: /src/haproxy/src/thread.c:1541,1
    - Dst: cpu_topo_debug
      Src: /src/haproxy/src/thread.c:1542,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/thread.c:1543,1
    - Dst: cpu_topo_dump_summary
      Src: /src/haproxy/src/thread.c:1544,1
    - Dst: printf
      Src: /src/haproxy/src/thread.c:1545,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1549
    functionName: thread_map_to_groups
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 1
    functionsReached:
    - nbits
    - printf
    - cpu_topo_debug
    - cpu_topo_dump_summary
    - ha_alert
    - ha_warning
    - chunk_reset
    - cpu_reorder_by_index
    linkageType: ''
    returnType: int
    signature: int thread_map_to_groups()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: thread_set_is_empty
      Src: /src/haproxy/src/thread.c:1570,1
    - Dst: nbits
      Src: /src/haproxy/src/thread.c:1594,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1613,1
    - Dst: nbits
      Src: /src/haproxy/src/thread.c:1618,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1633,1
    - Dst: thread_set_nth_group
      Src: /src/haproxy/src/thread.c:1645,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1646,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 3
    argNames:
    - ts
    - defgrp
    - err
    argTypes:
    - struct thread_set*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1562
    functionDepth: 5
    functionLinenumber: 1562
    functionLinenumberEnd: 1652
    functionName: thread_resolve_group_mask
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 1
    functionsReached:
    - nbits
    - memprintf
    - thread_set_nth_group
    - thread_set_is_empty
    linkageType: ''
    returnType: int
    signature: int thread_resolve_group_mask(struct thread_set *ts, int defgrp, char
      **err)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1676,1
    - Dst: ha_notice
      Src: /src/haproxy/src/thread.c:1690,1
    - Dst: cpu_map_configured
      Src: /src/haproxy/src/thread.c:1744,1
    - Dst: cpu_apply_policy
      Src: /src/haproxy/src/thread.c:1760,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1762,1
    - Dst: ha_free
      Src: /src/haproxy/src/thread.c:1763,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/thread.c:1767,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/thread.c:1774,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/thread.c:1780,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/thread.c:1787,1
    - Dst: MIN
      Src: /src/haproxy/src/thread.c:1815,1
    - Dst: MIN
      Src: /src/haproxy/src/thread.c:1817,1
    - Dst: ha_notice
      Src: /src/haproxy/src/thread.c:1818,1
    - Dst: MIN
      Src: /src/haproxy/src/thread.c:1825,1
    - Dst: MIN
      Src: /src/haproxy/src/thread.c:1827,1
    - Dst: ha_notice
      Src: /src/haproxy/src/thread.c:1828,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/thread.c:1833,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1658
    functionDepth: 2
    functionLinenumber: 1658
    functionLinenumberEnd: 1838
    functionName: thread_detect_count
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - ha_cpuset_zero
    - ha_free
    - ha_cpuset_assign
    - cpu_apply_policy
    - ha_diag_warning
    - cpu_map_configured
    - MIN
    - ha_warning
    - ha_cpuset_count
    - ha_cpuset_set
    linkageType: ''
    returnType: void
    signature: void thread_detect_count(void)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/haproxy/src/thread.c:1888,1
    - Dst: isdigit
      Src: /src/haproxy/src/thread.c:1903,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1907,1
    - Dst: atoi
      Src: /src/haproxy/src/thread.c:1911,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1924,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1926,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1932,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1937,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1942,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1970,1
    - Dst: isteq
      Src: /src/haproxy/src/thread.c:1981,1
    - Dst: ist2
      Src: /src/haproxy/src/thread.c:1981,1
    - Dst: ist
      Src: /src/haproxy/src/thread.c:1981,1
    - Dst: isteq
      Src: /src/haproxy/src/thread.c:1983,1
    - Dst: ist2
      Src: /src/haproxy/src/thread.c:1983,1
    - Dst: ist
      Src: /src/haproxy/src/thread.c:1983,1
    - Dst: isteq
      Src: /src/haproxy/src/thread.c:1985,1
    - Dst: ist2
      Src: /src/haproxy/src/thread.c:1985,1
    - Dst: ist
      Src: /src/haproxy/src/thread.c:1985,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1994,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2002,1
    - Dst: isdigit
      Src: /src/haproxy/src/thread.c:2007,1
    - Dst: atoi
      Src: /src/haproxy/src/thread.c:2009,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2019,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2029,1
    - Dst: memset
      Src: /src/haproxy/src/thread.c:2045,1
    - Dst: memset
      Src: /src/haproxy/src/thread.c:2055,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 111
    argCount: 3
    argNames:
    - arg
    - ts
    - err
    argTypes:
    - char*
    - struct thread_set*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 1877
    functionDepth: 5
    functionLinenumber: 1877
    functionLinenumberEnd: 2066
    functionName: parse_thread_set
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 1
    functionsReached:
    - memprintf
    - ist2
    - ist
    - memset
    - isteq
    - isdigit
    - atoi
    linkageType: ''
    returnType: int
    signature: int parse_thread_set(const char *arg, struct thread_set *ts, char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/thread.c:2078,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2082,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2086,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2088,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2094,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2099,1
    - Dst: HA_DIAG_WARNING_COND
      Src: /src/haproxy/src/thread.c:2104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2071
    functionDepth: 7
    functionLinenumber: 2071
    functionLinenumberEnd: 2110
    functionName: cfg_parse_nbthread
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strtol
    - HA_DIAG_WARNING_COND
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_nbthread(char **args, int section_type, struct proxy
      *curpx,\n                              const struct proxy *defpx, const char
      *file, int line,\n                              char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/thread.c:2123,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2126,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2128,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2116
    functionDepth: 7
    functionLinenumber: 2116
    functionLinenumberEnd: 2139
    functionName: cfg_parse_thread_hard_limit
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strtol
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_thread_hard_limit(char **args, int section_type, struct
      proxy *curpx,\n                              const struct proxy *defpx, const
      char *file, int line,\n                              char **err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2153,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2157,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2159,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2164,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:2172,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2189,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2192,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2195,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:2201,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:2204,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2229,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2144
    functionDepth: 5
    functionLinenumber: 2144
    functionLinenumberEnd: 2234
    functionName: cfg_parse_thread_group
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strtol
    - ha_warning
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_thread_group(char **args, int section_type, struct proxy
      *curpx,\n                                  const struct proxy *defpx, const
      char *file, int line,\n                                  char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/thread.c:2246,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2249,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2239
    functionDepth: 7
    functionLinenumber: 2239
    functionLinenumberEnd: 2256
    functionName: cfg_parse_maxthreadpertgroup
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strtol
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_maxthreadpertgroup(char **args, int section_type, struct
      proxy *curpx,\n                                        const struct proxy *defpx,
      const char *file, int line,\n                                        char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/thread.c:2268,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2272,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2276,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2278,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2284,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2289,1
    - Dst: HA_DIAG_WARNING_COND
      Src: /src/haproxy/src/thread.c:2294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2261
    functionDepth: 7
    functionLinenumber: 2261
    functionLinenumberEnd: 2300
    functionName: cfg_parse_thread_groups
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strtol
    - HA_DIAG_WARNING_COND
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_thread_groups(char **args, int section_type, struct
      proxy *curpx,\n                                   const struct proxy *defpx,
      const char *file, int line,\n                                   char **err)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/raw_sock.c:58,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/raw_sock.c:61,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/raw_sock.c:63,1
    - Dst: unlikely
      Src: /src/haproxy/src/raw_sock.c:73,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:76,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:82,1
    - Dst: conn_set_errcode
      Src: /src/haproxy/src/raw_sock.c:84,1
    - Dst: splice
      Src: /src/haproxy/src/raw_sock.c:94,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:99,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/raw_sock.c:119,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:148,1
    - Dst: conn_set_errno
      Src: /src/haproxy/src/raw_sock.c:150,1
    - Dst: unlikely
      Src: /src/haproxy/src/raw_sock.c:168,1
    - Dst: increment_send_rate
      Src: /src/haproxy/src/raw_sock.c:173,1
    - Dst: conn_sock_read0
      Src: /src/haproxy/src/raw_sock.c:178,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 78
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - pipe
    - count
    argTypes:
    - struct connection*
    - void*
    - struct pipe*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 181
    functionName: raw_sock_to_pipe
    functionSourceFile: /src/haproxy/src/raw_sock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - conn_set_errcode
    - BUG_ON
    - conn_ctrl_ready
    - fd_recv_ready
    - splice
    - conn_report_term_evt
    - increment_send_rate
    - conn_set_errno
    - conn_sock_read0
    - fd_cant_recv
    linkageType: ''
    returnType: int
    signature: int raw_sock_to_pipe(struct connection *conn, void *xprt_ctx, struct
      pipe *pipe, unsigned int count)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/raw_sock.c:189,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/raw_sock.c:192,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/raw_sock.c:194,1
    - Dst: conn_set_errno
      Src: /src/haproxy/src/raw_sock.c:201,1
    - Dst: unlikely
      Src: /src/haproxy/src/raw_sock.c:205,1
    - Dst: splice
      Src: /src/haproxy/src/raw_sock.c:210,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/raw_sock.c:215,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:222,1
    - Dst: conn_set_errno
      Src: /src/haproxy/src/raw_sock.c:224,1
    - Dst: unlikely
      Src: /src/haproxy/src/raw_sock.c:232,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - pipe
    - count
    argTypes:
    - struct connection*
    - void*
    - struct pipe*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 237
    functionName: raw_sock_from_pipe
    functionSourceFile: /src/haproxy/src/raw_sock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fd_send_ready
    - BUG_ON
    - conn_ctrl_ready
    - splice
    - conn_report_term_evt
    - conn_set_errno
    - fd_cant_send
    linkageType: ''
    returnType: int
    signature: int raw_sock_from_pipe(struct connection *conn, void *xprt_ctx, struct
      pipe *pipe, unsigned int count)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/raw_sock.c:257,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/raw_sock.c:260,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/raw_sock.c:262,1
    - Dst: unlikely
      Src: /src/haproxy/src/raw_sock.c:268,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:271,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:277,1
    - Dst: conn_set_errcode
      Src: /src/haproxy/src/raw_sock.c:279,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/raw_sock.c:293,1
    - Dst: memset
      Src: /src/haproxy/src/raw_sock.c:300,1
    - Dst: b_tail
      Src: /src/haproxy/src/raw_sock.c:304,1
    - Dst: recvmsg
      Src: /src/haproxy/src/raw_sock.c:308,1
    - Dst: b_add
      Src: /src/haproxy/src/raw_sock.c:313,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/raw_sock.c:317,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:329,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:346,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/raw_sock.c:351,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:355,1
    - Dst: conn_set_errno
      Src: /src/haproxy/src/raw_sock.c:357,1
    - Dst: unlikely
      Src: /src/haproxy/src/raw_sock.c:362,1
    - Dst: unlikely
      Src: /src/haproxy/src/raw_sock.c:365,1
    - Dst: recv
      Src: /src/haproxy/src/raw_sock.c:377,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:379,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:384,1
    - Dst: conn_set_errno
      Src: /src/haproxy/src/raw_sock.c:386,1
    - Dst: conn_sock_read0
      Src: /src/haproxy/src/raw_sock.c:394,1
    - Dst: unlikely
      Src: /src/haproxy/src/raw_sock.c:404,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:405,1
    - Dst: conn_set_errcode
      Src: /src/haproxy/src/raw_sock.c:407,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 104
    argCount: 7
    argNames:
    - conn
    - xprt_ctx
    - buf
    - count
    - msg_control
    - msg_controllen
    - flags
    argTypes:
    - struct connection*
    - void*
    - struct buffer*
    - size_t
    - void*
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 410
    functionName: raw_sock_to_buf
    functionSourceFile: /src/haproxy/src/raw_sock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - conn_set_errcode
    - memset
    - BUG_ON
    - conn_ctrl_ready
    - fd_recv_ready
    - recv
    - b_tail
    - b_add
    - conn_report_term_evt
    - recvmsg
    - conn_set_errno
    - conn_sock_read0
    - b_contig_space
    - fd_cant_recv
    linkageType: ''
    returnType: size_t
    signature: size_t raw_sock_to_buf(struct connection *conn, void *xprt_ctx, struct
      buffer *buf, size_t count, void *msg_control, size_t *msg_controllen, int flags)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/raw_sock.c:430,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/raw_sock.c:433,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/raw_sock.c:435,1
    - Dst: unlikely
      Src: /src/haproxy/src/raw_sock.c:438,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:440,1
    - Dst: conn_set_errcode
      Src: /src/haproxy/src/raw_sock.c:442,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:449,1
    - Dst: conn_set_errno
      Src: /src/haproxy/src/raw_sock.c:452,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/raw_sock.c:464,1
    - Dst: memset
      Src: /src/haproxy/src/raw_sock.c:469,1
    - Dst: b_peek
      Src: /src/haproxy/src/raw_sock.c:472,1
    - Dst: sendmsg
      Src: /src/haproxy/src/raw_sock.c:478,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/raw_sock.c:486,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/raw_sock.c:490,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/raw_sock.c:494,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/raw_sock.c:498,1
    - Dst: conn_set_errno
      Src: /src/haproxy/src/raw_sock.c:500,1
    - Dst: unlikely
      Src: /src/haproxy/src/raw_sock.c:504,1
    - Dst: increment_send_rate
      Src: /src/haproxy/src/raw_sock.c:509,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 7
    argNames:
    - conn
    - xprt_ctx
    - buf
    - count
    - msg_control
    - msg_controllen
    - flags
    argTypes:
    - struct connection*
    - void*
    - struct buffer*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 512
    functionName: raw_sock_from_buf
    functionSourceFile: /src/haproxy/src/raw_sock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - conn_set_errcode
    - b_peek
    - memset
    - fd_send_ready
    - BUG_ON
    - conn_ctrl_ready
    - b_contig_data
    - conn_report_term_evt
    - increment_send_rate
    - conn_set_errno
    - fd_cant_send
    - sendmsg
    - fd_stop_send
    linkageType: ''
    returnType: size_t
    signature: size_t raw_sock_from_buf(struct connection *conn, void *xprt_ctx, const
      struct buffer *buf, size_t count, void *msg_control, size_t msg_controllen,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_subscribe
      Src: /src/haproxy/src/raw_sock.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - event_type
    - es
    argTypes:
    - struct connection*
    - void*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: raw_sock_subscribe
    functionSourceFile: /src/haproxy/src/raw_sock.c
    functionUses: 0
    functionsReached:
    - conn_subscribe
    linkageType: ''
    returnType: int
    signature: int raw_sock_subscribe(struct connection *conn, void *xprt_ctx, int
      event_type, struct wait_event *es)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_unsubscribe
      Src: /src/haproxy/src/raw_sock.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - event_type
    - es
    argTypes:
    - struct connection*
    - void*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: raw_sock_unsubscribe
    functionSourceFile: /src/haproxy/src/raw_sock.c
    functionUses: 0
    functionsReached:
    - conn_unsubscribe
    linkageType: ''
    returnType: int
    signature: int raw_sock_unsubscribe(struct connection *conn, void *xprt_ctx, int
      event_type, struct wait_event *es)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_unsubscribe
      Src: /src/haproxy/src/raw_sock.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 538
    functionName: raw_sock_close
    functionSourceFile: /src/haproxy/src/raw_sock.c
    functionUses: 0
    functionsReached:
    - conn_unsubscribe
    linkageType: ''
    returnType: void
    signature: void raw_sock_close(struct connection *conn, void *xprt_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/raw_sock.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - conn
    - xprt_ctx
    - toremove_ctx
    - newops
    - newctx
    argTypes:
    - struct connection*
    - void*
    - void*
    - struct xprt_ops*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 548
    functionName: raw_sock_remove_xprt
    functionSourceFile: /src/haproxy/src/raw_sock.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int raw_sock_remove_xprt(struct connection *conn, void *xprt_ctx, void
      *toremove_ctx, const struct xprt_ops *newops, void *newctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - cap
    - arg
    argTypes:
    - struct connection*
    - void*
    - enum xprt_capabilities
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 561
    functionName: raw_sock_get_capability
    functionSourceFile: /src/haproxy/src/raw_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int raw_sock_get_capability(struct connection *conn, void *xprt_ctx,
      enum xprt_capabilities cap, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xprt_register
      Src: /src/haproxy/src/raw_sock.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 585
    functionName: __raw_sock_init
    functionSourceFile: /src/haproxy/src/raw_sock.c
    functionUses: 0
    functionsReached:
    - xprt_register
    linkageType: ''
    returnType: void
    signature: void __raw_sock_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_act.c:49,1
    - Dst: conn_set_reverse
      Src: /src/haproxy/src/tcp_act.c:53,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcp_act.c:56,1
    - Dst: malloc
      Src: /src/haproxy/src/tcp_act.c:62,1
    - Dst: b_data
      Src: /src/haproxy/src/tcp_act.c:62,1
    - Dst: b_make
      Src: /src/haproxy/src/tcp_act.c:67,1
    - Dst: b_data
      Src: /src/haproxy/src/tcp_act.c:67,1
    - Dst: b_ncat
      Src: /src/haproxy/src/tcp_act.c:68,1
    - Dst: b_data
      Src: /src/haproxy/src/tcp_act.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 73
    functionName: tcp_action_attach_srv
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - malloc
    - b_ncat
    - objt_conn
    - b_data
    - b_make
    - sample_fetch_as_type
    - conn_set_reverse
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_attach_srv(struct act_rule *rule, struct
      proxy *px,\n                                             struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcp_act.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - value
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 96
    functionName: extract_int_from_rule
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - sample_fetch_as_type
    linkageType: ''
    returnType: int
    signature: "int extract_int_from_rule(struct act_rule *rule,\n                                 struct
      proxy *px, struct session *sess, struct stream *s,\n                                 int
      *value)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_act.c:112,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/tcp_act.c:113,1
    - Dst: sess_get_src
      Src: /src/haproxy/src/tcp_act.c:119,1
    - Dst: sc_get_src
      Src: /src/haproxy/src/tcp_act.c:126,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcp_act.c:135,1
    - Dst: get_net_port
      Src: /src/haproxy/src/tcp_act.c:137,1
    - Dst: memcpy
      Src: /src/haproxy/src/tcp_act.c:145,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 152
    functionName: tcp_action_req_set_src
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_net_port
    - sc_get_src
    - objt_conn
    - sess_get_src
    - conn_get_src
    - sample_fetch_as_type
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_req_set_src(struct act_rule *rule, struct
      proxy *px,\n                                              struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_act.c:168,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/tcp_act.c:169,1
    - Dst: sess_get_dst
      Src: /src/haproxy/src/tcp_act.c:175,1
    - Dst: sc_get_dst
      Src: /src/haproxy/src/tcp_act.c:182,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcp_act.c:191,1
    - Dst: get_net_port
      Src: /src/haproxy/src/tcp_act.c:193,1
    - Dst: memcpy
      Src: /src/haproxy/src/tcp_act.c:201,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 208
    functionName: tcp_action_req_set_dst
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sc_get_dst
    - get_net_port
    - objt_conn
    - sess_get_dst
    - conn_get_dst
    - sample_fetch_as_type
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_req_set_dst(struct act_rule *rule, struct
      proxy *px,\n                                              struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_act.c:225,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/tcp_act.c:226,1
    - Dst: sess_get_src
      Src: /src/haproxy/src/tcp_act.c:232,1
    - Dst: sc_get_src
      Src: /src/haproxy/src/tcp_act.c:239,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcp_act.c:248,1
    - Dst: htons
      Src: /src/haproxy/src/tcp_act.c:251,1
    - Dst: htons
      Src: /src/haproxy/src/tcp_act.c:257,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 263
    functionName: tcp_action_req_set_src_port
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - sc_get_src
    - objt_conn
    - sess_get_src
    - conn_get_src
    - sample_fetch_as_type
    - htons
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_req_set_src_port(struct act_rule *rule,
      struct proxy *px,\n                                                   struct
      session *sess, struct stream *s, int flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_act.c:280,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/tcp_act.c:281,1
    - Dst: sess_get_dst
      Src: /src/haproxy/src/tcp_act.c:287,1
    - Dst: sc_get_dst
      Src: /src/haproxy/src/tcp_act.c:294,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcp_act.c:303,1
    - Dst: htons
      Src: /src/haproxy/src/tcp_act.c:306,1
    - Dst: htons
      Src: /src/haproxy/src/tcp_act.c:312,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 318
    functionName: tcp_action_req_set_dst_port
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - sc_get_dst
    - objt_conn
    - sess_get_dst
    - conn_get_dst
    - sample_fetch_as_type
    - htons
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_req_set_dst_port(struct act_rule *rule,
      struct proxy *px,\n                                                   struct
      session *sess, struct stream *s, int flags)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_act.c:329,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/tcp_act.c:343,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/tcp_act.c:348,1
    - Dst: setsockopt
      Src: /src/haproxy/src/tcp_act.c:353,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/tcp_act.c:368,1
    - Dst: setsockopt
      Src: /src/haproxy/src/tcp_act.c:374,1
    - Dst: setsockopt
      Src: /src/haproxy/src/tcp_act.c:387,1
    - Dst: setsockopt
      Src: /src/haproxy/src/tcp_act.c:391,1
    - Dst: stream_abort
      Src: /src/haproxy/src/tcp_act.c:396,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_act.c:400,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_act.c:408,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_act.c:410,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - strm
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 413
    functionName: tcp_exec_action_silent_drop
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - conn_ctrl_ready
    - stream_abort
    - setsockopt
    - objt_conn
    - HA_ATOMIC_OR
    - conn_ctrl_drain
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_exec_action_silent_drop(struct act_rule *rule,
      struct proxy *px,\n                                                   struct
      session *sess, struct stream *strm, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extract_int_from_rule
      Src: /src/haproxy/src/tcp_act.c:422,1
    - Dst: conn_set_mark
      Src: /src/haproxy/src/tcp_act.c:423,1
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_act.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 417
    functionDepth: 5
    functionLinenumber: 417
    functionLinenumberEnd: 425
    functionName: tcp_action_set_fc_mark
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - extract_int_from_rule
    - conn_set_mark
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_set_fc_mark(struct act_rule *rule, struct
      proxy *px,\n                                              struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_act.c:429,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tcp_act.c:432,1
    - Dst: extract_int_from_rule
      Src: /src/haproxy/src/tcp_act.c:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 426
    functionDepth: 5
    functionLinenumber: 426
    functionLinenumberEnd: 441
    functionName: tcp_action_set_bc_mark
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - extract_int_from_rule
    - BUG_ON
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_set_bc_mark(struct act_rule *rule, struct
      proxy *px,\n                                              struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extract_int_from_rule
      Src: /src/haproxy/src/tcp_act.c:450,1
    - Dst: conn_set_tos
      Src: /src/haproxy/src/tcp_act.c:451,1
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_act.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 445
    functionDepth: 5
    functionLinenumber: 445
    functionLinenumberEnd: 453
    functionName: tcp_action_set_fc_tos
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - conn_set_tos
    - objt_conn
    - extract_int_from_rule
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_set_fc_tos(struct act_rule *rule, struct
      proxy *px,\n                                             struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_act.c:457,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tcp_act.c:460,1
    - Dst: extract_int_from_rule
      Src: /src/haproxy/src/tcp_act.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 454
    functionDepth: 5
    functionLinenumber: 454
    functionLinenumberEnd: 469
    functionName: tcp_action_set_bc_tos
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - extract_int_from_rule
    - BUG_ON
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_set_bc_tos(struct act_rule *rule, struct
      proxy *px,\n                                             struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/tcp_act.c:477,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_act.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 475
    functionDepth: 5
    functionLinenumber: 475
    functionLinenumberEnd: 479
    functionName: release_attach_srv_action
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - ha_free
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void release_attach_srv_action(struct act_rule *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_act.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 5
    functionLinenumber: 484
    functionLinenumberEnd: 487
    functionName: release_set_src_dst_action
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void release_set_src_dst_action(struct act_rule *rule)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:497,1
    - Dst: ist
      Src: /src/haproxy/src/tcp_act.c:501,1
    - Dst: istsplit
      Src: /src/haproxy/src/tcp_act.c:502,1
    - Dst: istlen
      Src: /src/haproxy/src/tcp_act.c:503,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:504,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/tcp_act.c:508,1
    - Dst: ist0
      Src: /src/haproxy/src/tcp_act.c:508,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:509,1
    - Dst: ist0
      Src: /src/haproxy/src/tcp_act.c:509,1
    - Dst: ist0
      Src: /src/haproxy/src/tcp_act.c:509,1
    - Dst: server_find
      Src: /src/haproxy/src/tcp_act.c:512,1
    - Dst: ist0
      Src: /src/haproxy/src/tcp_act.c:512,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:513,1
    - Dst: ist0
      Src: /src/haproxy/src/tcp_act.c:513,1
    - Dst: ist0
      Src: /src/haproxy/src/tcp_act.c:513,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:519,1
    - Dst: ist0
      Src: /src/haproxy/src/tcp_act.c:519,1
    - Dst: ist0
      Src: /src/haproxy/src/tcp_act.c:519,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:524,1
    - Dst: ist0
      Src: /src/haproxy/src/tcp_act.c:524,1
    - Dst: ist0
      Src: /src/haproxy/src/tcp_act.c:524,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 489
    functionDepth: 5
    functionLinenumber: 489
    functionLinenumberEnd: 532
    functionName: tcp_check_attach_srv
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ist
    - ist0
    - istsplit
    - server_find
    - proxy_be_by_name
    - istlen
    linkageType: ''
    returnType: int
    signature: int tcp_check_attach_srv(struct act_rule *rule, struct proxy *px, char
      **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:542,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/tcp_act.c:546,1
    - Dst: my_strndup
      Src: /src/haproxy/src/tcp_act.c:555,1
    - Dst: strlen
      Src: /src/haproxy/src/tcp_act.c:555,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_act.c:562,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:564,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcp_act.c:569,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcp_act.c:581,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_act.c:582,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 534
    functionDepth: 7
    functionLinenumber: 534
    functionLinenumberEnd: 584
    functionName: tcp_parse_attach_srv
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - memprintf
    - ha_free
    - strcmp
    - mark_tainted
    - sample_parse_expr
    - release_sample_expr
    - strlen
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret tcp_parse_attach_srv(const char **args, int *cur_arg,
      struct proxy *px,\n                                               struct act_rule
      *rule, char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcp_act.c:595,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:606,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/tcp_act.c:608,1
    - Dst: free
      Src: /src/haproxy/src/tcp_act.c:609,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_act.c:615,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_act.c:617,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_act.c:619,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_act.c:621,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 587
    functionDepth: 7
    functionLinenumber: 587
    functionLinenumberEnd: 631
    functionName: tcp_parse_set_src_dst
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - free
    - sample_src_names
    - sample_parse_expr
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret tcp_parse_set_src_dst(const char **args, int *orig_arg,
      struct proxy *px,\n                                                struct act_rule
      *rule, char **err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:647,1
    - Dst: strtoul
      Src: /src/haproxy/src/tcp_act.c:653,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcp_act.c:660,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:671,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/tcp_act.c:673,1
    - Dst: free
      Src: /src/haproxy/src/tcp_act.c:674,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_act.c:681,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:690,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 637
    functionDepth: 7
    functionLinenumber: 637
    functionLinenumberEnd: 693
    functionName: tcp_parse_set_mark
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - strtoul
    - free
    - sample_src_names
    - sample_parse_expr
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret tcp_parse_set_mark(const char **args, int *orig_arg,
      struct proxy *px,\n                                             struct act_rule
      *rule, char **err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:709,1
    - Dst: strtol
      Src: /src/haproxy/src/tcp_act.c:715,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcp_act.c:722,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:733,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/tcp_act.c:735,1
    - Dst: free
      Src: /src/haproxy/src/tcp_act.c:736,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_act.c:743,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 699
    functionDepth: 7
    functionLinenumber: 699
    functionLinenumberEnd: 754
    functionName: tcp_parse_set_tos
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - free
    - sample_src_names
    - strtol
    - sample_parse_expr
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret tcp_parse_set_tos(const char **args, int *orig_arg,
      struct proxy *px,\n                                            struct act_rule
      *rule, char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_act.c:769,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:771,1
    - Dst: strtoul
      Src: /src/haproxy/src/tcp_act.c:775,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:778,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_act.c:783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 760
    functionDepth: 5
    functionLinenumber: 760
    functionLinenumberEnd: 792
    functionName: tcp_parse_silent_drop
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - strtoul
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret tcp_parse_silent_drop(const char **args, int *cur_arg,
      struct proxy *px,\n                                                struct act_rule
      *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_orig_register
      Src: /src/haproxy/src/tcp_act.c:801,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tcp_act.c:802,1
    - Dst: log_orig_register
      Src: /src/haproxy/src/tcp_act.c:803,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tcp_act.c:804,1
    - Dst: log_orig_register
      Src: /src/haproxy/src/tcp_act.c:805,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tcp_act.c:806,1
    - Dst: log_orig_register
      Src: /src/haproxy/src/tcp_act.c:807,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tcp_act.c:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 809
    functionName: init_do_log
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - log_orig_register
    linkageType: ''
    returnType: void
    signature: void init_do_log(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_log_parse_act
      Src: /src/haproxy/src/tcp_act.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 813
    functionDepth: 6
    functionLinenumber: 813
    functionLinenumberEnd: 817
    functionName: tcp_req_conn_parse_do_log
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - do_log_parse_act
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret tcp_req_conn_parse_do_log(const char **args, int
      *orig_arg, struct proxy *px,\n                                                    struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_log_parse_act
      Src: /src/haproxy/src/tcp_act.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 6
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: tcp_req_sess_parse_do_log
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - do_log_parse_act
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret tcp_req_sess_parse_do_log(const char **args, int
      *orig_arg, struct proxy *px,\n                                                    struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_log_parse_act
      Src: /src/haproxy/src/tcp_act.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 825
    functionDepth: 6
    functionLinenumber: 825
    functionLinenumberEnd: 829
    functionName: tcp_req_cont_parse_do_log
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - do_log_parse_act
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret tcp_req_cont_parse_do_log(const char **args, int
      *orig_arg, struct proxy *px,\n                                                    struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_log_parse_act
      Src: /src/haproxy/src/tcp_act.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 831
    functionDepth: 6
    functionLinenumber: 831
    functionLinenumberEnd: 835
    functionName: tcp_res_cont_parse_do_log
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - do_log_parse_act
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret tcp_res_cont_parse_do_log(const char **args, int
      *orig_arg, struct proxy *px,\n                                                    struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_select.c:35,1
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_select.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: __fd_clo
    functionSourceFile: /src/haproxy/src/ev_select.c
    functionUses: 0
    functionsReached:
    - hap_fd_clr
    linkageType: ''
    returnType: void
    signature: void __fd_clo(int fd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_select.c:45,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_select.c:46,1
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_select.c:58,1
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_select.c:59,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_select.c:60,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_select.c:61,1
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_select.c:66,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_select.c:68,1
    - Dst: hap_fd_set
      Src: /src/haproxy/src/ev_select.c:70,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_select.c:72,1
    - Dst: hap_fd_clr
      Src: /src/haproxy/src/ev_select.c:76,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_select.c:78,1
    - Dst: hap_fd_set
      Src: /src/haproxy/src/ev_select.c:80,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_select.c:82,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - fd
    - max_add_fd
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 88
    functionName: _update_fd
    functionSourceFile: /src/haproxy/src/ev_select.c
    functionUses: 3
    functionsReached:
    - hap_fd_clr
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - hap_fd_set
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void _update_fd(int fd, int *max_add_fd)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_select.c:112,1
    - Dst: _update_fd
      Src: /src/haproxy/src/ev_select.c:117,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_select.c:134,1
    - Dst: done_update_polling
      Src: /src/haproxy/src/ev_select.c:135,1
    - Dst: _update_fd
      Src: /src/haproxy/src/ev_select.c:140,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ev_select.c:146,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ev_select.c:162,1
    - Dst: thread_idle_now
      Src: /src/haproxy/src/ev_select.c:164,1
    - Dst: thread_harmless_now
      Src: /src/haproxy/src/ev_select.c:165,1
    - Dst: compute_poll_timeout
      Src: /src/haproxy/src/ev_select.c:177,1
    - Dst: clock_entering_poll
      Src: /src/haproxy/src/ev_select.c:180,1
    - Dst: select
      Src: /src/haproxy/src/ev_select.c:181,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/ev_select.c:186,1
    - Dst: fd_leaving_poll
      Src: /src/haproxy/src/ev_select.c:187,1
    - Dst: FD_ISSET
      Src: /src/haproxy/src/ev_select.c:201,1
    - Dst: FD_ISSET
      Src: /src/haproxy/src/ev_select.c:204,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ev_select.c:211,1
    - Dst: fd_update_events
      Src: /src/haproxy/src/ev_select.c:214,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 74
    argCount: 3
    argNames:
    - p
    - exp
    - wake
    argTypes:
    - struct poller*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 217
    functionName: _do_poll
    functionSourceFile: /src/haproxy/src/ev_select.c
    functionUses: 0
    functionsReached:
    - fd_leaving_poll
    - select
    - done_update_polling
    - FD_ISSET
    - _HA_ATOMIC_INC
    - thread_harmless_now
    - thread_idle_now
    - clock_update_date
    - fd_update_events
    - _HA_ATOMIC_AND
    - compute_poll_timeout
    - _HA_ATOMIC_CAS
    - _update_fd
    - clock_entering_poll
    linkageType: ''
    returnType: void
    signature: void _do_poll(struct poller *p, int exp, int wake)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ev_select.c:224,1
    - Dst: vma_set_name_id
      Src: /src/haproxy/src/ev_select.c:227,1
    - Dst: calloc
      Src: /src/haproxy/src/ev_select.c:228,1
    - Dst: vma_set_name_id
      Src: /src/haproxy/src/ev_select.c:231,1
    - Dst: free
      Src: /src/haproxy/src/ev_select.c:234,1
    - Dst: free
      Src: /src/haproxy/src/ev_select.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 237
    functionName: init_select_per_thread
    functionSourceFile: /src/haproxy/src/ev_select.c
    functionUses: 0
    functionsReached:
    - vma_set_name_id
    - calloc
    - free
    linkageType: ''
    returnType: int
    signature: int init_select_per_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/ev_select.c:241,1
    - Dst: ha_free
      Src: /src/haproxy/src/ev_select.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: deinit_select_per_thread
    functionSourceFile: /src/haproxy/src/ev_select.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void deinit_select_per_thread()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ev_select.c:267,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/ev_select.c:269,1
    - Dst: calloc
      Src: /src/haproxy/src/ev_select.c:270,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/ev_select.c:272,1
    - Dst: hap_register_per_thread_init
      Src: /src/haproxy/src/ev_select.c:274,1
    - Dst: hap_register_per_thread_deinit
      Src: /src/haproxy/src/ev_select.c:275,1
    - Dst: free
      Src: /src/haproxy/src/ev_select.c:280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 284
    functionName: _do_init
    functionSourceFile: /src/haproxy/src/ev_select.c
    functionUses: 0
    functionsReached:
    - vma_set_name
    - calloc
    - free
    - hap_register_per_thread_deinit
    - hap_register_per_thread_init
    linkageType: ''
    returnType: int
    signature: int _do_init(struct poller *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/ev_select.c:292,1
    - Dst: free
      Src: /src/haproxy/src/ev_select.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 296
    functionName: _do_term
    functionSourceFile: /src/haproxy/src/ev_select.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void _do_term(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: _do_test
    functionSourceFile: /src/haproxy/src/ev_select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _do_test(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 331
    functionName: _do_register
    functionSourceFile: /src/haproxy/src/ev_select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _do_register(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: protocol_lookup
      Src: /src/haproxy/src/dns.c:60,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:61,1
    - Dst: socket
      Src: /src/haproxy/src/dns.c:62,1
    - Dst: send_log
      Src: /src/haproxy/src/dns.c:63,1
    - Dst: bind
      Src: /src/haproxy/src/dns.c:76,1
    - Dst: send_log
      Src: /src/haproxy/src/dns.c:77,1
    - Dst: close
      Src: /src/haproxy/src/dns.c:80,1
    - Dst: bind
      Src: /src/haproxy/src/dns.c:93,1
    - Dst: send_log
      Src: /src/haproxy/src/dns.c:94,1
    - Dst: close
      Src: /src/haproxy/src/dns.c:97,1
    - Dst: connect
      Src: /src/haproxy/src/dns.c:106,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/dns.c:106,1
    - Dst: send_log
      Src: /src/haproxy/src/dns.c:107,1
    - Dst: close
      Src: /src/haproxy/src/dns.c:110,1
    - Dst: close
      Src: /src/haproxy/src/dns.c:115,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:116,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/dns.c:120,1
    - Dst: fd_insert
      Src: /src/haproxy/src/dns.c:130,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/dns.c:131,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct dns_nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 49
    functionDepth: 10
    functionLinenumber: 49
    functionLinenumberEnd: 133
    functionName: dns_connect_nameserver
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - get_addr_len
    - BUG_ON
    - fd_want_recv
    - fd_insert
    - protocol_lookup
    - fd_set_nonblock
    - bind
    - connect
    - socket
    - send_log
    - close
    linkageType: ''
    returnType: int
    signature: int dns_connect_nameserver(struct dns_nameserver *ns)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:148,1
    - Dst: dns_connect_nameserver
      Src: /src/haproxy/src/dns.c:151,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:152,1
    - Dst: send
      Src: /src/haproxy/src/dns.c:165,1
    - Dst: sendto
      Src: /src/haproxy/src/dns.c:167,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/dns.c:167,1
    - Dst: ist2
      Src: /src/haproxy/src/dns.c:173,1
    - Dst: dns_ring_write
      Src: /src/haproxy/src/dns.c:174,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:177,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/dns.c:180,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:181,1
    - Dst: fd_delete
      Src: /src/haproxy/src/dns.c:185,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:187,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:191,1
    - Dst: ist2
      Src: /src/haproxy/src/dns.c:196,1
    - Dst: dns_ring_write
      Src: /src/haproxy/src/dns.c:197,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/dns.c:202,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 3
    argNames:
    - ns
    - buf
    - len
    argTypes:
    - struct dns_nameserver*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 140
    functionDepth: 11
    functionLinenumber: 140
    functionLinenumberEnd: 207
    functionName: dns_send_nameserver
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - ist2
    - dns_ring_write
    - get_addr_len
    - task_wakeup
    - HA_SPIN_UNLOCK
    - sendto
    - HA_SPIN_LOCK
    - send
    - fd_cant_send
    - dns_connect_nameserver
    linkageType: ''
    returnType: int
    signature: int dns_send_nameserver(struct dns_nameserver *ns, void *buf, size_t
      len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:226,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:229,1
    - Dst: recvfrom
      Src: /src/haproxy/src/dns.c:233,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/dns.c:235,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:236,1
    - Dst: fd_delete
      Src: /src/haproxy/src/dns.c:239,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:241,1
    - Dst: ipcmp
      Src: /src/haproxy/src/dns.c:245,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/dns.c:247,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:250,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:256,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:258,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/dns.c:259,1
    - Dst: memcpy
      Src: /src/haproxy/src/dns.c:261,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/dns.c:269,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:271,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/dns.c:278,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/dns.c:283,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:287,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/dns.c:299,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/dns.c:305,1
    - Dst: dns_session_free
      Src: /src/haproxy/src/dns.c:319,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:325,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 3
    argNames:
    - ns
    - data
    - size
    argTypes:
    - struct dns_nameserver*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 329
    functionName: dns_recv_nameserver
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - recvfrom
    - LIST_NEXT
    - memcpy
    - fd_want_recv
    - LIST_DEL_INIT
    - dns_session_free
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - appctx_wakeup
    - LIST_ISEMPTY
    - __ha_barrier_store
    - LIST_INSERT
    - fd_cant_recv
    - ipcmp
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t dns_recv_nameserver(struct dns_nameserver *ns, void *data,
      size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:336,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/dns.c:341,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:342,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/dns.c:348,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/dns.c:349,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:350,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:354,1
    - Dst: struct dns_nameserver*::process_responses
      Src: /src/haproxy/src/dns.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dgram
    argTypes:
    - struct dgram_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 357
    functionName: dns_resolve_recv
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - fd_recv_ready
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - _HA_ATOMIC_AND
    - fd_stop_recv
    - struct dns_nameserver*::process_responses
    linkageType: ''
    returnType: void
    signature: void dns_resolve_recv(struct dgram_conn *dgram)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:369,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/dns.c:374,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:375,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/dns.c:381,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/dns.c:382,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:383,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/dns.c:390,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:400,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:401,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:402,1
    - Dst: b_orig
      Src: /src/haproxy/src/dns.c:402,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:408,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:409,1
    - Dst: b_size
      Src: /src/haproxy/src/dns.c:410,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:411,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/dns.c:412,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:412,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:414,1
    - Dst: b_peek_varint
      Src: /src/haproxy/src/dns.c:418,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:422,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:422,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:423,1
    - Dst: b_getblk
      Src: /src/haproxy/src/dns.c:429,1
    - Dst: send
      Src: /src/haproxy/src/dns.c:431,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/dns.c:434,1
    - Dst: fd_delete
      Src: /src/haproxy/src/dns.c:438,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/dns.c:449,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:452,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:452,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:453,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/dns.c:454,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:455,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 1
    argNames:
    - dgram
    argTypes:
    - struct dgram_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 456
    functionName: dns_resolve_send
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fd_delete
    - HA_SPIN_LOCK
    - b_getblk
    - fd_cant_send
    - HA_ATOMIC_INC
    - fd_stop_send
    - b_peek
    - b_head_ofs
    - b_peek_ofs
    - b_peek_varint
    - b_orig
    - fd_send_ready
    - HA_RWLOCK_RDUNLOCK
    - _HA_ATOMIC_AND
    - b_data
    - b_size
    - BUG_ON
    - HA_SPIN_UNLOCK
    - HA_ATOMIC_DEC
    - send
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void dns_resolve_send(struct dgram_conn *dgram)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/dns.c:468,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/dns.c:477,1
    - Dst: dns_ring_new
      Src: /src/haproxy/src/dns.c:480,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:482,1
    - Dst: dns_ring_attach
      Src: /src/haproxy/src/dns.c:487,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:489,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/dns.c:495,1
    - Dst: free
      Src: /src/haproxy/src/dns.c:497,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - ns
    - sk
    argTypes:
    - struct dns_nameserver*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 500
    functionName: dns_dgram_init
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - dns_ring_new
    - HA_SPIN_INIT
    - calloc
    - dns_ring_free
    - free
    - dns_ring_attach
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int dns_dgram_init(struct dns_nameserver *ns, struct sockaddr_storage
      *sk)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:516,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/dns.c:516,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/dns.c:517,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:522,1
    - Dst: __ha_barrier_load
      Src: /src/haproxy/src/dns.c:526,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/dns.c:536,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:537,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/dns.c:538,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/dns.c:542,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/dns.c:543,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/dns.c:547,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/dns.c:548,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dns.c:549,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/dns.c:551,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:561,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:562,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:563,1
    - Dst: b_orig
      Src: /src/haproxy/src/dns.c:563,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:569,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:570,1
    - Dst: b_size
      Src: /src/haproxy/src/dns.c:571,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:573,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/dns.c:574,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:574,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:581,1
    - Dst: b_peek_varint
      Src: /src/haproxy/src/dns.c:587,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:591,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:591,1
    - Dst: applet_output_room
      Src: /src/haproxy/src/dns.c:594,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/dns.c:602,1
    - Dst: htons
      Src: /src/haproxy/src/dns.c:609,1
    - Dst: applet_putblk
      Src: /src/haproxy/src/dns.c:610,1
    - Dst: b_getblk
      Src: /src/haproxy/src/dns.c:614,1
    - Dst: htons
      Src: /src/haproxy/src/dns.c:625,1
    - Dst: applet_putblk
      Src: /src/haproxy/src/dns.c:628,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/dns.c:633,1
    - Dst: tick_add
      Src: /src/haproxy/src/dns.c:637,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:638,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:639,1
    - Dst: task_queue
      Src: /src/haproxy/src/dns.c:646,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/dns.c:648,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/dns.c:649,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/dns.c:651,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:660,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/dns.c:661,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/dns.c:666,1
    - Dst: b_getblk
      Src: /src/haproxy/src/dns.c:670,1
    - Dst: b_getblk
      Src: /src/haproxy/src/dns.c:677,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/dns.c:684,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/dns.c:695,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:703,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:703,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:704,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/dns.c:706,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/dns.c:710,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:711,1
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/src/dns.c:711,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/dns.c:712,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dns.c:713,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/dns.c:714,1
    - Dst: __ha_barrier_load
      Src: /src/haproxy/src/dns.c:722,1
    - Dst: LIST_INLIST_ATOMIC
      Src: /src/haproxy/src/dns.c:723,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/dns.c:724,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:725,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/dns.c:736,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:740,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/dns.c:745,1
    - Dst: ntohs
      Src: /src/haproxy/src/dns.c:748,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/dns.c:753,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/dns.c:757,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/dns.c:757,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:761,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/dns.c:766,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/dns.c:769,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/dns.c:769,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:772,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/dns.c:779,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:783,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/dns.c:788,1
    - Dst: memcpy
      Src: /src/haproxy/src/dns.c:794,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/dns.c:795,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/dns.c:806,1
    - Dst: memcpy
      Src: /src/haproxy/src/dns.c:807,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/dns.c:810,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/dns.c:811,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:812,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:819,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:821,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/dns.c:821,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/dns.c:822,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:824,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/dns.c:827,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/dns.c:837,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/dns.c:841,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/dns.c:842,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 197
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 844
    functionName: dns_session_io_handler
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - unlikely
    - applet_need_more_data
    - HA_RWLOCK_WRUNLOCK
    - applet_output_room
    - task_queue
    - applet_skip_input
    - b_getblk
    - LIST_APPEND
    - MT_LIST_INLIST
    - MT_LIST_APPEND
    - HA_SPIN_LOCK
    - HA_ATOMIC_INC
    - se_fl_test
    - LIST_INIT
    - b_peek
    - HA_ATOMIC_STORE
    - eb32_insert
    - applet_have_no_more_data
    - pool_alloc
    - eb32_lookup
    - b_head_ofs
    - b_peek_ofs
    - b_peek_varint
    - applet_putchk
    - applet_reset_input
    - applet_set_eos
    - __ha_barrier_load
    - tick_add
    - pool_free
    - applet_set_error
    - MT_LIST_DELETE
    - b_orig
    - memcpy
    - applet_have_more_data
    - HA_RWLOCK_RDUNLOCK
    - applet_input_data
    - b_data
    - b_size
    - eb32_entry
    - LIST_INLIST
    - HA_RWLOCK_WRLOCK
    - chunk_reset
    - ntohs
    - htons
    - LIST_DELETE
    - LIST_INLIST_ATOMIC
    - BUG_ON
    - task_wakeup
    - applet_fl_test
    - eb32_delete
    - applet_putblk
    - HA_SPIN_UNLOCK
    - HA_ATOMIC_DEC
    - applet_getblk
    - LIST_ISEMPTY
    - applet_get_outbuf
    - applet_get_inbuf
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void dns_session_io_handler(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/dns.c:850,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/dns.c:851,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/dns.c:852,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ds
    argTypes:
    - struct dns_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 855
    functionName: dns_queries_flush
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - eb32_delete
    - pool_free
    linkageType: ''
    returnType: void
    signature: void dns_queries_flush(struct dns_session *ds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:859,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:860,1
    - Dst: task_destroy
      Src: /src/haproxy/src/dns.c:861,1
    - Dst: dns_queries_flush
      Src: /src/haproxy/src/dns.c:863,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:869,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:870,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:878,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:878,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:879,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:879,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:880,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:880,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:881,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:881,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:882,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/dns.c:882,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - ds
    argTypes:
    - struct dns_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 884
    functionName: dns_session_free
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 1
    functionsReached:
    - task_destroy
    - BUG_ON
    - LIST_DEL_INIT
    - eb_is_empty
    - dns_queries_flush
    - LIST_ISEMPTY
    - MT_LIST_ISEMPTY
    - pool_free
    linkageType: ''
    returnType: void
    signature: void dns_session_free(struct dns_session *ds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/dns.c:894,1
    - Dst: appctx_finalize_startup
      Src: /src/haproxy/src/dns.c:897,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/dns.c:900,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/dns.c:903,1
    - Dst: se_need_remote_conn
      Src: /src/haproxy/src/dns.c:909,1
    - Dst: applet_expect_no_data
      Src: /src/haproxy/src/dns.c:910,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/dns.c:916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 888
    functionDepth: 8
    functionLinenumber: 888
    functionLinenumberEnd: 918
    functionName: dns_session_init
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - sockaddr_alloc
    - se_need_remote_conn
    - appctx_finalize_startup
    - stream_set_srv_target
    - applet_expect_no_data
    - sockaddr_free
    linkageType: ''
    returnType: int
    signature: int dns_session_init(struct appctx *appctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/dns.c:936,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/dns.c:937,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dns.c:938,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:942,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:943,1
    - Dst: dns_session_free
      Src: /src/haproxy/src/dns.c:946,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:947,1
    - Dst: dns_session_free
      Src: /src/haproxy/src/dns.c:959,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:960,1
    - Dst: dns_session_free
      Src: /src/haproxy/src/dns.c:968,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:969,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/dns.c:978,1
    - Dst: dns_queries_flush
      Src: /src/haproxy/src/dns.c:985,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/dns.c:990,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/dns.c:997,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/dns.c:999,1
    - Dst: dns_session_create
      Src: /src/haproxy/src/dns.c:1007,1
    - Dst: dns_session_free
      Src: /src/haproxy/src/dns.c:1009,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:1010,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/dns.c:1015,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:1017,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 923
    functionDepth: 3
    functionLinenumber: 923
    functionLinenumberEnd: 1018
    functionName: dns_session_release
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - dns_session_free
    - HA_RWLOCK_WRUNLOCK
    - HA_ATOMIC_LOAD
    - LIST_DEL_INIT
    - HA_SPIN_UNLOCK
    - dns_session_create
    - HA_SPIN_LOCK
    - dns_queries_flush
    - __ha_cpu_relax
    - LIST_INLIST
    - HA_ATOMIC_CAS
    - HA_RWLOCK_WRLOCK
    - LIST_INSERT
    linkageType: ''
    returnType: void
    signature: void dns_session_release(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: appctx_new_here
      Src: /src/haproxy/src/dns.c:1042,1
    - Dst: appctx_init
      Src: /src/haproxy/src/dns.c:1048,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1049,1
    - Dst: appctx_schedule
      Src: /src/haproxy/src/dns.c:1054,1
    - Dst: tick_add
      Src: /src/haproxy/src/dns.c:1054,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/dns.c:1054,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/dns.c:1060,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ds
    - tempo
    argTypes:
    - struct dns_session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1038
    functionDepth: 2
    functionLinenumber: 1038
    functionLinenumberEnd: 1063
    functionName: dns_session_create
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 1
    functionsReached:
    - MS_TO_TICKS
    - appctx_free_on_early_error
    - appctx_init
    - ha_alert
    - appctx_new_here
    - tick_add
    - appctx_schedule
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *dns_session_create(struct dns_session *ds, int tempo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/dns.c:1075,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/dns.c:1076,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/dns.c:1077,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/dns.c:1078,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:1079,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1089
    functionName: dns_process_query_exp
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - eb32_delete
    - tick_is_expired
    - pool_free
    linkageType: ''
    returnType: struct task
    signature: struct task *dns_process_query_exp(struct task *t, void *context, unsigned
      int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:1099,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/dns.c:1107,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:1112,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/dns.c:1118,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/dns.c:1121,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:1127,1
    - Dst: tick_add
      Src: /src/haproxy/src/dns.c:1129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1132
    functionName: dns_process_idle_exp
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - appctx_wakeup
    - __ha_barrier_store
    - tick_add
    linkageType: ''
    returnType: struct task
    signature: struct task *dns_process_idle_exp(struct task *t, void *context, unsigned
      int state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/dns.c:1141,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/dns.c:1144,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1150,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1151,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1152,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/dns.c:1161,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/dns.c:1165,1
    - Dst: dns_ring_init
      Src: /src/haproxy/src/dns.c:1169,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/dns.c:1171,1
    - Dst: dns_ring_attach
      Src: /src/haproxy/src/dns.c:1171,1
    - Dst: task_new_here
      Src: /src/haproxy/src/dns.c:1173,1
    - Dst: dns_session_create
      Src: /src/haproxy/src/dns.c:1179,1
    - Dst: task_destroy
      Src: /src/haproxy/src/dns.c:1188,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:1189,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:1190,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:1192,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 1
    argNames:
    - dss
    argTypes:
    - struct dns_stream_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1134
    functionDepth: 3
    functionLinenumber: 1134
    functionLinenumberEnd: 1195
    functionName: dns_session_new
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - DISGUISE
    - pool_zalloc
    - pool_alloc
    - HA_ATOMIC_LOAD
    - task_destroy
    - dns_ring_init
    - dns_session_create
    - dns_ring_attach
    - pool_free
    - LIST_INIT
    - task_new_here
    linkageType: ''
    returnType: struct dns_session
    signature: struct dns_session *dns_session_new(struct dns_stream_server *dss)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:1211,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/dns.c:1213,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:1223,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:1224,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:1225,1
    - Dst: b_orig
      Src: /src/haproxy/src/dns.c:1225,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:1231,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:1232,1
    - Dst: b_size
      Src: /src/haproxy/src/dns.c:1233,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:1235,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/dns.c:1236,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:1236,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:1238,1
    - Dst: b_peek_varint
      Src: /src/haproxy/src/dns.c:1242,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:1246,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:1246,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:1247,1
    - Dst: b_getblk
      Src: /src/haproxy/src/dns.c:1253,1
    - Dst: ist2
      Src: /src/haproxy/src/dns.c:1255,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:1259,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/dns.c:1260,1
    - Dst: dns_ring_write
      Src: /src/haproxy/src/dns.c:1262,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:1265,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:1272,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/dns.c:1273,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:1279,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/dns.c:1280,1
    - Dst: dns_ring_write
      Src: /src/haproxy/src/dns.c:1283,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:1285,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/dns.c:1297,1
    - Dst: dns_session_new
      Src: /src/haproxy/src/dns.c:1305,1
    - Dst: dns_ring_write
      Src: /src/haproxy/src/dns.c:1308,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/dns.c:1310,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:1322,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:1322,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:1323,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/dns.c:1324,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:1327,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1202
    functionDepth: 4
    functionLinenumber: 1202
    functionLinenumberEnd: 1329
    functionName: dns_process_req
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - unlikely
    - LIST_NEXT
    - HA_SPIN_LOCK
    - b_getblk
    - LIST_APPEND
    - HA_ATOMIC_INC
    - b_peek
    - ist2
    - dns_ring_write
    - b_head_ofs
    - b_peek_ofs
    - b_peek_varint
    - LIST_INSERT
    - b_orig
    - HA_RWLOCK_RDUNLOCK
    - LIST_DEL_INIT
    - b_data
    - b_size
    - BUG_ON
    - HA_SPIN_UNLOCK
    - HA_ATOMIC_DEC
    - LIST_ISEMPTY
    - dns_session_new
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct task
    signature: struct task *dns_process_req(struct task *t, void *context, unsigned
      int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct dns_nameserver*::process_responses
      Src: /src/haproxy/src/dns.c:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1342
    functionName: dns_process_rsp
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - struct dns_nameserver*::process_responses
    linkageType: ''
    returnType: struct task
    signature: struct task *dns_process_rsp(struct task *t, void *context, unsigned
      int state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/dns.c:1349,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1351,1
    - Dst: dns_ring_new
      Src: /src/haproxy/src/dns.c:1359,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1361,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/dns.c:1365,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1366,1
    - Dst: dns_ring_attach
      Src: /src/haproxy/src/dns.c:1375,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1377,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/dns.c:1382,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1383,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/dns.c:1392,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1393,1
    - Dst: tick_add
      Src: /src/haproxy/src/dns.c:1400,1
    - Dst: task_queue
      Src: /src/haproxy/src/dns.c:1403,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1405,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1406,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1407,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/dns.c:1408,1
    - Dst: task_destroy
      Src: /src/haproxy/src/dns.c:1413,1
    - Dst: task_destroy
      Src: /src/haproxy/src/dns.c:1415,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/dns.c:1417,1
    - Dst: free
      Src: /src/haproxy/src/dns.c:1419,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 2
    argNames:
    - ns
    - srv
    argTypes:
    - struct dns_nameserver*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1345
    functionDepth: 4
    functionLinenumber: 1345
    functionLinenumberEnd: 1421
    functionName: dns_stream_init
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - dns_ring_new
    - task_new_anywhere
    - task_destroy
    - HA_SPIN_INIT
    - calloc
    - task_queue
    - dns_ring_free
    - free
    - dns_ring_attach
    - ha_alert
    - LIST_INIT
    - tick_add
    linkageType: ''
    returnType: int
    signature: int dns_stream_init(struct dns_nameserver *ns, struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/dns.c:1425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1430
    functionName: init_dns_buffers
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: int
    signature: int init_dns_buffers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/dns.c:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1435
    functionName: deinit_dns_buffers
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void deinit_dns_buffers()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/hq_interop.c:23,1
    - Dst: b_data
      Src: /src/haproxy/src/hq_interop.c:24,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hq_interop.c:27,1
    - Dst: b_data
      Src: /src/haproxy/src/hq_interop.c:27,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/hq_interop.c:27,1
    - Dst: b_data
      Src: /src/haproxy/src/hq_interop.c:29,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/hq_interop.c:29,1
    - Dst: qcs_http_handle_standalone_fin
      Src: /src/haproxy/src/hq_interop.c:30,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/hq_interop.c:36,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/hq_interop.c:41,1
    - Dst: fprintf
      Src: /src/haproxy/src/hq_interop.c:42,1
    - Dst: fprintf
      Src: /src/haproxy/src/hq_interop.c:48,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/hq_interop.c:52,1
    - Dst: fprintf
      Src: /src/haproxy/src/hq_interop.c:53,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/hq_interop.c:59,1
    - Dst: fprintf
      Src: /src/haproxy/src/hq_interop.c:65,1
    - Dst: b_alloc
      Src: /src/haproxy/src/hq_interop.c:71,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hq_interop.c:72,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/hq_interop.c:74,1
    - Dst: ist
      Src: /src/haproxy/src/hq_interop.c:74,1
    - Dst: ist
      Src: /src/haproxy/src/hq_interop.c:74,1
    - Dst: b_free
      Src: /src/haproxy/src/hq_interop.c:76,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/hq_interop.c:81,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/hq_interop.c:83,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hq_interop.c:85,1
    - Dst: qcs_attach_sc
      Src: /src/haproxy/src/hq_interop.c:87,1
    - Dst: b_free
      Src: /src/haproxy/src/hq_interop.c:88,1
    - Dst: b_free
      Src: /src/haproxy/src/hq_interop.c:92,1
    - Dst: b_data
      Src: /src/haproxy/src/hq_interop.c:94,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - qcs
    - b
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 95
    functionName: hq_interop_rcv_buf_req
    functionSourceFile: /src/haproxy/src/hq_interop.c
    functionUses: 0
    functionsReached:
    - b_contig_data
    - ist
    - find_http_meth
    - htx_from_buf
    - b_alloc
    - b_head
    - quic_stream_is_bidi
    - b_free
    - qcs_http_handle_standalone_fin
    - b_data
    - htx_add_stline
    - htx_to_buf
    - BUG_ON
    - HTTP_IS_SPHT
    - HTTP_IS_LWS
    - fprintf
    - htx_add_endof
    - HTTP_IS_TOKEN
    - qcs_attach_sc
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t hq_interop_rcv_buf_req(struct qcs *qcs, struct buffer *b, int
      fin)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/src/hq_interop.c:103,1
    - Dst: b_data
      Src: /src/haproxy/src/hq_interop.c:105,1
    - Dst: qcc_get_stream_rxbuf
      Src: /src/haproxy/src/hq_interop.c:109,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hq_interop.c:110,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hq_interop.c:111,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/hq_interop.c:113,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/hq_interop.c:115,1
    - Dst: ist
      Src: /src/haproxy/src/hq_interop.c:116,1
    - Dst: ist
      Src: /src/haproxy/src/hq_interop.c:116,1
    - Dst: ist
      Src: /src/haproxy/src/hq_interop.c:116,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hq_interop.c:117,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/hq_interop.c:121,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/hq_interop.c:125,1
    - Dst: qcs_http_handle_standalone_fin
      Src: /src/haproxy/src/hq_interop.c:126,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hq_interop.c:127,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hq_interop.c:133,1
    - Dst: b_head
      Src: /src/haproxy/src/hq_interop.c:133,1
    - Dst: b_wrap
      Src: /src/haproxy/src/hq_interop.c:133,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/hq_interop.c:135,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/hq_interop.c:141,1
    - Dst: ist2
      Src: /src/haproxy/src/hq_interop.c:141,1
    - Dst: b_head
      Src: /src/haproxy/src/hq_interop.c:141,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hq_interop.c:142,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hq_interop.c:148,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - qcs
    - b
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 150
    functionName: hq_interop_rcv_buf_res
    functionSourceFile: /src/haproxy/src/hq_interop.c
    functionUses: 0
    functionsReached:
    - ist
    - htx_to_buf
    - quic_stream_is_bidi
    - b_head
    - BUG_ON
    - ist2
    - qcc_get_stream_rxbuf
    - __sc_strm
    - qcs_http_handle_standalone_fin
    - htx_add_data
    - b_data
    - htx_add_stline
    - htx_free_data_space
    - htx_add_endof
    - b_wrap
    - htx_is_empty
    - htx_from_buf
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t hq_interop_rcv_buf_res(struct qcs *qcs, struct buffer *b, int
      fin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/hq_interop.c:156,1
    - Dst: b_data
      Src: /src/haproxy/src/hq_interop.c:156,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/hq_interop.c:156,1
    - Dst: hq_interop_rcv_buf_req
      Src: /src/haproxy/src/hq_interop.c:159,1
    - Dst: hq_interop_rcv_buf_res
      Src: /src/haproxy/src/hq_interop.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - qcs
    - b
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: hq_interop_rcv_buf
    functionSourceFile: /src/haproxy/src/hq_interop.c
    functionUses: 0
    functionsReached:
    - hq_interop_rcv_buf_res
    - BUG_ON
    - b_contig_data
    - b_data
    - hq_interop_rcv_buf_req
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t hq_interop_rcv_buf(struct qcs *qcs, struct buffer *b, int fin)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hq_interop.c:179,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/hq_interop.c:183,1
    - Dst: qcc_stream_can_send
      Src: /src/haproxy/src/hq_interop.c:183,1
    - Dst: htx_get_head
      Src: /src/haproxy/src/hq_interop.c:185,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/hq_interop.c:186,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hq_interop.c:187,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/hq_interop.c:188,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/hq_interop.c:192,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hq_interop.c:194,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/hq_interop.c:198,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/hq_interop.c:199,1
    - Dst: b_putist
      Src: /src/haproxy/src/hq_interop.c:202,1
    - Dst: ist
      Src: /src/haproxy/src/hq_interop.c:202,1
    - Dst: b_putist
      Src: /src/haproxy/src/hq_interop.c:203,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/hq_interop.c:203,1
    - Dst: b_putist
      Src: /src/haproxy/src/hq_interop.c:204,1
    - Dst: ist
      Src: /src/haproxy/src/hq_interop.c:204,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/hq_interop.c:205,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/hq_interop.c:210,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/hq_interop.c:213,1
    - Dst: unlikely
      Src: /src/haproxy/src/hq_interop.c:217,1
    - Dst: b_data
      Src: /src/haproxy/src/hq_interop.c:218,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/hq_interop.c:219,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/hq_interop.c:222,1
    - Dst: b_make
      Src: /src/haproxy/src/hq_interop.c:226,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hq_interop.c:235,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/hq_interop.c:242,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/hq_interop.c:243,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/hq_interop.c:247,1
    - Dst: b_putblk
      Src: /src/haproxy/src/hq_interop.c:251,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/hq_interop.c:251,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/hq_interop.c:256,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/hq_interop.c:258,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/hq_interop.c:266,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/hq_interop.c:274,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hq_interop.c:276,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 4
    argNames:
    - qcs
    - buf
    - count
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 279
    functionName: hq_interop_snd_buf
    functionSourceFile: /src/haproxy/src/hq_interop.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - TRACE_DATA
    - htx_nbblks
    - htx_get_blk_ptr
    - htx_get_head
    - b_contig_space
    - qcc_get_stream_txbuf
    - htx_is_empty
    - ist
    - htx_get_blk_type
    - b_make
    - b_putist
    - htx_sl_req_uri
    - BUG_ON_HOT
    - htx_from_buf
    - qcc_stream_can_send
    - b_data
    - htx_to_buf
    - BUG_ON
    - htx_cut_data_blk
    - htx_get_blk
    - b_putblk
    - ABORT_NOW
    - htx_remove_blk
    - qcc_release_stream_txbuf
    linkageType: ''
    returnType: size_t
    signature: "size_t hq_interop_snd_buf(struct qcs *qcs, struct buffer *buf,\n                                 size_t
      count, char *fin)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/hq_interop.c:287,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/hq_interop.c:290,1
    - Dst: b_room
      Src: /src/haproxy/src/hq_interop.c:295,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/hq_interop.c:296,1
    - Dst: MIN
      Src: /src/haproxy/src/hq_interop.c:309,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/hq_interop.c:309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - qcs
    - count
    argTypes:
    - struct qcs*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 312
    functionName: hq_interop_nego_ff
    functionSourceFile: /src/haproxy/src/hq_interop.c
    functionUses: 0
    functionsReached:
    - b_room
    - ABORT_NOW
    - qcc_release_stream_txbuf
    - MIN
    - b_contig_space
    - qcc_get_stream_txbuf
    linkageType: ''
    returnType: size_t
    signature: size_t hq_interop_nego_ff(struct qcs *qcs, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: hq_interop_done_ff
    functionSourceFile: /src/haproxy/src/hq_interop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hq_interop_done_ff(struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qcs_wait_http_req
      Src: /src/haproxy/src/hq_interop.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - qcs
    - conn_ctx
    argTypes:
    - struct qcs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: hq_interop_attach
    functionSourceFile: /src/haproxy/src/hq_interop.c
    functionUses: 0
    functionsReached:
    - qcs_wait_http_req
    linkageType: ''
    returnType: int
    signature: int hq_interop_attach(struct qcs *qcs, void *conn_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qcc_send_stream
      Src: /src/haproxy/src/hq_interop.c:331,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/hq_interop.c:335,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/hq_interop.c:339,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/hq_interop.c:341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - qcs
    - mode
    argTypes:
    - struct qcs*
    - enum qcc_app_ops_lclose_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 344
    functionName: hq_interop_lclose
    functionSourceFile: /src/haproxy/src/hq_interop.c
    functionUses: 0
    functionsReached:
    - qcc_set_error
    - qcc_send_stream
    - qcc_reset_stream
    linkageType: ''
    returnType: void
    signature: void hq_interop_lclose(struct qcs *qcs, enum qcc_app_ops_lclose_mode
      mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc::calloc
      Src: /src/haproxy/src/arg.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - orig
    argTypes:
    - struct arg_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: arg_list_clone
    functionSourceFile: /src/haproxy/src/arg.c
    functionUses: 0
    functionsReached:
    - calloc::calloc
    linkageType: ''
    returnType: struct arg_list
    signature: struct arg_list *arg_list_clone(const struct arg_list *orig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arg_list_clone::arg_list_clone
      Src: /src/haproxy/src/arg.c:79,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/arg.c:83,1
    - Dst: list::list
      Src: /src/haproxy/src/arg.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - orig
    - arg
    - pos
    argTypes:
    - struct arg_list*
    - struct arg*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: arg_list_add
    functionSourceFile: /src/haproxy/src/arg.c
    functionUses: 0
    functionsReached:
    - arg_list_clone::arg_list_clone
    - LIST_APPEND
    - list::list
    linkageType: ''
    returnType: struct arg_list
    signature: struct arg_list *arg_list_add(struct arg_list *orig, struct arg *arg,
      int pos)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/arg.c:153,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/arg.c:164,1
    - Dst: read_int64
      Src: /src/haproxy/src/arg.c:235,1
    - Dst: arg_list_add
      Src: /src/haproxy/src/arg.c:254,1
    - Dst: my_strndup
      Src: /src/haproxy/src/arg.c:262,1
    - Dst: inet_pton
      Src: /src/haproxy/src/arg.c:271,1
    - Dst: str2mask
      Src: /src/haproxy/src/arg.c:279,1
    - Dst: inet_pton
      Src: /src/haproxy/src/arg.c:289,1
    - Dst: str2mask6
      Src: /src/haproxy/src/arg.c:297,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/arg.c:307,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/arg.c:321,1
    - Dst: parse_dotted_uints
      Src: /src/haproxy/src/arg.c:333,1
    - Dst: memprintf
      Src: /src/haproxy/src/arg.c:357,1
    - Dst: my_strndup
      Src: /src/haproxy/src/arg.c:370,1
    - Dst: memprintf
      Src: /src/haproxy/src/arg.c:373,1
    - Dst: memprintf
      Src: /src/haproxy/src/arg.c:375,1
    - Dst: free
      Src: /src/haproxy/src/arg.c:378,1
    - Dst: free_args
      Src: /src/haproxy/src/arg.c:402,1
    - Dst: free
      Src: /src/haproxy/src/arg.c:403,1
    - Dst: ha_free
      Src: /src/haproxy/src/arg.c:417,1
    - Dst: memprintf
      Src: /src/haproxy/src/arg.c:423,1
    - Dst: memprintf
      Src: /src/haproxy/src/arg.c:429,1
    - Dst: memprintf
      Src: /src/haproxy/src/arg.c:434,1
    - Dst: memprintf
      Src: /src/haproxy/src/arg.c:439,1
    - Dst: memprintf
      Src: /src/haproxy/src/arg.c:448,1
    - Dst: memprintf
      Src: /src/haproxy/src/arg.c:453,1
    - Dst: memprintf
      Src: /src/haproxy/src/arg.c:457,1
    CyclomaticComplexity: 120
    EdgeCount: 120
    ICount: 276
    argCount: 8
    argNames:
    - in
    - len
    - mask
    - argp
    - err_msg
    - end_ptr
    - err_arg
    - al
    argTypes:
    - char*
    - int
    - uint64_t
    - struct arg**
    - char**
    - char**
    - int*
    - struct arg_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 460
    functionName: make_arg_list
    functionSourceFile: /src/haproxy/src/arg.c
    functionUses: 5
    functionsReached:
    - my_strndup
    - parse_size_err
    - parse_dotted_uints
    - memprintf
    - str2mask6
    - ha_free
    - calloc
    - free_args
    - free
    - read_int64
    - arg_list_add
    - chunk_reset
    - str2mask
    - parse_time_err
    - inet_pton
    linkageType: ''
    returnType: int
    signature: "int make_arg_list(const char *in, int len, uint64_t mask, struct arg
      **argp,\n                  char **err_msg, const char **end_ptr, int *err_arg,\n
      \                 struct arg_list *al)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_destroy
      Src: /src/haproxy/src/arg.c:474,1
    - Dst: regex_free
      Src: /src/haproxy/src/arg.c:476,1
    - Dst: ha_free
      Src: /src/haproxy/src/arg.c:478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct arg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 481
    functionName: free_args
    functionSourceFile: /src/haproxy/src/arg.c
    functionUses: 5
    functionsReached:
    - ha_free
    - chunk_destroy
    - regex_free
    linkageType: ''
    returnType: struct arg
    signature: struct arg *free_args(struct arg *args)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_pubkey
      Src: /src/haproxy/src/ssl_utils.c:30,1
    - Dst: EVP_PKEY_bits
      Src: /src/haproxy/src/ssl_utils.c:32,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_utils.c:33,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_utils.c:44,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_utils.c:49,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_utils.c:52,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_utils.c:55,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - crt
    - out
    argTypes:
    - X509*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 63
    functionName: cert_get_pkey_algo
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached:
    - chunk_printf
    - EVP_PKEY_bits
    - X509_get_pubkey
    - EVP_PKEY_free
    - EVP_PKEY_base_id
    linkageType: ''
    returnType: int
    signature: int cert_get_pkey_algo(X509 *crt, struct buffer *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_serialNumber
      Src: /src/haproxy/src/ssl_utils.c:73,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:81,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:84,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:87,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:88,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_utils.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - crt
    - out
    argTypes:
    - X509*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 92
    functionName: ssl_sock_get_serial
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    - X509_get_serialNumber
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_serial(X509 *crt, struct buffer *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/haproxy/src/ssl_utils.c:103,1
    - Dst: i2d_X509
      Src: /src/haproxy/src/ssl_utils.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - crt
    - out
    argTypes:
    - X509*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 113
    functionName: ssl_sock_crt2der
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - i2d_X509
    linkageType: ''
    returnType: int
    signature: int ssl_sock_crt2der(X509 *crt, struct buffer *out)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:133,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:147,1
    - Dst: ASN1_STRING_type
      Src: /src/haproxy/src/ssl_utils.c:155,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_utils.c:156,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:158,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:162,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:165,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:166,1
    - Dst: ASN1_STRING_type
      Src: /src/haproxy/src/ssl_utils.c:169,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_utils.c:170,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:172,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:176,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:179,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:180,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 2
    argNames:
    - tm
    - out
    argTypes:
    - ASN1_TIME*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 185
    functionName: ssl_sock_get_time
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_type
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_time(ASN1_TIME *tm, struct buffer *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_entry_count
      Src: /src/haproxy/src/ssl_utils.c:204,1
    - Dst: X509_NAME_get_entry
      Src: /src/haproxy/src/ssl_utils.c:213,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/haproxy/src/ssl_utils.c:214,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/haproxy/src/ssl_utils.c:215,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_utils.c:216,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:217,1
    - Dst: OBJ_obj2nid
      Src: /src/haproxy/src/ssl_utils.c:218,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_utils.c:219,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/haproxy/src/ssl_utils.c:220,1
    - Dst: chunk_strcasecmp
      Src: /src/haproxy/src/ssl_utils.c:224,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:238,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - a
    - entry
    - pos
    - out
    argTypes:
    - __X509_NAME_CONST__*
    - struct buffer*
    - int
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 245
    functionName: ssl_sock_get_dn_entry
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached:
    - chunk_strcasecmp
    - OBJ_nid2sn
    - X509_NAME_ENTRY_get_data
    - memcpy
    - i2t_ASN1_OBJECT
    - X509_NAME_ENTRY_get_object
    - X509_NAME_entry_count
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - OBJ_obj2nid
    - X509_NAME_get_entry
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_get_dn_entry(__X509_NAME_CONST__ X509_NAME *a, const
      struct buffer *entry, int pos,\n                          struct buffer *out)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: chunk_strcmp
      Src: /src/haproxy/src/ssl_utils.c:258,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_utils.c:259,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_utils.c:259,1
    - Dst: X509_NAME_print_ex
      Src: /src/haproxy/src/ssl_utils.c:263,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_utils.c:266,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_utils.c:275,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - a
    - format
    - out
    argTypes:
    - __X509_NAME_CONST__*
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 277
    functionName: ssl_sock_get_dn_formatted
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - X509_NAME_print_ex
    - chunk_strcmp
    - BIO_free
    - BIO_read
    - BIO_new
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_dn_formatted(__X509_NAME_CONST__ X509_NAME *a, const
      struct buffer *format, struct buffer *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_entry_count
      Src: /src/haproxy/src/ssl_utils.c:297,1
    - Dst: X509_NAME_get_entry
      Src: /src/haproxy/src/ssl_utils.c:302,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/haproxy/src/ssl_utils.c:303,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/haproxy/src/ssl_utils.c:304,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_utils.c:305,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:306,1
    - Dst: OBJ_obj2nid
      Src: /src/haproxy/src/ssl_utils.c:307,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_utils.c:308,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/haproxy/src/ssl_utils.c:309,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_utils.c:312,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:320,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - __X509_NAME_CONST__*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 331
    functionName: ssl_sock_get_dn_oneline
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - X509_NAME_ENTRY_get_data
    - memcpy
    - i2t_ASN1_OBJECT
    - X509_NAME_ENTRY_get_object
    - X509_NAME_entry_count
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - strlen
    - OBJ_obj2nid
    - X509_NAME_get_entry
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_dn_oneline(__X509_NAME_CONST__ X509_NAME *a, struct
      buffer *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_peer_certificate
      Src: /src/haproxy/src/ssl_utils.c:350,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_utils.c:354,1
    - Dst: X509_up_ref
      Src: /src/haproxy/src/ssl_utils.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 360
    functionName: ssl_sock_get_peer_certificate
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - SSL_get_ex_data
    - SSL_get_peer_certificate
    linkageType: ''
    returnType: X509
    signature: X509 * ssl_sock_get_peer_certificate(SSL *ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_utils.c:372,1
    - Dst: SSL_get0_verified_chain
      Src: /src/haproxy/src/ssl_utils.c:376,1
    - Dst: sk_X509_num
      Src: /src/haproxy/src/ssl_utils.c:380,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_utils.c:381,1
    - Dst: X509_check_issued
      Src: /src/haproxy/src/ssl_utils.c:383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 388
    functionName: ssl_sock_get_verified_chain_root
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - X509_check_issued
    - sk_X509_value
    - SSL_get0_verified_chain
    - sk_X509_num
    - STACK_OF
    linkageType: ''
    returnType: X509
    signature: X509 * ssl_sock_get_verified_chain_root(SSL *ssl)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/ssl_utils.c:422,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_utils.c:427,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_utils.c:432,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_utils.c:446,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_utils.c:448,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - version
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 471
    functionName: openssl_version_parser
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached:
    - strtol
    - strncmp
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int openssl_version_parser(const char *version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:481,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - input
    - len
    - output
    argTypes:
    - char*
    - int
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 490
    functionName: exclude_tls_grease
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void exclude_tls_grease(char *input, int len, struct buffer *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    functionName: _Q
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Q(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: V
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: V(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_utils.c:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 627
    functionName: x509_v_err_str_to_int
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int x509_v_err_str_to_int(const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 647
    functionName: x509_v_err_int_to_str
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *x509_v_err_int_to_str(int code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_utils.c:655,1
    - Dst: atoi
      Src: /src/haproxy/src/ssl_utils.c:657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 659
    functionName: init_x509_v_err_tab
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - atoi
    - strcmp
    linkageType: ''
    returnType: void
    signature: void init_x509_v_err_tab(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_type
      Src: /src/haproxy/src/ssl_utils.c:689,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_utils.c:691,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:692,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 1
    argNames:
    - d
    argTypes:
    - ASN1_GENERALIZEDTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 754
    functionName: asn1_generalizedtime_to_epoch
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_type
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: long
    signature: long asn1_generalizedtime_to_epoch(ASN1_GENERALIZEDTIME *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/ssl_utils.c:765,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_utils.c:767,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_utils.c:767,1
    - Dst: ASN1_TIME_print
      Src: /src/haproxy/src/ssl_utils.c:769,1
    - Dst: X509_getm_notAfter
      Src: /src/haproxy/src/ssl_utils.c:769,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_utils.c:771,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_utils.c:773,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_utils.c:778,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 780
    functionName: x509_get_notafter
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - X509_getm_notAfter
    - BIO_free
    - ASN1_TIME_print
    - BIO_read
    - BIO_new
    - BIO_s_mem
    linkageType: ''
    returnType: char
    signature: char *x509_get_notafter(X509 *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/ssl_utils.c:791,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_utils.c:793,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_utils.c:793,1
    - Dst: ASN1_TIME_print
      Src: /src/haproxy/src/ssl_utils.c:795,1
    - Dst: X509_getm_notBefore
      Src: /src/haproxy/src/ssl_utils.c:795,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_utils.c:797,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_utils.c:799,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_utils.c:804,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 806
    functionName: x509_get_notbefore
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - X509_getm_notBefore
    - memset
    - BIO_free
    - ASN1_TIME_print
    - BIO_read
    - BIO_new
    - BIO_s_mem
    linkageType: ''
    returnType: char
    signature: char *x509_get_notbefore(X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_to_tm
      Src: /src/haproxy/src/ssl_utils.c:815,1
    - Dst: my_timegm
      Src: /src/haproxy/src/ssl_utils.c:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - asn1_time
    argTypes:
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 821
    functionName: ASN1_to_time_t
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - my_timegm
    - ASN1_TIME_to_tm
    linkageType: ''
    returnType: time_t
    signature: time_t ASN1_to_time_t(ASN1_TIME *asn1_time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_getm_notAfter
      Src: /src/haproxy/src/ssl_utils.c:829,1
    - Dst: ASN1_to_time_t
      Src: /src/haproxy/src/ssl_utils.c:832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 836
    functionName: x509_get_notafter_time_t
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 2
    functionsReached:
    - ASN1_to_time_t
    - X509_getm_notAfter
    linkageType: ''
    returnType: time_t
    signature: time_t x509_get_notafter_time_t(X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_getm_notBefore
      Src: /src/haproxy/src/ssl_utils.c:844,1
    - Dst: ASN1_to_time_t
      Src: /src/haproxy/src/ssl_utils.c:847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 851
    functionName: x509_get_notbefore_time_t
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached:
    - X509_getm_notBefore
    - ASN1_to_time_t
    linkageType: ''
    returnType: time_t
    signature: time_t x509_get_notbefore_time_t(X509 *cert)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 863
    functionName: nid2nist
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *nid2nist(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sigalg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 962
    functionName: sigalg2str
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sigalg2str(int sigalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 973
    functionName: _Q
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Q(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 975
    functionName: V
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: V(w, x, y, z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/ssl_utils.c:1057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1062
    functionName: init_curves_tab
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: void
    signature: void init_curves_tab(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - curve_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1079
    functionName: curveid2str
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *curveid2str(int curve_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_utils.c:1087,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_utils.c:1088,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - curve
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1093
    functionName: curves2nid
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int curves2nid(const char *curve)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:101,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:103,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/http_ana.c:103,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_ana.c:110,1
    - Dst: c_empty
      Src: /src/haproxy/src/http_ana.c:110,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:113,1
    - Dst: stream_abort
      Src: /src/haproxy/src/http_ana.c:121,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:124,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:127,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:131,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:132,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_ana.c:133,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_ana.c:141,1
    - Dst: stream_inc_http_req_ctr
      Src: /src/haproxy/src/http_ana.c:148,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/http_ana.c:149,1
    - Dst: stream_inc_http_err_ctr
      Src: /src/haproxy/src/http_ana.c:151,1
    - Dst: stream_inc_http_req_ctr
      Src: /src/haproxy/src/http_ana.c:162,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/http_ana.c:163,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_ana.c:168,1
    - Dst: htx_get_first_type
      Src: /src/haproxy/src/http_ana.c:168,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:171,1
    - Dst: http_debug_stline
      Src: /src/haproxy/src/http_ana.c:175,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_ana.c:177,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_ana.c:177,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_ana.c:178,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_ana.c:179,1
    - Dst: http_debug_hdr
      Src: /src/haproxy/src/http_ana.c:186,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_ana.c:187,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_ana.c:188,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:211,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/http_ana.c:211,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:211,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:224,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:224,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:226,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:226,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ana.c:228,1
    - Dst: isteq
      Src: /src/haproxy/src/http_ana.c:229,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:229,1
    - Dst: isteq
      Src: /src/haproxy/src/http_ana.c:230,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:230,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:238,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:241,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/http_ana.c:242,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:249,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:257,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:267,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/http_ana.c:268,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:271,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_ana.c:282,1
    - Dst: http_fmt_req_line
      Src: /src/haproxy/src/http_ana.c:285,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/http_ana.c:289,1
    - Dst: log_orig
      Src: /src/haproxy/src/http_ana.c:289,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ana.c:291,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_ana.c:305,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_ana.c:305,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:309,1
    - Dst: http_capture_headers
      Src: /src/haproxy/src/http_ana.c:310,1
    - Dst: likely
      Src: /src/haproxy/src/http_ana.c:330,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:340,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:348,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:350,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:351,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:357,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:359,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:360,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:364,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:365,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:365,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:367,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 150
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 83
    functionDepth: 11
    functionLinenumber: 83
    functionLinenumberEnd: 370
    functionName: http_wait_for_request
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - unlikely
    - http_debug_stline
    - isttest
    - stream_report_term_evt
    - channel_dont_connect
    - struct stream*::do_log
    - proxy_inc_fe_req_ctr
    - http_uri_parser_init
    - likely
    - http_reply_and_close
    - htx_sl_req_meth
    - DBG_TRACE_DEVEL
    - htx_get_blk_name
    - ist
    - DBG_TRACE_LEAVE
    - stream_inc_http_req_ctr
    - pool_alloc
    - log_orig_proxy
    - stream_abort
    - HTX_SL_REQ_UPTR
    - htx_get_blk_type
    - isteq
    - IS_HTX_STRM
    - http_parse_path
    - istptr
    - htx_sl_req_uri
    - http_fmt_req_line
    - isteqi
    - htxbuf
    - http_debug_hdr
    - acl_match_cond
    - http_get_stline
    - htx_get_first
    - log_orig
    - http_capture_headers
    - c_empty
    - http_set_term_flags
    - htx_get_next
    - DBG_TRACE_ENTER
    - htx_get_blk_value
    - http_error_message
    - _HA_ATOMIC_INC
    - HTX_SL_REQ_VLEN
    - BUG_ON
    - list_for_each_entry
    - htx_get_first_type
    - htx_get_blk
    - ha_alert
    - stream_inc_http_err_ctr
    - HTX_SL_REQ_VPTR
    linkageType: ''
    returnType: int
    signature: int http_wait_for_request(struct stream *s, struct channel *req, int
      an_bit)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/http_ana.c:389,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:392,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:394,1
    - Dst: stream_inc_be_http_req_ctr
      Src: /src/haproxy/src/http_ana.c:399,1
    - Dst: http_req_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:411,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/http_ana.c:413,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/http_ana.c:413,1
    - Dst: http_req_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:414,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:435,1
    - Dst: http_req_restrict_header_names
      Src: /src/haproxy/src/http_ana.c:452,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:462,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:462,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:463,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ana.c:463,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:463,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:463,1
    - Dst: http_stats_check_uri
      Src: /src/haproxy/src/http_ana.c:474,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:476,1
    - Dst: sc_applet_create
      Src: /src/haproxy/src/http_ana.c:476,1
    - Dst: objt_applet
      Src: /src/haproxy/src/http_ana.c:476,1
    - Dst: http_handle_stats
      Src: /src/haproxy/src/http_ana.c:484,1
    - Dst: http_req_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:485,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:493,1
    - Dst: objt_applet
      Src: /src/haproxy/src/http_ana.c:493,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:496,1
    - Dst: http_handle_expect_hdr
      Src: /src/haproxy/src/http_ana.c:498,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:503,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/http_ana.c:505,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:519,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/http_ana.c:520,1
    - Dst: http_apply_redirect_rule
      Src: /src/haproxy/src/http_ana.c:522,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:525,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:545,1
    - Dst: http_manage_client_side_cookies
      Src: /src/haproxy/src/http_ana.c:552,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/src/http_ana.c:559,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:564,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/http_ana.c:568,1
    - Dst: tick_add
      Src: /src/haproxy/src/http_ana.c:570,1
    - Dst: stream_inc_http_err_ctr
      Src: /src/haproxy/src/http_ana.c:571,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:573,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:575,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:577,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:578,1
    - Dst: http_manage_client_side_cookies
      Src: /src/haproxy/src/http_ana.c:586,1
    - Dst: stream_inc_http_err_ctr
      Src: /src/haproxy/src/http_ana.c:589,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:591,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:593,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:595,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:596,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:603,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:605,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:607,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:609,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:617,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:619,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:621,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:622,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:628,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:630,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:631,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:635,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:636,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:636,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:640,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:644,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:649,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:650,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:655,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:656,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 212
    argCount: 4
    argNames:
    - s
    - req
    - an_bit
    - px
    argTypes:
    - struct stream*
    - struct channel*
    - int
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 659
    functionName: http_process_req_common
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - unlikely
    - http_stats_check_uri
    - channel_htx_erase
    - http_handle_stats
    - stream_report_term_evt
    - http_handle_expect_hdr
    - channel_dont_connect
    - http_find_header
    - sc_applet_create
    - http_reply_and_close
    - DBG_TRACE_DEVEL
    - http_add_header
    - ist
    - DBG_TRACE_LEAVE
    - stream_inc_be_http_req_ctr
    - objt_applet
    - tick_add
    - htxbuf
    - acl_match_cond
    - objt_conn
    - http_req_restrict_header_names
    - tick_add_ifset
    - http_set_term_flags
    - DBG_TRACE_ENTER
    - http_error_message
    - _HA_ATOMIC_INC
    - list_for_each_entry
    - http_apply_redirect_rule
    - http_req_get_intercept_rule
    - HAS_FILTERS
    - LIST_ISEMPTY
    - http_manage_client_side_cookies
    - stream_inc_http_err_ctr
    linkageType: ''
    returnType: int
    signature: int http_process_req_common(struct stream *s, struct channel *req,
      int an_bit, struct proxy *px)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/http_ana.c:671,1
    - Dst: strm_sess
      Src: /src/haproxy/src/http_ana.c:671,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:673,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:681,1
    - Dst: http_manage_client_side_cookies
      Src: /src/haproxy/src/http_ana.c:690,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/http_ana.c:697,1
    - Dst: stream_generate_unique_id
      Src: /src/haproxy/src/http_ana.c:698,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:700,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:707,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:708,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ana.c:708,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:713,1
    - Dst: http_handle_7239_header
      Src: /src/haproxy/src/http_ana.c:713,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:715,1
    - Dst: http_handle_xff_header
      Src: /src/haproxy/src/http_ana.c:715,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:717,1
    - Dst: http_handle_xot_header
      Src: /src/haproxy/src/http_ana.c:717,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/http_ana.c:723,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:733,1
    - Dst: conn_set_quickack
      Src: /src/haproxy/src/http_ana.c:746,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:757,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:764,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:766,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:768,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:770,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:778,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:780,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:782,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:783,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:785,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:786,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:786,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:788,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 68
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 666
    functionDepth: 3
    functionLinenumber: 666
    functionLinenumberEnd: 791
    functionName: http_process_request
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - unlikely
    - stream_report_term_evt
    - channel_dont_connect
    - stream_generate_unique_id
    - lf_expr_isempty
    - http_reply_and_close
    - DBG_TRACE_DEVEL
    - http_add_header
    - DBG_TRACE_LEAVE
    - http_handle_xff_header
    - conn_set_quickack
    - strm_sess
    - htxbuf
    - http_handle_xot_header
    - objt_conn
    - http_set_term_flags
    - DBG_TRACE_ENTER
    - http_error_message
    - _HA_ATOMIC_INC
    - http_handle_7239_header
    - HAS_FILTERS
    - http_manage_client_side_cookies
    - isttest
    linkageType: ''
    returnType: int
    signature: int http_process_request(struct stream *s, struct channel *req, int
      an_bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:801,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:807,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/http_ana.c:809,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/src/http_ana.c:811,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:811,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:812,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/http_ana.c:824,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:826,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:827,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:828,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:828,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 832
    functionName: http_process_tarpit
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - channel_htx_erase
    - http_error_message
    - htxbuf
    - stream_report_term_evt
    - DBG_TRACE_LEAVE
    - channel_dont_connect
    - ns_to_ms
    - tick_is_expired
    - http_reply_and_close
    - DBG_TRACE_DEVEL
    - http_set_term_flags
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int http_process_tarpit(struct stream *s, struct channel *req, int
      an_bit)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:847,1
    - Dst: http_wait_for_msg_body
      Src: /src/haproxy/src/http_ana.c:851,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:865,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:876,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:880,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:881,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:890,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:892,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:894,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:895,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:901,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:903,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:904,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:908,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:909,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:909,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:913,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:917,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 72
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 920
    functionName: http_wait_for_request_body
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - http_error_message
    - _HA_ATOMIC_INC
    - DBG_TRACE_LEAVE
    - stream_report_term_evt
    - channel_dont_connect
    - http_wait_for_msg_body
    - http_reply_and_close
    - DBG_TRACE_DEVEL
    - http_set_term_flags
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int http_wait_for_request_body(struct stream *s, struct channel *req,
      int an_bit)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:941,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:943,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:959,1
    - Dst: HAS_REQ_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:985,1
    - Dst: flt_http_payload
      Src: /src/haproxy/src/http_ana.c:986,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:989,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:992,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:992,1
    - Dst: channel_htx_forward_forever
      Src: /src/haproxy/src/http_ana.c:995,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:998,1
    - Dst: HAS_REQ_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:1017,1
    - Dst: flt_http_end
      Src: /src/haproxy/src/http_ana.c:1018,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:1036,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:1038,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_ana.c:1045,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:1045,1
    - Dst: http_end_request
      Src: /src/haproxy/src/http_ana.c:1049,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:1051,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/http_ana.c:1060,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:1061,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:1064,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:1070,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1072,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_ana.c:1089,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:1089,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:1102,1
    - Dst: HAS_REQ_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:1112,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1115,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1121,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1123,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1125,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1127,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1135,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1137,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1139,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1141,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1151,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1153,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1155,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1157,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:1158,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1164,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1166,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:1167,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1172,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1175,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1178,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1178,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1180,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 177
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 1183
    functionName: http_request_forward_body
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - stream_report_term_evt
    - channel_dont_close
    - co_data
    - HAS_REQ_DATA_FILTERS
    - flt_http_end
    - http_reply_and_close
    - DBG_TRACE_DEVEL
    - htx_is_empty
    - DBG_TRACE_LEAVE
    - proxy_abrt_close_def
    - http_end_request
    - channel_htx_forward_forever
    - c_adv
    - channel_auto_read
    - htxbuf
    - flt_http_payload
    - http_set_term_flags
    - DBG_TRACE_ENTER
    - http_error_message
    - _HA_ATOMIC_INC
    - channel_auto_close
    linkageType: ''
    returnType: int
    signature: int http_request_forward_body(struct stream *s, struct channel *req,
      int an_bit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1195,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/http_ana.c:1198,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1198,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1201,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1204,1
    - Dst: stream_choose_redispatch
      Src: /src/haproxy/src/http_ana.c:1217,1
    - Dst: sc_reset_endp
      Src: /src/haproxy/src/http_ana.c:1222,1
    - Dst: b_free
      Src: /src/haproxy/src/http_ana.c:1227,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:1231,1
    - Dst: b_set_data
      Src: /src/haproxy/src/http_ana.c:1232,1
    - Dst: b_size
      Src: /src/haproxy/src/http_ana.c:1232,1
    - Dst: co_set_data
      Src: /src/haproxy/src/http_ana.c:1236,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1238,1
    - Dst: b_reset
      Src: /src/haproxy/src/http_ana.c:1241,1
    - Dst: co_set_data
      Src: /src/haproxy/src/http_ana.c:1242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 2
    argNames:
    - s
    - sc
    argTypes:
    - struct stream*
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1187
    functionDepth: 8
    functionLinenumber: 1187
    functionLinenumberEnd: 1244
    functionName: do_l7_retry
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - stream_choose_redispatch
    - _HA_ATOMIC_INC
    - b_free
    - b_data
    - b_size
    - b_reset
    - co_set_data
    - DBG_TRACE_DEVEL
    - sc_reset_endp
    - b_set_data
    - objt_server
    - _HA_ATOMIC_DEC
    linkageType: ''
    returnType: int
    signature: int do_l7_retry(struct stream *s, struct stconn *sc)
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:1270,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:1272,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1276,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1277,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1277,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1296,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_ana.c:1296,1
    - Dst: sc_conn
      Src: /src/haproxy/src/http_ana.c:1299,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1301,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1302,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1302,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:1307,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1307,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1315,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1316,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1325,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1327,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:1334,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1341,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1343,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1343,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1344,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1351,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1352,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1352,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:1356,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1356,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1357,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1363,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1365,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:1368,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1373,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1375,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1375,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1376,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1385,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1387,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1389,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1391,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1397,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1399,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1399,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1402,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1409,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1410,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1410,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:1414,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1414,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1415,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1425,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1427,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:1430,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1435,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1437,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1437,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1438,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/http_ana.c:1444,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1449,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1451,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1456,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1459,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1460,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:1465,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1467,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_ana.c:1476,1
    - Dst: htx_get_first_type
      Src: /src/haproxy/src/http_ana.c:1476,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:1477,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/http_ana.c:1479,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1483,1
    - Dst: HTX_SL_RES_VPTR
      Src: /src/haproxy/src/http_ana.c:1487,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/http_ana.c:1491,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1503,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1505,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1505,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1507,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1507,1
    - Dst: l7_status_match
      Src: /src/haproxy/src/http_ana.c:1512,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1513,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1514,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1522,1
    - Dst: http_debug_stline
      Src: /src/haproxy/src/http_ana.c:1526,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_ana.c:1528,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_ana.c:1528,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_ana.c:1529,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_ana.c:1530,1
    - Dst: http_debug_hdr
      Src: /src/haproxy/src/http_ana.c:1537,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_ana.c:1538,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_ana.c:1539,1
    - Dst: http_status_matches
      Src: /src/haproxy/src/http_ana.c:1564,1
    - Dst: stream_inc_http_err_ctr
      Src: /src/haproxy/src/http_ana.c:1565,1
    - Dst: http_status_matches
      Src: /src/haproxy/src/http_ana.c:1567,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:1568,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1575,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1576,1
    - Dst: FLT_STRM_CB
      Src: /src/haproxy/src/http_ana.c:1588,1
    - Dst: flt_http_reset
      Src: /src/haproxy/src/http_ana.c:1588,1
    - Dst: channel_htx_fwd_headers
      Src: /src/haproxy/src/http_ana.c:1589,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1605,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1606,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1606,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1646,1
    - Dst: http_capture_headers
      Src: /src/haproxy/src/http_ana.c:1647,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1650,1
    - Dst: sc_conn
      Src: /src/haproxy/src/http_ana.c:1672,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/http_ana.c:1674,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ana.c:1674,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:1679,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:1681,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:1686,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http_ana.c:1693,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http_ana.c:1694,1
    - Dst: conn_set_private
      Src: /src/haproxy/src/http_ana.c:1696,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/http_ana.c:1698,1
    - Dst: b_free
      Src: /src/haproxy/src/http_ana.c:1706,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/http_ana.c:1709,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:1714,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:1715,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1720,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1722,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1724,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1726,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:1730,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1736,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1737,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1743,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1745,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:1748,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:1749,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1753,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1754,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1754,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1757,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1770,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1771,1
    CyclomaticComplexity: 135
    EdgeCount: 135
    ICount: 303
    argCount: 3
    argNames:
    - s
    - rep
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1253
    functionDepth: 9
    functionLinenumber: 1253
    functionLinenumberEnd: 1774
    functionName: http_wait_for_response
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_conn
    - http_debug_stline
    - stream_report_term_evt
    - do_l7_retry
    - sc_ep_test
    - channel_dont_close
    - HTX_SL_RES_VLEN
    - co_data
    - http_find_header
    - stream_inc_http_fail_ctr
    - HTX_SL_RES_VPTR
    - channel_htx_fwd_headers
    - http_reply_and_close
    - DBG_TRACE_DEVEL
    - objt_server
    - htx_is_empty
    - htx_get_blk_name
    - ist
    - DBG_TRACE_LEAVE
    - http_status_matches
    - strcmp
    - flt_http_reset
    - FLT_STRM_CB
    - htx_get_blk_type
    - htxbuf
    - http_debug_hdr
    - http_get_stline
    - ns_to_ms
    - htx_get_first
    - b_free
    - l7_status_match
    - LIST_INLIST
    - http_capture_headers
    - conn_set_private
    - http_set_term_flags
    - DBG_TRACE_ENTER
    - __objt_server
    - htx_get_next
    - http_error_message
    - _HA_ATOMIC_INC
    - htx_get_blk_value
    - session_add_conn
    - BUG_ON
    - htx_get_first_type
    - htx_get_blk
    - health_adjust
    - stream_inc_http_err_ctr
    - channel_auto_close
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int http_wait_for_response(struct stream *s, struct channel *rep, int
      an_bit)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1791,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:1794,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:1796,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1801,1
    - Dst: objt_applet
      Src: /src/haproxy/src/http_ana.c:1801,1
    - Dst: http_res_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:1839,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:1856,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1878,1
    - Dst: http_manage_server_side_cookies
      Src: /src/haproxy/src/http_ana.c:1885,1
    - Dst: http_check_response_for_cacheability
      Src: /src/haproxy/src/http_ana.c:1891,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1896,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1911,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ana.c:1912,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ana.c:1917,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1917,1
    - Dst: s30tob64
      Src: /src/haproxy/src/http_ana.c:1922,1
    - Dst: s30tob64
      Src: /src/haproxy/src/http_ana.c:1931,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ana.c:1938,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ana.c:1942,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ana.c:1945,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ana.c:1948,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ana.c:1951,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1953,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ana.c:1953,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:1953,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:1953,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1957,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1972,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ana.c:1972,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:1972,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:1972,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ana.c:1989,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1990,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1990,1
    - Dst: send_log
      Src: /src/haproxy/src/http_ana.c:1991,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1993,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1993,1
    - Dst: http_eval_after_res_rules
      Src: /src/haproxy/src/http_ana.c:2003,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/http_ana.c:2009,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/http_ana.c:2017,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/http_ana.c:2020,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/http_ana.c:2030,1
    - Dst: log_orig
      Src: /src/haproxy/src/http_ana.c:2030,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:2035,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2043,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2045,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2047,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2049,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:2050,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2057,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2059,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2061,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2063,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2071,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2073,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2075,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2077,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:2078,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:2084,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2086,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:2087,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2089,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:2090,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:2090,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:2092,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:2096,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:2097,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:2097,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:2102,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2108,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:2113,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2114,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:2119,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2120,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 209
    argCount: 4
    argNames:
    - s
    - rep
    - an_bit
    - px
    argTypes:
    - struct stream*
    - struct channel*
    - int
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 1781
    functionDepth: 11
    functionLinenumber: 1781
    functionLinenumberEnd: 2124
    functionName: http_process_res_common
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - unlikely
    - stream_report_term_evt
    - channel_dont_close
    - struct stream*::do_log
    - chunk_appendf
    - lf_expr_isempty
    - stream_inc_http_fail_ctr
    - http_res_get_intercept_rule
    - http_reply_and_close
    - DBG_TRACE_DEVEL
    - objt_server
    - http_add_header
    - ist
    - ist2
    - DBG_TRACE_LEAVE
    - log_orig_proxy
    - chunk_printf
    - http_eval_after_res_rules
    - objt_applet
    - htxbuf
    - log_orig
    - s30tob64
    - send_log
    - http_set_term_flags
    - DBG_TRACE_ENTER
    - __objt_server
    - http_check_response_for_cacheability
    - http_manage_server_side_cookies
    - _HA_ATOMIC_INC
    - http_error_message
    - HAS_FILTERS
    - health_adjust
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int http_process_res_common(struct stream *s, struct channel *rep,
      int an_bit, struct proxy *px)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:2163,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:2165,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:2176,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:2194,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:2203,1
    - Dst: flt_http_payload
      Src: /src/haproxy/src/http_ana.c:2204,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:2207,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:2210,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:2210,1
    - Dst: channel_htx_forward_forever
      Src: /src/haproxy/src/http_ana.c:2212,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:2215,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:2239,1
    - Dst: flt_http_end
      Src: /src/haproxy/src/http_ana.c:2240,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:2259,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:2261,1
    - Dst: http_end_response
      Src: /src/haproxy/src/http_ana.c:2267,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:2269,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2272,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_ana.c:2289,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:2299,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:2300,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:2310,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2314,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2320,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2322,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2324,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2326,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:2327,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2334,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2336,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2338,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2340,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2347,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2349,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2351,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2353,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:2356,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2361,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:2362,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2364,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:2365,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:2365,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:2367,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:2368,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:2373,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:2374,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:2375,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2376,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 170
    argCount: 3
    argNames:
    - s
    - res
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2155
    functionDepth: 3
    functionLinenumber: 2155
    functionLinenumberEnd: 2379
    functionName: http_response_forward_body
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - stream_report_term_evt
    - channel_dont_close
    - co_data
    - stream_inc_http_fail_ctr
    - flt_http_end
    - http_reply_and_close
    - DBG_TRACE_DEVEL
    - objt_server
    - htx_is_empty
    - DBG_TRACE_LEAVE
    - channel_htx_forward_forever
    - c_adv
    - htxbuf
    - flt_http_payload
    - http_set_term_flags
    - DBG_TRACE_ENTER
    - __objt_server
    - _HA_ATOMIC_INC
    - HAS_RSP_DATA_FILTERS
    - health_adjust
    - channel_auto_close
    - http_end_response
    linkageType: ''
    returnType: int
    signature: int http_response_forward_body(struct stream *s, struct channel *res,
      int an_bit)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_ana.c:2397,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:2407,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2414,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:2416,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2416,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:2419,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:2420,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:2420,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:2421,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:2423,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2436,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2440,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:2445,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2450,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2451,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2452,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:2469,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:2470,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:2470,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:2471,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:2473,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2486,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2494,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:2500,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2506,1
    - Dst: memset
      Src: /src/haproxy/src/http_ana.c:2520,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2523,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:2528,1
    - Dst: memchr
      Src: /src/haproxy/src/http_ana.c:2545,1
    - Dst: b_tail
      Src: /src/haproxy/src/http_ana.c:2547,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:2549,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:2550,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:2550,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:2551,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ana.c:2552,1
    - Dst: istend
      Src: /src/haproxy/src/http_ana.c:2553,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2563,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2565,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2570,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2577,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2578,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2581,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2582,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2585,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2586,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2589,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2590,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2594,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2595,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_ana.c:2599,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:2601,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_ana.c:2603,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2603,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:2609,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2609,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2609,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:2610,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2610,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:2614,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2614,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2614,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:2619,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:2620,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2620,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2620,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:2623,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:2624,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2624,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_ana.c:2628,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_ana.c:2632,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:2636,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_ana.c:2638,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2648,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_ana.c:2652,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:2658,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:2658,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 202
    argCount: 3
    argNames:
    - rule
    - s
    - txn
    argTypes:
    - struct redirect_rule*
    - struct stream*
    - struct http_txn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2386
    functionDepth: 4
    functionLinenumber: 2386
    functionLinenumberEnd: 2661
    functionName: http_apply_redirect_rule
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - build_logline
    - alloc_trash_chunk
    - http_find_header
    - http_uri_parser_init
    - http_forward_proxy_resp
    - ist
    - ist2
    - b_tail
    - htx_add_header
    - chunk_memcat
    - http_parse_path
    - istptr
    - htx_sl_req_uri
    - htx_from_buf
    - htxbuf
    - istend
    - free_trash_chunk
    - http_get_stline
    - channel_htx_truncate
    - htx_add_stline
    - http_set_term_flags
    - htx_to_buf
    - memset
    - _HA_ATOMIC_INC
    - htx_add_endof
    - memchr
    - isttest
    linkageType: ''
    returnType: int
    signature: int http_apply_redirect_rule(struct redirect_rule *rule, struct stream
      *s, struct http_txn *txn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_ana.c:2675,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_ana.c:2677,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_ana.c:2680,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ana.c:2681,1
    - Dst: isalnum
      Src: /src/haproxy/src/http_ana.c:2684,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_ana.c:2693,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/http_ana.c:2700,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - s
    - htx
    - px
    argTypes:
    - struct stream*
    - struct htx*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2670
    functionDepth: 1
    functionLinenumber: 2670
    functionLinenumberEnd: 2709
    functionName: http_req_restrict_header_names
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - htx_get_next_blk
    - htx_get_first_blk
    - htx_get_blk_type
    - htx_remove_blk
    - istlen
    - htx_get_blk_name
    - isalnum
    linkageType: ''
    returnType: enum rule_result
    signature: enum rule_result http_req_restrict_header_names(struct stream *s, struct
      htx *htx, struct proxy *px)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:2722,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_ana.c:2723,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/http_ana.c:2725,1
    - Dst: exp_replace
      Src: /src/haproxy/src/http_ana.c:2728,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/http_ana.c:2731,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2731,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 6
    argNames:
    - s
    - htx
    - name
    - str
    - re
    - full
    argTypes:
    - struct stream*
    - struct htx*
    - struct ist
    - char*
    - struct my_regex*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2716
    functionDepth: 3
    functionLinenumber: 2716
    functionLinenumberEnd: 2735
    functionName: http_replace_hdrs
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - ist2
    - http_find_header
    - get_trash_chunk
    - exp_replace
    - http_replace_header_value
    - regex_exec_match2
    linkageType: ''
    returnType: int
    signature: "int http_replace_hdrs(struct stream* s, struct htx *htx, struct ist
      name,\n\t\t     const char *str, struct my_regex *re, int full)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:2754,1
    - Dst: http_replace_req_meth
      Src: /src/haproxy/src/http_ana.c:2758,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2758,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_ana.c:2763,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2763,1
    - Dst: http_replace_req_query
      Src: /src/haproxy/src/http_ana.c:2768,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2768,1
    - Dst: http_replace_req_uri
      Src: /src/haproxy/src/http_ana.c:2773,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2773,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_ana.c:2778,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2778,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 5
    argNames:
    - action
    - replace
    - len
    - px
    - s
    argTypes:
    - int
    - char*
    - int
    - struct proxy*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2786
      start: 2751
    functionDepth: 5
    functionLinenumber: 2751
    functionLinenumberEnd: 2786
    functionName: http_req_replace_stline
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 8
    functionsReached:
    - ist2
    - htxbuf
    - http_replace_req_uri
    - http_replace_req_meth
    - http_replace_req_query
    - http_replace_req_path
    linkageType: ''
    returnType: int
    signature: "int http_req_replace_stline(int action, const char *replace, int len,\n\t\t\t
      \   struct proxy *px, struct stream *s)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:2794,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/http_ana.c:2797,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/http_ana.c:2798,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:2802,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/http_ana.c:2803,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2804,1
    - Dst: http_replace_res_status
      Src: /src/haproxy/src/http_ana.c:2807,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - status
    - reason
    - s
    argTypes:
    - unsigned int
    - struct ist
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2792
    functionDepth: 3
    functionLinenumber: 2792
    functionLinenumberEnd: 2811
    functionName: http_res_set_status
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - ist
    - htxbuf
    - isttest
    - ist2
    - ultoa_o
    - chunk_reset
    - http_replace_res_status
    - http_get_reason
    linkageType: ''
    returnType: int
    signature: int http_res_set_status(unsigned int status, struct ist reason, struct
      stream *s)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: strm_sess
      Src: /src/haproxy/src/http_ana.c:2825,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/http_ana.c:2832,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:2857,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/http_ana.c:2867,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/http_ana.c:2872,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/http_ana.c:2878,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/http_ana.c:2887,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/http_ana.c:2888,1
    - Dst: send_log
      Src: /src/haproxy/src/http_ana.c:2898,1
    - Dst: http_apply_redirect_rule
      Src: /src/haproxy/src/http_ana.c:2967,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 150
    argCount: 4
    argNames:
    - px
    - def_rules
    - rules
    - s
    argTypes:
    - struct proxy*
    - struct list*
    - struct list*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2822
    functionDepth: 10
    functionLinenumber: 2822
    functionLinenumberEnd: 3000
    functionName: http_req_get_intercept_rule
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - acl_match_cond
    - list_for_each_entry
    - http_apply_redirect_rule
    - task_wakeup
    - strm_sess
    - proxy_abrt_close_def
    - mark_tainted
    - EXEC_CTX_WITH_RET
    - struct act_rule*::action_ptr
    - send_log
    linkageType: ''
    returnType: enum rule_result
    signature: "enum rule_result http_req_get_intercept_rule(struct proxy *px, struct
      list *def_rules,\n\t\t\t\t\t\t    struct list *rules, struct stream *s)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: strm_sess
      Src: /src/haproxy/src/http_ana.c:3014,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/http_ana.c:3023,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:3049,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/http_ana.c:3059,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/http_ana.c:3064,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/http_ana.c:3070,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/http_ana.c:3079,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/http_ana.c:3080,1
    - Dst: send_log
      Src: /src/haproxy/src/http_ana.c:3090,1
    - Dst: http_apply_redirect_rule
      Src: /src/haproxy/src/http_ana.c:3150,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 143
    argCount: 5
    argNames:
    - px
    - def_rules
    - rules
    - s
    - final
    argTypes:
    - struct proxy*
    - struct list*
    - struct list*
    - struct stream*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3182
      start: 3011
    functionDepth: 10
    functionLinenumber: 3011
    functionLinenumberEnd: 3182
    functionName: http_res_get_intercept_rule
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - acl_match_cond
    - list_for_each_entry
    - http_apply_redirect_rule
    - task_wakeup
    - strm_sess
    - proxy_abrt_close_def
    - mark_tainted
    - EXEC_CTX_WITH_RET
    - struct act_rule*::action_ptr
    - send_log
    linkageType: ''
    returnType: enum rule_result
    signature: "enum rule_result http_res_get_intercept_rule(struct proxy *px, struct
      list *def_rules,\n\t\t\t\t\t\t    struct list *rules, struct stream *s, uint8_t
      final)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vars_prune
      Src: /src/haproxy/src/http_ana.c:3201,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/http_ana.c:3202,1
    - Dst: http_res_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:3208,1
    - Dst: http_res_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:3212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3189
    functionDepth: 11
    functionLinenumber: 3189
    functionLinenumberEnd: 3218
    functionName: http_eval_after_res_rules
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - vars_prune
    - vars_init_head
    - http_res_get_intercept_rule
    linkageType: ''
    returnType: int
    signature: int http_eval_after_res_rules(struct stream *s)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:3236,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3238,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3238,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3301,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3311,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3323,1
    - Dst: http_find_cookie_value_end
      Src: /src/haproxy/src/http_ana.c:3327,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3331,1
    - Dst: http_del_hdr_value
      Src: /src/haproxy/src/http_ana.c:3353,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:3368,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:3373,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:3380,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:3399,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_ana.c:3402,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ana.c:3403,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_ana.c:3407,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:3422,1
    - Dst: memchr
      Src: /src/haproxy/src/http_ana.c:3456,1
    - Dst: b64tos30
      Src: /src/haproxy/src/http_ana.c:3466,1
    - Dst: memchr
      Src: /src/haproxy/src/http_ana.c:3471,1
    - Dst: b64tos30
      Src: /src/haproxy/src/http_ana.c:3473,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:3521,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/http_ana.c:3529,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:3562,1
    - Dst: http_del_hdr_value
      Src: /src/haproxy/src/http_ana.c:3583,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/http_ana.c:3612,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_ana.c:3614,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 170
    argCount: 2
    argNames:
    - s
    - req
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3617
      start: 3226
    functionDepth: 2
    functionLinenumber: 3226
    functionLinenumberEnd: 3617
    functionName: http_manage_client_side_cookies
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - unlikely
    - htx_change_blk_value_len
    - ist
    - htxbuf
    - memmove
    - memcmp
    - pool_alloc
    - memcpy
    - http_find_header
    - http_remove_header
    - stream_set_srv_target
    - b64tos30
    - ha_alert
    - HTTP_IS_SPHT
    - http_find_cookie_value_end
    - memchr
    - http_del_hdr_value
    linkageType: ''
    returnType: void
    signature: void http_manage_client_side_cookies(struct stream *s, struct channel
      *req)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:3634,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3637,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3637,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3701,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3712,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3725,1
    - Dst: http_find_cookie_value_end
      Src: /src/haproxy/src/http_ana.c:3729,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3733,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:3759,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:3764,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:3771,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/http_ana.c:3781,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:3793,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_ana.c:3795,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ana.c:3796,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_ana.c:3801,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:3806,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:3810,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_ana.c:3830,1
    - Dst: http_del_hdr_value
      Src: /src/haproxy/src/http_ana.c:3836,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:3850,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/http_ana.c:3852,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:3852,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:3868,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/http_ana.c:3870,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:3870,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 115
    argCount: 2
    argNames:
    - s
    - res
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3624
    functionDepth: 3
    functionLinenumber: 3624
    functionLinenumberEnd: 3889
    functionName: http_manage_server_side_cookies
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - unlikely
    - htx_change_blk_value_len
    - ist
    - htxbuf
    - memmove
    - memcmp
    - pool_alloc
    - memcpy
    - ist2
    - http_find_header
    - http_remove_header
    - ha_alert
    - HTTP_IS_SPHT
    - http_find_cookie_value_end
    - objt_server
    - http_replace_header_value
    - http_del_hdr_value
    linkageType: ''
    returnType: void
    signature: void http_manage_server_side_cookies(struct stream *s, struct channel
      *res)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:3906,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3910,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3910,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3911,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3911,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3919,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3919,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3928,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3928,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3932,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3932,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3933,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3933,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3934,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3934,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3935,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3935,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3939,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3939,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - s
    - req
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3955
      start: 3896
    functionDepth: 1
    functionLinenumber: 3896
    functionLinenumberEnd: 3955
    functionName: http_check_request_for_cacheability
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - isteqi
    - htxbuf
    - ist
    - istmatchi
    - http_find_header
    linkageType: ''
    returnType: void
    signature: void http_check_request_for_cacheability(struct stream *s, struct channel
      *req)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:3975,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3977,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3977,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3978,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3978,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3987,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3987,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3988,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3988,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3994,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3994,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:4000,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4000,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:4005,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4005,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:4005,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4005,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:4006,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4006,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:4006,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4006,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:4007,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4007,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:4007,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4007,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:4008,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4008,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:4012,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4012,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:4017,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4017,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:4033,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4033,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:4041,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4041,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:4043,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4043,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 58
    argCount: 2
    argNames:
    - s
    - res
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 3960
    functionDepth: 1
    functionLinenumber: 3960
    functionLinenumberEnd: 4052
    functionName: http_check_response_for_cacheability
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - isteqi
    - htxbuf
    - ist
    - istmatchi
    - http_find_header
    linkageType: ''
    returnType: void
    signature: void http_check_response_for_cacheability(struct stream *s, struct
      channel *res)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4076,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:4077,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:4078,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:4080,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:4081,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4088,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - s
    - txn
    - px
    argTypes:
    - struct stream*
    - struct http_txn*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4092
      start: 4063
    functionDepth: 4
    functionLinenumber: 4063
    functionLinenumberEnd: 4092
    functionName: http_stats_check_uri
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - memcmp
    - htxbuf
    - http_get_stline
    - http_uri_parser_init
    - http_parse_path
    - htx_sl_req_uri
    linkageType: ''
    returnType: int
    signature: int http_stats_check_uri(struct stream *s, struct http_txn *txn, struct
      proxy *px)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/http_ana.c:4110,1
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/http_ana.c:4111,1
    - Dst: watcher_init
      Src: /src/haproxy/src/http_ana.c:4124,1
    - Dst: watcher_init
      Src: /src/haproxy/src/http_ana.c:4125,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4127,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:4128,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_ana.c:4129,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_ana.c:4130,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_ana.c:4130,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4133,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4140,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4148,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4156,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4163,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4171,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4179,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4187,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_ana.c:4192,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4204,1
    - Dst: strlen
      Src: /src/haproxy/src/http_ana.c:4204,1
    - Dst: strlen
      Src: /src/haproxy/src/http_ana.c:4210,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_ana.c:4212,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_ana.c:4225,1
    - Dst: invalid_char
      Src: /src/haproxy/src/http_ana.c:4227,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:4238,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/http_ana.c:4239,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 126
    argCount: 3
    argNames:
    - s
    - req
    - px
    argTypes:
    - struct stream*
    - struct channel*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4271
      start: 4102
    functionDepth: 2
    functionLinenumber: 4102
    functionLinenumberEnd: 4271
    functionName: http_handle_stats
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - memcmp
    - htxbuf
    - invalid_char
    - watcher_init
    - HTX_SL_REQ_ULEN
    - memcpy
    - list_for_each_entry
    - http_get_stline
    - acl_match_cond
    - HTX_SL_REQ_UPTR
    - applet_reserve_svcctx
    - strncmp
    - __sc_appctx
    - strlen
    linkageType: ''
    returnType: int
    signature: int http_handle_stats(struct stream *s, struct channel *req, struct
      proxy *px)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4297,1
    - Dst: http_handle_expect_hdr
      Src: /src/haproxy/src/http_ana.c:4313,1
    - Dst: htx_get_tail_type
      Src: /src/haproxy/src/http_ana.c:4322,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_ana.c:4329,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/http_ana.c:4329,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_ana.c:4330,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_ana.c:4332,1
    - Dst: channel_htx_full
      Src: /src/haproxy/src/http_ana.c:4338,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/http_ana.c:4338,1
    - Dst: chn_prod
      Src: /src/haproxy/src/http_ana.c:4338,1
    - Dst: b_is_large
      Src: /src/haproxy/src/http_ana.c:4341,1
    - Dst: htx_move_to_large_buffer
      Src: /src/haproxy/src/http_ana.c:4341,1
    - Dst: b_free
      Src: /src/haproxy/src/http_ana.c:4343,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/http_ana.c:4344,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4346,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/http_ana.c:4349,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/http_ana.c:4358,1
    - Dst: chn_prod
      Src: /src/haproxy/src/http_ana.c:4360,1
    - Dst: tick_isset
      Src: /src/haproxy/src/http_ana.c:4361,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/http_ana.c:4362,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/http_ana.c:4371,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:4375,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:4376,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:4376,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:4385,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:4387,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:4394,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 91
    argCount: 5
    argNames:
    - s
    - chn
    - time
    - bytes
    - large_buffer
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4396
      start: 4288
    functionDepth: 1
    functionLinenumber: 4288
    functionLinenumberEnd: 4396
    functionName: http_wait_for_msg_body
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - htx_get_blksz
    - http_handle_expect_hdr
    - stream_inc_http_fail_ctr
    - http_reply_and_close
    - offer_buffers
    - proxy_abrt_close_def
    - htx_get_blk_type
    - tick_is_expired
    - htx_move_to_large_buffer
    - htx_get_next_blk
    - htxbuf
    - htx_get_tail_type
    - b_free
    - tick_add_ifset
    - channel_htx_full
    - http_set_term_flags
    - http_error_message
    - _HA_ATOMIC_INC
    - htx_defrag
    - htx_get_first_blk
    - sc_waiting_room
    - chn_prod
    - tick_isset
    - b_is_large
    linkageType: ''
    returnType: enum rule_result
    signature: "enum rule_result http_wait_for_msg_body(struct stream *s, struct channel
      *chn,\n\t\t\t\t\tunsigned int time, unsigned int bytes, unsigned int large_buffer)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/http_ana.c:4412,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:4416,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:4418,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4423,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:4424,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:4425,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:4425,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:4426,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:4427,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:4430,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:4432,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_ana.c:4437,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_ana.c:4439,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4440,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4440,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4440,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4446,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4446,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4446,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4447,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4447,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4447,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4448,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4448,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_ana.c:4451,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_ana.c:4455,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_ana.c:4462,1
    - Dst: sc_abort
      Src: /src/haproxy/src/http_ana.c:4466,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/http_ana.c:4467,1
    - Dst: srv_inc_sess_ctr
      Src: /src/haproxy/src/http_ana.c:4473,1
    - Dst: srv_set_sess_last
      Src: /src/haproxy/src/http_ana.c:4474,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:4480,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 2
    argNames:
    - s
    - sc
    argTypes:
    - struct stream*
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4481
      start: 4398
    functionDepth: 4
    functionLinenumber: 4398
    functionLinenumberEnd: 4481
    functionName: http_perform_server_redirect
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - sc_shutdown
    - http_uri_parser_init
    - http_forward_proxy_resp
    - ist2
    - ist
    - srv_set_sess_last
    - htx_add_header
    - chunk_memcat
    - http_parse_path
    - sc_abort
    - htx_sl_req_uri
    - htx_from_buf
    - htxbuf
    - http_get_stline
    - htx_add_stline
    - chunk_reset
    - channel_htx_truncate
    - __objt_server
    - htx_to_buf
    - srv_inc_sess_ctr
    - htx_add_endof
    - isttest
    linkageType: ''
    returnType: void
    signature: void http_perform_server_redirect(struct stream *s, struct stconn *sc)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:4491,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:4493,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:4494,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/http_ana.c:4507,1
    - Dst: channel_dont_read
      Src: /src/haproxy/src/http_ana.c:4508,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:4528,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4541,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/http_ana.c:4561,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/http_ana.c:4562,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:4573,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:4577,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/http_ana.c:4587,1
    - Dst: channel_dont_read
      Src: /src/haproxy/src/http_ana.c:4588,1
    - Dst: HAS_REQ_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:4604,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:4607,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4607,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:4607,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:4609,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4610,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:4611,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 73
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4612
      start: 4486
    functionDepth: 1
    functionLinenumber: 4486
    functionLinenumberEnd: 4612
    functionName: http_end_request
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - unlikely
    - htxbuf
    - DBG_TRACE_LEAVE
    - channel_dont_read
    - co_data
    - proxy_abrt_close_def
    - sc_schedule_abort
    - HAS_REQ_DATA_FILTERS
    - DBG_TRACE_DEVEL
    - channel_auto_close
    - c_adv
    - channel_auto_read
    - sc_schedule_shutdown
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void http_end_request(struct stream *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:4623,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:4625,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:4626,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:4644,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4654,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/http_ana.c:4664,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/http_ana.c:4665,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:4676,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:4680,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:4687,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4687,1
    - Dst: channel_abort
      Src: /src/haproxy/src/http_ana.c:4688,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:4704,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:4707,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4707,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:4707,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:4709,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4710,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:4711,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4712
      start: 4618
    functionDepth: 1
    functionLinenumber: 4618
    functionLinenumberEnd: 4712
    functionName: http_end_response
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - unlikely
    - htxbuf
    - DBG_TRACE_LEAVE
    - co_data
    - sc_schedule_abort
    - HAS_RSP_DATA_FILTERS
    - channel_abort
    - channel_htx_truncate
    - DBG_TRACE_DEVEL
    - channel_auto_close
    - c_adv
    - channel_auto_read
    - sc_schedule_shutdown
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void http_end_response(struct stream *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4725,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_ana.c:4732,1
    - Dst: http_eval_after_res_rules
      Src: /src/haproxy/src/http_ana.c:4732,1
    - Dst: htx_skip_msg_payload
      Src: /src/haproxy/src/http_ana.c:4736,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4741,1
    - Dst: channel_abort
      Src: /src/haproxy/src/http_ana.c:4742,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/src/http_ana.c:4743,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4743,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4745,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:4746,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/http_ana.c:4747,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4749,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:4758,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:4759,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - s
    - final
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4763
      start: 4721
    functionDepth: 12
    functionLinenumber: 4721
    functionLinenumberEnd: 4763
    functionName: http_forward_proxy_resp
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 3
    functionsReached:
    - channel_htx_erase
    - htxbuf
    - htx_skip_msg_payload
    - http_eval_after_res_rules
    - co_data
    - sc_schedule_abort
    - channel_abort
    - channel_auto_close
    - c_adv
    - htx_is_empty
    - channel_auto_read
    linkageType: ''
    returnType: int
    signature: int http_forward_proxy_resp(struct stream *s, int final)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:4773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - s
    - sc
    - err
    - finst
    - msg
    argTypes:
    - struct stream*
    - struct stconn*
    - int
    - int
    - struct http_reply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4774
      start: 4765
    functionDepth: 1
    functionLinenumber: 4765
    functionLinenumberEnd: 4774
    functionName: http_server_error
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - http_reply_and_close
    linkageType: ''
    returnType: void
    signature: "void http_server_error(struct stream *s, struct stconn *sc, int err,\n\t\t
      \      int finst, struct http_reply *msg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:4779,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4779,1
    - Dst: http_reply_message
      Src: /src/haproxy/src/http_ana.c:4783,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:4795,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:4796,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4807,1
    - Dst: channel_abort
      Src: /src/haproxy/src/http_ana.c:4808,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/src/http_ana.c:4809,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4809,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4810,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:4811,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/http_ana.c:4812,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - s
    - status
    - msg
    argTypes:
    - struct stream*
    - short
    - struct http_reply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4813
      start: 4776
    functionDepth: 1
    functionLinenumber: 4776
    functionLinenumberEnd: 4813
    functionName: http_reply_and_close
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 14
    functionsReached:
    - channel_htx_erase
    - http_error_message
    - htxbuf
    - http_reply_message
    - sc_schedule_abort
    - channel_abort
    - channel_htx_truncate
    - http_reply_and_close
    - channel_auto_close
    - channel_auto_read
    linkageType: ''
    returnType: void
    signature: void http_reply_and_close(struct stream *s, short status, struct http_reply
      *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_get_status_idx
      Src: /src/haproxy/src/http_ana.c:4817,1
    - Dst: strm_fe
      Src: /src/haproxy/src/http_ana.c:4823,1
    - Dst: strm_fe
      Src: /src/haproxy/src/http_ana.c:4824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4827
      start: 4815
    functionDepth: 1
    functionLinenumber: 4815
    functionLinenumberEnd: 4827
    functionName: http_error_message
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 11
    functionsReached:
    - http_get_status_idx
    - strm_fe
    linkageType: ''
    returnType: struct http_reply
    signature: struct http_reply *http_error_message(struct stream *s)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:4859,1
    - Dst: b_is_null
      Src: /src/haproxy/src/http_ana.c:4869,1
    - Dst: htx_copy_msg
      Src: /src/haproxy/src/http_ana.c:4870,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_ana.c:4882,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:4885,1
    - Dst: ultoa
      Src: /src/haproxy/src/http_ana.c:4889,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/http_ana.c:4890,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4892,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_ana.c:4894,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4894,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4894,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4894,1
    - Dst: ultoa
      Src: /src/haproxy/src/http_ana.c:4899,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4899,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/http_ana.c:4902,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_ana.c:4904,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:4909,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/http_ana.c:4910,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:4911,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4912,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4912,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:4912,1
    - Dst: b_head
      Src: /src/haproxy/src/http_ana.c:4912,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4912,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_ana.c:4913,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/http_ana.c:4916,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_ana.c:4918,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4921,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4921,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4921,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4922,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4922,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4922,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4922,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_ana.c:4923,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4924,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/http_ana.c:4924,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:4924,1
    - Dst: b_head
      Src: /src/haproxy/src/http_ana.c:4924,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4924,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_ana.c:4932,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 79
    argCount: 3
    argNames:
    - s
    - htx
    - reply
    argTypes:
    - struct stream*
    - struct htx*
    - struct http_reply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4942
      start: 4834
    functionDepth: 2
    functionLinenumber: 4834
    functionLinenumberEnd: 4942
    functionName: http_reply_to_htx
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - build_logline
    - alloc_trash_chunk
    - htx_add_data_atonce
    - ist
    - ist2
    - b_is_null
    - htx_add_header
    - b_head
    - free_trash_chunk
    - b_data
    - htx_add_stline
    - chunk_reset
    - http_get_reason
    - http_error_message
    - list_for_each_entry
    - LIST_ISEMPTY
    - htx_add_endof
    - htx_copy_msg
    - ultoa
    linkageType: ''
    returnType: int
    signature: int http_reply_to_htx(struct stream *s, struct htx *htx, struct http_reply
      *reply)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_ana.c:4954,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:4958,1
    - Dst: http_reply_to_htx
      Src: /src/haproxy/src/http_ana.c:4960,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_ana.c:4963,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_ana.c:4964,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:4969,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - s
    - reply
    argTypes:
    - struct stream*
    - struct http_reply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4973
      start: 4951
    functionDepth: 13
    functionLinenumber: 4951
    functionLinenumberEnd: 4973
    functionName: http_reply_message
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - htx_to_buf
    - http_reply_to_htx
    - channel_htx_truncate
    - http_forward_proxy_resp
    - htx_from_buf
    linkageType: ''
    returnType: int
    signature: int http_reply_message(struct stream *s, struct http_reply *reply)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:4993,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:4997,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:5001,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:5002,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:5006,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:5007,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:5011,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:5013,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:5017,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:5019,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:5023,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:5025,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:5029,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:5030,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - s
    - sc
    argTypes:
    - struct stream*
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5032
      start: 4986
    functionDepth: 2
    functionLinenumber: 4986
    functionLinenumberEnd: 5032
    functionName: http_return_srv_error
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - http_server_error
    - http_error_message
    linkageType: ''
    returnType: void
    signature: void http_return_srv_error(struct stream *s, struct stconn *sc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:5051,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:5052,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:5052,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:5052,1
    - Dst: http_reply_100_continue
      Src: /src/haproxy/src/http_ana.c:5053,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_ana.c:5055,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - s
    - htx
    - msg
    argTypes:
    - struct stream*
    - struct htx*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5060
      start: 5038
    functionDepth: 2
    functionLinenumber: 5038
    functionLinenumberEnd: 5060
    functionName: http_handle_expect_hdr
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - unlikely
    - isteqi
    - ist2
    - http_find_header
    - http_remove_header
    - http_reply_100_continue
    linkageType: ''
    returnType: int
    signature: int http_handle_expect_hdr(struct stream *s, struct htx *htx, struct
      http_msg *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_ana.c:5068,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_ana.c:5073,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:5074,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:5074,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:5074,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_ana.c:5079,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_ana.c:5082,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:5089,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5091
      start: 5065
    functionDepth: 13
    functionLinenumber: 5065
    functionLinenumberEnd: 5091
    functionName: http_reply_100_continue
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - ist
    - htx_add_stline
    - channel_htx_truncate
    - htx_add_endof
    - http_forward_proxy_resp
    - htx_from_buf
    linkageType: ''
    returnType: int
    signature: int http_reply_100_continue(struct stream *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_ana.c:5103,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_ana.c:5103,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_ana.c:5104,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_ana.c:5105,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_ana.c:5113,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http_ana.c:5117,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_ana.c:5120,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ana.c:5123,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_ana.c:5127,1
    - Dst: isttrim
      Src: /src/haproxy/src/http_ana.c:5128,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_ana.c:5130,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - htx
    - cap
    - cap_hdr
    argTypes:
    - struct htx*
    - char**
    - struct cap_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5135
      start: 5098
    functionDepth: 1
    functionLinenumber: 5098
    functionLinenumberEnd: 5135
    functionName: http_capture_headers
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - pool_alloc
    - isttrim
    - memcpy
    - htx_get_blk
    - htx_get_blk_value
    - htx_get_first
    - htx_get_blk_type
    - ha_alert
    - strncasecmp
    - htx_get_blk_name
    - htx_get_next
    linkageType: ''
    returnType: void
    signature: void http_capture_headers(struct htx *htx, char **cap, struct cap_hdr
      *cap_hdr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:5164,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:5169,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:5180,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:5184,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - start
    - end
    - from
    - next
    argTypes:
    - char*
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5186
      start: 5154
    functionDepth: 1
    functionLinenumber: 5154
    functionLinenumberEnd: 5186
    functionName: http_del_hdr_value
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - memmove
    - HTTP_IS_SPHT
    linkageType: ''
    returnType: int
    signature: int http_del_hdr_value(char *start, char *end, char **from, char *next)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:5194,1
    - Dst: istcat
      Src: /src/haproxy/src/http_ana.c:5196,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/http_ana.c:5196,1
    - Dst: istcat
      Src: /src/haproxy/src/http_ana.c:5202,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:5202,1
    - Dst: istcat
      Src: /src/haproxy/src/http_ana.c:5208,1
    - Dst: htx_sl_req_vsn
      Src: /src/haproxy/src/http_ana.c:5208,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - sl
    - str
    - len
    argTypes:
    - struct htx_sl*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5211
      start: 5192
    functionDepth: 1
    functionLinenumber: 5192
    functionLinenumberEnd: 5211
    functionName: http_fmt_req_line
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - ist2
    - istcat
    - htx_sl_req_vsn
    - htx_sl_req_meth
    - htx_sl_req_uri
    linkageType: ''
    returnType: size_t
    signature: size_t http_fmt_req_line(const struct htx_sl *sl, char *str, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strm_sess
      Src: /src/haproxy/src/http_ana.c:5218,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ana.c:5221,1
    - Dst: objt_conn
      Src: /src/haproxy/src/http_ana.c:5223,1
    - Dst: __objt_conn
      Src: /src/haproxy/src/http_ana.c:5223,1
    - Dst: sc_conn
      Src: /src/haproxy/src/http_ana.c:5224,1
    - Dst: __sc_conn
      Src: /src/haproxy/src/http_ana.c:5224,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/http_ana.c:5226,1
    - Dst: UBOUND
      Src: /src/haproxy/src/http_ana.c:5227,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:5228,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/http_ana.c:5228,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/http_ana.c:5231,1
    - Dst: UBOUND
      Src: /src/haproxy/src/http_ana.c:5232,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:5233,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/http_ana.c:5233,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/http_ana.c:5236,1
    - Dst: UBOUND
      Src: /src/haproxy/src/http_ana.c:5237,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:5238,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/http_ana.c:5238,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/http_ana.c:5241,1
    - Dst: write
      Src: /src/haproxy/src/http_ana.c:5241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - dir
    - s
    - sl
    argTypes:
    - char*
    - struct stream*
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5242
      start: 5216
    functionDepth: 1
    functionLinenumber: 5216
    functionLinenumberEnd: 5242
    functionName: http_debug_stline
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - DISGUISE
    - sc_conn
    - __objt_conn
    - HTX_SL_P2_PTR
    - chunk_printf
    - HTX_SL_P1_LEN
    - strm_sess
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - write
    - objt_conn
    - __sc_conn
    - chunk_memcat
    - HTX_SL_P2_LEN
    - HTX_SL_P3_LEN
    - UBOUND
    linkageType: ''
    returnType: void
    signature: void http_debug_stline(const char *dir, struct stream *s, const struct
      htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strm_sess
      Src: /src/haproxy/src/http_ana.c:5249,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ana.c:5252,1
    - Dst: objt_conn
      Src: /src/haproxy/src/http_ana.c:5254,1
    - Dst: __objt_conn
      Src: /src/haproxy/src/http_ana.c:5254,1
    - Dst: sc_conn
      Src: /src/haproxy/src/http_ana.c:5255,1
    - Dst: __sc_conn
      Src: /src/haproxy/src/http_ana.c:5255,1
    - Dst: UBOUND
      Src: /src/haproxy/src/http_ana.c:5258,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:5259,1
    - Dst: UBOUND
      Src: /src/haproxy/src/http_ana.c:5264,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:5265,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/http_ana.c:5268,1
    - Dst: write
      Src: /src/haproxy/src/http_ana.c:5268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - dir
    - s
    - n
    - v
    argTypes:
    - char*
    - struct stream*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5269
      start: 5247
    functionDepth: 1
    functionLinenumber: 5247
    functionLinenumberEnd: 5269
    functionName: http_debug_hdr
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - DISGUISE
    - sc_conn
    - __objt_conn
    - chunk_printf
    - strm_sess
    - write
    - objt_conn
    - __sc_conn
    - chunk_memcat
    - UBOUND
    linkageType: ''
    returnType: void
    signature: void http_debug_hdr(const char *dir, struct stream *s, const struct
      ist n, const struct ist v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - txn
    argTypes:
    - struct http_txn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5275
      start: 5271
    functionDepth: 0
    functionLinenumber: 5271
    functionLinenumberEnd: 5275
    functionName: http_txn_reset_req
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_txn_reset_req(struct http_txn *txn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - txn
    argTypes:
    - struct http_txn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5281
      start: 5277
    functionDepth: 0
    functionLinenumber: 5277
    functionLinenumberEnd: 5281
    functionName: http_txn_reset_res
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_txn_reset_res(struct http_txn *txn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_ana.c:5296,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/http_ana.c:5302,1
    - Dst: write_u32
      Src: /src/haproxy/src/http_ana.c:5307,1
    - Dst: http_txn_reset_req
      Src: /src/haproxy/src/http_ana.c:5316,1
    - Dst: http_txn_reset_res
      Src: /src/haproxy/src/http_ana.c:5317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5332
      start: 5288
    functionDepth: 1
    functionLinenumber: 5288
    functionLinenumberEnd: 5332
    functionName: http_create_txn
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - http_txn_reset_req
    - http_txn_reset_res
    - sc_ep_test
    - pool_alloc
    - write_u32
    linkageType: ''
    returnType: struct http_txn
    signature: struct http_txn *http_create_txn(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/http_ana.c:5340,1
    - Dst: pool_free
      Src: /src/haproxy/src/http_ana.c:5341,1
    - Dst: pool_free
      Src: /src/haproxy/src/http_ana.c:5342,1
    - Dst: pool_free
      Src: /src/haproxy/src/http_ana.c:5343,1
    - Dst: vars_prune
      Src: /src/haproxy/src/http_ana.c:5350,1
    - Dst: vars_prune
      Src: /src/haproxy/src/http_ana.c:5351,1
    - Dst: b_free
      Src: /src/haproxy/src/http_ana.c:5353,1
    - Dst: pool_free
      Src: /src/haproxy/src/http_ana.c:5355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5358
      start: 5335
    functionDepth: 1
    functionLinenumber: 5335
    functionLinenumberEnd: 5358
    functionName: http_destroy_txn
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - vars_prune
    - b_free
    - pool_free
    linkageType: ''
    returnType: void
    signature: void http_destroy_txn(struct stream *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sc_state_in
      Src: /src/haproxy/src/http_ana.c:5379,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:5380,1
    - Dst: objt_applet
      Src: /src/haproxy/src/http_ana.c:5380,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5405
      start: 5361
    functionDepth: 1
    functionLinenumber: 5361
    functionLinenumberEnd: 5405
    functionName: http_set_term_flags
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 12
    functionsReached:
    - unlikely
    - objt_applet
    - sc_state_in
    linkageType: ''
    returnType: void
    signature: void http_set_term_flags(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hdrs
    argTypes:
    - struct http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: h1_eval_htx_hdrs_size
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t h1_eval_htx_hdrs_size(const struct http_hdr *hdrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h1_eval_htx_hdrs_size
      Src: /src/haproxy/src/h1_htx.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - p1
    - p2
    - p3
    - hdrs
    argTypes:
    - struct ist
    - struct ist
    - struct ist
    - struct http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: h1_eval_htx_size
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - h1_eval_htx_hdrs_size
    linkageType: ''
    returnType: size_t
    signature: "size_t h1_eval_htx_size(const struct ist p1, const struct ist p2,
      const struct ist p3,\n\t\t\t       const struct http_hdr *hdrs)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: istnmatch
      Src: /src/haproxy/src/h1_htx.c:61,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:61,1
    - Dst: isdigit
      Src: /src/haproxy/src/h1_htx.c:62,1
    - Dst: isdigit
      Src: /src/haproxy/src/h1_htx.c:64,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:79,1
    - Dst: istnmatch
      Src: /src/haproxy/src/h1_htx.c:84,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:84,1
    - Dst: isdigit
      Src: /src/haproxy/src/h1_htx.c:85,1
    - Dst: isdigit
      Src: /src/haproxy/src/h1_htx.c:87,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 23
    argCount: 2
    argNames:
    - h1m
    - sl
    argTypes:
    - struct h1m*
    - union h1_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 98
    functionName: h1_process_req_vsn
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - ist
    - isdigit
    - istnmatch
    linkageType: ''
    returnType: int
    signature: int h1_process_req_vsn(struct h1m *h1m, union h1_sl *sl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: istnmatch
      Src: /src/haproxy/src/h1_htx.c:113,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:113,1
    - Dst: isdigit
      Src: /src/haproxy/src/h1_htx.c:114,1
    - Dst: isdigit
      Src: /src/haproxy/src/h1_htx.c:116,1
    - Dst: istnmatch
      Src: /src/haproxy/src/h1_htx.c:121,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:121,1
    - Dst: isdigit
      Src: /src/haproxy/src/h1_htx.c:122,1
    - Dst: isdigit
      Src: /src/haproxy/src/h1_htx.c:124,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 15
    argCount: 2
    argNames:
    - h1m
    - sl
    argTypes:
    - struct h1m*
    - union h1_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 136
    functionName: h1_process_res_vsn
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - ist
    - isdigit
    - istnmatch
    linkageType: ''
    returnType: int
    signature: int h1_process_res_vsn(struct h1m *h1m, union h1_sl *sl)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - h1m
    argTypes:
    - struct h1m*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 168
    functionName: h1m_htx_sl_flags
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int h1m_htx_sl_flags(struct h1m *h1m)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: h1_eval_htx_size
      Src: /src/haproxy/src/h1_htx.c:190,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h1_htx.c:191,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1_htx.c:223,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:223,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1_htx.c:234,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:234,1
    - Dst: http_remove_header_value
      Src: /src/haproxy/src/h1_htx.c:235,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:235,1
    - Dst: istlen
      Src: /src/haproxy/src/h1_htx.c:236,1
    - Dst: h1m_htx_sl_flags
      Src: /src/haproxy/src/h1_htx.c:243,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h1_htx.c:245,1
    - Dst: htx_add_all_headers
      Src: /src/haproxy/src/h1_htx.c:246,1
    - Dst: http_scheme_based_normalize
      Src: /src/haproxy/src/h1_htx.c:261,1
    - Dst: h1m_init_req
      Src: /src/haproxy/src/h1_htx.c:267,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 5
    argNames:
    - h1m
    - h1sl
    - htx
    - hdrs
    - max
    argTypes:
    - struct h1m*
    - union h1_sl*
    - struct htx*
    - struct http_hdr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 175
    functionDepth: 5
    functionLinenumber: 175
    functionLinenumberEnd: 275
    functionName: h1_postparse_req_hdrs
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - h1_eval_htx_size
    - htx_add_all_headers
    - isteqi
    - ist
    - h1m_init_req
    - h1m_htx_sl_flags
    - http_remove_header_value
    - http_scheme_based_normalize
    - htx_add_stline
    - istlen
    - htx_is_empty
    linkageType: ''
    returnType: int
    signature: "int h1_postparse_req_hdrs(struct h1m *h1m, union h1_sl *h1sl, struct
      htx *htx,\n\t\t\t\t struct http_hdr *hdrs, size_t max)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:303,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:303,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1_htx.c:305,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:305,1
    - Dst: http_parse_status_val
      Src: /src/haproxy/src/h1_htx.c:306,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1_htx.c:308,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:308,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:310,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:311,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:316,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:317,1
    - Dst: h1_eval_htx_size
      Src: /src/haproxy/src/h1_htx.c:325,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h1_htx.c:326,1
    - Dst: http_del_hdr
      Src: /src/haproxy/src/h1_htx.c:336,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:336,1
    - Dst: http_del_hdr
      Src: /src/haproxy/src/h1_htx.c:338,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:338,1
    - Dst: http_del_hdr
      Src: /src/haproxy/src/h1_htx.c:351,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:351,1
    - Dst: http_del_hdr
      Src: /src/haproxy/src/h1_htx.c:353,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:353,1
    - Dst: h1m_htx_sl_flags
      Src: /src/haproxy/src/h1_htx.c:379,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h1_htx.c:380,1
    - Dst: htx_add_all_headers
      Src: /src/haproxy/src/h1_htx.c:381,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/h1_htx.c:388,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 88
    argCount: 5
    argNames:
    - h1m
    - h1sl
    - htx
    - hdrs
    - max
    argTypes:
    - struct h1m*
    - union h1_sl*
    - struct htx*
    - struct http_hdr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 396
    functionName: h1_postparse_res_hdrs
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - h1_eval_htx_size
    - htx_add_all_headers
    - isteqi
    - ist
    - h1m_htx_sl_flags
    - http_del_hdr
    - htx_add_stline
    - h1m_init_res
    - http_parse_status_val
    - htx_is_empty
    linkageType: ''
    returnType: int
    signature: "int h1_postparse_res_hdrs(struct h1m *h1m, union h1_sl *h1sl, struct
      htx *htx,\n\t\t\t\t struct http_hdr *hdrs, size_t max)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:413,1
    - Dst: b_head
      Src: /src/haproxy/src/h1_htx.c:417,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:417,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h1_htx.c:417,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/h1_htx.c:418,1
    - Dst: h1_headers_to_hdr_list
      Src: /src/haproxy/src/h1_htx.c:424,1
    - Dst: b_peek
      Src: /src/haproxy/src/h1_htx.c:424,1
    - Dst: b_tail
      Src: /src/haproxy/src/h1_htx.c:424,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/h1_htx.c:433,1
    - Dst: h1_process_req_vsn
      Src: /src/haproxy/src/h1_htx.c:447,1
    - Dst: b_head
      Src: /src/haproxy/src/h1_htx.c:448,1
    - Dst: h1_postparse_req_hdrs
      Src: /src/haproxy/src/h1_htx.c:452,1
    - Dst: h1_process_res_vsn
      Src: /src/haproxy/src/h1_htx.c:457,1
    - Dst: b_head
      Src: /src/haproxy/src/h1_htx.c:458,1
    - Dst: h1_postparse_res_hdrs
      Src: /src/haproxy/src/h1_htx.c:462,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 6
    argNames:
    - h1m
    - h1sl
    - dsthtx
    - srcbuf
    - ofs
    - max
    argTypes:
    - struct h1m*
    - union h1_sl*
    - struct htx*
    - struct buffer*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 407
    functionDepth: 6
    functionLinenumber: 407
    functionLinenumberEnd: 476
    functionName: h1_parse_msg_hdrs
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 3
    functionsReached:
    - b_peek
    - b_head
    - b_slow_realign_ofs
    - h1_process_res_vsn
    - h1_headers_to_hdr_list
    - b_tail
    - h1_postparse_req_hdrs
    - b_data
    - h1_postparse_res_hdrs
    - buf_room_for_htx_data
    - b_wrap
    - h1_process_req_vsn
    linkageType: ''
    returnType: int
    signature: "int h1_parse_msg_hdrs(struct h1m *h1m, union h1_sl *h1sl, struct htx
      *dsthtx,\n\t\t      struct buffer *srcbuf, size_t ofs, size_t max)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:504,1
    - Dst: b_size
      Src: /src/haproxy/src/h1_htx.c:504,1
    - Dst: b_size
      Src: /src/haproxy/src/h1_htx.c:504,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h1_htx.c:505,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:505,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/h1_htx.c:506,1
    - Dst: htx_reset
      Src: /src/haproxy/src/h1_htx.c:515,1
    - Dst: b_set_data
      Src: /src/haproxy/src/h1_htx.c:516,1
    - Dst: b_size
      Src: /src/haproxy/src/h1_htx.c:516,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/h1_htx.c:518,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/h1_htx.c:534,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/h1_htx.c:547,1
    - Dst: ist2
      Src: /src/haproxy/src/h1_htx.c:547,1
    - Dst: b_peek
      Src: /src/haproxy/src/h1_htx.c:547,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/h1_htx.c:549,1
    - Dst: ist2
      Src: /src/haproxy/src/h1_htx.c:549,1
    - Dst: b_orig
      Src: /src/haproxy/src/h1_htx.c:549,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 6
    argNames:
    - dsthtx
    - srcbuf
    - ofs
    - count
    - max
    - htxbuf
    argTypes:
    - struct htx**
    - struct buffer*
    - size_t
    - size_t
    - size_t
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 552
    functionName: h1_copy_msg_data
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_peek
    - ist2
    - b_orig
    - b_contig_data
    - b_head_ofs
    - htx_add_data
    - b_data
    - b_size
    - htx_add_blk
    - htx_reset
    - b_set_data
    - htx_is_empty
    linkageType: ''
    returnType: size_t
    signature: "size_t h1_copy_msg_data(struct htx **dsthtx, struct buffer *srcbuf,
      size_t ofs,\n\t\t\t       size_t count, size_t max, struct buffer *htxbuf)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: htx_used_space
      Src: /src/haproxy/src/h1_htx.c:582,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:583,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:586,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:587,1
    - Dst: h1_copy_msg_data
      Src: /src/haproxy/src/h1_htx.c:589,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/h1_htx.c:590,1
    - Dst: h1_skip_chunk_crlf
      Src: /src/haproxy/src/h1_htx.c:601,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:601,1
    - Dst: h1_parse_chunk_size
      Src: /src/haproxy/src/h1_htx.c:612,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:612,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 6
    argNames:
    - h1m
    - dsthtx
    - srcbuf
    - ofs
    - max
    - htxbuf
    argTypes:
    - struct h1m*
    - struct htx**
    - struct buffer*
    - size_t
    - size_t*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 643
    functionName: h1_parse_chunk
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h1_skip_chunk_crlf
    - b_data
    - h1_copy_msg_data
    - htx_used_space
    - h1_parse_chunk_size
    linkageType: ''
    returnType: size_t
    signature: "size_t h1_parse_chunk(struct h1m *h1m, struct htx **dsthtx,\n\t\t\t
      \    struct buffer *srcbuf, size_t ofs, size_t *max,\n\t\t\t     struct buffer
      *htxbuf)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: b_contig_data
      Src: /src/haproxy/src/h1_htx.c:670,1
    - Dst: b_peek
      Src: /src/haproxy/src/h1_htx.c:673,1
    - Dst: htx_reserve_max_data
      Src: /src/haproxy/src/h1_htx.c:677,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h1_htx.c:685,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h1_htx.c:695,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h1_htx.c:696,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:721,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:731,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:734,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1_htx.c:740,1
    - Dst: likely
      Src: /src/haproxy/src/h1_htx.c:749,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:753,1
    - Dst: likely
      Src: /src/haproxy/src/h1_htx.c:762,1
    - Dst: HTTP_IS_CTL
      Src: /src/haproxy/src/h1_htx.c:781,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1_htx.c:781,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:808,1
    - Dst: memcpy
      Src: /src/haproxy/src/h1_htx.c:825,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:832,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h1_htx.c:851,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/h1_htx.c:853,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h1_htx.c:862,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 139
    argCount: 6
    argNames:
    - h1m
    - dsthtx
    - srcbuf
    - ofs
    - max
    - htxbuf
    argTypes:
    - struct h1m*
    - struct htx**
    - struct buffer*
    - size_t
    - size_t*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 866
    functionName: h1_parse_full_contig_chunks
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_peek
    - htx_reserve_max_data
    - htx_get_blksz
    - HTTP_IS_CTL
    - htx_change_blk_value_len
    - memcpy
    - b_contig_data
    - likely
    - htx_get_blk_ptr
    - htx_remove_blk
    - HTTP_IS_SPHT
    linkageType: ''
    returnType: size_t
    signature: "size_t h1_parse_full_contig_chunks(struct h1m *h1m, struct htx **dsthtx,\n\t\t\t\t\t
      \ struct buffer *srcbuf, size_t ofs, size_t *max,\n\t\t\t\t\t  struct buffer
      *htxbuf)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:878,1
    - Dst: h1_parse_full_contig_chunks
      Src: /src/haproxy/src/h1_htx.c:885,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:901,1
    - Dst: h1_parse_chunk
      Src: /src/haproxy/src/h1_htx.c:902,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 6
    argNames:
    - h1m
    - dsthtx
    - srcbuf
    - ofs
    - max
    - htxbuf
    argTypes:
    - struct h1m*
    - struct htx**
    - struct buffer*
    - size_t
    - size_t
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 872
    functionDepth: 3
    functionLinenumber: 872
    functionLinenumberEnd: 918
    functionName: h1_parse_msg_chunks
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - h1_parse_chunk
    - b_data
    - h1_parse_full_contig_chunks
    linkageType: ''
    returnType: size_t
    signature: "size_t h1_parse_msg_chunks(struct h1m *h1m, struct htx **dsthtx,\n\t\t\t
      struct buffer *srcbuf, size_t ofs, size_t max,\n\t\t\t struct buffer *htxbuf)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:931,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:936,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:937,1
    - Dst: h1_copy_msg_data
      Src: /src/haproxy/src/h1_htx.c:939,1
    - Dst: h1_parse_msg_chunks
      Src: /src/haproxy/src/h1_htx.c:949,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:960,1
    - Dst: h1_copy_msg_data
      Src: /src/haproxy/src/h1_htx.c:961,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 6
    argNames:
    - h1m
    - dsthtx
    - srcbuf
    - ofs
    - max
    - htxbuf
    argTypes:
    - struct h1m*
    - struct htx**
    - struct buffer*
    - size_t
    - size_t
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 925
    functionDepth: 4
    functionLinenumber: 925
    functionLinenumberEnd: 967
    functionName: h1_parse_msg_data
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 3
    functionsReached:
    - unlikely
    - h1_parse_msg_chunks
    - b_data
    - h1_copy_msg_data
    linkageType: ''
    returnType: size_t
    signature: "size_t h1_parse_msg_data(struct h1m *h1m, struct htx **dsthtx,\n\t\t\t
      struct buffer *srcbuf, size_t ofs, size_t max,\n\t\t\t struct buffer *htxbuf)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:983,1
    - Dst: b_peek
      Src: /src/haproxy/src/h1_htx.c:993,1
    - Dst: b_tail
      Src: /src/haproxy/src/h1_htx.c:993,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/h1_htx.c:994,1
    - Dst: h1_headers_to_hdr_list
      Src: /src/haproxy/src/h1_htx.c:998,1
    - Dst: b_peek
      Src: /src/haproxy/src/h1_htx.c:998,1
    - Dst: b_tail
      Src: /src/haproxy/src/h1_htx.c:998,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/h1_htx.c:1005,1
    - Dst: h1_eval_htx_hdrs_size
      Src: /src/haproxy/src/h1_htx.c:1011,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h1_htx.c:1012,1
    - Dst: htx_add_all_trailers
      Src: /src/haproxy/src/h1_htx.c:1017,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 5
    argNames:
    - h1m
    - dsthtx
    - srcbuf
    - ofs
    - max
    argTypes:
    - struct h1m*
    - struct htx*
    - struct buffer*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 976
    functionDepth: 4
    functionLinenumber: 976
    functionLinenumberEnd: 1032
    functionName: h1_parse_msg_tlrs
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 3
    functionsReached:
    - b_peek
    - h1_eval_htx_hdrs_size
    - b_slow_realign_ofs
    - h1_headers_to_hdr_list
    - b_tail
    - b_data
    - buf_room_for_htx_data
    - htx_add_all_trailers
    - htx_is_empty
    linkageType: ''
    returnType: int
    signature: "int h1_parse_msg_tlrs(struct h1m *h1m, struct htx *dsthtx,\n\t\t      struct
      buffer *srcbuf, size_t ofs, size_t max)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: h1_get_uri
      Src: /src/haproxy/src/h1_htx.c:1043,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1044,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/h1_htx.c:1044,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/h1_htx.c:1044,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1045,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1046,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1047,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1051,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1055,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/h1_htx.c:1055,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/h1_htx.c:1055,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1059,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - sl
    - chk
    argTypes:
    - struct htx_sl*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1067
    functionName: h1_format_htx_reqline
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 1
    functionsReached:
    - HTX_SL_REQ_VLEN
    - HTX_SL_REQ_MLEN
    - chunk_memcat
    - h1_get_uri
    - HTX_SL_REQ_MPTR
    - HTX_SL_REQ_VPTR
    linkageType: ''
    returnType: int
    signature: int h1_format_htx_reqline(const struct htx_sl *sl, struct buffer *chk)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HTX_SL_LEN
      Src: /src/haproxy/src/h1_htx.c:1078,1
    - Dst: b_room
      Src: /src/haproxy/src/h1_htx.c:1078,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1082,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1086,1
    - Dst: HTX_SL_RES_VPTR
      Src: /src/haproxy/src/h1_htx.c:1086,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/h1_htx.c:1086,1
    - Dst: htx_sl_res_reason
      Src: /src/haproxy/src/h1_htx.c:1090,1
    - Dst: istlen
      Src: /src/haproxy/src/h1_htx.c:1091,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:1092,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/h1_htx.c:1092,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1094,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1095,1
    - Dst: HTX_SL_RES_CPTR
      Src: /src/haproxy/src/h1_htx.c:1095,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/h1_htx.c:1095,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1096,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1097,1
    - Dst: istptr
      Src: /src/haproxy/src/h1_htx.c:1097,1
    - Dst: istlen
      Src: /src/haproxy/src/h1_htx.c:1097,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1098,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - sl
    - chk
    argTypes:
    - struct htx_sl*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1106
    functionName: h1_format_htx_stline
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 1
    functionsReached:
    - htx_sl_res_reason
    - ist
    - HTX_SL_RES_VLEN
    - b_room
    - chunk_memcat
    - HTX_SL_RES_VPTR
    - HTX_SL_RES_CPTR
    - istptr
    - HTX_SL_RES_CLEN
    - istlen
    - HTX_SL_LEN
    - http_get_reason
    linkageType: ''
    returnType: int
    signature: int h1_format_htx_stline(const struct htx_sl *sl, struct buffer *chk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_room
      Src: /src/haproxy/src/h1_htx.c:1117,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1120,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1121,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1122,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - n
    - v
    - chk
    argTypes:
    - struct ist
    - struct ist
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1113
    functionDepth: 1
    functionLinenumber: 1113
    functionLinenumberEnd: 1131
    functionName: h1_format_htx_hdr
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 5
    functionsReached:
    - b_room
    - chunk_memcat
    linkageType: ''
    returnType: int
    signature: int h1_format_htx_hdr(const struct ist n, const struct ist v, struct
      buffer *chk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1156,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1157,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1158,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - data
    - chk
    - chunked
    argTypes:
    - struct ist
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1171
    functionName: h1_format_htx_data
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 2
    functionsReached:
    - chunk_memcat
    linkageType: ''
    returnType: int
    signature: int h1_format_htx_data(const struct ist data, struct buffer *chk, int
      chunked)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:1186,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h1_htx.c:1189,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/h1_htx.c:1189,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h1_htx.c:1190,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h1_htx.c:1192,1
    - Dst: h1_format_htx_reqline
      Src: /src/haproxy/src/h1_htx.c:1194,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h1_htx.c:1198,1
    - Dst: h1_format_htx_stline
      Src: /src/haproxy/src/h1_htx.c:1200,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/h1_htx.c:1204,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h1_htx.c:1205,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/h1_htx.c:1207,1
    - Dst: b_putblk
      Src: /src/haproxy/src/h1_htx.c:1211,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h1_htx.c:1215,1
    - Dst: h1_format_htx_data
      Src: /src/haproxy/src/h1_htx.c:1216,1
    - Dst: b_putblk
      Src: /src/haproxy/src/h1_htx.c:1220,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/h1_htx.c:1223,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h1_htx.c:1224,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/h1_htx.c:1226,1
    - Dst: b_putblk
      Src: /src/haproxy/src/h1_htx.c:1233,1
    - Dst: b_reset
      Src: /src/haproxy/src/h1_htx.c:1238,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 59
    argCount: 2
    argNames:
    - htx
    - outbuf
    argTypes:
    - struct htx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1177
    functionDepth: 2
    functionLinenumber: 1177
    functionLinenumberEnd: 1240
    functionName: h1_format_htx_msg
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 1
    functionsReached:
    - htx_get_next_blk
    - htx_get_blk_name
    - htx_get_blk_value
    - b_putblk
    - h1_format_htx_stline
    - htx_get_blk_ptr
    - htx_get_blk_type
    - b_data
    - b_reset
    - h1_format_htx_hdr
    - h1_format_htx_data
    - h1_format_htx_reqline
    - htx_get_head_blk
    linkageType: ''
    returnType: int
    signature: int h1_format_htx_msg(const struct htx *htx, struct buffer *outbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/src/quic_enc.c:15,1
    - Dst: b_putblk
      Src: /src/haproxy/src/quic_enc.c:17,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_enc.c:19,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_enc.c:19,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/quic_enc.c:19,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/quic_enc.c:19,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/quic_enc.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 30
    functionName: quic_enc_unittest
    functionSourceFile: /src/haproxy/src/quic_enc.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - b_putblk
    - b_contig_data
    - b_head_ofs
    - b_data
    - b_quic_dec_int
    - b_make
    linkageType: ''
    returnType: int
    signature: int quic_enc_unittest(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:102,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:104,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:105,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: hap_register_pre_check
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_pre_check(int (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:116,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:118,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:119,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: hap_register_post_check
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 1
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_post_check(int (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:132,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:134,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:135,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: hap_register_post_proxy_check
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_post_proxy_check(int (*fct)(struct proxy *))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:148,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:150,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:151,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 155
    functionName: hap_register_post_server_check
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_post_server_check(int (*fct)(struct server *))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:164,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:166,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:167,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: hap_register_post_deinit
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 2
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_post_deinit(void (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:180,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:182,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:183,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 187
    functionName: hap_register_post_deinit_master
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_post_deinit_master(void (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:196,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:198,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:199,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 203
    functionName: hap_register_proxy_deinit
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_proxy_deinit(void (*fct)(struct proxy *))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:212,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:214,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:215,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: hap_register_server_deinit
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_server_deinit(void (*fct)(struct server *))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:226,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:228,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:229,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 233
    functionName: hap_register_per_thread_alloc
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_per_thread_alloc(int (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:240,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:242,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:243,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 247
    functionName: hap_register_per_thread_init
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 4
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_per_thread_init(int (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:254,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:256,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:257,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: hap_register_per_thread_deinit
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 4
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_per_thread_deinit(void (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:268,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:270,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:271,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 275
    functionName: hap_register_per_thread_free
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_per_thread_free(void (*fct)())
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:164,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:167,1
    - Dst: isttest
      Src: /src/haproxy/src/stream.c:169,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:170,1
    - Dst: b_putist
      Src: /src/haproxy/src/stream.c:171,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:175,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/stream.c:176,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/stream.c:176,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:180,1
    - Dst: h1_msg_state_str
      Src: /src/haproxy/src/stream.c:181,1
    - Dst: h1_msg_state_str
      Src: /src/haproxy/src/stream.c:181,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:183,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:189,1
    - Dst: __htx_get_head_blk
      Src: /src/haproxy/src/stream.c:190,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/stream.c:191,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/stream.c:192,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:195,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/stream.c:196,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/stream.c:196,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/stream.c:197,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/stream.c:197,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/stream.c:198,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/stream.c:198,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:201,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:202,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:202,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:206,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:210,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:213,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:213,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:213,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:213,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:214,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:214,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:214,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:214,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:215,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:215,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:215,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:215,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:216,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:216,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:216,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:216,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:226,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:227,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:227,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:228,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:229,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:229,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:232,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:235,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:246,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:247,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:249,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:250,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:251,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:254,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:255,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:255,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/stream.c:256,1
    - Dst: b_size
      Src: /src/haproxy/src/stream.c:256,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:257,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:257,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/stream.c:258,1
    - Dst: b_size
      Src: /src/haproxy/src/stream.c:258,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:262,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/stream.c:271,1
    - Dst: htx_dump
      Src: /src/haproxy/src/stream.c:272,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 53
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 274
    functionName: strm_trace
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - TICKS_TO_MS
    - htx_nbblks
    - htx_get_blk_ptr
    - HTX_SL_P1_LEN
    - b_head_ofs
    - htx_get_blk_type
    - chunk_memcat
    - b_putist
    - h1_msg_state_str
    - __htx_get_head_blk
    - htxbuf
    - b_orig
    - b_data
    - b_size
    - sc_state_str
    - HTX_SL_P3_LEN
    - sc_ep_snd_ex
    - HTX_SL_P2_PTR
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - sc_ep_rcv_ex
    - HTX_SL_P2_LEN
    - tick_isset
    - htx_dump
    - isttest
    linkageType: ''
    returnType: void
    signature: "void strm_trace(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n\t\t       const struct ist where, const struct ist func,\n\t\t
      \      const void *a1, const void *a2, const void *a3, const void *a4)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/src/stream.c:285,1
    - Dst: sc_mux_ops
      Src: /src/haproxy/src/stream.c:286,1
    - Dst: b_is_null
      Src: /src/haproxy/src/stream.c:293,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:300,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:300,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:300,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stream.c:301,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stream.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - sc
    - input
    argTypes:
    - struct stconn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 309
    functionName: stream_upgrade_from_sc
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - htxbuf
    - b_is_null
    - sc_ep_report_read_activity
    - task_wakeup
    - __sc_strm
    - sc_mux_ops
    - b_data
    - IS_HTX_STRM
    linkageType: ''
    returnType: int
    signature: int stream_upgrade_from_sc(struct stconn *sc, struct buffer *input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stream.c:322,1
    - Dst: sc_have_buff
      Src: /src/haproxy/src/stream.c:323,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stream.c:325,1
    - Dst: sc_have_buff
      Src: /src/haproxy/src/stream.c:326,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stream.c:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 332
    functionName: stream_buf_available
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_ep_have_ff_data
    - task_wakeup
    - sc_have_buff
    linkageType: ''
    returnType: int
    signature: int stream_buf_available(void *arg)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/stream.c:351,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:352,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/stream.c:352,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/stream.c:399,1
    - Dst: memcpy
      Src: /src/haproxy/src/stream.c:409,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stream.c:414,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/stream.c:415,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/stream.c:419,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/stream.c:421,1
    - Dst: task_new_here
      Src: /src/haproxy/src/stream.c:430,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/stream.c:473,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/stream.c:474,1
    - Dst: sc_attach_strm
      Src: /src/haproxy/src/stream.c:481,1
    - Dst: sc_new_from_strm
      Src: /src/haproxy/src/stream.c:484,1
    - Dst: sc_set_state
      Src: /src/haproxy/src/stream.c:488,1
    - Dst: likely
      Src: /src/haproxy/src/stream.c:490,1
    - Dst: likely
      Src: /src/haproxy/src/stream.c:493,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:496,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:498,1
    - Dst: sc_mux_ops
      Src: /src/haproxy/src/stream.c:499,1
    - Dst: stream_init_srv_conn
      Src: /src/haproxy/src/stream.c:505,1
    - Dst: channel_init
      Src: /src/haproxy/src/stream.c:515,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:519,1
    - Dst: channel_auto_connect
      Src: /src/haproxy/src/stream.c:528,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:529,1
    - Dst: channel_init
      Src: /src/haproxy/src/stream.c:535,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stream.c:560,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:561,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:562,1
    - Dst: flt_stream_init
      Src: /src/haproxy/src/stream.c:564,1
    - Dst: flt_stream_start
      Src: /src/haproxy/src/stream.c:564,1
    - Dst: se_will_consume
      Src: /src/haproxy/src/stream.c:568,1
    - Dst: struct session*::fe::accept
      Src: /src/haproxy/src/stream.c:570,1
    - Dst: b_is_null
      Src: /src/haproxy/src/stream.c:573,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:580,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:580,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:580,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stream.c:581,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:590,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stream.c:591,1
    - Dst: flt_stream_release
      Src: /src/haproxy/src/stream.c:596,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stream.c:597,1
    - Dst: sc_free
      Src: /src/haproxy/src/stream.c:598,1
    - Dst: task_destroy
      Src: /src/haproxy/src/stream.c:601,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:604,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:605,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/stream.c:606,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 170
    argCount: 3
    argNames:
    - sess
    - sc
    - input
    argTypes:
    - struct session*
    - struct stconn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 346
    functionDepth: 5
    functionLinenumber: 346
    functionLinenumberEnd: 608
    functionName: stream_new
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 8
    functionsReached:
    - unlikely
    - sc_conn
    - sc_ep_test
    - sc_ep_report_read_activity
    - vars_init_head
    - likely
    - LIST_APPEND
    - se_will_consume
    - DBG_TRACE_DEVEL
    - LIST_INIT
    - sc_attach_strm
    - b_is_null
    - pool_alloc
    - DBG_TRACE_LEAVE
    - channel_init
    - task_destroy
    - sc_mux_ops
    - sc_free
    - IS_HTX_STRM
    - _HA_ATOMIC_FETCH_ADD
    - pool_free
    - htxbuf
    - memcpy
    - flt_stream_init
    - b_data
    - sc_set_state
    - DBG_TRACE_ENTER
    - struct session*::fe::accept
    - stream_init_srv_conn
    - LIST_DELETE
    - _HA_ATOMIC_INC
    - _HA_ATOMIC_LOAD
    - channel_auto_connect
    - flt_stream_start
    - task_wakeup
    - flt_stream_release
    - sc_new_from_strm
    - channel_auto_close
    - task_new_here
    linkageType: ''
    returnType: void
    signature: void *stream_new(struct session *sess, struct stconn *sc, struct buffer
      *input)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strm_sess
      Src: /src/haproxy/src/stream.c:615,1
    - Dst: DBG_TRACE_POINT
      Src: /src/haproxy/src/stream.c:620,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/stream.c:626,1
    - Dst: pendconn_free
      Src: /src/haproxy/src/stream.c:628,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:630,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:633,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:633,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/stream.c:635,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:635,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/stream.c:636,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:636,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:639,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/stream.c:651,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/stream.c:652,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/stream.c:653,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/stream.c:658,1
    - Dst: b_is_default
      Src: /src/haproxy/src/stream.c:663,1
    - Dst: b_is_default
      Src: /src/haproxy/src/stream.c:665,1
    - Dst: b_free
      Src: /src/haproxy/src/stream.c:668,1
    - Dst: b_free
      Src: /src/haproxy/src/stream.c:669,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/stream.c:671,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:674,1
    - Dst: flt_stream_stop
      Src: /src/haproxy/src/stream.c:677,1
    - Dst: flt_stream_release
      Src: /src/haproxy/src/stream.c:678,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/stream.c:680,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/stream.c:681,1
    - Dst: http_destroy_txn
      Src: /src/haproxy/src/stream.c:685,1
    - Dst: pcli_destroy_txn
      Src: /src/haproxy/src/stream.c:687,1
    - Dst: stksess_free
      Src: /src/haproxy/src/stream.c:697,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/stream.c:704,1
    - Dst: ha_free
      Src: /src/haproxy/src/stream.c:705,1
    - Dst: resolv_unlink_resolution
      Src: /src/haproxy/src/stream.c:707,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/stream.c:708,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:710,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:718,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:719,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:725,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:726,1
    - Dst: vars_prune
      Src: /src/haproxy/src/stream.c:731,1
    - Dst: vars_prune
      Src: /src/haproxy/src/stream.c:732,1
    - Dst: stream_store_counters
      Src: /src/haproxy/src/stream.c:734,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:735,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/stream.c:737,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/stream.c:744,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stream.c:746,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/stream.c:746,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/stream.c:748,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stream.c:750,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:751,1
    - Dst: sc_destroy
      Src: /src/haproxy/src/stream.c:753,1
    - Dst: sc_destroy
      Src: /src/haproxy/src/stream.c:754,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/stream.c:764,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/stream.c:765,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/stream.c:766,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:770,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:773,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:774,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:775,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:776,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:777,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:778,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:779,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:780,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:781,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:782,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:783,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:784,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:785,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 107
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 613
    functionDepth: 8
    functionLinenumber: 613
    functionLinenumberEnd: 787
    functionName: stream_free
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 3
    functionsReached:
    - unlikely
    - flt_stream_stop
    - list_for_each_entry_safe
    - HA_SPIN_LOCK
    - LIST_APPEND
    - b_dequeue
    - objt_server
    - offer_buffers
    - hlua_ctx_destroy
    - http_destroy_txn
    - pool_flush
    - ha_free
    - strm_sess
    - vars_prune
    - __ha_barrier_store
    - b_is_default
    - stksess_free
    - sess_change_server
    - _HA_ATOMIC_DEC
    - pcli_destroy_txn
    - pool_free
    - process_srv_queue
    - sc_destroy
    - LIST_DEL_INIT
    - b_free
    - DBG_TRACE_POINT
    - __objt_server
    - LIST_DELETE
    - may_dequeue_tasks
    - pendconn_free
    - flt_stream_release
    - stream_store_counters
    - HA_SPIN_UNLOCK
    - resolv_unlink_resolution
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void stream_free(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_alloc
      Src: /src/haproxy/src/stream.c:800,1
    - Dst: b_requeue
      Src: /src/haproxy/src/stream.c:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 807
    functionName: stream_alloc_work_buffer
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - b_requeue
    - b_alloc
    linkageType: ''
    returnType: int
    signature: int stream_alloc_work_buffer(struct stream *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: c_size
      Src: /src/haproxy/src/stream.c:819,1
    - Dst: c_empty
      Src: /src/haproxy/src/stream.c:819,1
    - Dst: b_is_default
      Src: /src/haproxy/src/stream.c:820,1
    - Dst: b_free
      Src: /src/haproxy/src/stream.c:822,1
    - Dst: c_size
      Src: /src/haproxy/src/stream.c:824,1
    - Dst: c_empty
      Src: /src/haproxy/src/stream.c:824,1
    - Dst: b_is_default
      Src: /src/haproxy/src/stream.c:825,1
    - Dst: b_free
      Src: /src/haproxy/src/stream.c:827,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/stream.c:834,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 835
    functionName: stream_release_buffers
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 3
    functionsReached:
    - c_size
    - b_free
    - offer_buffers
    - b_is_default
    - c_empty
    linkageType: ''
    returnType: void
    signature: void stream_release_buffers(struct stream *s)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:847,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:849,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:852,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:855,1
    - Dst: stkctr_inc_bytes_in_ctr
      Src: /src/haproxy/src/stream.c:858,1
    - Dst: stkctr_inc_bytes_in_ctr
      Src: /src/haproxy/src/stream.c:859,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:867,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:869,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:872,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:875,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:882,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:884,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:887,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:890,1
    - Dst: stkctr_inc_bytes_out_ctr
      Src: /src/haproxy/src/stream.c:893,1
    - Dst: stkctr_inc_bytes_out_ctr
      Src: /src/haproxy/src/stream.c:894,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:902,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:904,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:907,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:910,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 912
    functionName: stream_process_counters
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - stkctr_inc_bytes_in_ctr
    - _HA_ATOMIC_ADD
    - stkctr_inc_bytes_out_ctr
    linkageType: ''
    returnType: void
    signature: void stream_process_counters(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: channel_abort
      Src: /src/haproxy/src/stream.c:917,1
    - Dst: channel_abort
      Src: /src/haproxy/src/stream.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 919
    functionName: stream_abort
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 2
    functionsReached:
    - channel_abort
    linkageType: ''
    returnType: void
    signature: void stream_abort(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: channel_auto_read
      Src: /src/haproxy/src/stream.c:935,1
    - Dst: channel_abort
      Src: /src/haproxy/src/stream.c:936,1
    - Dst: channel_erase
      Src: /src/haproxy/src/stream.c:937,1
    - Dst: channel_truncate
      Src: /src/haproxy/src/stream.c:938,1
    - Dst: likely
      Src: /src/haproxy/src/stream.c:940,1
    - Dst: co_inject
      Src: /src/haproxy/src/stream.c:941,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/stream.c:943,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:944,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/stream.c:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - struct stream*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 930
    functionDepth: 2
    functionLinenumber: 930
    functionLinenumberEnd: 946
    functionName: stream_retnclose
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 2
    functionsReached:
    - likely
    - sc_schedule_abort
    - co_inject
    - channel_abort
    - channel_truncate
    - channel_auto_close
    - channel_erase
    - channel_auto_read
    linkageType: ''
    returnType: void
    signature: void stream_retnclose(struct stream *s, const struct buffer *msg)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - s
    - name
    - timeout
    argTypes:
    - struct stream*
    - enum act_timeout_name
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 978
    functionName: stream_set_timeout
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int stream_set_timeout(struct stream *s, enum act_timeout_name name,
      int timeout)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:994,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/stream.c:999,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/stream.c:1003,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/stream.c:1012,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:1015,1
    - Dst: health_adjust
      Src: /src/haproxy/src/stream.c:1016,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:1016,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:1018,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/stream.c:1019,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:1019,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:1023,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:1026,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/stream.c:1027,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:1027,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/stream.c:1037,1
    - Dst: log_orig
      Src: /src/haproxy/src/stream.c:1037,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:1040,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stream.c:1042,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stream.c:1044,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:1050,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:1052,1
    - Dst: sc_chk_rcv
      Src: /src/haproxy/src/stream.c:1060,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/stream.c:1066,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:1069,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 992
    functionDepth: 11
    functionLinenumber: 992
    functionLinenumberEnd: 1070
    functionName: back_establish
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - sc_conn
    - strm_fe
    - sc_ep_report_read_activity
    - sc_chk_rcv
    - log_orig_proxy
    - struct stream*::do_log
    - DBG_TRACE_LEAVE
    - ns_to_ms
    - DBG_TRACE_STATE
    - health_adjust
    - lf_expr_isempty
    - log_orig
    - tick_isset
    - IS_HTX_STRM
    - se_have_more_data
    - objt_server
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void back_establish(struct stream *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1082,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1084,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:1090,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1097
    functionName: sess_set_term_flags
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_INC
    - sc_state_in
    linkageType: ''
    returnType: void
    signature: void sess_set_term_flags(struct stream *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_applet_create
      Src: /src/haproxy/src/stream.c:1116,1
    - Dst: objt_applet
      Src: /src/haproxy/src/stream.c:1116,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1117,1
    - Dst: appctx_init
      Src: /src/haproxy/src/stream.c:1121,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stream.c:1125,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1130,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/stream.c:1137,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stream.c:1138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1106
    functionDepth: 3
    functionLinenumber: 1106
    functionLinenumberEnd: 1140
    functionName: process_use_service
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _HA_ATOMIC_INC
    - applet_need_more_data
    - sc_applet_create
    - appctx_init
    - appctx_wakeup
    - __sc_appctx
    - objt_applet
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return process_use_service(struct act_rule *rule, struct
      proxy *px,\n                                    struct session *sess, struct
      stream *s, int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:1161,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/stream.c:1162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - fe
    - sess
    - s
    - persist
    argTypes:
    - struct proxy*
    - struct session*
    - struct stream*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1175
    functionName: lookup_fe_persist_rules
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - acl_match_cond
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int lookup_fe_persist_rules(struct proxy *fe, struct session *sess,\n
      \                                  struct stream *s, int *persist)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/stream.c:1195,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:1199,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/stream.c:1200,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/stream.c:1206,1
    - Dst: build_logline
      Src: /src/haproxy/src/stream.c:1210,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/stream.c:1211,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/stream.c:1213,1
    - Dst: be_is_eligible
      Src: /src/haproxy/src/stream.c:1221,1
    - Dst: lookup_fe_persist_rules
      Src: /src/haproxy/src/stream.c:1222,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/stream.c:1242,1
    - Dst: be_is_eligible
      Src: /src/haproxy/src/stream.c:1248,1
    - Dst: lookup_fe_persist_rules
      Src: /src/haproxy/src/stream.c:1249,1
    - Dst: stream_set_backend
      Src: /src/haproxy/src/stream.c:1257,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:1278,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/stream.c:1279,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:1291,1
    - Dst: stream_abort
      Src: /src/haproxy/src/stream.c:1296,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/stream.c:1307,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1309
    functionName: process_switching_rules
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - acl_match_cond
    - DBG_TRACE_LEAVE
    - be_is_eligible
    - list_for_each_entry
    - build_logline
    - alloc_trash_chunk
    - free_trash_chunk
    - stream_abort
    - DBG_TRACE_DEVEL
    - proxy_be_by_name
    - lookup_fe_persist_rules
    - stream_set_backend
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int process_switching_rules(struct stream *s, struct channel *req,
      int an_bit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/stream.c:1321,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:1324,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/stream.c:1327,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:1331,1
    - Dst: build_logline
      Src: /src/haproxy/src/stream.c:1333,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/stream.c:1336,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/stream.c:1347,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:1358,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1315
    functionDepth: 2
    functionLinenumber: 1315
    functionLinenumberEnd: 1360
    functionName: process_server_rules
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - acl_match_cond
    - DBG_TRACE_LEAVE
    - list_for_each_entry
    - build_logline
    - get_trash_chunk
    - stream_set_srv_target
    - server_find_by_name
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int process_server_rules(struct stream *s, struct channel *req, int
      an_bit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stream.c:1372,1
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/src/stream.c:1373,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stream.c:1374,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stream.c:1375,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/stream.c:1379,1
    - Dst: server_find_by_addr
      Src: /src/haproxy/src/stream.c:1381,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stream.c:1388,1
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/src/stream.c:1389,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stream.c:1390,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stream.c:1391,1
    - Dst: server_find_by_id
      Src: /src/haproxy/src/stream.c:1393,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/stream.c:1401,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - s
    - t
    - ts
    argTypes:
    - struct stream*
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1362
    functionDepth: 2
    functionLinenumber: 1362
    functionLinenumberEnd: 1403
    functionName: sticking_rule_find_target
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - __stktable_data_ptr
    - HA_RWLOCK_RDLOCK
    - server_find_by_id
    - stream_set_srv_target
    - server_find_by_name
    - stktable_data_cast
    - server_find_by_addr
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: void
    signature: "void sticking_rule_find_target(struct stream *s,\n                                             struct
      stktable *t, struct stksess *ts)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/stream.c:1415,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:1417,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/stream.c:1438,1
    - Dst: stktable_fetch_key
      Src: /src/haproxy/src/stream.c:1441,1
    - Dst: stktable_lookup_key
      Src: /src/haproxy/src/stream.c:1448,1
    - Dst: sticking_rule_find_target
      Src: /src/haproxy/src/stream.c:1450,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stream.c:1451,1
    - Dst: stksess_new
      Src: /src/haproxy/src/stream.c:1458,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:1469,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1409
    functionDepth: 6
    functionLinenumber: 1409
    functionLinenumberEnd: 1471
    functionName: process_sticking_rules
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - acl_match_cond
    - stktable_fetch_key
    - DBG_TRACE_LEAVE
    - list_for_each_entry
    - stksess_new
    - sticking_rule_find_target
    - stktable_touch_local
    - stktable_lookup_key
    - DBG_TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int process_sticking_rules(struct stream *s, struct channel *req, int
      an_bit)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/stream.c:1485,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:1487,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/stream.c:1511,1
    - Dst: stktable_fetch_key
      Src: /src/haproxy/src/stream.c:1514,1
    - Dst: stksess_new
      Src: /src/haproxy/src/stream.c:1521,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:1537,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:1537,1
    - Dst: stksess_free
      Src: /src/haproxy/src/stream.c:1538,1
    - Dst: stktable_set_entry
      Src: /src/haproxy/src/stream.c:1543,1
    - Dst: stksess_free
      Src: /src/haproxy/src/stream.c:1546,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:1551,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:1553,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stream.c:1557,1
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/src/stream.c:1558,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stream.c:1559,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:1559,1
    - Dst: dict_insert
      Src: /src/haproxy/src/stream.c:1562,1
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/src/stream.c:1564,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stream.c:1565,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stream.c:1569,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stream.c:1571,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:1578,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 3
    argNames:
    - s
    - rep
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1477
    functionDepth: 6
    functionLinenumber: 1477
    functionLinenumberEnd: 1580
    functionName: process_store_rules
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - stksess_free
    - DBG_TRACE_ENTER
    - __stktable_data_ptr
    - acl_match_cond
    - stktable_fetch_key
    - HA_RWLOCK_WRUNLOCK
    - list_for_each_entry
    - DBG_TRACE_LEAVE
    - stktable_set_entry
    - dict_insert
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - objt_server
    - stksess_new
    linkageType: ''
    returnType: int
    signature: int process_store_rules(struct stream *s, struct channel *rep, int
      an_bit)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:1593,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1598,1
    - Dst: http_create_txn
      Src: /src/haproxy/src/stream.c:1598,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:1601,1
    - Dst: sc_conn_ready
      Src: /src/haproxy/src/stream.c:1603,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stream.c:1607,1
    - Dst: struct connection*::mux::unsubscribe
      Src: /src/haproxy/src/stream.c:1613,1
    - Dst: sc_conn_prepare_endp_upgrade
      Src: /src/haproxy/src/stream.c:1618,1
    - Dst: conn_upgrade_mux_fe
      Src: /src/haproxy/src/stream.c:1619,1
    - Dst: ist
      Src: /src/haproxy/src/stream.c:1620,1
    - Dst: sc_conn_abort_endp_upgrade
      Src: /src/haproxy/src/stream.c:1622,1
    - Dst: sc_conn_commit_endp_upgrade
      Src: /src/haproxy/src/stream.c:1625,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:1629,1
    - Dst: stream_abort
      Src: /src/haproxy/src/stream.c:1638,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - s
    - mux_proto
    argTypes:
    - struct stream*
    - struct mux_proto_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1587
    functionDepth: 8
    functionLinenumber: 1587
    functionLinenumberEnd: 1645
    functionName: stream_set_http_mode
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_conn_ready
    - sc_conn
    - ist
    - sc_ep_test
    - http_create_txn
    - sc_conn_abort_endp_upgrade
    - stream_abort
    - sc_conn_prepare_endp_upgrade
    - sc_conn_commit_endp_upgrade
    - IS_HTX_STRM
    - se_have_more_data
    - conn_upgrade_mux_fe
    - struct connection*::mux::unsubscribe
    linkageType: ''
    returnType: int
    signature: int stream_set_http_mode(struct stream *s, const struct mux_proto_list
      *mux_proto)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:1668,1
    - Dst: sc_update
      Src: /src/haproxy/src/stream.c:1669,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:1671,1
    - Dst: sc_update
      Src: /src/haproxy/src/stream.c:1672,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stream.c:1677,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/stream.c:1678,1
    - Dst: sc_is_send_allowed
      Src: /src/haproxy/src/stream.c:1678,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stream.c:1679,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stream.c:1679,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stream.c:1681,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/stream.c:1682,1
    - Dst: sc_is_send_allowed
      Src: /src/haproxy/src/stream.c:1682,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stream.c:1683,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stream.c:1683,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1685
    functionName: stream_update_both_sc
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_update
    - appctx_wakeup
    - __sc_appctx
    - sc_appctx
    - sc_state_in
    - sc_is_recv_allowed
    - sc_is_send_allowed
    linkageType: ''
    returnType: void
    signature: void stream_update_both_sc(struct stream *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: stream_check_conn_timeout
      Src: /src/haproxy/src/stream.c:1695,1
    - Dst: sc_check_timeouts
      Src: /src/haproxy/src/stream.c:1697,1
    - Dst: channel_check_timeout
      Src: /src/haproxy/src/stream.c:1698,1
    - Dst: sc_check_timeouts
      Src: /src/haproxy/src/stream.c:1699,1
    - Dst: channel_check_timeout
      Src: /src/haproxy/src/stream.c:1700,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1702,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/stream.c:1703,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:1705,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1708,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/stream.c:1709,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:1712,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1714,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/stream.c:1715,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:1717,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1720,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/stream.c:1721,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:1724,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/stream.c:1727,1
    - Dst: flt_stream_check_timeouts
      Src: /src/haproxy/src/stream.c:1728,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1693
    functionDepth: 4
    functionLinenumber: 1693
    functionLinenumberEnd: 1729
    functionName: stream_handle_timeouts
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_shutdown
    - stream_report_term_evt
    - flt_stream_check_timeouts
    - stream_check_conn_timeout
    - HAS_FILTERS
    - channel_check_timeout
    - sc_check_timeouts
    - sc_abort
    linkageType: ''
    returnType: void
    signature: void stream_handle_timeouts(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/stream.c:1739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1735
    functionDepth: 1
    functionLinenumber: 1735
    functionLinenumberEnd: 1744
    functionName: stream_cond_update_cpu_latency
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - likely
    linkageType: ''
    returnType: void
    signature: void stream_cond_update_cpu_latency(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/stream.c:1759,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/stream.c:1762,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:1764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1754
    functionDepth: 2
    functionLinenumber: 1754
    functionLinenumberEnd: 1766
    functionName: stream_cond_update_cpu_usage
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_ADD
    - now_mono_time
    - likely
    linkageType: ''
    returnType: void
    signature: void stream_cond_update_cpu_usage(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - t
    - lat
    - cpu
    argTypes:
    - struct task*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1772
    functionDepth: 0
    functionLinenumber: 1772
    functionLinenumberEnd: 1777
    functionName: stream_update_timings
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stream_update_timings(struct task *t, uint64_t lat, uint64_t cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - real
    - ','
    - list
    - ','
    - back
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1783
    functionDepth: 0
    functionLinenumber: 1783
    functionLinenumberEnd: 1791
    functionName: UPDATE_ANALYSERS
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_ANALYSERS(real, list, back, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - strm
    - ','
    - chn
    - ','
    - fun
    - ','
    - list
    - ','
    - back
    - ','
    - flag
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1797
    functionDepth: 0
    functionLinenumber: 1797
    functionLinenumberEnd: 1816
    functionName: FLT_ANALYZE
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_ANALYZE(strm, chn, fun, list, back, flag, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - strm
    - ','
    - chn
    - ','
    - fun
    - ','
    - list
    - ','
    - back
    - ','
    - flag
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1817
    functionDepth: 0
    functionLinenumber: 1817
    functionLinenumberEnd: 1826
    functionName: ANALYZE
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ANALYZE(strm, chn, fun, list, back, flag, ...)
  - BBCount: 148
    BranchProfiles: []
    Callsites:
    - Dst: stream_cond_update_cpu_latency
      Src: /src/haproxy/src/stream.c:1860,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/stream.c:1868,1
    - Dst: stream_map_task_state
      Src: /src/haproxy/src/stream.c:1888,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/stream.c:1889,1
    - Dst: stream_shutdown_self
      Src: /src/haproxy/src/stream.c:1893,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1899,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:1899,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stream.c:1900,1
    - Dst: sc_sync_recv
      Src: /src/haproxy/src/stream.c:1903,1
    - Dst: sc_sync_recv
      Src: /src/haproxy/src/stream.c:1904,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/stream.c:1911,1
    - Dst: stream_dump_and_crash
      Src: /src/haproxy/src/stream.c:1913,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stream.c:1913,1
    - Dst: memset
      Src: /src/haproxy/src/stream.c:1918,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1923,1
    - Dst: stream_handle_timeouts
      Src: /src/haproxy/src/stream.c:1924,1
    - Dst: stream_alloc_work_buffer
      Src: /src/haproxy/src/stream.c:1944,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:1960,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1961,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:1962,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:1963,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:1964,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:1966,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1968,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1970,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1972,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1974,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1983,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:1984,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:1985,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:1986,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1988,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1990,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:1992,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1994,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1996,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1998,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2000,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2010,1
    - Dst: back_handle_st_rdy
      Src: /src/haproxy/src/stream.c:2015,1
    - Dst: back_handle_st_con
      Src: /src/haproxy/src/stream.c:2017,1
    - Dst: back_handle_st_cer
      Src: /src/haproxy/src/stream.c:2020,1
    - Dst: back_establish
      Src: /src/haproxy/src/stream.c:2022,1
    - Dst: DBG_TRACE_POINT
      Src: /src/haproxy/src/stream.c:2036,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2039,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2045,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:2048,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:2050,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:2050,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:2051,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:2051,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/stream.c:2052,1
    - Dst: write
      Src: /src/haproxy/src/stream.c:2052,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2059,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:2061,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:2065,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/stream.c:2073,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/stream.c:2074,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/stream.c:2075,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2082,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:2086,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:2088,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:2088,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:2089,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:2089,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/stream.c:2090,1
    - Dst: write
      Src: /src/haproxy/src/stream.c:2090,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2113,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/stream.c:2124,1
    - Dst: channel_auto_connect
      Src: /src/haproxy/src/stream.c:2125,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2126,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2166,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2167,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2168,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2169,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2170,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2171,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2172,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2173,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2174,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2175,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2176,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2177,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2178,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2179,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2180,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2181,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2182,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2183,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2184,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2220,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/stream.c:2231,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2232,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2249,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2250,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2251,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2252,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2253,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2254,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2255,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2256,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2257,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2258,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2259,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:2297,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2298,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2302,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2305,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2307,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2309,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2311,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2313,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2317,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2319,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2321,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2323,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2325,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2329,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2331,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2333,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2335,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2337,1
    - Dst: sess_set_term_flags
      Src: /src/haproxy/src/stream.c:2339,1
    - Dst: channel_abort
      Src: /src/haproxy/src/stream.c:2347,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:2348,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/src/stream.c:2349,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:2349,1
    - Dst: channel_erase
      Src: /src/haproxy/src/stream.c:2351,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2357,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2360,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2362,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2364,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2366,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2368,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2372,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2374,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2376,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2378,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2380,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2384,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2386,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2388,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2390,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2392,1
    - Dst: sess_set_term_flags
      Src: /src/haproxy/src/stream.c:2394,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2409,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2411,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/stream.c:2417,1
    - Dst: channel_auto_connect
      Src: /src/haproxy/src/stream.c:2418,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2419,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:2421,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:2422,1
    - Dst: co_set_data
      Src: /src/haproxy/src/stream.c:2427,1
    - Dst: channel_htx_forward_forever
      Src: /src/haproxy/src/stream.c:2430,1
    - Dst: c_adv
      Src: /src/haproxy/src/stream.c:2436,1
    - Dst: ci_data
      Src: /src/haproxy/src/stream.c:2436,1
    - Dst: channel_forward_forever
      Src: /src/haproxy/src/stream.c:2439,1
    - Dst: co_data
      Src: /src/haproxy/src/stream.c:2455,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/stream.c:2467,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:2468,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stream.c:2470,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/stream.c:2472,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stream.c:2478,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/stream.c:2479,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2487,1
    - Dst: vars_prune
      Src: /src/haproxy/src/stream.c:2490,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/stream.c:2491,1
    - Dst: back_try_conn_req
      Src: /src/haproxy/src/stream.c:2501,1
    - Dst: back_handle_st_req
      Src: /src/haproxy/src/stream.c:2503,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2513,1
    - Dst: back_establish
      Src: /src/haproxy/src/stream.c:2514,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:2516,1
    - Dst: http_perform_server_redirect
      Src: /src/haproxy/src/stream.c:2518,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2520,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:2523,1
    - Dst: htx_move_to_small_buffer
      Src: /src/haproxy/src/stream.c:2524,1
    - Dst: b_size
      Src: /src/haproxy/src/stream.c:2528,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:2529,1
    - Dst: b_alloc_small
      Src: /src/haproxy/src/stream.c:2531,1
    - Dst: b_xfer
      Src: /src/haproxy/src/stream.c:2533,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:2533,1
    - Dst: b_free
      Src: /src/haproxy/src/stream.c:2536,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/stream.c:2537,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/stream.c:2539,1
    - Dst: sc_sync_send
      Src: /src/haproxy/src/stream.c:2546,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2558,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/stream.c:2560,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stream.c:2561,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2565,1
    - Dst: co_data
      Src: /src/haproxy/src/stream.c:2566,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stream.c:2566,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:2569,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2573,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/stream.c:2575,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2578,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:2581,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2586,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2602,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2604,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/stream.c:2610,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2611,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:2613,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:2614,1
    - Dst: co_set_data
      Src: /src/haproxy/src/stream.c:2619,1
    - Dst: channel_htx_forward_forever
      Src: /src/haproxy/src/stream.c:2622,1
    - Dst: c_adv
      Src: /src/haproxy/src/stream.c:2628,1
    - Dst: ci_data
      Src: /src/haproxy/src/stream.c:2628,1
    - Dst: channel_forward_forever
      Src: /src/haproxy/src/stream.c:2631,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:2641,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:2642,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:2644,1
    - Dst: sc_sync_send
      Src: /src/haproxy/src/stream.c:2656,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2667,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stream.c:2669,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2673,1
    - Dst: co_data
      Src: /src/haproxy/src/stream.c:2674,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stream.c:2674,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:2675,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2679,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/stream.c:2681,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2684,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:2687,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2691,1
    - Dst: likely
      Src: /src/haproxy/src/stream.c:2712,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2712,1
    - Dst: stream_process_counters
      Src: /src/haproxy/src/stream.c:2715,1
    - Dst: stream_update_both_sc
      Src: /src/haproxy/src/stream.c:2717,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:2730,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:2730,1
    - Dst: tick_add
      Src: /src/haproxy/src/stream.c:2731,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:2733,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2734,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:2734,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2735,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:2735,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2736,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:2736,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2737,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:2737,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2738,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2739,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2740,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2742,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:2742,1
    - Dst: stream_handle_timeouts
      Src: /src/haproxy/src/stream.c:2746,1
    - Dst: stream_release_buffers
      Src: /src/haproxy/src/stream.c:2751,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/stream.c:2753,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/stream.c:2757,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:2760,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2762,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:2764,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:2766,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:2766,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:2767,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:2767,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/stream.c:2768,1
    - Dst: write
      Src: /src/haproxy/src/stream.c:2768,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/stream.c:2774,1
    - Dst: stream_process_counters
      Src: /src/haproxy/src/stream.c:2776,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2786,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2791,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2792,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/stream.c:2798,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/stream.c:2801,1
    - Dst: pendconn_free
      Src: /src/haproxy/src/stream.c:2808,1
    - Dst: stream_cond_update_cpu_usage
      Src: /src/haproxy/src/stream.c:2810,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/stream.c:2811,1
    - Dst: log_orig
      Src: /src/haproxy/src/stream.c:2811,1
    - Dst: stream_update_time_stats
      Src: /src/haproxy/src/stream.c:2815,1
    - Dst: stream_free
      Src: /src/haproxy/src/stream.c:2819,1
    - Dst: task_destroy
      Src: /src/haproxy/src/stream.c:2820,1
    CyclomaticComplexity: 281
    EdgeCount: 281
    ICount: 537
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 1844
    functionDepth: 12
    functionLinenumber: 1844
    functionLinenumberEnd: 2822
    functionName: process_stream
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - channel_htx_erase
    - sc_conn
    - sc_ep_test
    - likely
    - DBG_TRACE_DEVEL
    - back_try_conn_req
    - log_orig_proxy
    - vars_prune
    - IS_HTX_STRM
    - se_have_more_data
    - sc_state_in
    - sess_change_server
    - tick_add
    - htxbuf
    - process_srv_queue
    - http_perform_server_redirect
    - back_handle_st_con
    - stream_cond_update_cpu_usage
    - sc_sync_send
    - back_handle_st_cer
    - sc_ep_rcv_ex
    - stream_alloc_work_buffer
    - htx_move_to_small_buffer
    - DISGUISE
    - sc_shutdown
    - b_xfer
    - sc_ep_have_ff_data
    - co_data
    - vars_init_head
    - lf_expr_isempty
    - ANALYZE
    - stream_free
    - chunk_printf
    - sc_sync_recv
    - _HA_ATOMIC_DEC
    - stream_handle_timeouts
    - stream_dump_and_crash
    - ns_to_ms
    - sc_ep_set
    - b_data
    - b_size
    - update_freq_ctr
    - stream_shutdown_self
    - channel_erase
    - DBG_TRACE_ENTER
    - back_handle_st_rdy
    - memset
    - pendconn_free
    - channel_auto_connect
    - struct connection*::mux::ctl
    - conn_fd
    - read_freq_ctr
    - back_handle_st_req
    - struct stream*::do_log
    - stream_update_time_stats
    - objt_server
    - stream_update_both_sc
    - channel_htx_forward_forever
    - channel_abort
    - COUNT_IF
    - tick_is_expired
    - sc_abort
    - HA_ATOMIC_XCHG
    - stream_process_counters
    - b_free
    - stream_cond_update_cpu_latency
    - FLT_ANALYZE
    - sc_ep_snd_ex
    - ci_data
    - stream_release_buffers
    - channel_auto_close
    - proxy_abrt_close
    - unlikely
    - b_alloc_small
    - offer_buffers
    - sess_set_term_flags
    - task_destroy
    - channel_forward_forever
    - sc_schedule_abort
    - co_set_data
    - c_adv
    - channel_auto_read
    - sc_schedule_shutdown
    - write
    - tick_first
    - back_establish
    - log_orig
    - DBG_TRACE_POINT
    - may_dequeue_tasks
    - _HA_ATOMIC_INC
    - tick_isset
    - stream_map_task_state
    linkageType: ''
    returnType: struct task
    signature: struct task *process_stream(struct task *t, void *context, unsigned
      int state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ns_to_ms
      Src: /src/haproxy/src/stream.c:2848,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:2854,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stream.c:2858,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stream.c:2858,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2861,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2862,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2863,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2864,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2865,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2866,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2867,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2868,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stream.c:2872,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stream.c:2872,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2875,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2876,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2877,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2878,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2879,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2880,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2881,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2882,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2883
      start: 2825
    functionDepth: 1
    functionLinenumber: 2825
    functionLinenumberEnd: 2883
    functionName: stream_update_time_stats
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_LOAD
    - swrate_add_dynamic
    - ns_to_ms
    - objt_server
    - COUNTERS_UPDATE_MAX
    linkageType: ''
    returnType: void
    signature: void stream_update_time_stats(struct stream *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:2916,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:2930,1
    - Dst: stream_del_srv_conn
      Src: /src/haproxy/src/stream.c:2931,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:2932,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/stream.c:2933,1
    - Dst: struct server*::proxy::lbprm::ops::server_drop_conn
      Src: /src/haproxy/src/stream.c:2935,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2939,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/stream.c:2940,1
    - Dst: struct server*::proxy::lbprm::ops::server_take_conn
      Src: /src/haproxy/src/stream.c:2942,1
    - Dst: stream_add_srv_conn
      Src: /src/haproxy/src/stream.c:2943,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - strm
    - newsrv
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2892
    functionDepth: 1
    functionLinenumber: 2892
    functionLinenumberEnd: 2945
    functionName: sess_change_server
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 7
    functionsReached:
    - _HA_ATOMIC_INC
    - stream_add_srv_conn
    - struct server*::proxy::lbprm::ops::server_drop_conn
    - stream_del_srv_conn
    - __ha_barrier_atomic_store
    - struct server*::proxy::lbprm::ops::server_take_conn
    - _HA_ATOMIC_DEC
    linkageType: ''
    returnType: void
    signature: void sess_change_server(struct stream *strm, struct server *newsrv)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - s
    - sc
    argTypes:
    - struct stream*
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2952
    functionDepth: 0
    functionLinenumber: 2952
    functionLinenumberEnd: 2994
    functionName: default_srv_error
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void default_srv_error(struct stream *s, struct stconn *sc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:3010,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:3013,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:3013,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/stream.c:3016,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/stream.c:3017,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:3017,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/stream.c:3018,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:3018,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:3023,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/stream.c:3027,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - stream
    - why
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 3001
    functionDepth: 4
    functionLinenumber: 3001
    functionLinenumberEnd: 3028
    functionName: stream_shutdown_self
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - __objt_server
    - sc_shutdown
    - may_dequeue_tasks
    - process_srv_queue
    - struct stream*::srv_error
    - _HA_ATOMIC_DEC
    - objt_server
    - sess_change_server
    linkageType: ''
    returnType: void
    signature: void stream_shutdown_self(struct stream *stream, int why)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: objt_stream
      Src: /src/haproxy/src/stream.c:3039,1
    - Dst: objt_appctx
      Src: /src/haproxy/src/stream.c:3041,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/stream.c:3045,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stream.c:3050,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:3051,1
    - Dst: strm_dump_to_buffer
      Src: /src/haproxy/src/stream.c:3052,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stream.c:3052,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3057,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/stream.c:3058,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3059,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3061,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/stream.c:3062,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3063,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3066,1
    - Dst: obj_type_name
      Src: /src/haproxy/src/stream.c:3070,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stream.c:3072,1
    - Dst: send_log
      Src: /src/haproxy/src/stream.c:3073,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stream.c:3074,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - obj
    - rate
    argTypes:
    - enum obj_type*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3033
    functionDepth: 10
    functionLinenumber: 3033
    functionLinenumberEnd: 3075
    functionName: stream_dump_and_crash
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 3
    functionsReached:
    - appctx_strm
    - memprintf
    - HA_ATOMIC_LOAD
    - chunk_printf
    - objt_appctx
    - chunk_appendf
    - strm_dump_to_buffer
    - objt_stream
    - ABORT_NOW
    - ha_alert
    - chunk_reset
    - send_log
    - obj_type_name
    - resolve_sym_name
    linkageType: ''
    returnType: void
    signature: void stream_dump_and_crash(enum obj_type *obj, int rate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/stream.c:3083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3084
      start: 3078
    functionDepth: 1
    functionLinenumber: 3078
    functionLinenumberEnd: 3084
    functionName: init_stream
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void init_stream()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/stream.c:3098,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3090
    functionDepth: 4
    functionLinenumber: 3090
    functionLinenumberEnd: 3106
    functionName: stream_action_set_retries
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sample_fetch_as_type
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return stream_action_set_retries(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\t\t   struct session *sess, struct stream *s, int flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3121,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3125,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3129,1
    - Dst: strtol
      Src: /src/haproxy/src/stream.c:3135,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3138,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/stream.c:3145,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3155,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/stream.c:3157,1
    - Dst: free
      Src: /src/haproxy/src/stream.c:3158,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3169
      start: 3112
    functionDepth: 7
    functionLinenumber: 3112
    functionLinenumberEnd: 3169
    functionName: stream_parse_set_retries
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - sample_src_names
    - strtol
    - sample_parse_expr
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret stream_parse_set_retries(const char **args, int
      *cur_arg, struct proxy *px,\n\t\t\t\t\t\t   struct act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3176
      start: 3171
    functionDepth: 0
    functionLinenumber: 3171
    functionLinenumberEnd: 3176
    functionName: stream_action_set_log_level
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return stream_action_set_log_level(struct act_rule *rule,
      struct proxy *px,\n\t\t\t\t\t\t   struct session *sess, struct stream *s, int
      flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3189,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3192,1
    - Dst: get_log_level
      Src: /src/haproxy/src/stream.c:3194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3204
      start: 3182
    functionDepth: 5
    functionLinenumber: 3182
    functionLinenumberEnd: 3204
    functionName: stream_parse_set_log_level
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - get_log_level
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret stream_parse_set_log_level(const char **args, int
      *cur_arg, struct proxy *px,\n\t\t\t\t\t\t     struct act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3211
      start: 3206
    functionDepth: 0
    functionLinenumber: 3206
    functionLinenumberEnd: 3211
    functionName: stream_action_set_nice
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return stream_action_set_nice(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\t      struct session *sess, struct stream *s, int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3224,1
    - Dst: atoi
      Src: /src/haproxy/src/stream.c:3228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3217
    functionDepth: 5
    functionLinenumber: 3217
    functionLinenumberEnd: 3241
    functionName: stream_parse_set_nice
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret stream_parse_set_nice(const char **args, int *cur_arg,
      struct proxy *px,\n\t\t\t\t\t\tstruct act_rule *rule, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:3250,1
    - Dst: stream_set_http_mode
      Src: /src/haproxy/src/stream.c:3251,1
    - Dst: stream_abort
      Src: /src/haproxy/src/stream.c:3252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3244
    functionDepth: 9
    functionLinenumber: 3244
    functionLinenumberEnd: 3257
    functionName: tcp_action_switch_stream_mode
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - stream_abort
    - IS_HTX_STRM
    - stream_set_http_mode
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_switch_stream_mode(struct act_rule *rule,
      struct proxy *px,\n\t\t\t\t\t\t  struct session *sess, struct stream *s, int
      flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/stream.c:3265,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/stream.c:3271,1
    - Dst: isteq
      Src: /src/haproxy/src/stream.c:3272,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3273,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/stream.c:3279,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3290
      start: 3260
    functionDepth: 5
    functionLinenumber: 3260
    functionLinenumberEnd: 3290
    functionName: check_tcp_switch_stream_mode
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - memprintf
    - isteq
    - conn_pr_mode_to_proto_mode
    - conn_get_best_mux_entry
    linkageType: ''
    returnType: int
    signature: int check_tcp_switch_stream_mode(struct act_rule *rule, struct proxy
      *px, char **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3302,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3307,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/stream.c:3308,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3314,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3317,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3322,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3324,1
    - Dst: ist
      Src: /src/haproxy/src/stream.c:3329,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/stream.c:3330,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3292
    functionDepth: 5
    functionLinenumber: 3292
    functionLinenumberEnd: 3348
    functionName: stream_parse_switch_mode
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ist
    - proxy_type_str
    - strcmp
    - get_mux_proto
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret stream_parse_switch_mode(const char **args, int
      *cur_arg,\n\t\t\t\t\t\t   struct proxy *px, struct act_rule *rule,\n\t\t\t\t\t\t
      \  char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3359,1
    - Dst: action_lookup
      Src: /src/haproxy/src/stream.c:3364,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3366,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/stream.c:3373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3381
      start: 3351
    functionDepth: 5
    functionLinenumber: 3351
    functionLinenumberEnd: 3381
    functionName: stream_parse_use_service
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - struct action_kw*::parse
    - memprintf
    - action_lookup
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret stream_parse_use_service(const char **args, int
      *cur_arg,\n                                                   struct proxy *px,
      struct act_rule *rule,\n                                                   char
      **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: act_add_list
      Src: /src/haproxy/src/stream.c:3385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3386
      start: 3383
    functionDepth: 2
    functionLinenumber: 3383
    functionLinenumberEnd: 3386
    functionName: service_keywords_register
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - act_add_list
    linkageType: ''
    returnType: void
    signature: void service_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: action_lookup
      Src: /src/haproxy/src/stream.c:3390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3391
      start: 3388
    functionDepth: 1
    functionLinenumber: 3388
    functionLinenumberEnd: 3391
    functionName: service_find
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - action_lookup
    linkageType: ''
    returnType: struct action_kw
    signature: struct action_kw *service_find(const char *kw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/stream.c:3404,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:3407,1
    - Dst: strordered
      Src: /src/haproxy/src/stream.c:3409,1
    - Dst: fprintf
      Src: /src/haproxy/src/stream.c:3419,1
    - Dst: printf
      Src: /src/haproxy/src/stream.c:3421,1
    - Dst: fprintf
      Src: /src/haproxy/src/stream.c:3424,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3425
      start: 3396
    functionDepth: 1
    functionLinenumber: 3396
    functionLinenumberEnd: 3425
    functionName: list_services
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - fprintf
    - strordered
    - printf
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void list_services(FILE *out)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3472,1
    - Dst: get_localtime
      Src: /src/haproxy/src/stream.c:3476,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3477,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3484,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3485,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3485,1
    - Dst: objt_conn
      Src: /src/haproxy/src/stream.c:3487,1
    - Dst: strm_orig
      Src: /src/haproxy/src/stream.c:3487,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/stream.c:3491,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stream.c:3493,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3496,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3497,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stream.c:3497,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3502,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3502,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3506,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3510,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:3514,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3515,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3515,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3516,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/stream.c:3518,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3520,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3523,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3525,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:3525,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:3525,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stream.c:3525,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:3525,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3526,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3526,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3526,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3527,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3527,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/stream.c:3531,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stream.c:3533,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3536,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3537,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stream.c:3537,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3542,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3542,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3546,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3551,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3553,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stream.c:3554,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3556,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:3558,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/stream.c:3562,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stream.c:3564,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3567,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3568,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stream.c:3568,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3573,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3577,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3582,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:3584,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3584,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:3584,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:3585,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:3585,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3587,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/stream.c:3591,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stream.c:3593,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3596,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3597,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stream.c:3597,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3602,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3606,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3610,1
    - Dst: read_freq_ctr_period_estimate
      Src: /src/haproxy/src/stream.c:3615,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stream.c:3615,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:3617,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3618,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3618,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3619,1
    - Dst: task_in_rq
      Src: /src/haproxy/src/stream.c:3623,1
    - Dst: ms_to_ns
      Src: /src/haproxy/src/stream.c:3626,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3627,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3629,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:3629,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:3629,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3632,1
    - Dst: h1_msg_state_str
      Src: /src/haproxy/src/stream.c:3636,1
    - Dst: h1_msg_state_str
      Src: /src/haproxy/src/stream.c:3637,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3640,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3641,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/stream.c:3642,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3646,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3647,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3647,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/stream.c:3647,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:3648,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:3648,1
    - Dst: sc_ep_get
      Src: /src/haproxy/src/stream.c:3649,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3650,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:3651,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3651,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3651,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:3651,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3651,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3652,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:3653,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3653,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3653,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:3653,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3653,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3654,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:3655,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3655,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3655,1
    - Dst: tick_add
      Src: /src/haproxy/src/stream.c:3655,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3655,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3656,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:3657,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3657,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3657,1
    - Dst: tick_add
      Src: /src/haproxy/src/stream.c:3657,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3657,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3659,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:3662,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:3663,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/stream.c:3664,1
    - Dst: b_size
      Src: /src/haproxy/src/stream.c:3665,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:3667,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:3671,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3672,1
    - Dst: struct connection*::mux::show_sd
      Src: /src/haproxy/src/stream.c:3673,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3674,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3677,1
    - Dst: conn_get_ctrl_name
      Src: /src/haproxy/src/stream.c:3680,1
    - Dst: conn_get_xprt_name
      Src: /src/haproxy/src/stream.c:3681,1
    - Dst: conn_get_mux_name
      Src: /src/haproxy/src/stream.c:3682,1
    - Dst: obj_type_name
      Src: /src/haproxy/src/stream.c:3683,1
    - Dst: obj_base_ptr
      Src: /src/haproxy/src/stream.c:3684,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3686,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3689,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3690,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3691,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3692,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stream.c:3694,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3695,1
    - Dst: read_freq_ctr_period_estimate
      Src: /src/haproxy/src/stream.c:3703,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stream.c:3703,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3707,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3708,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3708,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/stream.c:3708,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:3709,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:3709,1
    - Dst: sc_ep_get
      Src: /src/haproxy/src/stream.c:3710,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3711,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:3712,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3712,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3712,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:3712,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3712,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3713,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:3714,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3714,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3714,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:3714,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3714,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3715,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:3716,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3716,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3716,1
    - Dst: tick_add
      Src: /src/haproxy/src/stream.c:3716,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3716,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3717,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:3718,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3718,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3718,1
    - Dst: tick_add
      Src: /src/haproxy/src/stream.c:3718,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3718,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3720,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:3723,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:3724,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/stream.c:3725,1
    - Dst: b_size
      Src: /src/haproxy/src/stream.c:3726,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:3728,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:3732,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3733,1
    - Dst: struct connection*::mux::show_sd
      Src: /src/haproxy/src/stream.c:3734,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3735,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3738,1
    - Dst: conn_get_ctrl_name
      Src: /src/haproxy/src/stream.c:3741,1
    - Dst: conn_get_xprt_name
      Src: /src/haproxy/src/stream.c:3742,1
    - Dst: conn_get_mux_name
      Src: /src/haproxy/src/stream.c:3743,1
    - Dst: obj_type_name
      Src: /src/haproxy/src/stream.c:3744,1
    - Dst: obj_base_ptr
      Src: /src/haproxy/src/stream.c:3745,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3747,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3750,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3751,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3752,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3753,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stream.c:3755,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3756,1
    - Dst: read_freq_ctr_period_estimate
      Src: /src/haproxy/src/stream.c:3764,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stream.c:3764,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/stream.c:3767,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3770,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:3771,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3773,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3774,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:3774,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3776,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3779,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3788,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3788,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3789,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:3791,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/stream.c:3792,1
    - Dst: c_data
      Src: /src/haproxy/src/stream.c:3793,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:3796,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:3797,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3799,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:3801,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/stream.c:3804,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3807,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3812,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3821,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3821,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3822,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:3824,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/stream.c:3825,1
    - Dst: c_data
      Src: /src/haproxy/src/stream.c:3826,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:3829,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:3830,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3832,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:3834,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/stream.c:3838,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3841,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3848,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 160
    argCount: 5
    argNames:
    - buf
    - ctx
    - strm
    - pfx
    - anon_key
    argTypes:
    - struct buffer*
    - struct show_sess_ctx*
    - struct stream*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3852
      start: 3454
    functionDepth: 2
    functionLinenumber: 3454
    functionLinenumberEnd: 3852
    functionName: __strm_dump_to_buffer
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - read_freq_ctr_period_estimate
    - sc_conn
    - HA_ANON_STR
    - sc_ep_test
    - chunk_appendf
    - TICKS_TO_MS
    - htx_nbblks
    - strm_orig
    - conn_get_xprt_name
    - ms_to_ns
    - get_localtime
    - objt_server
    - c_data
    - snprintf
    - strm_fe
    - obj_base_ptr
    - conn_get_mux_name
    - b_head_ofs
    - chunk_memcat
    - b_peek_ofs
    - tick_is_expired
    - sc_appctx
    - IS_HTX_STRM
    - strm_li
    - h1_msg_state_str
    - sc_ep_get
    - tick_add
    - task_in_rq
    - human_time
    - ns_to_sec
    - b_orig
    - htxbuf
    - MS_TO_TICKS
    - objt_conn
    - b_data
    - b_size
    - LIST_INLIST
    - sc_state_str
    - addr_to_str
    - conn_get_dst
    - conn_get_src
    - __objt_server
    - sc_ep_snd_ex
    - list_for_each_entry
    - conn_fd
    - get_host_port
    - sc_ep_rcv_ex
    - HAS_FILTERS
    - tick_isset
    - struct connection*::mux::show_sd
    - conn_get_ctrl_name
    - proxy_mode_str
    - obj_type_name
    - FLT_ID
    linkageType: ''
    returnType: void
    signature: "void __strm_dump_to_buffer(struct buffer *buf, const struct show_sess_ctx
      *ctx,\n\t\t\t\t  const struct stream *strm, const char *pfx, uint32_t anon_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __strm_dump_to_buffer
      Src: /src/haproxy/src/stream.c:3859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - strm
    - pfx
    - anon_key
    argTypes:
    - struct buffer*
    - struct stream*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3860
      start: 3857
    functionDepth: 3
    functionLinenumber: 3857
    functionLinenumberEnd: 3860
    functionName: strm_dump_to_buffer
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 3
    functionsReached:
    - __strm_dump_to_buffer
    linkageType: ''
    returnType: void
    signature: void strm_dump_to_buffer(struct buffer *buf, const struct stream *strm,
      const char *pfx, uint32_t anon_key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/stream.c:3871,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3875,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stream.c:3876,1
    - Dst: __strm_dump_to_buffer
      Src: /src/haproxy/src/stream.c:3888,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stream.c:3889,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - appctx
    - strm
    argTypes:
    - struct appctx*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3901
      start: 3867
    functionDepth: 3
    functionLinenumber: 3867
    functionLinenumberEnd: 3901
    functionName: stats_dump_full_strm_to_buffer
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - __strm_dump_to_buffer
    - applet_putchk
    - chunk_appendf
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int stats_dump_full_strm_to_buffer(struct appctx *appctx, struct stream
      *strm)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/stream.c:3905,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/stream.c:3908,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3918,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3923,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/stream.c:3925,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3927,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3933,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3937,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:3938,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3952,1
    - Dst: strtoul
      Src: /src/haproxy/src/stream.c:3955,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3962,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3965,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3968,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3974,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3977,1
    - Dst: ist
      Src: /src/haproxy/src/stream.c:3979,1
    - Dst: istsplit
      Src: /src/haproxy/src/stream.c:3980,1
    - Dst: istlen
      Src: /src/haproxy/src/stream.c:3981,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3982,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/stream.c:3984,1
    - Dst: ist0
      Src: /src/haproxy/src/stream.c:3984,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3985,1
    - Dst: server_find
      Src: /src/haproxy/src/stream.c:3987,1
    - Dst: ist0
      Src: /src/haproxy/src/stream.c:3987,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3988,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3993,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3997,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:4000,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/stream.c:4002,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:4003,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:4009,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:4013,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:4016,1
    - Dst: proxy_fe_by_name
      Src: /src/haproxy/src/stream.c:4018,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:4019,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:4026,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:4027,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/stream.c:4035,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/stream.c:4040,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/stream.c:4040,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 85
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4042
      start: 3903
    functionDepth: 3
    functionLinenumber: 3903
    functionLinenumberEnd: 4042
    functionName: cli_parse_show_sess
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - appctx_strm
    - LIST_INIT
    - ist
    - ist0
    - proxy_fe_by_name
    - chunk_printf
    - istsplit
    - strcmp
    - proxy_be_by_name
    - strtoul
    - applet_reserve_svcctx
    - server_find
    - _HA_ATOMIC_FETCH_ADD
    - cli_has_level
    - parse_time_err
    - istlen
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_sess(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: thread_isolate
      Src: /src/haproxy/src/stream.c:4054,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stream.c:4061,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/stream.c:4064,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stream.c:4065,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/stream.c:4066,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/stream.c:4083,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/stream.c:4084,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:4097,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:4097,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:4117,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stream.c:4126,1
    - Dst: stats_dump_full_strm_to_buffer
      Src: /src/haproxy/src/stream.c:4128,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stream.c:4132,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/stream.c:4133,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4142,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:4145,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:4145,1
    - Dst: objt_conn
      Src: /src/haproxy/src/stream.c:4147,1
    - Dst: strm_orig
      Src: /src/haproxy/src/stream.c:4147,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/stream.c:4148,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stream.c:4148,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4151,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4153,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stream.c:4154,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4155,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:4155,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4156,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:4157,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4157,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:4157,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4163,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:4165,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4166,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:4166,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4167,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:4168,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4168,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:4168,1
    - Dst: ms_to_ns
      Src: /src/haproxy/src/stream.c:4174,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4175,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4178,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:4178,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:4178,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stream.c:4179,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4182,1
    - Dst: ci_data
      Src: /src/haproxy/src/stream.c:4185,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4188,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4191,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4191,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4192,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4194,1
    - Dst: ci_data
      Src: /src/haproxy/src/stream.c:4197,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4199,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4202,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4202,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4203,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:4205,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4206,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:4207,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4208,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:4209,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4210,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4210,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:4210,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4211,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4212,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:4213,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4214,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4214,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:4214,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4215,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:4217,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4218,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:4219,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4220,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:4221,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4222,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4222,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:4222,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4223,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4224,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:4225,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4226,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4226,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:4226,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4227,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4229,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4232,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4232,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4233,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4236,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4236,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4237,1
    - Dst: task_in_rq
      Src: /src/haproxy/src/stream.c:4238,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4239,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4244,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4245,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4247,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stream.c:4249,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stream.c:4253,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4264,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4266,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stream.c:4268,1
    - Dst: thread_release
      Src: /src/haproxy/src/stream.c:4277,1
    - Dst: thread_release
      Src: /src/haproxy/src/stream.c:4280,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 127
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4049
    functionDepth: 4
    functionLinenumber: 4049
    functionLinenumberEnd: 4282
    functionName: cli_io_handler_dump_sess
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - chunk_appendf
    - TICKS_TO_MS
    - LIST_APPEND
    - strm_orig
    - ms_to_ns
    - objt_server
    - LIST_INIT
    - strm_fe
    - thread_isolate
    - applet_putchk
    - tick_is_expired
    - HA_ANON_CLI
    - strm_li
    - stats_dump_full_strm_to_buffer
    - thread_release
    - appctx_strm
    - task_in_rq
    - human_time
    - ns_to_sec
    - objt_conn
    - chunk_reset
    - addr_to_str
    - conn_get_src
    - LIST_DELETE
    - __objt_server
    - sc_ep_snd_ex
    - ci_data
    - conn_fd
    - get_host_port
    - sc_ep_rcv_ex
    - read_freq_ctr
    - LIST_ISEMPTY
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_sess(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: thread_isolate
      Src: /src/haproxy/src/stream.c:4294,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/stream.c:4295,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stream.c:4296,1
    - Dst: thread_release
      Src: /src/haproxy/src/stream.c:4297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4299
      start: 4284
    functionDepth: 1
    functionLinenumber: 4284
    functionLinenumberEnd: 4299
    functionName: cli_release_show_sess
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - LIST_ISEMPTY
    - thread_isolate
    - thread_release
    linkageType: ''
    returnType: void
    signature: void cli_release_show_sess(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/stream.c:4307,1
    - Dst: strtoul
      Src: /src/haproxy/src/stream.c:4310,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:4312,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/stream.c:4316,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:4320,1
    - Dst: stream_shutdown
      Src: /src/haproxy/src/stream.c:4322,1
    - Dst: thread_release
      Src: /src/haproxy/src/stream.c:4328,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:4332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4335
      start: 4302
    functionDepth: 2
    functionLinenumber: 4302
    functionLinenumberEnd: 4335
    functionName: cli_parse_shutdown_session
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - thread_isolate
    - list_for_each_entry
    - strtoul
    - thread_release
    - stream_shutdown
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_shutdown_session(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/stream.c:4342,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/stream.c:4345,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/stream.c:4350,1
    - Dst: srv_shutdown_streams
      Src: /src/haproxy/src/stream.c:4351,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/stream.c:4352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4354
      start: 4338
    functionDepth: 4
    functionLinenumber: 4338
    functionLinenumberEnd: 4354
    functionName: cli_parse_shutdown_sessions_server
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - cli_has_level
    - srv_shutdown_streams
    linkageType: ''
    returnType: int
    signature: int cli_parse_shutdown_sessions_server(char **args, char *payload,
      struct appctx *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4421
      start: 4412
    functionDepth: 1
    functionLinenumber: 4412
    functionLinenumberEnd: 4421
    functionName: smp_fetch_cur_connect_timeout
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - TICKS_TO_MS
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cur_connect_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4432
      start: 4423
    functionDepth: 1
    functionLinenumber: 4423
    functionLinenumberEnd: 4432
    functionName: smp_fetch_cur_client_timeout
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - TICKS_TO_MS
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cur_client_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4443
      start: 4434
    functionDepth: 1
    functionLinenumber: 4434
    functionLinenumberEnd: 4443
    functionName: smp_fetch_cur_server_timeout
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - TICKS_TO_MS
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cur_server_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4454
      start: 4445
    functionDepth: 1
    functionLinenumber: 4445
    functionLinenumberEnd: 4454
    functionName: smp_fetch_cur_queue_timeout
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - TICKS_TO_MS
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cur_queue_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4464,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4466,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4471
      start: 4456
    functionDepth: 1
    functionLinenumber: 4456
    functionLinenumberEnd: 4471
    functionName: smp_fetch_cur_tarpit_timeout
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - TICKS_TO_MS
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cur_tarpit_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4482
      start: 4473
    functionDepth: 1
    functionLinenumber: 4473
    functionLinenumberEnd: 4482
    functionName: smp_fetch_cur_tunnel_timeout
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - TICKS_TO_MS
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cur_tunnel_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/stream.c:4496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4484
    functionDepth: 0
    functionLinenumber: 4484
    functionLinenumberEnd: 4498
    functionName: smp_fetch_last_rule_file
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_last_rule_file(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4512
      start: 4500
    functionDepth: 0
    functionLinenumber: 4500
    functionLinenumberEnd: 4512
    functionName: smp_fetch_last_rule_line
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_last_rule_line(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:4523,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:4525,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4531,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4533,1
    - Dst: strlen
      Src: /src/haproxy/src/stream.c:4534,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4534,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:4537,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:4539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4547
      start: 4514
    functionDepth: 2
    functionLinenumber: 4514
    functionLinenumberEnd: 4547
    functionName: smp_fetch_last_entity
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - strlen
    - FLT_ID
    - get_trash_chunk
    - snprintf
    linkageType: ''
    returnType: int
    signature: int smp_fetch_last_entity(const struct arg *args, struct sample *smp,
      const char *km, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:4558,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:4560,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4566,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4568,1
    - Dst: strlen
      Src: /src/haproxy/src/stream.c:4569,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4569,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:4572,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:4574,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:4579,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/stream.c:4581,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4549
    functionDepth: 2
    functionLinenumber: 4549
    functionLinenumberEnd: 4588
    functionName: smp_fetch_waiting_entity
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - chunk_memcat
    - FLT_ID
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_waiting_entity(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:4592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4606
      start: 4590
    functionDepth: 2
    functionLinenumber: 4590
    functionLinenumberEnd: 4606
    functionName: smp_fetch_sess_term_state
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int smp_fetch_sess_term_state(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:4615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4619
      start: 4608
    functionDepth: 1
    functionLinenumber: 4608
    functionLinenumberEnd: 4619
    functionName: smp_fetch_conn_retries
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_state_in
    linkageType: ''
    returnType: int
    signature: int smp_fetch_conn_retries(const struct arg *args, struct sample *smp,
      const char *km, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:4623,1
    - Dst: objt_conn
      Src: /src/haproxy/src/stream.c:4627,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:4628,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/stream.c:4632,1
    - Dst: mux::ctl
      Src: /src/haproxy/src/stream.c:4634,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:4636,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4636,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4637,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4637,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4638,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4638,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4639,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4639,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4640,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4640,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4641,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4641,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4642,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4642,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4648
      start: 4621
    functionDepth: 2
    functionLinenumber: 4621
    functionLinenumberEnd: 4648
    functionName: smp_fetch_tevts
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - struct connection*::mux::ctl
    - chunk_printf
    - chunk_appendf
    - get_trash_chunk
    - objt_conn
    - tevt_evts2str
    - mux::ctl
    linkageType: ''
    returnType: int
    signature: int smp_fetch_tevts(const struct arg *args, struct sample *smp, const
      char *km, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4658
      start: 4650
    functionDepth: 0
    functionLinenumber: 4650
    functionLinenumberEnd: 4658
    functionName: smp_fetch_id32
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_id32(const struct arg *args, struct sample *smp, const
      char *km, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:4667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4671
      start: 4660
    functionDepth: 1
    functionLinenumber: 4660
    functionLinenumberEnd: 4671
    functionName: smp_fetch_redispatched
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_state_in
    linkageType: ''
    returnType: int
    signature: int smp_fetch_redispatched(const struct arg *args, struct sample *smp,
      const char *km, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:63,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:66,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:68,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:69,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:70,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:71,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:73,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:75,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:76,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:78,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct ssl_bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: ssl_sock_free_ssl_conf
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 2
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void ssl_sock_free_ssl_conf(struct ssl_bind_conf *conf)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ssl_crtlist.c:96,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:102,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:109,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:115,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:120,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:125,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:130,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:136,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:142,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:147,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:162,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:169,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_crtlist.c:177,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:178,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 84
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct ssl_bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 181
    functionName: crtlist_dup_ssl_conf
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - calloc
    - ssl_sock_free_ssl_conf
    - free
    - strdup
    linkageType: ''
    returnType: struct ssl_bind_conf
    signature: struct ssl_bind_conf *crtlist_dup_ssl_conf(struct ssl_bind_conf *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:192,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 195
    functionName: crtlist_free_filters
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void crtlist_free_filters(char **args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ssl_crtlist.c:206,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:211,1
    - Dst: crtlist_free_filters
      Src: /src/haproxy/src/ssl_crtlist.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 220
    functionName: crtlist_dup_filters
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - crtlist_free_filters
    - calloc
    - strdup
    linkageType: ''
    returnType: char
    signature: char **crtlist_dup_filters(char **args, int fcount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_delete
      Src: /src/haproxy/src/ssl_crtlist.c:233,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:234,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:235,1
    - Dst: crtlist_free_filters
      Src: /src/haproxy/src/ssl_crtlist.c:236,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_crtlist.c:237,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:238,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_crtlist.c:239,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_crtlist.c:240,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct crtlist_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 243
    functionName: crtlist_entry_free
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - crtlist_free_filters
    - ebpt_delete
    - ssl_sock_free_ssl_conf
    - list_for_each_entry_safe
    - free
    - ckch_inst_free
    linkageType: ''
    returnType: void
    signature: void crtlist_entry_free(struct crtlist_entry *entry)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: crtlist_entry_new
      Src: /src/haproxy/src/ssl_crtlist.c:255,1
    - Dst: crtlist_dup_filters
      Src: /src/haproxy/src/ssl_crtlist.c:260,1
    - Dst: crtlist_dup_ssl_conf
      Src: /src/haproxy/src/ssl_crtlist.c:266,1
    - Dst: crtlist_free_filters
      Src: /src/haproxy/src/ssl_crtlist.c:276,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_crtlist.c:277,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:278,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:279,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct crtlist_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 282
    functionName: crtlist_entry_dup
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - crtlist_free_filters
    - crtlist_dup_filters
    - ssl_sock_free_ssl_conf
    - free
    - crtlist_dup_ssl_conf
    - crtlist_entry_new
    linkageType: ''
    returnType: struct crtlist_entry
    signature: struct crtlist_entry *crtlist_entry_dup(struct crtlist_entry *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ssl_crtlist.c:291,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_crtlist.c:295,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_crtlist.c:298,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_crtlist.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: crtlist_entry_new
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 1
    functionsReached:
    - calloc
    - LIST_INIT
    linkageType: ''
    returnType: struct crtlist_entry
    signature: struct crtlist_entry *crtlist_entry_new()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:316,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_crtlist.c:320,1
    - Dst: crtlist_entry_free
      Src: /src/haproxy/src/ssl_crtlist.c:321,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_crtlist.c:323,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - crtlist
    argTypes:
    - struct crtlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 305
    functionDepth: 5
    functionLinenumber: 305
    functionLinenumberEnd: 325
    functionName: crtlist_free
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - crtlist_entry_free
    - list_for_each_entry_safe
    - ebmb_delete
    - free
    linkageType: ''
    returnType: void
    signature: void crtlist_free(struct crtlist *crtlist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ssl_crtlist.c:335,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:335,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_crtlist.c:339,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:339,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_crtlist.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - filename
    - unique
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 348
    functionName: crtlist_new
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - calloc
    - LIST_INIT
    - memcpy
    - strlen
    linkageType: ''
    returnType: struct crtlist
    signature: struct crtlist *crtlist_new(const char *filename, int unique)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:370,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:375,1
    - Dst: isspace
      Src: /src/haproxy/src/ssl_crtlist.c:383,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:388,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:393,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:402,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:407,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:416,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:437,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_crtlist.c:448,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_crtlist.c:450,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:452,1
    - Dst: parse
      Src: /src/haproxy/src/ssl_crtlist.c:458,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:460,1
    - Dst: ckch_conf_parse
      Src: /src/haproxy/src/ssl_crtlist.c:471,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:483,1
    - Dst: crtlist_dup_filters
      Src: /src/haproxy/src/ssl_crtlist.c:491,1
    - Dst: crtlist_free_filters
      Src: /src/haproxy/src/ssl_crtlist.c:497,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_crtlist.c:499,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:500,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 133
    argCount: 8
    argNames:
    - line
    - crt_path
    - entry
    - cc
    - file
    - linenum
    - from_cli
    - err
    argTypes:
    - char*
    - char**
    - struct crtlist_entry*
    - struct ckch_conf*
    - char*
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 502
    functionName: crtlist_parse_line
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - isspace
    - crtlist_free_filters
    - memprintf
    - crtlist_dup_filters
    - parse
    - ha_free
    - calloc
    - ssl_sock_free_ssl_conf
    - strcmp
    - ckch_conf_parse
    - strlen
    linkageType: ''
    returnType: int
    signature: int crtlist_parse_line(char *line, char **crt_path, struct crtlist_entry
      *entry, struct ckch_conf *cc, const char *file, int linenum, int from_cli, char
      **err)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:519,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:526,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_crtlist.c:528,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:532,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:533,1
    - Dst: ckch_store_new_load_files_conf
      Src: /src/haproxy/src/ssl_crtlist.c:540,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_crtlist.c:550,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:551,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:552,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_crtlist.c:568,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:572,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_crtlist.c:574,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:577,1
    - Dst: ckch_store_new_load_files_path
      Src: /src/haproxy/src/ssl_crtlist.c:581,1
    - Dst: crtlist_entry_dup
      Src: /src/haproxy/src/ssl_crtlist.c:594,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_crtlist.c:605,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:606,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:607,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:613,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:620,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_crtlist.c:621,1
    - Dst: ckch_conf_cmp
      Src: /src/haproxy/src/ssl_crtlist.c:626,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:627,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_crtlist.c:635,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:636,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:637,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 101
    argCount: 7
    argNames:
    - crt_path
    - cc
    - newlist
    - entry
    - file
    - linenum
    - err
    argTypes:
    - char*
    - struct ckch_conf*
    - struct crtlist*
    - struct crtlist_entry*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 511
    functionDepth: 6
    functionLinenumber: 511
    functionLinenumberEnd: 645
    functionName: crtlist_load_crt
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ckch_store_new_load_files_path
    - strerror
    - stat
    - ckchs_lookup
    - free
    - LIST_APPEND
    - crtlist_entry_dup
    - ckch_conf_cmp
    - ebpt_insert
    - ckch_store_new_load_files_conf
    - snprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int crtlist_load_crt(char *crt_path, struct ckch_conf *cc, struct crtlist
      *newlist, struct crtlist_entry *entry, char *file, int linenum, char **err)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/haproxy/src/ssl_crtlist.c:663,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:664,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_crtlist.c:664,1
    - Dst: crtlist_new
      Src: /src/haproxy/src/ssl_crtlist.c:668,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:670,1
    - Dst: fgets
      Src: /src/haproxy/src/ssl_crtlist.c:675,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:683,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:691,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:696,1
    - Dst: crtlist_entry_new
      Src: /src/haproxy/src/ssl_crtlist.c:714,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:716,1
    - Dst: crtlist_parse_line
      Src: /src/haproxy/src/ssl_crtlist.c:721,1
    - Dst: crtlist_entry_free
      Src: /src/haproxy/src/ssl_crtlist.c:727,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:733,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:733,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_crtlist.c:734,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:735,1
    - Dst: crtlist_load_crt
      Src: /src/haproxy/src/ssl_crtlist.c:743,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:750,1
    - Dst: fclose
      Src: /src/haproxy/src/ssl_crtlist.c:760,1
    - Dst: crtlist_entry_free
      Src: /src/haproxy/src/ssl_crtlist.c:765,1
    - Dst: fclose
      Src: /src/haproxy/src/ssl_crtlist.c:769,1
    - Dst: crtlist_free
      Src: /src/haproxy/src/ssl_crtlist.c:770,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 80
    argCount: 5
    argNames:
    - file
    - bind_conf
    - curproxy
    - crtlist
    - err
    argTypes:
    - char*
    - struct bind_conf*
    - struct proxy*
    - struct crtlist**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 653
    functionDepth: 7
    functionLinenumber: 653
    functionLinenumberEnd: 772
    functionName: crtlist_parse_file
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 1
    functionsReached:
    - memprintf
    - fclose
    - strerror
    - crtlist_entry_free
    - crtlist_load_crt
    - crtlist_new
    - crtlist_free
    - crtlist_entry_new
    - fopen
    - crtlist_parse_line
    - fgets
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int crtlist_parse_file(char *file, struct bind_conf *bind_conf, struct
      proxy *curproxy, struct crtlist **crtlist, char **err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: crtlist_new
      Src: /src/haproxy/src/ssl_crtlist.c:790,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:792,1
    - Dst: scandir
      Src: /src/haproxy/src/ssl_crtlist.c:796,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:798,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_crtlist.c:799,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_crtlist.c:807,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_crtlist.c:809,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_crtlist.c:809,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_crtlist.c:810,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_crtlist.c:810,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_crtlist.c:813,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_crtlist.c:814,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:815,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_crtlist.c:816,1
    - Dst: S_ISREG
      Src: /src/haproxy/src/ssl_crtlist.c:820,1
    - Dst: crtlist_entry_new
      Src: /src/haproxy/src/ssl_crtlist.c:823,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:825,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:830,1
    - Dst: ckch_store_new_load_files_path
      Src: /src/haproxy/src/ssl_crtlist.c:832,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:834,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:835,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:841,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:842,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_crtlist.c:843,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:846,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:849,1
    - Dst: crtlist_free
      Src: /src/haproxy/src/ssl_crtlist.c:854,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 4
    argNames:
    - path
    - bind_conf
    - crtlist
    - err
    argTypes:
    - char*
    - struct bind_conf*
    - struct crtlist**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 779
    functionDepth: 6
    functionLinenumber: 779
    functionLinenumberEnd: 860
    functionName: crtlist_load_cert_dir
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 1
    functionsReached:
    - memprintf
    - ckch_store_new_load_files_path
    - strerror
    - scandir
    - strcmp
    - strrchr
    - stat
    - ckchs_lookup
    - free
    - LIST_APPEND
    - S_ISREG
    - crtlist_new
    - crtlist_free
    - crtlist_entry_new
    - ebpt_insert
    - snprintf
    linkageType: ''
    returnType: int
    signature: int crtlist_load_cert_dir(char *path, struct bind_conf *bind_conf,
      struct crtlist **crtlist, char **err)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:873,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:887,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:894,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:895,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:900,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:910,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:912,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:914,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:921,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:922,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:927,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:934,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:935,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:938,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:939,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:942,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:943,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:949,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:950,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:955,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:956,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:960,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:961,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:965,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:966,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:970,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:971,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:976,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:977,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:982,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:983,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:987,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:988,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:993,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:994,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:999,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1000,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1006,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1007,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1012,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1013,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1023,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1024,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1027,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1028,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1034,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 153
    argCount: 3
    argNames:
    - buf
    - conf
    - cc
    argTypes:
    - struct buffer*
    - struct ssl_bind_conf*
    - struct ckch_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 1037
    functionName: dump_crtlist_conf
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - chunk_memcat
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void dump_crtlist_conf(struct buffer *buf, const struct ssl_bind_conf
      *conf, const struct ckch_conf *cc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - entry
    argTypes:
    - struct buffer*
    - struct crtlist_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1051
    functionName: dump_crtlist_filters
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void dump_crtlist_filters(struct buffer *buf, struct crtlist_entry
      *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_crtlist.c:1062,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_crtlist.c:1071,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1073,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1074,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_crtlist.c:1076,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_crtlist.c:1078,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_crtlist.c:1082,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1084
    functionName: cli_io_handler_dump_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_appendf
    - ebmb_next
    - ebmb_first
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_crtlist(struct appctx *appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_crtlist.c:1090,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1097,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_crtlist.c:1101,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_crtlist.c:1101,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1102,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1103,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/ssl_crtlist.c:1107,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1113,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1115,1
    - Dst: dump_crtlist_conf
      Src: /src/haproxy/src/ssl_crtlist.c:1116,1
    - Dst: dump_crtlist_filters
      Src: /src/haproxy/src/ssl_crtlist.c:1117,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1118,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1120,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_crtlist.c:1123,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_crtlist.c:1127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1129
    functionName: cli_io_handler_dump_crtlist_entries
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - typeof
    - dump_crtlist_filters
    - free_trash_chunk
    - list_for_each_entry_from
    - alloc_trash_chunk
    - dump_crtlist_conf
    - chunk_appendf
    - ebmb_entry
    - applet_putchk
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_crtlist_entries(struct appctx *appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_crtlist.c:1134,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_crtlist.c:1140,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_crtlist.c:1143,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1152,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:1158,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1161,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1163,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1171
    functionName: cli_parse_dump_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - cli_err
    - strcmp
    - ebst_lookup
    - applet_reserve_svcctx
    - cli_has_level
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_parse_dump_crtlist(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_delete
      Src: /src/haproxy/src/ssl_crtlist.c:1185,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:1186,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:1187,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_crtlist.c:1189,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_crtlist.c:1190,1
    - Dst: crtlist_free_filters
      Src: /src/haproxy/src/ssl_crtlist.c:1192,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_crtlist.c:1193,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:1194,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:1195,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1197,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1176
    functionDepth: 4
    functionLinenumber: 1176
    functionLinenumberEnd: 1199
    functionName: cli_release_add_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - crtlist_free_filters
    - ebpt_delete
    - ha_free
    - ssl_sock_free_ssl_conf
    - list_for_each_entry_safe
    - HA_SPIN_UNLOCK
    - free
    - ckch_inst_free
    linkageType: ''
    returnType: void
    signature: void cli_release_add_crtlist(struct appctx *appctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_crtlist.c:1227,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1228,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/ssl_crtlist.c:1244,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/ssl_crtlist.c:1249,1
    - Dst: ckch_inst_new_load_store
      Src: /src/haproxy/src/ssl_crtlist.c:1254,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1262,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_crtlist.c:1265,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:1274,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:1275,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1287,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1290,1
    - Dst: ssl_sock_load_cert_sni
      Src: /src/haproxy/src/ssl_crtlist.c:1291,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1292,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_crtlist.c:1299,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1300,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1302,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1303,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1304,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_crtlist.c:1311,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1312,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 88
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1210
    functionDepth: 8
    functionLinenumber: 1210
    functionLinenumberEnd: 1325
    functionName: cli_io_handler_add_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - ssl_sock_prep_ctx_and_inst
    - HA_RWLOCK_WRUNLOCK
    - applet_have_more_data
    - list_for_each_entry
    - chunk_printf
    - ssl_sock_load_cert_sni
    - chunk_reset
    - chunk_appendf
    - ckch_inst_new_load_store
    - LIST_APPEND
    - HA_RWLOCK_WRLOCK
    - applet_putstr
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_add_crtlist(struct appctx *appctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_crtlist.c:1335,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_crtlist.c:1349,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1353,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:1358,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1361,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1362,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1364,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1366,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1369,1
    - Dst: crtlist_entry_new
      Src: /src/haproxy/src/ssl_crtlist.c:1371,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1373,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_crtlist.c:1381,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1383,1
    - Dst: crtlist_parse_line
      Src: /src/haproxy/src/ssl_crtlist.c:1387,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1395,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:1401,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:1401,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1402,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1403,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1410,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1412,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1416,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_crtlist.c:1424,1
    - Dst: ckch_store_load_files
      Src: /src/haproxy/src/ssl_crtlist.c:1428,1
    - Dst: ckch_conf_cmp
      Src: /src/haproxy/src/ssl_crtlist.c:1432,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1433,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_crtlist.c:1440,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1442,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/ssl_crtlist.c:1447,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1448,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:1452,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:1454,1
    - Dst: ckch_conf_clean
      Src: /src/haproxy/src/ssl_crtlist.c:1464,1
    - Dst: crtlist_entry_free
      Src: /src/haproxy/src/ssl_crtlist.c:1465,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1466,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1467,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_crtlist.c:1468,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 102
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1333
    functionDepth: 6
    functionLinenumber: 1333
    functionLinenumberEnd: 1469
    functionName: cli_parse_add_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - memprintf
    - LIST_APPEND
    - applet_reserve_svcctx
    - ebmb_entry
    - crtlist_entry_new
    - ebpt_insert
    - crtlist_parse_line
    - snprintf
    - cli_dynerr
    - ebst_lookup
    - ckchs_lookup
    - ckch_conf_cmp
    - cli_has_level
    - cli_err
    - HA_SPIN_TRYLOCK
    - crtlist_entry_free
    - strrchr
    - ckch_conf_clean
    - eb_gettag
    - ckch_store_load_files
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_parse_add_crtlist(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_crtlist.c:1487,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1491,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1493,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1494,1
    - Dst: strchr
      Src: /src/haproxy/src/ssl_crtlist.c:1499,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_crtlist.c:1503,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1505,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:1512,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1516,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1518,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1521,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1524,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1526,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1530,1
    - Dst: ebpt_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1534,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1536,1
    - Dst: ebpt_next_dup
      Src: /src/haproxy/src/ssl_crtlist.c:1541,1
    - Dst: ebpt_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1544,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1545,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1556,1
    - Dst: ebpt_next_dup
      Src: /src/haproxy/src/ssl_crtlist.c:1561,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1562,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_crtlist.c:1568,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1571,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1574,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/ssl_crtlist.c:1582,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:1583,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:1584,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_crtlist.c:1586,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1589,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_crtlist.c:1590,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_crtlist.c:1591,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:1592,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_crtlist.c:1593,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:1594,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1596,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_crtlist.c:1597,1
    - Dst: crtlist_free_filters
      Src: /src/haproxy/src/ssl_crtlist.c:1600,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_crtlist.c:1601,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:1602,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:1603,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1605,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1606,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_crtlist.c:1607,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1610,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1611,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_crtlist.c:1612,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 101
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1472
    functionDepth: 5
    functionLinenumber: 1472
    functionLinenumberEnd: 1613
    functionName: cli_parse_del_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - memprintf
    - SSL_CTX_free
    - cli_dynmsg
    - HA_RWLOCK_WRUNLOCK
    - ebpt_delete
    - ebpt_entry
    - list_for_each_entry_safe
    - free
    - ebmb_entry
    - ckch_inst_free
    - ebpt_lookup
    - cli_dynerr
    - ebpt_next_dup
    - ebst_lookup
    - ckchs_lookup
    - strchr
    - strtol
    - cli_has_level
    - cli_err
    - HA_SPIN_TRYLOCK
    - crtlist_free_filters
    - ssl_sock_free_ssl_conf
    - HA_RWLOCK_WRLOCK
    - ebmb_delete
    - LIST_DELETE
    - HA_SPIN_UNLOCK
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_parse_del_crtlist(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_first
      Src: /src/haproxy/src/ssl_crtlist.c:1622,1
    - Dst: eb_next
      Src: /src/haproxy/src/ssl_crtlist.c:1624,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1625,1
    - Dst: crtlist_free
      Src: /src/haproxy/src/ssl_crtlist.c:1626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1617
    functionDepth: 6
    functionLinenumber: 1617
    functionLinenumberEnd: 1629
    functionName: crtlist_deinit
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 2
    functionsReached:
    - crtlist_free
    - eb_first
    - eb_next
    - ebmb_entry
    linkageType: ''
    returnType: void
    signature: void crtlist_deinit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_want_recv_safe
      Src: /src/haproxy/src/proto_sockpair.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: sockpair_enable_listener
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - fd_want_recv_safe
    linkageType: ''
    returnType: void
    signature: void sockpair_enable_listener(struct listener *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/proto_sockpair.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: sockpair_disable_listener
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    linkageType: ''
    returnType: void
    signature: void sockpair_disable_listener(struct listener *l)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_sockpair.c:145,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_sockpair.c:159,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_sockpair.c:165,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/proto_sockpair.c:169,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_sockpair.c:171,1
    - Dst: fd_insert
      Src: /src/haproxy/src/proto_sockpair.c:177,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_sockpair.c:182,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:188,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - rx
    - errmsg
    argTypes:
    - struct receiver*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 126
    functionDepth: 5
    functionLinenumber: 126
    functionLinenumberEnd: 190
    functionName: sockpair_bind_receiver
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - memprintf
    - BUG_ON
    - fd_insert
    - fd_set_nonblock
    - close
    linkageType: ''
    returnType: int
    signature: int sockpair_bind_receiver(struct receiver *rx, char **errmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: listener_set_state
      Src: /src/haproxy/src/proto_sockpair.c:217,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_sockpair.c:222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - listener
    - errmsg
    - errlen
    argTypes:
    - struct listener*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 224
    functionName: sockpair_bind_listener
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - listener_set_state
    - snprintf
    linkageType: ''
    returnType: int
    signature: int sockpair_bind_listener(struct listener *listener, char *errmsg,
      int errlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/proto_sockpair.c:240,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/proto_sockpair.c:241,1
    - Dst: memset
      Src: /src/haproxy/src/proto_sockpair.c:246,1
    - Dst: memset
      Src: /src/haproxy/src/proto_sockpair.c:247,1
    - Dst: memset
      Src: /src/haproxy/src/proto_sockpair.c:252,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/proto_sockpair.c:258,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/proto_sockpair.c:260,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/proto_sockpair.c:261,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/proto_sockpair.c:265,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_sockpair.c:266,1
    - Dst: sendmsg
      Src: /src/haproxy/src/proto_sockpair.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - send_fd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 273
    functionName: send_fd_uxst
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 1
    functionsReached:
    - memset
    - memcpy
    - CMSG_LEN
    - CMSG_FIRSTHDR
    - CMSG_SPACE
    - sendmsg
    - CMSG_DATA
    linkageType: ''
    returnType: int
    signature: int send_fd_uxst(int fd, int send_fd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_sockpair.c:306,1
    - Dst: obj_type
      Src: /src/haproxy/src/proto_sockpair.c:311,1
    - Dst: obj_type
      Src: /src/haproxy/src/proto_sockpair.c:312,1
    - Dst: socketpair
      Src: /src/haproxy/src/proto_sockpair.c:317,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_sockpair.c:318,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_sockpair.c:329,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:330,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:331,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/proto_sockpair.c:337,1
    - Dst: qfprintf
      Src: /src/haproxy/src/proto_sockpair.c:338,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:339,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:340,1
    - Dst: fd_set_cloexec
      Src: /src/haproxy/src/proto_sockpair.c:346,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_sockpair.c:347,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:348,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:349,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_sockpair.c:356,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_sockpair.c:359,1
    - Dst: send_fd_uxst
      Src: /src/haproxy/src/proto_sockpair.c:363,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_sockpair.c:364,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:365,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:366,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:372,1
    - Dst: conn_ctrl_init
      Src: /src/haproxy/src/proto_sockpair.c:380,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/proto_sockpair.c:381,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 2
    argNames:
    - conn
    - flags
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 384
    functionName: sockpair_connect_server
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - fd_set_cloexec
    - send_fd_uxst
    - BUG_ON
    - setsockopt
    - socketpair
    - fd_set_nonblock
    - HA_ATOMIC_AND
    - ha_alert
    - conn_ctrl_init
    - obj_type
    - qfprintf
    - close
    linkageType: ''
    returnType: int
    signature: int sockpair_connect_server(struct connection *conn, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/proto_sockpair.c:400,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/proto_sockpair.c:401,1
    - Dst: memset
      Src: /src/haproxy/src/proto_sockpair.c:408,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/proto_sockpair.c:417,1
    - Dst: recvmsg
      Src: /src/haproxy/src/proto_sockpair.c:423,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/proto_sockpair.c:433,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/proto_sockpair.c:437,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_sockpair.c:438,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/proto_sockpair.c:438,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 441
    functionName: recv_fd_uxst
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - CMSG_FIRSTHDR
    - CMSG_DATA
    - recvmsg
    - CMSG_SPACE
    - CMSG_LEN
    linkageType: ''
    returnType: int
    signature: int recv_fd_uxst(int sock)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_sockpair.c:456,1
    - Dst: getsockname
      Src: /src/haproxy/src/proto_sockpair.c:463,1
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_sockpair.c:470,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 478
    functionName: sockpair_accepting_conn
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - getsockname
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int sockpair_accepting_conn(const struct receiver *rx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: recv_fd_uxst
      Src: /src/haproxy/src/proto_sockpair.c:491,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/proto_sockpair.c:492,1
    - Dst: fd_set_cloexec
      Src: /src/haproxy/src/proto_sockpair.c:494,1
    - Dst: likely
      Src: /src/haproxy/src/proto_sockpair.c:497,1
    - Dst: conn_new
      Src: /src/haproxy/src/proto_sockpair.c:499,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/proto_sockpair.c:503,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/proto_sockpair.c:525,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/proto_sockpair.c:528,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_sockpair.c:543,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_sockpair.c:551,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_sockpair.c:560,1
    - Dst: conn_free
      Src: /src/haproxy/src/proto_sockpair.c:576,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 2
    argNames:
    - l
    - status
    argTypes:
    - struct listener*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 484
    functionDepth: 10
    functionLinenumber: 484
    functionLinenumberEnd: 581
    functionName: sockpair_accept_conn
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - sockaddr_alloc
    - fd_set_cloexec
    - conn_free
    - _HA_ATOMIC_AND
    - likely
    - fd_set_nonblock
    - recv_fd_uxst
    - conn_new
    - send_log
    - fd_cant_recv
    linkageType: ''
    returnType: struct connection
    signature: struct connection *sockpair_accept_conn(struct listener *l, int *status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:48,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:55,1
    - Dst: isdigit
      Src: /src/haproxy/src/http_ext.c:56,1
    - Dst: istadv
      Src: /src/haproxy/src/http_ext.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - input
    - port
    argTypes:
    - struct ist*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: http_7239_extract_port
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - isdigit
    - istadv
    - istlen
    - istptr
    linkageType: ''
    returnType: int
    signature: int http_7239_extract_port(struct ist *input, uint16_t *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/haproxy/src/http_ext.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: http_7239_valid_obfsc
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: int
    signature: int http_7239_valid_obfsc(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:95,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:95,1
    - Dst: http_7239_valid_obfsc
      Src: /src/haproxy/src/http_ext.c:96,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:96,1
    - Dst: istadv
      Src: /src/haproxy/src/http_ext.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - input
    - obfs
    argTypes:
    - struct ist*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: http_7239_extract_obfs
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - istadv
    - istlen
    - http_7239_valid_obfsc
    - istptr
    linkageType: ''
    returnType: int
    signature: int http_7239_extract_obfs(struct ist *input, struct ist *obfs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:124,1
    - Dst: isdigit
      Src: /src/haproxy/src/http_ext.c:125,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:125,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:126,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:128,1
    - Dst: inet_pton
      Src: /src/haproxy/src/http_ext.c:132,1
    - Dst: istadv
      Src: /src/haproxy/src/http_ext.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - input
    - ip
    argTypes:
    - struct ist*
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 137
    functionName: http_7239_extract_ipv4
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - istadv
    - isdigit
    - istptr
    - istlen
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int http_7239_extract_ipv4(struct ist *input, struct in_addr *ip)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: istnext
      Src: /src/haproxy/src/http_ext.c:157,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:159,1
    - Dst: isalnum
      Src: /src/haproxy/src/http_ext.c:161,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:161,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:162,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:164,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:168,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:168,1
    - Dst: inet_pton
      Src: /src/haproxy/src/http_ext.c:171,1
    - Dst: istadv
      Src: /src/haproxy/src/http_ext.c:174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - input
    - ip
    argTypes:
    - struct ist*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 176
    functionName: http_7239_extract_ipv6
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - istadv
    - istnext
    - istptr
    - istlen
    - isalnum
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int http_7239_extract_ipv6(struct ist *input, struct in6_addr *ip)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:190,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:196,1
    - Dst: http_7239_extract_ipv6
      Src: /src/haproxy/src/http_ext.c:198,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:203,1
    - Dst: isalnum
      Src: /src/haproxy/src/http_ext.c:204,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:204,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:205,1
    - Dst: istnext
      Src: /src/haproxy/src/http_ext.c:207,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:210,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:210,1
    - Dst: istnext
      Src: /src/haproxy/src/http_ext.c:215,1
    - Dst: http_7239_extract_port
      Src: /src/haproxy/src/http_ext.c:217,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 3
    argNames:
    - input
    - host
    - quoted
    argTypes:
    - struct ist*
    - struct ist*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 223
    functionName: http_7239_extract_host
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - http_7239_extract_ipv6
    - istnext
    - istptr
    - http_7239_extract_port
    - istlen
    - isalnum
    linkageType: ''
    returnType: int
    signature: int http_7239_extract_host(struct ist *input, struct ist *host, int
      quoted)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:237,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:239,1
    - Dst: istnext
      Src: /src/haproxy/src/http_ext.c:243,1
    - Dst: http_7239_extract_obfs
      Src: /src/haproxy/src/http_ext.c:248,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:250,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:252,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_ext.c:253,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:253,1
    - Dst: istadv
      Src: /src/haproxy/src/http_ext.c:255,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:258,1
    - Dst: http_7239_extract_ipv6
      Src: /src/haproxy/src/http_ext.c:269,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:271,1
    - Dst: http_7239_extract_ipv4
      Src: /src/haproxy/src/http_ext.c:282,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - input
    - nodename
    - quoted
    argTypes:
    - struct ist*
    - struct forwarded_header_nodename*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 289
    functionName: http_7239_extract_nodename
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - http_7239_extract_ipv6
    - istadv
    - strncmp
    - http_7239_extract_ipv4
    - http_7239_extract_obfs
    - istnext
    - istptr
    - istlen
    linkageType: ''
    returnType: int
    signature: int http_7239_extract_nodename(struct ist *input, struct forwarded_header_nodename
      *nodename, int quoted)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:303,1
    - Dst: istnext
      Src: /src/haproxy/src/http_ext.c:307,1
    - Dst: http_7239_extract_obfs
      Src: /src/haproxy/src/http_ext.c:312,1
    - Dst: http_7239_extract_port
      Src: /src/haproxy/src/http_ext.c:322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - input
    - nodeport
    argTypes:
    - struct ist*
    - struct forwarded_header_nodeport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 327
    functionName: http_7239_extract_nodeport
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - http_7239_extract_port
    - http_7239_extract_obfs
    - istnext
    - istptr
    linkageType: ''
    returnType: int
    signature: int http_7239_extract_nodeport(struct ist *input, struct forwarded_header_nodeport
      *nodeport)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: http_7239_extract_nodename
      Src: /src/haproxy/src/http_ext.c:349,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:351,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:351,1
    - Dst: istnext
      Src: /src/haproxy/src/http_ext.c:358,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:359,1
    - Dst: http_7239_extract_nodeport
      Src: /src/haproxy/src/http_ext.c:359,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - input
    - node
    - quoted
    argTypes:
    - struct ist*
    - struct forwarded_header_node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 366
    functionName: http_7239_extract_node
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - http_7239_extract_nodeport
    - istnext
    - istptr
    - http_7239_extract_nodename
    - istlen
    linkageType: ''
    returnType: int
    signature: int http_7239_extract_node(struct ist *input, struct forwarded_header_node
      *node, int quoted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - current_step
    - required_steps
    argTypes:
    - struct forwarded_header_ctx*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: _forwarded_header_save_ctx
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _forwarded_header_save_ctx(struct forwarded_header_ctx *ctx, int
      current_step, int required_steps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:375,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:375,1
    - Dst: istnext
      Src: /src/haproxy/src/http_ext.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - hdr
    - quoted
    argTypes:
    - struct ist*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 382
    functionName: _forwarded_header_quote_expected
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - istlen
    - istnext
    - istptr
    linkageType: ''
    returnType: void
    signature: void _forwarded_header_quote_expected(struct ist *hdr, uint8_t *quoted)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:400,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:402,1
    - Dst: istnext
      Src: /src/haproxy/src/http_ext.c:403,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:410,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_ext.c:411,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:411,1
    - Dst: istadv
      Src: /src/haproxy/src/http_ext.c:416,1
    - Dst: _forwarded_header_quote_expected
      Src: /src/haproxy/src/http_ext.c:417,1
    - Dst: _forwarded_header_save_ctx
      Src: /src/haproxy/src/http_ext.c:418,1
    - Dst: http_7239_extract_node
      Src: /src/haproxy/src/http_ext.c:421,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:424,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_ext.c:425,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:425,1
    - Dst: istadv
      Src: /src/haproxy/src/http_ext.c:430,1
    - Dst: _forwarded_header_quote_expected
      Src: /src/haproxy/src/http_ext.c:431,1
    - Dst: _forwarded_header_save_ctx
      Src: /src/haproxy/src/http_ext.c:432,1
    - Dst: http_7239_extract_node
      Src: /src/haproxy/src/http_ext.c:435,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:438,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_ext.c:439,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:439,1
    - Dst: istadv
      Src: /src/haproxy/src/http_ext.c:444,1
    - Dst: _forwarded_header_quote_expected
      Src: /src/haproxy/src/http_ext.c:445,1
    - Dst: _forwarded_header_save_ctx
      Src: /src/haproxy/src/http_ext.c:446,1
    - Dst: http_7239_extract_host
      Src: /src/haproxy/src/http_ext.c:449,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:452,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_ext.c:453,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:453,1
    - Dst: istadv
      Src: /src/haproxy/src/http_ext.c:456,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:458,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_ext.c:458,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:458,1
    - Dst: istadv
      Src: /src/haproxy/src/http_ext.c:460,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:461,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:461,1
    - Dst: istnext
      Src: /src/haproxy/src/http_ext.c:462,1
    - Dst: _forwarded_header_save_ctx
      Src: /src/haproxy/src/http_ext.c:463,1
    - Dst: _forwarded_header_save_ctx
      Src: /src/haproxy/src/http_ext.c:465,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:482,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ext.c:482,1
    - Dst: istnext
      Src: /src/haproxy/src/http_ext.c:486,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 71
    argCount: 3
    argNames:
    - hdr
    - required_steps
    - ctx
    argTypes:
    - struct ist
    - int
    - struct forwarded_header_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 393
    functionDepth: 4
    functionLinenumber: 393
    functionLinenumberEnd: 496
    functionName: http_validate_7239_header
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - istadv
    - _forwarded_header_quote_expected
    - http_7239_extract_host
    - http_7239_extract_node
    - strncmp
    - _forwarded_header_save_ctx
    - istnext
    - istptr
    - istlen
    linkageType: ''
    returnType: int
    signature: int http_validate_7239_header(struct ist hdr, int required_steps, struct
      forwarded_header_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/haproxy/src/http_ext.c:502,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:506,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - ip6_addr
    - quoted
    argTypes:
    - struct buffer*
    - struct in6_addr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 508
    functionName: _7239_print_ip6
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void _7239_print_ip6(struct buffer *out, struct in6_addr *ip6_addr,
      int quoted)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:522,1
    - Dst: _7239_print_ip6
      Src: /src/haproxy/src/http_ext.c:526,1
    - Dst: sample_process
      Src: /src/haproxy/src/http_ext.c:533,1
    - Dst: _7239_print_ip6
      Src: /src/haproxy/src/http_ext.c:540,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:544,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:545,1
    - Dst: http_7239_extract_nodename
      Src: /src/haproxy/src/http_ext.c:549,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:550,1
    - Dst: _7239_print_ip6
      Src: /src/haproxy/src/http_ext.c:555,1
    - Dst: chunk_cat
      Src: /src/haproxy/src/http_ext.c:560,1
    - Dst: http_7239_extract_obfs
      Src: /src/haproxy/src/http_ext.c:563,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:564,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:566,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 5
    argNames:
    - out
    - s
    - curproxy
    - addr
    - forby
    argTypes:
    - struct buffer*
    - struct stream*
    - struct proxy*
    - struct sockaddr_storage*
    - struct http_ext_7239_forby*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 574
    functionName: http_build_7239_header_nodename
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - sample_process
    - ist2
    - chunk_appendf
    - chunk_cat
    - http_7239_extract_obfs
    - http_7239_extract_nodename
    - _7239_print_ip6
    - istlen
    linkageType: ''
    returnType: void
    signature: "void http_build_7239_header_nodename(struct buffer *out,\n                                                   struct
      stream *s, struct proxy *curproxy,\n                                                   const
      struct sockaddr_storage *addr,\n                                                   struct
      http_ext_7239_forby *forby)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:583,1
    - Dst: ntohs
      Src: /src/haproxy/src/http_ext.c:583,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:585,1
    - Dst: ntohs
      Src: /src/haproxy/src/http_ext.c:585,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_ext.c:591,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:594,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:595,1
    - Dst: http_7239_extract_nodeport
      Src: /src/haproxy/src/http_ext.c:598,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:599,1
    - Dst: chunk_cat
      Src: /src/haproxy/src/http_ext.c:603,1
    - Dst: http_7239_extract_obfs
      Src: /src/haproxy/src/http_ext.c:605,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:606,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:608,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 5
    argNames:
    - out
    - s
    - curproxy
    - addr
    - forby
    argTypes:
    - struct buffer*
    - struct stream*
    - struct proxy*
    - struct sockaddr_storage*
    - struct http_ext_7239_forby*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 576
    functionDepth: 4
    functionLinenumber: 576
    functionLinenumberEnd: 614
    functionName: http_build_7239_header_nodeport
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - ist2
    - http_7239_extract_nodeport
    - istlen
    - chunk_appendf
    - chunk_cat
    - http_7239_extract_obfs
    - ntohs
    - sample_fetch_as_type
    linkageType: ''
    returnType: void
    signature: "void http_build_7239_header_nodeport(struct buffer *out,\n                                                   struct
      stream *s, struct proxy *curproxy,\n                                                   const
      struct sockaddr_storage *addr,\n                                                   struct
      http_ext_7239_forby *forby)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:626,1
    - Dst: http_build_7239_header_nodename
      Src: /src/haproxy/src/http_ext.c:628,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:633,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:636,1
    - Dst: http_build_7239_header_nodeport
      Src: /src/haproxy/src/http_ext.c:638,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:647,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - out
    - s
    - curproxy
    - addr
    - forby
    argTypes:
    - struct buffer*
    - struct stream*
    - struct proxy*
    - struct sockaddr_storage*
    - struct http_ext_7239_forby*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 616
    functionDepth: 5
    functionLinenumber: 616
    functionLinenumberEnd: 648
    functionName: http_build_7239_header_node
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - http_build_7239_header_nodeport
    - http_build_7239_header_nodename
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void http_build_7239_header_node(struct buffer *out,\n                                               struct
      stream *s, struct proxy *curproxy,\n                                               const
      struct sockaddr_storage *addr,\n                                               struct
      http_ext_7239_forby *forby)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ext.c:659,1
    - Dst: ist
      Src: /src/haproxy/src/http_ext.c:659,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:664,1
    - Dst: http_7239_extract_host
      Src: /src/haproxy/src/http_ext.c:668,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:668,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ext.c:669,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_ext.c:677,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 5
    argNames:
    - out
    - s
    - curproxy
    - htx
    - host
    argTypes:
    - struct buffer*
    - struct stream*
    - struct proxy*
    - struct htx*
    - struct http_ext_7239_host*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 650
    functionDepth: 4
    functionLinenumber: 650
    functionLinenumberEnd: 686
    functionName: http_build_7239_header_host
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - ist2
    - ist
    - http_7239_extract_host
    - http_find_header
    - chunk_memcat
    - istlen
    - sample_fetch_as_type
    linkageType: ''
    returnType: void
    signature: "void http_build_7239_header_host(struct buffer *out,\n                                               struct
      stream *s, struct proxy *curproxy,\n                                               struct
      htx *htx, struct http_ext_7239_host *host)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/http_ext.c:697,1
    - Dst: strm_sess
      Src: /src/haproxy/src/http_ext.c:697,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:700,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/http_ext.c:701,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:705,1
    - Dst: http_build_7239_header_host
      Src: /src/haproxy/src/http_ext.c:707,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:708,1
    - Dst: sc_dst
      Src: /src/haproxy/src/http_ext.c:712,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:714,1
    - Dst: http_build_7239_header_node
      Src: /src/haproxy/src/http_ext.c:715,1
    - Dst: sc_src
      Src: /src/haproxy/src/http_ext.c:719,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:721,1
    - Dst: http_build_7239_header_node
      Src: /src/haproxy/src/http_ext.c:722,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ext.c:724,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - out
    - s
    - curproxy
    - htx
    argTypes:
    - struct buffer*
    - struct stream*
    - struct proxy*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 694
    functionDepth: 6
    functionLinenumber: 694
    functionLinenumberEnd: 729
    functionName: http_build_7239_header
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - unlikely
    - http_build_7239_header_host
    - strm_sess
    - chunk_appendf
    - objt_conn
    - http_build_7239_header_node
    - sc_src
    - conn_is_ssl
    - sc_dst
    linkageType: ''
    returnType: int
    signature: "int http_build_7239_header(struct buffer *out,\n                                  struct
      stream *s, struct proxy *curproxy, struct htx *htx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ext.c:741,1
    - Dst: ist
      Src: /src/haproxy/src/http_ext.c:745,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/http_ext.c:748,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ext.c:749,1
    - Dst: http_build_7239_header
      Src: /src/haproxy/src/http_ext.c:749,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ext.c:755,1
    - Dst: http_validate_7239_header
      Src: /src/haproxy/src/http_ext.c:757,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ext.c:768,1
    - Dst: http_append_header_value
      Src: /src/haproxy/src/http_ext.c:768,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:768,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ext.c:772,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ext.c:772,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:772,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - s
    - req
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 736
    functionDepth: 7
    functionLinenumber: 736
    functionLinenumberEnd: 777
    functionName: http_handle_7239_header
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 1
    functionsReached:
    - unlikely
    - ist
    - htxbuf
    - ist2
    - http_validate_7239_header
    - http_append_header_value
    - http_build_7239_header
    - http_find_header
    - chunk_reset
    - http_add_header
    linkageType: ''
    returnType: int
    signature: int http_handle_7239_header(struct stream *s, struct channel *req)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ext.c:800,1
    - Dst: sc_src
      Src: /src/haproxy/src/http_ext.c:801,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ext.c:807,1
    - Dst: ipcmp2net
      Src: /src/haproxy/src/http_ext.c:816,1
    - Dst: ipcmp2net
      Src: /src/haproxy/src/http_ext.c:817,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ext.c:825,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ext.c:826,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ext.c:826,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:826,1
    - Dst: ipcmp2net
      Src: /src/haproxy/src/http_ext.c:834,1
    - Dst: ipcmp2net
      Src: /src/haproxy/src/http_ext.c:835,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/http_ext.c:838,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ext.c:847,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ext.c:848,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ext.c:848,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:848,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 27
    argCount: 2
    argNames:
    - s
    - req
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 854
    functionName: http_handle_xff_header
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 1
    functionsReached:
    - unlikely
    - ist2
    - htxbuf
    - chunk_printf
    - http_find_header
    - sc_src
    - inet_ntop
    - ipcmp2net
    - http_add_header
    linkageType: ''
    returnType: int
    signature: int http_handle_xff_header(struct stream *s, struct channel *req)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ext.c:877,1
    - Dst: sc_dst
      Src: /src/haproxy/src/http_ext.c:878,1
    - Dst: ipcmp2net
      Src: /src/haproxy/src/http_ext.c:885,1
    - Dst: ipcmp2net
      Src: /src/haproxy/src/http_ext.c:886,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ext.c:894,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ext.c:895,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ext.c:895,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:895,1
    - Dst: ipcmp2net
      Src: /src/haproxy/src/http_ext.c:903,1
    - Dst: ipcmp2net
      Src: /src/haproxy/src/http_ext.c:904,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/http_ext.c:907,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ext.c:916,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ext.c:917,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ext.c:917,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:917,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 25
    argCount: 2
    argNames:
    - s
    - req
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 861
    functionDepth: 3
    functionLinenumber: 861
    functionLinenumberEnd: 923
    functionName: http_handle_xot_header
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 1
    functionsReached:
    - unlikely
    - ist2
    - htxbuf
    - chunk_printf
    - inet_ntop
    - sc_dst
    - ipcmp2net
    - http_add_header
    linkageType: ''
    returnType: int
    signature: int http_handle_xot_header(struct stream *s, struct channel *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ext.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - file
    - linenum
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 936
    functionName: proxy_http_parse_oom
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int proxy_http_parse_oom(const char *file, int linenum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ext.c:945,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:951,1
    - Dst: strdup
      Src: /src/haproxy/src/http_ext.c:952,1
    - Dst: proxy_http_parse_oom
      Src: /src/haproxy/src/http_ext.c:954,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - args
    - cur_arg
    - file
    - linenum
    - expr_s
    argTypes:
    - char**
    - int*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 938
    functionDepth: 2
    functionLinenumber: 938
    functionLinenumberEnd: 958
    functionName: _proxy_http_parse_7239_expr
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - ha_free
    - proxy_http_parse_oom
    - ha_alert
    - strdup
    linkageType: ''
    returnType: int
    signature: "int _proxy_http_parse_7239_expr(char **args, int *cur_arg,\n                                              const
      char *file, int linenum,\n                                              char
      **expr_s)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/http_ext.c:970,1
    - Dst: http_ext_7239_prepare
      Src: /src/haproxy/src/http_ext.c:976,1
    - Dst: proxy_http_parse_oom
      Src: /src/haproxy/src/http_ext.c:977,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:987,1
    - Dst: strdup
      Src: /src/haproxy/src/http_ext.c:988,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1001,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1004,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1007,1
    - Dst: _proxy_http_parse_7239_expr
      Src: /src/haproxy/src/http_ext.c:1009,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1013,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1016,1
    - Dst: _proxy_http_parse_7239_expr
      Src: /src/haproxy/src/http_ext.c:1018,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1022,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1025,1
    - Dst: _proxy_http_parse_7239_expr
      Src: /src/haproxy/src/http_ext.c:1027,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1031,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1034,1
    - Dst: _proxy_http_parse_7239_expr
      Src: /src/haproxy/src/http_ext.c:1036,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1040,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1043,1
    - Dst: _proxy_http_parse_7239_expr
      Src: /src/haproxy/src/http_ext.c:1045,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ext.c:1051,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1064,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_ext.c:1065,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1074,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_ext.c:1075,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 106
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curproxy
    - defpx
    - file
    - linenum
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 963
    functionDepth: 3
    functionLinenumber: 963
    functionLinenumberEnd: 1084
    functionName: proxy_http_parse_7239
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 1
    functionsReached:
    - ha_free
    - strcmp
    - http_ext_7239_prepare
    - proxy_http_parse_oom
    - ha_alert
    - ha_warning
    - _proxy_http_parse_7239_expr
    - warnifnotcap
    - strdup
    linkageType: ''
    returnType: int
    signature: "int proxy_http_parse_7239(char **args, int cur_arg,\n                          struct
      proxy *curproxy, const struct proxy *defpx,\n                          const
      char *file, int linenum)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_ext.c:1102,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_ext.c:1156,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ext.c:1160,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/http_ext.c:1161,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/http_ext.c:1169,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ext.c:1175,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/http_ext.c:1176,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1179,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_ext.c:1188,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/http_ext.c:1191,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/http_ext.c:1193,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1197,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1206,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1090
    functionDepth: 7
    functionLinenumber: 1090
    functionLinenumberEnd: 1213
    functionName: proxy_http_compile_7239
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - BUG_ON
    - ha_free
    - sample_ckp_names
    - ha_alert
    - ha_warning
    - sample_parse_expr
    linkageType: ''
    returnType: int
    signature: int proxy_http_compile_7239(struct proxy *curproxy)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: http_ext_xff_prepare
      Src: /src/haproxy/src/http_ext.c:1225,1
    - Dst: proxy_http_parse_oom
      Src: /src/haproxy/src/http_ext.c:1226,1
    - Dst: istfree
      Src: /src/haproxy/src/http_ext.c:1236,1
    - Dst: istdup
      Src: /src/haproxy/src/http_ext.c:1237,1
    - Dst: ist
      Src: /src/haproxy/src/http_ext.c:1237,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ext.c:1238,1
    - Dst: proxy_http_parse_oom
      Src: /src/haproxy/src/http_ext.c:1239,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1245,1
    - Dst: str2net
      Src: /src/haproxy/src/http_ext.c:1251,1
    - Dst: str62net
      Src: /src/haproxy/src/http_ext.c:1256,1
    - Dst: len2mask6
      Src: /src/haproxy/src/http_ext.c:1258,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ext.c:1263,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1270,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ext.c:1273,1
    - Dst: istfree
      Src: /src/haproxy/src/http_ext.c:1278,1
    - Dst: istdup
      Src: /src/haproxy/src/http_ext.c:1279,1
    - Dst: ist
      Src: /src/haproxy/src/http_ext.c:1279,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ext.c:1280,1
    - Dst: proxy_http_parse_oom
      Src: /src/haproxy/src/http_ext.c:1281,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1283,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ext.c:1288,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curproxy
    - defpx
    - file
    - linenum
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1218
    functionDepth: 4
    functionLinenumber: 1218
    functionLinenumberEnd: 1296
    functionName: proxy_http_parse_xff
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 1
    functionsReached:
    - ist
    - str2net
    - istfree
    - strcmp
    - http_ext_xff_prepare
    - proxy_http_parse_oom
    - istdup
    - ha_alert
    - len2mask6
    - str62net
    - isttest
    linkageType: ''
    returnType: int
    signature: "int proxy_http_parse_xff(char **args, int cur_arg,\n                         struct
      proxy *curproxy, const struct proxy *defpx,\n                         const
      char *file, int linenum)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: http_ext_xot_prepare
      Src: /src/haproxy/src/http_ext.c:1308,1
    - Dst: proxy_http_parse_oom
      Src: /src/haproxy/src/http_ext.c:1309,1
    - Dst: istfree
      Src: /src/haproxy/src/http_ext.c:1317,1
    - Dst: istdup
      Src: /src/haproxy/src/http_ext.c:1318,1
    - Dst: ist
      Src: /src/haproxy/src/http_ext.c:1318,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ext.c:1319,1
    - Dst: proxy_http_parse_oom
      Src: /src/haproxy/src/http_ext.c:1320,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1326,1
    - Dst: str2net
      Src: /src/haproxy/src/http_ext.c:1332,1
    - Dst: str62net
      Src: /src/haproxy/src/http_ext.c:1337,1
    - Dst: len2mask6
      Src: /src/haproxy/src/http_ext.c:1339,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ext.c:1344,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1350,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ext.c:1353,1
    - Dst: istfree
      Src: /src/haproxy/src/http_ext.c:1358,1
    - Dst: istdup
      Src: /src/haproxy/src/http_ext.c:1359,1
    - Dst: ist
      Src: /src/haproxy/src/http_ext.c:1359,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ext.c:1360,1
    - Dst: proxy_http_parse_oom
      Src: /src/haproxy/src/http_ext.c:1361,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ext.c:1365,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curproxy
    - defpx
    - file
    - linenum
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1301
    functionDepth: 4
    functionLinenumber: 1301
    functionLinenumberEnd: 1374
    functionName: proxy_http_parse_xot
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 1
    functionsReached:
    - ist
    - str2net
    - istfree
    - strcmp
    - proxy_http_parse_oom
    - istdup
    - ha_alert
    - http_ext_xot_prepare
    - len2mask6
    - str62net
    - isttest
    linkageType: ''
    returnType: int
    signature: "int proxy_http_parse_xot(char **args, int cur_arg,\n                         struct
      proxy *curproxy, const struct proxy *defpx,\n                         const
      char *file, int linenum)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_ext_prepare
      Src: /src/haproxy/src/http_ext.c:1391,1
    - Dst: malloc
      Src: /src/haproxy/src/http_ext.c:1396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1387
    functionDepth: 1
    functionLinenumber: 1387
    functionLinenumberEnd: 1410
    functionName: http_ext_7239_prepare
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 1
    functionsReached:
    - malloc
    - http_ext_prepare
    linkageType: ''
    returnType: int
    signature: int http_ext_7239_prepare(struct proxy *curproxy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_ext_prepare
      Src: /src/haproxy/src/http_ext.c:1422,1
    - Dst: malloc
      Src: /src/haproxy/src/http_ext.c:1427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1435
    functionName: http_ext_xff_prepare
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 1
    functionsReached:
    - malloc
    - http_ext_prepare
    linkageType: ''
    returnType: int
    signature: int http_ext_xff_prepare(struct proxy *curproxy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_ext_prepare
      Src: /src/haproxy/src/http_ext.c:1447,1
    - Dst: malloc
      Src: /src/haproxy/src/http_ext.c:1452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1460
    functionName: http_ext_xot_prepare
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 1
    functionsReached:
    - malloc
    - http_ext_prepare
    linkageType: ''
    returnType: int
    signature: int http_ext_xot_prepare(struct proxy *curproxy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1482,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1483,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1484,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1485,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1486,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1487,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_ext.c:1491,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_ext.c:1493,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_ext.c:1495,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_ext.c:1497,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_ext.c:1499,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1471
    functionDepth: 5
    functionLinenumber: 1471
    functionLinenumberEnd: 1504
    functionName: http_ext_7239_clean
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 1
    functionsReached:
    - ha_free
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void http_ext_7239_clean(struct proxy *curproxy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: istfree
      Src: /src/haproxy/src/http_ext.c:1518,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1509
    functionDepth: 1
    functionLinenumber: 1509
    functionLinenumberEnd: 1521
    functionName: http_ext_xff_clean
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - ha_free
    - istfree
    linkageType: ''
    returnType: void
    signature: void http_ext_xff_clean(struct proxy *curproxy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: istfree
      Src: /src/haproxy/src/http_ext.c:1535,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1526
    functionDepth: 1
    functionLinenumber: 1526
    functionLinenumberEnd: 1538
    functionName: http_ext_xot_clean
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - ha_free
    - istfree
    linkageType: ''
    returnType: void
    signature: void http_ext_xot_clean(struct proxy *curproxy)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: http_ext_7239_prepare
      Src: /src/haproxy/src/http_ext.c:1560,1
    - Dst: strdup
      Src: /src/haproxy/src/http_ext.c:1566,1
    - Dst: strdup
      Src: /src/haproxy/src/http_ext.c:1573,1
    - Dst: strdup
      Src: /src/haproxy/src/http_ext.c:1577,1
    - Dst: strdup
      Src: /src/haproxy/src/http_ext.c:1581,1
    - Dst: strdup
      Src: /src/haproxy/src/http_ext.c:1585,1
    - Dst: strdup
      Src: /src/haproxy/src/http_ext.c:1589,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - def
    - cpy
    argTypes:
    - struct proxy*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1543
    functionDepth: 2
    functionLinenumber: 1543
    functionLinenumberEnd: 1590
    functionName: http_ext_7239_dup
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - http_ext_7239_prepare
    - strdup
    linkageType: ''
    returnType: void
    signature: void http_ext_7239_dup(const struct proxy *def, struct proxy *cpy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_ext_xff_prepare
      Src: /src/haproxy/src/http_ext.c:1601,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ext.c:1607,1
    - Dst: istdup
      Src: /src/haproxy/src/http_ext.c:1608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - def
    - cpy
    argTypes:
    - struct proxy*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1611
    functionName: http_ext_xff_dup
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - istdup
    - http_ext_xff_prepare
    - isttest
    linkageType: ''
    returnType: void
    signature: void http_ext_xff_dup(const struct proxy *def, struct proxy *cpy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_ext_xot_prepare
      Src: /src/haproxy/src/http_ext.c:1622,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ext.c:1628,1
    - Dst: istdup
      Src: /src/haproxy/src/http_ext.c:1629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - def
    - cpy
    argTypes:
    - struct proxy*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1616
    functionDepth: 2
    functionLinenumber: 1616
    functionLinenumberEnd: 1631
    functionName: http_ext_xot_dup
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - istdup
    - isttest
    - http_ext_xot_prepare
    linkageType: ''
    returnType: void
    signature: void http_ext_xot_dup(const struct proxy *def, struct proxy *cpy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/http_ext.c:1642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1637
    functionDepth: 0
    functionLinenumber: 1637
    functionLinenumberEnd: 1650
    functionName: http_ext_prepare
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 3
    functionsReached:
    - malloc
    linkageType: ''
    returnType: int
    signature: int http_ext_prepare(struct proxy *curproxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_ext_7239_dup
      Src: /src/haproxy/src/http_ext.c:1657,1
    - Dst: http_ext_xff_dup
      Src: /src/haproxy/src/http_ext.c:1658,1
    - Dst: http_ext_xot_dup
      Src: /src/haproxy/src/http_ext.c:1659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - defproxy
    - curproxy
    argTypes:
    - struct proxy*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1654
    functionDepth: 3
    functionLinenumber: 1654
    functionLinenumberEnd: 1660
    functionName: http_ext_dup
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - http_ext_xot_dup
    - http_ext_xff_dup
    - http_ext_7239_dup
    linkageType: ''
    returnType: void
    signature: void http_ext_dup(const struct proxy *defproxy, struct proxy *curproxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_ext_7239_clean
      Src: /src/haproxy/src/http_ext.c:1669,1
    - Dst: http_ext_xff_clean
      Src: /src/haproxy/src/http_ext.c:1670,1
    - Dst: http_ext_xot_clean
      Src: /src/haproxy/src/http_ext.c:1671,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_ext.c:1674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1664
    functionDepth: 6
    functionLinenumber: 1664
    functionLinenumberEnd: 1675
    functionName: http_ext_clean
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - ha_free
    - http_ext_7239_clean
    - http_ext_xff_clean
    - http_ext_xot_clean
    linkageType: ''
    returnType: void
    signature: void http_ext_clean(struct proxy *curproxy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_ext_clean
      Src: /src/haproxy/src/http_ext.c:1686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1678
    functionDepth: 7
    functionLinenumber: 1678
    functionLinenumberEnd: 1688
    functionName: http_ext_softclean
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - http_ext_clean
    linkageType: ''
    returnType: void
    signature: void http_ext_softclean(struct proxy *curproxy)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/http_ext.c:1704,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/http_ext.c:1705,1
    - Dst: http_ext_7239_clean
      Src: /src/haproxy/src/http_ext.c:1707,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_ext.c:1710,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/http_ext.c:1711,1
    - Dst: http_ext_xff_clean
      Src: /src/haproxy/src/http_ext.c:1713,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_ext.c:1716,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/http_ext.c:1717,1
    - Dst: http_ext_xot_clean
      Src: /src/haproxy/src/http_ext.c:1719,1
    - Dst: proxy_http_compile_7239
      Src: /src/haproxy/src/http_ext.c:1723,1
    - Dst: http_ext_softclean
      Src: /src/haproxy/src/http_ext.c:1726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1696
    functionDepth: 8
    functionLinenumber: 1696
    functionLinenumberEnd: 1730
    functionName: check_http_ext_postconf
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - http_ext_xff_clean
    - http_ext_softclean
    - http_ext_7239_clean
    - ha_warning
    - proxy_http_compile_7239
    - http_ext_xot_clean
    linkageType: ''
    returnType: int
    signature: int check_http_ext_postconf(struct proxy *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:1744,1
    - Dst: http_validate_7239_header
      Src: /src/haproxy/src/http_ext.c:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1742
    functionDepth: 5
    functionLinenumber: 1742
    functionLinenumberEnd: 1749
    functionName: sample_conv_7239_valid
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - ist2
    - http_validate_7239_header
    linkageType: ''
    returnType: int
    signature: int sample_conv_7239_valid(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:1757,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1763,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1765,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1767,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ext.c:1769,1
    - Dst: http_validate_7239_header
      Src: /src/haproxy/src/http_ext.c:1772,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_ext.c:1775,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:1779,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:1781,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_ext.c:1784,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_ext.c:1787,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_ext.c:1790,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1755
    functionDepth: 5
    functionLinenumber: 1755
    functionLinenumberEnd: 1799
    functionName: sample_conv_7239_field
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - ist2
    - chunk_istcat
    - http_validate_7239_header
    - strcmp
    - chunk_appendf
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int sample_conv_7239_field(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:1808,1
    - Dst: http_7239_extract_node
      Src: /src/haproxy/src/http_ext.c:1812,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_ext.c:1816,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:1817,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_ext.c:1823,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:1824,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_ext.c:1825,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1806
    functionDepth: 4
    functionLinenumber: 1806
    functionLinenumberEnd: 1846
    functionName: sample_conv_7239_n2nn
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - chunk_istcat
    - ist2
    - http_7239_extract_node
    - chunk_appendf
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int sample_conv_7239_n2nn(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:1854,1
    - Dst: http_7239_extract_node
      Src: /src/haproxy/src/http_ext.c:1858,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_ext.c:1865,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ext.c:1866,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_ext.c:1867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1852
    functionDepth: 4
    functionLinenumber: 1852
    functionLinenumberEnd: 1881
    functionName: sample_conv_7239_n2np
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - chunk_istcat
    - ist2
    - http_7239_extract_node
    - chunk_appendf
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int sample_conv_7239_n2np(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_ext.c:1892,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ext.c:1899,1
    - Dst: _7239_print_ip6
      Src: /src/haproxy/src/http_ext.c:1903,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:1908,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:1910,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ext.c:1912,1
    - Dst: http_7239_extract_obfs
      Src: /src/haproxy/src/http_ext.c:1916,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:1916,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ext.c:1919,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1890
    functionDepth: 2
    functionLinenumber: 1890
    functionLinenumberEnd: 1937
    functionName: sample_conv_7239_nn
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - ist2
    - chunk_printf
    - get_trash_chunk
    - http_7239_extract_obfs
    - _7239_print_ip6
    - istlen
    linkageType: ''
    returnType: int
    signature: int sample_conv_7239_nn(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_ext.c:1947,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ext.c:1952,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ext.c:1958,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:1960,1
    - Dst: http_7239_extract_obfs
      Src: /src/haproxy/src/http_ext.c:1963,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ext.c:1963,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ext.c:1966,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1945
    functionDepth: 2
    functionLinenumber: 1945
    functionLinenumberEnd: 1985
    functionName: sample_conv_7239_np
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - ist2
    - chunk_printf
    - get_trash_chunk
    - http_7239_extract_obfs
    - istlen
    linkageType: ''
    returnType: int
    signature: int sample_conv_7239_np(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/ssl_sample.c:55,1
    - Dst: sample_conv_var2smp
      Src: /src/haproxy/src/ssl_sample.c:59,1
    - Dst: CRYPTO_memcmp
      Src: /src/haproxy/src/ssl_sample.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 74
    functionName: sample_conv_secure_memcmp
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp
    - smp_set_owner
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: int sample_conv_secure_memcmp(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:83,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/ssl_sample.c:88,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: smp_check_secure_memcmp
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: "int smp_check_secure_memcmp(struct arg *args, struct sample_conv *conv,\n
      \                          const char *file, int line, char **err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:103,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 118
    functionName: smp_check_sha2
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int smp_check_sha2(struct arg *args, struct sample_conv *conv,\n                          const
      char *file, int line, char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:122,1
    - Dst: EVP_sha224
      Src: /src/haproxy/src/ssl_sample.c:132,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/ssl_sample.c:135,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/ssl_sample.c:138,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/ssl_sample.c:141,1
    - Dst: EVP_MD_CTX_new
      Src: /src/haproxy/src/ssl_sample.c:147,1
    - Dst: EVP_DigestInit_ex
      Src: /src/haproxy/src/ssl_sample.c:151,1
    - Dst: EVP_DigestUpdate
      Src: /src/haproxy/src/ssl_sample.c:152,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/haproxy/src/ssl_sample.c:153,1
    - Dst: EVP_MD_CTX_free
      Src: /src/haproxy/src/ssl_sample.c:154,1
    - Dst: EVP_MD_CTX_free
      Src: /src/haproxy/src/ssl_sample.c:160,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 166
    functionName: sample_conv_sha2
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - EVP_sha512
    - EVP_MD_CTX_new
    - EVP_DigestUpdate
    - get_trash_chunk
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - EVP_sha224
    - EVP_sha384
    - EVP_sha256
    linkageType: ''
    returnType: int
    signature: int sample_conv_sha2(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:186,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/ssl_sample.c:193,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:197,1
    - Dst: malloc
      Src: /src/haproxy/src/ssl_sample.c:206,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:207,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sample.c:211,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:213,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sample.c:215,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/ssl_sample.c:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - arg
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 224
    functionName: sample_check_arg_base64
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - malloc
    - memprintf
    - base64dec
    - free
    - chunk_destroy
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: int sample_check_arg_base64(struct arg *arg, char **err)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:257,1
    - Dst: sample_check_arg_base64
      Src: /src/haproxy/src/ssl_sample.c:262,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:263,1
    - Dst: sample_check_arg_base64
      Src: /src/haproxy/src/ssl_sample.c:266,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:267,1
    - Dst: sample_check_arg_base64
      Src: /src/haproxy/src/ssl_sample.c:275,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/ssl_sample.c:276,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:277,1
    - Dst: sample_check_arg_base64
      Src: /src/haproxy/src/ssl_sample.c:282,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:283,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 233
    functionDepth: 6
    functionLinenumber: 233
    functionLinenumberEnd: 288
    functionName: check_aes
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sample_check_arg_base64
    - memprintf
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: "int check_aes(struct arg *args, struct sample_conv *conv,\n                     const
      char *file, int line, char **err)"
  - 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: 297
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 297
    functionName: sample_conv_aes_init
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sample_conv_aes_init(a, b, c, d, e, f)
  - 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: 305
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: sample_conv_aes_update
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sample_conv_aes_update(a, b, c, d, e, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 313
    functionName: sample_conv_aes_final
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sample_conv_aes_final(a, b, c, d)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/haproxy/src/ssl_sample.c:333,1
    - Dst: sample_conv_aes_init
      Src: /src/haproxy/src/ssl_sample.c:340,1
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/src/ssl_sample.c:340,1
    - Dst: EVP_aes_128_cbc
      Src: /src/haproxy/src/ssl_sample.c:340,1
    - Dst: sample_conv_aes_init
      Src: /src/haproxy/src/ssl_sample.c:344,1
    - Dst: EVP_aes_192_gcm
      Src: /src/haproxy/src/ssl_sample.c:344,1
    - Dst: EVP_aes_192_cbc
      Src: /src/haproxy/src/ssl_sample.c:344,1
    - Dst: sample_conv_aes_init
      Src: /src/haproxy/src/ssl_sample.c:348,1
    - Dst: EVP_aes_256_gcm
      Src: /src/haproxy/src/ssl_sample.c:348,1
    - Dst: EVP_aes_256_cbc
      Src: /src/haproxy/src/ssl_sample.c:348,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/ssl_sample.c:356,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sample.c:356,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sample.c:361,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_sample.c:362,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:363,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_sample.c:364,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/ssl_sample.c:366,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_sample.c:366,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sample.c:366,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sample.c:370,1
    - Dst: b_putchr
      Src: /src/haproxy/src/ssl_sample.c:371,1
    - Dst: sample_conv_aes_init
      Src: /src/haproxy/src/ssl_sample.c:376,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_sample.c:376,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_sample.c:377,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/haproxy/src/ssl_sample.c:380,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_sample.c:387,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sample.c:387,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sample.c:390,1
    - Dst: sample_conv_aes_update
      Src: /src/haproxy/src/ssl_sample.c:391,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_sample.c:392,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sample.c:392,1
    - Dst: sample_conv_aes_update
      Src: /src/haproxy/src/ssl_sample.c:396,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_sample.c:396,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_sample.c:397,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sample.c:397,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/ssl_sample.c:403,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sample.c:403,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_sample.c:403,1
    - Dst: sample_conv_aes_final
      Src: /src/haproxy/src/ssl_sample.c:407,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/ssl_sample.c:415,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_sample.c:415,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/src/ssl_sample.c:420,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sample.c:421,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/src/ssl_sample.c:424,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 74
    argCount: 9
    argNames:
    - data
    - nonce
    - key
    - key_size
    - aead_tag
    - aad
    - out
    - decrypt
    - gcm
    argTypes:
    - struct buffer*
    - struct buffer*
    - struct buffer*
    - int
    - struct buffer*
    - struct buffer*
    - struct buffer*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 426
    functionName: aes_process
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_aes_update
    - EVP_CIPHER_CTX_block_size
    - get_trash_chunk
    - b_putchr
    - EVP_aes_256_gcm
    - chunk_memcpy
    - EVP_aes_256_cbc
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - b_orig
    - b_data
    - b_size
    - sample_conv_aes_init
    - EVP_aes_192_cbc
    - EVP_aes_128_gcm
    - EVP_aes_128_cbc
    - EVP_aes_192_gcm
    - EVP_CIPHER_CTX_ctrl
    - sample_conv_aes_final
    linkageType: ''
    returnType: int
    signature: "int aes_process(struct buffer *data, struct buffer *nonce, struct
      buffer *key, int key_size,\n                       struct buffer *aead_tag,
      struct buffer *aad, struct buffer *out, int decrypt, int gcm)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:440,1
    - Dst: unlikely
      Src: /src/haproxy/src/ssl_sample.c:446,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sample.c:448,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:450,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/ssl_sample.c:454,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/ssl_sample.c:455,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:459,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sample.c:462,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/ssl_sample.c:473,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/ssl_sample.c:474,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:478,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sample.c:481,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/ssl_sample.c:495,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/ssl_sample.c:497,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:503,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sample.c:507,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/ssl_sample.c:516,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/ssl_sample.c:518,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:523,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sample.c:527,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:535,1
    - Dst: aes_process
      Src: /src/haproxy/src/ssl_sample.c:541,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:549,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/ssl_sample.c:554,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_sample.c:554,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sample.c:554,1
    - Dst: a2base64
      Src: /src/haproxy/src/ssl_sample.c:557,1
    - Dst: var_set
      Src: /src/haproxy/src/ssl_sample.c:564,1
    - Dst: smp_dup
      Src: /src/haproxy/src/ssl_sample.c:573,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:578,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:579,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:580,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:581,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:582,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:583,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 126
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 430
    functionDepth: 6
    functionLinenumber: 430
    functionLinenumberEnd: 585
    functionName: sample_conv_aes
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - unlikely
    - chunk_memcpy
    - base64dec
    - a2base64
    - b_orig
    - memcpy
    - aes_process
    - free_trash_chunk
    - alloc_trash_chunk
    - get_trash_chunk
    - var_set
    - b_data
    - smp_set_owner
    - smp_dup
    - sample_conv_var2smp_str
    linkageType: ''
    returnType: int
    signature: int sample_conv_aes(const struct arg *arg_p, struct sample *smp, void
      *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/haproxy/src/ssl_sample.c:591,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 588
    functionDepth: 5
    functionLinenumber: 588
    functionLinenumberEnd: 598
    functionName: check_crypto_digest
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - EVP_get_digestbyname
    linkageType: ''
    returnType: int
    signature: "int check_crypto_digest(struct arg *args, struct sample_conv *conv,\n\t\t\t\t\t\t
      \ const char *file, int line, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:602,1
    - Dst: EVP_MD_CTX_new
      Src: /src/haproxy/src/ssl_sample.c:605,1
    - Dst: EVP_get_digestbyname
      Src: /src/haproxy/src/ssl_sample.c:606,1
    - Dst: EVP_DigestInit_ex
      Src: /src/haproxy/src/ssl_sample.c:611,1
    - Dst: EVP_DigestUpdate
      Src: /src/haproxy/src/ssl_sample.c:612,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/haproxy/src/ssl_sample.c:613,1
    - Dst: EVP_MD_CTX_free
      Src: /src/haproxy/src/ssl_sample.c:614,1
    - Dst: EVP_MD_CTX_free
      Src: /src/haproxy/src/ssl_sample.c:618,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 625
    functionName: sample_conv_crypto_digest
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - get_trash_chunk
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - EVP_get_digestbyname
    linkageType: ''
    returnType: int
    signature: int sample_conv_crypto_digest(const struct arg *args, struct sample
      *smp, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x509_v_err_int_to_str
      Src: /src/haproxy/src/ssl_sample.c:630,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:635,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:641,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_sample.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 654
    functionName: sample_conv_x509_v_err
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - get_trash_chunk
    - x509_v_err_int_to_str
    - strlen
    linkageType: ''
    returnType: int
    signature: int sample_conv_x509_v_err(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_crypto_digest
      Src: /src/haproxy/src/ssl_sample.c:659,1
    - Dst: sample_check_arg_base64
      Src: /src/haproxy/src/ssl_sample.c:662,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 656
    functionDepth: 6
    functionLinenumber: 656
    functionLinenumberEnd: 668
    functionName: check_crypto_hmac
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - check_crypto_digest
    - sample_check_arg_base64
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int check_crypto_hmac(struct arg *args, struct sample_conv *conv,\n\t\t\t\t\t\t
      \ const char *file, int line, char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/haproxy/src/ssl_sample.c:676,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/ssl_sample.c:679,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/ssl_sample.c:680,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:684,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sample.c:688,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:695,1
    - Dst: HMAC
      Src: /src/haproxy/src/ssl_sample.c:701,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:705,1
    - Dst: smp_dup
      Src: /src/haproxy/src/ssl_sample.c:710,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:711,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:715,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:716,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 670
    functionDepth: 6
    functionLinenumber: 670
    functionLinenumberEnd: 718
    functionName: sample_conv_crypto_hmac
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - base64dec
    - free_trash_chunk
    - alloc_trash_chunk
    - smp_set_owner
    - EVP_get_digestbyname
    - smp_dup
    - HMAC
    - sample_conv_var2smp_str
    linkageType: ''
    returnType: int
    signature: int sample_conv_crypto_hmac(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:726,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:727,1
    - Dst: SSL_in_early_data
      Src: /src/haproxy/src/ssl_sample.c:735,1
    - Dst: SSL_early_data_accepted
      Src: /src/haproxy/src/ssl_sample.c:736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 743
    functionName: smp_fetch_ssl_fc_has_early
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - SSL_early_data_accepted
    - SSL_in_early_data
    - ssl_sock_get_ssl_object
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_has_early(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:751,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:752,1
    - Dst: SSL_early_data_accepted
      Src: /src/haproxy/src/ssl_sample.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 764
    functionName: smp_fetch_ssl_fc_early_rcvd
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - SSL_early_data_accepted
    - ssl_sock_get_ssl_object
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_early_rcvd(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:770,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 786
    functionName: smp_fetch_ssl_fc_has_crt
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_has_crt(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:802,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:803,1
    - Dst: ssl_sock_get_verified_chain_root
      Src: /src/haproxy/src/ssl_sample.c:812,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sample.c:816,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:820,1
    - Dst: ssl_sock_get_dn_entry
      Src: /src/haproxy/src/ssl_sample.c:827,1
    - Dst: ssl_sock_get_dn_formatted
      Src: /src/haproxy/src/ssl_sample.c:831,1
    - Dst: ssl_sock_get_dn_oneline
      Src: /src/haproxy/src/ssl_sample.c:834,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 843
    functionName: smp_fetch_ssl_r_dn
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - ssl_sock_get_dn_oneline
    - ssl_sock_get_dn_formatted
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - ssl_sock_get_dn_entry
    - X509_get_subject_name
    - ssl_sock_get_verified_chain_root
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_r_dn(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:863,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:865,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:867,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:877,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:879,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:884,1
    - Dst: ssl_sock_crt2der
      Src: /src/haproxy/src/ssl_sample.c:885,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:895,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 897
    functionName: smp_fetch_ssl_x_der
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - ssl_sock_crt2der
    - sc_conn
    - X509_free
    - ssl_sock_get_peer_certificate
    - SSL_get_certificate
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_der(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sample.c:910,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:918,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:920,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:925,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/haproxy/src/ssl_sample.c:937,1
    - Dst: sk_X509_num
      Src: /src/haproxy/src/ssl_sample.c:941,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:944,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:945,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_sample.c:949,1
    - Dst: ssl_sock_crt2der
      Src: /src/haproxy/src/ssl_sample.c:950,1
    - Dst: chunk_cat
      Src: /src/haproxy/src/ssl_sample.c:952,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:961,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 963
    functionName: smp_fetch_ssl_x_chain_der
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - ssl_sock_crt2der
    - sc_conn
    - sk_X509_value
    - free_trash_chunk
    - alloc_trash_chunk
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - chunk_cat
    - sk_X509_num
    - STACK_OF
    - SSL_get_peer_cert_chain
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_chain_der(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:981,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:983,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:984,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:994,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:996,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1001,1
    - Dst: ssl_sock_get_serial
      Src: /src/haproxy/src/ssl_sample.c:1002,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1012,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 1014
    functionName: smp_fetch_ssl_x_serial
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - X509_free
    - ssl_sock_get_peer_certificate
    - SSL_get_certificate
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - ssl_sock_get_serial
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_serial(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1034,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1036,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1038,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1048,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1050,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1054,1
    - Dst: EVP_sha1
      Src: /src/haproxy/src/ssl_sample.c:1055,1
    - Dst: X509_digest
      Src: /src/haproxy/src/ssl_sample.c:1056,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1065,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1067
    functionName: smp_fetch_ssl_x_sha1
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - sc_conn
    - X509_free
    - X509_digest
    - ssl_sock_get_peer_certificate
    - SSL_get_certificate
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_sha1(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1085,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1087,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1089,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1099,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1101,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1105,1
    - Dst: ssl_sock_get_time
      Src: /src/haproxy/src/ssl_sample.c:1106,1
    - Dst: X509_getm_notAfter
      Src: /src/haproxy/src/ssl_sample.c:1106,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1116,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1073
    functionDepth: 2
    functionLinenumber: 1073
    functionLinenumberEnd: 1118
    functionName: smp_fetch_ssl_x_notafter
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - X509_free
    - ssl_sock_get_peer_certificate
    - ssl_sock_get_time
    - SSL_get_certificate
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - X509_getm_notAfter
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_notafter(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1137,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1139,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1141,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1151,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1153,1
    - Dst: X509_get_issuer_name
      Src: /src/haproxy/src/ssl_sample.c:1157,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1161,1
    - Dst: ssl_sock_get_dn_entry
      Src: /src/haproxy/src/ssl_sample.c:1168,1
    - Dst: ssl_sock_get_dn_formatted
      Src: /src/haproxy/src/ssl_sample.c:1172,1
    - Dst: ssl_sock_get_dn_oneline
      Src: /src/haproxy/src/ssl_sample.c:1175,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1185,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1124
    functionDepth: 3
    functionLinenumber: 1124
    functionLinenumberEnd: 1187
    functionName: smp_fetch_ssl_x_i_dn
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - X509_free
    - ssl_sock_get_peer_certificate
    - SSL_get_certificate
    - X509_get_issuer_name
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - ssl_sock_get_dn_formatted
    - ssl_sock_get_dn_entry
    - ssl_sock_get_dn_oneline
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_i_dn(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sample.c:1198,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1208,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1210,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1212,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1222,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1224,1
    - Dst: X509_get_ext_d2i
      Src: /src/haproxy/src/ssl_sample.c:1228,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1232,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_sample.c:1234,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_sample.c:1234,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/haproxy/src/ssl_sample.c:1238,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/haproxy/src/ssl_sample.c:1239,1
    - Dst: BIO_puts
      Src: /src/haproxy/src/ssl_sample.c:1241,1
    - Dst: GENERAL_NAME_print
      Src: /src/haproxy/src/ssl_sample.c:1242,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/haproxy/src/ssl_sample.c:1245,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_sample.c:1247,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1260,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_sample.c:1261,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1193
    functionDepth: 2
    functionLinenumber: 1193
    functionLinenumberEnd: 1263
    functionName: smp_fetch_ssl_x_san
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - X509_free
    - ssl_sock_get_peer_certificate
    - sk_GENERAL_NAME_pop_free
    - BIO_puts
    - SSL_get_certificate
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - GENERAL_NAME_print
    - X509_get_ext_d2i
    - BIO_free
    - BIO_read
    - BIO_new
    - STACK_OF
    - sk_GENERAL_NAME_value
    - BIO_s_mem
    - sk_GENERAL_NAME_num
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_san(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1281,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1283,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1285,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1295,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1297,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1301,1
    - Dst: ssl_sock_get_time
      Src: /src/haproxy/src/ssl_sample.c:1302,1
    - Dst: X509_getm_notBefore
      Src: /src/haproxy/src/ssl_sample.c:1302,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1312,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1269
    functionDepth: 2
    functionLinenumber: 1269
    functionLinenumberEnd: 1314
    functionName: smp_fetch_ssl_x_notbefore
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - X509_getm_notBefore
    - X509_free
    - ssl_sock_get_peer_certificate
    - ssl_sock_get_time
    - SSL_get_certificate
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_notbefore(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1333,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1335,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1337,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1347,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1349,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sample.c:1353,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1357,1
    - Dst: ssl_sock_get_dn_entry
      Src: /src/haproxy/src/ssl_sample.c:1364,1
    - Dst: ssl_sock_get_dn_formatted
      Src: /src/haproxy/src/ssl_sample.c:1368,1
    - Dst: ssl_sock_get_dn_oneline
      Src: /src/haproxy/src/ssl_sample.c:1371,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1381,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1320
    functionDepth: 3
    functionLinenumber: 1320
    functionLinenumberEnd: 1383
    functionName: smp_fetch_ssl_x_s_dn
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - X509_free
    - ssl_sock_get_dn_oneline
    - ssl_sock_get_peer_certificate
    - SSL_get_certificate
    - ssl_sock_get_dn_formatted
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - ssl_sock_get_dn_entry
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_s_dn(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1393,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1394,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1404,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1386
    functionDepth: 2
    functionLinenumber: 1386
    functionLinenumberEnd: 1413
    functionName: smp_fetch_ssl_c_used
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - ssl_sock_get_peer_certificate
    - X509_free
    - ssl_sock_get_ssl_object
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_c_used(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1430,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1432,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1433,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1443,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1445,1
    - Dst: X509_get_version
      Src: /src/haproxy/src/ssl_sample.c:1450,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1419
    functionDepth: 2
    functionLinenumber: 1419
    functionLinenumberEnd: 1457
    functionName: smp_fetch_ssl_x_version
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - X509_free
    - ssl_sock_get_peer_certificate
    - SSL_get_certificate
    - ssl_sock_get_ssl_object
    - objt_conn
    - X509_get_version
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_version(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1475,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1477,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1479,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1489,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1491,1
    - Dst: X509_ALGOR_get0
      Src: /src/haproxy/src/ssl_sample.c:1495,1
    - Dst: X509_get0_tbs_sigalg
      Src: /src/haproxy/src/ssl_sample.c:1495,1
    - Dst: OBJ_obj2nid
      Src: /src/haproxy/src/ssl_sample.c:1496,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_sample.c:1498,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1502,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:1508,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1511,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1463
    functionDepth: 2
    functionLinenumber: 1463
    functionLinenumberEnd: 1514
    functionName: smp_fetch_ssl_x_sig_alg
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - sc_conn
    - X509_free
    - ssl_sock_get_peer_certificate
    - SSL_get_certificate
    - X509_get0_tbs_sigalg
    - ssl_sock_get_ssl_object
    - objt_conn
    - X509_ALGOR_get0
    - OBJ_obj2nid
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_sig_alg(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1532,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1534,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1535,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1545,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1547,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/haproxy/src/ssl_sample.c:1551,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/haproxy/src/ssl_sample.c:1551,1
    - Dst: OBJ_obj2nid
      Src: /src/haproxy/src/ssl_sample.c:1552,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_sample.c:1554,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1558,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:1564,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1566,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1569
    functionName: smp_fetch_ssl_x_key_alg
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - sc_conn
    - X509_free
    - X509_PUBKEY_get0_param
    - X509_get_X509_PUBKEY
    - ssl_sock_get_peer_certificate
    - SSL_get_certificate
    - ssl_sock_get_ssl_object
    - objt_conn
    - OBJ_obj2nid
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_key_alg(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1580,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1581,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1581,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1583,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1584,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/ssl_sample.c:1587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1589
    functionName: smp_fetch_ssl_fc
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - objt_conn
    - __objt_check
    - conn_is_ssl
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1596,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1597,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_sample.c:1600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1592
    functionDepth: 2
    functionLinenumber: 1592
    functionLinenumberEnd: 1605
    functionName: smp_fetch_ssl_fc_has_sni
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - SSL_get_servername
    - ssl_sock_get_ssl_object
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_has_sni(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1617,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1618,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1618,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1620,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1621,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1623,1
    - Dst: SSL_session_reused
      Src: /src/haproxy/src/ssl_sample.c:1626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1611
    functionDepth: 2
    functionLinenumber: 1611
    functionLinenumberEnd: 1628
    functionName: smp_fetch_ssl_fc_is_resumed
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - ssl_sock_get_ssl_object
    - objt_conn
    - __objt_check
    - SSL_session_reused
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_is_resumed(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1646,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1647,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1647,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1649,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1650,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1652,1
    - Dst: SSL_get0_group_name
      Src: /src/haproxy/src/ssl_sample.c:1662,1
    - Dst: toupper
      Src: /src/haproxy/src/ssl_sample.c:1676,1
    - Dst: SSL_get_negotiated_group
      Src: /src/haproxy/src/ssl_sample.c:1679,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_sample.c:1682,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:1693,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1638
    functionDepth: 2
    functionLinenumber: 1638
    functionLinenumberEnd: 1696
    functionName: smp_fetch_ssl_fc_ec
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - sc_conn
    - ssl_sock_get_ssl_object
    - objt_conn
    - SSL_get_negotiated_group
    - __objt_check
    - toupper
    - obj_type
    - SSL_get0_group_name
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_ec(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1709,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1710,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1710,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1712,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1713,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1716,1
    - Dst: SSL_get_cipher_name
      Src: /src/haproxy/src/ssl_sample.c:1720,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:1726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1703
    functionDepth: 2
    functionLinenumber: 1703
    functionLinenumberEnd: 1729
    functionName: smp_fetch_ssl_fc_cipher
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_cipher_name
    - ssl_sock_get_ssl_object
    - objt_conn
    - __objt_check
    - obj_type
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_cipher(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1743,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1744,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1744,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1746,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1747,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1750,1
    - Dst: SSL_get_cipher_bits
      Src: /src/haproxy/src/ssl_sample.c:1754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1736
    functionDepth: 2
    functionLinenumber: 1736
    functionLinenumberEnd: 1762
    functionName: smp_fetch_ssl_fc_alg_keysize
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - SSL_get_cipher_bits
    - sc_conn
    - ssl_sock_get_ssl_object
    - objt_conn
    - __objt_check
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_alg_keysize(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1774,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1775,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1775,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1777,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1778,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1781,1
    - Dst: SSL_get_cipher_bits
      Src: /src/haproxy/src/ssl_sample.c:1785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1768
    functionDepth: 2
    functionLinenumber: 1768
    functionLinenumberEnd: 1793
    functionName: smp_fetch_ssl_fc_use_keysize
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - SSL_get_cipher_bits
    - sc_conn
    - ssl_sock_get_ssl_object
    - objt_conn
    - __objt_check
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_use_keysize(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1806,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1807,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1807,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1809,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1810,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1812,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/haproxy/src/ssl_sample.c:1818,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1796
    functionDepth: 2
    functionLinenumber: 1796
    functionLinenumberEnd: 1827
    functionName: smp_fetch_ssl_fc_npn
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - ssl_sock_get_ssl_object
    - objt_conn
    - __objt_check
    - SSL_get0_next_proto_negotiated
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_npn(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1841,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1842,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1842,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1844,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1845,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1847,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/haproxy/src/ssl_sample.c:1852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1831
    functionDepth: 2
    functionLinenumber: 1831
    functionLinenumberEnd: 1861
    functionName: smp_fetch_ssl_fc_alpn
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - ssl_sock_get_ssl_object
    - objt_conn
    - SSL_get0_alpn_selected
    - __objt_check
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_alpn(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1874,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1875,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1875,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1877,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1878,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1881,1
    - Dst: SSL_get_version
      Src: /src/haproxy/src/ssl_sample.c:1885,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:1891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1868
    functionDepth: 2
    functionLinenumber: 1868
    functionLinenumberEnd: 1894
    functionName: smp_fetch_ssl_fc_protocol
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - ssl_sock_get_ssl_object
    - objt_conn
    - __objt_check
    - obj_type
    - SSL_get_version
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_protocol(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1912,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1913,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1913,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1915,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1916,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1918,1
    - Dst: SSL_get_session
      Src: /src/haproxy/src/ssl_sample.c:1922,1
    - Dst: SSL_SESSION_get_id
      Src: /src/haproxy/src/ssl_sample.c:1926,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1901
    functionDepth: 2
    functionLinenumber: 1901
    functionLinenumberEnd: 1932
    functionName: smp_fetch_ssl_fc_session_id
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - ssl_sock_get_ssl_object
    - objt_conn
    - __objt_check
    - SSL_SESSION_get_id
    - SSL_get_session
    - obj_type
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_session_id(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1944,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1945,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1945,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1947,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1948,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1950,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1954,1
    - Dst: SSL_get_client_random
      Src: /src/haproxy/src/ssl_sample.c:1956,1
    - Dst: SSL_get_server_random
      Src: /src/haproxy/src/ssl_sample.c:1960,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1937
    functionDepth: 2
    functionLinenumber: 1937
    functionLinenumberEnd: 1971
    functionName: smp_fetch_ssl_fc_random
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - SSL_get_server_random
    - __objt_check
    - obj_type
    - SSL_get_client_random
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_random(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:1981,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1982,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1982,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1984,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1985,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1987,1
    - Dst: SSL_get_session
      Src: /src/haproxy/src/ssl_sample.c:1991,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1995,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/haproxy/src/ssl_sample.c:1996,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1973
    functionDepth: 2
    functionLinenumber: 1973
    functionLinenumberEnd: 2007
    functionName: smp_fetch_ssl_fc_session_key
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - __objt_check
    - SSL_get_session
    - obj_type
    - SSL_SESSION_get_master_key
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_session_key(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:2021,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2022,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:2022,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2024,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2025,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2027,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_sample.c:2031,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2036,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:2042,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2011
    functionDepth: 2
    functionLinenumber: 2011
    functionLinenumberEnd: 2049
    functionName: smp_fetch_ssl_fc_sni
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - ssl_sock_get_ssl_object
    - objt_conn
    - __objt_check
    - obj_type
    - SSL_get_servername
    - SSL_get_ex_data
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_sni(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:2061,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2062,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:2062,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2064,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2065,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2067,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/haproxy/src/ssl_sample.c:2071,1
    - Dst: SSL_CTX_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2075,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:2078,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2052
    functionDepth: 2
    functionLinenumber: 2052
    functionLinenumberEnd: 2081
    functionName: smp_fetch_ssl_fc_crtname
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - SSL_get_SSL_CTX
    - sc_conn
    - ssl_sock_get_ssl_object
    - objt_conn
    - __objt_check
    - obj_type
    - SSL_CTX_get_ex_data
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_crtname(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2094,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2097,1
    - Dst: conn_get_ech_status
      Src: /src/haproxy/src/ssl_sample.c:2098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2085
    functionDepth: 2
    functionLinenumber: 2085
    functionLinenumberEnd: 2103
    functionName: smp_fetch_ssl_fc_ech_status
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - conn_get_ech_status
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: "int smp_fetch_ssl_fc_ech_status(const struct arg *args, struct sample
      *smp,\n                            const char *kw, void *private)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2114,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2117,1
    - Dst: conn_get_ech_outer_sni
      Src: /src/haproxy/src/ssl_sample.c:2118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2105
    functionDepth: 2
    functionLinenumber: 2105
    functionLinenumberEnd: 2123
    functionName: smp_fetch_ssl_fc_ech_outer_sni
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - get_trash_chunk
    - conn_get_ech_outer_sni
    linkageType: ''
    returnType: int
    signature: "int smp_fetch_ssl_fc_ech_outer_sni(const struct arg *args, struct
      sample *smp,\n                               const char *kw, void *private)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2137,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2138,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2142,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2147,1
    - Dst: exclude_tls_grease
      Src: /src/haproxy/src/ssl_sample.c:2148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2129
    functionDepth: 2
    functionLinenumber: 2129
    functionLinenumberEnd: 2161
    functionName: smp_fetch_ssl_fc_cl_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - exclude_tls_grease
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_cl_bin(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_ssl_fc_cl_bin
      Src: /src/haproxy/src/ssl_sample.c:2171,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2174,1
    - Dst: dump_binary
      Src: /src/haproxy/src/ssl_sample.c:2175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2166
    functionDepth: 3
    functionLinenumber: 2166
    functionLinenumberEnd: 2180
    functionName: smp_fetch_ssl_fc_cl_hex
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - dump_binary
    - get_trash_chunk
    - smp_fetch_ssl_fc_cl_bin
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_cl_hex(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2190,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2191,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2183
    functionDepth: 2
    functionLinenumber: 2183
    functionLinenumberEnd: 2203
    functionName: smp_fetch_ssl_fc_cl_xxh64
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - SSL_get_ex_data
    - ssl_sock_get_ssl_object
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_cl_xxh64(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:2211,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2212,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:2212,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2214,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2215,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:2225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2205
    functionDepth: 1
    functionLinenumber: 2205
    functionLinenumberEnd: 2233
    functionName: smp_fetch_ssl_fc_err
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - objt_conn
    - __objt_check
    - obj_type
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_err(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2242,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2243,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2235
    functionDepth: 2
    functionLinenumber: 2235
    functionLinenumberEnd: 2255
    functionName: smp_fetch_ssl_fc_protocol_hello_id
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - SSL_get_ex_data
    - ssl_sock_get_ssl_object
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_protocol_hello_id(const struct arg *args, struct
      sample *smp, const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2265,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2266,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2270,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2275,1
    - Dst: exclude_tls_grease
      Src: /src/haproxy/src/ssl_sample.c:2276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2257
    functionDepth: 2
    functionLinenumber: 2257
    functionLinenumberEnd: 2288
    functionName: smp_fetch_ssl_fc_supver_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - exclude_tls_grease
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_supver_bin(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2298,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2299,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2303,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2308,1
    - Dst: exclude_tls_grease
      Src: /src/haproxy/src/ssl_sample.c:2309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2290
    functionDepth: 2
    functionLinenumber: 2290
    functionLinenumberEnd: 2321
    functionName: smp_fetch_ssl_fc_sigalgs_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - exclude_tls_grease
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_sigalgs_bin(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:2330,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2331,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:2331,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2333,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2334,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:2344,1
    - Dst: ERR_error_string
      Src: /src/haproxy/src/ssl_sample.c:2348,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:2353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2323
    functionDepth: 1
    functionLinenumber: 2323
    functionLinenumberEnd: 2356
    functionName: smp_fetch_ssl_fc_err_str
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - ERR_error_string
    - objt_conn
    - __objt_check
    - obj_type
    - conn_get_ssl_sock_ctx
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_err_str(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2369,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2370,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2374,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2379,1
    - Dst: exclude_tls_grease
      Src: /src/haproxy/src/ssl_sample.c:2380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2361
    functionDepth: 2
    functionLinenumber: 2361
    functionLinenumberEnd: 2393
    functionName: smp_fetch_ssl_fc_ext_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - exclude_tls_grease
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_ext_bin(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2406,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2407,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2411,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2416,1
    - Dst: exclude_tls_grease
      Src: /src/haproxy/src/ssl_sample.c:2417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2398
    functionDepth: 2
    functionLinenumber: 2398
    functionLinenumberEnd: 2430
    functionName: smp_fetch_ssl_fc_ecl_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - exclude_tls_grease
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_ecl_bin(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2440,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2441,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2433
    functionDepth: 2
    functionLinenumber: 2433
    functionLinenumberEnd: 2454
    functionName: smp_fetch_ssl_fc_ecf_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - SSL_get_ex_data
    - ssl_sock_get_ssl_object
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_ecf_bin(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2469,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2470,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2480,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2484,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:2488,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2490,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2492,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2494,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2496,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2498,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2500,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2502,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:2512,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2458
    functionDepth: 2
    functionLinenumber: 2458
    functionLinenumberEnd: 2514
    functionName: smp_fetch_ssl_x_keylog
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - strcmp
    - ssl_sock_get_ssl_object
    - objt_conn
    - SSL_get_ex_data
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_x_keylog(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_ssl_fc_cl_bin
      Src: /src/haproxy/src/ssl_sample.c:2524,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2527,1
    - Dst: SSL_get_cipher_by_value
      Src: /src/haproxy/src/ssl_sample.c:2534,1
    - Dst: __objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2536,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2537,1
    - Dst: SSL_CIPHER_find
      Src: /src/haproxy/src/ssl_sample.c:2538,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/haproxy/src/ssl_sample.c:2540,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2541,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sample.c:2542,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sample.c:2544,1
    - Dst: smp_fetch_ssl_fc_cl_xxh64
      Src: /src/haproxy/src/ssl_sample.c:2550,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2517
    functionDepth: 3
    functionLinenumber: 2517
    functionLinenumberEnd: 2552
    functionName: smp_fetch_ssl_fc_cl_str
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - SSL_get_cipher_by_value
    - __objt_conn
    - smp_fetch_ssl_fc_cl_bin
    - SSL_CIPHER_find
    - strcmp
    - chunk_appendf
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - SSL_CIPHER_get_name
    - smp_fetch_ssl_fc_cl_xxh64
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_cl_str(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sample.c:2563,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2564,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:2564,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2566,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2567,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2570,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2579,1
    - Dst: SSL_session_reused
      Src: /src/haproxy/src/ssl_sample.c:2580,1
    - Dst: SSL_get_peer_finished
      Src: /src/haproxy/src/ssl_sample.c:2581,1
    - Dst: SSL_get_finished
      Src: /src/haproxy/src/ssl_sample.c:2585,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2555
    functionDepth: 2
    functionLinenumber: 2555
    functionLinenumberEnd: 2598
    functionName: smp_fetch_ssl_fc_unique_id
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_finished
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - objt_conn
    - __objt_check
    - SSL_session_reused
    - obj_type
    - SSL_get_peer_finished
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_unique_id(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2605,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:2606,1
    - Dst: SSL_SOCK_ST_TO_CA_ERROR
      Src: /src/haproxy/src/ssl_sample.c:2617,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2602
    functionDepth: 1
    functionLinenumber: 2602
    functionLinenumberEnd: 2621
    functionName: smp_fetch_ssl_c_ca_err
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - SSL_SOCK_ST_TO_CA_ERROR
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_c_ca_err(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2627,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:2628,1
    - Dst: SSL_SOCK_ST_TO_CAEDEPTH
      Src: /src/haproxy/src/ssl_sample.c:2639,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2624
    functionDepth: 1
    functionLinenumber: 2624
    functionLinenumberEnd: 2643
    functionName: smp_fetch_ssl_c_ca_err_depth
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - SSL_SOCK_ST_TO_CAEDEPTH
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_c_ca_err_depth(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2649,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:2650,1
    - Dst: SSL_SOCK_ST_TO_CRTERROR
      Src: /src/haproxy/src/ssl_sample.c:2661,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2646
    functionDepth: 1
    functionLinenumber: 2646
    functionLinenumberEnd: 2665
    functionName: smp_fetch_ssl_c_err
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - SSL_SOCK_ST_TO_CRTERROR
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_c_err(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2674,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2675,1
    - Dst: SSL_get_verify_result
      Src: /src/haproxy/src/ssl_sample.c:2685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2668
    functionDepth: 2
    functionLinenumber: 2668
    functionLinenumberEnd: 2689
    functionName: smp_fetch_ssl_c_verify
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - SSL_get_verify_result
    - ssl_sock_get_ssl_object
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_c_verify(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2699,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:2700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2697
    functionDepth: 5
    functionLinenumber: 2697
    functionLinenumberEnd: 2704
    functionName: val_dnfmt
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int val_dnfmt(struct arg *arg, char **err_msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/haproxy/src/errors.c:50,1
    - Dst: ring_make_from_area
      Src: /src/haproxy/src/errors.c:54,1
    - Dst: munmap
      Src: /src/haproxy/src/errors.c:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: startup_logs_init_shm
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 0
    functionsReached:
    - mmap
    - munmap
    - ring_make_from_area
    linkageType: ''
    returnType: struct ring
    signature: struct ring *startup_logs_init_shm()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: startup_logs_init_shm
      Src: /src/haproxy/src/errors.c:70,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/errors.c:72,1
    - Dst: ring_allocated_area
      Src: /src/haproxy/src/errors.c:72,1
    - Dst: ring_allocated_size
      Src: /src/haproxy/src/errors.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: startup_logs_init
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 0
    functionsReached:
    - ring_allocated_area
    - ring_allocated_size
    - vma_set_name
    - startup_logs_init_shm
    linkageType: ''
    returnType: void
    signature: void startup_logs_init()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/haproxy/src/errors.c:81,1
    - Dst: ring_allocated_area
      Src: /src/haproxy/src/errors.c:81,1
    - Dst: ring_free
      Src: /src/haproxy/src/errors.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: startup_logs_free
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 1
    functionsReached:
    - ring_allocated_area
    - ring_free
    - munmap
    linkageType: ''
    returnType: void
    signature: void startup_logs_free(struct ring *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ring_new
      Src: /src/haproxy/src/errors.c:92,1
    - Dst: ring_allocated_size
      Src: /src/haproxy/src/errors.c:92,1
    - Dst: ring_dup
      Src: /src/haproxy/src/errors.c:96,1
    - Dst: ring_size
      Src: /src/haproxy/src/errors.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: startup_logs_dup
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 0
    functionsReached:
    - ring_dup
    - ring_new
    - ring_allocated_size
    - ring_size
    linkageType: ''
    returnType: struct ring
    signature: struct ring *startup_logs_dup(struct ring *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/errors.c:112,1
    - Dst: b_is_null
      Src: /src/haproxy/src/errors.c:112,1
    - Dst: malloc
      Src: /src/haproxy/src/errors.c:113,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/errors.c:113,1
    - Dst: likely
      Src: /src/haproxy/src/errors.c:118,1
    - Dst: b_is_null
      Src: /src/haproxy/src/errors.c:118,1
    - Dst: b_room
      Src: /src/haproxy/src/errors.c:119,1
    - Dst: b_putblk
      Src: /src/haproxy/src/errors.c:121,1
    - Dst: b_putchr
      Src: /src/haproxy/src/errors.c:122,1
    - Dst: b_tail
      Src: /src/haproxy/src/errors.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 127
    functionName: usermsgs_put
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 0
    functionsReached:
    - unlikely
    - malloc
    - b_is_null
    - b_putblk
    - b_tail
    - likely
    - b_room
    - b_putchr
    - array_size_or_fail
    linkageType: ''
    returnType: void
    signature: void usermsgs_put(const struct ist *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/errors.c:136,1
    - Dst: b_is_null
      Src: /src/haproxy/src/errors.c:136,1
    - Dst: b_reset
      Src: /src/haproxy/src/errors.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: usermsgs_clr
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 4
    functionsReached:
    - b_reset
    - b_is_null
    - likely
    linkageType: ''
    returnType: void
    signature: void usermsgs_clr(const char *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_is_null
      Src: /src/haproxy/src/errors.c:147,1
    - Dst: b_data
      Src: /src/haproxy/src/errors.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: usermsgs_empty
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 1
    functionsReached:
    - b_data
    - b_is_null
    linkageType: ''
    returnType: int
    signature: int usermsgs_empty(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/errors.c:153,1
    - Dst: b_is_null
      Src: /src/haproxy/src/errors.c:153,1
    - Dst: b_head
      Src: /src/haproxy/src/errors.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: usermsgs_str
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 1
    functionsReached:
    - unlikely
    - b_is_null
    - b_head
    linkageType: ''
    returnType: char
    signature: char *usermsgs_str(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - line
    - obj
    argTypes:
    - char*
    - int
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: set_usermsgs_ctx
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_usermsgs_ctx(const char *file, int line, enum obj_type *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: register_parsing_obj
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void register_parsing_obj(enum obj_type *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: reset_usermsgs_ctx
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_usermsgs_ctx(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/errors.c:199,1
    - Dst: b_is_null
      Src: /src/haproxy/src/errors.c:199,1
    - Dst: calloc
      Src: /src/haproxy/src/errors.c:200,1
    - Dst: b_make
      Src: /src/haproxy/src/errors.c:202,1
    - Dst: likely
      Src: /src/haproxy/src/errors.c:205,1
    - Dst: b_is_null
      Src: /src/haproxy/src/errors.c:205,1
    - Dst: b_reset
      Src: /src/haproxy/src/errors.c:206,1
    - Dst: snprintf
      Src: /src/haproxy/src/errors.c:209,1
    - Dst: b_tail
      Src: /src/haproxy/src/errors.c:209,1
    - Dst: b_room
      Src: /src/haproxy/src/errors.c:209,1
    - Dst: b_add
      Src: /src/haproxy/src/errors.c:211,1
    - Dst: MIN
      Src: /src/haproxy/src/errors.c:211,1
    - Dst: b_room
      Src: /src/haproxy/src/errors.c:211,1
    - Dst: snprintf
      Src: /src/haproxy/src/errors.c:215,1
    - Dst: b_tail
      Src: /src/haproxy/src/errors.c:215,1
    - Dst: b_room
      Src: /src/haproxy/src/errors.c:215,1
    - Dst: b_add
      Src: /src/haproxy/src/errors.c:217,1
    - Dst: MIN
      Src: /src/haproxy/src/errors.c:217,1
    - Dst: b_room
      Src: /src/haproxy/src/errors.c:217,1
    - Dst: obj_type
      Src: /src/haproxy/src/errors.c:220,1
    - Dst: snprintf
      Src: /src/haproxy/src/errors.c:222,1
    - Dst: b_tail
      Src: /src/haproxy/src/errors.c:222,1
    - Dst: b_room
      Src: /src/haproxy/src/errors.c:222,1
    - Dst: __objt_server
      Src: /src/haproxy/src/errors.c:224,1
    - Dst: __objt_server
      Src: /src/haproxy/src/errors.c:225,1
    - Dst: b_add
      Src: /src/haproxy/src/errors.c:226,1
    - Dst: MIN
      Src: /src/haproxy/src/errors.c:226,1
    - Dst: b_room
      Src: /src/haproxy/src/errors.c:226,1
    - Dst: b_data
      Src: /src/haproxy/src/errors.c:234,1
    - Dst: snprintf
      Src: /src/haproxy/src/errors.c:235,1
    - Dst: b_tail
      Src: /src/haproxy/src/errors.c:235,1
    - Dst: b_room
      Src: /src/haproxy/src/errors.c:235,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 237
    functionName: generate_usermsgs_ctx_str
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 0
    functionsReached:
    - unlikely
    - __objt_server
    - b_is_null
    - calloc
    - b_tail
    - likely
    - b_room
    - b_add
    - b_data
    - b_reset
    - MIN
    - obj_type
    - b_make
    - snprintf
    linkageType: ''
    returnType: void
    signature: void generate_usermsgs_ctx_str(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/haproxy/src/errors.c:247,1
    - Dst: strlen
      Src: /src/haproxy/src/errors.c:248,1
    - Dst: memprintf
      Src: /src/haproxy/src/errors.c:255,1
    - Dst: getpid
      Src: /src/haproxy/src/errors.c:255,1
    - Dst: memvprintf
      Src: /src/haproxy/src/errors.c:256,1
    - Dst: ist
      Src: /src/haproxy/src/errors.c:259,1
    - Dst: generate_usermsgs_ctx_str
      Src: /src/haproxy/src/errors.c:264,1
    - Dst: b_head
      Src: /src/haproxy/src/errors.c:265,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/errors.c:266,1
    - Dst: likely
      Src: /src/haproxy/src/errors.c:273,1
    - Dst: ist
      Src: /src/haproxy/src/errors.c:276,1
    - Dst: ist
      Src: /src/haproxy/src/errors.c:277,1
    - Dst: ring_write
      Src: /src/haproxy/src/errors.c:280,1
    - Dst: usermsgs_put
      Src: /src/haproxy/src/errors.c:282,1
    - Dst: usermsgs_put
      Src: /src/haproxy/src/errors.c:285,1
    - Dst: fprintf
      Src: /src/haproxy/src/errors.c:288,1
    - Dst: fflush
      Src: /src/haproxy/src/errors.c:289,1
    - Dst: free
      Src: /src/haproxy/src/errors.c:292,1
    - Dst: free
      Src: /src/haproxy/src/errors.c:293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - use_usermsgs_ctx
    - label
    - fmt
    - argp
    argTypes:
    - int
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 240
    functionDepth: 5
    functionLinenumber: 240
    functionLinenumberEnd: 294
    functionName: print_message
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 0
    functionsReached:
    - strncpy
    - getpid
    - memprintf
    - ist
    - b_head
    - reset_usermsgs_ctx
    - ring_write
    - free
    - likely
    - usermsgs_put
    - memvprintf
    - generate_usermsgs_ctx_str
    - fprintf
    - fflush
    - strlen
    linkageType: ''
    returnType: void
    signature: void print_message(int use_usermsgs_ctx, const char *label, const char
      *fmt, va_list argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/errors.c:299,1
    - Dst: print_message
      Src: /src/haproxy/src/errors.c:300,1
    - Dst: va_end
      Src: /src/haproxy/src/errors.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - use_usermsgs_ctx
    - label
    - fmt
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 6
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: print_message_args
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - print_message
    linkageType: ''
    returnType: void
    signature: void print_message_args(int use_usermsgs_ctx, const char *label, const
      char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_exec_path
      Src: /src/haproxy/src/errors.c:311,1
    - Dst: print_message_args
      Src: /src/haproxy/src/errors.c:314,1
    - Dst: print_message_args
      Src: /src/haproxy/src/errors.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 308
    functionDepth: 7
    functionLinenumber: 308
    functionLinenumberEnd: 318
    functionName: warn_exec_path
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 0
    functionsReached:
    - get_exec_path
    - print_message_args
    linkageType: ''
    returnType: void
    signature: void warn_exec_path()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: warn_exec_path
      Src: /src/haproxy/src/errors.c:327,1
    - Dst: va_start
      Src: /src/haproxy/src/errors.c:328,1
    - Dst: print_message
      Src: /src/haproxy/src/errors.c:329,1
    - Dst: va_end
      Src: /src/haproxy/src/errors.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 323
    functionDepth: 8
    functionLinenumber: 323
    functionLinenumberEnd: 331
    functionName: ha_alert
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 201
    functionsReached:
    - va_end
    - va_start
    - print_message
    - warn_exec_path
    linkageType: ''
    returnType: void
    signature: void ha_alert(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/errors.c:341,1
    - Dst: warn_exec_path
      Src: /src/haproxy/src/errors.c:343,1
    - Dst: va_start
      Src: /src/haproxy/src/errors.c:344,1
    - Dst: print_message
      Src: /src/haproxy/src/errors.c:345,1
    - Dst: va_end
      Src: /src/haproxy/src/errors.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 336
    functionDepth: 8
    functionLinenumber: 336
    functionLinenumberEnd: 347
    functionName: ha_warning
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 116
    functionsReached:
    - va_end
    - va_start
    - warn_exec_path
    - print_message
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void ha_warning(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/errors.c:356,1
    - Dst: warn_exec_path
      Src: /src/haproxy/src/errors.c:358,1
    - Dst: print_message
      Src: /src/haproxy/src/errors.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fmt
    - argp
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 8
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: _ha_vdiag_warning
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_INC
    - print_message
    - warn_exec_path
    linkageType: ''
    returnType: void
    signature: void _ha_vdiag_warning(const char *fmt, va_list argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/errors.c:370,1
    - Dst: _ha_vdiag_warning
      Src: /src/haproxy/src/errors.c:371,1
    - Dst: va_end
      Src: /src/haproxy/src/errors.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 9
    functionLinenumber: 366
    functionLinenumberEnd: 373
    functionName: _ha_diag_warning
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - _ha_vdiag_warning
    linkageType: ''
    returnType: void
    signature: void _ha_diag_warning(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/errors.c:383,1
    - Dst: _ha_vdiag_warning
      Src: /src/haproxy/src/errors.c:384,1
    - Dst: va_end
      Src: /src/haproxy/src/errors.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 378
    functionDepth: 9
    functionLinenumber: 378
    functionLinenumberEnd: 387
    functionName: ha_diag_warning
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 7
    functionsReached:
    - va_end
    - va_start
    - _ha_vdiag_warning
    linkageType: ''
    returnType: void
    signature: void ha_diag_warning(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/errors.c:396,1
    - Dst: print_message
      Src: /src/haproxy/src/errors.c:397,1
    - Dst: va_end
      Src: /src/haproxy/src/errors.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 6
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: ha_notice
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 11
    functionsReached:
    - va_end
    - va_start
    - print_message
    linkageType: ''
    returnType: void
    signature: void ha_notice(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/src/errors.c:409,1
    - Dst: vfprintf
      Src: /src/haproxy/src/errors.c:410,1
    - Dst: fflush
      Src: /src/haproxy/src/errors.c:411,1
    - Dst: va_end
      Src: /src/haproxy/src/errors.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - out
    - fmt
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 414
    functionName: qfprintf
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 4
    functionsReached:
    - fflush
    - va_start
    - vfprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void qfprintf(FILE *out, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/errors.c:420,1
    - Dst: cli_msg
      Src: /src/haproxy/src/errors.c:424,1
    - Dst: ring_attach_cli
      Src: /src/haproxy/src/errors.c:426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: cli_parse_show_startup_logs
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - cli_has_level
    - ring_attach_cli
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_startup_logs(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ring_free
      Src: /src/haproxy/src/errors.c:440,1
    - Dst: _HA_ATOMIC_XCHG
      Src: /src/haproxy/src/errors.c:440,1
    - Dst: ha_free
      Src: /src/haproxy/src/errors.c:441,1
    - Dst: ha_free
      Src: /src/haproxy/src/errors.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: deinit_errors_buffers
    functionSourceFile: /src/haproxy/src/errors.c
    functionUses: 0
    functionsReached:
    - ha_free
    - _HA_ATOMIC_XCHG
    - ring_free
    linkageType: ''
    returnType: void
    signature: void deinit_errors_buffers()
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: EXTRA_COUNTERS_BASE
      Src: /src/haproxy/src/h3_stats.c:144,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:149,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:149,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:152,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:152,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:155,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:155,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:158,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:158,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:161,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:161,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:164,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:164,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:167,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:167,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:172,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:172,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:175,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:175,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:178,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:178,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:181,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:181,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:184,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:184,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:187,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:187,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:190,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:190,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:193,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:193,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:196,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:196,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:199,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:199,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:202,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:202,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:205,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:205,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:208,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:208,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:211,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:211,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:214,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:214,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:217,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:217,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:220,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:220,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:225,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:225,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:228,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:228,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:231,1
    - Dst: EXTRA_COUNTERS_AGGR
      Src: /src/haproxy/src/h3_stats.c:231,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 100
    argCount: 4
    argNames:
    - mod
    - ctr
    - stats
    - selected_field
    argTypes:
    - struct stats_module*
    - struct extra_counters*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 247
    functionName: h3_fill_stats
    functionSourceFile: /src/haproxy/src/h3_stats.c
    functionUses: 0
    functionsReached:
    - EXTRA_COUNTERS_AGGR
    - mkf_u64
    - EXTRA_COUNTERS_BASE
    linkageType: ''
    returnType: int
    signature: "int h3_fill_stats(struct stats_module *mod, struct extra_counters
      *ctr,\n                         struct field *stats, unsigned int *selected_field)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:266,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:269,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:272,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:275,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:278,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:281,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:284,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:287,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:290,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:293,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:296,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:299,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:302,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:305,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:308,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:311,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:314,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:317,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:320,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:323,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 2
    argNames:
    - ctrs
    - error_code
    argTypes:
    - struct h3_counters*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 329
    functionName: h3_inc_err_cnt
    functionSourceFile: /src/haproxy/src/h3_stats.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void h3_inc_err_cnt(struct h3_counters *ctrs, int error_code)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:335,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:338,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:341,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:344,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:347,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:350,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:353,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - ctrs
    - frm_type
    argTypes:
    - struct h3_counters*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 358
    functionName: h3_inc_frame_type_cnt
    functionSourceFile: /src/haproxy/src/h3_stats.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void h3_inc_frame_type_cnt(struct h3_counters *ctrs, int frm_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: get_be32
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_be32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: put_be32
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_be32(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: get_be32
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_be32(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: put_be32
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_be32(void *ptr, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: SHA_ASM
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ASM(op, x, n)
  - 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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: SHA_ROL
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROL(x,n)
  - 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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: SHA_ROR
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROR(x,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: SHA_ROT
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROT(X,l,r)
  - 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: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: SHA_ROL
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROL(X,n)
  - 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: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: SHA_ROR
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROR(X,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: setW
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setW(x, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: setW
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setW(x, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: setW
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setW(x, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: W
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: W(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: SHA_SRC
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_SRC(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: SHA_MIX
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_MIX(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - t
    - ','
    - input
    - ','
    - fn
    - ','
    - constant
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    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: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: SHA_ROUND
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROUND(t, input, fn, constant, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - t
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: T_0_15
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T_0_15(t, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - t
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: T_16_19
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T_16_19(t, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - t
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: T_20_39
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T_20_39(t, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - t
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: T_40_59
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T_40_59(t, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - t
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: T_60_79
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T_60_79(t, A, B, C, D, E)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:155,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:156,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:157,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:158,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:159,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:160,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:161,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:162,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:163,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:164,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:165,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:166,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:167,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:168,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:169,1
    - Dst: T_0_15
      Src: /src/haproxy/src/sha1.c:170,1
    - Dst: T_16_19
      Src: /src/haproxy/src/sha1.c:173,1
    - Dst: T_16_19
      Src: /src/haproxy/src/sha1.c:174,1
    - Dst: T_16_19
      Src: /src/haproxy/src/sha1.c:175,1
    - Dst: T_16_19
      Src: /src/haproxy/src/sha1.c:176,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:179,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:180,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:181,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:182,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:183,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:184,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:185,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:186,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:187,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:188,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:189,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:190,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:191,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:192,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:193,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:194,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:195,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:196,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:197,1
    - Dst: T_20_39
      Src: /src/haproxy/src/sha1.c:198,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:201,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:202,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:203,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:204,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:205,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:206,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:207,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:208,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:209,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:210,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:211,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:212,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:213,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:214,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:215,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:216,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:217,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:218,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:219,1
    - Dst: T_40_59
      Src: /src/haproxy/src/sha1.c:220,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:223,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:224,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:225,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:226,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:227,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:228,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:229,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:230,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:231,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:232,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:233,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:234,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:235,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:236,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:237,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:238,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:239,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:240,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:241,1
    - Dst: T_60_79
      Src: /src/haproxy/src/sha1.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 91
    argCount: 2
    argNames:
    - ctx
    - block
    argTypes:
    - blk_SHA_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 249
    functionName: blk_SHA1_Block
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 0
    functionsReached:
    - T_60_79
    - T_20_39
    - T_0_15
    - T_40_59
    - T_16_19
    linkageType: ''
    returnType: void
    signature: void blk_SHA1_Block(blk_SHA_CTX *ctx, const void *block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - blk_SHA_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: blk_SHA1_Init
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void blk_SHA1_Init(blk_SHA_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/sha1.c:274,1
    - Dst: blk_SHA1_Block
      Src: /src/haproxy/src/sha1.c:280,1
    - Dst: blk_SHA1_Block
      Src: /src/haproxy/src/sha1.c:283,1
    - Dst: memcpy
      Src: /src/haproxy/src/sha1.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - blk_SHA_CTX*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 289
    functionName: blk_SHA1_Update
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 2
    functionsReached:
    - blk_SHA1_Block
    - memcpy
    linkageType: ''
    returnType: void
    signature: void blk_SHA1_Update(blk_SHA_CTX *ctx, const void *data, unsigned long
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/haproxy/src/sha1.c:298,1
    - Dst: htonl
      Src: /src/haproxy/src/sha1.c:299,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/sha1.c:302,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/sha1.c:303,1
    - Dst: put_be32
      Src: /src/haproxy/src/sha1.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hashout
    - ctx
    argTypes:
    - unsigned char[]
    - blk_SHA_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 308
    functionName: blk_SHA1_Final
    functionSourceFile: /src/haproxy/src/sha1.c
    functionUses: 2
    functionsReached:
    - htonl
    - blk_SHA1_Update
    - put_be32
    linkageType: ''
    returnType: void
    signature: void blk_SHA1_Final(unsigned char hashout[20], blk_SHA_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/haproxy.c:283,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/haproxy.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - kw
    - file
    - linenum
    - errmsg
    argTypes:
    - struct cfg_keyword*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 291
    functionName: check_kw_experimental
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 2
    functionsReached:
    - memprintf
    - mark_tainted
    linkageType: ''
    returnType: int
    signature: "int check_kw_experimental(struct cfg_keyword *kw, const char *file,
      int linenum,\n                          char **errmsg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/haproxy.c:318,1
    - Dst: fprintf
      Src: /src/haproxy/src/haproxy.c:320,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:321,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/haproxy.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - str
    - must_free
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 326
    functionName: hap_register_build_opts
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 7
    functionsReached:
    - fprintf
    - calloc
    - exit
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_build_opts(const char *str, int must_free)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/haproxy.c:337,1
    - Dst: container_of
      Src: /src/haproxy/src/haproxy.c:340,1
    - Dst: container_of
      Src: /src/haproxy/src/haproxy.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 350
    functionName: hap_get_next_build_opt
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - container_of
    linkageType: ''
    returnType: char
    signature: char **hap_get_next_build_opt(const char **curr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:359,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:359,1
    - Dst: malloc
      Src: /src/haproxy/src/haproxy.c:364,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/haproxy.c:368,1
    - Dst: strchr
      Src: /src/haproxy/src/haproxy.c:377,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:383,1
    - Dst: snprintf
      Src: /src/haproxy/src/haproxy.c:401,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:404,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 408
    functionName: hap_register_feature
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 2
    functionsReached:
    - malloc
    - ha_free
    - strcmp
    - strchr
    - strlcpy2
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void hap_register_feature(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/haproxy.c:419,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/haproxy.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 423
    functionName: hap_register_unittest
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - calloc
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void hap_register_unittest(const char *name, int (*fct)(int argc, char
      **argv))
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:473,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:483,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:493,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:503,1
    - Dst: strncmp
      Src: /src/haproxy/src/haproxy.c:516,1
    - Dst: strncmp
      Src: /src/haproxy/src/haproxy.c:517,1
    - Dst: strncmp
      Src: /src/haproxy/src/haproxy.c:518,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:523,1
    - Dst: strrchr
      Src: /src/haproxy/src/haproxy.c:532,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:537,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:544,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 81
    argCount: 2
    argNames:
    - version
    - value
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 549
    functionName: split_version
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - strrchr
    - strtol
    - strncmp
    linkageType: ''
    returnType: int
    signature: int split_version(const char *version, unsigned int *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: split_version
      Src: /src/haproxy/src/haproxy.c:568,1
    - Dst: split_version
      Src: /src/haproxy/src/haproxy.c:570,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - version
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 581
    functionName: compare_current_version
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - split_version
    linkageType: ''
    returnType: int
    signature: int compare_current_version(const char *version)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:587,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:590,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/haproxy.c:603,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:605,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:607,1
    - Dst: uname
      Src: /src/haproxy/src/haproxy.c:610,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:611,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 613
    functionName: display_version
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - strlcpy2
    - uname
    - printf
    - strlen
    linkageType: ''
    returnType: void
    signature: void display_version()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: istadv
      Src: /src/haproxy/src/haproxy.c:622,1
    - Dst: istadv
      Src: /src/haproxy/src/haproxy.c:623,1
    - Dst: istdiff
      Src: /src/haproxy/src/haproxy.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 626
    functionName: feat_cmp
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - istdiff
    - istadv
    linkageType: ''
    returnType: int
    signature: int feat_cmp(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/haproxy.c:633,1
    - Dst: calloc
      Src: /src/haproxy/src/haproxy.c:642,1
    - Dst: istsplit
      Src: /src/haproxy/src/haproxy.c:648,1
    - Dst: qsort
      Src: /src/haproxy/src/haproxy.c:650,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 655
    functionName: split_feature_list
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - calloc
    - ist
    - qsort
    - istsplit
    linkageType: ''
    returnType: struct ist
    signature: struct ist *split_feature_list()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:669,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:690,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 1
    argNames:
    - display_mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 691
    functionName: display_version_plain
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void display_version_plain(int display_mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: split_feature_list
      Src: /src/haproxy/src/haproxy.c:698,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:700,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:701,1
    - Dst: isttest
      Src: /src/haproxy/src/haproxy.c:703,1
    - Dst: istist
      Src: /src/haproxy/src/haproxy.c:703,1
    - Dst: ist
      Src: /src/haproxy/src/haproxy.c:703,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:704,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:705,1
    - Dst: isttest
      Src: /src/haproxy/src/haproxy.c:707,1
    - Dst: istist
      Src: /src/haproxy/src/haproxy.c:707,1
    - Dst: ist
      Src: /src/haproxy/src/haproxy.c:707,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:708,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:709,1
    - Dst: hap_get_next_build_opt
      Src: /src/haproxy/src/haproxy.c:714,1
    - Dst: puts
      Src: /src/haproxy/src/haproxy.c:714,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:717,1
    - Dst: list_unittests
      Src: /src/haproxy/src/haproxy.c:720,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:721,1
    - Dst: list_pollers
      Src: /src/haproxy/src/haproxy.c:723,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:724,1
    - Dst: list_mux_proto
      Src: /src/haproxy/src/haproxy.c:725,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:726,1
    - Dst: list_services
      Src: /src/haproxy/src/haproxy.c:727,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:728,1
    - Dst: list_filters
      Src: /src/haproxy/src/haproxy.c:729,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:730,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:731,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 693
    functionDepth: 7
    functionLinenumber: 693
    functionLinenumberEnd: 732
    functionName: display_build_opts
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - ist
    - hap_get_next_build_opt
    - list_mux_proto
    - ha_free
    - putchar
    - printf
    - list_pollers
    - puts
    - istist
    - list_services
    - split_feature_list
    - list_unittests
    - list_filters
    - isttest
    linkageType: ''
    returnType: void
    signature: void display_build_opts()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/haproxy/src/haproxy.c:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 826
    functionName: tell_old_pids
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - kill
    linkageType: ''
    returnType: int
    signature: int tell_old_pids(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 846
    functionName: delete_oldpid
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int delete_oldpid(int pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 851
    functionDepth: 9
    functionLinenumber: 851
    functionLinenumberEnd: 854
    functionName: exit_on_failure
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - ha_alert
    linkageType: ''
    returnType: void
    signature: void exit_on_failure()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: soft_stop
      Src: /src/haproxy/src/haproxy.c:864,1
    - Dst: signal_unregister_handler
      Src: /src/haproxy/src/haproxy.c:865,1
    - Dst: pool_gc
      Src: /src/haproxy/src/haproxy.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 867
    functionName: sig_soft_stop
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - signal_unregister_handler
    - soft_stop
    - pool_gc
    linkageType: ''
    returnType: void
    signature: void sig_soft_stop(struct sig_handler *sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: protocol_pause_all
      Src: /src/haproxy/src/haproxy.c:874,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:876,1
    - Dst: send_log
      Src: /src/haproxy/src/haproxy.c:877,1
    - Dst: soft_stop
      Src: /src/haproxy/src/haproxy.c:878,1
    - Dst: pool_gc
      Src: /src/haproxy/src/haproxy.c:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 872
    functionDepth: 10
    functionLinenumber: 872
    functionLinenumberEnd: 881
    functionName: sig_pause
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - soft_stop
    - pool_gc
    - protocol_pause_all
    - ha_warning
    - send_log
    linkageType: ''
    returnType: void
    signature: void sig_pause(struct sig_handler *sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: protocol_resume_all
      Src: /src/haproxy/src/haproxy.c:888,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:890,1
    - Dst: send_log
      Src: /src/haproxy/src/haproxy.c:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 886
    functionDepth: 10
    functionLinenumber: 886
    functionLinenumberEnd: 893
    functionName: sig_listen
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - send_log
    - ha_warning
    - protocol_resume_all
    linkageType: ''
    returnType: void
    signature: void sig_listen(struct sig_handler *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:902,1
    - Dst: send_log
      Src: /src/haproxy/src/haproxy.c:906,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/haproxy.c:908,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:912,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:913,1
    - Dst: send_log
      Src: /src/haproxy/src/haproxy.c:914,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/haproxy.c:920,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:923,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:923,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/haproxy.c:925,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:929,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:929,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/haproxy.c:931,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:935,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:935,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:937,1
    - Dst: send_log
      Src: /src/haproxy/src/haproxy.c:938,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 898
    functionDepth: 10
    functionLinenumber: 898
    functionLinenumberEnd: 942
    functionName: sig_dump_state
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - COUNTERS_SHARED_TOTAL
    - send_log
    - chunk_printf
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void sig_dump_state(struct sig_handler *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_gc
      Src: /src/haproxy/src/haproxy.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 3
    functionLinenumber: 944
    functionLinenumberEnd: 948
    functionName: dump
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 46
    functionsReached:
    - pool_gc
    linkageType: ''
    returnType: void
    signature: void dump(struct sig_handler *sh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/haproxy/src/haproxy.c:961,1
    - Dst: fclose
      Src: /src/haproxy/src/haproxy.c:966,1
    - Dst: fclose
      Src: /src/haproxy/src/haproxy.c:967,1
    - Dst: fclose
      Src: /src/haproxy/src/haproxy.c:968,1
    - Dst: dup2
      Src: /src/haproxy/src/haproxy.c:970,1
    - Dst: dup2
      Src: /src/haproxy/src/haproxy.c:971,1
    - Dst: dup2
      Src: /src/haproxy/src/haproxy.c:972,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:974,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:978,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 957
    functionDepth: 9
    functionLinenumber: 957
    functionLinenumberEnd: 980
    functionName: stdio_quiet
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - fclose
    - exit
    - open
    - dup2
    - ha_alert
    - close
    linkageType: ''
    returnType: void
    signature: void stdio_quiet(int fd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:995,1
    - Dst: stat
      Src: /src/haproxy/src/haproxy.c:1001,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1002,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:1004,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1005,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/haproxy.c:1008,1
    - Dst: scandir
      Src: /src/haproxy/src/haproxy.c:1013,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1015,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:1017,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1018,1
    - Dst: strstr
      Src: /src/haproxy/src/haproxy.c:1025,1
    - Dst: memprintf
      Src: /src/haproxy/src/haproxy.c:1034,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1035,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1037,1
    - Dst: stat
      Src: /src/haproxy/src/haproxy.c:1040,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1041,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:1043,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1044,1
    - Dst: S_ISREG
      Src: /src/haproxy/src/haproxy.c:1050,1
    - Dst: list_append_cfgfile
      Src: /src/haproxy/src/haproxy.c:1053,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1054,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1057,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1061,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1062,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1065,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1068,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:1069,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1070,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1073,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 990
    functionDepth: 9
    functionLinenumber: 990
    functionLinenumberEnd: 1074
    functionName: cfgfiles_expand_directories
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - memprintf
    - exit
    - strerror
    - scandir
    - list_append_cfgfile
    - list_for_each_entry_safe
    - stat
    - S_ISDIR
    - free
    - S_ISREG
    - ha_alert
    - strstr
    linkageType: ''
    returnType: void
    signature: void cfgfiles_expand_directories(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cfgfiles_expand_directories
      Src: /src/haproxy/src/haproxy.c:1086,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/haproxy.c:1088,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1089,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:1091,1
    - Dst: load_cfg_in_mem
      Src: /src/haproxy/src/haproxy.c:1093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1081
    functionDepth: 10
    functionLinenumber: 1081
    functionLinenumberEnd: 1101
    functionName: load_cfg
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - load_cfg_in_mem
    - LIST_ISEMPTY
    - cfgfiles_expand_directories
    - usage
    linkageType: ''
    returnType: int
    signature: int load_cfg()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1119,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1120,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1121,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1122,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1123,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1124,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1125,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1126,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:1127,1
    - Dst: memprintf
      Src: /src/haproxy/src/haproxy.c:1133,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1137,1
    - Dst: parse_cfg
      Src: /src/haproxy/src/haproxy.c:1141,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1146,1
    - Dst: unsetenv
      Src: /src/haproxy/src/haproxy.c:1154,1
    - Dst: unsetenv
      Src: /src/haproxy/src/haproxy.c:1155,1
    - Dst: unsetenv
      Src: /src/haproxy/src/haproxy.c:1156,1
    - Dst: unsetenv
      Src: /src/haproxy/src/haproxy.c:1157,1
    - Dst: unsetenv
      Src: /src/haproxy/src/haproxy.c:1158,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1164,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1168,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1169,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1109
    functionDepth: 9
    functionLinenumber: 1109
    functionLinenumberEnd: 1176
    functionName: read_cfg
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_cfg
    - list_for_each_entry
    - setenv
    - unsetenv
    - free
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int read_cfg()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/haproxy.c:1188,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:1190,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1281,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1184
    functionDepth: 9
    functionLinenumber: 1184
    functionLinenumberEnd: 1283
    functionName: copy_argv
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - calloc
    - free
    - ha_warning
    linkageType: ''
    returnType: char
    signature: char **copy_argv(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/haproxy/src/haproxy.c:1313,1
    - Dst: write_u32
      Src: /src/haproxy/src/haproxy.c:1314,1
    - Dst: write_u32
      Src: /src/haproxy/src/haproxy.c:1315,1
    - Dst: write_u16
      Src: /src/haproxy/src/haproxy.c:1318,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:1318,1
    - Dst: write_u16
      Src: /src/haproxy/src/haproxy.c:1319,1
    - Dst: getppid
      Src: /src/haproxy/src/haproxy.c:1319,1
    - Dst: open
      Src: /src/haproxy/src/haproxy.c:1322,1
    - Dst: read
      Src: /src/haproxy/src/haproxy.c:1324,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:1327,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/haproxy.c:1332,1
    - Dst: write_u32
      Src: /src/haproxy/src/haproxy.c:1338,1
    - Dst: random
      Src: /src/haproxy/src/haproxy.c:1338,1
    - Dst: memcpy
      Src: /src/haproxy/src/haproxy.c:1344,1
    - Dst: memcpy
      Src: /src/haproxy/src/haproxy.c:1348,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/haproxy.c:1351,1
    - Dst: write_u32
      Src: /src/haproxy/src/haproxy.c:1352,1
    - Dst: strncpy
      Src: /src/haproxy/src/haproxy.c:1359,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:1360,1
    - Dst: memset
      Src: /src/haproxy/src/haproxy.c:1365,1
    - Dst: blk_SHA1_Init
      Src: /src/haproxy/src/haproxy.c:1366,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/haproxy.c:1367,1
    - Dst: blk_SHA1_Final
      Src: /src/haproxy/src/haproxy.c:1368,1
    - Dst: srandom
      Src: /src/haproxy/src/haproxy.c:1370,1
    - Dst: read_u32
      Src: /src/haproxy/src/haproxy.c:1370,1
    - Dst: ha_random_seed
      Src: /src/haproxy/src/haproxy.c:1371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1302
    functionDepth: 4
    functionLinenumber: 1302
    functionLinenumberEnd: 1372
    functionName: ha_random_boot
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - getpid
    - ha_random_seed
    - open
    - close
    - random
    - blk_SHA1_Init
    - blk_SHA1_Final
    - strncpy
    - memcpy
    - blk_SHA1_Update
    - read
    - getppid
    - memset
    - write_u16
    - RAND_bytes
    - gettimeofday
    - write_u32
    - read_u32
    - srandom
    - strlen
    linkageType: ''
    returnType: void
    signature: void ha_random_boot(char *const *argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1392,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:1394,1
    - Dst: parse_line
      Src: /src/haproxy/src/haproxy.c:1395,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1400,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1401,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1405,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1406,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1410,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1411,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1415,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1416,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1420,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1421,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:1425,1
    - Dst: cfg_eval_condition
      Src: /src/haproxy/src/haproxy.c:1428,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1432,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1434,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1437,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1379
    functionDepth: 9
    functionLinenumber: 1379
    functionLinenumberEnd: 1438
    functionName: do_check_condition
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - exit
    - cfg_eval_condition
    - parse_line
    - ha_alert
    - usage
    - strlen
    linkageType: ''
    returnType: void
    signature: void do_check_condition()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1451,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:1467,1
    - Dst: tzset
      Src: /src/haproxy/src/haproxy.c:1471,1
    - Dst: clock_init_process_date
      Src: /src/haproxy/src/haproxy.c:1472,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:1475,1
    - Dst: memset
      Src: /src/haproxy/src/haproxy.c:1482,1
    - Dst: gethostname
      Src: /src/haproxy/src/haproxy.c:1483,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:1485,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1487,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1488,1
    - Dst: strchr
      Src: /src/haproxy/src/haproxy.c:1495,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:1498,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:1499,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1501,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1502,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/haproxy.c:1505,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:1505,1
    - Dst: b_orig
      Src: /src/haproxy/src/haproxy.c:1506,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1507,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1508,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1446
    functionDepth: 9
    functionLinenumber: 1446
    functionLinenumberEnd: 1510
    functionName: init_early
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - getpid
    - memset
    - exit
    - b_orig
    - setenv
    - tzset
    - strchr
    - getenv
    - gethostname
    - clock_init_process_date
    - ha_alert
    - strlen
    - chunk_initlen
    - strdup
    linkageType: ''
    returnType: void
    signature: void init_early(int argc, char **argv)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: display_version_plain
      Src: /src/haproxy/src/haproxy.c:1527,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:1528,1
    - Dst: display_version_plain
      Src: /src/haproxy/src/haproxy.c:1531,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:1532,1
    - Dst: display_version_plain
      Src: /src/haproxy/src/haproxy.c:1535,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:1536,1
    - Dst: display_version
      Src: /src/haproxy/src/haproxy.c:1539,1
    - Dst: display_build_opts
      Src: /src/haproxy/src/haproxy.c:1541,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:1542,1
    - Dst: protocol_clrf_all
      Src: /src/haproxy/src/haproxy.c:1571,1
    - Dst: strchr
      Src: /src/haproxy/src/haproxy.c:1593,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1597,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/haproxy.c:1602,1
    - Dst: atoll
      Src: /src/haproxy/src/haproxy.c:1602,1
    - Dst: pool_parse_debugging
      Src: /src/haproxy/src/haproxy.c:1611,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1615,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1617,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:1618,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1619,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:1621,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:1622,1
    - Dst: trace_add_cmd
      Src: /src/haproxy/src/haproxy.c:1644,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1646,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:1647,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1648,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1680,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1681,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:1684,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1694,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1695,1
    - Dst: malloc
      Src: /src/haproxy/src/haproxy.c:1697,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:1697,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1698,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1699,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/haproxy.c:1701,1
    - Dst: realloc
      Src: /src/haproxy/src/haproxy.c:1715,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/haproxy.c:1715,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1717,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1718,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:1722,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1724,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:1726,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1727,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:1728,1
    - Dst: isspace
      Src: /src/haproxy/src/haproxy.c:1729,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1731,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1733,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1737,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1744,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1745,1
    - Dst: list_append_cfgfile
      Src: /src/haproxy/src/haproxy.c:1758,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1759,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1762,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1771,1
    - Dst: atol
      Src: /src/haproxy/src/haproxy.c:1775,1
    - Dst: atol
      Src: /src/haproxy/src/haproxy.c:1776,1
    - Dst: atol
      Src: /src/haproxy/src/haproxy.c:1777,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1779,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:1780,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1781,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1782,1
    - Dst: list_append_cfgfile
      Src: /src/haproxy/src/haproxy.c:1787,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1788,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1791,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1795,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:1796,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1797,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1798,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1801,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 215
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1512
    functionDepth: 9
    functionLinenumber: 1512
    functionLinenumberEnd: 1808
    functionName: haproxy_init_args
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - exit
    - list_append_cfgfile
    - printf
    - free
    - display_version_plain
    - trace_add_cmd
    - isspace
    - HA_ATOMIC_STORE
    - atoll
    - display_build_opts
    - ha_free
    - strerror
    - atol
    - strcmp
    - protocol_clrf_all
    - strchr
    - realloc
    - strtol
    - LIST_INSERT
    - malloc
    - pool_parse_debugging
    - deinit_and_exit
    - strlen
    - display_version
    - ha_alert
    - ha_warning
    - array_size_or_fail
    - usage
    - strdup
    linkageType: ''
    returnType: void
    signature: void haproxy_init_args(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_argv
      Src: /src/haproxy/src/haproxy.c:1851,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1853,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1854,1
    - Dst: haproxy_init_args
      Src: /src/haproxy/src/haproxy.c:1857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1816
    functionDepth: 9
    functionLinenumber: 1816
    functionLinenumberEnd: 1858
    functionName: init_args
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - copy_argv
    - haproxy_init_args
    - exit
    - ha_alert
    linkageType: ''
    returnType: void
    signature: void init_args(int argc, char **argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/haproxy.c:1869,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1873,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1874,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1875,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1876,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1877,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1878,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1879,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1880,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1881,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1882,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1885,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1889,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1890,1
    - Dst: acl_dump_kwd
      Src: /src/haproxy/src/haproxy.c:1891,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1894,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1895,1
    - Dst: cfg_dump_registered_keywords
      Src: /src/haproxy/src/haproxy.c:1896,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1899,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1900,1
    - Dst: cli_list_keywords
      Src: /src/haproxy/src/haproxy.c:1901,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1904,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1905,1
    - Dst: smp_dump_conv_kw
      Src: /src/haproxy/src/haproxy.c:1906,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1909,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1910,1
    - Dst: flt_dump_kws
      Src: /src/haproxy/src/haproxy.c:1911,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1914,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1915,1
    - Dst: smp_dump_fetch_kw
      Src: /src/haproxy/src/haproxy.c:1916,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1919,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1920,1
    - Dst: list_services
      Src: /src/haproxy/src/haproxy.c:1921,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1863
    functionDepth: 6
    functionLinenumber: 1863
    functionLinenumberEnd: 1924
    functionName: dump_registered_keywords
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - cfg_dump_registered_keywords
    - smp_dump_fetch_kw
    - strcmp
    - flt_dump_kws
    - printf
    - strchr
    - acl_dump_kwd
    - list_services
    - smp_dump_conv_kw
    - cli_list_keywords
    linkageType: ''
    returnType: void
    signature: void dump_registered_keywords(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/haproxy.c:1940,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/haproxy.c:1941,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/haproxy.c:1944,1
    - Dst: ha_random64_pair_hashed
      Src: /src/haproxy/src/haproxy.c:1948,1
    - Dst: memcpy
      Src: /src/haproxy/src/haproxy.c:1951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1931
    functionDepth: 1
    functionLinenumber: 1931
    functionLinenumberEnd: 1953
    functionName: generate_random_cluster_secret
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - memcpy
    - ha_random64_pair_hashed
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void generate_random_cluster_secret()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/haproxy/src/haproxy.c:1967,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1968,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:1969,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1971,1
    - Dst: fork
      Src: /src/haproxy/src/haproxy.c:1974,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1977,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:1978,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1979,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:1984,1
    - Dst: setsid
      Src: /src/haproxy/src/haproxy.c:1986,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:1991,1
    - Dst: read
      Src: /src/haproxy/src/haproxy.c:2002,1
    - Dst: waitpid
      Src: /src/haproxy/src/haproxy.c:2003,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2005,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:2006,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2007,1
    - Dst: WIFEXITED
      Src: /src/haproxy/src/haproxy.c:2009,1
    - Dst: WEXITSTATUS
      Src: /src/haproxy/src/haproxy.c:2010,1
    - Dst: WIFSIGNALED
      Src: /src/haproxy/src/haproxy.c:2011,1
    - Dst: WTERMSIG
      Src: /src/haproxy/src/haproxy.c:2012,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2016,1
    - Dst: strsignal
      Src: /src/haproxy/src/haproxy.c:2017,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2021,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1959
    functionDepth: 9
    functionLinenumber: 1959
    functionLinenumberEnd: 2023
    functionName: apply_daemon_mode
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - fork
    - WIFSIGNALED
    - exit
    - waitpid
    - strerror
    - pipe
    - setsid
    - WIFEXITED
    - WEXITSTATUS
    - protocol_unbind_all
    - read
    - ha_alert
    - WTERMSIG
    - strsignal
    - close
    linkageType: ''
    returnType: void
    signature: void apply_daemon_mode()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/haproxy/src/haproxy.c:2030,1
    - Dst: open
      Src: /src/haproxy/src/haproxy.c:2031,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2033,1
    - Dst: snprintf
      Src: /src/haproxy/src/haproxy.c:2036,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:2036,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/haproxy.c:2037,1
    - Dst: write
      Src: /src/haproxy/src/haproxy.c:2037,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:2037,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:2038,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2026
    functionDepth: 9
    functionLinenumber: 2026
    functionLinenumberEnd: 2043
    functionName: handle_pidfile
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - getpid
    - DISGUISE
    - ha_free
    - write
    - open
    - unlink
    - ha_alert
    - close
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int handle_pidfile(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:2052,1
    - Dst: sock_get_old_sockets
      Src: /src/haproxy/src/haproxy.c:2053,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2054,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2056,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2045
    functionDepth: 9
    functionLinenumber: 2045
    functionLinenumberEnd: 2059
    functionName: get_listeners_fd
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - exit
    - strcmp
    - ha_alert
    - sock_get_old_sockets
    linkageType: ''
    returnType: void
    signature: void get_listeners_fd()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: protocol_bind_all
      Src: /src/haproxy/src/haproxy.c:2073,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/haproxy.c:2084,1
    - Dst: select
      Src: /src/haproxy/src/haproxy.c:2092,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2097,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/haproxy.c:2099,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:2100,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2101,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2061
    functionDepth: 9
    functionLinenumber: 2061
    functionLinenumberEnd: 2103
    functionName: bind_listeners
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - select
    - exit
    - protocol_bind_all
    - protocol_unbind_all
    - tell_old_pids
    - ha_alert
    linkageType: ''
    returnType: void
    signature: void bind_listeners()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_Init
      Src: /src/haproxy/src/haproxy.c:2114,1
    - Dst: wolfSSL_Debugging_ON
      Src: /src/haproxy/src/haproxy.c:2115,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/haproxy.c:2119,1
    - Dst: strncmp
      Src: /src/haproxy/src/haproxy.c:2120,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2121,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2122,1
    - Dst: SSL_load_error_strings
      Src: /src/haproxy/src/haproxy.c:2131,1
    - Dst: startup_logs_init
      Src: /src/haproxy/src/haproxy.c:2136,1
    - Dst: init_acl
      Src: /src/haproxy/src/haproxy.c:2138,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2139,1
    - Dst: do_check_condition
      Src: /src/haproxy/src/haproxy.c:2149,1
    - Dst: chdir
      Src: /src/haproxy/src/haproxy.c:2151,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2152,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:2152,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2110
    functionDepth: 10
    functionLinenumber: 2110
    functionLinenumberEnd: 2155
    functionName: step_init_1
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - SSL_load_error_strings
    - exit
    - chdir
    - strerror
    - do_check_condition
    - wolfSSL_Init
    - strncmp
    - OpenSSL_version
    - wolfSSL_Debugging_ON
    - startup_logs_init
    - init_acl
    - ha_alert
    linkageType: ''
    returnType: void
    signature: void step_init_1()
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: defaults_px_destroy
      Src: /src/haproxy/src/haproxy.c:2176,1
    - Dst: defaults_px_destroy_all_unref
      Src: /src/haproxy/src/haproxy.c:2182,1
    - Dst: defaults_px_ref_all
      Src: /src/haproxy/src/haproxy.c:2185,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2188,1
    - Dst: struct pre_check_fct*::fct
      Src: /src/haproxy/src/haproxy.c:2189,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2191,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2192,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/haproxy.c:2199,1
    - Dst: clock_adjust_now_offset
      Src: /src/haproxy/src/haproxy.c:2200,1
    - Dst: cpu_detect_usable
      Src: /src/haproxy/src/haproxy.c:2207,1
    - Dst: cpu_detect_topology
      Src: /src/haproxy/src/haproxy.c:2210,1
    - Dst: cpu_fixup_topology
      Src: /src/haproxy/src/haproxy.c:2213,1
    - Dst: cpu_compose_clusters
      Src: /src/haproxy/src/haproxy.c:2216,1
    - Dst: cpu_refine_cpusets
      Src: /src/haproxy/src/haproxy.c:2219,1
    - Dst: thread_detect_count
      Src: /src/haproxy/src/haproxy.c:2223,1
    - Dst: check_config_validity
      Src: /src/haproxy/src/haproxy.c:2226,1
    - Dst: chdir
      Src: /src/haproxy/src/haproxy.c:2227,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2228,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:2228,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2229,1
    - Dst: shm_stats_file_prepare
      Src: /src/haproxy/src/haproxy.c:2235,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2237,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/haproxy.c:2240,1
    - Dst: clock_adjust_now_offset
      Src: /src/haproxy/src/haproxy.c:2241,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2244,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2252,1
    - Dst: struct post_server_check_fct*::fct
      Src: /src/haproxy/src/haproxy.c:2254,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2256,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2257,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2261,1
    - Dst: struct post_proxy_check_fct*::fct
      Src: /src/haproxy/src/haproxy.c:2262,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2264,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2265,1
    - Dst: pattern_finalize_config
      Src: /src/haproxy/src/haproxy.c:2272,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2274,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2275,1
    - Dst: netns_init
      Src: /src/haproxy/src/haproxy.c:2282,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2284,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2285,1
    - Dst: thread_detect_binding_discrepancies
      Src: /src/haproxy/src/haproxy.c:2289,1
    - Dst: thread_detect_more_than_cpus
      Src: /src/haproxy/src/haproxy.c:2290,1
    - Dst: apply_server_state
      Src: /src/haproxy/src/haproxy.c:2293,1
    - Dst: apply_stats_file
      Src: /src/haproxy/src/haproxy.c:2296,1
    - Dst: srv_compute_all_admin_states
      Src: /src/haproxy/src/haproxy.c:2299,1
    - Dst: srv_init_addr
      Src: /src/haproxy/src/haproxy.c:2302,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2304,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2305,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2309,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2310,1
    - Dst: qfprintf
      Src: /src/haproxy/src/haproxy.c:2315,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/haproxy.c:2316,1
    - Dst: dump_libs
      Src: /src/haproxy/src/haproxy.c:2317,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:2318,1
    - Dst: dump_registered_keywords
      Src: /src/haproxy/src/haproxy.c:2323,1
    - Dst: cfg_run_diagnostics
      Src: /src/haproxy/src/haproxy.c:2326,1
    - Dst: qfprintf
      Src: /src/haproxy/src/haproxy.c:2334,1
    - Dst: qfprintf
      Src: /src/haproxy/src/haproxy.c:2354,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:2355,1
    - Dst: qfprintf
      Src: /src/haproxy/src/haproxy.c:2357,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2358,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:2362,1
    - Dst: init_buffer
      Src: /src/haproxy/src/haproxy.c:2365,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2366,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2368,1
    - Dst: struct post_check_fct*::fct
      Src: /src/haproxy/src/haproxy.c:2369,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2371,1
    - Dst: set_global_maxconn
      Src: /src/haproxy/src/haproxy.c:2397,1
    - Dst: compute_ideal_maxsock
      Src: /src/haproxy/src/haproxy.c:2398,1
    - Dst: compute_ideal_maxpipes
      Src: /src/haproxy/src/haproxy.c:2401,1
    - Dst: proxy_adjust_all_maxconn
      Src: /src/haproxy/src/haproxy.c:2407,1
    - Dst: my_flsl
      Src: /src/haproxy/src/haproxy.c:2419,1
    - Dst: init_trash_buffers
      Src: /src/haproxy/src/haproxy.c:2431,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2432,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2433,1
    - Dst: init_log_buffers
      Src: /src/haproxy/src/haproxy.c:2436,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2437,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2438,1
    - Dst: generate_random_cluster_secret
      Src: /src/haproxy/src/haproxy.c:2442,1
    - Dst: disable_poller
      Src: /src/haproxy/src/haproxy.c:2450,1
    - Dst: disable_poller
      Src: /src/haproxy/src/haproxy.c:2453,1
    - Dst: disable_poller
      Src: /src/haproxy/src/haproxy.c:2456,1
    - Dst: disable_poller
      Src: /src/haproxy/src/haproxy.c:2459,1
    - Dst: disable_poller
      Src: /src/haproxy/src/haproxy.c:2462,1
    - Dst: list_pollers
      Src: /src/haproxy/src/haproxy.c:2467,1
    - Dst: fprintf
      Src: /src/haproxy/src/haproxy.c:2468,1
    - Dst: list_filters
      Src: /src/haproxy/src/haproxy.c:2469,1
    - Dst: init_pollers
      Src: /src/haproxy/src/haproxy.c:2472,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2473,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2484,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:2487,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:2491,1
    - Dst: stop_proxy
      Src: /src/haproxy/src/haproxy.c:2496,1
    - Dst: hlua_post_init
      Src: /src/haproxy/src/haproxy.c:2499,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2500,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/haproxy.c:2511,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/haproxy.c:2514,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haproxy.c:2516,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haproxy.c:2518,1
    - Dst: __has_feature
      Src: /src/haproxy/src/haproxy.c:2520,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haproxy.c:2521,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/haproxy.c:2524,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haproxy.c:2525,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/haproxy.c:2528,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haproxy.c:2529,1
    - Dst: post_mortem_add_component
      Src: /src/haproxy/src/haproxy.c:2531,1
    - Dst: collect_libs
      Src: /src/haproxy/src/haproxy.c:2535,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 213
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2165
    functionDepth: 9
    functionLinenumber: 2165
    functionLinenumberEnd: 2536
    functionName: step_init_2
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - netns_init
    - exit
    - struct pre_check_fct*::fct
    - chdir
    - cfg_run_diagnostics
    - chunk_appendf
    - printf
    - pattern_finalize_config
    - cpu_detect_topology
    - apply_server_state
    - defaults_px_destroy_all_unref
    - cpu_compose_clusters
    - generate_random_cluster_secret
    - thread_detect_binding_discrepancies
    - clock_adjust_now_offset
    - collect_libs
    - strerror
    - init_log_buffers
    - struct post_proxy_check_fct*::fct
    - thread_detect_more_than_cpus
    - srv_init_addr
    - qfprintf
    - srv_compute_all_admin_states
    - my_flsl
    - disable_poller
    - struct post_server_check_fct*::fct
    - proxy_adjust_all_maxconn
    - compute_ideal_maxsock
    - struct post_check_fct*::fct
    - clock_update_date
    - init_pollers
    - deinit_and_exit
    - stop_proxy
    - chunk_reset
    - cpu_detect_usable
    - list_pollers
    - list_filters
    - check_config_validity
    - set_global_maxconn
    - post_mortem_add_component
    - dump_libs
    - compute_ideal_maxpipes
    - list_for_each_entry
    - hlua_post_init
    - defaults_px_destroy
    - cpu_fixup_topology
    - dump_registered_keywords
    - thread_detect_count
    - cpu_refine_cpusets
    - init_buffer
    - defaults_px_ref_all
    - ha_alert
    - init_trash_buffers
    - fprintf
    - chunk_newstr
    - apply_stats_file
    - __has_feature
    - shm_stats_file_prepare
    - strdup
    linkageType: ''
    returnType: void
    signature: void step_init_2(int argc, char** argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2549,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2550,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2551,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2552,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2554,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2555,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2556,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2557,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2564,1
    - Dst: apply_nofile_limit
      Src: /src/haproxy/src/haproxy.c:2567,1
    - Dst: apply_memory_limit
      Src: /src/haproxy/src/haproxy.c:2568,1
    - Dst: prepare_caps_from_permitted_set
      Src: /src/haproxy/src/haproxy.c:2576,1
    - Dst: geteuid
      Src: /src/haproxy/src/haproxy.c:2576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2546
    functionDepth: 2
    functionLinenumber: 2546
    functionLinenumberEnd: 2578
    functionName: step_init_3
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - apply_memory_limit
    - prepare_caps_from_permitted_set
    - apply_nofile_limit
    - geteuid
    - signal_register_fct
    linkageType: ''
    returnType: void
    signature: void step_init_3(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:2588,1
    - Dst: stdio_quiet
      Src: /src/haproxy/src/haproxy.c:2598,1
    - Dst: check_nofile_lim_and_prealloc_fd
      Src: /src/haproxy/src/haproxy.c:2609,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/haproxy.c:2612,1
    - Dst: clock_adjust_now_offset
      Src: /src/haproxy/src/haproxy.c:2613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2585
    functionDepth: 10
    functionLinenumber: 2585
    functionLinenumberEnd: 2615
    functionName: step_init_4
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - clock_adjust_now_offset
    - stdio_quiet
    - clock_update_date
    - check_nofile_lim_and_prealloc_fd
    - getenv
    linkageType: ''
    returnType: void
    signature: void step_init_4(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:2638,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2641
      start: 2621
    functionDepth: 9
    functionLinenumber: 2621
    functionLinenumberEnd: 2641
    functionName: set_verbosity
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void set_verbosity(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2654,1
    - Dst: sd_notify
      Src: /src/haproxy/src/haproxy.c:2660,1
    - Dst: atexit
      Src: /src/haproxy/src/haproxy.c:2665,1
    - Dst: set_verbosity
      Src: /src/haproxy/src/haproxy.c:2666,1
    - Dst: mworker_cli_create_master_proxy
      Src: /src/haproxy/src/haproxy.c:2669,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2670,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2671,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2672,1
    - Dst: mworker_cli_attach_server
      Src: /src/haproxy/src/haproxy.c:2676,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2677,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2678,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2679,1
    - Dst: mworker_create_master_cli
      Src: /src/haproxy/src/haproxy.c:2683,1
    - Dst: step_init_2
      Src: /src/haproxy/src/haproxy.c:2684,1
    - Dst: step_init_3
      Src: /src/haproxy/src/haproxy.c:2685,1
    - Dst: protocol_bind_all
      Src: /src/haproxy/src/haproxy.c:2686,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2687,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2688,1
    - Dst: step_init_4
      Src: /src/haproxy/src/haproxy.c:2691,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:2697,1
    - Dst: stdio_quiet
      Src: /src/haproxy/src/haproxy.c:2698,1
    - Dst: mworker_unblock_signals
      Src: /src/haproxy/src/haproxy.c:2703,1
    - Dst: mworker_run_master
      Src: /src/haproxy/src/haproxy.c:2705,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2706
      start: 2643
    functionDepth: 11
    functionLinenumber: 2643
    functionLinenumberEnd: 2706
    functionName: run_master_in_recovery_mode
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - exit
    - mworker_create_master_cli
    - list_for_each_entry
    - step_init_3
    - stdio_quiet
    - protocol_bind_all
    - free
    - set_verbosity
    - mworker_cli_attach_server
    - sd_notify
    - getenv
    - ha_alert
    - mworker_cli_create_master_proxy
    - mworker_run_master
    - atexit
    - step_init_2
    - mworker_unblock_signals
    - step_init_4
    linkageType: ''
    returnType: void
    signature: void run_master_in_recovery_mode(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/haproxy.c:2716,1
    - Dst: load_cfg
      Src: /src/haproxy/src/haproxy.c:2717,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:2718,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:2719,1
    - Dst: run_master_in_recovery_mode
      Src: /src/haproxy/src/haproxy.c:2727,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2730,1
    - Dst: read_cfg
      Src: /src/haproxy/src/haproxy.c:2733,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2734,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2735,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2736,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:2738,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:2739,1
    - Dst: run_master_in_recovery_mode
      Src: /src/haproxy/src/haproxy.c:2747,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2750,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/haproxy.c:2752,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/haproxy.c:2756,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2757,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2758,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2709
    functionDepth: 12
    functionLinenumber: 2709
    functionLinenumberEnd: 2766
    functionName: read_cfg_in_discovery_mode
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - read_cfg
    - run_master_in_recovery_mode
    - load_cfg
    - exit
    - ha_free
    - list_for_each_entry_safe
    - usermsgs_clr
    - getenv
    - LIST_ISEMPTY
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void read_cfg_in_discovery_mode(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:2809,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/haproxy.c:2818,1
    - Dst: unbind_listener
      Src: /src/haproxy/src/haproxy.c:2819,1
    - Dst: deinit_signals
      Src: /src/haproxy/src/haproxy.c:2823,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/haproxy.c:2827,1
    - Dst: defaults_px_unref_all
      Src: /src/haproxy/src/haproxy.c:2836,1
    - Dst: userlist_free
      Src: /src/haproxy/src/haproxy.c:2838,1
    - Dst: cfg_unregister_sections
      Src: /src/haproxy/src/haproxy.c:2840,1
    - Dst: deinit_log_buffers
      Src: /src/haproxy/src/haproxy.c:2842,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2844,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/haproxy.c:2850,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/haproxy.c:2850,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2852,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/haproxy.c:2853,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2854,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2855,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2856,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2857,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2858,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2859,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2860,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2861,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2862,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2863,1
    - Dst: task_destroy
      Src: /src/haproxy/src/haproxy.c:2864,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2867,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/haproxy.c:2868,1
    - Dst: free_logger
      Src: /src/haproxy/src/haproxy.c:2869,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2872,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2873,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2874,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2875,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2878,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2880,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2881,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2882,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2885,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2886,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2887,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2890,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2891,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2892,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2895,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2896,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2897,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2900,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2901,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2902,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2905,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2906,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2907,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2910,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2911,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2912,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2915,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2916,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2917,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2920,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2921,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2922,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2925,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2926,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2927,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2930,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2931,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2932,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2935,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2936,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2937,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2940,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2941,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2942,1
    - Dst: vars_prune
      Src: /src/haproxy/src/haproxy.c:2945,1
    - Dst: free_all_file_names
      Src: /src/haproxy/src/haproxy.c:2946,1
    - Dst: pool_destroy_all
      Src: /src/haproxy/src/haproxy.c:2947,1
    - Dst: deinit_pollers
      Src: /src/haproxy/src/haproxy.c:2948,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2953,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2956,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2958,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 114
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2960
      start: 2768
    functionDepth: 6
    functionLinenumber: 2768
    functionLinenumberEnd: 2960
    functionName: deinit
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 33
    functionsReached:
    - list_for_each_entry_safe
    - free
    - chunk_destroy
    - deinit_pollers
    - task_destroy
    - ha_free
    - vars_prune
    - protocol_unbind_all
    - deinit_signals
    - cfg_unregister_sections
    - pool_destroy_all
    - defaults_px_unref_all
    - LIST_DEL_INIT
    - unbind_listener
    - userlist_free
    - LIST_DELETE
    - free_all_file_names
    - BUG_ON
    - list_for_each_entry
    - proxy_drop
    - free_logger
    - LIST_ISEMPTY
    - deinit_log_buffers
    linkageType: ''
    returnType: void
    signature: void deinit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deinit
      Src: /src/haproxy/src/haproxy.c:2965,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2967
      start: 2962
    functionDepth: 7
    functionLinenumber: 2962
    functionLinenumberEnd: 2967
    functionName: deinit_and_exit
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 2
    functionsReached:
    - deinit
    - exit
    linkageType: ''
    returnType: void
    signature: void deinit_and_exit(int status)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/haproxy.c:2974,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/haproxy.c:2976,1
    - Dst: wake_expired_tasks
      Src: /src/haproxy/src/haproxy.c:2978,1
    - Dst: signal_process_queue
      Src: /src/haproxy/src/haproxy.c:2984,1
    - Dst: process_runnable_tasks
      Src: /src/haproxy/src/haproxy.c:2988,1
    - Dst: thread_has_tasks
      Src: /src/haproxy/src/haproxy.c:2996,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:2999,1
    - Dst: unlikely
      Src: /src/haproxy/src/haproxy.c:3001,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/haproxy.c:3001,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/haproxy.c:3002,1
    - Dst: thread_has_tasks
      Src: /src/haproxy/src/haproxy.c:3004,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/haproxy.c:3006,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/haproxy.c:3010,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/haproxy.c:3027,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/haproxy.c:3038,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:3043,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:3045,1
    - Dst: wake_thread
      Src: /src/haproxy/src/haproxy.c:3046,1
    - Dst: _HA_ATOMIC_OR_FETCH
      Src: /src/haproxy/src/haproxy.c:3050,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/haproxy.c:3056,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:3062,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:3065,1
    - Dst: wake_thread
      Src: /src/haproxy/src/haproxy.c:3066,1
    - Dst: next_timer_expiry
      Src: /src/haproxy/src/haproxy.c:3073,1
    - Dst: poll
      Src: /src/haproxy/src/haproxy.c:3076,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/haproxy.c:3081,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3082
      start: 2970
    functionDepth: 3
    functionLinenumber: 2970
    functionLinenumberEnd: 3082
    functionName: run_poll_loop
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - unlikely
    - wake_expired_tasks
    - _HA_ATOMIC_INC
    - poll
    - process_runnable_tasks
    - signal_process_queue
    - _HA_ATOMIC_LOAD
    - task_wakeup
    - wake_thread
    - clock_update_date
    - _HA_ATOMIC_AND
    - _HA_ATOMIC_OR_FETCH
    - __ha_cpu_relax
    - thread_has_tasks
    - HA_ATOMIC_CAS
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_OR
    - next_timer_expiry
    linkageType: ''
    returnType: void
    signature: void run_poll_loop()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ha_set_thread
      Src: /src/haproxy/src/haproxy.c:3094,1
    - Dst: set_thread_cpu_affinity
      Src: /src/haproxy/src/haproxy.c:3095,1
    - Dst: clock_set_local_source
      Src: /src/haproxy/src/haproxy.c:3096,1
    - Dst: ha_random_seed_thread
      Src: /src/haproxy/src/haproxy.c:3097,1
    - Dst: ha_get_pthread_id
      Src: /src/haproxy/src/haproxy.c:3100,1
    - Dst: __builtin_frame_address
      Src: /src/haproxy/src/haproxy.c:3102,1
    - Dst: MIN
      Src: /src/haproxy/src/haproxy.c:3111,1
    - Dst: thread_harmless_end
      Src: /src/haproxy/src/haproxy.c:3117,1
    - Dst: thread_idle_end
      Src: /src/haproxy/src/haproxy.c:3118,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/haproxy.c:3119,1
    - Dst: pthread_mutex_lock
      Src: /src/haproxy/src/haproxy.c:3127,1
    - Dst: clock_init_thread_date
      Src: /src/haproxy/src/haproxy.c:3134,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3141,1
    - Dst: struct per_thread_alloc_fct*::fct
      Src: /src/haproxy/src/haproxy.c:3142,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3143,1
    - Dst: pthread_mutex_unlock
      Src: /src/haproxy/src/haproxy.c:3145,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3147,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3155,1
    - Dst: struct per_thread_init_fct*::fct
      Src: /src/haproxy/src/haproxy.c:3156,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3157,1
    - Dst: pthread_mutex_unlock
      Src: /src/haproxy/src/haproxy.c:3159,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3161,1
    - Dst: protocol_enable_all
      Src: /src/haproxy/src/haproxy.c:3170,1
    - Dst: pthread_cond_broadcast
      Src: /src/haproxy/src/haproxy.c:3173,1
    - Dst: pthread_mutex_unlock
      Src: /src/haproxy/src/haproxy.c:3174,1
    - Dst: pthread_mutex_lock
      Src: /src/haproxy/src/haproxy.c:3177,1
    - Dst: pthread_cond_wait
      Src: /src/haproxy/src/haproxy.c:3179,1
    - Dst: pthread_mutex_unlock
      Src: /src/haproxy/src/haproxy.c:3180,1
    - Dst: prctl
      Src: /src/haproxy/src/haproxy.c:3194,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/haproxy.c:3194,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3195,1
    - Dst: setrlimit
      Src: /src/haproxy/src/haproxy.c:3212,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/haproxy.c:3212,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3213,1
    - Dst: run_poll_loop
      Src: /src/haproxy/src/haproxy.c:3219,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3221,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3224,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/haproxy.c:3228,1
    - Dst: _HA_ATOMIC_AND_FETCH
      Src: /src/haproxy/src/haproxy.c:3229,1
    - Dst: pthread_exit
      Src: /src/haproxy/src/haproxy.c:3231,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3234
      start: 3084
    functionDepth: 9
    functionLinenumber: 3084
    functionLinenumberEnd: 3234
    functionName: run_thread_poll_loop
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - struct per_thread_alloc_fct*::fct
    - exit
    - protocol_enable_all
    - thread_harmless_end
    - pthread_mutex_lock
    - clock_init_thread_date
    - pthread_cond_broadcast
    - pthread_exit
    - _HA_ATOMIC_FETCH_ADD
    - ha_get_pthread_id
    - _HA_ATOMIC_AND
    - ha_random_seed_thread
    - thread_idle_end
    - setrlimit
    - pthread_cond_wait
    - __builtin_frame_address
    - set_thread_cpu_affinity
    - _HA_ATOMIC_AND_FETCH
    - list_for_each_entry
    - prctl
    - MIN
    - ha_alert
    - run_poll_loop
    - ha_warning
    - struct per_thread_init_fct*::fct
    - clock_set_local_source
    - _HA_ATOMIC_OR
    - ha_set_thread
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void *run_thread_poll_loop(void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/haproxy/src/haproxy.c:3239,1
    - Dst: getgroups
      Src: /src/haproxy/src/haproxy.c:3242,1
    - Dst: setgroups
      Src: /src/haproxy/src/haproxy.c:3242,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3243,1
    - Dst: setgid
      Src: /src/haproxy/src/haproxy.c:3246,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3247,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3248,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3249,1
    - Dst: prepare_caps_for_setuid
      Src: /src/haproxy/src/haproxy.c:3254,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3255,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3256,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3257,1
    - Dst: setuid
      Src: /src/haproxy/src/haproxy.c:3261,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3262,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3263,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3264,1
    - Dst: finalize_caps_after_setuid
      Src: /src/haproxy/src/haproxy.c:3268,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3269,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3270,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3274
      start: 3237
    functionDepth: 9
    functionLinenumber: 3237
    functionLinenumberEnd: 3274
    functionName: set_identity
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - setgroups
    - exit
    - setgid
    - finalize_caps_after_setuid
    - prepare_caps_for_setuid
    - geteuid
    - protocol_unbind_all
    - ha_alert
    - ha_warning
    - getgroups
    - setuid
    linkageType: ''
    returnType: void
    signature: void set_identity(const char *program_name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/haproxy.c:3300,1
    - Dst: open
      Src: /src/haproxy/src/haproxy.c:3301,1
    - Dst: write
      Src: /src/haproxy/src/haproxy.c:3305,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3306,1
    - Dst: open
      Src: /src/haproxy/src/haproxy.c:3316,1
    - Dst: write
      Src: /src/haproxy/src/haproxy.c:3318,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3319,1
    - Dst: snprintf
      Src: /src/haproxy/src/haproxy.c:3324,1
    - Dst: open
      Src: /src/haproxy/src/haproxy.c:3325,1
    - Dst: write
      Src: /src/haproxy/src/haproxy.c:3329,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3330,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - euid
    - egid
    argTypes:
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 3282
    functionDepth: 0
    functionLinenumber: 3282
    functionLinenumberEnd: 3334
    functionName: setup_user_ns
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - close
    - write
    - open
    - snprintf
    linkageType: ''
    returnType: void
    signature: void setup_user_ns(uid_t euid, gid_t egid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:3342,1
    - Dst: mkdtemp
      Src: /src/haproxy/src/haproxy.c:3347,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3349,1
    - Dst: chdir
      Src: /src/haproxy/src/haproxy.c:3353,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/haproxy.c:3358,1
    - Dst: rmdir
      Src: /src/haproxy/src/haproxy.c:3358,1
    - Dst: chroot
      Src: /src/haproxy/src/haproxy.c:3360,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:3361,1
    - Dst: chroot
      Src: /src/haproxy/src/haproxy.c:3362,1
    - Dst: chdir
      Src: /src/haproxy/src/haproxy.c:3365,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - prog
    - path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3337
    functionDepth: 9
    functionLinenumber: 3337
    functionLinenumberEnd: 3373
    functionName: do_chroot
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - DISGUISE
    - chdir
    - chroot
    - strcmp
    - rmdir
    - mkdtemp
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int do_chroot(const char *prog, const char *path)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/haproxy.c:3402,1
    - Dst: setvbuf
      Src: /src/haproxy/src/haproxy.c:3411,1
    - Dst: getrlimit
      Src: /src/haproxy/src/haproxy.c:3414,1
    - Dst: ssl_initialize_random
      Src: /src/haproxy/src/haproxy.c:3427,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3428,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3429,1
    - Dst: ha_random_boot
      Src: /src/haproxy/src/haproxy.c:3432,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3435,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3436,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3437,1
    - Dst: init_early
      Src: /src/haproxy/src/haproxy.c:3440,1
    - Dst: init_args
      Src: /src/haproxy/src/haproxy.c:3443,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3445,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3446,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3450,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3451,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3454,1
    - Dst: step_init_1
      Src: /src/haproxy/src/haproxy.c:3460,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3469,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:3471,1
    - Dst: struct unittest_fct*::fct
      Src: /src/haproxy/src/haproxy.c:3472,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3477,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:3483,1
    - Dst: mworker_env_to_proc_list
      Src: /src/haproxy/src/haproxy.c:3484,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3485,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3487,1
    - Dst: backup_env
      Src: /src/haproxy/src/haproxy.c:3494,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3495,1
    - Dst: read_cfg_in_discovery_mode
      Src: /src/haproxy/src/haproxy.c:3499,1
    - Dst: parse_cfg
      Src: /src/haproxy/src/haproxy.c:3503,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3505,1
    - Dst: set_verbosity
      Src: /src/haproxy/src/haproxy.c:3511,1
    - Dst: open
      Src: /src/haproxy/src/haproxy.c:3514,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3516,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3517,1
    - Dst: fcntl
      Src: /src/haproxy/src/haproxy.c:3519,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3520,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3521,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3522,1
    - Dst: mworker_prepare_master
      Src: /src/haproxy/src/haproxy.c:3531,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:3538,1
    - Dst: apply_daemon_mode
      Src: /src/haproxy/src/haproxy.c:3540,1
    - Dst: mworker_apply_master_worker_mode
      Src: /src/haproxy/src/haproxy.c:3545,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/haproxy.c:3552,1
    - Dst: clean_env
      Src: /src/haproxy/src/haproxy.c:3554,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3555,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3556,1
    - Dst: restore_env
      Src: /src/haproxy/src/haproxy.c:3559,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3560,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3561,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:3563,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:3571,1
    - Dst: read_cfg
      Src: /src/haproxy/src/haproxy.c:3580,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:3581,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:3582,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:3583,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3585,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:3588,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:3589,1
    - Dst: trace_parse_cmds
      Src: /src/haproxy/src/haproxy.c:3591,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/haproxy.c:3592,1
    - Dst: step_init_2
      Src: /src/haproxy/src/haproxy.c:3599,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3601,1
    - Dst: step_init_3
      Src: /src/haproxy/src/haproxy.c:3605,1
    - Dst: get_listeners_fd
      Src: /src/haproxy/src/haproxy.c:3612,1
    - Dst: bind_listeners
      Src: /src/haproxy/src/haproxy.c:3614,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3629,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3631,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3639,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3642,1
    - Dst: sock_drop_unused_old_sockets
      Src: /src/haproxy/src/haproxy.c:3648,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:3651,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:3652,1
    - Dst: step_init_4
      Src: /src/haproxy/src/haproxy.c:3657,1
    - Dst: mworker_run_master
      Src: /src/haproxy/src/haproxy.c:3661,1
    - Dst: setpriority
      Src: /src/haproxy/src/haproxy.c:3670,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3671,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:3672,1
    - Dst: handle_pidfile
      Src: /src/haproxy/src/haproxy.c:3681,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/haproxy.c:3683,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3684,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3686,1
    - Dst: geteuid
      Src: /src/haproxy/src/haproxy.c:3696,1
    - Dst: prctl
      Src: /src/haproxy/src/haproxy.c:3699,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3702,1
    - Dst: geteuid
      Src: /src/haproxy/src/haproxy.c:3718,1
    - Dst: geteuid
      Src: /src/haproxy/src/haproxy.c:3719,1
    - Dst: getegid
      Src: /src/haproxy/src/haproxy.c:3720,1
    - Dst: unshare
      Src: /src/haproxy/src/haproxy.c:3721,1
    - Dst: setup_user_ns
      Src: /src/haproxy/src/haproxy.c:3722,1
    - Dst: do_chroot
      Src: /src/haproxy/src/haproxy.c:3728,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/haproxy.c:3730,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3731,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3732,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:3735,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/haproxy.c:3746,1
    - Dst: set_identity
      Src: /src/haproxy/src/haproxy.c:3750,1
    - Dst: getuid
      Src: /src/haproxy/src/haproxy.c:3756,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3762,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3765,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3770,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3771,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3776,1
    - Dst: geteuid
      Src: /src/haproxy/src/haproxy.c:3780,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3781,1
    - Dst: stdio_quiet
      Src: /src/haproxy/src/haproxy.c:3807,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3811,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:3813,1
    - Dst: fork_poller
      Src: /src/haproxy/src/haproxy.c:3821,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3831,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/haproxy.c:3841,1
    - Dst: sched_setaffinity
      Src: /src/haproxy/src/haproxy.c:3845,1
    - Dst: cpuset_setaffinity
      Src: /src/haproxy/src/haproxy.c:3848,1
    - Dst: setrlimit
      Src: /src/haproxy/src/haproxy.c:3862,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3864,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3866,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3869,1
    - Dst: setrlimit
      Src: /src/haproxy/src/haproxy.c:3875,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3877,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3879,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3882,1
    - Dst: prctl
      Src: /src/haproxy/src/haproxy.c:3888,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3889,1
    - Dst: procctl
      Src: /src/haproxy/src/haproxy.c:3894,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:3894,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3895,1
    - Dst: setup_extra_threads
      Src: /src/haproxy/src/haproxy.c:3903,1
    - Dst: haproxy_unblock_signals
      Src: /src/haproxy/src/haproxy.c:3906,1
    - Dst: socketpair
      Src: /src/haproxy/src/haproxy.c:3919,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3920,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3923,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3926,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/haproxy.c:3931,1
    - Dst: send_fd_uxst
      Src: /src/haproxy/src/haproxy.c:3933,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3934,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3936,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3937,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3939,1
    - Dst: memprintf
      Src: /src/haproxy/src/haproxy.c:3942,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:3942,1
    - Dst: send
      Src: /src/haproxy/src/haproxy.c:3943,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:3943,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:3943,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3944,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3946,1
    - Dst: shutdown
      Src: /src/haproxy/src/haproxy.c:3955,1
    - Dst: setsockopt
      Src: /src/haproxy/src/haproxy.c:3956,1
    - Dst: read
      Src: /src/haproxy/src/haproxy.c:3957,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3958,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3959,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:3960,1
    - Dst: startup_logs_dup
      Src: /src/haproxy/src/haproxy.c:3963,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3965,1
    - Dst: startup_logs_free
      Src: /src/haproxy/src/haproxy.c:3966,1
    - Dst: write
      Src: /src/haproxy/src/haproxy.c:3977,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:3977,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3978,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:3978,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3979,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3981,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/haproxy.c:3988,1
    - Dst: run_thread_poll_loop
      Src: /src/haproxy/src/haproxy.c:3991,1
    - Dst: wait_for_threads_completion
      Src: /src/haproxy/src/haproxy.c:3994,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:3996,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 268
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3997
      start: 3375
    functionDepth: 13
    functionLinenumber: 3375
    functionLinenumberEnd: 3997
    functionName: main
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 21
    functionsReached:
    - exit
    - step_init_2
    - step_init_4
    - struct unittest_fct*::fct
    - step_init_3
    - getuid
    - read_cfg_in_discovery_mode
    - setsockopt
    - socketpair
    - tell_old_pids
    - trace_parse_cmds
    - step_init_1
    - getrlimit
    - reset_usermsgs_ctx
    - bind_listeners
    - apply_daemon_mode
    - send_fd_uxst
    - handle_pidfile
    - setup_extra_threads
    - setpriority
    - mworker_env_to_proc_list
    - ha_warning
    - memprintf
    - ha_random_boot
    - ha_cpuset_count
    - sock_drop_unused_old_sockets
    - startup_logs_free
    - strcmp
    - stdio_quiet
    - restore_env
    - ssl_initialize_random
    - mworker_apply_master_worker_mode
    - cpuset_setaffinity
    - parse_cfg
    - read
    - BUG_ON
    - list_for_each_entry
    - setenv
    - prctl
    - ha_alert
    - wait_for_threads_completion
    - strlen
    - getpid
    - list_for_each_entry_safe
    - open
    - setvbuf
    - fork_poller
    - init_args
    - protocol_unbind_all
    - sched_setaffinity
    - backup_env
    - setup_user_ns
    - fcntl
    - usermsgs_clr
    - get_listeners_fd
    - procctl
    - shutdown
    - fprintf
    - do_chroot
    - unshare
    - close
    - strerror
    - ha_free
    - haproxy_unblock_signals
    - RUN_INITCALLS
    - mworker_prepare_master
    - mworker_run_master
    - read_cfg
    - write
    - deinit_and_exit
    - startup_logs_dup
    - getenv
    - set_identity
    - setrlimit
    - run_thread_poll_loop
    - send
    - set_verbosity
    - geteuid
    - getegid
    - clean_env
    - init_early
    - signal_register_fct
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/jwe.c:145,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:145,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - array
    argTypes:
    - struct buffer*
    - struct alg_enc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: parse_alg_enc
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - b_data
    - b_orig
    - strncmp
    linkageType: ''
    returnType: int
    signature: int parse_alg_enc(struct buffer *buf, struct alg_enc *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - id
    - array
    argTypes:
    - int
    - struct alg_enc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 172
    functionName: algenc2str
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algenc2str(int id, struct alg_enc *array)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/jwe.c:185,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/jwe.c:191,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:191,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:191,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:192,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:192,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:196,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:200,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:200,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:200,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:201,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:201,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - decoded_jose
    - field_name
    - out
    - mandatory
    argTypes:
    - struct buffer*
    - char*
    - struct buffer**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 212
    functionName: decode_jose_field
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - mjson_get_string
    - b_orig
    - free_trash_chunk
    - alloc_trash_chunk
    - get_trash_chunk
    - b_data
    - b_size
    - base64urldec
    linkageType: ''
    returnType: int
    signature: "int decode_jose_field(struct buffer *decoded_jose, const char *field_name,\n\t\t\t\t
      \   struct buffer **out, int mandatory)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/jwe.c:231,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/jwe.c:232,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:232,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:232,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:233,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:233,1
    - Dst: parse_alg_enc
      Src: /src/haproxy/src/jwe.c:237,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/jwe.c:242,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/jwe.c:243,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:243,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:243,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:244,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:244,1
    - Dst: parse_alg_enc
      Src: /src/haproxy/src/jwe.c:248,1
    - Dst: decode_jose_field
      Src: /src/haproxy/src/jwe.c:271,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:272,1
    - Dst: decode_jose_field
      Src: /src/haproxy/src/jwe.c:276,1
    - Dst: mjson_find
      Src: /src/haproxy/src/jwe.c:284,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:284,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:284,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:289,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/jwe.c:293,1
    - Dst: build_EC_PKEY_from_buf
      Src: /src/haproxy/src/jwe.c:296,1
    - Dst: decode_jose_field
      Src: /src/haproxy/src/jwe.c:300,1
    - Dst: decode_jose_field
      Src: /src/haproxy/src/jwe.c:304,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 69
    argCount: 4
    argNames:
    - decoded_jose
    - alg
    - enc
    - jose_fields
    argTypes:
    - struct buffer*
    - int*
    - int*
    - struct jose_fields*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 221
    functionDepth: 7
    functionLinenumber: 221
    functionLinenumberEnd: 312
    functionName: parse_jose
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - chunk_memcpy
    - mjson_get_string
    - mjson_find
    - b_orig
    - build_EC_PKEY_from_buf
    - alloc_trash_chunk
    - get_trash_chunk
    - b_data
    - b_size
    - decode_jose_field
    - chunk_reset
    - parse_alg_enc
    linkageType: ''
    returnType: int
    signature: int parse_jose(struct buffer *decoded_jose, int *alg, int *enc, struct
      jose_fields *jose_fields)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:319,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:320,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:321,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwe.c:322,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:323,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - jose_fields
    argTypes:
    - struct jose_fields*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 325
    functionName: clear_jose_fields
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - free_trash_chunk
    linkageType: ''
    returnType: void
    signature: void clear_jose_fields(struct jose_fields *jose_fields)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: aes_process
      Src: /src/haproxy/src/jwe.c:351,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - cek
    - aead_tag
    - iv
    - decrypted_cek
    - secret
    - crypt_alg
    argTypes:
    - struct buffer*
    - struct buffer*
    - struct buffer*
    - struct buffer*
    - struct buffer*
    - jwe_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 362
    functionName: decrypt_cek_aesgcmkw
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - aes_process
    linkageType: ''
    returnType: int
    signature: "int decrypt_cek_aesgcmkw(struct buffer *cek, struct buffer *aead_tag,
      struct buffer *iv,\n                                struct buffer *decrypted_cek,
      struct buffer *secret, jwe_alg crypt_alg)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/haproxy/src/jwe.c:381,1
    - Dst: EVP_aes_128_wrap
      Src: /src/haproxy/src/jwe.c:389,1
    - Dst: EVP_aes_192_wrap
      Src: /src/haproxy/src/jwe.c:390,1
    - Dst: EVP_aes_256_wrap
      Src: /src/haproxy/src/jwe.c:392,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/haproxy/src/jwe.c:405,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/haproxy/src/jwe.c:408,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:409,1
    - Dst: memset
      Src: /src/haproxy/src/jwe.c:413,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/haproxy/src/jwe.c:417,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:417,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:417,1
    - Dst: EVP_DecryptUpdate
      Src: /src/haproxy/src/jwe.c:420,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:420,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:421,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:421,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/haproxy/src/jwe.c:424,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/src/jwe.c:432,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:433,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - cek
    - decrypted_cek
    - secret
    - crypt_alg
    argTypes:
    - struct buffer*
    - struct buffer*
    - struct buffer*
    - jwe_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 435
    functionName: decrypt_cek_aeskw
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptUpdate
    - EVP_CIPHER_CTX_free
    - memset
    - b_orig
    - free_trash_chunk
    - EVP_aes_192_wrap
    - EVP_CIPHER_iv_length
    - alloc_trash_chunk
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_new
    - b_data
    - EVP_CIPHER_CTX_set_flags
    - EVP_aes_128_wrap
    - EVP_aes_256_wrap
    - EVP_DecryptFinal_ex
    linkageType: ''
    returnType: int
    signature: int decrypt_cek_aeskw(struct buffer *cek, struct buffer *decrypted_cek,
      struct buffer *secret, jwe_alg crypt_alg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: my_htonll
      Src: /src/haproxy/src/jwe.c:453,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:455,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:456,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/jwe.c:466,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/jwe.c:467,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:467,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:467,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/jwe.c:468,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:468,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:468,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/jwe.c:469,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jwe.c:473,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jwe.c:474,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jwe.c:475,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:479,1
    - Dst: HMAC
      Src: /src/haproxy/src/jwe.c:483,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:483,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:484,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:484,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:485,1
    - Dst: unlikely
      Src: /src/haproxy/src/jwe.c:489,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:489,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:489,1
    - Dst: CRYPTO_memcmp
      Src: /src/haproxy/src/jwe.c:493,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:493,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:493,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:493,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:496,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:497,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 4
    argNames:
    - enc
    - items
    - decoded_items
    - decrypted_cek
    argTypes:
    - jwe_enc
    - struct jwt_item[]
    - struct buffer*[]
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 499
    functionName: build_and_check_tag
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - chunk_memcpy
    - unlikely
    - EVP_sha512
    - b_orig
    - CRYPTO_memcmp
    - free_trash_chunk
    - alloc_trash_chunk
    - my_htonll
    - chunk_memcat
    - b_data
    - HMAC
    - EVP_sha384
    - EVP_sha256
    linkageType: ''
    returnType: int
    signature: "int build_and_check_tag(jwe_enc enc,  struct jwt_item items[JWE_ELT_MAX],\n
      \                              struct buffer *decoded_items[JWE_ELT_MAX],\n
      \                              struct buffer *decrypted_cek)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:529,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:532,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:540,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:543,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:551,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:554,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:567,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/jwe.c:570,1
    - Dst: build_and_check_tag
      Src: /src/haproxy/src/jwe.c:579,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:582,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:593,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/jwe.c:595,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:598,1
    - Dst: aes_process
      Src: /src/haproxy/src/jwe.c:602,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:609,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:611,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 98
    argCount: 5
    argNames:
    - enc
    - items
    - decoded_items
    - decrypted_cek
    - out
    argTypes:
    - jwe_enc
    - struct jwt_item[]
    - struct buffer*[]
    - struct buffer*
    - struct buffer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 613
    functionName: decrypt_ciphertext
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - chunk_memcpy
    - aes_process
    - free_trash_chunk
    - alloc_trash_chunk
    - b_data
    - base64urldec
    - build_and_check_tag
    linkageType: ''
    returnType: int
    signature: "int decrypt_ciphertext(jwe_enc enc, struct jwt_item items[JWE_ELT_MAX],\n\t\t\t
      \     struct buffer *decoded_items[JWE_ELT_MAX],\n                              struct
      buffer *decrypted_cek, struct buffer **out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - decoded_items
    argTypes:
    - struct buffer*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 626
    functionName: clear_decoded_items
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    linkageType: ''
    returnType: void
    signature: void clear_decoded_items(struct buffer *decoded_items[JWE_ELT_MAX])
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:653,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/jwe.c:657,1
    - Dst: jwt_tokenize
      Src: /src/haproxy/src/jwe.c:660,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:664,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:667,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:668,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:668,1
    - Dst: parse_jose
      Src: /src/haproxy/src/jwe.c:673,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/jwe.c:696,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/jwe.c:697,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:701,1
    - Dst: base64dec
      Src: /src/haproxy/src/jwe.c:704,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:716,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:720,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:725,1
    - Dst: decrypt_cek_aesgcmkw
      Src: /src/haproxy/src/jwe.c:733,1
    - Dst: decrypt_cek_aeskw
      Src: /src/haproxy/src/jwe.c:737,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:743,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/jwe.c:747,1
    - Dst: decrypt_ciphertext
      Src: /src/haproxy/src/jwe.c:755,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:758,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:759,1
    - Dst: smp_dup
      Src: /src/haproxy/src/jwe.c:761,1
    - Dst: clear_jose_fields
      Src: /src/haproxy/src/jwe.c:766,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:767,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:768,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:769,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:770,1
    - Dst: clear_decoded_items
      Src: /src/haproxy/src/jwe.c:771,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 109
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 635
    functionDepth: 8
    functionLinenumber: 635
    functionLinenumberEnd: 773
    functionName: sample_conv_jwt_decrypt_secret
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - alloc_trash_chunk
    - decrypt_ciphertext
    - chunk_cpy
    - smp_dup
    - chunk_memcpy
    - clear_jose_fields
    - jwt_tokenize
    - smp_set_owner
    - sample_conv_var2smp_str
    - b_orig
    - free_trash_chunk
    - b_data
    - base64urldec
    - b_size
    - decrypt_cek_aeskw
    - clear_decoded_items
    - base64dec
    - parse_jose
    - decrypt_cek_aesgcmkw
    linkageType: ''
    returnType: int
    signature: int sample_conv_jwt_decrypt_secret(const struct arg *args, struct sample
      *smp, void *private)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:788,1
    - Dst: EVP_sha1
      Src: /src/haproxy/src/jwe.c:793,1
    - Dst: EVP_sha1
      Src: /src/haproxy/src/jwe.c:797,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jwe.c:801,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/haproxy/src/jwe.c:807,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/haproxy/src/jwe.c:812,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/haproxy/src/jwe.c:815,1
    - Dst: EVP_PKEY_CTX_set_rsa_oaep_md
      Src: /src/haproxy/src/jwe.c:819,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/haproxy/src/jwe.c:822,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/haproxy/src/jwe.c:826,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:826,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:827,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:827,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:841,1
    - Dst: ha_random64
      Src: /src/haproxy/src/jwe.c:844,1
    - Dst: memcpy
      Src: /src/haproxy/src/jwe.c:845,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/jwe.c:858,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 4
    argNames:
    - cek
    - decrypted_cek
    - pkey
    - crypt_alg
    argTypes:
    - struct buffer*
    - struct buffer*
    - EVP_PKEY*
    - jwe_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 860
    functionName: do_decrypt_cek_rsa
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - b_orig
    - memcpy
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    - EVP_PKEY_decrypt
    - b_data
    - b_size
    - EVP_PKEY_decrypt_init
    - ha_random64
    - EVP_PKEY_CTX_set_rsa_oaep_md
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_sha256
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: int
    signature: "int do_decrypt_cek_rsa(struct buffer *cek, struct buffer *decrypted_cek,\n
      \                             EVP_PKEY *pkey, jwe_alg crypt_alg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/jwe.c:877,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/jwe.c:880,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:880,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwe.c:882,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/haproxy/src/jwe.c:888,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwe.c:890,1
    - Dst: do_decrypt_cek_rsa
      Src: /src/haproxy/src/jwe.c:892,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwe.c:897,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - cek
    - decrypted_cek
    - cert
    - crypt_alg
    argTypes:
    - struct buffer*
    - struct buffer*
    - struct buffer*
    - jwe_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 869
    functionDepth: 4
    functionLinenumber: 869
    functionLinenumberEnd: 899
    functionName: decrypt_cek_rsa
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 1
    functionsReached:
    - HA_SPIN_TRYLOCK
    - b_orig
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - do_decrypt_cek_rsa
    - EVP_PKEY_up_ref
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int decrypt_cek_rsa(struct buffer *cek, struct buffer *decrypted_cek,\n
      \                          struct buffer *cert, jwe_alg crypt_alg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/haproxy/src/jwe.c:916,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/haproxy/src/jwe.c:920,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/haproxy/src/jwe.c:923,1
    - Dst: EVP_PKEY_derive
      Src: /src/haproxy/src/jwe.c:926,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:929,1
    - Dst: EVP_PKEY_derive
      Src: /src/haproxy/src/jwe.c:932,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/jwe.c:938,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - privkey
    - epk_key
    - derived
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 940
    functionName: derive_ecdh_secret
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive_init
    - EVP_PKEY_derive
    - EVP_PKEY_derive_set_peer
    - b_size
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: int
    signature: int derive_ecdh_secret(EVP_PKEY *privkey, EVP_PKEY *epk_key, struct
      buffer *derived)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/haproxy/src/jwe.c:949,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/jwe.c:950,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/jwe.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - val
    - val_len
    argTypes:
    - struct buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 952
    functionName: append_data_len
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - chunk_memcat
    - htonl
    linkageType: ''
    returnType: void
    signature: void append_data_len(struct buffer *out, const char *val, int val_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: append_data_len
      Src: /src/haproxy/src/jwe.c:978,1
    - Dst: strlen
      Src: /src/haproxy/src/jwe.c:978,1
    - Dst: append_data_len
      Src: /src/haproxy/src/jwe.c:979,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:979,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:979,1
    - Dst: append_data_len
      Src: /src/haproxy/src/jwe.c:980,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:980,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:980,1
    - Dst: htonl
      Src: /src/haproxy/src/jwe.c:982,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/jwe.c:983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - alg_id
    - apu
    - apv
    - keydatalen
    - out
    argTypes:
    - char*
    - struct buffer*
    - struct buffer*
    - uint32_t
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 989
    functionName: build_concatkdf_otherinfo
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - b_orig
    - chunk_memcat
    - b_data
    - append_data_len
    - htonl
    - strlen
    linkageType: ''
    returnType: int
    signature: "int build_concatkdf_otherinfo(const char *alg_id, struct buffer *apu,
      struct buffer *apv,\n                                     uint32_t keydatalen,
      struct buffer *out)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jwe.c:1017,1
    - Dst: EVP_MD_size
      Src: /src/haproxy/src/jwe.c:1018,1
    - Dst: algenc2str
      Src: /src/haproxy/src/jwe.c:1048,1
    - Dst: algenc2str
      Src: /src/haproxy/src/jwe.c:1069,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1074,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1078,1
    - Dst: derive_ecdh_secret
      Src: /src/haproxy/src/jwe.c:1082,1
    - Dst: build_concatkdf_otherinfo
      Src: /src/haproxy/src/jwe.c:1085,1
    - Dst: EVP_MD_CTX_create
      Src: /src/haproxy/src/jwe.c:1088,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1101,1
    - Dst: htonl
      Src: /src/haproxy/src/jwe.c:1118,1
    - Dst: EVP_DigestInit_ex
      Src: /src/haproxy/src/jwe.c:1120,1
    - Dst: EVP_DigestUpdate
      Src: /src/haproxy/src/jwe.c:1121,1
    - Dst: EVP_DigestUpdate
      Src: /src/haproxy/src/jwe.c:1122,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1122,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:1122,1
    - Dst: EVP_DigestUpdate
      Src: /src/haproxy/src/jwe.c:1123,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1123,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:1123,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/haproxy/src/jwe.c:1124,1
    - Dst: decrypt_cek_aeskw
      Src: /src/haproxy/src/jwe.c:1136,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1143,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1144,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1145,1
    - Dst: EVP_MD_CTX_free
      Src: /src/haproxy/src/jwe.c:1146,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 103
    argCount: 8
    argNames:
    - cek
    - decrypted_cek
    - privkey
    - pubkey
    - crypt_alg
    - crypt_enc
    - apu
    - apv
    argTypes:
    - struct buffer*
    - struct buffer*
    - EVP_PKEY*
    - EVP_PKEY*
    - jwe_alg
    - jwe_enc
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 997
    functionDepth: 3
    functionLinenumber: 997
    functionLinenumberEnd: 1148
    functionName: do_decrypt_cek_ec
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - derive_ecdh_secret
    - b_orig
    - EVP_DigestUpdate
    - build_concatkdf_otherinfo
    - EVP_MD_size
    - alloc_trash_chunk
    - free_trash_chunk
    - algenc2str
    - EVP_DigestFinal_ex
    - htonl
    - b_data
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - EVP_MD_CTX_create
    - decrypt_cek_aeskw
    - EVP_sha256
    linkageType: ''
    returnType: int
    signature: "int do_decrypt_cek_ec(struct buffer *cek, struct buffer *decrypted_cek,
      EVP_PKEY *privkey,\n                             EVP_PKEY *pubkey, jwe_alg crypt_alg,
      jwe_enc crypt_enc,\n                             struct buffer *apu, struct
      buffer *apv)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1177,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/jwe.c:1181,1
    - Dst: jwt_tokenize
      Src: /src/haproxy/src/jwe.c:1184,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1188,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:1191,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1192,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:1192,1
    - Dst: parse_jose
      Src: /src/haproxy/src/jwe.c:1197,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1218,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/jwe.c:1222,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/jwe.c:1223,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/jwe.c:1225,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:1225,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1225,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1237,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:1242,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1250,1
    - Dst: decrypt_cek_rsa
      Src: /src/haproxy/src/jwe.c:1255,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/jwe.c:1260,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/jwe.c:1263,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1263,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwe.c:1265,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/haproxy/src/jwe.c:1271,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwe.c:1273,1
    - Dst: do_decrypt_cek_ec
      Src: /src/haproxy/src/jwe.c:1275,1
    - Dst: decrypt_ciphertext
      Src: /src/haproxy/src/jwe.c:1281,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:1284,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1285,1
    - Dst: smp_dup
      Src: /src/haproxy/src/jwe.c:1287,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1292,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1293,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1294,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1295,1
    - Dst: clear_decoded_items
      Src: /src/haproxy/src/jwe.c:1296,1
    - Dst: clear_jose_fields
      Src: /src/haproxy/src/jwe.c:1297,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwe.c:1298,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 108
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1157
    functionDepth: 8
    functionLinenumber: 1157
    functionLinenumberEnd: 1300
    functionName: sample_conv_jwt_decrypt_cert
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - alloc_trash_chunk
    - decrypt_ciphertext
    - chunk_cpy
    - smp_dup
    - EVP_PKEY_up_ref
    - clear_jose_fields
    - chunk_printf
    - ckchs_lookup
    - jwt_tokenize
    - smp_set_owner
    - sample_conv_var2smp_str
    - decrypt_cek_rsa
    - HA_SPIN_TRYLOCK
    - b_orig
    - free_trash_chunk
    - b_data
    - base64urldec
    - b_size
    - EVP_PKEY_free
    - clear_decoded_items
    - HA_SPIN_UNLOCK
    - parse_jose
    - do_decrypt_cek_ec
    linkageType: ''
    returnType: int
    signature: int sample_conv_jwt_decrypt_cert(const struct arg *args, struct sample
      *smp, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vars_check_arg
      Src: /src/haproxy/src/jwe.c:1312,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/jwe.c:1317,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/jwe.c:1319,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwe.c:1321,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwe.c:1322,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwe.c:1325,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwe.c:1326,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwe.c:1329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1309
    functionDepth: 5
    functionLinenumber: 1309
    functionLinenumberEnd: 1333
    functionName: sample_conv_jwt_decrypt_cert_check
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: "int sample_conv_jwt_decrypt_cert_check(struct arg *args, struct sample_conv
      *conv,\n                                              const char *file, int
      line, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sample_check_arg_base64
      Src: /src/haproxy/src/jwe.c:1344,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwe.c:1345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1340
    functionDepth: 6
    functionLinenumber: 1340
    functionLinenumberEnd: 1350
    functionName: sample_conv_jwt_decrypt_secret_check
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - sample_check_arg_base64
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int sample_conv_jwt_decrypt_secret_check(struct arg *args, struct
      sample_conv *conv,\n                                                const char
      *file, int line, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/jwe.c:1359,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:1365,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1365,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:1365,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1366,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:1366,1
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/jwe.c:1371,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1371,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:1371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - b64url_buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1374
    functionName: base64url_to_BIGNUM
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - b_orig
    - get_trash_chunk
    - b_data
    - base64urldec
    - b_size
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *base64url_to_BIGNUM(struct buffer *b64url_buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/jwe.c:1386,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/jwe.c:1388,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1388,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:1388,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1389,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:1389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - jwk
    - field
    - out
    argTypes:
    - struct buffer*
    - char*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1382
    functionDepth: 6
    functionLinenumber: 1382
    functionLinenumberEnd: 1395
    functionName: get_jwk_field
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - mjson_get_string
    - b_orig
    - b_data
    - b_size
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int get_jwk_field(struct buffer *jwk, const char *field, struct buffer
      *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/haproxy/src/jwe.c:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - nums
    - count
    argTypes:
    - BIGNUM**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1493
    functionName: clear_bignums
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void clear_bignums(BIGNUM **nums, int count)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1505,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1514,1
    - Dst: base64url_to_BIGNUM
      Src: /src/haproxy/src/jwe.c:1514,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1516,1
    - Dst: base64url_to_BIGNUM
      Src: /src/haproxy/src/jwe.c:1516,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1518,1
    - Dst: base64url_to_BIGNUM
      Src: /src/haproxy/src/jwe.c:1518,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1520,1
    - Dst: base64url_to_BIGNUM
      Src: /src/haproxy/src/jwe.c:1520,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1522,1
    - Dst: base64url_to_BIGNUM
      Src: /src/haproxy/src/jwe.c:1522,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1524,1
    - Dst: base64url_to_BIGNUM
      Src: /src/haproxy/src/jwe.c:1524,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1526,1
    - Dst: base64url_to_BIGNUM
      Src: /src/haproxy/src/jwe.c:1526,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1528,1
    - Dst: base64url_to_BIGNUM
      Src: /src/haproxy/src/jwe.c:1528,1
    - Dst: do_build_RSA_PKEY
      Src: /src/haproxy/src/jwe.c:1531,1
    - Dst: clear_bignums
      Src: /src/haproxy/src/jwe.c:1536,1
    - Dst: clear_bignums
      Src: /src/haproxy/src/jwe.c:1539,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1542,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwe.c:1544,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 41
    argCount: 2
    argNames:
    - jwk
    - pkey
    argTypes:
    - struct buffer*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1500
    functionDepth: 7
    functionLinenumber: 1500
    functionLinenumberEnd: 1549
    functionName: build_RSA_PKEY_from_buf
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - get_jwk_field
    - free_trash_chunk
    - alloc_trash_chunk
    - clear_bignums
    - base64url_to_BIGNUM
    - EVP_PKEY_free
    - do_build_RSA_PKEY
    linkageType: ''
    returnType: int
    signature: int build_RSA_PKEY_from_buf(struct buffer *jwk, EVP_PKEY **pkey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/haproxy/src/jwe.c:1576,1
    - Dst: BN_CTX_new
      Src: /src/haproxy/src/jwe.c:1580,1
    - Dst: EC_POINT_new
      Src: /src/haproxy/src/jwe.c:1584,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/haproxy/src/jwe.c:1588,1
    - Dst: EC_POINT_point2oct
      Src: /src/haproxy/src/jwe.c:1591,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1592,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:1592,1
    - Dst: EC_POINT_free
      Src: /src/haproxy/src/jwe.c:1600,1
    - Dst: EC_GROUP_free
      Src: /src/haproxy/src/jwe.c:1601,1
    - Dst: BN_CTX_free
      Src: /src/haproxy/src/jwe.c:1602,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - nid
    - x
    - y
    - out
    argTypes:
    - int
    - BIGNUM*
    - BIGNUM*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1566
    functionDepth: 1
    functionLinenumber: 1566
    functionLinenumberEnd: 1604
    functionName: curve_param_to_pubkey
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - b_orig
    - BN_CTX_new
    - EC_POINT_set_affine_coordinates
    - EC_POINT_point2oct
    - EC_POINT_new
    - b_size
    - EC_GROUP_new_by_curve_name
    - BN_CTX_free
    - EC_POINT_free
    linkageType: ''
    returnType: int
    signature: int curve_param_to_pubkey(int nid, BIGNUM *x, BIGNUM *y, struct buffer
      *out)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1722,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1726,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1730,1
    - Dst: base64url_to_BIGNUM
      Src: /src/haproxy/src/jwe.c:1730,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1732,1
    - Dst: base64url_to_BIGNUM
      Src: /src/haproxy/src/jwe.c:1732,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1736,1
    - Dst: base64url_to_BIGNUM
      Src: /src/haproxy/src/jwe.c:1736,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1739,1
    - Dst: do_build_EC_PKEY
      Src: /src/haproxy/src/jwe.c:1742,1
    - Dst: BIO_new_fp
      Src: /src/haproxy/src/jwe.c:1746,1
    - Dst: EVP_PKEY_print_private
      Src: /src/haproxy/src/jwe.c:1747,1
    - Dst: BIO_free
      Src: /src/haproxy/src/jwe.c:1748,1
    - Dst: clear_bignums
      Src: /src/haproxy/src/jwe.c:1753,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1755,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1756,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwe.c:1758,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 2
    argNames:
    - jwk
    - pkey
    argTypes:
    - struct buffer*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1716
    functionDepth: 7
    functionLinenumber: 1716
    functionLinenumberEnd: 1763
    functionName: build_EC_PKEY_from_buf
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 1
    functionsReached:
    - BIO_new_fp
    - get_jwk_field
    - free_trash_chunk
    - EVP_PKEY_print_private
    - alloc_trash_chunk
    - do_build_EC_PKEY
    - BIO_free
    - clear_bignums
    - base64url_to_BIGNUM
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int build_EC_PKEY_from_buf(struct buffer *jwk, EVP_PKEY **pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1787,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:1792,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwe.c:1797,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - jwk
    argTypes:
    - struct jwk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1782
    functionDepth: 1
    functionLinenumber: 1782
    functionLinenumberEnd: 1803
    functionName: clear_jwk
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - free_trash_chunk
    linkageType: ''
    returnType: void
    signature: void clear_jwk(struct jwk *jwk)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/jwe.c:1816,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1817,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1821,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1824,1
    - Dst: chunk_strcmp
      Src: /src/haproxy/src/jwe.c:1826,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/jwe.c:1827,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1832,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1836,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:1839,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1839,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:1839,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1840,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:1840,1
    - Dst: chunk_strcmp
      Src: /src/haproxy/src/jwe.c:1846,1
    - Dst: build_RSA_PKEY_from_buf
      Src: /src/haproxy/src/jwe.c:1849,1
    - Dst: chunk_strcmp
      Src: /src/haproxy/src/jwe.c:1851,1
    - Dst: build_EC_PKEY_from_buf
      Src: /src/haproxy/src/jwe.c:1854,1
    - Dst: clear_jwk
      Src: /src/haproxy/src/jwe.c:1863,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 2
    argNames:
    - jwk_buf
    - jwk
    argTypes:
    - struct buffer*
    - struct jwk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1811
    functionDepth: 8
    functionLinenumber: 1811
    functionLinenumberEnd: 1865
    functionName: process_jwk
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - b_orig
    - get_jwk_field
    - build_EC_PKEY_from_buf
    - alloc_trash_chunk
    - chunk_strcmp
    - clear_jwk
    - get_trash_chunk
    - b_data
    - base64urldec
    - b_size
    - build_RSA_PKEY_from_buf
    linkageType: ''
    returnType: int
    signature: int process_jwk(struct buffer *jwk_buf, struct jwk *jwk)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vars_check_arg
      Src: /src/haproxy/src/jwe.c:1871,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/jwe.c:1875,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1877,1
    - Dst: chunk_strcmp
      Src: /src/haproxy/src/jwe.c:1878,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/jwe.c:1879,1
    - Dst: get_jwk_field
      Src: /src/haproxy/src/jwe.c:1880,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwe.c:1881,1
    - Dst: chunk_strcmp
      Src: /src/haproxy/src/jwe.c:1884,1
    - Dst: build_RSA_PKEY_from_buf
      Src: /src/haproxy/src/jwe.c:1885,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwe.c:1886,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwe.c:1889,1
    - Dst: chunk_strcmp
      Src: /src/haproxy/src/jwe.c:1890,1
    - Dst: build_EC_PKEY_from_buf
      Src: /src/haproxy/src/jwe.c:1891,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwe.c:1892,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwe.c:1895,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwe.c:1897,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwe.c:1901,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1868
    functionDepth: 8
    functionLinenumber: 1868
    functionLinenumberEnd: 1907
    functionName: sample_conv_jwt_decrypt_jwk_check
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - memprintf
    - build_EC_PKEY_from_buf
    - get_jwk_field
    - chunk_strcmp
    - get_trash_chunk
    - EVP_PKEY_free
    - build_RSA_PKEY_from_buf
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: "int sample_conv_jwt_decrypt_jwk_check(struct arg *args, struct sample_conv
      *conv,\n                                             const char *file, int line,
      char **err)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: smp_set_owner
      Src: /src/haproxy/src/jwe.c:1939,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/jwe.c:1940,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1944,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/jwe.c:1947,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1951,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/jwe.c:1954,1
    - Dst: jwt_tokenize
      Src: /src/haproxy/src/jwe.c:1957,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:1961,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:1964,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:1965,1
    - Dst: b_size
      Src: /src/haproxy/src/jwe.c:1965,1
    - Dst: parse_jose
      Src: /src/haproxy/src/jwe.c:1970,1
    - Dst: process_jwk
      Src: /src/haproxy/src/jwe.c:2008,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:2020,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/jwe.c:2024,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:2024,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:2024,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:2033,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:2037,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:2045,1
    - Dst: do_decrypt_cek_ec
      Src: /src/haproxy/src/jwe.c:2050,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:2060,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwe.c:2064,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwe.c:2071,1
    - Dst: do_decrypt_cek_rsa
      Src: /src/haproxy/src/jwe.c:2077,1
    - Dst: decrypt_cek_aesgcmkw
      Src: /src/haproxy/src/jwe.c:2081,1
    - Dst: decrypt_cek_aeskw
      Src: /src/haproxy/src/jwe.c:2084,1
    - Dst: decrypt_ciphertext
      Src: /src/haproxy/src/jwe.c:2090,1
    - Dst: b_data
      Src: /src/haproxy/src/jwe.c:2093,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwe.c:2094,1
    - Dst: smp_dup
      Src: /src/haproxy/src/jwe.c:2096,1
    - Dst: clear_jwk
      Src: /src/haproxy/src/jwe.c:2101,1
    - Dst: clear_jose_fields
      Src: /src/haproxy/src/jwe.c:2102,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:2103,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:2104,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:2105,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwe.c:2106,1
    - Dst: clear_decoded_items
      Src: /src/haproxy/src/jwe.c:2107,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 158
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 1915
    functionDepth: 9
    functionLinenumber: 1915
    functionLinenumberEnd: 2109
    functionName: sample_conv_jwt_decrypt_jwk
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - alloc_trash_chunk
    - decrypt_ciphertext
    - clear_jwk
    - chunk_cpy
    - smp_dup
    - chunk_memcpy
    - clear_jose_fields
    - jwt_tokenize
    - smp_set_owner
    - sample_conv_var2smp_str
    - b_orig
    - free_trash_chunk
    - b_data
    - base64urldec
    - b_size
    - decrypt_cek_aeskw
    - clear_decoded_items
    - do_decrypt_cek_rsa
    - parse_jose
    - do_decrypt_cek_ec
    - decrypt_cek_aesgcmkw
    - process_jwk
    linkageType: ''
    returnType: int
    signature: int sample_conv_jwt_decrypt_jwk(const struct arg *args, struct sample
      *smp, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/jwe.c:2122,1
    - Dst: ha_alert
      Src: /src/haproxy/src/jwe.c:2124,1
    - Dst: memcpy
      Src: /src/haproxy/src/jwe.c:2127,1
    - Dst: malloc
      Src: /src/haproxy/src/jwe.c:2131,1
    - Dst: ha_alert
      Src: /src/haproxy/src/jwe.c:2133,1
    - Dst: memcpy
      Src: /src/haproxy/src/jwe.c:2136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2117
    functionDepth: 9
    functionLinenumber: 2117
    functionLinenumberEnd: 2143
    functionName: dup_alg_enc_arrays
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - malloc
    - ha_alert
    - memcpy
    linkageType: ''
    returnType: int
    signature: int dup_alg_enc_arrays(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dup_alg_enc_arrays
      Src: /src/haproxy/src/jwe.c:2149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2150
      start: 2145
    functionDepth: 10
    functionLinenumber: 2145
    functionLinenumberEnd: 2150
    functionName: jwe_init
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - dup_alg_enc_arrays
    linkageType: ''
    returnType: int
    signature: int jwe_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/jwe.c:2156,1
    - Dst: ha_free
      Src: /src/haproxy/src/jwe.c:2157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2154
    functionDepth: 1
    functionLinenumber: 2154
    functionLinenumberEnd: 2158
    functionName: jwe_deinit
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void jwe_deinit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/jwe.c:2172,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwe.c:2172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - arr
    - algname
    - algname_len
    - value
    argTypes:
    - struct alg_enc*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2167
    functionDepth: 0
    functionLinenumber: 2167
    functionLinenumberEnd: 2180
    functionName: set_alg_enc_flag
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int set_alg_enc_flag(struct alg_enc *arr, char *algname, int algname_len,
      int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - arr
    - val
    argTypes:
    - struct alg_enc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2183
    functionDepth: 0
    functionLinenumber: 2183
    functionLinenumberEnd: 2191
    functionName: set_all_alg_enc_flags
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_all_alg_enc_flags(struct alg_enc *arr, int val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/jwe.c:2205,1
    - Dst: dup_alg_enc_arrays
      Src: /src/haproxy/src/jwe.c:2211,1
    - Dst: set_all_alg_enc_flags
      Src: /src/haproxy/src/jwe.c:2223,1
    - Dst: strchr
      Src: /src/haproxy/src/jwe.c:2235,1
    - Dst: strncmp
      Src: /src/haproxy/src/jwe.c:2246,1
    - Dst: set_all_alg_enc_flags
      Src: /src/haproxy/src/jwe.c:2247,1
    - Dst: set_alg_enc_flag
      Src: /src/haproxy/src/jwe.c:2249,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwe.c:2250,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2199
    functionDepth: 10
    functionLinenumber: 2199
    functionLinenumberEnd: 2260
    functionName: jwe_parse_global_alg_enc_list
    functionSourceFile: /src/haproxy/src/jwe.c
    functionUses: 0
    functionsReached:
    - set_all_alg_enc_flags
    - memprintf
    - set_alg_enc_flag
    - strchr
    - strncmp
    - dup_alg_enc_arrays
    - strlen
    linkageType: ''
    returnType: int
    signature: "int jwe_parse_global_alg_enc_list(char **args, int section_type, struct
      proxy *curpx,\n                                         const struct proxy *defpx,
      const char *file, int line,\n                                         char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/counters.c:43,1
    - Dst: container_of
      Src: /src/haproxy/src/counters.c:51,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/counters.c:52,1
    - Dst: free
      Src: /src/haproxy/src/counters.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - counters
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 57
    functionName: _counters_shared_drop
    functionSourceFile: /src/haproxy/src/counters.c
    functionUses: 0
    functionsReached:
    - container_of
    - HA_ATOMIC_OR
    - free
    linkageType: ''
    returnType: void
    signature: void _counters_shared_drop(void *counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _counters_shared_drop
      Src: /src/haproxy/src/counters.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - counters
    argTypes:
    - struct fe_counters_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: counters_fe_shared_drop
    functionSourceFile: /src/haproxy/src/counters.c
    functionUses: 0
    functionsReached:
    - _counters_shared_drop
    linkageType: ''
    returnType: void
    signature: void counters_fe_shared_drop(struct fe_counters_shared *counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _counters_shared_drop
      Src: /src/haproxy/src/counters.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - counters
    argTypes:
    - struct be_counters_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: counters_be_shared_drop
    functionSourceFile: /src/haproxy/src/counters.c
    functionUses: 1
    functionsReached:
    - _counters_shared_drop
    linkageType: ''
    returnType: void
    signature: void counters_be_shared_drop(struct be_counters_shared *counters)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/counters.c:91,1
    - Dst: memprintf
      Src: /src/haproxy/src/counters.c:93,1
    - Dst: calloc
      Src: /src/haproxy/src/counters.c:103,1
    - Dst: memprintf
      Src: /src/haproxy/src/counters.c:105,1
    - Dst: shm_stats_file_add_object
      Src: /src/haproxy/src/counters.c:110,1
    - Dst: snprintf
      Src: /src/haproxy/src/counters.c:112,1
    - Dst: guid_get
      Src: /src/haproxy/src/counters.c:112,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/counters.c:124,1
    - Dst: _counters_shared_drop
      Src: /src/haproxy/src/counters.c:128,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/counters.c:137,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/counters.c:137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - shared
    - guid
    - is_be
    - errmsg
    argTypes:
    - struct counters_shared*
    - struct guid_node*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 139
    functionName: _counters_shared_prepare
    functionSourceFile: /src/haproxy/src/counters.c
    functionUses: 0
    functionsReached:
    - guid_get
    - memprintf
    - HA_ATOMIC_STORE
    - _counters_shared_drop
    - ns_to_sec
    - calloc
    - shm_stats_file_add_object
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int _counters_shared_prepare(struct counters_shared *shared,\n                                    const
      struct guid_node *guid, int is_be, char **errmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _counters_shared_prepare
      Src: /src/haproxy/src/counters.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - shared
    - guid
    - errmsg
    argTypes:
    - struct fe_counters_shared*
    - struct guid_node*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 6
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: counters_fe_shared_prepare
    functionSourceFile: /src/haproxy/src/counters.c
    functionUses: 0
    functionsReached:
    - _counters_shared_prepare
    linkageType: ''
    returnType: int
    signature: int counters_fe_shared_prepare(struct fe_counters_shared *shared, const
      struct guid_node *guid, char **errmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _counters_shared_prepare
      Src: /src/haproxy/src/counters.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - shared
    - guid
    - errmsg
    argTypes:
    - struct be_counters_shared*
    - struct guid_node*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 6
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: counters_be_shared_prepare
    functionSourceFile: /src/haproxy/src/counters.c
    functionUses: 1
    functionsReached:
    - _counters_shared_prepare
    linkageType: ''
    returnType: int
    signature: int counters_be_shared_prepare(struct be_counters_shared *shared, const
      struct guid_node *guid, char **errmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:55,1
    - Dst: quic_aead_iv_build
      Src: /src/haproxy/src/quic_tx.c:58,1
    - Dst: quic_tls_encrypt
      Src: /src/haproxy/src/quic_tx.c:60,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:62,1
    - Dst: enc_debug_info_init
      Src: /src/haproxy/src/quic_tx.c:64,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 8
    argNames:
    - payload
    - payload_len
    - aad
    - aad_len
    - pn
    - tls_ctx
    - qc
    - fail
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - uint64_t
    - struct quic_tls_ctx*
    - struct quic_conn*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 68
    functionName: quic_packet_encrypt
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - TRACE_ENTER
    - enc_debug_info_init
    - quic_aead_iv_build
    - quic_tls_encrypt
    linkageType: ''
    returnType: void
    signature: "void quic_packet_encrypt(unsigned char *payload, size_t payload_len,\n
      \                               unsigned char *aad, size_t aad_len, uint64_t
      pn,\n                                struct quic_tls_ctx *tls_ctx, struct quic_conn
      *qc,\n                                int *fail)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:79,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_tx.c:84,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_tx.c:85,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_tx.c:86,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - qc
    - pkt
    argTypes:
    - struct quic_conn*
    - struct quic_tx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: free_quic_tx_packet
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - list_for_each_entry_safe
    - qc_frm_free
    - TRACE_ENTER
    - pool_free
    linkageType: ''
    returnType: void
    signature: "void free_quic_tx_packet(struct quic_conn *qc,\n                                       struct
      quic_tx_packet *pkt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_alloc
      Src: /src/haproxy/src/quic_tx.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: qc_txb_alloc
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - b_alloc
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *qc_txb_alloc(struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_tx.c:116,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:116,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:118,1
    - Dst: b_free
      Src: /src/haproxy/src/quic_tx.c:119,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/quic_tx.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 122
    functionName: qc_txb_release
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 1
    functionsReached:
    - b_data
    - offer_buffers
    - BUG_ON_HOT
    - b_free
    linkageType: ''
    returnType: void
    signature: void qc_txb_release(struct quic_conn *qc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:133,1
    - Dst: b_is_null
      Src: /src/haproxy/src/quic_tx.c:135,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_tx.c:136,1
    - Dst: b_make
      Src: /src/haproxy/src/quic_tx.c:142,1
    - Dst: qc_txb_alloc
      Src: /src/haproxy/src/quic_tx.c:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 153
    functionName: qc_get_txb
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - qc_txb_alloc
    - TRACE_PROTO
    - b_is_null
    - pool_alloc
    - b_make
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *qc_get_txb(struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_tx.c:166,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_tx.c:166,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:169,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:170,1
    - Dst: write_u16
      Src: /src/haproxy/src/quic_tx.c:173,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_tx.c:173,1
    - Dst: write_ptr
      Src: /src/haproxy/src/quic_tx.c:174,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_tx.c:174,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_tx.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - buf
    - length
    - first_pkt
    - qc
    argTypes:
    - struct buffer*
    - uint16_t
    - struct quic_tx_packet*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 176
    functionName: qc_txb_store
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - write_u16
    - qc_is_back
    - b_tail
    - b_add
    - b_contig_space
    - write_ptr
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: "void qc_txb_store(struct buffer *buf, uint16_t length,\n                         struct
      quic_tx_packet *first_pkt,\n                         const struct quic_conn
      *qc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_tx.c:206,1
    - Dst: quic_enc_level_char_from_qel
      Src: /src/haproxy/src/quic_tx.c:208,1
    - Dst: quic_tls_has_tx_sec
      Src: /src/haproxy/src/quic_tx.c:209,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:209,1
    - Dst: quic_tls_has_tx_sec
      Src: /src/haproxy/src/quic_tx.c:218,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:220,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 7
    argCount: 6
    argNames:
    - qc
    - frms
    - qel
    - cc
    - probe
    - must_ack
    argTypes:
    - struct quic_conn*
    - struct list*
    - struct quic_enc_level*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 225
    functionName: qc_may_build_pkt
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_PRINTF
    - LIST_ISEMPTY
    - quic_tls_has_tx_sec
    - quic_enc_level_char_from_qel
    linkageType: ''
    returnType: int
    signature: "int qc_may_build_pkt(struct quic_conn *qc, struct list *frms,\n                            struct
      quic_enc_level *qel, int cc, int probe,\n                            int *must_ack)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:234,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:237,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_tx.c:238,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - qc
    - l
    argTypes:
    - struct quic_conn*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: qc_free_frm_list
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - qc_frm_free
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void qc_free_frm_list(struct quic_conn *qc, struct list *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:237,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_tx.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 82
    functionsReached:
    - LIST_DEL_INIT
    - qc_frm_free
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(frm, frmbak, l, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:250,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:253,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_tx.c:255,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - qc
    - p
    argTypes:
    - struct quic_conn*
    - struct quic_tx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 259
    functionName: qc_free_tx_coalesced_pkts
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - qc_free_frm_list
    - TRACE_ENTER
    - TRACE_LEAVE
    - pool_free
    linkageType: ''
    returnType: void
    signature: "void qc_free_tx_coalesced_pkts(struct quic_conn *qc,\n                                             struct
      quic_tx_packet *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_contig_data
      Src: /src/haproxy/src/quic_tx.c:264,1
    - Dst: read_u16
      Src: /src/haproxy/src/quic_tx.c:268,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:268,1
    - Dst: read_ptr
      Src: /src/haproxy/src/quic_tx.c:269,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:269,1
    - Dst: qc_free_tx_coalesced_pkts
      Src: /src/haproxy/src/quic_tx.c:270,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_tx.c:271,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:274,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - qc
    - buf
    argTypes:
    - struct quic_conn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 275
    functionName: qc_purge_tx_buf
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - b_head
    - BUG_ON
    - b_contig_data
    - read_ptr
    - b_data
    - qc_free_tx_coalesced_pkts
    - b_del
    - read_u16
    linkageType: ''
    returnType: void
    signature: void qc_purge_tx_buf(struct quic_conn *qc, struct buffer *buf)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:293,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/quic_tx.c:294,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:302,1
    - Dst: read_u16
      Src: /src/haproxy/src/quic_tx.c:303,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_tx.c:304,1
    - Dst: likely
      Src: /src/haproxy/src/quic_tx.c:308,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:309,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:313,1
    - Dst: read_ptr
      Src: /src/haproxy/src/quic_tx.c:320,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:325,1
    - Dst: qc_snd_buf
      Src: /src/haproxy/src/quic_tx.c:327,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:331,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:334,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:336,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/quic_tx.c:337,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_tx.c:340,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:341,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/quic_tx.c:342,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:350,1
    - Dst: qc_kill_conn
      Src: /src/haproxy/src/quic_tx.c:351,1
    - Dst: qc_free_tx_coalesced_pkts
      Src: /src/haproxy/src/quic_tx.c:352,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_tx.c:353,1
    - Dst: qc_purge_tx_buf
      Src: /src/haproxy/src/quic_tx.c:354,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_tx.c:359,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:360,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:366,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_tx.c:375,1
    - Dst: task_mono_time
      Src: /src/haproxy/src/quic_tx.c:378,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_tx.c:395,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_tx.c:400,1
    - Dst: write_u16
      Src: /src/haproxy/src/quic_tx.c:401,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:401,1
    - Dst: write_ptr
      Src: /src/haproxy/src/quic_tx.c:402,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:402,1
    - Dst: qc_idle_timer_rearm
      Src: /src/haproxy/src/quic_tx.c:415,1
    - Dst: struct quic_cc*::algo::on_transmit
      Src: /src/haproxy/src/quic_tx.c:417,1
    - Dst: struct quic_cc*::algo::drs_on_transmit
      Src: /src/haproxy/src/quic_tx.c:419,1
    - Dst: qc_detach_th_ctx_list
      Src: /src/haproxy/src/quic_tx.c:424,1
    - Dst: qc_idle_timer_do_rearm
      Src: /src/haproxy/src/quic_tx.c:435,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_tx.c:437,1
    - Dst: quic_tune_test
      Src: /src/haproxy/src/quic_tx.c:443,1
    - Dst: struct quic_cc*::algo::hystart_start_round
      Src: /src/haproxy/src/quic_tx.c:445,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_tx.c:447,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:448,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:449,1
    - Dst: quic_tls_pktns_is_dcd
      Src: /src/haproxy/src/quic_tx.c:450,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:461,1
    - Dst: quic_pktns_discard
      Src: /src/haproxy/src/quic_tx.c:462,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_tx.c:463,1
    - Dst: qc_el_rx_pkts_del
      Src: /src/haproxy/src/quic_tx.c:464,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_tx.c:465,1
    - Dst: quic_tx_packet_refinc
      Src: /src/haproxy/src/quic_tx.c:468,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_tx.c:469,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:475,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 124
    argCount: 2
    argNames:
    - buf
    - qc
    argTypes:
    - struct buffer*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 288
    functionDepth: 5
    functionLinenumber: 288
    functionLinenumberEnd: 478
    functionName: qc_send_ppkts
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - qc_test_fd
    - TRACE_ENTER
    - b_contig_data
    - qc_is_back
    - likely
    - read_ptr
    - HA_ATOMIC_OR
    - struct quic_cc*::algo::drs_on_transmit
    - qc_release_pktns_frms
    - struct quic_cc*::algo::hystart_start_round
    - task_destroy
    - qc_snd_buf
    - qc_detach_th_ctx_list
    - quic_tx_packet_refinc
    - quic_pktns_discard
    - task_mono_time
    - qc_kill_conn
    - BUG_ON_HOT
    - write_ptr
    - qc_purge_tx_buf
    - TRACE_PROTO
    - b_head
    - TRACE_LEAVE
    - TRACE_ERROR
    - eb64_insert
    - qc_set_timer
    - b_add
    - quic_tune_test
    - qc_free_tx_coalesced_pkts
    - b_del
    - struct quic_cc*::algo::on_transmit
    - __objt_server
    - BUG_ON
    - write_u16
    - qc_idle_timer_do_rearm
    - qc_el_rx_pkts_del
    - qc_idle_timer_rearm
    - read_u16
    - quic_tls_pktns_is_dcd
    linkageType: ''
    returnType: int
    signature: int qc_send_ppkts(struct buffer *buf, struct quic_conn *qc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:489,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:495,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_tx.c:495,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:497,1
    - Dst: qc_send_ppkts
      Src: /src/haproxy/src/quic_tx.c:497,1
    - Dst: qc_txb_release
      Src: /src/haproxy/src/quic_tx.c:499,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:500,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - qc
    - buf
    argTypes:
    - struct quic_conn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 487
    functionDepth: 6
    functionLinenumber: 487
    functionLinenumberEnd: 506
    functionName: qc_purge_txbuf
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - qc_send_ppkts
    - TRACE_LEAVE
    - BUG_ON
    - qc_test_fd
    - TRACE_DEVEL
    - TRACE_ENTER
    - qc_txb_release
    - b_data
    linkageType: ''
    returnType: int
    signature: int qc_purge_txbuf(struct quic_conn *qc, struct buffer *buf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:516,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:519,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:522,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:525,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:525,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_tx.c:526,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:530,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:536,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:541,1
    - Dst: qel_need_sending
      Src: /src/haproxy/src/quic_tx.c:541,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:542,1
    - Dst: quic_build_post_handshake_frames
      Src: /src/haproxy/src/quic_tx.c:547,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:548,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:549,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:554,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:557,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:558,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:559,1
    - Dst: struct quic_conn*::path::cc::algo::check_app_limited
      Src: /src/haproxy/src/quic_tx.c:562,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:568,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:569,1
    - Dst: quic_pacing_sent_done
      Src: /src/haproxy/src/quic_tx.c:571,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:574,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - qc
    - frms
    - pacer
    argTypes:
    - struct quic_conn*
    - struct list*
    - struct quic_pacer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 513
    functionDepth: 4
    functionLinenumber: 513
    functionLinenumberEnd: 576
    functionName: qc_send_mux
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - qel_register_send
    - quic_build_post_handshake_frames
    - TRACE_STATE
    - BUG_ON
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - qc_is_back
    - LIST_ISEMPTY
    - LIST_HEAD_INIT
    - qc_send
    - struct quic_conn*::path::cc::algo::check_app_limited
    - quic_pacing_sent_done
    - qel_need_sending
    linkageType: ''
    returnType: enum quic_tx_err
    signature: "enum quic_tx_err qc_send_mux(struct quic_conn *qc, struct list *frms,\n
      \                            struct quic_pacer *pacer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - qc
    - qel
    - tls_ctx
    - ver
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level*
    - struct quic_tls_ctx**
    - struct quic_version**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 597
    functionName: qc_select_tls_ver
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void qc_select_tls_ver(struct quic_conn *qc,\n                                     struct
      quic_enc_level *qel,\n                                     struct quic_tls_ctx
      **tls_ctx,\n                                     const struct quic_version **ver)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:626,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_tx.c:630,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:635,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:645,1
    - Dst: qc_select_tls_ver
      Src: /src/haproxy/src/quic_tx.c:650,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/quic_tx.c:653,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_tx.c:662,1
    - Dst: qc_may_build_pkt
      Src: /src/haproxy/src/quic_tx.c:663,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:671,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:674,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:676,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:676,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:677,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_tx.c:689,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:689,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_tx.c:690,1
    - Dst: quic_may_send_bytes
      Src: /src/haproxy/src/quic_tx.c:690,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:695,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:696,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:717,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:717,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:720,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:740,1
    - Dst: quic_enc_level_pkt_type
      Src: /src/haproxy/src/quic_tx.c:743,1
    - Dst: qc_build_pkt
      Src: /src/haproxy/src/quic_tx.c:744,1
    - Dst: qc_purge_tx_buf
      Src: /src/haproxy/src/quic_tx.c:751,1
    - Dst: qc_txb_store
      Src: /src/haproxy/src/quic_tx.c:764,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:766,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_tx.c:770,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:814,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:824,1
    - Dst: quic_tune_test
      Src: /src/haproxy/src/quic_tx.c:828,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:831,1
    - Dst: qc_txb_store
      Src: /src/haproxy/src/quic_tx.c:843,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:857,1
    - Dst: qc_txb_store
      Src: /src/haproxy/src/quic_tx.c:862,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:865,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:866,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:870,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:874,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 129
    argCount: 4
    argNames:
    - qc
    - buf
    - qels
    - max_dgrams
    argTypes:
    - struct quic_conn*
    - struct buffer*
    - struct list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 612
    functionDepth: 5
    functionLinenumber: 612
    functionLinenumberEnd: 876
    functionName: qc_prep_pkts
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - LIST_NEXT
    - qc_build_pkt
    - TRACE_ENTER
    - qc_is_back
    - b_contig_space
    - qc_txb_store
    - quic_enc_level_pkt_type
    - TRACE_DEVEL
    - quic_peer_validated_addr
    - qc_select_tls_ver
    - b_wrap
    - BUG_ON_HOT
    - qc_purge_tx_buf
    - TRACE_PROTO
    - b_head
    - TRACE_LEAVE
    - quic_may_send_bytes
    - quic_tune_test
    - qc_may_build_pkt
    - QUIC_MIN
    - BUG_ON
    - ABORT_NOW
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: "int qc_prep_pkts(struct quic_conn *qc, struct buffer *buf,\n                         struct
      list *qels, int max_dgrams)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:645,1
    - Dst: qc_select_tls_ver
      Src: /src/haproxy/src/quic_tx.c:650,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/quic_tx.c:653,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_tx.c:662,1
    - Dst: qc_may_build_pkt
      Src: /src/haproxy/src/quic_tx.c:663,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:671,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:674,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:676,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:676,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:677,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_tx.c:689,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:689,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_tx.c:690,1
    - Dst: quic_may_send_bytes
      Src: /src/haproxy/src/quic_tx.c:690,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:695,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:696,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:717,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:717,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:720,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:740,1
    - Dst: quic_enc_level_pkt_type
      Src: /src/haproxy/src/quic_tx.c:743,1
    - Dst: qc_build_pkt
      Src: /src/haproxy/src/quic_tx.c:744,1
    - Dst: qc_purge_tx_buf
      Src: /src/haproxy/src/quic_tx.c:751,1
    - Dst: qc_txb_store
      Src: /src/haproxy/src/quic_tx.c:764,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:766,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_tx.c:770,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:814,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:824,1
    - Dst: quic_tune_test
      Src: /src/haproxy/src/quic_tx.c:828,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:831,1
    - Dst: qc_txb_store
      Src: /src/haproxy/src/quic_tx.c:843,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:857,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 638
    functionDepth: 5
    functionLinenumber: 638
    functionLinenumberEnd: 858
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 82
    functionsReached:
    - LIST_NEXT
    - qc_build_pkt
    - qc_is_back
    - b_contig_space
    - qc_txb_store
    - quic_enc_level_pkt_type
    - TRACE_DEVEL
    - quic_peer_validated_addr
    - qc_select_tls_ver
    - b_wrap
    - qc_purge_tx_buf
    - TRACE_PROTO
    - b_head
    - quic_may_send_bytes
    - quic_tune_test
    - qc_may_build_pkt
    - QUIC_MIN
    - BUG_ON
    - ABORT_NOW
    - LIST_ISEMPTY
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(qel, tmp_qel, qels, el_send)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:899,1
    - Dst: qc_get_txb
      Src: /src/haproxy/src/quic_tx.c:901,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:903,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:908,1
    - Dst: qc_purge_txbuf
      Src: /src/haproxy/src/quic_tx.c:908,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:909,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:915,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:923,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_tx.c:930,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:930,1
    - Dst: b_reset
      Src: /src/haproxy/src/quic_tx.c:931,1
    - Dst: qc_prep_pkts
      Src: /src/haproxy/src/quic_tx.c:933,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:934,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:936,1
    - Dst: qc_send_ppkts
      Src: /src/haproxy/src/quic_tx.c:936,1
    - Dst: qc_txb_release
      Src: /src/haproxy/src/quic_tx.c:938,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:945,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:950,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:951,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:952,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:958,1
    - Dst: qc_txb_release
      Src: /src/haproxy/src/quic_tx.c:963,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:967,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:973,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:977,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 4
    argNames:
    - qc
    - old_data
    - send_list
    - max_dgrams
    argTypes:
    - struct quic_conn*
    - int
    - struct list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 892
    functionDepth: 7
    functionLinenumber: 892
    functionLinenumberEnd: 979
    functionName: qc_send
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 3
    functionsReached:
    - qc_send_ppkts
    - TRACE_STATE
    - TRACE_ERROR
    - qc_purge_txbuf
    - BUG_ON
    - LIST_DEL_INIT
    - TRACE_DEVEL
    - TRACE_ENTER
    - qc_prep_pkts
    - qc_txb_release
    - qc_get_txb
    - b_data
    - LIST_ISEMPTY
    - b_reset
    - BUG_ON_HOT
    linkageType: ''
    returnType: int
    signature: "int qc_send(struct quic_conn *qc, int old_data, struct list *send_list,\n
      \           int max_dgrams)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 975
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 82
    functionsReached:
    - LIST_DEL_INIT
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(qel, tmp_qel, send_list, el_send)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:988,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/quic_tx.c:988,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - send_list
    - qel
    - frms
    argTypes:
    - struct list*
    - struct quic_enc_level*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 992
    functionName: qel_register_send
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 3
    functionsReached:
    - LIST_INLIST
    - BUG_ON
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: "void qel_register_send(struct list *send_list, struct quic_enc_level
      *qel,\n                       struct list *frms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - qel
    - qc
    argTypes:
    - struct quic_enc_level*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1004
    functionName: qel_need_sending
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 3
    functionsReached:
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int qel_need_sending(struct quic_enc_level *qel, struct quic_conn *qc)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1017,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1026,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1027,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1028,1
    - Dst: qc_prep_hdshk_fast_retrans
      Src: /src/haproxy/src/quic_tx.c:1030,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1031,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1032,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1034,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1036,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1037,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1039,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:1042,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1043,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1044,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1054,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:1055,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1056,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1057,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:1064,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1076,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1077,1
    - Dst: qc_prep_fast_retrans
      Src: /src/haproxy/src/quic_tx.c:1079,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1080,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1081,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1083,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:1084,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1085,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:1090,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1095,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1096,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1097,1
    - Dst: qc_prep_fast_retrans
      Src: /src/haproxy/src/quic_tx.c:1100,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1101,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1102,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1104,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1106,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:1107,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1108,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1110,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1115,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1117,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:1118,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1119,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:1123,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1131,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 89
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1009
    functionDepth: 8
    functionLinenumber: 1009
    functionLinenumberEnd: 1133
    functionName: qc_dgrams_retransmit
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 2
    functionsReached:
    - qel_register_send
    - TRACE_PROTO
    - qc_prep_fast_retrans
    - qc_prep_hdshk_fast_retrans
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - LIST_ISEMPTY
    - LIST_HEAD_INIT
    - qc_send
    - qc_free_frm_list
    linkageType: ''
    returnType: int
    signature: int qc_dgrams_retransmit(struct quic_conn *qc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_addr_len
      Src: /src/haproxy/src/quic_tx.c:1150,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1152,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_tx.c:1158,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1159,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1172,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1177,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tx.c:1182,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1183,1
    - Dst: sendto
      Src: /src/haproxy/src/quic_tx.c:1187,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - fd
    - addr
    - pkt
    argTypes:
    - int
    - struct sockaddr_storage*
    - struct quic_rx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1194
    functionName: send_version_negotiation
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - get_addr_len
    - memcpy
    - TRACE_ERROR
    - TRACE_LEAVE
    - RAND_bytes
    - TRACE_ENTER
    - sendto
    - htonl
    linkageType: ''
    returnType: int
    signature: "int send_version_negotiation(int fd, struct sockaddr_storage *addr,\n
      \                            struct quic_rx_packet *pkt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_addr_len
      Src: /src/haproxy/src/quic_tx.c:1205,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1209,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1228,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_tx.c:1233,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_tx.c:1247,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1248,1
    - Dst: quic_stateless_reset_token_cpy
      Src: /src/haproxy/src/quic_tx.c:1254,1
    - Dst: sendto
      Src: /src/haproxy/src/quic_tx.c:1258,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_tx.c:1262,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1263,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - l
    - dstaddr
    - rxpkt
    argTypes:
    - struct listener*
    - struct sockaddr_storage*
    - struct quic_rx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1267
    functionName: send_stateless_reset
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - EXTRA_COUNTERS_GET
    - get_addr_len
    - TRACE_ERROR
    - TRACE_LEAVE
    - RAND_bytes
    - TRACE_DEVEL
    - TRACE_ENTER
    - sendto
    - quic_stateless_reset_token_cpy
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: int
    signature: "int send_stateless_reset(struct listener *l, struct sockaddr_storage
      *dstaddr,\n                         struct quic_rx_packet *rxpkt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - type
    - version
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1287
    functionName: quic_pkt_type
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_pkt_type(int type, uint32_t version)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_addr_len
      Src: /src/haproxy/src/quic_tx.c:1301,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1304,1
    - Dst: quic_pkt_type
      Src: /src/haproxy/src/quic_tx.c:1308,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/quic_tx.c:1309,1
    - Dst: write_n32
      Src: /src/haproxy/src/quic_tx.c:1311,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1316,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_tx.c:1322,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1323,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1328,1
    - Dst: quic_generate_retry_token
      Src: /src/haproxy/src/quic_tx.c:1332,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1334,1
    - Dst: quic_tls_generate_retry_integrity_tag
      Src: /src/haproxy/src/quic_tx.c:1342,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1344,1
    - Dst: sendto
      Src: /src/haproxy/src/quic_tx.c:1350,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1351,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1357,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - fd
    - addr
    - pkt
    - qv
    argTypes:
    - int
    - struct sockaddr_storage*
    - struct quic_rx_packet*
    - struct quic_version*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1295
    functionDepth: 3
    functionLinenumber: 1295
    functionLinenumberEnd: 1359
    functionName: send_retry
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - statistical_prng_range
    - get_addr_len
    - memcpy
    - TRACE_ERROR
    - RAND_bytes
    - quic_tls_generate_retry_integrity_tag
    - TRACE_LEAVE
    - TRACE_ENTER
    - sendto
    - quic_generate_retry_token
    - quic_pkt_type
    - write_n32
    linkageType: ''
    returnType: int
    signature: "int send_retry(int fd, struct sockaddr_storage *addr,\n               struct
      quic_rx_packet *pkt, const struct quic_version *qv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_u32
      Src: /src/haproxy/src/quic_tx.c:1372,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tx.c:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - end
    - val
    argTypes:
    - unsigned char**
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1376
    functionName: quic_write_uint32
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - write_u32
    - htonl
    linkageType: ''
    returnType: int
    signature: "int quic_write_uint32(unsigned char **buf,\n                                    const
      unsigned char *end, uint32_t val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pn
    - largest_acked_pn
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1381
    functionDepth: 0
    functionLinenumber: 1381
    functionLinenumberEnd: 1400
    functionName: quic_packet_number_length
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t quic_packet_number_length(int64_t pn,\n                                               int64_t
      largest_acked_pn)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: write_n16
      Src: /src/haproxy/src/quic_tx.c:1421,1
    - Dst: write_n32
      Src: /src/haproxy/src/quic_tx.c:1429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - buf
    - end
    - pn
    - pn_len
    argTypes:
    - unsigned char**
    - unsigned char*
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1435
    functionName: quic_packet_number_encode
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - write_n16
    - write_n32
    linkageType: ''
    returnType: int
    signature: "int quic_packet_number_encode(unsigned char **buf,\n                                            const
      unsigned char *end,\n                                            uint64_t pn,
      size_t pn_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1447,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1450,1
    - Dst: quic_pkt_type
      Src: /src/haproxy/src/quic_tx.c:1454,1
    - Dst: quic_write_uint32
      Src: /src/haproxy/src/quic_tx.c:1459,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1463,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1469,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 6
    argNames:
    - pos
    - end
    - type
    - pn_len
    - qc
    - ver
    argTypes:
    - unsigned char**
    - unsigned char*
    - int
    - size_t
    - struct quic_conn*
    - struct quic_version*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1441
    functionDepth: 2
    functionLinenumber: 1441
    functionLinenumberEnd: 1477
    functionName: quic_build_packet_long_header
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - memcpy
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_pkt_type
    - quic_write_uint32
    linkageType: ''
    returnType: int
    signature: "int quic_build_packet_long_header(unsigned char **pos, const unsigned
      char *end,\n                                         int type, size_t pn_len,\n
      \                                        struct quic_conn *qc, const struct
      quic_version *ver)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1491,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1494,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1503,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - pos
    - end
    - pn_len
    - qc
    - tls_flags
    argTypes:
    - unsigned char**
    - unsigned char*
    - size_t
    - struct quic_conn*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1511
    functionName: quic_build_packet_short_header
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_LEAVE
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_build_packet_short_header(unsigned char **pos, const unsigned
      char *end,\n                                          size_t pn_len, struct
      quic_conn *qc,\n                                          unsigned char tls_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1532,1
    - Dst: quic_tls_hp_encrypt
      Src: /src/haproxy/src/quic_tx.c:1536,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1537,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - qc
    - pos
    - pn
    - pnlen
    - tls_ctx
    - fail
    argTypes:
    - struct quic_conn*
    - unsigned char*
    - unsigned char*
    - size_t
    - struct quic_tls_ctx*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1548
    functionName: quic_apply_header_protection
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - quic_tls_hp_encrypt
    - TRACE_ENTER
    - TRACE_LEAVE
    - TRACE_ERROR
    linkageType: ''
    returnType: void
    signature: "void quic_apply_header_protection(struct quic_conn *qc, unsigned char
      *pos,\n                                        unsigned char *pn, size_t pnlen,\n
      \                                       struct quic_tls_ctx *tls_ctx, int *fail)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1569,1
    - Dst: quic_cc_path_prep_data
      Src: /src/haproxy/src/quic_tx.c:1580,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_tx.c:1585,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1588,1
    - Dst: quic_strm_frm_fillbuf
      Src: /src/haproxy/src/quic_tx.c:1604,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1608,1
    - Dst: quic_strm_frm_split
      Src: /src/haproxy/src/quic_tx.c:1612,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1614,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1617,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1619,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1620,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1623,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1624,1
    - Dst: qc_stream_frm_is_acked
      Src: /src/haproxy/src/quic_tx.c:1634,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_tx.c:1635,1
    - Dst: quic_strm_frm_fillbuf
      Src: /src/haproxy/src/quic_tx.c:1640,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1644,1
    - Dst: quic_strm_frm_split
      Src: /src/haproxy/src/quic_tx.c:1656,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1658,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1662,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1664,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1665,1
    - Dst: qc_stream_desc_send
      Src: /src/haproxy/src/quic_tx.c:1666,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1671,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1672,1
    - Dst: qc_stream_desc_send
      Src: /src/haproxy/src/quic_tx.c:1673,1
    - Dst: qc_frm_len
      Src: /src/haproxy/src/quic_tx.c:1684,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:1685,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1691,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1692,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1701,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 86
    argCount: 7
    argNames:
    - outlist
    - inlist
    - room
    - len
    - headlen
    - qel
    - qc
    argTypes:
    - struct list*
    - struct list*
    - size_t
    - size_t*
    - size_t
    - struct quic_enc_level*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1561
    functionDepth: 2
    functionLinenumber: 1561
    functionLinenumberEnd: 1703
    functionName: qc_build_frms
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - quic_cc_path_prep_data
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - BUG_ON
    - LIST_DEL_INIT
    - TRACE_DEVEL
    - TRACE_ENTER
    - qc_frm_free
    - quic_strm_frm_fillbuf
    - LIST_APPEND
    - qc_frm_len
    - qc_stream_desc_send
    - quic_strm_frm_split
    - qc_stream_frm_is_acked
    - QUIC_MIN
    linkageType: ''
    returnType: int
    signature: "int qc_build_frms(struct list *outlist, struct list *inlist,\n                         size_t
      room, size_t *len, size_t headlen,\n                         struct quic_enc_level
      *qel,\n                         struct quic_conn *qc)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: quic_strm_frm_fillbuf
      Src: /src/haproxy/src/quic_tx.c:1604,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1608,1
    - Dst: quic_strm_frm_split
      Src: /src/haproxy/src/quic_tx.c:1612,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1614,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1617,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1619,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1620,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1623,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1624,1
    - Dst: qc_stream_frm_is_acked
      Src: /src/haproxy/src/quic_tx.c:1634,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_tx.c:1635,1
    - Dst: quic_strm_frm_fillbuf
      Src: /src/haproxy/src/quic_tx.c:1640,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1644,1
    - Dst: quic_strm_frm_split
      Src: /src/haproxy/src/quic_tx.c:1656,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1658,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1662,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1664,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1665,1
    - Dst: qc_stream_desc_send
      Src: /src/haproxy/src/quic_tx.c:1666,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1671,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1672,1
    - Dst: qc_stream_desc_send
      Src: /src/haproxy/src/quic_tx.c:1673,1
    - Dst: qc_frm_len
      Src: /src/haproxy/src/quic_tx.c:1684,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:1685,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1691,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1692,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1698
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 82
    functionsReached:
    - TRACE_ERROR
    - BUG_ON
    - LIST_DEL_INIT
    - TRACE_DEVEL
    - qc_frm_free
    - qc_frm_len
    - quic_strm_frm_fillbuf
    - LIST_APPEND
    - qc_stream_desc_send
    - quic_strm_frm_split
    - qc_stream_frm_is_acked
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(cf, cfbak, inlist, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1718,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_tx.c:1722,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - qc
    - qel
    - out
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level*
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1753
    functionName: qc_build_cc_frm
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: "void qc_build_cc_frm(struct quic_conn *qc, struct quic_enc_level *qel,\n
      \                           struct quic_frame *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - time_received
    - conn
    argTypes:
    - unsigned int
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1762
    functionName: quic_compute_ack_delay_us
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t quic_compute_ack_delay_us(unsigned int time_received,\n                                                 struct
      quic_conn *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_tx.c:1773,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1777,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - pos
    - end
    - tok
    - toklen
    argTypes:
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1770
    functionDepth: 1
    functionLinenumber: 1770
    functionLinenumberEnd: 1782
    functionName: quic_do_enc_token
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_do_enc_token(unsigned char **pos, const unsigned char *end,\n
      \                                   const unsigned char *tok, size_t toklen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:1804,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:1804,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:1808,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_tx.c:1810,1
    - Dst: istptr
      Src: /src/haproxy/src/quic_tx.c:1811,1
    - Dst: istlen
      Src: /src/haproxy/src/quic_tx.c:1812,1
    - Dst: quic_do_enc_token
      Src: /src/haproxy/src/quic_tx.c:1820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - qc
    - pos
    - end
    argTypes:
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1795
    functionDepth: 2
    functionLinenumber: 1795
    functionLinenumberEnd: 1821
    functionName: quic_enc_token
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - quic_do_enc_token
    - BUG_ON
    - qc_is_back
    - istptr
    - istlen
    linkageType: ''
    returnType: int
    signature: "int quic_enc_token(struct quic_conn *qc,\n                                 unsigned
      char **pos, const unsigned char *end)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1861,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1865,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_tx.c:1866,1
    - Dst: quic_enc_level_char_from_qel
      Src: /src/haproxy/src/quic_tx.c:1869,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1878,1
    - Dst: quic_cc_path_prep_data
      Src: /src/haproxy/src/quic_tx.c:1881,1
    - Dst: quic_packet_number_length
      Src: /src/haproxy/src/quic_tx.c:1896,1
    - Dst: quic_build_packet_short_header
      Src: /src/haproxy/src/quic_tx.c:1899,1
    - Dst: quic_build_packet_long_header
      Src: /src/haproxy/src/quic_tx.c:1901,1
    - Dst: quic_enc_token
      Src: /src/haproxy/src/quic_tx.c:1906,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_tx.c:1916,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:1928,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_tx.c:1928,1
    - Dst: quic_compute_ack_delay_us
      Src: /src/haproxy/src/quic_tx.c:1933,1
    - Dst: qc_frm_len
      Src: /src/haproxy/src/quic_tx.c:1946,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1954,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1957,1
    - Dst: qc_build_frms
      Src: /src/haproxy/src/quic_tx.c:1963,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1965,1
    - Dst: qc_build_cc_frm
      Src: /src/haproxy/src/quic_tx.c:2006,1
    - Dst: qc_frm_len
      Src: /src/haproxy/src/quic_tx.c:2007,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_tx.c:2017,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:2022,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_tx.c:2036,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_tx.c:2070,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_tx.c:2077,1
    - Dst: quic_packet_number_encode
      Src: /src/haproxy/src/quic_tx.c:2084,1
    - Dst: qc_build_frm_pkt
      Src: /src/haproxy/src/quic_tx.c:2090,1
    - Dst: quic_pktns_get_largest_acked_pn
      Src: /src/haproxy/src/quic_tx.c:2093,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:2098,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_tx.c:2100,1
    - Dst: qc_build_frm_pkt
      Src: /src/haproxy/src/quic_tx.c:2101,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2103,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:2108,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/quic_tx.c:2109,1
    - Dst: quic_tx_packet_refinc
      Src: /src/haproxy/src/quic_tx.c:2113,1
    - Dst: qc_build_frm_pkt
      Src: /src/haproxy/src/quic_tx.c:2121,1
    - Dst: qc_build_frm_pkt
      Src: /src/haproxy/src/quic_tx.c:2127,1
    - Dst: qc_build_frm_pkt
      Src: /src/haproxy/src/quic_tx.c:2137,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2143,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:2147,1
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/quic_tx.c:2157,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2160,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:2162,1
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/quic_tx.c:2167,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2168,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 178
    argCount: 15
    argNames:
    - pos
    - end
    - dglen
    - pkt
    - pn
    - pn_len
    - buf_pn
    - must_ack
    - padding
    - cc
    - probe
    - qel
    - qc
    - ver
    - frms
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - struct quic_tx_packet*
    - int64_t
    - size_t*
    - unsigned char**
    - int
    - int
    - int
    - int
    - struct quic_enc_level*
    - struct quic_conn*
    - struct quic_version*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 1846
    functionDepth: 4
    functionLinenumber: 1846
    functionLinenumberEnd: 2170
    functionName: qc_do_build_pkt
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - LIST_SPLICE
    - list_for_each_entry_safe
    - TRACE_ENTER
    - quic_int_getsize
    - quic_packet_number_length
    - quic_compute_ack_delay_us
    - quic_cc_path_prep_data
    - eb_is_empty
    - quic_enc_int
    - quic_build_packet_long_header
    - quic_tx_packet_refinc
    - LIST_INSERT
    - quic_build_packet_short_header
    - qc_build_frms
    - TRACE_PROTO
    - TRACE_LEAVE
    - LIST_DEL_INIT
    - qc_frm_len
    - qc_build_cc_frm
    - TRACE_PRINTF
    - LIST_HEAD_INIT
    - quic_enc_token
    - quic_packet_number_encode
    - BUG_ON
    - LIST_ISEMPTY
    - qc_build_frm_pkt
    - quic_pktns_get_largest_acked_pn
    - quic_enc_level_char_from_qel
    linkageType: ''
    returnType: int
    signature: "int qc_do_build_pkt(unsigned char *pos, const unsigned char *end,\n
      \                          size_t dglen, struct quic_tx_packet *pkt,\n                           int64_t
      pn, size_t *pn_len, unsigned char **buf_pn,\n                           int
      must_ack, int padding, int cc, int probe,\n                           struct
      quic_enc_level *qel, struct quic_conn *qc,\n                           const
      struct quic_version *ver, struct list *frms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_tx.c:2178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - pkt
    - type
    argTypes:
    - struct quic_tx_packet*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2172
    functionDepth: 1
    functionLinenumber: 2172
    functionLinenumberEnd: 2186
    functionName: quic_tx_packet_init
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void quic_tx_packet_init(struct quic_tx_packet *pkt, int type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:2212,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2213,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_tx.c:2215,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:2217,1
    - Dst: quic_tx_packet_init
      Src: /src/haproxy/src/quic_tx.c:2222,1
    - Dst: qc_do_build_pkt
      Src: /src/haproxy/src/quic_tx.c:2228,1
    - Dst: quic_packet_encrypt
      Src: /src/haproxy/src/quic_tx.c:2240,1
    - Dst: WARN_ON
      Src: /src/haproxy/src/quic_tx.c:2243,1
    - Dst: quic_apply_header_protection
      Src: /src/haproxy/src/quic_tx.c:2250,1
    - Dst: WARN_ON
      Src: /src/haproxy/src/quic_tx.c:2253,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_tx.c:2261,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2263,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_tx.c:2281,1
    - Dst: task_queue
      Src: /src/haproxy/src/quic_tx.c:2284,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2285,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2291,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:2292,1
    - Dst: free_quic_tx_packet
      Src: /src/haproxy/src/quic_tx.c:2297,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:2298,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 74
    argCount: 14
    argNames:
    - pos
    - end
    - qel
    - tls_ctx
    - frms
    - qc
    - ver
    - dglen
    - pkt_type
    - must_ack
    - padding
    - probe
    - cc
    - err
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_enc_level*
    - struct quic_tls_ctx*
    - struct list*
    - struct quic_conn*
    - struct quic_version*
    - size_t
    - int
    - int
    - int
    - int
    - int
    - enum qc_build_pkt_err*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2195
    functionDepth: 5
    functionLinenumber: 2195
    functionLinenumberEnd: 2300
    functionName: qc_build_pkt
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 2
    functionsReached:
    - TRACE_PROTO
    - pool_alloc
    - TRACE_LEAVE
    - WARN_ON
    - free_quic_tx_packet
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_tx_packet_init
    - quic_packet_encrypt
    - quic_peer_validated_addr
    - task_queue
    - tick_isset
    - quic_apply_header_protection
    - qc_do_build_pkt
    linkageType: ''
    returnType: struct quic_tx_packet
    signature: "struct quic_tx_packet *qc_build_pkt(unsigned char **pos,\n                                           const
      unsigned char *end,\n                                           struct quic_enc_level
      *qel,\n                                           struct quic_tls_ctx *tls_ctx,
      struct list *frms,\n                                           struct quic_conn
      *qc, const struct quic_version *ver,\n                                           size_t
      dglen, int pkt_type, int must_ack,\n                                           int
      padding, int probe, int cc,\n                                           enum
      qc_build_pkt_err *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:2316,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_tx.c:2336,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:2341,1
    - Dst: qc_do_build_pkt
      Src: /src/haproxy/src/quic_tx.c:2346,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:2354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2302
    functionDepth: 5
    functionLinenumber: 2302
    functionLinenumberEnd: 2357
    functionName: quic_tx_unittest
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - LIST_APPEND
    - LIST_HEAD_INIT
    - qc_do_build_pkt
    - LIST_INIT
    linkageType: ''
    returnType: int
    signature: int quic_tx_unittest(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/ev_epoll.c:47,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_epoll.c:48,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_epoll.c:48,1
    - Dst: fd_tgid
      Src: /src/haproxy/src/ev_epoll.c:49,1
    - Dst: unlikely
      Src: /src/haproxy/src/ev_epoll.c:62,1
    - Dst: CHECK_IF
      Src: /src/haproxy/src/ev_epoll.c:63,1
    - Dst: thread_isolated
      Src: /src/haproxy/src/ev_epoll.c:63,1
    - Dst: epoll_ctl
      Src: /src/haproxy/src/ev_epoll.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 70
    functionName: __fd_clo
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _HA_ATOMIC_LOAD
    - CHECK_IF
    - thread_isolated
    - fd_tgid
    - epoll_ctl
    linkageType: ''
    returnType: void
    signature: void __fd_clo(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - poller
    - fd
    - old_ltid
    - old_tgid
    argTypes:
    - struct poller*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: _do_fixup_tgid_takeover
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _do_fixup_tgid_takeover(struct poller *poller, const int fd, const
      int old_ltid, const int old_tgid)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_epoll.c:87,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_epoll.c:88,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_epoll.c:97,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_epoll.c:98,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_epoll.c:117,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_epoll.c:119,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_epoll.c:127,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_epoll.c:130,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_epoll.c:134,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_epoll.c:137,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_epoll.c:147,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_epoll.c:149,1
    - Dst: epoll_ctl
      Src: /src/haproxy/src/ev_epoll.c:165,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ev_epoll.c:167,1
    - Dst: epoll_ctl
      Src: /src/haproxy/src/ev_epoll.c:167,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ev_epoll.c:168,1
    - Dst: epoll_ctl
      Src: /src/haproxy/src/ev_epoll.c:168,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ev_epoll.c:170,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 173
    functionName: _update_fd
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 4
    functionsReached:
    - BUG_ON
    - _HA_ATOMIC_LOAD
    - epoll_ctl
    - _HA_ATOMIC_AND
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void _update_fd(int fd)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fd_grab_tgid
      Src: /src/haproxy/src/ev_epoll.c:191,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ev_epoll.c:197,1
    - Dst: _update_fd
      Src: /src/haproxy/src/ev_epoll.c:200,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/ev_epoll.c:204,1
    - Dst: fd_grab_tgid
      Src: /src/haproxy/src/ev_epoll.c:219,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/ev_epoll.c:226,1
    - Dst: done_update_polling
      Src: /src/haproxy/src/ev_epoll.c:230,1
    - Dst: _update_fd
      Src: /src/haproxy/src/ev_epoll.c:233,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/src/ev_epoll.c:237,1
    - Dst: thread_idle_now
      Src: /src/haproxy/src/ev_epoll.c:240,1
    - Dst: thread_harmless_now
      Src: /src/haproxy/src/ev_epoll.c:241,1
    - Dst: compute_poll_timeout
      Src: /src/haproxy/src/ev_epoll.c:244,1
    - Dst: clock_entering_poll
      Src: /src/haproxy/src/ev_epoll.c:245,1
    - Dst: epoll_wait
      Src: /src/haproxy/src/ev_epoll.c:250,1
    - Dst: clock_update_local_date
      Src: /src/haproxy/src/ev_epoll.c:251,1
    - Dst: tick_isset
      Src: /src/haproxy/src/ev_epoll.c:259,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/ev_epoll.c:259,1
    - Dst: clock_update_global_date
      Src: /src/haproxy/src/ev_epoll.c:263,1
    - Dst: fd_leaving_poll
      Src: /src/haproxy/src/ev_epoll.c:264,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_epoll.c:281,1
    - Dst: unlikely
      Src: /src/haproxy/src/ev_epoll.c:283,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_epoll.c:288,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ev_epoll.c:289,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/ev_epoll.c:296,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/ev_epoll.c:306,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/ev_epoll.c:308,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/ev_epoll.c:310,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/ev_epoll.c:313,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/ev_epoll.c:315,1
    - Dst: fd_tgid
      Src: /src/haproxy/src/ev_epoll.c:318,1
    - Dst: epoll_ctl
      Src: /src/haproxy/src/ev_epoll.c:324,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/ev_epoll.c:329,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ev_epoll.c:332,1
    - Dst: fd_update_events
      Src: /src/haproxy/src/ev_epoll.c:345,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 95
    argCount: 3
    argNames:
    - p
    - exp
    - wake
    argTypes:
    - struct poller*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 348
    functionName: _do_poll
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 0
    functionsReached:
    - fd_leaving_poll
    - unlikely
    - clock_entering_poll
    - thread_harmless_now
    - fd_tgid
    - thread_idle_now
    - tick_is_expired
    - COUNT_IF
    - done_update_polling
    - _HA_ATOMIC_AND
    - compute_poll_timeout
    - _update_fd
    - epoll_wait
    - _HA_ATOMIC_INC
    - _HA_ATOMIC_LOAD
    - fd_grab_tgid
    - fd_update_events
    - fd_drop_tgid
    - clock_update_global_date
    - epoll_ctl
    - tick_isset
    - clock_update_local_date
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void _do_poll(struct poller *p, int exp, int wake)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ev_epoll.c:352,1
    - Dst: vma_set_name_id
      Src: /src/haproxy/src/ev_epoll.c:355,1
    - Dst: epoll_create
      Src: /src/haproxy/src/ev_epoll.c:359,1
    - Dst: fd_reregister_all
      Src: /src/haproxy/src/ev_epoll.c:369,1
    - Dst: free
      Src: /src/haproxy/src/ev_epoll.c:373,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 376
    functionName: init_epoll_per_thread
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 0
    functionsReached:
    - fd_reregister_all
    - calloc
    - epoll_create
    - free
    - vma_set_name_id
    linkageType: ''
    returnType: int
    signature: int init_epoll_per_thread()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/src/ev_epoll.c:381,1
    - Dst: ha_free
      Src: /src/haproxy/src/ev_epoll.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: deinit_epoll_per_thread
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 0
    functionsReached:
    - ha_free
    - close
    linkageType: ''
    returnType: void
    signature: void deinit_epoll_per_thread()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: epoll_create
      Src: /src/haproxy/src/ev_epoll.c:395,1
    - Dst: hap_register_per_thread_init
      Src: /src/haproxy/src/ev_epoll.c:399,1
    - Dst: hap_register_per_thread_deinit
      Src: /src/haproxy/src/ev_epoll.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 407
    functionName: _do_init
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 0
    functionsReached:
    - hap_register_per_thread_deinit
    - epoll_create
    - hap_register_per_thread_init
    linkageType: ''
    returnType: int
    signature: int _do_init(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/src/ev_epoll.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 422
    functionName: _do_term
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void _do_term(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: epoll_create
      Src: /src/haproxy/src/ev_epoll.c:432,1
    - Dst: close
      Src: /src/haproxy/src/ev_epoll.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 437
    functionName: _do_test
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 0
    functionsReached:
    - epoll_create
    - close
    linkageType: ''
    returnType: int
    signature: int _do_test(struct poller *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/src/ev_epoll.c:448,1
    - Dst: epoll_create
      Src: /src/haproxy/src/ev_epoll.c:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 453
    functionName: _do_fork
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 0
    functionsReached:
    - epoll_create
    - close
    linkageType: ''
    returnType: int
    signature: int _do_fork(struct poller *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 483
    functionName: _do_register
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _do_register(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/ev_epoll.c:492,1
    - Dst: strchr
      Src: /src/haproxy/src/ev_epoll.c:497,1
    - Dst: strcmp
      Src: /src/haproxy/src/ev_epoll.c:501,1
    - Dst: strcmp
      Src: /src/haproxy/src/ev_epoll.c:503,1
    - Dst: strcmp
      Src: /src/haproxy/src/ev_epoll.c:505,1
    - Dst: memprintf
      Src: /src/haproxy/src/ev_epoll.c:508,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 486
    functionDepth: 7
    functionLinenumber: 486
    functionLinenumberEnd: 513
    functionName: cfg_parse_tune_epoll_mask_events
    functionSourceFile: /src/haproxy/src/ev_epoll.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    - strchr
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_tune_epoll_mask_events(char **args, int section_type,
      struct proxy *curpx,\n                                            const struct
      proxy *defpx, const char *file, int line,\n                                            char
      **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:54,1
    - Dst: quic_tune_conn_test
      Src: /src/haproxy/src/mux_quic.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: qcc_is_pacing_active
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - quic_tune_conn_test
    linkageType: ''
    returnType: int
    signature: int qcc_is_pacing_active(const struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncb_is_null
      Src: /src/haproxy/src/mux_quic.c:64,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_quic.c:65,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_quic.c:66,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_quic.c:67,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/mux_quic.c:76,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_quic.c:77,1
    - Dst: bdata_ctr_bdec
      Src: /src/haproxy/src/mux_quic.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - qcs
    - rxbuf
    argTypes:
    - struct qcs*
    - struct qc_stream_rxbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: qcs_free_rxbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - ncb_is_null
    - bdata_ctr_bdec
    - eb64_delete
    - b_free
    - b_make
    - offer_buffers
    - pool_free
    linkageType: ''
    returnType: void
    signature: void qcs_free_rxbuf(struct qcs *qcs, struct qc_stream_rxbuf *rxbuf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:90,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:91,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:94,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:95,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:96,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:97,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:98,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:101,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:101,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_quic.c:102,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:106,1
    - Dst: struct qcc*::app_ops::detach
      Src: /src/haproxy/src/mux_quic.c:112,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:115,1
    - Dst: qc_stream_desc_sub_send
      Src: /src/haproxy/src/mux_quic.c:116,1
    - Dst: qc_stream_desc_release
      Src: /src/haproxy/src/mux_quic.c:117,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:119,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_quic.c:120,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_quic.c:124,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:125,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:125,1
    - Dst: qcs_free_rxbuf
      Src: /src/haproxy/src/mux_quic.c:127,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/mux_quic.c:131,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_quic.c:133,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 136
    functionName: qcs_free
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - qc_stream_desc_release
    - TRACE_STATE
    - BUG_ON
    - eb_is_empty
    - LIST_DEL_INIT
    - eb64_delete
    - TRACE_LEAVE
    - TRACE_ENTER
    - eb64_first
    - b_free
    - container_of
    - struct qcc*::app_ops::detach
    - qc_stream_desc_sub_send
    - se_fl_test
    - qcs_free_rxbuf
    - pool_free
    - sedesc_free
    linkageType: ''
    returnType: void
    signature: void qcs_free(struct qcs *qcs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:143,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_quic.c:145,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:147,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:162,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:163,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:164,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:165,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:166,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/mux_quic.c:171,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:174,1
    - Dst: qfctl_init
      Src: /src/haproxy/src/mux_quic.c:175,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:175,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:178,1
    - Dst: qfctl_init
      Src: /src/haproxy/src/mux_quic.c:179,1
    - Dst: qfctl_init
      Src: /src/haproxy/src/mux_quic.c:182,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:191,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:192,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:195,1
    - Dst: bdata_ctr_init
      Src: /src/haproxy/src/mux_quic.c:199,1
    - Dst: tot_time_reset
      Src: /src/haproxy/src/mux_quic.c:208,1
    - Dst: tot_time_reset
      Src: /src/haproxy/src/mux_quic.c:209,1
    - Dst: tot_time_reset
      Src: /src/haproxy/src/mux_quic.c:210,1
    - Dst: tot_time_start
      Src: /src/haproxy/src/mux_quic.c:211,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:214,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:214,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:215,1
    - Dst: qc_stream_desc_new
      Src: /src/haproxy/src/mux_quic.c:217,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:219,1
    - Dst: qc_stream_desc_sub_send
      Src: /src/haproxy/src/mux_quic.c:223,1
    - Dst: qc_stream_desc_sub_room
      Src: /src/haproxy/src/mux_quic.c:224,1
    - Dst: qcc_abort_stream_read
      Src: /src/haproxy/src/mux_quic.c:236,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/mux_quic.c:237,1
    - Dst: struct qcc*::app_ops::attach
      Src: /src/haproxy/src/mux_quic.c:240,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:241,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:246,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:247,1
    - Dst: qcs_free
      Src: /src/haproxy/src/mux_quic.c:251,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:252,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 85
    argCount: 3
    argNames:
    - qcc
    - id
    - type
    argTypes:
    - struct qcc*
    - uint64_t
    - enum qcs_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 254
    functionName: qcs_new
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - tot_time_reset
    - TRACE_ENTER
    - qcc_reset_stream
    - qc_stream_desc_sub_send
    - LIST_INIT
    - quic_stream_is_local
    - pool_alloc
    - qc_stream_desc_new
    - qc_stream_desc_sub_room
    - qcs_free
    - conn_is_quic
    - quic_stream_is_bidi
    - TRACE_LEAVE
    - TRACE_ERROR
    - eb64_insert
    - struct qcc*::app_ops::attach
    - qcc_abort_stream_read
    - bdata_ctr_init
    - TRACE_STATE
    - quic_stream_is_uni
    - quic_stream_is_remote
    - tot_time_start
    - qfctl_init
    linkageType: ''
    returnType: struct qcs
    signature: struct qcs *qcs_new(struct qcc *qcc, uint64_t id, enum qcs_type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: qcs_sc
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline *qcs_sc(const struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: qcc_reset_idle_start
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline qcc_reset_idle_start(struct qcc *qcc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: qcc_may_expire
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qcc_may_expire(struct qcc *qcc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: qcc_rm_sc
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: forceinline
    signature: forceinline qcc_rm_sc(struct qcc *qcc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_quic.c:290,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 308
    functionName: qcc_be_is_reusable
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - __objt_server
    linkageType: ''
    returnType: int
    signature: int qcc_be_is_reusable(const struct qcc *qcc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:319,1
    - Dst: qcc_be_is_reusable
      Src: /src/haproxy/src/mux_quic.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 334
    functionName: qcc_is_dead
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - qcc_be_is_reusable
    linkageType: ''
    returnType: int
    signature: int qcc_is_dead(const struct qcc *qcc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:341,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:344,1
    - Dst: qcc_may_expire
      Src: /src/haproxy/src/mux_quic.c:349,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:350,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_quic.c:352,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:365,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:365,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:366,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:367,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:370,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:371,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:374,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:375,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_quic.c:375,1
    - Dst: likely
      Src: /src/haproxy/src/mux_quic.c:383,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:383,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:384,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:387,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:388,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:392,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:394,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:395,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:399,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:400,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:401,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:413,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_quic.c:414,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:416,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:421,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/mux_quic.c:422,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_quic.c:426,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_quic.c:427,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_quic.c:434,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_quic.c:435,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_quic.c:439,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:442,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 443
    functionName: qcc_refresh_timeout
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - unlikely
    - tick_remain
    - statistical_prng_range
    - TRACE_LEAVE
    - task_wakeup
    - task_queue
    - TRACE_DEVEL
    - TRACE_ENTER
    - tick_is_le
    - likely
    - LIST_ISEMPTY
    - tick_isset
    - tick_add_ifset
    - qcc_may_expire
    - tick_add
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void qcc_refresh_timeout(struct qcc *qcc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:451,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 457
    functionName: qcs_idle_open
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - BUG_ON_HOT
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void qcs_idle_open(struct qcs *qcs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:462,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:465,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:468,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:470,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:475,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 478
    functionName: qcs_close_local
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - quic_stream_is_remote
    - BUG_ON_HOT
    - TRACE_STATE
    - quic_stream_is_bidi
    linkageType: ''
    returnType: void
    signature: void qcs_close_local(struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:486,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 488
    functionName: qcs_is_completed
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - qcs_sc
    - qcs_is_close_local
    linkageType: ''
    returnType: int
    signature: int qcs_is_completed(struct qcs *qcs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:493,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:496,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:499,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:501,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:506,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:506,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:514,1
    - Dst: qcs_is_completed
      Src: /src/haproxy/src/mux_quic.c:517,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:518,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:518,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:519,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 522
    functionName: qcs_close_remote
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_local
    - qcs_is_completed
    - quic_stream_is_bidi
    - TRACE_STATE
    - BUG_ON
    - LIST_DEL_INIT
    - LIST_APPEND
    - LIST_INLIST
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void qcs_close_remote(struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: qcs_is_close_local
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qcs_is_close_local(struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: qcs_is_close_remote
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qcs_is_close_remote(struct qcs *qcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncb_is_null
      Src: /src/haproxy/src/mux_quic.c:542,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_quic.c:543,1
    - Dst: ncb_make
      Src: /src/haproxy/src/mux_quic.c:546,1
    - Dst: ncb_init
      Src: /src/haproxy/src/mux_quic.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - qcs
    - ncbuf
    argTypes:
    - struct qcs*
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 538
    functionDepth: 4
    functionLinenumber: 538
    functionLinenumberEnd: 551
    functionName: qcs_get_ncbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - ncb_is_null
    - ncb_init
    - ncb_make
    linkageType: ''
    returnType: struct ncbuf
    signature: struct ncbuf *qcs_get_ncbuf(struct qcs *qcs, struct ncbuf *ncbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_quic.c:560,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:561,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:569,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 570
    functionName: qcs_alert
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_sc
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void qcs_alert(struct qcs *qcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:576,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:578,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:579,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:585,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:588,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - qcs
    - event_type
    - es
    argTypes:
    - struct qcs*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 593
    functionName: qcs_subscribe
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_LEAVE
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int qcs_subscribe(struct qcs *qcs, int event_type, struct wait_event
      *es)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_quic.c:598,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 604
    functionName: qcs_notify_recv
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void qcs_notify_recv(struct qcs *qcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_quic.c:609,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:610,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 615
    functionName: qcs_notify_send
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void qcs_notify_send(struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:619,1
    - Dst: qc_stream_buf_get
      Src: /src/haproxy/src/mux_quic.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 621
    functionName: qcs_tx_buf_const
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - qc_stream_buf_get
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *qcs_tx_buf_const(const struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:625,1
    - Dst: qc_stream_buf_get
      Src: /src/haproxy/src/mux_quic.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: qcs_tx_buf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - qc_stream_buf_get
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *qcs_tx_buf(struct qcs *qcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qcs_tx_buf_const
      Src: /src/haproxy/src/mux_quic.c:632,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:638,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_quic.c:640,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:642,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 647
    functionName: qcs_prep_bytes
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - conn_is_quic
    - MAX
    - b_data
    - qcs_tx_buf_const
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t qcs_prep_bytes(const struct qcs *qcs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:658,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:661,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:667,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:674,1
    - Dst: qcs_idle_open
      Src: /src/haproxy/src/mux_quic.c:676,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:684,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:685,1
    - Dst: qfctl_rinc
      Src: /src/haproxy/src/mux_quic.c:688,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:689,1
    - Dst: qfctl_rinc
      Src: /src/haproxy/src/mux_quic.c:694,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:695,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:699,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_quic.c:700,1
    - Dst: qc_stream_buf_release
      Src: /src/haproxy/src/mux_quic.c:701,1
    - Dst: qcs_notify_send
      Src: /src/haproxy/src/mux_quic.c:703,1
    - Dst: increment_send_rate
      Src: /src/haproxy/src/mux_quic.c:709,1
    - Dst: qc_stream_buf_get
      Src: /src/haproxy/src/mux_quic.c:712,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:712,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:714,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:715,1
    - Dst: qcs_close_local
      Src: /src/haproxy/src/mux_quic.c:719,1
    - Dst: qc_stream_desc_sub_send
      Src: /src/haproxy/src/mux_quic.c:728,1
    - Dst: qcs_is_completed
      Src: /src/haproxy/src/mux_quic.c:730,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:731,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:732,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:738,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - stream
    - data
    - offset
    argTypes:
    - struct qc_stream_desc*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 739
    functionName: qcm_ctrl_send
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_idle_open
    - qcs_is_completed
    - TRACE_STATE
    - BUG_ON
    - TRACE_LEAVE
    - LIST_DEL_INIT
    - qcs_notify_send
    - TRACE_DEVEL
    - TRACE_ENTER
    - qcs_prep_bytes
    - LIST_APPEND
    - increment_send_rate
    - qcs_close_local
    - qc_stream_buf_get
    - b_full
    - qc_stream_desc_sub_send
    - qfctl_rinc
    - qc_stream_buf_release
    linkageType: ''
    returnType: void
    signature: void qcm_ctrl_send(struct qc_stream_desc *stream, uint64_t data, uint64_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 746
    functionName: qcc_bufwnd_full
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qcc_bufwnd_full(const struct qcc *qcc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qcc_notify_buf
      Src: /src/haproxy/src/mux_quic.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - room
    argTypes:
    - struct qc_stream_desc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 754
    functionName: qcm_ctrl_room
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_notify_buf
    linkageType: ''
    returnType: void
    signature: void qcm_ctrl_room(struct qc_stream_desc *stream, uint64_t room)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:765,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:768,1
    - Dst: qcc_bufwnd_full
      Src: /src/haproxy/src/mux_quic.c:771,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:775,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:784,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:785,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:786,1
    - Dst: tot_time_stop
      Src: /src/haproxy/src/mux_quic.c:787,1
    - Dst: qcs_notify_send
      Src: /src/haproxy/src/mux_quic.c:788,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - qcc
    - free_size
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 792
    functionName: qcc_notify_buf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 2
    functionsReached:
    - TRACE_STATE
    - BUG_ON
    - TRACE_LEAVE
    - LIST_DEL_INIT
    - tot_time_stop
    - qcs_notify_send
    - TRACE_ENTER
    - qcc_bufwnd_full
    - LIST_ISEMPTY
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void qcc_notify_buf(struct qcc *qcc, uint64_t free_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:803,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:805,1
    - Dst: quic_err_app
      Src: /src/haproxy/src/mux_quic.c:808,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/mux_quic.c:808,1
    - Dst: qcc_report_term_evt
      Src: /src/haproxy/src/mux_quic.c:811,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - qcc
    - err
    - app
    - tevt
    argTypes:
    - struct qcc*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 821
    functionName: qcc_set_error
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 3
    functionsReached:
    - TRACE_STATE
    - BUG_ON
    - tasklet_wakeup
    - quic_err_transport
    - qcc_report_term_evt
    - quic_err_app
    linkageType: ''
    returnType: void
    signature: void qcc_set_error(struct qcc *qcc, int err, int app, int tevt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tevt_report_event
      Src: /src/haproxy/src/mux_quic.c:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - qcc
    - type
    argTypes:
    - struct qcc*
    - enum muxc_term_event_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 830
    functionName: qcc_report_term_evt
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - tevt_report_event
    linkageType: ''
    returnType: void
    signature: void qcc_report_term_evt(struct qcc *qcc, enum muxc_term_event_type
      type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QUIC_TUNE_FB_CONN_GET
      Src: /src/haproxy/src/mux_quic.c:837,1
    - Dst: struct qcc*::app_ops::report_susp
      Src: /src/haproxy/src/mux_quic.c:843,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:844,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:848,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - qcc
    - inc
    argTypes:
    - struct qcc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 855
    functionName: _qcc_report_glitch
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_set_error
    - struct qcc*::app_ops::report_susp
    - QUIC_TUNE_FB_CONN_GET
    linkageType: ''
    returnType: int
    signature: int _qcc_report_glitch(struct qcc *qcc, int inc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:862,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - qcc
    - bidi
    argTypes:
    - struct qcc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 870
    functionName: qcc_fctl_avail_streams
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int qcc_fctl_avail_streams(const struct qcc *qcc, int bidi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 882
    functionName: qcc_max_strm_bidi_remote
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t qcc_max_strm_bidi_remote(const struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:896,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:900,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:902,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:905,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:907,1
    - Dst: qcs_new
      Src: /src/haproxy/src/mux_quic.c:910,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:912,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:914,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:918,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - qcc
    - bidi
    argTypes:
    - struct qcc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 890
    functionDepth: 6
    functionLinenumber: 890
    functionLinenumberEnd: 924
    functionName: qcc_init_stream_local
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - TRACE_PROTO
    - TRACE_LEAVE
    - BUG_ON
    - qcs_new
    - TRACE_DEVEL
    - TRACE_ENTER
    - qcc_set_error
    linkageType: ''
    returnType: struct qcs
    signature: struct qcs *qcc_init_stream_local(struct qcc *qcc, int bidi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:939,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:942,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:942,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:944,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:946,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:950,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:959,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:962,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:963,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:969,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:972,1
    - Dst: qcs_new
      Src: /src/haproxy/src/mux_quic.c:978,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:980,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:981,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:986,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:991,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:995,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - qcc
    - id
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 933
    functionDepth: 6
    functionLinenumber: 933
    functionLinenumberEnd: 997
    functionName: qcc_init_stream_remote
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - quic_stream_is_local
    - TRACE_PROTO
    - quic_stream_is_bidi
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_ERROR
    - qcs_new
    - TRACE_ENTER
    - qcc_set_error
    linkageType: ''
    returnType: struct qcs
    signature: struct qcs *qcc_init_stream_remote(struct qcc *qcc, uint64_t id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:1004,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1006,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1008,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_quic.c:1008,1
    - Dst: qc_stream_desc_sub_room
      Src: /src/haproxy/src/mux_quic.c:1010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1014
    functionName: qcs_send_metadata
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - eb_is_empty
    - conn_is_quic
    - qc_stream_desc_sub_room
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void qcs_send_metadata(struct qcs *qcs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1034,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:1037,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/mux_quic.c:1042,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/mux_quic.c:1045,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1047,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:1052,1
    - Dst: se_expect_no_data
      Src: /src/haproxy/src/mux_quic.c:1053,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:1056,1
    - Dst: sc_new_from_endp
      Src: /src/haproxy/src/mux_quic.c:1058,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1059,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1064,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:1077,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:1077,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:1078,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:1084,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:1085,1
    - Dst: se_expect_data
      Src: /src/haproxy/src/mux_quic.c:1086,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_quic.c:1097,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:1097,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:1098,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_quic.c:1099,1
    - Dst: qcc_max_strm_bidi_remote
      Src: /src/haproxy/src/mux_quic.c:1103,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:1104,1
    - Dst: qcc_app_shutdown
      Src: /src/haproxy/src/mux_quic.c:1105,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1109,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 3
    argNames:
    - qcs
    - buf
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1029
    functionDepth: 5
    functionLinenumber: 1029
    functionLinenumberEnd: 1111
    functionName: qcs_attach_sc
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - unlikely
    - se_fl_set_error
    - TRACE_ENTER
    - qcc_app_shutdown
    - qcs_is_close_local
    - qcc_max_strm_bidi_remote
    - TRACE_DEVEL
    - sc_new_from_endp
    - se_expect_data
    - BUG_ON_HOT
    - se_fl_set
    - TRACE_LEAVE
    - se_expect_no_data
    - LIST_DEL_INIT
    - ns_to_ms
    - sedesc_new
    - LIST_INLIST
    - TRACE_STATE
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int qcs_attach_sc(struct qcs *qcs, struct buffer *buf, char fin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:1121,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/mux_quic.c:1121,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:1123,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:1124,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - qcc
    - id
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1116
    functionDepth: 2
    functionLinenumber: 1116
    functionLinenumberEnd: 1133
    functionName: qcc_stream_id_is_closed
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_uni
    - eb64_lookup
    - BUG_ON_HOT
    - quic_stream_is_local
    linkageType: ''
    returnType: int
    signature: int qcc_stream_id_is_closed(struct qcc *qcc, uint64_t id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1150,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:1153,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:1153,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1154,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1155,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:1160,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:1160,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1161,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1162,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/mux_quic.c:1168,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:1170,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1171,1
    - Dst: qcc_stream_id_is_closed
      Src: /src/haproxy/src/mux_quic.c:1176,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1177,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:1186,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1194,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1195,1
    - Dst: qcc_init_stream_remote
      Src: /src/haproxy/src/mux_quic.c:1201,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1203,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1209,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1213,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 5
    argNames:
    - qcc
    - id
    - receive_only
    - send_only
    - out
    argTypes:
    - struct qcc*
    - uint64_t
    - int
    - int
    - struct qcs**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1145
    functionDepth: 7
    functionLinenumber: 1145
    functionLinenumberEnd: 1215
    functionName: qcc_get_qcs
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_local
    - eb64_entry
    - TRACE_LEAVE
    - TRACE_ERROR
    - qcc_stream_id_is_closed
    - quic_stream_is_uni
    - eb64_lookup
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_DATA
    - qcc_init_stream_remote
    - quic_stream_is_remote
    - qcc_set_error
    linkageType: ''
    returnType: int
    signature: "int qcc_get_qcs(struct qcc *qcc, uint64_t id, int receive_only, int
      send_only,\n                struct qcs **out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/src/mux_quic.c:1222,1
    - Dst: ncb_orig
      Src: /src/haproxy/src/mux_quic.c:1222,1
    - Dst: ncb_data
      Src: /src/haproxy/src/mux_quic.c:1222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct qc_stream_rxbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1218
    functionDepth: 6
    functionLinenumber: 1218
    functionLinenumberEnd: 1227
    functionName: qcs_b_dup
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - b_make
    - ncb_orig
    - ncb_data
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer qcs_b_dup(const struct qc_stream_rxbuf *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1244,1
    - Dst: ncb_is_full
      Src: /src/haproxy/src/mux_quic.c:1244,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:1246,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:1250,1
    - Dst: ncb_data
      Src: /src/haproxy/src/mux_quic.c:1252,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/mux_quic.c:1253,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/mux_quic.c:1254,1
    - Dst: qcs_b_dup
      Src: /src/haproxy/src/mux_quic.c:1256,1
    - Dst: qcs_b_dup
      Src: /src/haproxy/src/mux_quic.c:1257,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_quic.c:1258,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1258,1
    - Dst: ncb_size
      Src: /src/haproxy/src/mux_quic.c:1258,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1258,1
    - Dst: ncb_add
      Src: /src/haproxy/src/mux_quic.c:1260,1
    - Dst: ncb_data
      Src: /src/haproxy/src/mux_quic.c:1260,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_quic.c:1261,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1262,1
    - Dst: ncb_advance
      Src: /src/haproxy/src/mux_quic.c:1264,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1265,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1268,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/mux_quic.c:1269,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1272,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/mux_quic.c:1275,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_quic.c:1278,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_quic.c:1279,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_quic.c:1280,1
    - Dst: bdata_ctr_bdec
      Src: /src/haproxy/src/mux_quic.c:1281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - qcs
    - rxbuf
    argTypes:
    - struct qcs*
    - struct qc_stream_rxbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1235
    functionDepth: 7
    functionLinenumber: 1235
    functionLinenumberEnd: 1289
    functionName: qcs_transfer_rx_data
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - ncb_is_full
    - bdata_ctr_bdec
    - ncb_advance
    - eb64_next
    - b_head
    - BUG_ON
    - eb64_delete
    - eb64_insert
    - container_of
    - ncb_data
    - b_free
    - qcs_b_dup
    - b_data
    - MIN
    - ncb_size
    - ncb_add
    - offer_buffers
    - pool_free
    linkageType: ''
    returnType: int
    signature: int qcs_transfer_rx_data(struct qcs *qcs, struct qc_stream_rxbuf *rxbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:1299,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:1303,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1312
    functionName: qcs_get_curr_rxbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - eb64_first
    - container_of
    linkageType: ''
    returnType: struct qc_stream_rxbuf
    signature: struct qc_stream_rxbuf *qcs_get_curr_rxbuf(struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qcs_get_curr_rxbuf
      Src: /src/haproxy/src/mux_quic.c:1320,1
    - Dst: ncb_data
      Src: /src/haproxy/src/mux_quic.c:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1318
    functionDepth: 6
    functionLinenumber: 1318
    functionLinenumberEnd: 1322
    functionName: qcs_rx_avail_data
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_get_curr_rxbuf
    - ncb_data
    linkageType: ''
    returnType: ncb_sz_t
    signature: ncb_sz_t qcs_rx_avail_data(struct qcs *qcs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1334,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:1337,1
    - Dst: ncb_advance
      Src: /src/haproxy/src/mux_quic.c:1340,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/mux_quic.c:1342,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:1347,1
    - Dst: qcm_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1358,1
    - Dst: qcm_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1364,1
    - Dst: qcm_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1365,1
    - Dst: qcm_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1366,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:1373,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1375,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:1381,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1385,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:1391,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1397,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:1398,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1400,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:1409,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:1410,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1413,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 3
    argNames:
    - qcs
    - bytes
    - buf
    argTypes:
    - struct qcs*
    - uint64_t
    - struct qc_stream_rxbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1327
    functionDepth: 6
    functionLinenumber: 1327
    functionLinenumberEnd: 1414
    functionName: qcs_consume
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - ncb_advance
    - TRACE_LEAVE
    - qcm_stream_rx_bufsz
    - tasklet_wakeup
    - TRACE_ENTER
    - TRACE_DATA
    - LIST_APPEND
    - ABORT_NOW
    - qcc_set_error
    - qc_frm_alloc
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void qcs_consume(struct qcs *qcs, uint64_t bytes, struct qc_stream_rxbuf
      *buf)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1436,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1439,1
    - Dst: qcs_get_curr_rxbuf
      Src: /src/haproxy/src/mux_quic.c:1445,1
    - Dst: qcs_b_dup
      Src: /src/haproxy/src/mux_quic.c:1446,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:1449,1
    - Dst: struct qcc*::app_ops::rcv_buf
      Src: /src/haproxy/src/mux_quic.c:1453,1
    - Dst: session_add_glitch_ctr
      Src: /src/haproxy/src/mux_quic.c:1456,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1459,1
    - Dst: ncb_data
      Src: /src/haproxy/src/mux_quic.c:1468,1
    - Dst: qcs_transfer_rx_data
      Src: /src/haproxy/src/mux_quic.c:1469,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1470,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:1476,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:1476,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_quic.c:1477,1
    - Dst: qcs_alert
      Src: /src/haproxy/src/mux_quic.c:1478,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1483,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1484,1
    - Dst: qcs_consume
      Src: /src/haproxy/src/mux_quic.c:1489,1
    - Dst: ncb_is_empty
      Src: /src/haproxy/src/mux_quic.c:1491,1
    - Dst: qcs_free_rxbuf
      Src: /src/haproxy/src/mux_quic.c:1492,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_quic.c:1499,1
    - Dst: qcs_rx_avail_data
      Src: /src/haproxy/src/mux_quic.c:1500,1
    - Dst: qcs_close_remote
      Src: /src/haproxy/src/mux_quic.c:1502,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1507,1
    - Dst: qcs_notify_recv
      Src: /src/haproxy/src/mux_quic.c:1508,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1510,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1514,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 2
    argNames:
    - qcc
    - qcs
    argTypes:
    - struct qcc*
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1428
    functionDepth: 8
    functionLinenumber: 1428
    functionLinenumberEnd: 1516
    functionName: qcc_decode_qcs
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_consume
    - qcs_transfer_rx_data
    - se_fl_set_error
    - TRACE_ENTER
    - TRACE_DATA
    - ncb_is_empty
    - qcs_notify_recv
    - se_fl_test
    - session_add_glitch_ctr
    - eb_is_empty
    - TRACE_DEVEL
    - qcs_is_close_remote
    - qcs_get_curr_rxbuf
    - qcs_free_rxbuf
    - TRACE_LEAVE
    - TRACE_ERROR
    - qcs_alert
    - qcs_sc
    - qcs_b_dup
    - b_data
    - qcs_close_remote
    - qcs_rx_avail_data
    - ncb_data
    - struct qcc*::app_ops::rcv_buf
    linkageType: ''
    returnType: int
    signature: int qcc_decode_qcs(struct qcc *qcc, struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_quic.c:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1522
    functionDepth: 1
    functionLinenumber: 1522
    functionLinenumberEnd: 1525
    functionName: qcc_get_stream_rxbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 2
    functionsReached:
    - b_alloc
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *qcc_get_stream_rxbuf(struct qcs *qcs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qcs_tx_buf
      Src: /src/haproxy/src/mux_quic.c:1543,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1546,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:1546,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:1550,1
    - Dst: likely
      Src: /src/haproxy/src/mux_quic.c:1551,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:1553,1
    - Dst: tot_time_start
      Src: /src/haproxy/src/mux_quic.c:1554,1
    - Dst: qcc_bufwnd_full
      Src: /src/haproxy/src/mux_quic.c:1558,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:1559,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:1560,1
    - Dst: tot_time_start
      Src: /src/haproxy/src/mux_quic.c:1561,1
    - Dst: qc_stream_buf_alloc
      Src: /src/haproxy/src/mux_quic.c:1567,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1569,1
    - Dst: likely
      Src: /src/haproxy/src/mux_quic.c:1574,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:1575,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:1577,1
    - Dst: b_alloc_small
      Src: /src/haproxy/src/mux_quic.c:1578,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_quic.c:1579,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1580,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 3
    argNames:
    - qcs
    - err
    - small
    argTypes:
    - struct qcs*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1540
    functionDepth: 3
    functionLinenumber: 1540
    functionLinenumberEnd: 1588
    functionName: qcc_get_stream_txbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 2
    functionsReached:
    - conn_is_quic
    - qcs_tx_buf
    - b_alloc
    - b_alloc_small
    - TRACE_STATE
    - BUG_ON
    - TRACE_ERROR
    - qc_stream_buf_alloc
    - LIST_APPEND
    - likely
    - qcc_bufwnd_full
    - b_size
    - LIST_INLIST
    - tot_time_start
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *qcc_get_stream_txbuf(struct qcs *qcs, int *err, int
      small)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qcs_tx_buf
      Src: /src/haproxy/src/mux_quic.c:1600,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1603,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:1603,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:1605,1
    - Dst: likely
      Src: /src/haproxy/src/mux_quic.c:1606,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1610,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:1610,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:1611,1
    - Dst: qc_stream_buf_realloc
      Src: /src/haproxy/src/mux_quic.c:1614,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1616,1
    - Dst: likely
      Src: /src/haproxy/src/mux_quic.c:1620,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:1621,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_quic.c:1624,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_quic.c:1625,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1626,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:1632,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1597
    functionDepth: 2
    functionLinenumber: 1597
    functionLinenumberEnd: 1633
    functionName: qcc_realloc_stream_txbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - qcs_tx_buf
    - b_alloc
    - BUG_ON
    - TRACE_ERROR
    - b_free
    - likely
    - b_size
    - LIST_INLIST
    - qc_stream_buf_realloc
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *qcc_realloc_stream_txbuf(struct qcs *qcs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:1642,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1642,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_quic.c:1643,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - qcs
    - out
    argTypes:
    - struct qcs*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1640
    functionDepth: 3
    functionLinenumber: 1640
    functionLinenumberEnd: 1648
    functionName: qcc_realign_stream_txbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - b_data
    - qcs_prep_bytes
    - b_slow_realign
    linkageType: ''
    returnType: int
    signature: int qcc_realign_stream_txbuf(const struct qcs *qcs, struct buffer *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:1661,1
    - Dst: qc_stream_buf_release
      Src: /src/haproxy/src/mux_quic.c:1669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1659
    functionDepth: 3
    functionLinenumber: 1659
    functionLinenumberEnd: 1671
    functionName: qcc_release_stream_txbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 2
    functionsReached:
    - qcs_prep_bytes
    - qc_stream_buf_release
    linkageType: ''
    returnType: int
    signature: int qcc_release_stream_txbuf(struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:1676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1674
    functionDepth: 1
    functionLinenumber: 1674
    functionLinenumberEnd: 1677
    functionName: qcc_stream_can_send
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - LIST_INLIST
    linkageType: ''
    returnType: int
    signature: int qcc_stream_can_send(const struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:1686,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:1687,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:1688,1
    - Dst: tot_time_stop
      Src: /src/haproxy/src/mux_quic.c:1689,1
    - Dst: qcs_notify_send
      Src: /src/haproxy/src/mux_quic.c:1690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1682
    functionDepth: 2
    functionLinenumber: 1682
    functionLinenumberEnd: 1692
    functionName: qcc_notify_fctl
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - qcs_notify_send
    - tot_time_stop
    - LIST_ISEMPTY
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void qcc_notify_fctl(struct qcc *qcc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:1697,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:1698,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:1699,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/mux_quic.c:1700,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:1700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1695
    functionDepth: 2
    functionLinenumber: 1695
    functionLinenumberEnd: 1702
    functionName: qcc_clear_frms
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - TRACE_STATE
    - qc_frm_free
    - LIST_ISEMPTY
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void qcc_clear_frms(struct qcc *qcc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qcc_clear_frms
      Src: /src/haproxy/src/mux_quic.c:1713,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1717,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:1719,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/mux_quic.c:1720,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:1723,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - qcs
    - urg
    argTypes:
    - struct qcs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1709
    functionDepth: 3
    functionLinenumber: 1709
    functionLinenumberEnd: 1726
    functionName: _qcc_send_stream
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - LIST_DEL_INIT
    - LIST_APPEND
    - LIST_INLIST
    - LIST_INSERT
    - qcc_clear_frms
    linkageType: ''
    returnType: void
    signature: void _qcc_send_stream(struct qcs *qcs, int urg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:1734,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:1736,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:1743,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:1748,1
    - Dst: qcs_idle_open
      Src: /src/haproxy/src/mux_quic.c:1749,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:1752,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1755,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:1759,1
    - Dst: qcc_notify_fctl
      Src: /src/haproxy/src/mux_quic.c:1760,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:1767,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_quic.c:1768,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_quic.c:1770,1
    - Dst: qcs_alert
      Src: /src/haproxy/src/mux_quic.c:1771,1
    - Dst: _qcc_send_stream
      Src: /src/haproxy/src/mux_quic.c:1774,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:1775,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - qcs
    - err
    - tevt
    argTypes:
    - struct qcs*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1731
    functionDepth: 4
    functionLinenumber: 1731
    functionLinenumberEnd: 1776
    functionName: qcc_reset_stream
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 2
    functionsReached:
    - conn_is_back
    - qcs_idle_open
    - qfctl_sblocked
    - TRACE_STATE
    - BUG_ON
    - qcs_alert
    - se_fl_set_error
    - qcs_prep_bytes
    - qcs_sc
    - tasklet_wakeup
    - qcc_notify_fctl
    - qcs_is_close_local
    - se_report_term_evt
    - _qcc_send_stream
    linkageType: ''
    returnType: void
    signature: void qcc_reset_stream(struct qcs *qcs, int err, int tevt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1786,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1789,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:1789,1
    - Dst: _qcc_send_stream
      Src: /src/haproxy/src/mux_quic.c:1791,1
    - Dst: qfctl_sinc
      Src: /src/haproxy/src/mux_quic.c:1794,1
    - Dst: qfctl_sinc
      Src: /src/haproxy/src/mux_quic.c:1795,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:1796,1
    - Dst: bdata_ctr_add
      Src: /src/haproxy/src/mux_quic.c:1797,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - qcs
    - urg
    - count
    argTypes:
    - struct qcs*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1782
    functionDepth: 4
    functionLinenumber: 1782
    functionLinenumberEnd: 1801
    functionName: qcc_send_stream
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 3
    functionsReached:
    - conn_is_quic
    - bdata_ctr_add
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_ENTER
    - qcs_is_close_local
    - _qcc_send_stream
    - qfctl_sinc
    linkageType: ''
    returnType: void
    signature: void qcc_send_stream(struct qcs *qcs, int urg, int count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1808,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:1810,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:1813,1
    - Dst: _qcc_send_stream
      Src: /src/haproxy/src/mux_quic.c:1816,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:1817,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1804
    functionDepth: 4
    functionLinenumber: 1804
    functionLinenumberEnd: 1821
    functionName: qcc_abort_stream_read
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - TRACE_STATE
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - qcs_is_close_remote
    - _qcc_send_stream
    linkageType: ''
    returnType: void
    signature: void qcc_abort_stream_read(struct qcs *qcs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1834,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/mux_quic.c:1836,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:1837,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_quic.c:1840,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/mux_quic.c:1841,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/mux_quic.c:1843,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_quic.c:1847,1
    - Dst: quic_alpn_to_app_ops
      Src: /src/haproxy/src/mux_quic.c:1850,1
    - Dst: struct qcc_app_ops*::init
      Src: /src/haproxy/src/mux_quic.c:1854,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1855,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:1859,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1862,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1866,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1826
    functionDepth: 3
    functionLinenumber: 1826
    functionLinenumberEnd: 1868
    functionName: qcc_install_app_ops
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - __objt_server
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - HA_RWLOCK_RDUNLOCK
    - TRACE_ENTER
    - strlen
    - struct qcc_app_ops*::init
    - conn_get_alpn
    - quic_alpn_to_app_ops
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int qcc_install_app_ops(struct qcc *qcc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1886,1
    - Dst: eb64_lookup_le
      Src: /src/haproxy/src/mux_quic.c:1888,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:1890,1
    - Dst: qcm_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1893,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1895,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_quic.c:1896,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1898,1
    - Dst: qcm_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1904,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/mux_quic.c:1905,1
    - Dst: bdata_ctr_binc
      Src: /src/haproxy/src/mux_quic.c:1906,1
    - Dst: qcs_get_ncbuf
      Src: /src/haproxy/src/mux_quic.c:1910,1
    - Dst: ncb_is_null
      Src: /src/haproxy/src/mux_quic.c:1910,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1911,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1918,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1922,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - qcs
    - offset
    - len
    argTypes:
    - struct qcs*
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1878
    functionDepth: 5
    functionLinenumber: 1878
    functionLinenumberEnd: 1924
    functionName: qcs_get_rxbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - ncb_is_null
    - pool_alloc
    - TRACE_ERROR
    - eb64_insert
    - qcm_stream_rx_bufsz
    - qcs_get_ncbuf
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - container_of
    - bdata_ctr_binc
    - eb64_lookup_le
    linkageType: ''
    returnType: struct qc_stream_rxbuf
    signature: "struct qc_stream_rxbuf *qcs_get_rxbuf(struct qcs *qcs, uint64_t offset,\n
      \                                            uint64_t *len)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1942,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1945,1
    - Dst: qcc_get_qcs
      Src: /src/haproxy/src/mux_quic.c:1956,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1957,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1962,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1976,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1977,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:1982,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1983,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1989,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:1993,1
    - Dst: qcs_idle_open
      Src: /src/haproxy/src/mux_quic.c:1994,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2009,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:2011,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2017,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2029,1
    - Dst: qcs_get_rxbuf
      Src: /src/haproxy/src/mux_quic.c:2041,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2043,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:2044,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_quic.c:2050,1
    - Dst: ncb_add
      Src: /src/haproxy/src/mux_quic.c:2052,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2068,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:2070,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2075,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_quic.c:2078,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_quic.c:2079,1
    - Dst: qcs_rx_avail_data
      Src: /src/haproxy/src/mux_quic.c:2093,1
    - Dst: qcs_close_remote
      Src: /src/haproxy/src/mux_quic.c:2094,1
    - Dst: qcs_rx_avail_data
      Src: /src/haproxy/src/mux_quic.c:2097,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_quic.c:2098,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:2098,1
    - Dst: qcc_decode_qcs
      Src: /src/haproxy/src/mux_quic.c:2100,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:2101,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:2102,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:2107,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:2115,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:2115,1
    - Dst: qcc_is_dead
      Src: /src/haproxy/src/mux_quic.c:2115,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:2116,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:2117,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2122,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2126,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 113
    argCount: 6
    argNames:
    - qcc
    - id
    - len
    - offset
    - fin
    - data
    argTypes:
    - struct qcc*
    - uint64_t
    - uint64_t
    - uint64_t
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 1933
    functionDepth: 9
    functionLinenumber: 1933
    functionLinenumberEnd: 2128
    functionName: qcc_recv
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - unlikely
    - conn_is_back
    - qcc_refresh_timeout
    - TRACE_ENTER
    - TRACE_DATA
    - qcs_get_rxbuf
    - HA_ATOMIC_INC
    - qcs_is_close_remote
    - BUG_ON_HOT
    - qcc_release
    - conn_is_quic
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - qcc_decode_qcs
    - LIST_DEL_INIT
    - qcs_close_remote
    - qcc_set_error
    - qcc_get_qcs
    - qcs_idle_open
    - EXTRA_COUNTERS_GET
    - TRACE_STATE
    - qcs_rx_avail_data
    - MAX
    - ncb_add
    - qcc_is_dead
    linkageType: ''
    returnType: int
    signature: "int qcc_recv(struct qcc *qcc, uint64_t id, uint64_t len, uint64_t
      offset,\n             char fin, char *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:2137,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2140,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2142,1
    - Dst: qfctl_set_max
      Src: /src/haproxy/src/mux_quic.c:2143,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2144,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:2147,1
    - Dst: qcc_notify_fctl
      Src: /src/haproxy/src/mux_quic.c:2150,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:2156,1
    - Dst: qcc_clear_frms
      Src: /src/haproxy/src/mux_quic.c:2157,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - qcc
    - max
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2135
    functionDepth: 3
    functionLinenumber: 2135
    functionLinenumberEnd: 2162
    functionName: qcc_recv_max_data
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - qfctl_rblocked
    - TRACE_PROTO
    - qfctl_sblocked
    - qfctl_set_max
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - TRACE_DATA
    - qcc_notify_fctl
    - qcc_clear_frms
    linkageType: ''
    returnType: int
    signature: int qcc_recv_max_data(struct qcc *qcc, uint64_t max)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2174,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2177,1
    - Dst: qcc_get_qcs
      Src: /src/haproxy/src/mux_quic.c:2189,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:2193,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2196,1
    - Dst: qfctl_set_max
      Src: /src/haproxy/src/mux_quic.c:2197,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2198,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:2201,1
    - Dst: tot_time_stop
      Src: /src/haproxy/src/mux_quic.c:2205,1
    - Dst: qcs_notify_send
      Src: /src/haproxy/src/mux_quic.c:2206,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:2210,1
    - Dst: qcc_clear_frms
      Src: /src/haproxy/src/mux_quic.c:2211,1
    - Dst: qcc_may_expire
      Src: /src/haproxy/src/mux_quic.c:2215,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:2216,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2218,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2222,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - qcc
    - id
    - max
    argTypes:
    - struct qcc*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2170
    functionDepth: 8
    functionLinenumber: 2170
    functionLinenumberEnd: 2224
    functionName: qcc_recv_max_stream_data
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - qfctl_rblocked
    - TRACE_PROTO
    - qfctl_sblocked
    - qfctl_set_max
    - qcc_clear_frms
    - qcc_refresh_timeout
    - TRACE_LEAVE
    - tot_time_stop
    - tasklet_wakeup
    - TRACE_ENTER
    - TRACE_DATA
    - qcs_notify_send
    - TRACE_DEVEL
    - qcc_may_expire
    - qcc_get_qcs
    linkageType: ''
    returnType: int
    signature: int qcc_recv_max_stream_data(struct qcc *qcc, uint64_t id, uint64_t
      max)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2235,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2238,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2250,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:2251,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2256,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2259,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2270,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - qcc
    - max
    - bidi
    argTypes:
    - struct qcc*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2233
    functionDepth: 2
    functionLinenumber: 2233
    functionLinenumberEnd: 2276
    functionName: qcc_recv_max_streams
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_DATA
    - qcc_set_error
    linkageType: ''
    returnType: int
    signature: int qcc_recv_max_streams(struct qcc *qcc, uint64_t max, int bidi)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2290,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2293,1
    - Dst: qcc_get_qcs
      Src: /src/haproxy/src/mux_quic.c:2302,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2303,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:2314,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2317,1
    - Dst: qcs_idle_open
      Src: /src/haproxy/src/mux_quic.c:2318,1
    - Dst: struct qcc*::app_ops::close
      Src: /src/haproxy/src/mux_quic.c:2322,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2323,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2330,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:2331,1
    - Dst: qcs_close_remote
      Src: /src/haproxy/src/mux_quic.c:2344,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_quic.c:2345,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:2346,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:2346,1
    - Dst: qcs_free_rxbuf
      Src: /src/haproxy/src/mux_quic.c:2348,1
    - Dst: session_add_glitch_ctr
      Src: /src/haproxy/src/mux_quic.c:2353,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2355,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2359,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - qcc
    - id
    - err
    - final_size
    argTypes:
    - struct qcc*
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2284
    functionDepth: 8
    functionLinenumber: 2284
    functionLinenumberEnd: 2361
    functionName: qcc_recv_reset_stream
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - qcs_idle_open
    - TRACE_PROTO
    - qcc_set_error
    - session_add_glitch_ctr
    - TRACE_ERROR
    - eb_is_empty
    - TRACE_LEAVE
    - TRACE_ENTER
    - TRACE_DATA
    - container_of
    - eb64_first
    - qcs_close_remote
    - struct qcc*::app_ops::close
    - qcs_is_close_remote
    - qcc_get_qcs
    - qcs_free_rxbuf
    linkageType: ''
    returnType: int
    signature: int qcc_recv_reset_stream(struct qcc *qcc, uint64_t id, uint64_t err,
      uint64_t final_size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2374,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2377,1
    - Dst: qcc_get_qcs
      Src: /src/haproxy/src/mux_quic.c:2389,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2395,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:2412,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:2413,1
    - Dst: qcs_idle_open
      Src: /src/haproxy/src/mux_quic.c:2417,1
    - Dst: struct qcc*::app_ops::close
      Src: /src/haproxy/src/mux_quic.c:2420,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2421,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:2428,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:2428,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:2429,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_quic.c:2430,1
    - Dst: qcs_alert
      Src: /src/haproxy/src/mux_quic.c:2431,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_quic.c:2434,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/mux_quic.c:2458,1
    - Dst: qcc_may_expire
      Src: /src/haproxy/src/mux_quic.c:2460,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:2461,1
    - Dst: session_add_glitch_ctr
      Src: /src/haproxy/src/mux_quic.c:2465,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2467,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2471,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 3
    argNames:
    - qcc
    - id
    - err
    argTypes:
    - struct qcc*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2369
    functionDepth: 8
    functionLinenumber: 2369
    functionLinenumberEnd: 2473
    functionName: qcc_recv_stop_sending
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - qcc_refresh_timeout
    - TRACE_ENTER
    - TRACE_DATA
    - qcc_reset_stream
    - qcs_is_close_local
    - se_fl_test
    - session_add_glitch_ctr
    - TRACE_DEVEL
    - qcc_may_expire
    - se_fl_set
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - qcs_alert
    - qcs_sc
    - struct qcc*::app_ops::close
    - se_report_term_evt
    - qcc_get_qcs
    - qcs_idle_open
    - TRACE_STATE
    linkageType: ''
    returnType: int
    signature: int qcc_recv_stop_sending(struct qcc *qcc, uint64_t id, uint64_t err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2483,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:2485,1
    - Dst: qcc_max_strm_bidi_remote
      Src: /src/haproxy/src/mux_quic.c:2486,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2488,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2490,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2501,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/mux_quic.c:2509,1
    - Dst: conn_calc_max_streams
      Src: /src/haproxy/src/mux_quic.c:2514,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_quic.c:2526,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2534,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:2535,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:2537,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2543,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:2544,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2559,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2563,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 2
    argNames:
    - qcc
    - id
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2478
    functionDepth: 2
    functionLinenumber: 2478
    functionLinenumberEnd: 2565
    functionName: qcc_release_remote_stream
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_max_strm_bidi_remote
    - quic_stream_is_bidi
    - BUG_ON
    - TRACE_LEAVE
    - _HA_ATOMIC_ADD
    - TRACE_ENTER
    - TRACE_DATA
    - LIST_APPEND
    - tasklet_wakeup
    - TRACE_DEVEL
    - conn_calc_max_streams
    - qcc_set_error
    - qc_frm_alloc
    - _HA_ATOMIC_SUB
    linkageType: ''
    returnType: int
    signature: int qcc_release_remote_stream(struct qcc *qcc, uint64_t id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2574,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2580,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:2582,1
    - Dst: qcc_release_remote_stream
      Src: /src/haproxy/src/mux_quic.c:2583,1
    - Dst: qcs_free
      Src: /src/haproxy/src/mux_quic.c:2586,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:2589,1
    - Dst: qcc_may_expire
      Src: /src/haproxy/src/mux_quic.c:2589,1
    - Dst: qcc_reset_idle_start
      Src: /src/haproxy/src/mux_quic.c:2590,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:2591,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2594,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2568
    functionDepth: 5
    functionLinenumber: 2568
    functionLinenumberEnd: 2595
    functionName: qcs_destroy
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - qcc_refresh_timeout
    - qcc_may_expire
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_ENTER
    - quic_stream_is_remote
    - qcc_reset_idle_start
    - qcc_release_remote_stream
    - qcs_free
    linkageType: ''
    returnType: void
    signature: void qcs_destroy(struct qcs *qcs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qfctl_rcap
      Src: /src/haproxy/src/mux_quic.c:2611,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:2612,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2615,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2618,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:2618,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2624,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2630,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2640,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2644,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:2645,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2647,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:2652,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_quic.c:2659,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:2659,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2682,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2690,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2697,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 5
    argNames:
    - qcs
    - out
    - fin
    - frm_list
    - window_conn
    argTypes:
    - struct qcs*
    - struct buffer*
    - char
    - struct list*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2606
    functionDepth: 3
    functionLinenumber: 2606
    functionLinenumberEnd: 2699
    functionName: qcs_build_stream_frm
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - b_peek
    - TRACE_PROTO
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_ERROR
    - qfctl_rcap
    - TRACE_ENTER
    - qcs_prep_bytes
    - TRACE_DATA
    - LIST_APPEND
    - b_data
    - qc_frm_alloc
    linkageType: ''
    returnType: int
    signature: "int qcs_build_stream_frm(struct qcs *qcs, struct buffer *out, char
      fin,\n                                struct list *frm_list, uint64_t window_conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2713,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_quic.c:2714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2702
    functionDepth: 1
    functionLinenumber: 2702
    functionLinenumberEnd: 2716
    functionName: qcc_subscribe_send
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - struct connection*::xprt::subscribe
    - TRACE_DEVEL
    linkageType: ''
    returnType: int
    signature: int qcc_subscribe_send(struct qcc *qcc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2723,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:2725,1
    - Dst: qc_send_mux
      Src: /src/haproxy/src/mux_quic.c:2728,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2730,1
    - Dst: qcc_subscribe_send
      Src: /src/haproxy/src/mux_quic.c:2731,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2738,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2739,1
    - Dst: qcc_subscribe_send
      Src: /src/haproxy/src/mux_quic.c:2740,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2744,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2748,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - qcc
    - frms
    - stream
    argTypes:
    - struct qcc*
    - struct list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2718
    functionDepth: 5
    functionLinenumber: 2718
    functionLinenumberEnd: 2750
    functionName: qcc_quic_send_frames
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_is_pacing_active
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - qcc_subscribe_send
    - LIST_ISEMPTY
    - qc_send_mux
    linkageType: ''
    returnType: int
    signature: int qcc_quic_send_frames(struct qcc *qcc, struct list *frms, int stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2760,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2761,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:2765,1
    - Dst: qcc_quic_send_frames
      Src: /src/haproxy/src/mux_quic.c:2765,1
    - Dst: qcc_qmux_send_frames
      Src: /src/haproxy/src/mux_quic.c:2766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - qcc
    - frms
    - stream
    argTypes:
    - struct qcc*
    - struct list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2758
    functionDepth: 6
    functionLinenumber: 2758
    functionLinenumberEnd: 2767
    functionName: qcc_send_frames
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - TRACE_DEVEL
    - qcc_qmux_send_frames
    - LIST_ISEMPTY
    - qcc_quic_send_frames
    linkageType: ''
    returnType: int
    signature: int qcc_send_frames(struct qcc *qcc, struct list *frms, int stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/mux_quic.c:2775,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2778,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:2780,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2782,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2790,1
    - Dst: qcc_send_frames
      Src: /src/haproxy/src/mux_quic.c:2791,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2792,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/mux_quic.c:2793,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:2793,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2794,1
    - Dst: qcs_close_local
      Src: /src/haproxy/src/mux_quic.c:2798,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2773
    functionDepth: 7
    functionLinenumber: 2773
    functionLinenumberEnd: 2803
    functionName: qcs_send_reset
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - TRACE_LEAVE
    - qcc_send_frames
    - TRACE_ENTER
    - qc_frm_free
    - LIST_APPEND
    - TRACE_DEVEL
    - LIST_ISEMPTY
    - qcs_close_local
    - LIST_HEAD_INIT
    - qc_frm_alloc
    linkageType: ''
    returnType: int
    signature: int qcs_send_reset(struct qcs *qcs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/mux_quic.c:2811,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2815,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:2827,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:2828,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:2832,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2834,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2841,1
    - Dst: qcc_send_frames
      Src: /src/haproxy/src/mux_quic.c:2842,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2843,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/mux_quic.c:2844,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:2844,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2845,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2852,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2809
    functionDepth: 7
    functionLinenumber: 2809
    functionLinenumberEnd: 2854
    functionName: qcs_send_stop_sending
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - TRACE_STATE
    - TRACE_LEAVE
    - qcc_send_frames
    - TRACE_ENTER
    - qc_frm_free
    - LIST_APPEND
    - TRACE_DEVEL
    - LIST_ISEMPTY
    - LIST_HEAD_INIT
    - qcs_is_close_remote
    - qc_frm_alloc
    linkageType: ''
    returnType: int
    signature: int qcs_send_stop_sending(struct qcs *qcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qcs_tx_buf
      Src: /src/haproxy/src/mux_quic.c:2867,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2871,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2874,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:2874,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:2874,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2877,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:2877,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2883,1
    - Dst: qcs_build_stream_frm
      Src: /src/haproxy/src/mux_quic.c:2889,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2894,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2898,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - qcs
    - frms
    - window_conn
    argTypes:
    - struct qcs*
    - struct list*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2864
    functionDepth: 4
    functionLinenumber: 2864
    functionLinenumberEnd: 2900
    functionName: qcs_send
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_tx_buf
    - TRACE_LEAVE
    - BUG_ON
    - quic_stream_is_uni
    - qcs_prep_bytes
    - TRACE_ENTER
    - TRACE_DEVEL
    - quic_stream_is_remote
    - qcs_build_stream_frm
    linkageType: ''
    returnType: int
    signature: int qcs_send(struct qcs *qcs, struct list *frms, uint64_t window_conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/mux_quic.c:2908,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2914,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2916,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:2918,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mux_quic.c:2922,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2923,1
    - Dst: qcc_send_frames
      Src: /src/haproxy/src/mux_quic.c:2925,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2926,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mux_quic.c:2928,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/mux_quic.c:2929,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:2934,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2934,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/mux_quic.c:2938,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:2940,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2946,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2950,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2906
    functionDepth: 7
    functionLinenumber: 2906
    functionLinenumberEnd: 2952
    functionName: qcc_emit_fctl
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - eb64_entry
    - TRACE_LEAVE
    - eb64_lookup
    - qcc_send_frames
    - TRACE_ENTER
    - TRACE_DEVEL
    - LIST_APPEND
    - LIST_ISEMPTY
    - LIST_HEAD_INIT
    - LIST_INSERT
    - BUG_ON_HOT
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int qcc_emit_fctl(struct qcc *qcc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2964,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mux_quic.c:2966,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2968,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:2969,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:2969,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2978,1
    - Dst: qcs_send_stop_sending
      Src: /src/haproxy/src/mux_quic.c:2990,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:2995,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:2995,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:2996,1
    - Dst: qcs_send_reset
      Src: /src/haproxy/src/mux_quic.c:3002,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:3012,1
    - Dst: qcs_is_completed
      Src: /src/haproxy/src/mux_quic.c:3013,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3014,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:3015,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3021,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3025,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3027
      start: 2960
    functionDepth: 8
    functionLinenumber: 2960
    functionLinenumberEnd: 3027
    functionName: qcc_emit_rs_ss
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - qcs_is_completed
    - qcs_send_reset
    - TRACE_STATE
    - BUG_ON
    - TRACE_LEAVE
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - qcs_prep_bytes
    - TRACE_ENTER
    - TRACE_DATA
    - LIST_APPEND
    - qcs_send_stop_sending
    - TRACE_DEVEL
    linkageType: ''
    returnType: int
    signature: int qcc_emit_rs_ss(struct qcc *qcc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: qfctl_rcap
      Src: /src/haproxy/src/mux_quic.c:3046,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3049,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3052,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3052,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mux_quic.c:3054,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:3059,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3062,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3064,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3064,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:3064,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3067,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:3069,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:3070,1
    - Dst: qcs_send
      Src: /src/haproxy/src/mux_quic.c:3071,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:3073,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:3074,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:3083,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:3084,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3092,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - qcc
    - qcs_failed
    argTypes:
    - struct qcc*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3094
      start: 3042
    functionDepth: 5
    functionLinenumber: 3042
    functionLinenumberEnd: 3094
    functionName: qcc_build_frms
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - qfctl_rblocked
    - TRACE_LEAVE
    - BUG_ON
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - qfctl_rcap
    - TRACE_ENTER
    - TRACE_DATA
    - qcs_prep_bytes
    - qcs_send
    - LIST_APPEND
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int qcc_build_frms(struct qcc *qcc, struct list *qcs_failed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct qcc*::tx::pacer::cc::algo::pacing_inter
      Src: /src/haproxy/src/mux_quic.c:3100,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_quic.c:3102,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:3103,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/mux_quic.c:3103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3097
    functionDepth: 1
    functionLinenumber: 3097
    functionLinenumberEnd: 3105
    functionName: qcc_wakeup_pacing
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - struct qcc*::tx::pacer::cc::algo::pacing_inter
    - tick_add_ifset
    - MS_TO_TICKS
    - MAX
    linkageType: ''
    returnType: void
    signature: void qcc_wakeup_pacing(struct qcc *qcc)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/mux_quic.c:3116,1
    - Dst: qfctl_rcap
      Src: /src/haproxy/src/mux_quic.c:3118,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3121,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:3123,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3136,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:3144,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3146,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/mux_quic.c:3147,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3155,1
    - Dst: qcc_app_init
      Src: /src/haproxy/src/mux_quic.c:3160,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3164,1
    - Dst: qcc_emit_fctl
      Src: /src/haproxy/src/mux_quic.c:3165,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3166,1
    - Dst: qcc_emit_rs_ss
      Src: /src/haproxy/src/mux_quic.c:3171,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3172,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3177,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3177,1
    - Dst: qcc_build_frms
      Src: /src/haproxy/src/mux_quic.c:3178,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3179,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3183,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:3183,1
    - Dst: quic_pacing_reload
      Src: /src/haproxy/src/mux_quic.c:3184,1
    - Dst: qcc_wakeup_pacing
      Src: /src/haproxy/src/mux_quic.c:3185,1
    - Dst: qcc_send_frames
      Src: /src/haproxy/src/mux_quic.c:3194,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:3194,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3196,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3197,1
    - Dst: qfctl_rcap
      Src: /src/haproxy/src/mux_quic.c:3201,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mux_quic.c:3207,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3212,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3212,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:3213,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3216,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:3218,1
    - Dst: qcs_send
      Src: /src/haproxy/src/mux_quic.c:3219,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:3220,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:3221,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3233,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:3233,1
    - Dst: qcc_wakeup_pacing
      Src: /src/haproxy/src/mux_quic.c:3234,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3239,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mux_quic.c:3240,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:3241,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:3242,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:3245,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:3246,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3250,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3255,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 99
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3112
    functionDepth: 9
    functionLinenumber: 3112
    functionLinenumberEnd: 3257
    functionName: qcc_io_send
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_is_pacing_active
    - quic_set_connection_close
    - list_for_each_entry_safe
    - TRACE_ENTER
    - TRACE_DATA
    - LIST_APPEND
    - qcc_emit_fctl
    - qcc_app_init
    - quic_pacing_reload
    - qfctl_rblocked
    - qcs_send
    - TRACE_DEVEL
    - qcc_build_frms
    - conn_is_quic
    - TRACE_LEAVE
    - TRACE_ERROR
    - LIST_DEL_INIT
    - qcc_emit_rs_ss
    - tasklet_wakeup
    - LIST_HEAD_INIT
    - BUG_ON
    - qfctl_rcap
    - qcc_send_frames
    - qcc_wakeup_pacing
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int qcc_io_send(struct qcc *qcc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3269,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3273,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:3278,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:3280,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:3281,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:3281,1
    - Dst: qcs_notify_recv
      Src: /src/haproxy/src/mux_quic.c:3282,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:3283,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3290
      start: 3262
    functionDepth: 2
    functionLinenumber: 3262
    functionLinenumberEnd: 3290
    functionName: qcc_wait_for_hs
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - eb64_next
    - TRACE_STATE
    - TRACE_LEAVE
    - qcs_sc
    - TRACE_ENTER
    - eb64_first
    - container_of
    - qcs_notify_recv
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void qcc_wait_for_hs(struct qcc *qcc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3302,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:3305,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3306,1
    - Dst: qcc_wait_for_hs
      Src: /src/haproxy/src/mux_quic.c:3311,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3313,1
    - Dst: qcc_qmux_recv
      Src: /src/haproxy/src/mux_quic.c:3315,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3318,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:3319,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3321,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:3321,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:3321,1
    - Dst: qcs_rx_avail_data
      Src: /src/haproxy/src/mux_quic.c:3323,1
    - Dst: qcc_decode_qcs
      Src: /src/haproxy/src/mux_quic.c:3324,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:3325,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3334,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 3297
    functionDepth: 9
    functionLinenumber: 3297
    functionLinenumberEnd: 3336
    functionName: qcc_io_recv
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_quic
    - quic_stream_is_local
    - qcc_qmux_recv
    - TRACE_LEAVE
    - BUG_ON
    - qcc_decode_qcs
    - LIST_DEL_INIT
    - quic_stream_is_uni
    - qcs_rx_avail_data
    - TRACE_ENTER
    - TRACE_DATA
    - LIST_ISEMPTY
    - qcc_wait_for_hs
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int qcc_io_recv(struct qcc *qcc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_quic.c:3346,1
    - Dst: qcc_be_is_reusable
      Src: /src/haproxy/src/mux_quic.c:3350,1
    - Dst: qcc_fctl_avail_streams
      Src: /src/haproxy/src/mux_quic.c:3353,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_quic.c:3365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3344
    functionDepth: 2
    functionLinenumber: 3344
    functionLinenumberEnd: 3369
    functionName: qcm_avail_streams
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - qcc_be_is_reusable
    - qcc_fctl_avail_streams
    - unlikely
    linkageType: ''
    returnType: int
    signature: int qcm_avail_streams(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3378
      start: 3374
    functionDepth: 0
    functionLinenumber: 3374
    functionLinenumberEnd: 3378
    functionName: qcm_used_streams
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qcm_used_streams(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3385,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3387,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:3388,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3390,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:3391,1
    - Dst: qcs_is_completed
      Src: /src/haproxy/src/mux_quic.c:3391,1
    - Dst: qcs_destroy
      Src: /src/haproxy/src/mux_quic.c:3392,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3396
      start: 3381
    functionDepth: 6
    functionLinenumber: 3381
    functionLinenumberEnd: 3396
    functionName: qcc_purge_streams
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_is_completed
    - TRACE_STATE
    - TRACE_LEAVE
    - qcs_destroy
    - TRACE_ENTER
    - LIST_ISEMPTY
    - BUG_ON_HOT
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void qcc_purge_streams(struct qcc *qcc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_quic.c:3406,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:3408,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:3409,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:3410,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:3412,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_quic.c:3416,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_quic.c:3417,1
    - Dst: qcs_alert
      Src: /src/haproxy/src/mux_quic.c:3420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3401
    functionDepth: 2
    functionLinenumber: 3401
    functionLinenumberEnd: 3422
    functionName: qcc_wake_streams
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - eb64_entry
    - eb64_next
    - qcs_alert
    - se_fl_set_error
    - qcs_sc
    - eb64_first
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void qcc_wake_streams(struct qcc *qcc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3432,1
    - Dst: qcc_purge_streams
      Src: /src/haproxy/src/mux_quic.c:3433,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_quic.c:3439,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3445,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/mux_quic.c:3445,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3446,1
    - Dst: qcc_io_send
      Src: /src/haproxy/src/mux_quic.c:3448,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3452,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:3458,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_quic.c:3459,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_quic.c:3463,1
    - Dst: qcc_app_shutdown
      Src: /src/haproxy/src/mux_quic.c:3471,1
    - Dst: qcc_wake_streams
      Src: /src/haproxy/src/mux_quic.c:3476,1
    - Dst: qcc_is_dead
      Src: /src/haproxy/src/mux_quic.c:3479,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3483
      start: 3430
    functionDepth: 10
    functionLinenumber: 3430
    functionLinenumberEnd: 3483
    functionName: qcc_io_process
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - unlikely
    - conn_is_quic
    - qcc_purge_streams
    - tick_remain
    - statistical_prng_range
    - qc_test_fd
    - qcc_wake_streams
    - TRACE_DEVEL
    - qcc_io_send
    - LIST_ISEMPTY
    - tick_isset
    - qcc_app_shutdown
    - qcc_is_dead
    linkageType: ''
    returnType: int
    signature: int qcc_io_process(struct qcc *qcc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3495,1
    - Dst: struct qcc*::app_ops::finalize
      Src: /src/haproxy/src/mux_quic.c:3498,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3500,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3505,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3513,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3519
      start: 3491
    functionDepth: 1
    functionLinenumber: 3491
    functionLinenumberEnd: 3519
    functionName: qcc_app_init
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - TRACE_STATE
    - TRACE_ERROR
    - TRACE_DEVEL
    - TRACE_ENTER
    - struct qcc*::app_ops::finalize
    linkageType: ''
    returnType: int
    signature: int qcc_app_init(struct qcc *qcc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3527,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:3530,1
    - Dst: qcc_app_init
      Src: /src/haproxy/src/mux_quic.c:3538,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3542,1
    - Dst: qcc_report_term_evt
      Src: /src/haproxy/src/mux_quic.c:3543,1
    - Dst: struct qcc*::app_ops::shutdown
      Src: /src/haproxy/src/mux_quic.c:3545,1
    - Dst: qcc_io_send
      Src: /src/haproxy/src/mux_quic.c:3546,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/mux_quic.c:3549,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3552,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_quic.c:3567,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/mux_quic.c:3569,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3574,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3525
    functionDepth: 10
    functionLinenumber: 3525
    functionLinenumberEnd: 3575
    functionName: qcc_app_shutdown
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 2
    functionsReached:
    - struct qcc*::app_ops::shutdown
    - conn_is_quic
    - TRACE_STATE
    - TRACE_LEAVE
    - conn_delete_from_tree
    - TRACE_ENTER
    - TRACE_DATA
    - qcc_io_send
    - quic_err_transport
    - qcc_app_init
    - qcc_report_term_evt
    - session_unown_conn
    linkageType: ''
    returnType: void
    signature: void qcc_app_shutdown(struct qcc *qcc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3584,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_quic.c:3586,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_quic.c:3589,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:3594,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:3596,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:3597,1
    - Dst: qcs_free
      Src: /src/haproxy/src/mux_quic.c:3598,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3601,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:3605,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:3607,1
    - Dst: qc_stream_desc_sub_room
      Src: /src/haproxy/src/mux_quic.c:3608,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:3609,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_quic.c:3617,1
    - Dst: qcc_report_term_evt
      Src: /src/haproxy/src/mux_quic.c:3619,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_quic.c:3621,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3627,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:3628,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/mux_quic.c:3629,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3629,1
    - Dst: qcc_clear_frms
      Src: /src/haproxy/src/mux_quic.c:3632,1
    - Dst: struct qcc*::app_ops::release
      Src: /src/haproxy/src/mux_quic.c:3636,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3637,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:3640,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/mux_quic.c:3644,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3648,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_quic.c:3649,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_quic.c:3650,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_quic.c:3651,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_quic.c:3654,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3660,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/mux_quic.c:3662,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/mux_quic.c:3663,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/mux_quic.c:3665,1
    - Dst: conn_free
      Src: /src/haproxy/src/mux_quic.c:3666,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3669,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3670
      start: 3578
    functionDepth: 5
    functionLinenumber: 3578
    functionLinenumberEnd: 3670
    functionName: qcc_release
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - TRACE_ENTER
    - offer_buffers
    - struct connection*::xprt::unsubscribe
    - eb64_next
    - task_destroy
    - qc_stream_desc_sub_room
    - TRACE_DEVEL
    - eb64_first
    - struct connection*::destroy_cb
    - _HA_ATOMIC_SUB
    - conn_stop_tracking
    - qcs_free
    - pool_free
    - conn_full_close
    - conn_is_quic
    - TRACE_PROTO
    - eb64_entry
    - TRACE_LEAVE
    - qc_frm_free
    - b_free
    - conn_free
    - LIST_ISEMPTY
    - struct qcc*::app_ops::release
    - qcc_report_term_evt
    - qcc_clear_frms
    - tasklet_free
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void qcc_release(struct qcc *qcc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_quic.c:3682,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3688,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_quic.c:3689,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3691,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3695,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:3700,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3702,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_quic.c:3703,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:3705,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3707,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_quic.c:3709,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3715,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3719,1
    - Dst: qcc_io_send
      Src: /src/haproxy/src/mux_quic.c:3724,1
    - Dst: qcc_io_recv
      Src: /src/haproxy/src/mux_quic.c:3726,1
    - Dst: qcc_io_process
      Src: /src/haproxy/src/mux_quic.c:3728,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3729,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:3734,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:3737,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:3738,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_quic.c:3739,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_quic.c:3743,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/mux_quic.c:3751,1
    - Dst: srv_add_idle
      Src: /src/haproxy/src/mux_quic.c:3757,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3764,1
    - Dst: qcc_app_shutdown
      Src: /src/haproxy/src/mux_quic.c:3769,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:3770,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3772,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3775
      start: 3672
    functionDepth: 11
    functionLinenumber: 3672
    functionLinenumberEnd: 3775
    functionName: qcc_io_cb
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_refresh_timeout
    - qcc_is_pacing_active
    - task_queue
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - qcc_app_shutdown
    - session_reinsert_idle_conn
    - srv_add_idle
    - qcc_io_recv
    - qcc_release
    - TRACE_LEAVE
    - conn_delete_from_tree
    - LIST_INLIST
    - __objt_server
    - TRACE_STATE
    - BUG_ON
    - HA_SPIN_UNLOCK
    - qcc_io_send
    - tick_isset
    - session_detach_idle_conn
    - qcc_io_process
    - tasklet_free
    linkageType: ''
    returnType: struct task
    signature: struct task *qcc_io_cb(struct task *t, void *ctx, unsigned int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_quic.c:3780,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3782,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:3785,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3786,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/mux_quic.c:3791,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3796
      start: 3777
    functionDepth: 1
    functionLinenumber: 3777
    functionLinenumberEnd: 3796
    functionName: qcc_pacing_task
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup_after
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - tick_isset
    - tick_is_expired
    linkageType: ''
    returnType: struct task
    signature: struct task *qcc_pacing_task(struct task *t, void *ctx, unsigned int
      state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_quic.c:3801,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3803,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_quic.c:3807,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3814,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3819,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3820,1
    - Dst: qcc_may_expire
      Src: /src/haproxy/src/mux_quic.c:3824,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3825,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3826,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_quic.c:3835,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/mux_quic.c:3837,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3839,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_quic.c:3842,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3845,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3857,1
    - Dst: qcc_app_shutdown
      Src: /src/haproxy/src/mux_quic.c:3858,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:3859,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3862,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3866,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3868
      start: 3798
    functionDepth: 11
    functionLinenumber: 3798
    functionLinenumberEnd: 3868
    functionName: qcc_timeout_task
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - task_destroy
    - TRACE_LEAVE
    - HA_SPIN_UNLOCK
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - TRACE_DEVEL
    - conn_delete_from_tree
    - qcc_app_shutdown
    - tick_is_expired
    - qcc_may_expire
    - session_unown_conn
    - qcc_release
    linkageType: ''
    returnType: struct task
    signature: struct task *qcc_timeout_task(struct task *t, void *ctx, unsigned int
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:3879,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:3880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3881
      start: 3871
    functionDepth: 1
    functionLinenumber: 3871
    functionLinenumberEnd: 3881
    functionName: _qcc_init
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void _qcc_init(struct qcc *qcc)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3890,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_quic.c:3892,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3894,1
    - Dst: _qcc_init
      Src: /src/haproxy/src/mux_quic.c:3898,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:3901,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/mux_quic.c:3905,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3907,1
    - Dst: qfctl_init
      Src: /src/haproxy/src/mux_quic.c:3922,1
    - Dst: xprt_qmux_rparams
      Src: /src/haproxy/src/mux_quic.c:3930,1
    - Dst: qfctl_init
      Src: /src/haproxy/src/mux_quic.c:3931,1
    - Dst: xprt_qmux_lparams
      Src: /src/haproxy/src/mux_quic.c:3939,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:3953,1
    - Dst: quic_pacing_init
      Src: /src/haproxy/src/mux_quic.c:3954,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_quic.c:3958,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3960,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:3969,1
    - Dst: xprt_qmux_xfer_rxbuf
      Src: /src/haproxy/src/mux_quic.c:3974,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3976,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:3976,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:3979,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_quic.c:3992,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_quic.c:3997,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3999,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:4003,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:4004,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:4005,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:4006,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:4007,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:4016,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:4018,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:4023,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_quic.c:4030,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:4032,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:4037,1
    - Dst: qcc_reset_idle_start
      Src: /src/haproxy/src/mux_quic.c:4039,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:4040,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:4042,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/mux_quic.c:4043,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_quic.c:4047,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:4047,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:4048,1
    - Dst: qcc_install_app_ops
      Src: /src/haproxy/src/mux_quic.c:4054,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:4055,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:4059,1
    - Dst: proxy_inc_fe_cum_sess_ver_ctr
      Src: /src/haproxy/src/mux_quic.c:4060,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:4062,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:4064,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:4067,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:4069,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4076,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_quic.c:4079,1
    - Dst: qcc_fctl_avail_streams
      Src: /src/haproxy/src/mux_quic.c:4096,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:4097,1
    - Dst: qcc_init_stream_local
      Src: /src/haproxy/src/mux_quic.c:4102,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:4104,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_quic.c:4109,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:4110,1
    - Dst: qcs_free
      Src: /src/haproxy/src/mux_quic.c:4112,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4122,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/mux_quic.c:4126,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/mux_quic.c:4130,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/mux_quic.c:4131,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:4138,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4142,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 186
    argCount: 4
    argNames:
    - conn
    - prx
    - sess
    - input
    argTypes:
    - struct connection*
    - struct proxy*
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4144
      start: 3883
    functionDepth: 7
    functionLinenumber: 3883
    functionLinenumberEnd: 4144
    functionName: qcm_init
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - xprt_qmux_rparams
    - xprt_qmux_xfer_rxbuf
    - qcc_is_pacing_active
    - unlikely
    - quic_set_connection_close
    - _HA_ATOMIC_ADD
    - TRACE_ENTER
    - LIST_APPEND
    - quic_pacing_init
    - LIST_INIT
    - HA_ATOMIC_STORE
    - pool_alloc
    - TRACE_DEVEL
    - tasklet_new
    - proxy_inc_fe_cum_sess_ver_ctr
    - xprt_qmux_lparams
    - quic_err_transport
    - qcc_reset_idle_start
    - qcc_release
    - qcs_free
    - qcc_init_stream_local
    - conn_is_quic
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - sc_attach_mux
    - tasklet_wakeup
    - b_data
    - qcc_fctl_avail_streams
    - struct connection*::xprt::subscribe
    - tick_add_ifset
    - qcc_install_app_ops
    - TRACE_STATE
    - BUG_ON
    - tick_isset
    - qfctl_init
    - task_new_here
    - _qcc_init
    linkageType: ''
    returnType: int
    signature: "int qcm_init(struct connection *conn, struct proxy *prx,\n                    struct
      session *sess, struct buffer *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4150,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:4151,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4153
      start: 4146
    functionDepth: 6
    functionLinenumber: 4146
    functionLinenumberEnd: 4153
    functionName: qcm_destroy
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ENTER
    - qcc_release
    linkageType: ''
    returnType: void
    signature: void qcm_destroy(void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4160,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:4165,1
    - Dst: qcc_fctl_avail_streams
      Src: /src/haproxy/src/mux_quic.c:4165,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:4168,1
    - Dst: qcc_init_stream_local
      Src: /src/haproxy/src/mux_quic.c:4170,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4172,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_quic.c:4176,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4177,1
    - Dst: qcs_free
      Src: /src/haproxy/src/mux_quic.c:4178,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/mux_quic.c:4188,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/mux_quic.c:4189,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - conn
    - sd
    - sess
    argTypes:
    - struct connection*
    - struct sedesc*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4193
      start: 4155
    functionDepth: 7
    functionLinenumber: 4155
    functionLinenumberEnd: 4193
    functionName: qcm_strm_attach
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - xprt_set_used
    - TRACE_LEAVE
    - BUG_ON
    - sc_attach_mux
    - TRACE_DEVEL
    - TRACE_ENTER
    - qcc_fctl_avail_streams
    - HA_ATOMIC_AND
    - qcs_free
    - qcc_init_stream_local
    linkageType: ''
    returnType: int
    signature: int qcm_strm_attach(struct connection *conn, struct sedesc *sd, struct
      session *sess)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4202,1
    - Dst: qcc_rm_sc
      Src: /src/haproxy/src/mux_quic.c:4213,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:4215,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4217,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:4219,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4225,1
    - Dst: qcs_destroy
      Src: /src/haproxy/src/mux_quic.c:4229,1
    - Dst: qcc_is_dead
      Src: /src/haproxy/src/mux_quic.c:4232,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4235,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/mux_quic.c:4240,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:4243,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_quic.c:4251,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_quic.c:4252,1
    - Dst: session_check_idle_conn
      Src: /src/haproxy/src/mux_quic.c:4255,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4256,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4269,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_quic.c:4274,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_quic.c:4275,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_quic.c:4277,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_quic.c:4277,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4279,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/mux_quic.c:4290,1
    - Dst: qcm_avail_streams
      Src: /src/haproxy/src/mux_quic.c:4291,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_quic.c:4292,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4293,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/mux_quic.c:4294,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_quic.c:4294,1
    - Dst: qcc_is_dead
      Src: /src/haproxy/src/mux_quic.c:4299,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4300,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4304,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:4305,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4309,1
    - Dst: qcc_app_shutdown
      Src: /src/haproxy/src/mux_quic.c:4313,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:4314,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4315,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4317
      start: 4195
    functionDepth: 11
    functionLinenumber: 4195
    functionLinenumberEnd: 4317
    functionName: qcm_strm_detach
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_refresh_timeout
    - TRACE_ENTER
    - HA_ATOMIC_OR
    - qcc_app_shutdown
    - qcs_is_close_local
    - objt_server
    - TRACE_DEVEL
    - srv_add_to_avail_list
    - qcc_rm_sc
    - qcc_release
    - TRACE_LEAVE
    - qcm_avail_streams
    - qcs_destroy
    - LIST_INLIST
    - session_check_idle_conn
    - __objt_server
    - session_add_conn
    - TRACE_STATE
    - srv_add_to_idle_list
    - ceb_intree
    - xprt_set_idle
    - qcc_is_dead
    linkageType: ''
    returnType: void
    signature: void qcm_strm_detach(struct sedesc *sd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:4323,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4328,1
    - Dst: qcs_http_rcv_buf
      Src: /src/haproxy/src/mux_quic.c:4330,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:4332,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:4333,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_quic.c:4336,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4340,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:4341,1
    - Dst: se_expect_data
      Src: /src/haproxy/src/mux_quic.c:4347,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4354,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:4355,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:4360,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4361,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:4362,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_quic.c:4363,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_quic.c:4366,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:4370,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4371,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:4372,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:4375,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_quic.c:4376,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_quic.c:4377,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:4386,1
    - Dst: qcs_rx_avail_data
      Src: /src/haproxy/src/mux_quic.c:4386,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:4390,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:4391,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4395,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4398
      start: 4320
    functionDepth: 7
    functionLinenumber: 4320
    functionLinenumberEnd: 4398
    functionName: qcm_strm_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - qcs_http_rcv_buf
    - TRACE_STATE
    - BUG_ON
    - TRACE_LEAVE
    - qcs_rx_avail_data
    - TRACE_ENTER
    - tasklet_wakeup
    - b_free
    - LIST_APPEND
    - __sc_mux_strm
    - b_data
    - se_fl_clr
    - se_expect_data
    - b_size
    - se_report_term_evt
    - offer_buffers
    - se_fl_test
    linkageType: ''
    returnType: size_t
    signature: "size_t qcm_strm_rcv_buf(struct stconn *sc, struct buffer *buf,\n                               size_t
      count, int flags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:4403,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:4404,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4408,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:4411,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:4415,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4416,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:4421,1
    - Dst: BUG_ON_STRESS
      Src: /src/haproxy/src/mux_quic.c:4422,1
    - Dst: qcs_http_reset_buf
      Src: /src/haproxy/src/mux_quic.c:4423,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:4427,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4428,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:4432,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4433,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:4435,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4436,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:4438,1
    - Dst: tot_time_start
      Src: /src/haproxy/src/mux_quic.c:4439,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:4444,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4445,1
    - Dst: tot_time_start
      Src: /src/haproxy/src/mux_quic.c:4447,1
    - Dst: qcs_http_snd_buf
      Src: /src/haproxy/src/mux_quic.c:4451,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4453,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:4458,1
    - Dst: qcc_send_stream
      Src: /src/haproxy/src/mux_quic.c:4460,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:4464,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4468,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4471
      start: 4400
    functionDepth: 5
    functionLinenumber: 4400
    functionLinenumberEnd: 4471
    functionName: qcm_strm_snd_buf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - BUG_ON_STRESS
    - qfctl_sblocked
    - TRACE_STATE
    - TRACE_LEAVE
    - qcs_prep_bytes
    - TRACE_ENTER
    - TRACE_DEVEL
    - LIST_APPEND
    - qcs_http_snd_buf
    - __sc_mux_strm
    - tasklet_wakeup
    - qcc_send_stream
    - LIST_INLIST
    - qcs_is_close_local
    - tot_time_start
    - qcs_http_reset_buf
    - BUG_ON_HOT
    linkageType: ''
    returnType: size_t
    signature: "size_t qcm_strm_snd_buf(struct stconn *sc, struct buffer *buf,\n                               size_t
      count, int flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:4477,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4480,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:4483,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4495,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:4500,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4504,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:4509,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4510,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:4515,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4516,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:4517,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4518,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:4519,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:4525,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4526,1
    - Dst: struct qcs*::qcc::app_ops::nego_ff
      Src: /src/haproxy/src/mux_quic.c:4534,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:4539,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:4542,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:4543,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_quic.c:4544,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_quic.c:4545,1
    - Dst: b_sub
      Src: /src/haproxy/src/mux_quic.c:4546,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:4549,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4557,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 4
    argNames:
    - sc
    - input
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4559
      start: 4474
    functionDepth: 3
    functionLinenumber: 4474
    functionLinenumberEnd: 4559
    functionName: qcm_strm_nego_ff
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - qfctl_sblocked
    - TRACE_LEAVE
    - b_sub
    - TRACE_DEVEL
    - TRACE_ENTER
    - LIST_APPEND
    - b_add
    - __sc_mux_strm
    - struct qcs*::qcc::app_ops::nego_ff
    - b_data
    - LIST_INLIST
    - qcs_is_close_local
    - BUG_ON_HOT
    linkageType: ''
    returnType: size_t
    signature: "size_t qcm_strm_nego_ff(struct stconn *sc, struct buffer *input,\n
      \                              size_t count, unsigned int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:4563,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4568,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4571,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4576,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/mux_quic.c:4582,1
    - Dst: struct qcs*::qcc::app_ops::done_ff
      Src: /src/haproxy/src/mux_quic.c:4587,1
    - Dst: qcc_send_stream
      Src: /src/haproxy/src/mux_quic.c:4589,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:4597,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4602
      start: 4561
    functionDepth: 5
    functionLinenumber: 4561
    functionLinenumberEnd: 4602
    functionName: qcm_strm_done_ff
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - __sc_mux_strm
    - qcc_release_stream_txbuf
    - qcc_send_stream
    - struct qcs*::qcc::app_ops::done_ff
    linkageType: ''
    returnType: size_t
    signature: size_t qcm_strm_done_ff(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - flags
    argTypes:
    - struct stconn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4607
      start: 4604
    functionDepth: 0
    functionLinenumber: 4604
    functionLinenumberEnd: 4607
    functionName: qcm_strm_resume_ff
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qcm_strm_resume_ff(struct stconn *sc, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qcs_subscribe
      Src: /src/haproxy/src/mux_quic.c:4617,1
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:4617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4618
      start: 4614
    functionDepth: 2
    functionLinenumber: 4614
    functionLinenumberEnd: 4618
    functionName: qcm_strm_subscribe
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - qcs_subscribe
    linkageType: ''
    returnType: int
    signature: "int qcm_strm_subscribe(struct stconn *sc, int event_type,\n                              struct
      wait_event *es)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:4626,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:4628,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:4629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4636
      start: 4624
    functionDepth: 1
    functionLinenumber: 4624
    functionLinenumberEnd: 4636
    functionName: qcm_strm_unsubscribe
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int qcm_strm_unsubscribe(struct stconn *sc, int event_type, struct
      wait_event *es)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4642,1
    - Dst: qcc_io_process
      Src: /src/haproxy/src/mux_quic.c:4644,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4645,1
    - Dst: qcc_wake_streams
      Src: /src/haproxy/src/mux_quic.c:4653,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:4655,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4657,1
    - Dst: qcc_app_shutdown
      Src: /src/haproxy/src/mux_quic.c:4661,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:4662,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4665
      start: 4638
    functionDepth: 11
    functionLinenumber: 4638
    functionLinenumberEnd: 4665
    functionName: qcm_wake
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_refresh_timeout
    - qcc_wake_streams
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_ENTER
    - qcc_app_shutdown
    - qcc_io_process
    - qcc_release
    linkageType: ''
    returnType: int
    signature: int qcm_wake(struct connection *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:4669,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4675,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:4678,1
    - Dst: struct qcc*::app_ops::lclose
      Src: /src/haproxy/src/mux_quic.c:4681,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:4682,1
    - Dst: struct qcc*::app_ops::lclose
      Src: /src/haproxy/src/mux_quic.c:4683,1
    - Dst: struct qcc*::app_ops::lclose
      Src: /src/haproxy/src/mux_quic.c:4685,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:4686,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - sc
    - mode
    - reason
    argTypes:
    - struct stconn*
    - unsigned int
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4691
      start: 4667
    functionDepth: 1
    functionLinenumber: 4667
    functionLinenumberEnd: 4691
    functionName: qcm_strm_shut
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - struct qcc*::app_ops::lclose
    - __sc_mux_strm
    - qcs_is_close_local
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void qcm_strm_shut(struct stconn *sc, unsigned int mode, struct se_abort_info
      *reason)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - conn
    - mux_ctl
    - output
    argTypes:
    - struct connection*
    - enum mux_ctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4716
      start: 4693
    functionDepth: 0
    functionLinenumber: 4693
    functionLinenumberEnd: 4716
    functionName: qcm_ctl
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qcm_ctl(struct connection *conn, enum mux_ctl_type mux_ctl, void
      *output)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:4721,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_quic.c:4735,1
    - Dst: qcm_dump_qcs_info
      Src: /src/haproxy/src/mux_quic.c:4738,1
    - Dst: qcm_dump_qcc_info
      Src: /src/haproxy/src/mux_quic.c:4741,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4744,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_quic.c:4746,1
    - Dst: struct connection*::xprt::dump_info
      Src: /src/haproxy/src/mux_quic.c:4750,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - sc
    - mux_sctl
    - output
    argTypes:
    - struct stconn*
    - enum mux_sctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4761
      start: 4718
    functionDepth: 2
    functionLinenumber: 4718
    functionLinenumberEnd: 4761
    functionName: qcm_sctl
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcm_dump_qcs_info
    - chunk_appendf
    - struct connection*::xprt::dump_info
    - get_trash_chunk
    - __sc_mux_strm
    - tevt_evts2str
    - qcm_dump_qcc_info
    linkageType: ''
    returnType: int
    signature: int qcm_sctl(struct stconn *sc, enum mux_sctl_type mux_sctl, void *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4777,1
    - Dst: qcs_st_to_str
      Src: /src/haproxy/src/mux_quic.c:4778,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4781,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - msg
    - sd
    - pfx
    argTypes:
    - struct buffer*
    - struct sedesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4768
    functionDepth: 1
    functionLinenumber: 4768
    functionLinenumberEnd: 4787
    functionName: qcm_strm_show_sd
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_st_to_str
    - chunk_appendf
    linkageType: ''
    returnType: int
    signature: int qcm_strm_show_sd(struct buffer *msg, struct sedesc *sd, const char
      *pfx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4819,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:4823,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4824,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:4829,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:4831,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4832,1
    - Dst: qcs_st_to_str
      Src: /src/haproxy/src/mux_quic.c:4834,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:4836,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:4836,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4837,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4838,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:4841,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:4841,1
    - Dst: bdata_ctr_print
      Src: /src/haproxy/src/mux_quic.c:4843,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4844,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4849,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:4850,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4852
      start: 4814
    functionDepth: 2
    functionLinenumber: 4814
    functionLinenumberEnd: 4852
    functionName: qcc_show_quic
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - quic_stream_is_local
    - qcc_is_pacing_active
    - eb64_entry
    - eb64_next
    - quic_stream_is_uni
    - qcs_st_to_str
    - chunk_appendf
    - eb64_first
    - quic_stream_is_remote
    - bdata_ctr_print
    linkageType: ''
    returnType: void
    signature: void qcc_show_quic(struct qcc *qcc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lh
    - ','
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: LIST_INSERT
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT(lh, el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: LIST_DELETE
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 108
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_DELETE(el)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __eb64_lookup
      Src: /src/haproxy/src/lru.c:42,1
    - Dst: container_of
      Src: /src/haproxy/src/lru.c:43,1
    - Dst: typeof
      Src: /src/haproxy/src/lru.c:43,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/lru.c:49,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/lru.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - key
    - lru
    - domain
    - revision
    argTypes:
    - unsigned long long
    - struct lru64_head*
    - void*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 55
    functionName: lru64_lookup
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - typeof
    - container_of
    - __eb64_lookup
    - LIST_INSERT
    linkageType: ''
    returnType: struct lru64
    signature: "struct lru64 *lru64_lookup(unsigned long long key, struct lru64_head
      *lru,\n\t\t\t   void *domain, unsigned long long revision)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/lru.c:74,1
    - Dst: __eb64_insert
      Src: /src/haproxy/src/lru.c:82,1
    - Dst: container_of
      Src: /src/haproxy/src/lru.c:83,1
    - Dst: typeof
      Src: /src/haproxy/src/lru.c:83,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/lru.c:90,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/lru.c:91,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/lru.c:99,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/lru.c:110,1
    - Dst: container_of
      Src: /src/haproxy/src/lru.c:116,1
    - Dst: typeof
      Src: /src/haproxy/src/lru.c:116,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/lru.c:119,1
    - Dst: __eb64_delete
      Src: /src/haproxy/src/lru.c:120,1
    - Dst: struct lru64*::free
      Src: /src/haproxy/src/lru.c:122,1
    - Dst: free
      Src: /src/haproxy/src/lru.c:126,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 4
    argNames:
    - key
    - lru
    - domain
    - revision
    argTypes:
    - unsigned long long
    - struct lru64_head*
    - void*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 132
    functionName: lru64_get
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 8
    functionsReached:
    - malloc
    - LIST_DELETE
    - typeof
    - __eb64_delete
    - container_of
    - free
    - __eb64_insert
    - struct lru64*::free
    - LIST_INSERT
    linkageType: ''
    returnType: struct lru64
    signature: "struct lru64 *lru64_get(unsigned long long key, struct lru64_head
      *lru,\n\t\t\tvoid *domain, unsigned long long revision)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - elem
    - data
    - domain
    - revision
    argTypes:
    - struct lru64*
    - void*
    - void*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: lru64_commit
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void lru64_commit(struct lru64 *elem, void *data, void *domain,\n\t\t
      \ unsigned long long revision, void (*free)(void *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/lru.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: lru64_new
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 2
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct lru64_head
    signature: struct lru64_head *lru64_new(int size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/lru.c:179,1
    - Dst: typeof
      Src: /src/haproxy/src/lru.c:179,1
    - Dst: container_of
      Src: /src/haproxy/src/lru.c:181,1
    - Dst: typeof
      Src: /src/haproxy/src/lru.c:181,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/lru.c:184,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/lru.c:185,1
    - Dst: struct lru64*::free
      Src: /src/haproxy/src/lru.c:187,1
    - Dst: free
      Src: /src/haproxy/src/lru.c:188,1
    - Dst: free
      Src: /src/haproxy/src/lru.c:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - lru
    argTypes:
    - struct lru64_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 200
    functionName: lru64_destroy
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 2
    functionsReached:
    - LIST_DELETE
    - typeof
    - eb64_delete
    - container_of
    - free
    - struct lru64*::free
    linkageType: ''
    returnType: int
    signature: int lru64_destroy(struct lru64_head *lru)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/lru.c:207,1
    - Dst: typeof
      Src: /src/haproxy/src/lru.c:207,1
    - Dst: container_of
      Src: /src/haproxy/src/lru.c:210,1
    - Dst: typeof
      Src: /src/haproxy/src/lru.c:210,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/lru.c:214,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/lru.c:215,1
    - Dst: struct lru64*::free
      Src: /src/haproxy/src/lru.c:217,1
    - Dst: free
      Src: /src/haproxy/src/lru.c:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - lru
    - nb
    argTypes:
    - struct lru64_head*
    - unsigned long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 225
    functionName: lru64_kill_oldest
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - typeof
    - eb64_delete
    - container_of
    - free
    - struct lru64*::free
    linkageType: ''
    returnType: void
    signature: void lru64_kill_oldest(struct lru64_head *lru, unsigned long int nb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sum
      Src: /src/haproxy/src/lru.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 246
    functionName: sum
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 1
    functionsReached:
    - sum
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long sum(unsigned long long x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lru64_get
      Src: /src/haproxy/src/lru.c:253,1
    - Dst: sum
      Src: /src/haproxy/src/lru.c:259,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/lru.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - lru
    - a
    argTypes:
    - struct lru64_head*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 263
    functionName: get_value
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 1
    functionsReached:
    - lru64_commit
    - sum
    - lru64_get
    linkageType: ''
    returnType: long
    signature: long get_value(struct lru64_head *lru, long a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: statistical_prng
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int statistical_prng()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/lru.c:284,1
    - Dst: exit
      Src: /src/haproxy/src/lru.c:285,1
    - Dst: atoi
      Src: /src/haproxy/src/lru.c:288,1
    - Dst: lru64_new
      Src: /src/haproxy/src/lru.c:291,1
    - Dst: atoi
      Src: /src/haproxy/src/lru.c:291,1
    - Dst: get_value
      Src: /src/haproxy/src/lru.c:295,1
    - Dst: statistical_prng
      Src: /src/haproxy/src/lru.c:295,1
    - Dst: printf
      Src: /src/haproxy/src/lru.c:298,1
    - Dst: lru64_destroy
      Src: /src/haproxy/src/lru.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 277
    functionDepth: 5
    functionLinenumber: 277
    functionLinenumberEnd: 303
    functionName: main
    functionSourceFile: /src/haproxy/src/lru.c
    functionUses: 23
    functionsReached:
    - exit
    - lru64_new
    - lru64_destroy
    - printf
    - get_value
    - statistical_prng
    - atoi
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_contig_data
      Src: /src/haproxy/src/check.c:152,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/check.c:158,1
    - Dst: dump_text_line
      Src: /src/haproxy/src/check.c:163,1
    - Dst: b_orig
      Src: /src/haproxy/src/check.c:163,1
    - Dst: b_size
      Src: /src/haproxy/src/check.c:163,1
    - Dst: dump_text_line
      Src: /src/haproxy/src/check.c:171,1
    - Dst: b_orig
      Src: /src/haproxy/src/check.c:171,1
    - Dst: b_size
      Src: /src/haproxy/src/check.c:171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - buf
    - ofs
    - len
    argTypes:
    - struct buffer*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 176
    functionName: check_trace_buf
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - b_orig
    - b_contig_data
    - b_peek_ofs
    - dump_text_line
    - b_size
    linkageType: ''
    returnType: void
    signature: void check_trace_buf(const struct buffer *buf, size_t ofs, size_t len)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/check.c:192,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:193,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:197,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/check.c:201,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:214,1
    - Dst: get_check_status_info
      Src: /src/haproxy/src/check.c:215,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:220,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:222,1
    - Dst: sc_conn
      Src: /src/haproxy/src/check.c:229,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:231,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:232,1
    - Dst: tcpcheck_ruleset_type_to_str
      Src: /src/haproxy/src/check.c:238,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:240,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/check.c:240,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:242,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:249,1
    - Dst: b_data
      Src: /src/haproxy/src/check.c:250,1
    - Dst: b_orig
      Src: /src/haproxy/src/check.c:250,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/check.c:251,1
    - Dst: b_size
      Src: /src/haproxy/src/check.c:251,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:252,1
    - Dst: b_data
      Src: /src/haproxy/src/check.c:253,1
    - Dst: b_orig
      Src: /src/haproxy/src/check.c:253,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/check.c:254,1
    - Dst: b_size
      Src: /src/haproxy/src/check.c:254,1
    - Dst: b_is_null
      Src: /src/haproxy/src/check.c:257,1
    - Dst: b_is_null
      Src: /src/haproxy/src/check.c:259,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/check.c:265,1
    - Dst: htx_dump
      Src: /src/haproxy/src/check.c:266,1
    - Dst: htxbuf
      Src: /src/haproxy/src/check.c:266,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/check.c:271,1
    - Dst: b_data
      Src: /src/haproxy/src/check.c:272,1
    - Dst: check_trace_buf
      Src: /src/haproxy/src/check.c:273,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/check.c:274,1
    - Dst: check_trace_buf
      Src: /src/haproxy/src/check.c:277,1
    - Dst: b_data
      Src: /src/haproxy/src/check.c:277,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 283
    functionName: check_trace
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - htxbuf
    - b_is_null
    - b_orig
    - BUG_ON
    - check_trace_buf
    - get_check_status_info
    - chunk_appendf
    - TICKS_TO_MS
    - tcpcheck_get_step_id
    - b_head_ofs
    - chunk_memcat
    - b_data
    - b_size
    - tcpcheck_ruleset_type_to_str
    - htx_dump
    linkageType: ''
    returnType: void
    signature: "void check_trace(enum trace_level level, uint64_t mask,\n\t\t\tconst
      struct trace_source *src,\n\t\t\tconst struct ist where, const struct ist func,\n\t\t\tconst
      void *a1, const void *a2, const void *a3, const void *a4)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: unclean_errno
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unclean_errno(int err)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - check_status
    argTypes:
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: get_check_status_result
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: short
    signature: short get_check_status_result(short check_status)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - check_status
    argTypes:
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 383
    functionName: get_check_status_description
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_check_status_description(short check_status)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - check_status
    argTypes:
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 399
    functionName: get_check_status_info
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_check_status_info(short check_status)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - analyze_status
    argTypes:
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 415
    functionName: get_analyze_status
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_analyze_status(short analyze_status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:422,1
    - Dst: get_check_status_description
      Src: /src/haproxy/src/check.c:422,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:425,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:430,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/check.c:432,1
    - Dst: strlen
      Src: /src/haproxy/src/check.c:432,1
    - Dst: chunk_asciiencode
      Src: /src/haproxy/src/check.c:433,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:435,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - msg
    - check
    argTypes:
    - struct buffer*
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 440
    functionName: check_append_info
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - chunk_appendf
    - get_check_status_description
    - chunk_asciiencode
    - chunk_initlen
    - strlen
    linkageType: ''
    returnType: void
    signature: void check_append_info(struct buffer *msg, struct check *check)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/check.c:455,1
    - Dst: pool_free
      Src: /src/haproxy/src/check.c:463,1
    - Dst: istptr
      Src: /src/haproxy/src/check.c:463,1
    - Dst: strncpy
      Src: /src/haproxy/src/check.c:473,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/check.c:486,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:509,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/check.c:529,1
    - Dst: srv_event_hdl_publish_check
      Src: /src/haproxy/src/check.c:537,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:540,1
    - Dst: check_append_info
      Src: /src/haproxy/src/check.c:548,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:550,1
    - Dst: ha_warning
      Src: /src/haproxy/src/check.c:555,1
    - Dst: send_log
      Src: /src/haproxy/src/check.c:556,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 3
    argNames:
    - check
    - status
    - desc
    argTypes:
    - struct check*
    - short
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 449
    functionDepth: 10
    functionLinenumber: 449
    functionLinenumberEnd: 558
    functionName: set_server_check_status
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 12
    functionsReached:
    - strncpy
    - HA_ATOMIC_STORE
    - _HA_ATOMIC_INC
    - srv_event_hdl_publish_check
    - check_append_info
    - ha_warning
    - chunk_printf
    - ns_to_ms
    - chunk_appendf
    - TRACE_POINT
    - istptr
    - send_log
    - pool_free
    linkageType: ''
    returnType: void
    signature: void set_server_check_status(struct check *check, short status, const
      char *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 568
    functionName: check_notify_cause
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum srv_op_st_chg_cause
    signature: enum srv_op_st_chg_cause check_notify_cause(struct check *check)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:589,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/check.c:590,1
    - Dst: check_notify_cause
      Src: /src/haproxy/src/check.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 591
    functionName: check_notify_failure
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - check_notify_cause
    - TRACE_STATE
    - srv_set_stopped
    linkageType: ''
    returnType: void
    signature: void check_notify_failure(struct check *check)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:623,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/check.c:624,1
    - Dst: check_notify_cause
      Src: /src/haproxy/src/check.c:624,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 625
    functionName: check_notify_success
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - check_notify_cause
    - srv_set_running
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void check_notify_success(struct check *check)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:652,1
    - Dst: srv_set_stopping
      Src: /src/haproxy/src/check.c:653,1
    - Dst: check_notify_cause
      Src: /src/haproxy/src/check.c:653,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 654
    functionName: check_notify_stopping
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - check_notify_cause
    - srv_set_stopping
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void check_notify_stopping(struct check *check)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/check.c:684,1
    - Dst: HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/check.c:688,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:691,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:692,1
    - Dst: get_analyze_status
      Src: /src/haproxy/src/check.c:692,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/check.c:694,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:715,1
    - Dst: check_notify_failure
      Src: /src/haproxy/src/check.c:717,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:723,1
    - Dst: check_notify_failure
      Src: /src/haproxy/src/check.c:725,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/check.c:733,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/check.c:735,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:737,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:744,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - s
    - status
    argTypes:
    - struct server*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 659
    functionDepth: 11
    functionLinenumber: 659
    functionLinenumberEnd: 746
    functionName: __health_adjust
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_ADD_FETCH
    - HA_ATOMIC_STORE
    - _HA_ATOMIC_INC
    - HA_ATOMIC_LOAD
    - get_analyze_status
    - chunk_printf
    - task_wakeup
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - check_notify_failure
    - set_server_check_status
    linkageType: ''
    returnType: void
    signature: void __health_adjust(struct server *s, short status)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unclean_errno
      Src: /src/haproxy/src/check.c:762,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/check.c:765,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/check.c:768,1
    - Dst: getsockopt
      Src: /src/haproxy/src/check.c:770,1
    - Dst: unclean_errno
      Src: /src/haproxy/src/check.c:773,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 788
    functionName: retrieve_errno_from_socket
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - getsockopt
    - unclean_errno
    - BUG_ON
    - conn_ctrl_ready
    linkageType: ''
    returnType: int
    signature: int retrieve_errno_from_socket(struct connection *conn)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/check.c:805,1
    - Dst: unclean_errno
      Src: /src/haproxy/src/check.c:814,1
    - Dst: retrieve_errno_from_socket
      Src: /src/haproxy/src/check.c:816,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/check.c:818,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/check.c:825,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/check.c:829,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:831,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:832,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:835,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:839,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:841,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:842,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:849,1
    - Dst: istlen
      Src: /src/haproxy/src/check.c:849,1
    - Dst: istptr
      Src: /src/haproxy/src/check.c:849,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:852,1
    - Dst: dump_binary
      Src: /src/haproxy/src/check.c:853,1
    - Dst: istptr
      Src: /src/haproxy/src/check.c:853,1
    - Dst: istlen
      Src: /src/haproxy/src/check.c:853,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:854,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:857,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:860,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:863,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:866,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:869,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:872,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:875,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:878,1
    - Dst: istlen
      Src: /src/haproxy/src/check.c:878,1
    - Dst: istptr
      Src: /src/haproxy/src/check.c:878,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:881,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:884,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:887,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:890,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:893,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:896,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:897,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:901,1
    - Dst: unclean_errno
      Src: /src/haproxy/src/check.c:906,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:907,1
    - Dst: conn_err_code_str
      Src: /src/haproxy/src/check.c:907,1
    - Dst: strerror
      Src: /src/haproxy/src/check.c:907,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:910,1
    - Dst: conn_err_code_str
      Src: /src/haproxy/src/check.c:910,1
    - Dst: unclean_errno
      Src: /src/haproxy/src/check.c:915,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:916,1
    - Dst: strerror
      Src: /src/haproxy/src/check.c:916,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:927,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:932,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/check.c:936,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:937,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:939,1
    - Dst: resolv_trigger_resolution
      Src: /src/haproxy/src/check.c:946,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/check.c:951,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:952,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:954,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/check.c:956,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:958,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:967,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:972,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/check.c:975,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 125
    argCount: 3
    argNames:
    - check
    - errno_bck
    - expired
    argTypes:
    - struct check*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 802
    functionDepth: 11
    functionLinenumber: 802
    functionLinenumberEnd: 977
    functionName: chk_report_conn_err
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 2
    functionsReached:
    - sc_conn
    - unclean_errno
    - sc_ep_test
    - resolv_trigger_resolution
    - strerror
    - retrieve_errno_from_socket
    - chunk_printf
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - tcpcheck_get_step_id
    - get_trash_chunk
    - chunk_appendf
    - conn_err_code_str
    - istptr
    - set_server_check_status
    - dump_binary
    - istlen
    linkageType: ''
    returnType: void
    signature: void chk_report_conn_err(struct check *check, int errno_bck, int expired)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:1010,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/check.c:1014,1
    - Dst: snprintf
      Src: /src/haproxy/src/check.c:1016,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:1020,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/check.c:1029,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/check.c:1030,1
    - Dst: MAX
      Src: /src/haproxy/src/check.c:1031,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/check.c:1031,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:1032,1
    - Dst: b_data
      Src: /src/haproxy/src/check.c:1035,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - s
    - buf
    argTypes:
    - struct server*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 1036
    functionName: httpchk_build_status_header
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - ns_to_sec
    - chunk_appendf
    - MAX
    - b_data
    - addr_to_str
    - snprintf
    linkageType: ''
    returnType: int
    signature: int httpchk_build_status_header(struct server *s, struct buffer *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_check
      Src: /src/haproxy/src/check.c:1048,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/check.c:1051,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/check.c:1053,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/check.c:1057,1
    - Dst: tcpcheck_main
      Src: /src/haproxy/src/check.c:1060,1
    - Dst: sc_conn
      Src: /src/haproxy/src/check.c:1063,1
    - Dst: unlikely
      Src: /src/haproxy/src/check.c:1065,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/check.c:1065,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/check.c:1072,1
    - Dst: chk_report_conn_err
      Src: /src/haproxy/src/check.c:1073,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:1074,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:1081,1
    - Dst: task_queue
      Src: /src/haproxy/src/check.c:1086,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/check.c:1089,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/check.c:1092,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1044
    functionDepth: 12
    functionLinenumber: 1044
    functionLinenumberEnd: 1094
    functionName: srv_chk_io_cb
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_conn
    - sc_ep_test
    - BUG_ON
    - TRACE_ERROR
    - chk_report_conn_err
    - task_wakeup
    - tcpcheck_main
    - task_queue
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - TRACE_LEAVE
    - __sc_check
    linkageType: ''
    returnType: struct task
    signature: struct task *srv_chk_io_cb(struct task *t, void *ctx, unsigned int
      state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1103,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1104,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1105,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - thr1
    - thr2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1126
    functionName: check_thread_cmp_load
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int check_thread_cmp_load(int thr1, int thr2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1136,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - thr1
    - thr2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1144
    functionName: check_thread_cmp_active
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int check_thread_cmp_active(int thr1, int thr2)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/check.c:1160,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/check.c:1162,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1176,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1177,1
    - Dst: MIN
      Src: /src/haproxy/src/check.c:1178,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/check.c:1195,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1196,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/check.c:1197,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/check.c:1202,1
    - Dst: check_thread_cmp_active
      Src: /src/haproxy/src/check.c:1204,1
    - Dst: check_thread_cmp_load
      Src: /src/haproxy/src/check.c:1206,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:1214,1
    - Dst: task_unlink_wq
      Src: /src/haproxy/src/check.c:1215,1
    - Dst: task_set_thread
      Src: /src/haproxy/src/check.c:1217,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:1218,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/check.c:1219,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:1224,1
    - Dst: task_set_thread
      Src: /src/haproxy/src/check.c:1228,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/check.c:1236,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1238,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1239,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/check.c:1241,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:1253,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/check.c:1259,1
    - Dst: tick_isset
      Src: /src/haproxy/src/check.c:1266,1
    - Dst: tick_add
      Src: /src/haproxy/src/check.c:1267,1
    - Dst: unlikely
      Src: /src/haproxy/src/check.c:1272,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1273,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/check.c:1281,1
    - Dst: tick_add
      Src: /src/haproxy/src/check.c:1283,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/check.c:1283,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1283,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/check.c:1285,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1286,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1291,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1301,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:1306,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1309,1
    - Dst: sc_new_from_check
      Src: /src/haproxy/src/check.c:1313,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:1315,1
    - Dst: tcpcheck_main
      Src: /src/haproxy/src/check.c:1318,1
    - Dst: likely
      Src: /src/haproxy/src/check.c:1326,1
    - Dst: sc_conn
      Src: /src/haproxy/src/check.c:1328,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/check.c:1333,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/check.c:1334,1
    - Dst: chk_report_conn_err
      Src: /src/haproxy/src/check.c:1335,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1339,1
    - Dst: sc_reset_endp
      Src: /src/haproxy/src/check.c:1341,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/check.c:1345,1
    - Dst: tcpcheck_main
      Src: /src/haproxy/src/check.c:1347,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1350,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1357,1
    - Dst: sc_conn
      Src: /src/haproxy/src/check.c:1362,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/check.c:1370,1
    - Dst: sc_destroy
      Src: /src/haproxy/src/check.c:1374,1
    - Dst: vars_prune
      Src: /src/haproxy/src/check.c:1379,1
    - Dst: session_free
      Src: /src/haproxy/src/check.c:1380,1
    - Dst: likely
      Src: /src/haproxy/src/check.c:1385,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1388,1
    - Dst: check_notify_failure
      Src: /src/haproxy/src/check.c:1389,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1393,1
    - Dst: check_notify_stopping
      Src: /src/haproxy/src/check.c:1394,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1398,1
    - Dst: check_notify_success
      Src: /src/haproxy/src/check.c:1399,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/check.c:1403,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/check.c:1405,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/check.c:1406,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/check.c:1407,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/check.c:1408,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/check.c:1418,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1419,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/check.c:1420,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/check.c:1423,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:1426,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:1429,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1436,1
    - Dst: statistical_prng
      Src: /src/haproxy/src/check.c:1437,1
    - Dst: tick_add
      Src: /src/haproxy/src/check.c:1439,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/check.c:1439,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1439,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/check.c:1450,1
    - Dst: tick_add
      Src: /src/haproxy/src/check.c:1451,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/check.c:1451,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/check.c:1456,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/check.c:1459,1
    - Dst: unlikely
      Src: /src/haproxy/src/check.c:1465,1
    - Dst: free_check
      Src: /src/haproxy/src/check.c:1466,1
    - Dst: srv_drop
      Src: /src/haproxy/src/check.c:1468,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 182
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1153
    functionDepth: 12
    functionLinenumber: 1153
    functionLinenumberEnd: 1474
    functionName: process_chk_conn
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_conn
    - sc_ep_test
    - HA_ATOMIC_LOAD
    - tcpcheck_main
    - task_unlink_wq
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - LIST_APPEND
    - likely
    - check_notify_failure
    - srv_drop
    - b_dequeue
    - statistical_prng
    - HA_ATOMIC_INC
    - set_server_check_status
    - se_shutdown
    - statistical_prng_range
    - check_thread_cmp_load
    - TRACE_DEVEL
    - vars_prune
    - tick_is_expired
    - task_set_thread
    - check_notify_stopping
    - _HA_ATOMIC_DEC
    - tick_add
    - check_thread_cmp_active
    - TRACE_LEAVE
    - ALREADY_CHECKED
    - TRACE_ERROR
    - sc_destroy
    - session_free
    - LIST_DEL_INIT
    - MS_TO_TICKS
    - check_release_buf
    - sc_reset_endp
    - check_notify_success
    - free_check
    - sc_ep_clr
    - sc_new_from_check
    - _HA_ATOMIC_INC
    - TRACE_STATE
    - _HA_ATOMIC_LOAD
    - chk_report_conn_err
    - task_wakeup
    - HA_SPIN_UNLOCK
    - srv_getinter
    - LIST_ISEMPTY
    - tick_isset
    - MIN
    - LIST_ELEM
    linkageType: ''
    returnType: struct task
    signature: struct task *process_chk_conn(struct task *t, void *context, unsigned
      int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/check.c:1490,1
    - Dst: b_alloc
      Src: /src/haproxy/src/check.c:1492,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1493,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/check.c:1495,1
    - Dst: b_alloc
      Src: /src/haproxy/src/check.c:1498,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1499,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/check.c:1501,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - target
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1506
    functionName: check_buf_available
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - tasklet_wakeup
    - TRACE_STATE
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int check_buf_available(void *target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_alloc_small
      Src: /src/haproxy/src/check.c:1515,1
    - Dst: likely
      Src: /src/haproxy/src/check.c:1516,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/check.c:1516,1
    - Dst: unlikely
      Src: /src/haproxy/src/check.c:1517,1
    - Dst: b_alloc
      Src: /src/haproxy/src/check.c:1517,1
    - Dst: b_queue
      Src: /src/haproxy/src/check.c:1518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - check
    - bptr
    - small_buffer
    argTypes:
    - struct check*
    - struct buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1511
    functionDepth: 1
    functionLinenumber: 1511
    functionLinenumberEnd: 1522
    functionName: check_get_buf
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 2
    functionsReached:
    - unlikely
    - b_alloc
    - b_alloc_small
    - b_queue
    - likely
    - LIST_INLIST
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *check_get_buf(struct check *check, struct buffer *bptr,
      unsigned int small_buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_is_default
      Src: /src/haproxy/src/check.c:1531,1
    - Dst: b_free
      Src: /src/haproxy/src/check.c:1533,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/check.c:1535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - check
    - bptr
    argTypes:
    - struct check*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1528
    functionDepth: 1
    functionLinenumber: 1528
    functionLinenumberEnd: 1537
    functionName: check_release_buf
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 5
    functionsReached:
    - b_is_default
    - offer_buffers
    - b_free
    linkageType: ''
    returnType: void
    signature: void check_release_buf(struct check *check, struct buffer *bptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/check.c:1545,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/check.c:1546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - check
    - type
    argTypes:
    - struct check*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1539
    functionDepth: 1
    functionLinenumber: 1539
    functionLinenumberEnd: 1548
    functionName: init_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: char
    signature: char *init_check(struct check *check, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/check.c:1561,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:1562,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:1563,1
    - Dst: pool_free
      Src: /src/haproxy/src/check.c:1566,1
    - Dst: istptr
      Src: /src/haproxy/src/check.c:1566,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:1568,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:1569,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:1570,1
    - Dst: task_destroy
      Src: /src/haproxy/src/check.c:1571,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/check.c:1573,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/check.c:1574,1
    - Dst: sc_destroy
      Src: /src/haproxy/src/check.c:1576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1554
    functionDepth: 8
    functionLinenumber: 1554
    functionLinenumberEnd: 1579
    functionName: free_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 3
    functionsReached:
    - sc_destroy
    - task_destroy
    - ha_free
    - check_release_buf
    - istptr
    - free_tcpcheck_vars
    - pool_free
    linkageType: ''
    returnType: void
    signature: void free_check(struct check *check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:1590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1587
    functionDepth: 1
    functionLinenumber: 1587
    functionLinenumberEnd: 1591
    functionName: check_purge
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - task_wakeup
    linkageType: ''
    returnType: void
    signature: void check_purge(struct check *check)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: process_chk_proc
      Src: /src/haproxy/src/check.c:1601,1
    - Dst: process_chk_conn
      Src: /src/haproxy/src/check.c:1602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1596
    functionDepth: 13
    functionLinenumber: 1596
    functionLinenumberEnd: 1604
    functionName: process_chk
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - process_chk_proc
    - process_chk_conn
    linkageType: ''
    returnType: struct task
    signature: struct task *process_chk(struct task *t, void *context, unsigned int
      state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: task_new_on
      Src: /src/haproxy/src/check.c:1614,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/check.c:1616,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1625,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1626,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1631,1
    - Dst: ha_random32
      Src: /src/haproxy/src/check.c:1632,1
    - Dst: tick_add
      Src: /src/haproxy/src/check.c:1640,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/check.c:1640,1
    - Dst: task_queue
      Src: /src/haproxy/src/check.c:1642,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1647,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - check
    - mininter
    - nbcheck
    - srvpos
    argTypes:
    - struct check*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1607
    functionDepth: 9
    functionLinenumber: 1607
    functionLinenumberEnd: 1650
    functionName: start_check_task
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - task_new_anywhere
    - MS_TO_TICKS
    - task_new_on
    - task_queue
    - srv_getinter
    - ha_alert
    - ha_random32
    - tick_add
    linkageType: ''
    returnType: int
    signature: "int start_check_task(struct check *check, int mininter,\n\t\t\t    int
      nbcheck, int srvpos)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: setup_new_proxy
      Src: /src/haproxy/src/check.c:1664,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1665,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:1666,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1690,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1691,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1692,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1697,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1698,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1699,1
    - Dst: srand
      Src: /src/haproxy/src/check.c:1707,1
    - Dst: time
      Src: /src/haproxy/src/check.c:1707,1
    - Dst: init_pid_list
      Src: /src/haproxy/src/check.c:1716,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1717,1
    - Dst: prepare_external_check
      Src: /src/haproxy/src/check.c:1726,1
    - Dst: start_check_task
      Src: /src/haproxy/src/check.c:1729,1
    - Dst: start_check_task
      Src: /src/haproxy/src/check.c:1736,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1656
    functionDepth: 10
    functionLinenumber: 1656
    functionLinenumberEnd: 1744
    functionName: start_checks
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - srand
    - ha_free
    - prepare_external_check
    - time
    - init_pid_list
    - srv_getinter
    - setup_new_proxy
    - ha_alert
    - start_check_task
    linkageType: ''
    returnType: int
    signature: int start_checks()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deinit_proxy
      Src: /src/haproxy/src/check.c:1750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1747
    functionDepth: 1
    functionLinenumber: 1747
    functionLinenumberEnd: 1751
    functionName: clear_checks
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - deinit_proxy
    linkageType: ''
    returnType: void
    signature: void clear_checks()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_host_port
      Src: /src/haproxy/src/check.c:1770,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - chk
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1787
    functionName: srv_check_healthcheck_port
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - get_host_port
    linkageType: ''
    returnType: int
    signature: int srv_check_healthcheck_port(struct check *chk)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: is_addr
      Src: /src/haproxy/src/check.c:1811,1
    - Dst: xprt_get
      Src: /src/haproxy/src/check.c:1816,1
    - Dst: is_addr
      Src: /src/haproxy/src/check.c:1822,1
    - Dst: net_addr_type_is_quic
      Src: /src/haproxy/src/check.c:1826,1
    - Dst: xprt_get
      Src: /src/haproxy/src/check.c:1827,1
    - Dst: xprt_get
      Src: /src/haproxy/src/check.c:1830,1
    - Dst: is_addr
      Src: /src/haproxy/src/check.c:1838,1
    - Dst: net_addr_type_is_quic
      Src: /src/haproxy/src/check.c:1848,1
    - Dst: xprt_get
      Src: /src/haproxy/src/check.c:1849,1
    - Dst: xprt_get
      Src: /src/haproxy/src/check.c:1851,1
    - Dst: net_addr_type_is_quic
      Src: /src/haproxy/src/check.c:1861,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/check.c:1861,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1869,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1870,1
    - Dst: net_addr_type_is_quic
      Src: /src/haproxy/src/check.c:1877,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/check.c:1878,1
    - Dst: ist
      Src: /src/haproxy/src/check.c:1878,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1879,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1880,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1886,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1887,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1892,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1893,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/check.c:1898,1
    - Dst: ist
      Src: /src/haproxy/src/check.c:1898,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1899,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1900,1
    - Dst: srv_check_healthcheck_port
      Src: /src/haproxy/src/check.c:1909,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/check.c:1910,1
    - Dst: is_addr
      Src: /src/haproxy/src/check.c:1910,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/check.c:1910,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/check.c:1913,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1914,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1915,1
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/check.c:1921,1
    - Dst: get_host_port
      Src: /src/haproxy/src/check.c:1922,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1923,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1925,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/check.c:1931,1
    - Dst: get_host_port
      Src: /src/haproxy/src/check.c:1932,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1933,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1935,1
    - Dst: init_check
      Src: /src/haproxy/src/check.c:1942,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1944,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1945,1
    - Dst: srv_take
      Src: /src/haproxy/src/check.c:1950,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 112
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1792
    functionDepth: 9
    functionLinenumber: 1792
    functionLinenumberEnd: 1961
    functionName: init_srv_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - ist
    - srv_check_healthcheck_port
    - proxy_type_str
    - list_for_each_entry
    - srv_is_quic
    - xprt_get
    - net_addr_type_is_quic
    - get_host_port
    - get_mux_proto
    - LIST_ISEMPTY
    - is_inet_addr
    - ha_alert
    - get_first_tcpcheck_rule
    - init_check
    - srv_take
    - is_addr
    linkageType: ''
    returnType: int
    signature: int init_srv_check(struct server *srv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/check.c:1978,1
    - Dst: calloc
      Src: /src/haproxy/src/check.c:1980,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1982,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1984,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/check.c:1990,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/check.c:1997,1
    - Dst: init_check
      Src: /src/haproxy/src/check.c:2001,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:2003,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:2004,1
    - Dst: srv_take
      Src: /src/haproxy/src/check.c:2013,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 1966
    functionDepth: 9
    functionLinenumber: 1966
    functionLinenumberEnd: 2024
    functionName: init_srv_agent_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - proxy_type_str
    - calloc
    - get_first_tcpcheck_rule
    - LIST_ISEMPTY
    - init_check
    - ha_alert
    - srv_take
    - LIST_INSERT
    linkageType: ''
    returnType: int
    signature: int init_srv_agent_check(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_check
      Src: /src/haproxy/src/check.c:2029,1
    - Dst: srv_drop
      Src: /src/haproxy/src/check.c:2031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2026
    functionDepth: 9
    functionLinenumber: 2026
    functionLinenumberEnd: 2035
    functionName: deinit_srv_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - free_check
    - srv_drop
    linkageType: ''
    returnType: void
    signature: void deinit_srv_check(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_check
      Src: /src/haproxy/src/check.c:2041,1
    - Dst: srv_drop
      Src: /src/haproxy/src/check.c:2043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2038
    functionDepth: 9
    functionLinenumber: 2038
    functionLinenumberEnd: 2048
    functionName: deinit_srv_agent_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - free_check
    - srv_drop
    linkageType: ''
    returnType: void
    signature: void deinit_srv_agent_check(struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/check.c:2064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2059
    functionDepth: 1
    functionLinenumber: 2059
    functionLinenumberEnd: 2065
    functionName: init_checks
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void init_checks()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2094,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/check.c:2098,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2084
    functionDepth: 5
    functionLinenumber: 2084
    functionLinenumberEnd: 2118
    functionName: srv_parse_addr
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - memprintf
    - str2sa_range
    linkageType: ''
    returnType: int
    signature: "int srv_parse_addr(char **args, int *cur_arg, struct proxy *curpx,
      struct server *srv,\n\t\t\t  char **errmsg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2128,1
    - Dst: memset
      Src: /src/haproxy/src/check.c:2131,1
    - Dst: str2ip
      Src: /src/haproxy/src/check.c:2132,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2133,1
    - Dst: set_srv_agent_addr
      Src: /src/haproxy/src/check.c:2136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2121
    functionDepth: 5
    functionLinenumber: 2121
    functionLinenumberEnd: 2147
    functionName: srv_parse_agent_addr
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - memprintf
    - memset
    - str2ip
    - set_srv_agent_addr
    linkageType: ''
    returnType: int
    signature: "int srv_parse_agent_addr(char **args, int *cur_arg, struct proxy *curpx,
      struct server *srv,\n\t\t\t\tchar **errmsg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2162,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:2163,1
    - Dst: calloc
      Src: /src/haproxy/src/check.c:2168,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2170,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/check.c:2173,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/check.c:2177,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/check.c:2181,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2183,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/check.c:2187,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2190,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/check.c:2194,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/check.c:2196,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2200,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/check.c:2205,1
    - Dst: deinit_srv_agent_check
      Src: /src/haproxy/src/check.c:2217,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/check.c:2218,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2150
    functionDepth: 10
    functionLinenumber: 2150
    functionLinenumberEnd: 2221
    functionName: srv_parse_agent_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - memprintf
    - proxy_type_str
    - parse_tcpcheck_expect
    - calloc
    - deinit_srv_agent_check
    - LIST_APPEND
    - create_tcpcheck_ruleset
    - find_tcpcheck_ruleset
    - parse_tcpcheck_send
    - LIST_INIT
    - free_tcpcheck_ruleset
    linkageType: ''
    returnType: int
    signature: "int srv_parse_agent_check(char **args, int *cur_arg, struct proxy
      *curpx, struct server *srv,\n\t\t\t\t char **errmsg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2232,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/check.c:2236,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2238,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2243,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2248,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2253,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/check.c:2259,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2260,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2224
    functionDepth: 5
    functionLinenumber: 2224
    functionLinenumberEnd: 2271
    functionName: srv_parse_agent_inter
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - warn_if_lower
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int srv_parse_agent_inter(char **args, int *cur_arg, struct proxy
      *curpx, struct server *srv,\n\t\t\t\t char **errmsg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2280,1
    - Dst: set_srv_agent_port
      Src: /src/haproxy/src/check.c:2291,1
    - Dst: atol
      Src: /src/haproxy/src/check.c:2291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2274
    functionDepth: 5
    functionLinenumber: 2274
    functionLinenumberEnd: 2299
    functionName: srv_parse_agent_port
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    - set_srv_agent_port
    linkageType: ''
    returnType: int
    signature: "int srv_parse_agent_port(char **args, int *cur_arg, struct proxy *curpx,
      struct server *srv,\n\t\t\t\tchar **errmsg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/check.c:2307,1
    - Dst: create_tcpcheck_var
      Src: /src/haproxy/src/check.c:2308,1
    - Dst: ist
      Src: /src/haproxy/src/check.c:2308,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/check.c:2312,1
    - Dst: strlen
      Src: /src/haproxy/src/check.c:2316,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/check.c:2317,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/check.c:2318,1
    - Dst: free
      Src: /src/haproxy/src/check.c:2323,1
    - Dst: free
      Src: /src/haproxy/src/check.c:2324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - srv
    - send
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2301
    functionDepth: 5
    functionLinenumber: 2301
    functionLinenumberEnd: 2326
    functionName: set_srv_agent_send
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - LIST_INIT
    - ist
    - LIST_APPEND
    - free
    - free_tcpcheck_vars
    - strdup
    - create_tcpcheck_var
    - strlen
    linkageType: ''
    returnType: int
    signature: int set_srv_agent_send(struct server *srv, const char *send)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2336,1
    - Dst: calloc
      Src: /src/haproxy/src/check.c:2341,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2343,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/check.c:2346,1
    - Dst: set_srv_agent_send
      Src: /src/haproxy/src/check.c:2350,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2351,1
    - Dst: deinit_srv_agent_check
      Src: /src/haproxy/src/check.c:2359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2329
    functionDepth: 10
    functionLinenumber: 2329
    functionLinenumberEnd: 2362
    functionName: srv_parse_agent_send
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - memprintf
    - calloc
    - deinit_srv_agent_check
    - LIST_INIT
    - set_srv_agent_send
    linkageType: ''
    returnType: int
    signature: "int srv_parse_agent_send(char **args, int *cur_arg, struct proxy *curpx,
      struct server *srv,\n\t\t\t\tchar **errmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deinit_srv_agent_check
      Src: /src/haproxy/src/check.c:2368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2370
      start: 2365
    functionDepth: 10
    functionLinenumber: 2365
    functionLinenumberEnd: 2370
    functionName: srv_parse_no_agent_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - deinit_srv_agent_check
    linkageType: ''
    returnType: int
    signature: "int srv_parse_no_agent_check(char **args, int *cur_arg, struct proxy
      *curpx, struct server *srv,\n\t\t\t\t    char **errmsg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2377,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:2378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2373
    functionDepth: 5
    functionLinenumber: 2373
    functionLinenumberEnd: 2384
    functionName: srv_parse_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - memprintf
    - proxy_type_str
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check(char **args, int *cur_arg, struct proxy *curpx,
      struct server *srv,\n\t\t\t   char **errmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2387
    functionDepth: 0
    functionLinenumber: 2387
    functionLinenumberEnd: 2392
    functionName: srv_parse_check_send_proxy
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check_send_proxy(char **args, int *cur_arg, struct proxy
      *curpx, struct server *srv,\n\t\t\t\t      char **errmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2395
    functionDepth: 0
    functionLinenumber: 2395
    functionLinenumberEnd: 2400
    functionName: srv_parse_check_via_socks4
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check_via_socks4(char **args, int *cur_arg, struct proxy
      *curpx, struct server *srv,\n\t\t\t\t      char **errmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deinit_srv_check
      Src: /src/haproxy/src/check.c:2406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2403
    functionDepth: 10
    functionLinenumber: 2403
    functionLinenumberEnd: 2408
    functionName: srv_parse_no_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - deinit_srv_check
    linkageType: ''
    returnType: int
    signature: "int srv_parse_no_check(char **args, int *cur_arg, struct proxy *curpx,
      struct server *srv,\n\t\t\t      char **errmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2411
    functionDepth: 0
    functionLinenumber: 2411
    functionLinenumberEnd: 2417
    functionName: srv_parse_no_check_reuse_pool
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int srv_parse_no_check_reuse_pool(char **args, int *cur_arg,\n                                         struct
      proxy *curpx, struct server *srv,\n                                         char
      **errmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2420
    functionDepth: 0
    functionLinenumber: 2420
    functionLinenumberEnd: 2425
    functionName: srv_parse_no_check_send_proxy
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int srv_parse_no_check_send_proxy(char **args, int *cur_arg, struct
      proxy *curpx, struct server *srv,\n\t\t\t\t\t char **errmsg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2435,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:2439,1
    - Dst: strdup
      Src: /src/haproxy/src/check.c:2440,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2428
    functionDepth: 5
    functionLinenumber: 2428
    functionLinenumberEnd: 2452
    functionName: srv_parse_check_pool_conn_name
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check_pool_conn_name(char **args, int *cur_arg,\n                                          struct
      proxy *px,\n                                          struct server *newsrv,
      char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2462,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/check.c:2465,1
    - Dst: ist
      Src: /src/haproxy/src/check.c:2465,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2456
    functionDepth: 5
    functionLinenumber: 2456
    functionLinenumberEnd: 2477
    functionName: srv_parse_check_proto
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - memprintf
    - get_mux_proto
    - ist
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check_proto(char **args, int *cur_arg,\n\t\t\t\t struct
      proxy *px, struct server *newsrv, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2480
    functionDepth: 0
    functionLinenumber: 2480
    functionLinenumberEnd: 2486
    functionName: srv_parse_check_reuse_pool
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check_reuse_pool(char **args, int *cur_arg,\n                                      struct
      proxy *curpx, struct server *srv,\n                                      char
      **errmsg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2496,1
    - Dst: atol
      Src: /src/haproxy/src/check.c:2500,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2502,1
    - Dst: deinit_srv_agent_check
      Src: /src/haproxy/src/check.c:2513,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2490
    functionDepth: 10
    functionLinenumber: 2490
    functionLinenumberEnd: 2516
    functionName: srv_parse_check_rise
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - deinit_srv_agent_check
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check_rise(char **args, int *cur_arg, struct proxy *curpx,
      struct server *srv,\n\t\t\t\tchar **errmsg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2525,1
    - Dst: atol
      Src: /src/haproxy/src/check.c:2529,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2531,1
    - Dst: deinit_srv_agent_check
      Src: /src/haproxy/src/check.c:2539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2519
    functionDepth: 10
    functionLinenumber: 2519
    functionLinenumberEnd: 2542
    functionName: srv_parse_check_fall
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - deinit_srv_agent_check
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check_fall(char **args, int *cur_arg, struct proxy *curpx,
      struct server *srv,\n\t\t\t\tchar **errmsg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2553,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/check.c:2557,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2559,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2564,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2569,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2574,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/check.c:2580,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2581,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2545
    functionDepth: 5
    functionLinenumber: 2545
    functionLinenumberEnd: 2592
    functionName: srv_parse_check_inter
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - warn_if_lower
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check_inter(char **args, int *cur_arg, struct proxy
      *curpx, struct server *srv,\n\t\t\t\t char **errmsg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2604,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/check.c:2608,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2610,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2615,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2620,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2625,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/check.c:2631,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2632,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2596
    functionDepth: 5
    functionLinenumber: 2596
    functionLinenumberEnd: 2643
    functionName: srv_parse_check_fastinter
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - warn_if_lower
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check_fastinter(char **args, int *cur_arg, struct proxy
      *curpx, struct server *srv,\n\t\t\t\t     char **errmsg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2655,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/check.c:2659,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2661,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2666,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2671,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2676,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/check.c:2682,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2683,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2647
    functionDepth: 5
    functionLinenumber: 2647
    functionLinenumberEnd: 2694
    functionName: srv_parse_check_downinter
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - warn_if_lower
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check_downinter(char **args, int *cur_arg, struct proxy
      *curpx, struct server *srv,\n\t\t\t\t     char **errmsg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2703,1
    - Dst: atol
      Src: /src/haproxy/src/check.c:2714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2697
    functionDepth: 5
    functionLinenumber: 2697
    functionLinenumberEnd: 2725
    functionName: srv_parse_check_port
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int srv_parse_check_port(char **args, int *cur_arg, struct proxy *curpx,
      struct server *srv,\n\t\t\t\tchar **errmsg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/check.c:2732,1
    - Dst: atoi
      Src: /src/haproxy/src/check.c:2734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2736
      start: 2728
    functionDepth: 7
    functionLinenumber: 2728
    functionLinenumberEnd: 2736
    functionName: check_parse_global_max_checks
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int check_parse_global_max_checks(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb64_lookup
      Src: /src/haproxy/src/quic_retransmit.c:26,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:27,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_retransmit.c:32,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:37,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:45,1
    - Dst: qc_stream_frm_mv_fwd
      Src: /src/haproxy/src/quic_retransmit.c:46,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - qc
    - f
    argTypes:
    - struct quic_conn*
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 50
    functionName: qc_stream_frm_is_acked
    functionSourceFile: /src/haproxy/src/quic_retransmit.c
    functionUses: 2
    functionsReached:
    - eb64_lookup
    - TRACE_DEVEL
    - BUG_ON
    - qc_stream_frm_mv_fwd
    linkageType: ''
    returnType: int
    signature: int qc_stream_frm_is_acked(struct quic_conn *qc, struct quic_frame
      *f)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_retransmit.c:61,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_retransmit.c:63,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:69,1
    - Dst: qc_stream_frm_is_acked
      Src: /src/haproxy/src/quic_retransmit.c:77,1
    - Dst: qc_frm_dup
      Src: /src/haproxy/src/quic_retransmit.c:92,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retransmit.c:94,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:98,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:100,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:105,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_retransmit.c:108,1
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/quic_retransmit.c:111,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_retransmit.c:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - qc
    - pkt_frm_list
    - out_frm_list
    argTypes:
    - struct quic_conn*
    - struct list*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 114
    functionName: qc_dup_pkt_frms
    functionSourceFile: /src/haproxy/src/quic_retransmit.c
    functionUses: 0
    functionsReached:
    - LIST_SPLICE
    - TRACE_ERROR
    - TRACE_LEAVE
    - qc_frm_dup
    - TRACE_DEVEL
    - TRACE_ENTER
    - LIST_APPEND
    - LIST_HEAD_INIT
    - qc_stream_frm_is_acked
    linkageType: ''
    returnType: void
    signature: "void qc_dup_pkt_frms(struct quic_conn *qc,\n                            struct
      list *pkt_frm_list, struct list *out_frm_list)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:69,1
    - Dst: qc_stream_frm_is_acked
      Src: /src/haproxy/src/quic_retransmit.c:77,1
    - Dst: qc_frm_dup
      Src: /src/haproxy/src/quic_retransmit.c:92,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retransmit.c:94,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:98,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:100,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:105,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_retransmit.c:108,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 109
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_retransmit.c
    functionUses: 86
    functionsReached:
    - TRACE_ERROR
    - qc_frm_dup
    - TRACE_DEVEL
    - LIST_APPEND
    - qc_stream_frm_is_acked
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(frm, frmbak, pkt_frm_list, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_retransmit.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - struct quic_tx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: qc_pkt_with_only_acked_frms
    functionSourceFile: /src/haproxy/src/quic_retransmit.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int qc_pkt_with_only_acked_frms(struct quic_tx_packet *pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_retransmit.c:140,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_retransmit.c:142,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_retransmit.c:145,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_retransmit.c:150,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_retransmit.c:151,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_retransmit.c:153,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_retransmit.c:155,1
    - Dst: qc_pkt_with_only_acked_frms
      Src: /src/haproxy/src/quic_retransmit.c:156,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_retransmit.c:157,1
    - Dst: qc_pkt_with_only_acked_frms
      Src: /src/haproxy/src/quic_retransmit.c:157,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_retransmit.c:169,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_retransmit.c:169,1
    - Dst: quic_may_send_bytes
      Src: /src/haproxy/src/quic_retransmit.c:170,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retransmit.c:172,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retransmit.c:176,1
    - Dst: qc_dup_pkt_frms
      Src: /src/haproxy/src/quic_retransmit.c:177,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_retransmit.c:183,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - qc
    - pktns
    - frms1
    - frms2
    argTypes:
    - struct quic_conn*
    - struct quic_pktns*
    - struct list*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 184
    functionName: qc_prep_fast_retrans
    functionSourceFile: /src/haproxy/src/quic_retransmit.c
    functionUses: 1
    functionsReached:
    - TRACE_PROTO
    - eb64_next
    - eb64_entry
    - BUG_ON
    - TRACE_LEAVE
    - TRACE_ENTER
    - eb64_first
    - quic_peer_validated_addr
    - qc_is_back
    - qc_pkt_with_only_acked_frms
    - TRACE_PRINTF
    - LIST_ISEMPTY
    - quic_may_send_bytes
    - qc_dup_pkt_frms
    linkageType: ''
    returnType: void
    signature: "void qc_prep_fast_retrans(struct quic_conn *qc,\n                          struct
      quic_pktns *pktns,\n                          struct list *frms1, struct list
      *frms2)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_retransmit.c:194,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_retransmit.c:195,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_retransmit.c:205,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_retransmit.c:209,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_retransmit.c:214,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_retransmit.c:215,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_retransmit.c:217,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_retransmit.c:218,1
    - Dst: qc_pkt_with_only_acked_frms
      Src: /src/haproxy/src/quic_retransmit.c:219,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_retransmit.c:224,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_retransmit.c:233,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_retransmit.c:233,1
    - Dst: quic_may_send_bytes
      Src: /src/haproxy/src/quic_retransmit.c:237,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retransmit.c:241,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retransmit.c:243,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retransmit.c:245,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retransmit.c:255,1
    - Dst: qc_dup_pkt_frms
      Src: /src/haproxy/src/quic_retransmit.c:256,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retransmit.c:262,1
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/quic_retransmit.c:268,1
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/quic_retransmit.c:269,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_retransmit.c:271,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - qc
    - ifrms
    - hfrms
    argTypes:
    - struct quic_conn*
    - struct list*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 272
    functionName: qc_prep_hdshk_fast_retrans
    functionSourceFile: /src/haproxy/src/quic_retransmit.c
    functionUses: 1
    functionsReached:
    - TRACE_PROTO
    - eb64_entry
    - eb64_next
    - LIST_SPLICE
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - eb64_first
    - quic_peer_validated_addr
    - qc_is_back
    - qc_pkt_with_only_acked_frms
    - TRACE_PRINTF
    - LIST_ISEMPTY
    - quic_may_send_bytes
    - LIST_HEAD_INIT
    - qc_dup_pkt_frms
    linkageType: ''
    returnType: void
    signature: "void qc_prep_hdshk_fast_retrans(struct quic_conn *qc,\n                                struct
      list *ifrms, struct list *hfrms)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: create_aligned_pool
      Src: /src/haproxy/src/dynbuf.c:37,1
    - Dst: create_aligned_pool
      Src: /src/haproxy/src/dynbuf.c:42,1
    - Dst: create_aligned_pool
      Src: /src/haproxy/src/dynbuf.c:48,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dynbuf.c:54,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dynbuf.c:55,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dynbuf.c:56,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dynbuf.c:57,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dynbuf.c:58,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dynbuf.c:62,1
    - Dst: MAX
      Src: /src/haproxy/src/dynbuf.c:74,1
    - Dst: pool_alloc_nocache
      Src: /src/haproxy/src/dynbuf.c:79,1
    - Dst: pool_free
      Src: /src/haproxy/src/dynbuf.c:82,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 85
    functionName: init_buffer
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 1
    functionsReached:
    - create_aligned_pool
    - pool_alloc_nocache
    - BUG_ON
    - MAX
    - LIST_INIT
    - pool_free
    linkageType: ''
    returnType: int
    signature: int init_buffer()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:92,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:93,1
    - Dst: b_orig
      Src: /src/haproxy/src/dynbuf.c:94,1
    - Dst: b_size
      Src: /src/haproxy/src/dynbuf.c:94,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dynbuf.c:94,1
    - Dst: b_tail_ofs
      Src: /src/haproxy/src/dynbuf.c:94,1
    - Dst: b_data
      Src: /src/haproxy/src/dynbuf.c:94,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:96,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:97,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:102,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:104,1
    - Dst: b_orig
      Src: /src/haproxy/src/dynbuf.c:104,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:106,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:112,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:114,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:116,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:118,1
    - Dst: isprint
      Src: /src/haproxy/src/dynbuf.c:118,1
    - Dst: b_orig
      Src: /src/haproxy/src/dynbuf.c:118,1
    - Dst: b_orig
      Src: /src/haproxy/src/dynbuf.c:118,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:120,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:124,1
    - Dst: fflush
      Src: /src/haproxy/src/dynbuf.c:125,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - o
    - b
    - from
    - to
    argTypes:
    - FILE*
    - struct buffer*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 126
    functionName: buffer_dump
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - b_orig
    - isprint
    - b_tail_ofs
    - b_head_ofs
    - b_data
    - b_size
    - fprintf
    - fflush
    linkageType: ''
    returnType: void
    signature: void buffer_dump(FILE *o, struct buffer *b, int from, int to)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/dynbuf.c:143,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dynbuf.c:143,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/dynbuf.c:145,1
    - Dst: struct buffer_wait*::wakeup_cb
      Src: /src/haproxy/src/dynbuf.c:149,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dynbuf.c:152,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dynbuf.c:155,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - from
    - count
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: __offer_buffers
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - LIST_ISEMPTY
    - BUG_ON_HOT
    - struct buffer_wait*::wakeup_cb
    linkageType: ''
    returnType: void
    signature: void __offer_buffers(void *from, unsigned int count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/dynbuf.c:167,1
    - Dst: atoi
      Src: /src/haproxy/src/dynbuf.c:170,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 161
    functionDepth: 7
    functionLinenumber: 161
    functionLinenumberEnd: 183
    functionName: cfg_parse_tune_buffers_limit
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_tune_buffers_limit(char **args, int section_type, struct
      proxy *curpx,\n                                        const struct proxy *defpx,
      const char *file, int line,\n                                        char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/dynbuf.c:192,1
    - Dst: atoi
      Src: /src/haproxy/src/dynbuf.c:195,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 203
    functionName: cfg_parse_tune_buffers_reserve
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_tune_buffers_reserve(char **args, int section_type,
      struct proxy *curpx,\n                                          const struct
      proxy *defpx, const char *file, int line,\n                                          char
      **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/dynbuf.c:213,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:217,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/dynbuf.c:221,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:223,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 206
    functionDepth: 7
    functionLinenumber: 206
    functionLinenumberEnd: 237
    functionName: cfg_parse_tune_bufsize_large
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - parse_size_err
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_tune_bufsize_large(char **args, int section_type,\n
      \                                       struct proxy *curpx, const struct proxy
      *defpx,\n                                        const char *file, int line,
      char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/dynbuf.c:247,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:251,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/dynbuf.c:255,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:257,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:262,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 7
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: cfg_parse_tune_bufsize_small
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - parse_size_err
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_tune_bufsize_small(char **args, int section_type,\n
      \                                       struct proxy *curpx, const struct proxy
      *defpx,\n                                        const char *file, int line,
      char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/dynbuf.c:279,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/dynbuf.c:285,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/dynbuf.c:286,1
    - Dst: pool_alloc_flag
      Src: /src/haproxy/src/dynbuf.c:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 293
    functionName: alloc_emergency_buffers_per_thread
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - calloc
    - _HA_ATOMIC_INC
    - pool_alloc_flag
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int alloc_emergency_buffers_per_thread(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/dynbuf.c:302,1
    - Dst: ha_free
      Src: /src/haproxy/src/dynbuf.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 306
    functionName: free_emergency_buffers_per_thread
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - ha_free
    - pool_free
    linkageType: ''
    returnType: void
    signature: void free_emergency_buffers_per_thread(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - largest_pn
    - truncated_pn
    - pn_nbits
    argTypes:
    - uint64_t
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 67
    functionName: decode_packet_number
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t decode_packet_number(uint64_t largest_pn,\n                                     uint32_t
      truncated_pn, unsigned int pn_nbits)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:86,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:92,1
    - Dst: quic_tls_hp_decrypt
      Src: /src/haproxy/src/quic_rx.c:98,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:99,1
    - Dst: decode_packet_number
      Src: /src/haproxy/src/quic_rx.c:110,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 6
    argNames:
    - qc
    - pkt
    - tls_ctx
    - largest_pn
    - pn
    - byte0
    argTypes:
    - struct quic_conn*
    - struct quic_rx_packet*
    - struct quic_tls_ctx*
    - int64_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 119
    functionName: qc_do_rm_hp
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_tls_hp_decrypt
    - TRACE_ENTER
    - decode_packet_number
    linkageType: ''
    returnType: int
    signature: "int qc_do_rm_hp(struct quic_conn *qc,\n                       struct
      quic_rx_packet *pkt, struct quic_tls_ctx *tls_ctx,\n                       int64_t
      largest_pn, unsigned char *pn, unsigned char *byte0)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qc_select_tls_ctx
      Src: /src/haproxy/src/quic_rx.c:132,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:138,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:155,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:165,1
    - Dst: quic_aead_iv_build
      Src: /src/haproxy/src/quic_rx.c:174,1
    - Dst: quic_tls_decrypt
      Src: /src/haproxy/src/quic_rx.c:176,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:180,1
    - Dst: quic_tls_rotate_keys
      Src: /src/haproxy/src/quic_rx.c:186,1
    - Dst: quic_tls_key_update
      Src: /src/haproxy/src/quic_rx.c:192,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:193,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:202,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - qc
    - qel
    - pkt
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level*
    - struct quic_rx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 204
    functionName: qc_pkt_decrypt
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - quic_tls_key_update
    - TRACE_ERROR
    - TRACE_LEAVE
    - qc_select_tls_ctx
    - TRACE_ENTER
    - quic_tls_decrypt
    - quic_aead_iv_build
    - quic_tls_rotate_keys
    linkageType: ''
    returnType: int
    signature: "int qc_pkt_decrypt(struct quic_conn *qc, struct quic_enc_level *qel,\n
      \                         struct quic_rx_packet *pkt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:215,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:216,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/quic_rx.c:233,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:235,1
    - Dst: qc_release_frm
      Src: /src/haproxy/src/quic_rx.c:236,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:240,1
    - Dst: qc_stream_desc_ack
      Src: /src/haproxy/src/quic_rx.c:242,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:246,1
    - Dst: qc_stream_desc_done
      Src: /src/haproxy/src/quic_rx.c:249,1
    - Dst: qc_stream_desc_free
      Src: /src/haproxy/src/quic_rx.c:251,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:254,1
    - Dst: qc_check_close_on_released_mux
      Src: /src/haproxy/src/quic_rx.c:255,1
    - Dst: qc_release_frm
      Src: /src/haproxy/src/quic_rx.c:258,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:261,1
    - Dst: qc_release_frm
      Src: /src/haproxy/src/quic_rx.c:263,1
    - Dst: qc_release_frm
      Src: /src/haproxy/src/quic_rx.c:273,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 2
    argNames:
    - qc
    - frm
    argTypes:
    - struct quic_conn*
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 280
    functionName: qc_handle_newly_acked_frm
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - eb64_entry
    - TRACE_LEAVE
    - qc_stream_desc_ack
    - qc_release_frm
    - eb64_lookup
    - TRACE_ENTER
    - TRACE_DEVEL
    - qc_stream_desc_done
    - qc_stream_desc_free
    - qc_check_close_on_released_mux
    linkageType: ''
    returnType: int
    signature: int qc_handle_newly_acked_frm(struct quic_conn *qc, struct quic_frame
      *frm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:295,1
    - Dst: eb64_lookup_ge
      Src: /src/haproxy/src/quic_rx.c:297,1
    - Dst: eb64_lookup_le
      Src: /src/haproxy/src/quic_rx.c:301,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:306,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_rx.c:307,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_rx.c:308,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_rx.c:309,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 6
    argNames:
    - qc
    - pkts
    - newly_acked_pkts
    - largest_node
    - largest
    - smallest
    argTypes:
    - struct quic_conn*
    - struct eb_root*
    - struct list*
    - struct eb64_node*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 314
    functionName: qc_newly_acked_pkts
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - eb64_entry
    - eb64_next
    - TRACE_LEAVE
    - eb64_lookup_ge
    - eb64_delete
    - TRACE_ENTER
    - LIST_APPEND
    - eb64_lookup_le
    linkageType: ''
    returnType: void
    signature: "void qc_newly_acked_pkts(struct quic_conn *qc, struct eb_root *pkts,\n
      \                               struct list *newly_acked_pkts,\n                                struct
      eb64_node *largest_node,\n                                uint64_t largest,
      uint64_t smallest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:326,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:332,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_rx.c:333,1
    - Dst: qc_handle_newly_acked_frm
      Src: /src/haproxy/src/quic_rx.c:334,1
    - Dst: quic_tx_packet_dgram_detach
      Src: /src/haproxy/src/quic_rx.c:340,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_rx.c:341,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - qc
    - pkt_flags
    - newly_acked_pkts
    argTypes:
    - struct quic_conn*
    - unsigned int*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 348
    functionName: qc_handle_newly_acked_pkts
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - eb64_delete
    - list_for_each_entry_safe
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_tx_packet_dgram_detach
    - qc_handle_newly_acked_frm
    linkageType: ''
    returnType: int
    signature: "int qc_handle_newly_acked_pkts(struct quic_conn *qc,\n                                      unsigned
      int *pkt_flags, struct list *newly_acked_pkts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:332,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_rx.c:333,1
    - Dst: qc_handle_newly_acked_frm
      Src: /src/haproxy/src/quic_rx.c:334,1
    - Dst: quic_tx_packet_dgram_detach
      Src: /src/haproxy/src/quic_rx.c:340,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_rx.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 328
    functionDepth: 6
    functionLinenumber: 328
    functionLinenumberEnd: 342
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 89
    functionsReached:
    - eb64_delete
    - list_for_each_entry_safe
    - TRACE_DEVEL
    - qc_handle_newly_acked_frm
    - quic_tx_packet_dgram_detach
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(pkt, tmp, newly_acked_pkts, list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:366,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:370,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:371,1
    - Dst: qc_frm_unref
      Src: /src/haproxy/src/quic_rx.c:375,1
    - Dst: qc_stream_frm_is_acked
      Src: /src/haproxy/src/quic_rx.c:379,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:380,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:392,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:395,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:396,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:401,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:402,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:404,1
    - Dst: QUIC_TUNE_FB_GET
      Src: /src/haproxy/src/quic_rx.c:407,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:410,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:411,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:411,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_rx.c:412,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_rx.c:416,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:417,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:422,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - qc
    - pkt
    - pktns_frm_list
    argTypes:
    - struct quic_conn*
    - struct quic_tx_packet*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 424
    functionName: qc_handle_frms_of_lost_pkt
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 2
    functionsReached:
    - qc_frm_unref
    - quic_set_connection_close
    - QUIC_TUNE_FB_GET
    - TRACE_LEAVE
    - TRACE_ERROR
    - LIST_DEL_INIT
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_tx_packet_refdec
    - qc_frm_free
    - qc_notify_err
    - LIST_APPEND
    - quic_err_transport
    - qc_stream_frm_is_acked
    linkageType: ''
    returnType: int
    signature: "int qc_handle_frms_of_lost_pkt(struct quic_conn *qc,\n                               struct
      quic_tx_packet *pkt,\n                               struct list *pktns_frm_list)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:370,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:371,1
    - Dst: qc_frm_unref
      Src: /src/haproxy/src/quic_rx.c:375,1
    - Dst: qc_stream_frm_is_acked
      Src: /src/haproxy/src/quic_rx.c:379,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:380,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:392,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:395,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:396,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:401,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:402,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:404,1
    - Dst: QUIC_TUNE_FB_GET
      Src: /src/haproxy/src/quic_rx.c:407,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:410,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:411,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:411,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_rx.c:412,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_rx.c:416,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:417,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 419
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 89
    functionsReached:
    - qc_frm_unref
    - quic_set_connection_close
    - QUIC_TUNE_FB_GET
    - TRACE_ERROR
    - LIST_DEL_INIT
    - TRACE_DEVEL
    - qc_frm_free
    - quic_tx_packet_refdec
    - qc_notify_err
    - LIST_APPEND
    - quic_err_transport
    - qc_stream_frm_is_acked
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(frm, frmbak, pkt_frm_list, list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct quic_cc_path*::cc::algo::get_drs
      Src: /src/haproxy/src/quic_rx.c:439,1
    - Dst: task_mono_time
      Src: /src/haproxy/src/quic_rx.c:441,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:443,1
    - Dst: qc_treat_ack_of_ack
      Src: /src/haproxy/src/quic_rx.c:455,1
    - Dst: quic_cc_event
      Src: /src/haproxy/src/quic_rx.c:462,1
    - Dst: quic_cc_drs_update_rate_sample
      Src: /src/haproxy/src/quic_rx.c:465,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:466,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:467,1
    - Dst: quic_cc_drs_on_ack_recv
      Src: /src/haproxy/src/quic_rx.c:472,1
    - Dst: struct quic_cc_path*::cc::algo::on_ack_rcvd
      Src: /src/haproxy/src/quic_rx.c:475,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - qc
    - newly_acked_pkts
    - bytes_lost
    - rtt
    argTypes:
    - struct quic_conn*
    - struct list*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 480
    functionName: qc_notify_cc_of_newly_acked_pkts
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - quic_cc_drs_update_rate_sample
    - TRACE_LEAVE
    - struct quic_cc_path*::cc::algo::on_ack_rcvd
    - LIST_DEL_INIT
    - TRACE_ENTER
    - struct quic_cc_path*::cc::algo::get_drs
    - quic_tx_packet_refdec
    - quic_cc_event
    - task_mono_time
    - quic_cc_drs_on_ack_recv
    - qc_treat_ack_of_ack
    linkageType: ''
    returnType: void
    signature: "void qc_notify_cc_of_newly_acked_pkts(struct quic_conn *qc,\n                                             struct
      list *newly_acked_pkts,\n                                             unsigned
      int bytes_lost,\n                                             unsigned int rtt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qc_treat_ack_of_ack
      Src: /src/haproxy/src/quic_rx.c:455,1
    - Dst: quic_cc_event
      Src: /src/haproxy/src/quic_rx.c:462,1
    - Dst: quic_cc_drs_update_rate_sample
      Src: /src/haproxy/src/quic_rx.c:465,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:466,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 468
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 89
    functionsReached:
    - quic_cc_drs_update_rate_sample
    - LIST_DEL_INIT
    - quic_tx_packet_refdec
    - quic_cc_event
    - qc_treat_ack_of_ack
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(pkt, tmp, newly_acked_pkts, list)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_rx.c:499,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_rx.c:500,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:504,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:508,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:514,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/quic_rx.c:526,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:528,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:532,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:538,1
    - Dst: qc_newly_acked_pkts
      Src: /src/haproxy/src/quic_rx.c:543,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_rx.c:548,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:549,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:554,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_rx.c:560,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:561,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:566,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:576,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_rx.c:580,1
    - Dst: qc_handle_newly_acked_pkts
      Src: /src/haproxy/src/quic_rx.c:583,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_rx.c:587,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_rx.c:591,1
    - Dst: qc_packet_loss_lookup
      Src: /src/haproxy/src/quic_rx.c:592,1
    - Dst: qc_release_lost_pkts
      Src: /src/haproxy/src/quic_rx.c:593,1
    - Dst: qc_notify_cc_of_newly_acked_pkts
      Src: /src/haproxy/src/quic_rx.c:597,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_rx.c:599,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_rx.c:601,1
    - Dst: qc_notify_send
      Src: /src/haproxy/src/quic_rx.c:602,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:607,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_rx.c:612,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:613,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_rx.c:614,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 90
    argCount: 6
    argNames:
    - qc
    - frm
    - qel
    - rtt_sample
    - pos
    - end
    argTypes:
    - struct quic_conn*
    - struct quic_frame*
    - struct quic_enc_level*
    - unsigned int*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 488
    functionDepth: 7
    functionLinenumber: 488
    functionLinenumberEnd: 617
    functionName: qc_parse_ack_frm
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - qc_newly_acked_pkts
    - quic_dec_int
    - list_for_each_entry_safe
    - TRACE_ENTER
    - tick_remain
    - eb_is_empty
    - eb64_lookup
    - TRACE_DEVEL
    - qc_packet_loss_lookup
    - quic_peer_validated_addr
    - qc_release_lost_pkts
    - TRACE_PROTO
    - eb64_entry
    - TRACE_LEAVE
    - TRACE_ERROR
    - eb64_insert
    - LIST_DEL_INIT
    - qc_set_timer
    - qc_notify_send
    - LIST_HEAD_INIT
    - qc_handle_newly_acked_pkts
    - qc_notify_cc_of_newly_acked_pkts
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: "int qc_parse_ack_frm(struct quic_conn *qc,\n                            struct
      quic_frame *frm,\n                            struct quic_enc_level *qel,\n
      \                           unsigned int *rtt_sample,\n                            const
      unsigned char **pos, const unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:639,1
    - Dst: qcc_recv
      Src: /src/haproxy/src/quic_rx.c:641,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - pkt
    - strm_frm
    - qc
    - fin
    argTypes:
    - struct quic_rx_packet*
    - struct qf_stream*
    - struct quic_conn*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 625
    functionDepth: 10
    functionLinenumber: 625
    functionLinenumberEnd: 647
    functionName: qc_handle_strm_frm
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ENTER
    - qcc_recv
    linkageType: ''
    returnType: int
    signature: "int qc_handle_strm_frm(struct quic_rx_packet *pkt,\n                              struct
      qf_stream *strm_frm,\n                              struct quic_conn *qc, char
      fin)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:673,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_rx.c:675,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:680,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:686,1
    - Dst: quic_get_ncbuf
      Src: /src/haproxy/src/quic_rx.c:695,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_rx.c:695,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:696,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/quic_rx.c:711,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:712,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:713,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:713,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/quic_rx.c:717,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:719,1
    - Dst: ncbmb_data
      Src: /src/haproxy/src/quic_rx.c:722,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/quic_rx.c:723,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_rx.c:724,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:728,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:732,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 5
    argNames:
    - qc
    - crypto_frm
    - pkt
    - qel
    - fast_retrans
    argTypes:
    - struct quic_conn*
    - struct qf_crypto*
    - struct quic_rx_packet*
    - struct quic_enc_level*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 734
    functionName: qc_handle_crypto_frm
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ncbmb_size
    - TRACE_PROTO
    - quic_get_ncbuf
    - quic_set_connection_close
    - TRACE_ERROR
    - BUG_ON
    - TRACE_LEAVE
    - ncbmb_data
    - tasklet_wakeup
    - TRACE_ENTER
    - TRACE_DEVEL
    - ncbmb_add
    - HA_ATOMIC_OR
    - ncbmb_is_null
    - quic_err_transport
    linkageType: ''
    returnType: int
    signature: "int qc_handle_crypto_frm(struct quic_conn *qc,\n                                struct
      qf_crypto *crypto_frm,\n                                struct quic_rx_packet
      *pkt,\n                                struct quic_enc_level *qel,\n                                int
      *fast_retrans)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:750,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:758,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/quic_rx.c:767,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:769,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:773,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_rx.c:777,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:778,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:786,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:789,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:789,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_rx.c:790,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - qc
    - frm
    - dcid
    - to_retire
    argTypes:
    - struct quic_conn*
    - struct quic_frame*
    - struct quic_cid*
    - struct quic_connection_id**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 792
    functionName: qc_handle_retire_connection_id_frm
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - memcmp
    - TRACE_PROTO
    - eb64_entry
    - TRACE_LEAVE
    - quic_set_connection_close
    - eb64_lookup
    - TRACE_ENTER
    - qc_notify_err
    - quic_err_transport
    linkageType: ''
    returnType: int
    signature: "int qc_handle_retire_connection_id_frm(struct quic_conn *qc,\n                                              struct
      quic_frame *frm,\n                                              struct quic_cid
      *dcid,\n                                              struct quic_connection_id
      **to_retire)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ack_frm
    - conn
    argTypes:
    - struct qf_ack*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 802
    functionName: quic_ack_delay_ms
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int quic_ack_delay_ms(struct qf_ack *ack_frm,\n                                             struct
      quic_conn *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istptr
      Src: /src/haproxy/src/quic_rx.c:816,1
    - Dst: istlen
      Src: /src/haproxy/src/quic_rx.c:817,1
    - Dst: realloc
      Src: /src/haproxy/src/quic_rx.c:818,1
    - Dst: memset
      Src: /src/haproxy/src/quic_rx.c:822,1
    - Dst: istptr
      Src: /src/haproxy/src/quic_rx.c:822,1
    - Dst: istlen
      Src: /src/haproxy/src/quic_rx.c:822,1
    - Dst: istfree
      Src: /src/haproxy/src/quic_rx.c:823,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - s
    - tok
    - len
    argTypes:
    - struct server*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 831
    functionName: qc_try_store_new_token
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - istfree
    - realloc
    - istptr
    - istlen
    linkageType: ''
    returnType: void
    signature: "void qc_try_store_new_token(struct server *s,\n                                          const
      unsigned char *tok,\n                                          size_t len)"
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:844,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:859,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:859,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_rx.c:864,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:865,1
    - Dst: qc_parse_frm_type
      Src: /src/haproxy/src/quic_rx.c:869,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:875,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:875,1
    - Dst: qc_parse_frm_pkt
      Src: /src/haproxy/src/quic_rx.c:886,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:887,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:888,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:888,1
    - Dst: qc_parse_frm_payload
      Src: /src/haproxy/src/quic_rx.c:894,1
    - Dst: qc_parse_ack_frm
      Src: /src/haproxy/src/quic_rx.c:910,1
    - Dst: quic_application_pktns
      Src: /src/haproxy/src/quic_rx.c:918,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/quic_rx.c:920,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_rx.c:920,1
    - Dst: quic_ack_delay_ms
      Src: /src/haproxy/src/quic_rx.c:920,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/quic_rx.c:921,1
    - Dst: quic_ack_delay_ms
      Src: /src/haproxy/src/quic_rx.c:921,1
    - Dst: quic_loss_srtt_update
      Src: /src/haproxy/src/quic_rx.c:922,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_rx.c:927,1
    - Dst: qcc_recv_reset_stream
      Src: /src/haproxy/src/quic_rx.c:929,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_rx.c:935,1
    - Dst: qcc_recv_stop_sending
      Src: /src/haproxy/src/quic_rx.c:936,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:938,1
    - Dst: qc_handle_crypto_frm
      Src: /src/haproxy/src/quic_rx.c:945,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:949,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:950,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:958,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:958,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:965,1
    - Dst: qc_try_store_new_token
      Src: /src/haproxy/src/quic_rx.c:970,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_rx.c:970,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/quic_rx.c:978,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_rx.c:982,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/quic_rx.c:984,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:987,1
    - Dst: struct quic_conn*::strm_reject
      Src: /src/haproxy/src/quic_rx.c:989,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:990,1
    - Dst: qc_handle_strm_frm
      Src: /src/haproxy/src/quic_rx.c:1004,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1005,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_rx.c:1012,1
    - Dst: qcc_recv_max_data
      Src: /src/haproxy/src/quic_rx.c:1014,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_rx.c:1018,1
    - Dst: qcc_recv_max_stream_data
      Src: /src/haproxy/src/quic_rx.c:1020,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1022,1
    - Dst: qc_is_conn_ready
      Src: /src/haproxy/src/quic_rx.c:1029,1
    - Dst: qcc_recv_max_streams
      Src: /src/haproxy/src/quic_rx.c:1042,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1043,1
    - Dst: qc_handle_retire_connection_id_frm
      Src: /src/haproxy/src/quic_rx.c:1068,1
    - Dst: quic_cid_delete
      Src: /src/haproxy/src/quic_rx.c:1074,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_rx.c:1075,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:1076,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1077,1
    - Dst: quic_cid_alloc
      Src: /src/haproxy/src/quic_rx.c:1079,1
    - Dst: qc_cid_side
      Src: /src/haproxy/src/quic_rx.c:1079,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1081,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:1082,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:1082,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_rx.c:1083,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:1088,1
    - Dst: quic_cid_generate_from_hash
      Src: /src/haproxy/src/quic_rx.c:1089,1
    - Dst: quic_cid_generate_random
      Src: /src/haproxy/src/quic_rx.c:1090,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1093,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:1094,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:1094,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:1095,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_rx.c:1096,1
    - Dst: quic_cid_insert
      Src: /src/haproxy/src/quic_rx.c:1100,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1109,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:1110,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:1110,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:1111,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_rx.c:1112,1
    - Dst: quic_cid_register_seq_num
      Src: /src/haproxy/src/quic_rx.c:1116,1
    - Dst: qc_build_new_connection_id_frm
      Src: /src/haproxy/src/quic_rx.c:1118,1
    - Dst: ssl_sock_handle_hs_error
      Src: /src/haproxy/src/quic_rx.c:1128,1
    - Dst: objt_server
      Src: /src/haproxy/src/quic_rx.c:1129,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/quic_rx.c:1131,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/quic_rx.c:1132,1
    - Dst: wake
      Src: /src/haproxy/src/quic_rx.c:1132,1
    - Dst: quic_conn_closed_err_count_inc
      Src: /src/haproxy/src/quic_rx.c:1138,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_rx.c:1140,1
    - Dst: qc_detach_th_ctx_list
      Src: /src/haproxy/src/quic_rx.c:1151,1
    - Dst: qc_idle_timer_do_rearm
      Src: /src/haproxy/src/quic_rx.c:1152,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_rx.c:1153,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:1157,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1158,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:1167,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:1167,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_rx.c:1175,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:1180,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1196,1
    - Dst: qc_prep_hdshk_fast_retrans
      Src: /src/haproxy/src/quic_rx.c:1197,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:1205,1
    - Dst: quic_tls_pktns_is_dcd
      Src: /src/haproxy/src/quic_rx.c:1207,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1209,1
    - Dst: quic_pktns_discard
      Src: /src/haproxy/src/quic_rx.c:1210,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_rx.c:1211,1
    - Dst: qc_el_rx_pkts_del
      Src: /src/haproxy/src/quic_rx.c:1212,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_rx.c:1213,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1220,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:1225,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:1227,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 261
    argCount: 3
    argNames:
    - qc
    - pkt
    - qel
    argTypes:
    - struct quic_conn*
    - struct quic_rx_packet*
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 837
    functionDepth: 11
    functionLinenumber: 837
    functionLinenumberEnd: 1229
    functionName: qc_parse_pkt_frms
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - qc_cid_side
    - quic_set_connection_close
    - qc_handle_crypto_frm
    - eb64_delete
    - quic_cid_alloc
    - TRACE_ENTER
    - TRACE_DATA
    - qc_is_back
    - qc_handle_retire_connection_id_frm
    - qc_frm_alloc
    - objt_server
    - qc_release_pktns_frms
    - quic_conn_closed_err_count_inc
    - quic_cid_insert
    - qc_parse_frm_type
    - qcc_recv_max_data
    - qc_parse_frm_pkt
    - quic_ack_delay_ms
    - qc_prep_hdshk_fast_retrans
    - quic_loss_srtt_update
    - TRACE_DEVEL
    - qc_detach_th_ctx_list
    - qc_notify_err
    - quic_pktns_discard
    - quic_err_transport
    - qc_handle_strm_frm
    - struct quic_conn*::strm_reject
    - pool_free
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_application_pktns
    - qc_parse_ack_frm
    - qcc_recv_stop_sending
    - quic_cid_delete
    - MS_TO_TICKS
    - CALL_MUX_NO_RET
    - quic_cid_generate_from_hash
    - qc_frm_free
    - qc_set_timer
    - qc_try_store_new_token
    - qcc_recv_reset_stream
    - QUIC_MIN
    - __objt_server
    - TRACE_STATE
    - qcc_recv_max_stream_data
    - qc_parse_frm_payload
    - qc_is_conn_ready
    - quic_stream_is_uni
    - qc_build_new_connection_id_frm
    - wake
    - qc_idle_timer_do_rearm
    - ssl_sock_handle_hs_error
    - qcc_recv_max_streams
    - conn_create_mux
    - ABORT_NOW
    - qc_el_rx_pkts_del
    - quic_cid_register_seq_num
    - quic_cid_generate_random
    - quic_tls_pktns_is_dcd
    linkageType: ''
    returnType: int
    signature: "int qc_parse_pkt_frms(struct quic_conn *qc, struct quic_rx_packet
      *pkt,\n                             struct quic_enc_level *qel)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:1241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - qc
    - pkt
    - qel
    argTypes:
    - struct quic_conn*
    - struct quic_rx_packet*
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1253
    functionName: qc_handle_spin_bit
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - qc_is_back
    linkageType: ''
    returnType: void
    signature: "void qc_handle_spin_bit(struct quic_conn *qc, struct quic_rx_packet
      *pkt,\n                                      struct quic_enc_level *qel)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:1262,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:1264,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1265,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_rx.c:1270,1
    - Dst: qc_select_tls_ctx
      Src: /src/haproxy/src/quic_rx.c:1273,1
    - Dst: qc_do_rm_hp
      Src: /src/haproxy/src/quic_rx.c:1274,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1276,1
    - Dst: qc_handle_spin_bit
      Src: /src/haproxy/src/quic_rx.c:1279,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_rx.c:1284,1
    - Dst: quic_rx_packet_refinc
      Src: /src/haproxy/src/quic_rx.c:1285,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1286,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:1288,1
    - Dst: quic_rx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:1289,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - qc
    - el
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1258
    functionDepth: 2
    functionLinenumber: 1258
    functionLinenumberEnd: 1294
    functionName: qc_rm_hp_pkts
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - qc_do_rm_hp
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - qc_handle_spin_bit
    - eb64_insert
    - quic_rx_packet_refinc
    - list_for_each_entry_safe
    - qc_select_tls_ctx
    - TRACE_ENTER
    - LIST_DEL_INIT
    - qc_is_back
    - quic_rx_packet_refdec
    linkageType: ''
    returnType: void
    signature: void qc_rm_hp_pkts(struct quic_conn *qc, struct quic_enc_level *el)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:1305,1
    - Dst: quic_tls_has_rx_sec
      Src: /src/haproxy/src/quic_rx.c:1310,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1311,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1316,1
    - Dst: qc_wait_for_conn
      Src: /src/haproxy/src/quic_rx.c:1321,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1322,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1328,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - qc
    - qel
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1330
    functionName: qc_qel_may_rm_hp
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ENTER
    - qc_wait_for_conn
    - quic_tls_has_rx_sec
    linkageType: ''
    returnType: int
    signature: int qc_qel_may_rm_hp(struct quic_conn *qc, struct quic_enc_level *qel)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:1343,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_rx.c:1345,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_rx.c:1347,1
    - Dst: qc_qel_may_rm_hp
      Src: /src/haproxy/src/quic_rx.c:1347,1
    - Dst: qc_rm_hp_pkts
      Src: /src/haproxy/src/quic_rx.c:1348,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_rx.c:1350,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:1354,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/quic_rx.c:1355,1
    - Dst: qc_pkt_decrypt
      Src: /src/haproxy/src/quic_rx.c:1357,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1359,1
    - Dst: qc_parse_pkt_frms
      Src: /src/haproxy/src/quic_rx.c:1363,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1365,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_rx.c:1381,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:1385,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:1385,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_rx.c:1386,1
    - Dst: quic_update_ack_ranges_list
      Src: /src/haproxy/src/quic_rx.c:1390,1
    - Dst: qc_idle_timer_rearm
      Src: /src/haproxy/src/quic_rx.c:1398,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1407,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_rx.c:1412,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_rx.c:1413,1
    - Dst: quic_rx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:1414,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_rx.c:1427,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_rx.c:1428,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1437,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1335
    functionDepth: 12
    functionLinenumber: 1335
    functionLinenumberEnd: 1439
    functionName: qc_treat_rx_pkts
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 2
    functionsReached:
    - eb64_delete
    - list_for_each_entry_safe
    - TRACE_ENTER
    - TRACE_DATA
    - qc_is_back
    - qc_pkt_decrypt
    - eb64_next
    - eb64_first
    - quic_update_ack_ranges_list
    - qc_parse_pkt_frms
    - qc_enc_level_free
    - qc_qel_may_rm_hp
    - eb64_entry
    - TRACE_LEAVE
    - TRACE_ERROR
    - TRACE_STATE
    - BUG_ON
    - quic_rx_packet_refdec
    - quic_pktns_release
    - HA_ATOMIC_DEC
    - LIST_ISEMPTY
    - qc_rm_hp_pkts
    - qc_idle_timer_rearm
    linkageType: ''
    returnType: int
    signature: int qc_treat_rx_pkts(struct quic_conn *qc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:1450,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1453,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1461,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1473,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:1477,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1486,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:1491,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1497,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - pos
    - end
    - pkt
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_rx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1499
    functionName: quic_packet_read_long_header
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ENTER
    - memcpy
    - TRACE_ERROR
    linkageType: ''
    returnType: int
    signature: "int quic_packet_read_long_header(unsigned char **pos, const unsigned
      char *end,\n                                               struct quic_rx_packet
      *pkt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:1524,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:1525,1
    - Dst: quic_packet_type_enc_level
      Src: /src/haproxy/src/quic_rx.c:1533,1
    - Dst: qc_quic_enc_level
      Src: /src/haproxy/src/quic_rx.c:1534,1
    - Dst: qel_to_qel_addr
      Src: /src/haproxy/src/quic_rx.c:1536,1
    - Dst: qel_to_quic_pktns
      Src: /src/haproxy/src/quic_rx.c:1537,1
    - Dst: qc_enc_level_alloc
      Src: /src/haproxy/src/quic_rx.c:1539,1
    - Dst: quic_to_ssl_enc_level
      Src: /src/haproxy/src/quic_rx.c:1539,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1540,1
    - Dst: qc_qel_may_rm_hp
      Src: /src/haproxy/src/quic_rx.c:1547,1
    - Dst: qc_select_tls_ctx
      Src: /src/haproxy/src/quic_rx.c:1549,1
    - Dst: qc_do_rm_hp
      Src: /src/haproxy/src/quic_rx.c:1555,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1557,1
    - Dst: qc_handle_spin_bit
      Src: /src/haproxy/src/quic_rx.c:1561,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1565,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1569,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1572,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_rx.c:1573,1
    - Dst: quic_rx_packet_refinc
      Src: /src/haproxy/src/quic_rx.c:1574,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_rx.c:1579,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:1580,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_rx.c:1580,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_rx.c:1581,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_rx.c:1582,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1586,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 4
    argNames:
    - qc
    - pkt
    - beg
    - el
    argTypes:
    - struct quic_conn*
    - struct quic_rx_packet*
    - unsigned char*
    - struct quic_enc_level**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1515
    functionDepth: 5
    functionLinenumber: 1515
    functionLinenumberEnd: 1588
    functionName: qc_try_rm_hp
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - quic_packet_type_enc_level
    - quic_rx_packet_refinc
    - quic_to_ssl_enc_level
    - qc_select_tls_ctx
    - TRACE_ENTER
    - LIST_APPEND
    - b_tail
    - qc_quic_enc_level
    - qc_do_rm_hp
    - qc_qel_may_rm_hp
    - TRACE_PROTO
    - TRACE_LEAVE
    - memcpy
    - qc_handle_spin_bit
    - b_add
    - qel_to_qel_addr
    - BUG_ON
    - qel_to_quic_pktns
    - qc_enc_level_alloc
    linkageType: ''
    returnType: int
    signature: "int qc_try_rm_hp(struct quic_conn *qc, struct quic_rx_packet *pkt,\n
      \                       unsigned char *beg, struct quic_enc_level **el)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/src/quic_rx.c:1602,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_rx.c:1602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - val
    - buf
    - end
    argTypes:
    - uint32_t*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1595
    functionDepth: 1
    functionLinenumber: 1595
    functionLinenumberEnd: 1606
    functionName: quic_read_uint32
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - ntohl
    - read_u32
    linkageType: ''
    returnType: int
    signature: "int quic_read_uint32(uint32_t *val,\n                                   const
      unsigned char **buf,\n                                   const unsigned char
      *end)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:1622,1
    - Dst: quic_read_uint32
      Src: /src/haproxy/src/quic_rx.c:1632,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1633,1
    - Dst: qc_supported_version
      Src: /src/haproxy/src/quic_rx.c:1637,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1668,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - pkt
    - pos
    - end
    argTypes:
    - struct quic_rx_packet*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1615
    functionDepth: 2
    functionLinenumber: 1615
    functionLinenumberEnd: 1670
    functionName: qc_parse_hd_form
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - qc_supported_version
    - TRACE_ENTER
    - quic_read_uint32
    linkageType: ''
    returnType: int
    signature: "int qc_parse_hd_form(struct quic_rx_packet *pkt,\n                     unsigned
      char **pos, const unsigned char *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pos
    - end
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1677
    functionDepth: 0
    functionLinenumber: 1677
    functionLinenumberEnd: 1684
    functionName: quic_padding_check
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int quic_padding_check(const unsigned char *pos,\n                                     const
      unsigned char *end)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:1697,1
    - Dst: quic_retry_token_check
      Src: /src/haproxy/src/quic_rx.c:1701,1
    - Dst: quic_token_check
      Src: /src/haproxy/src/quic_rx.c:1704,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1711,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1720,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:1723,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - pkt
    - dgram
    - l
    - qc
    - odcid
    argTypes:
    - struct quic_rx_packet*
    - struct quic_dgram*
    - struct listener*
    - struct quic_conn*
    - struct quic_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1690
    functionDepth: 3
    functionLinenumber: 1690
    functionLinenumberEnd: 1725
    functionName: quic_token_validate
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - TRACE_LEAVE
    - quic_token_check
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_retry_token_check
    linkageType: ''
    returnType: int
    signature: "int quic_token_validate(struct quic_rx_packet *pkt,\n                                      struct
      quic_dgram *dgram,\n                                      struct listener *l,
      struct quic_conn *qc,\n                                      struct quic_cid
      *odcid)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:1749,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_rx.c:1754,1
    - Dst: retrieve_qc_conn_from_cid
      Src: /src/haproxy/src/quic_rx.c:1756,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_rx.c:1759,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:1766,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_rx.c:1772,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_rx.c:1772,1
    - Dst: quic_listener_max_handshake
      Src: /src/haproxy/src/quic_rx.c:1773,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/quic_rx.c:1774,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_rx.c:1779,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_rx.c:1779,1
    - Dst: quic_listener_max_accept
      Src: /src/haproxy/src/quic_rx.c:1780,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/quic_rx.c:1781,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1787,1
    - Dst: quic_token_validate
      Src: /src/haproxy/src/quic_rx.c:1789,1
    - Dst: send_retry
      Src: /src/haproxy/src/quic_rx.c:1791,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1792,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_rx.c:1796,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1805,1
    - Dst: quic_init_exec_rules
      Src: /src/haproxy/src/quic_rx.c:1808,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/quic_rx.c:1809,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_rx.c:1816,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1819,1
    - Dst: send_retry
      Src: /src/haproxy/src/quic_rx.c:1821,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1822,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_rx.c:1827,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1839,1
    - Dst: quic_cid_alloc
      Src: /src/haproxy/src/quic_rx.c:1846,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1848,1
    - Dst: quic_cid_derive_from_odcid
      Src: /src/haproxy/src/quic_rx.c:1853,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1854,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:1856,1
    - Dst: quic_cid_insert
      Src: /src/haproxy/src/quic_rx.c:1860,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_rx.c:1867,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:1868,1
    - Dst: in46un_to_addr
      Src: /src/haproxy/src/quic_rx.c:1872,1
    - Dst: in46un_to_addr
      Src: /src/haproxy/src/quic_rx.c:1873,1
    - Dst: qc_new_conn
      Src: /src/haproxy/src/quic_rx.c:1875,1
    - Dst: quic_cid_delete
      Src: /src/haproxy/src/quic_rx.c:1878,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:1879,1
    - Dst: quic_hash64_from_cid
      Src: /src/haproxy/src/quic_rx.c:1885,1
    - Dst: quic_cid_register_seq_num
      Src: /src/haproxy/src/quic_rx.c:1888,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:1891,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:1891,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1902,1
    - Dst: send_stateless_reset
      Src: /src/haproxy/src/quic_rx.c:1903,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1904,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1909,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_rx.c:1913,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1915,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 117
    argCount: 4
    argNames:
    - pkt
    - dgram
    - l
    - new_tid
    argTypes:
    - struct quic_rx_packet*
    - struct quic_dgram*
    - struct listener*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1739
    functionDepth: 7
    functionLinenumber: 1739
    functionLinenumberEnd: 1917
    functionName: quic_rx_pkt_retrieve_conn
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - unlikely
    - quic_hash64_from_cid
    - quic_set_connection_close
    - HA_ATOMIC_LOAD
    - quic_listener_max_accept
    - quic_cid_alloc
    - retrieve_qc_conn_from_cid
    - TRACE_ENTER
    - TRACE_DATA
    - qc_new_conn
    - HA_ATOMIC_INC
    - in46un_to_addr
    - quic_cid_insert
    - send_retry
    - send_stateless_reset
    - quic_err_transport
    - BUG_ON_HOT
    - pool_free
    - quic_listener_max_handshake
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_cid_delete
    - EXTRA_COUNTERS_GET
    - quic_cid_derive_from_odcid
    - BUG_ON
    - quic_token_validate
    - TRACE_STATE
    - quic_init_exec_rules
    - quic_cid_register_seq_num
    - TRACE_USER
    linkageType: ''
    returnType: struct quic_conn
    signature: "struct quic_conn *quic_rx_pkt_retrieve_conn(struct quic_rx_packet
      *pkt,\n                                                   struct quic_dgram
      *dgram,\n                                                   struct listener
      *l,\n                                                   int *new_tid)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/src/quic_rx.c:1936,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:1938,1
    - Dst: qc_counters
      Src: /src/haproxy/src/quic_rx.c:1940,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1943,1
    - Dst: quic_padding_check
      Src: /src/haproxy/src/quic_rx.c:1950,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1960,1
    - Dst: qc_parse_hd_form
      Src: /src/haproxy/src/quic_rx.c:1965,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1966,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1972,1
    - Dst: quic_packet_read_long_header
      Src: /src/haproxy/src/quic_rx.c:1974,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1975,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_rx.c:1984,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1985,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1991,1
    - Dst: send_version_negotiation
      Src: /src/haproxy/src/quic_rx.c:2000,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:2001,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2005,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_rx.c:2015,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2017,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2024,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2035,1
    - Dst: quic_retry_packet_check
      Src: /src/haproxy/src/quic_rx.c:2040,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_rx.c:2044,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:2046,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:2049,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:2056,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:2059,1
    - Dst: quic_pktns_discard
      Src: /src/haproxy/src/quic_rx.c:2064,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_rx.c:2065,1
    - Dst: qc_el_rx_pkts_del
      Src: /src/haproxy/src/quic_rx.c:2066,1
    - Dst: quic_tls_ctx_secs_free
      Src: /src/haproxy/src/quic_rx.c:2070,1
    - Dst: qc_new_isecs
      Src: /src/haproxy/src/quic_rx.c:2071,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_rx.c:2075,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2082,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_rx.c:2088,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2090,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2115,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_rx.c:2116,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:2133,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:2137,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2139,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_rx.c:2146,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2148,1
    - Dst: quic_tls_ctx_reset
      Src: /src/haproxy/src/quic_rx.c:2153,1
    - Dst: qc_new_isecs
      Src: /src/haproxy/src/quic_rx.c:2154,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2156,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2161,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2171,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2177,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2179,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:2183,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_rx.c:2191,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2192,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2203,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2204,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_rx.c:2209,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2213,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2214,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 188
    argCount: 6
    argNames:
    - qc
    - pkt
    - pos
    - end
    - dgram
    - o
    argTypes:
    - struct quic_conn*
    - struct quic_rx_packet*
    - unsigned char*
    - unsigned char*
    - struct quic_dgram*
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 1930
    functionDepth: 3
    functionLinenumber: 1930
    functionLinenumberEnd: 2216
    functionName: quic_rx_pkt_parse
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - quic_padding_check
    - memcmp
    - quic_dec_int
    - TRACE_ENTER
    - qc_is_back
    - quic_tls_ctx_reset
    - HA_ATOMIC_INC
    - objt_listener
    - qc_counters
    - pool_alloc
    - quic_pktns_discard
    - quic_packet_read_long_header
    - TRACE_PROTO
    - TRACE_LEAVE
    - TRACE_ERROR
    - memcpy
    - tasklet_wakeup
    - qc_set_timer
    - quic_tls_ctx_secs_free
    - qc_parse_hd_form
    - qc_new_isecs
    - send_version_negotiation
    - quic_retry_packet_check
    - qc_el_rx_pkts_del
    linkageType: ''
    returnType: int
    signature: "int quic_rx_pkt_parse(struct quic_conn *qc, struct quic_rx_packet
      *pkt,\n                             unsigned char *pos, const unsigned char
      *end,\n                             struct quic_dgram *dgram, enum obj_type
      *o)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_rx.c:2232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - qc
    - pkt
    argTypes:
    - struct quic_conn*
    - struct quic_rx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2226
    functionDepth: 1
    functionLinenumber: 2226
    functionLinenumberEnd: 2242
    functionName: qc_rx_check_closing
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    linkageType: ''
    returnType: int
    signature: "int qc_rx_check_closing(struct quic_conn *qc,\n                               struct
      quic_rx_packet *pkt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_rx.c:2253,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_rx.c:2254,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_rx.c:2258,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_rx.c:2259,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/quic_rx.c:2262,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_rx.c:2263,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_rx.c:2264,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_rx.c:2265,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_rx.c:2267,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_rx.c:2275,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/quic_rx.c:2276,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:2277,1
    - Dst: b_realign_if_empty
      Src: /src/haproxy/src/quic_rx.c:2281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2249
    functionDepth: 1
    functionLinenumber: 2249
    functionLinenumberEnd: 2282
    functionName: quic_rx_pkts_del
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - b_head
    - b_realign_if_empty
    - list_for_each_entry_safe
    - b_contig_data
    - TRACE_PRINTF
    - b_del
    - pool_free
    linkageType: ''
    returnType: void
    signature: void quic_rx_pkts_del(struct quic_conn *qc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:2306,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2307,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2311,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:2313,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_rx.c:2319,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_rx.c:2320,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/quic_rx.c:2320,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/quic_rx.c:2321,1
    - Dst: quic_tls_pkt_type_pktns_dcd
      Src: /src/haproxy/src/quic_rx.c:2325,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2326,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2331,1
    - Dst: quic_rx_pkts_del
      Src: /src/haproxy/src/quic_rx.c:2337,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_rx.c:2338,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_rx.c:2340,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_rx.c:2343,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_rx.c:2343,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2344,1
    - Dst: b_putchr
      Src: /src/haproxy/src/quic_rx.c:2352,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_rx.c:2355,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_rx.c:2356,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2357,1
    - Dst: qc_try_rm_hp
      Src: /src/haproxy/src/quic_rx.c:2364,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2365,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/quic_rx.c:2369,1
    - Dst: quic_rx_packet_refinc
      Src: /src/haproxy/src/quic_rx.c:2373,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_rx.c:2374,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/quic_rx.c:2377,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2381,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2382,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2387,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2388,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 5
    argNames:
    - qc
    - pkt
    - dgram
    - beg
    - tasklist_head
    argTypes:
    - struct quic_conn*
    - struct quic_rx_packet*
    - struct quic_dgram*
    - unsigned char*
    - struct list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2298
    functionDepth: 6
    functionLinenumber: 2298
    functionLinenumberEnd: 2389
    functionName: qc_rx_pkt_handle
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - quic_rx_packet_refinc
    - TRACE_ENTER
    - TRACE_DATA
    - b_putchr
    - b_contig_space
    - tick_is_lt
    - TRACE_DEVEL
    - b_tail
    - b_wrap
    - tasklet_wakeup_after
    - TRACE_PROTO
    - TRACE_LEAVE
    - eb64_insert
    - qc_set_timer
    - b_add
    - TRACE_PRINTF
    - quic_tls_pkt_type_pktns_dcd
    - qc_try_rm_hp
    - task_wakeup
    - tick_isset
    - quic_rx_pkts_del
    linkageType: ''
    returnType: void
    signature: "void qc_rx_pkt_handle(struct quic_conn *qc, struct quic_rx_packet
      *pkt,\n                             struct quic_dgram *dgram, unsigned char
      *beg,\n                             struct list **tasklist_head)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/src/quic_rx.c:2418,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:2420,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_rx.c:2425,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:2427,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_rx.c:2431,1
    - Dst: quic_rx_packet_refinc
      Src: /src/haproxy/src/quic_rx.c:2450,1
    - Dst: quic_rx_pkt_parse
      Src: /src/haproxy/src/quic_rx.c:2451,1
    - Dst: quic_rx_pkt_retrieve_conn
      Src: /src/haproxy/src/quic_rx.c:2461,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_rx.c:2467,1
    - Dst: quic_dgram_requeue
      Src: /src/haproxy/src/quic_rx.c:2468,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:2469,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_rx.c:2482,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:2483,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_rx.c:2483,1
    - Dst: qc_finalize_tid_rebind
      Src: /src/haproxy/src/quic_rx.c:2487,1
    - Dst: qc_rx_check_closing
      Src: /src/haproxy/src/quic_rx.c:2489,1
    - Dst: ipcmp
      Src: /src/haproxy/src/quic_rx.c:2496,1
    - Dst: in46un_to_addr
      Src: /src/haproxy/src/quic_rx.c:2498,1
    - Dst: in46un_to_addr
      Src: /src/haproxy/src/quic_rx.c:2499,1
    - Dst: qc_handle_conn_migration
      Src: /src/haproxy/src/quic_rx.c:2500,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:2502,1
    - Dst: qc_rx_pkt_handle
      Src: /src/haproxy/src/quic_rx.c:2508,1
    - Dst: quic_rx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:2512,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:2516,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/quic_rx.c:2516,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:2517,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:2528,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:2529,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2532,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2536,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 87
    argCount: 3
    argNames:
    - dgram
    - from_qc
    - o
    argTypes:
    - struct quic_dgram*
    - struct quic_conn*
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2411
    functionDepth: 8
    functionLinenumber: 2411
    functionLinenumberEnd: 2538
    functionName: quic_dgram_parse
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 2
    functionsReached:
    - quic_rx_packet_refinc
    - TRACE_ENTER
    - objt_listener
    - LIST_INIT
    - in46un_to_addr
    - qc_finalize_tid_rebind
    - pool_alloc
    - eb64_first
    - BUG_ON_HOT
    - pool_free
    - qc_handle_conn_migration
    - eb64_entry
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_rx_pkt_retrieve_conn
    - qc_rx_pkt_handle
    - LIST_INLIST
    - qc_rx_check_closing
    - ipcmp
    - quic_rx_pkt_parse
    - TRACE_STATE
    - quic_rx_packet_refdec
    - BUG_ON
    - quic_dgram_requeue
    linkageType: ''
    returnType: int
    signature: "int quic_dgram_parse(struct quic_dgram *dgram, struct quic_conn *from_qc,\n
      \                    enum obj_type *o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: xprt_qmux_lparams
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct quic_transport_params
    signature: struct quic_transport_params *xprt_qmux_lparams(const void *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: xprt_qmux_rparams
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct quic_transport_params
    signature: struct quic_transport_params *xprt_qmux_rparams(const void *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/xprt_qmux.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - context
    - out
    argTypes:
    - void*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: xprt_qmux_xfer_rxbuf
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 1
    functionsReached:
    - b_data
    linkageType: ''
    returnType: size_t
    signature: size_t xprt_qmux_xfer_rxbuf(void *context, struct buffer *out)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/xprt_qmux.c:68,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_qmux.c:71,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/xprt_qmux.c:73,1
    - Dst: b_size
      Src: /src/haproxy/src/xprt_qmux.c:76,1
    - Dst: b_alloc
      Src: /src/haproxy/src/xprt_qmux.c:76,1
    - Dst: struct xprt_qmux_ctx*::ops_lower::rcv_buf
      Src: /src/haproxy/src/xprt_qmux.c:80,1
    - Dst: b_room
      Src: /src/haproxy/src/xprt_qmux.c:80,1
    - Dst: b_data
      Src: /src/haproxy/src/xprt_qmux.c:85,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/xprt_qmux.c:90,1
    - Dst: b_size
      Src: /src/haproxy/src/xprt_qmux.c:94,1
    - Dst: b_size
      Src: /src/haproxy/src/xprt_qmux.c:101,1
    - Dst: b_data
      Src: /src/haproxy/src/xprt_qmux.c:104,1
    - Dst: b_head
      Src: /src/haproxy/src/xprt_qmux.c:107,1
    - Dst: qc_parse_frm_type
      Src: /src/haproxy/src/xprt_qmux.c:109,1
    - Dst: qc_parse_frm_payload
      Src: /src/haproxy/src/xprt_qmux.c:116,1
    - Dst: b_del
      Src: /src/haproxy/src/xprt_qmux.c:120,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_qmux.c:122,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 60
    argCount: 3
    argNames:
    - conn
    - ctx
    - flag
    argTypes:
    - struct connection*
    - struct xprt_qmux_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 135
    functionName: conn_recv_qmux
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 0
    functionsReached:
    - struct xprt_qmux_ctx*::ops_lower::rcv_buf
    - b_alloc
    - qc_parse_frm_type
    - b_head
    - BUG_ON
    - conn_ctrl_ready
    - fd_recv_ready
    - qc_parse_frm_payload
    - b_room
    - b_data
    - b_size
    - b_quic_dec_int
    - b_del
    linkageType: ''
    returnType: int
    signature: int conn_recv_qmux(struct connection *conn, struct xprt_qmux_ctx *ctx,
      int flag)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/xprt_qmux.c:145,1
    - Dst: b_size
      Src: /src/haproxy/src/xprt_qmux.c:152,1
    - Dst: b_alloc_small
      Src: /src/haproxy/src/xprt_qmux.c:152,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/xprt_qmux.c:155,1
    - Dst: quic_int_cap_length
      Src: /src/haproxy/src/xprt_qmux.c:155,1
    - Dst: b_size
      Src: /src/haproxy/src/xprt_qmux.c:155,1
    - Dst: b_data
      Src: /src/haproxy/src/xprt_qmux.c:157,1
    - Dst: b_orig
      Src: /src/haproxy/src/xprt_qmux.c:158,1
    - Dst: b_wrap
      Src: /src/haproxy/src/xprt_qmux.c:159,1
    - Dst: qc_build_frm
      Src: /src/haproxy/src/xprt_qmux.c:160,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_qmux.c:161,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/xprt_qmux.c:163,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_qmux.c:164,1
    - Dst: b_add
      Src: /src/haproxy/src/xprt_qmux.c:165,1
    - Dst: struct xprt_qmux_ctx*::ops_lower::snd_buf
      Src: /src/haproxy/src/xprt_qmux.c:168,1
    - Dst: b_data
      Src: /src/haproxy/src/xprt_qmux.c:168,1
    - Dst: b_del
      Src: /src/haproxy/src/xprt_qmux.c:173,1
    - Dst: b_data
      Src: /src/haproxy/src/xprt_qmux.c:174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - conn
    - ctx
    - flag
    argTypes:
    - struct connection*
    - struct xprt_qmux_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 188
    functionName: conn_send_qmux
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 0
    functionsReached:
    - quic_int_cap_length
    - b_alloc_small
    - b_orig
    - BUG_ON
    - conn_ctrl_ready
    - b_add
    - quic_int_getsize
    - b_quic_enc_int
    - b_data
    - b_size
    - b_del
    - b_wrap
    - qc_build_frm
    - struct xprt_qmux_ctx*::ops_lower::snd_buf
    linkageType: ''
    returnType: int
    signature: int conn_send_qmux(struct connection *conn, struct xprt_qmux_ctx *ctx,
      int flag)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: conn_send_qmux
      Src: /src/haproxy/src/xprt_qmux.c:197,1
    - Dst: struct xprt_qmux_ctx*::ops_lower::subscribe
      Src: /src/haproxy/src/xprt_qmux.c:199,1
    - Dst: conn_recv_qmux
      Src: /src/haproxy/src/xprt_qmux.c:207,1
    - Dst: struct xprt_qmux_ctx*::ops_lower::subscribe
      Src: /src/haproxy/src/xprt_qmux.c:209,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_qmux.c:220,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/xprt_qmux.c:225,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_qmux.c:237,1
    - Dst: b_data
      Src: /src/haproxy/src/xprt_qmux.c:237,1
    - Dst: b_free
      Src: /src/haproxy/src/xprt_qmux.c:238,1
    - Dst: b_free
      Src: /src/haproxy/src/xprt_qmux.c:239,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/xprt_qmux.c:241,1
    - Dst: pool_free
      Src: /src/haproxy/src/xprt_qmux.c:242,1
    - Dst: struct connection*::mux::wake
      Src: /src/haproxy/src/xprt_qmux.c:250,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 255
    functionName: xprt_qmux_io_cb
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 0
    functionsReached:
    - struct connection*::mux::wake
    - conn_send_qmux
    - BUG_ON
    - struct xprt_qmux_ctx*::ops_lower::subscribe
    - b_free
    - conn_create_mux
    - b_data
    - conn_recv_qmux
    - pool_free
    - tasklet_free
    linkageType: ''
    returnType: struct task
    signature: struct task *xprt_qmux_io_cb(struct task *t, void *context, unsigned
      int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_qmux.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - conn
    - xprt_ctx
    - ctx_lower
    - ops_lower
    - ctx_older
    - ops_older
    argTypes:
    - struct connection*
    - void*
    - void*
    - struct xprt_ops*
    - void**
    - struct xprt_ops**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 268
    functionName: xprt_qmux_add_xprt
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int xprt_qmux_add_xprt(struct connection *conn, void *xprt_ctx,\n
      \                             void *ctx_lower, const struct xprt_ops *ops_lower,\n
      \                             void **ctx_older, const struct xprt_ops **ops_older)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_qmux.c:273,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/xprt_qmux.c:275,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/xprt_qmux.c:282,1
    - Dst: pool_free
      Src: /src/haproxy/src/xprt_qmux.c:285,1
    - Dst: memset
      Src: /src/haproxy/src/xprt_qmux.c:299,1
    - Dst: memset
      Src: /src/haproxy/src/xprt_qmux.c:300,1
    - Dst: qcm_stream_rx_bufsz
      Src: /src/haproxy/src/xprt_qmux.c:307,1
    - Dst: qcm_stream_rx_bufsz
      Src: /src/haproxy/src/xprt_qmux.c:308,1
    - Dst: qcm_stream_rx_bufsz
      Src: /src/haproxy/src/xprt_qmux.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 319
    functionName: xprt_qmux_init
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 0
    functionsReached:
    - memset
    - pool_alloc
    - BUG_ON
    - qcm_stream_rx_bufsz
    - tasklet_new
    - pool_free
    linkageType: ''
    returnType: int
    signature: int xprt_qmux_init(struct connection *conn, void **xprt_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/xprt_qmux.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: xprt_qmux_start
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    linkageType: ''
    returnType: int
    signature: int xprt_qmux_start(struct connection *conn, void *xprt_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct xprt_qmux_ctx*::ops_lower::unsubscribe
      Src: /src/haproxy/src/xprt_qmux.c:335,1
    - Dst: struct xprt_qmux_ctx*::ops_lower::close
      Src: /src/haproxy/src/xprt_qmux.c:341,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_qmux.c:345,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/xprt_qmux.c:349,1
    - Dst: pool_free
      Src: /src/haproxy/src/xprt_qmux.c:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 351
    functionName: xprt_qmux_close
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - tasklet_free
    - struct xprt_qmux_ctx*::ops_lower::unsubscribe
    - struct xprt_qmux_ctx*::ops_lower::close
    - pool_free
    linkageType: ''
    returnType: void
    signature: void xprt_qmux_close(struct connection *conn, void *xprt_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/xprt_qmux.c:361,1
    - Dst: struct xprt_qmux_ctx*::ops_lower::get_alpn
      Src: /src/haproxy/src/xprt_qmux.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - conn
    - xprt_ctx
    - str
    - len
    argTypes:
    - struct connection*
    - void*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 366
    functionName: xprt_qmux_get_alpn
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 0
    functionsReached:
    - struct xprt_qmux_ctx*::ops_lower::get_alpn
    - strlen
    linkageType: ''
    returnType: int
    signature: "int xprt_qmux_get_alpn(const struct connection *conn, void *xprt_ctx,\n
      \                             const char **str, int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xprt_register
      Src: /src/haproxy/src/xprt_qmux.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: __xprt_qmux_init
    functionSourceFile: /src/haproxy/src/xprt_qmux.c
    functionUses: 0
    functionsReached:
    - xprt_register
    linkageType: ''
    returnType: void
    signature: void __xprt_qmux_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:55,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - frm
    argTypes:
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: qcm_trace_frm
    functionSourceFile: /src/haproxy/src/qcm_trace.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void qcm_trace_frm(const struct quic_frame *frm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: qcm_dump_qcc_info
      Src: /src/haproxy/src/qcm_trace.c:83,1
    - Dst: qcm_dump_qcs_info
      Src: /src/haproxy/src/qcm_trace.c:86,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:90,1
    - Dst: qcm_trace_frm
      Src: /src/haproxy/src/qcm_trace.c:94,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:98,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 108
    functionName: qcm_trace
    functionSourceFile: /src/haproxy/src/qcm_trace.c
    functionUses: 0
    functionsReached:
    - qcm_trace_frm
    - qcm_dump_qcs_info
    - chunk_appendf
    - qcm_dump_qcc_info
    linkageType: ''
    returnType: void
    signature: "void qcm_trace(enum trace_level level, uint64_t mask,\n                      const
      struct trace_source *src,\n                      const struct ist where, const
      struct ist func,\n                      const void *a1, const void *a2, const
      void *a3, const void *a4)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_strm
      Src: /src/haproxy/src/qcm_trace.c:128,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - src
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - struct trace_ctx*
    - struct trace_source*
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 130
    functionName: qcm_trace_fill_ctx
    functionSourceFile: /src/haproxy/src/qcm_trace.c
    functionUses: 0
    functionsReached:
    - sc_strm
    linkageType: ''
    returnType: void
    signature: "void qcm_trace_fill_ctx(struct trace_ctx *ctx, const struct trace_source
      *src,\n                               const void *a1, const void *a2, const
      void *a3, const void *a4)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum qcc_app_st
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 144
    functionName: qcc_app_st_to_str
    functionSourceFile: /src/haproxy/src/qcm_trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *qcc_app_st_to_str(const enum qcc_app_st st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_quic
      Src: /src/haproxy/src/qcm_trace.c:148,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:150,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:152,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:153,1
    - Dst: qcc_app_st_to_str
      Src: /src/haproxy/src/qcm_trace.c:154,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/qcm_trace.c:155,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:157,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msg
    - qcc
    argTypes:
    - struct buffer*
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 161
    functionName: qcm_dump_qcc_info
    functionSourceFile: /src/haproxy/src/qcm_trace.c
    functionUses: 2
    functionsReached:
    - conn_is_quic
    - chunk_appendf
    - qcc_app_st_to_str
    - tevt_evts2str
    linkageType: ''
    returnType: void
    signature: void qcm_dump_qcc_info(struct buffer *msg, const struct qcc *qcc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:165,1
    - Dst: qcs_st_to_str
      Src: /src/haproxy/src/qcm_trace.c:166,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:169,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:170,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/qcm_trace.c:171,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/qcm_trace.c:171,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:174,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:177,1
    - Dst: conn_is_quic
      Src: /src/haproxy/src/qcm_trace.c:181,1
    - Dst: bdata_ctr_print
      Src: /src/haproxy/src/qcm_trace.c:182,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qcm_trace.c:184,1
    - Dst: tot_time_read
      Src: /src/haproxy/src/qcm_trace.c:185,1
    - Dst: tot_time_read
      Src: /src/haproxy/src/qcm_trace.c:186,1
    - Dst: tot_time_read
      Src: /src/haproxy/src/qcm_trace.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - msg
    - qcs
    argTypes:
    - struct buffer*
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 188
    functionName: qcm_dump_qcs_info
    functionSourceFile: /src/haproxy/src/qcm_trace.c
    functionUses: 2
    functionsReached:
    - conn_is_quic
    - se_fl_get
    - qcs_st_to_str
    - chunk_appendf
    - bdata_ctr_print
    - tevt_evts2str
    - tot_time_read
    linkageType: ''
    returnType: void
    signature: void qcm_dump_qcs_info(struct buffer *msg, const struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/haproxy/src/linuxcap.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hdrp
    - datap
    argTypes:
    - cap_user_header_t
    - cap_user_data_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: capset
    functionSourceFile: /src/haproxy/src/linuxcap.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int capset(cap_user_header_t hdrp, const cap_user_data_t datap)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: capget
      Src: /src/haproxy/src/linuxcap.c:105,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/linuxcap.c:107,1
    - Dst: strerror
      Src: /src/haproxy/src/linuxcap.c:109,1
    - Dst: capset
      Src: /src/haproxy/src/linuxcap.c:130,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/linuxcap.c:136,1
    - Dst: strerror
      Src: /src/haproxy/src/linuxcap.c:138,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - from_uid
    - to_uid
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 83
    functionDepth: 10
    functionLinenumber: 83
    functionLinenumberEnd: 143
    functionName: prepare_caps_from_permitted_set
    functionSourceFile: /src/haproxy/src/linuxcap.c
    functionUses: 1
    functionsReached:
    - ha_diag_warning
    - capset
    - capget
    - strerror
    linkageType: ''
    returnType: int
    signature: int prepare_caps_from_permitted_set(int from_uid, int to_uid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: prctl
      Src: /src/haproxy/src/linuxcap.c:176,1
    - Dst: ha_alert
      Src: /src/haproxy/src/linuxcap.c:177,1
    - Dst: strerror
      Src: /src/haproxy/src/linuxcap.c:177,1
    - Dst: capset
      Src: /src/haproxy/src/linuxcap.c:182,1
    - Dst: ha_alert
      Src: /src/haproxy/src/linuxcap.c:183,1
    - Dst: strerror
      Src: /src/haproxy/src/linuxcap.c:183,1
    - Dst: seteuid
      Src: /src/haproxy/src/linuxcap.c:187,1
    - Dst: ha_alert
      Src: /src/haproxy/src/linuxcap.c:188,1
    - Dst: strerror
      Src: /src/haproxy/src/linuxcap.c:188,1
    - Dst: capset
      Src: /src/haproxy/src/linuxcap.c:193,1
    - Dst: ha_alert
      Src: /src/haproxy/src/linuxcap.c:194,1
    - Dst: strerror
      Src: /src/haproxy/src/linuxcap.c:194,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - from_uid
    - to_uid
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 158
    functionDepth: 9
    functionLinenumber: 158
    functionLinenumberEnd: 206
    functionName: prepare_caps_for_setuid
    functionSourceFile: /src/haproxy/src/linuxcap.c
    functionUses: 1
    functionsReached:
    - seteuid
    - capset
    - strerror
    - prctl
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int prepare_caps_for_setuid(int from_uid, int to_uid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: capset
      Src: /src/haproxy/src/linuxcap.c:226,1
    - Dst: ha_alert
      Src: /src/haproxy/src/linuxcap.c:227,1
    - Dst: strerror
      Src: /src/haproxy/src/linuxcap.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - from_uid
    - to_uid
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 212
    functionDepth: 9
    functionLinenumber: 212
    functionLinenumberEnd: 233
    functionName: finalize_caps_after_setuid
    functionSourceFile: /src/haproxy/src/linuxcap.c
    functionUses: 1
    functionsReached:
    - capset
    - ha_alert
    - strerror
    linkageType: ''
    returnType: int
    signature: int finalize_caps_after_setuid(int from_uid, int to_uid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/linuxcap.c:246,1
    - Dst: strchr
      Src: /src/haproxy/src/linuxcap.c:251,1
    - Dst: strcmp
      Src: /src/haproxy/src/linuxcap.c:256,1
    - Dst: memprintf
      Src: /src/haproxy/src/linuxcap.c:263,1
    - Dst: memprintf
      Src: /src/haproxy/src/linuxcap.c:274,1
    - Dst: memprintf
      Src: /src/haproxy/src/linuxcap.c:277,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 236
    functionDepth: 5
    functionLinenumber: 236
    functionLinenumberEnd: 281
    functionName: cfg_parse_global_setcap
    functionSourceFile: /src/haproxy/src/linuxcap.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - strchr
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_setcap(char **args, int section_type,\n                                   struct
      proxy *curpx, const struct proxy *defpx,\n                                   const
      char *file, int line, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_insert
      Src: /src/haproxy/src/_ceb_addr.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_insert
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _insert, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_first
      Src: /src/haproxy/src/_ceb_addr.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: CEB_FDECL2
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_first
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL2(struct ceb_node *, CEB_UKEY_PFX, _first, struct ceb_root
      *const *, root, ptrdiff_t, kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_last
      Src: /src/haproxy/src/_ceb_addr.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: CEB_FDECL2
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_last
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL2(struct ceb_node *, CEB_UKEY_PFX, _last, struct ceb_root
      *const *, root, ptrdiff_t, kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup
      Src: /src/haproxy/src/_ceb_addr.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup, struct ceb_root
      *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_le
      Src: /src/haproxy/src/_ceb_addr.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_le
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_le, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_lt
      Src: /src/haproxy/src/_ceb_addr.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_lt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_lt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_ge
      Src: /src/haproxy/src/_ceb_addr.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_ge
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_ge, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_lookup_gt
      Src: /src/haproxy/src/_ceb_addr.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_lookup_gt
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _lookup_gt, struct
      ceb_root *const *, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_next_unique
      Src: /src/haproxy/src/_ceb_addr.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_next_unique
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _next, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_prev_unique
      Src: /src/haproxy/src/_ceb_addr.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_prev_unique
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _prev, struct ceb_root
      *const *, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_addr.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _delete, struct ceb_root
      **, root, ptrdiff_t, kofs, struct ceb_node *, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_delete
      Src: /src/haproxy/src/_ceb_addr.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - _ceb_delete
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL3(struct ceb_node *, CEB_UKEY_PFX, _pick, struct ceb_root
      **, root, ptrdiff_t, kofs, const void *, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: TO_STR
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: _TO_STR
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TO_STR(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/_ceb_addr.c:172,1
    - Dst: TO_STR
      Src: /src/haproxy/src/_ceb_addr.c:172,1
    - Dst: printf
      Src: /src/haproxy/src/_ceb_addr.c:178,1
    - Dst: printf
      Src: /src/haproxy/src/_ceb_addr.c:181,1
    - Dst: ceb_imm_default_dump_tree
      Src: /src/haproxy/src/_ceb_addr.c:184,1
    - Dst: printf
      Src: /src/haproxy/src/_ceb_addr.c:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 188
    functionName: CEB_FDECL5
    functionSourceFile: /src/haproxy/src/_ceb_addr.c
    functionUses: 0
    functionsReached:
    - ceb_imm_default_dump_tree
    - printf
    - TO_STR
    linkageType: ''
    returnType: void
    signature: void CEB_FDECL5(void, CEB_MKEY_PFX, _default_dump, struct ceb_root
      *const *, root, ptrdiff_t, kofs, const char *, label, const void *, ctx, int,
      sub)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: h3_debug_printf
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h3_debug_printf(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: h3_debug_hexdump
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h3_debug_hexdump(...)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:189,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:192,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/h3.c:192,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/h3.c:194,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:197,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:204,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:205,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:207,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:215,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:222,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:223,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:225,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:236,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:237,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:239,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:246,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:247,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:249,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:259,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:260,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:262,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:276,1
    - Dst: qcc_abort_stream_read
      Src: /src/haproxy/src/h3.c:277,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:284,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:288,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 3
    argNames:
    - h3c
    - qcs
    - b
    argTypes:
    - struct h3c*
    - struct qcs*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 290
    functionName: h3_init_uni_stream
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - TRACE_STATE
    - BUG_ON
    - TRACE_ERROR
    - TRACE_LEAVE
    - quic_stream_is_uni
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_DATA
    - b_quic_dec_int
    - qcc_abort_stream_read
    - qcc_set_error
    - qcc_report_glitch
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h3_init_uni_stream(struct h3c *h3c, struct qcs *qcs,\n                                  struct
      buffer *b)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:303,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/h3.c:303,1
    - Dst: qpack_decode_dec
      Src: /src/haproxy/src/h3.c:307,1
    - Dst: qpack_decode_enc
      Src: /src/haproxy/src/h3.c:311,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/h3.c:317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - qcs
    - b
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 322
    functionName: h3_parse_uni_stream_no_h3
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - quic_stream_is_uni
    - qpack_decode_dec
    - ABORT_NOW
    - qpack_decode_enc
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t h3_parse_uni_stream_no_h3(struct qcs *qcs, struct buffer *b,
      int fin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/h3.c:336,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/h3.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ftype
    - flen
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 342
    functionName: h3_decode_frm_header
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - b_quic_dec_int
    linkageType: ''
    returnType: size_t
    signature: "size_t h3_decode_frm_header(uint64_t *ftype, uint64_t *flen,\n                                          struct
      buffer *b)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:354,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:447,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:462,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 39
    argCount: 3
    argNames:
    - h3c
    - qcs
    - ftype
    argTypes:
    - struct h3c*
    - struct qcs*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 484
    functionName: h3_check_frame_valid
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int h3_check_frame_valid(struct h3c *h3c, struct qcs *qcs, uint64_t
      ftype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:499,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:502,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:519,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:521,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - qcs
    - fin
    argTypes:
    - struct qcs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 527
    functionName: h3_check_body_size
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - BUG_ON
    - TRACE_ENTER
    - qcc_report_glitch
    linkageType: ''
    returnType: int
    signature: int h3_check_body_size(struct qcs *qcs, int fin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:547,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:547,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:548,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:553,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - qcs
    - auth
    - value
    argTypes:
    - struct qcs*
    - struct ist*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 560
    functionName: h3_set_authority
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - isteq
    - istlen
    - TRACE_ERROR
    - isttest
    linkageType: ''
    returnType: int
    signature: int h3_set_authority(struct qcs *qcs, struct ist *auth, const struct
      ist value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ist_find_ctl
      Src: /src/haproxy/src/h3.c:566,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:567,1
    - Dst: http_header_has_forbidden_char
      Src: /src/haproxy/src/h3.c:567,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - qcs
    - h
    argTypes:
    - struct qcs*
    - struct http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 576
    functionName: _h3_handle_phdr
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - unlikely
    - http_header_has_forbidden_char
    - TRACE_ERROR
    - ist_find_ctl
    linkageType: ''
    returnType: int
    signature: int _h3_handle_phdr(struct qcs *qcs, const struct http_hdr *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:586,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:586,1
    - Dst: istmatch
      Src: /src/haproxy/src/h3.c:589,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:589,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:590,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:594,1
    - Dst: istptr
      Src: /src/haproxy/src/h3.c:595,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h3.c:596,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:597,1
    - Dst: ist_find_ctl
      Src: /src/haproxy/src/h3.c:613,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:614,1
    - Dst: http_header_has_forbidden_char
      Src: /src/haproxy/src/h3.c:614,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:615,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - qcs
    - hdr
    argTypes:
    - struct qcs*
    - struct http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 623
    functionName: _h3_handle_hdr
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist
    - TRACE_ERROR
    - http_header_has_forbidden_char
    - isteq
    - istmatch
    - istptr
    - HTTP_IS_TOKEN
    - istlen
    - ist_find_ctl
    linkageType: ''
    returnType: int
    signature: int _h3_handle_hdr(struct qcs *qcs, const struct http_hdr *hdr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:631,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:631,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:633,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 638
    functionName: _h3_trim_header
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - unlikely
    - HTTP_IS_LWS
    linkageType: ''
    returnType: struct ist
    signature: struct ist _h3_trim_header(struct ist value)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/h3.c:654,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:687,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:692,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:692,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h3.c:692,1
    - Dst: qpack_decode_fs
      Src: /src/haproxy/src/h3.c:693,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:693,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:696,1
    - Dst: qpack_err_decode
      Src: /src/haproxy/src/h3.c:697,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:699,1
    - Dst: b_alloc
      Src: /src/haproxy/src/h3.c:705,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:706,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:710,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:710,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:711,1
    - Dst: istmatch
      Src: /src/haproxy/src/h3.c:728,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:728,1
    - Dst: _h3_handle_phdr
      Src: /src/haproxy/src/h3.c:741,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:743,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:751,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:751,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:752,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:753,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:755,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:760,1
    - Dst: http_method_has_forbidden_char
      Src: /src/haproxy/src/h3.c:760,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:761,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:763,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:770,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:770,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:771,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:772,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:774,1
    - Dst: ist_find_range
      Src: /src/haproxy/src/h3.c:783,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:784,1
    - Dst: http_path_has_forbidden_char
      Src: /src/haproxy/src/h3.c:784,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:785,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:787,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:795,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:795,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:796,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:798,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:800,1
    - Dst: isteqi
      Src: /src/haproxy/src/h3.c:806,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:806,1
    - Dst: isteqi
      Src: /src/haproxy/src/h3.c:808,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:808,1
    - Dst: http_validate_scheme
      Src: /src/haproxy/src/h3.c:810,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:811,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:813,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:820,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:820,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:821,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:822,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:824,1
    - Dst: h3_set_authority
      Src: /src/haproxy/src/h3.c:829,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:831,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:837,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:839,1
    - Dst: istmatch
      Src: /src/haproxy/src/h3.c:847,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:847,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:854,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:854,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:854,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:855,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:857,1
    - Dst: isteqi
      Src: /src/haproxy/src/h3.c:880,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:880,1
    - Dst: isteqi
      Src: /src/haproxy/src/h3.c:880,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:880,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:881,1
    - Dst: istptr
      Src: /src/haproxy/src/h3.c:882,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:882,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:882,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:883,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:885,1
    - Dst: http_authority_has_forbidden_char
      Src: /src/haproxy/src/h3.c:897,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:898,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:900,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:905,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:910,1
    - Dst: ist2bin
      Src: /src/haproxy/src/h3.c:912,1
    - Dst: istcat
      Src: /src/haproxy/src/h3.c:913,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:913,1
    - Dst: istcat
      Src: /src/haproxy/src/h3.c:914,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:915,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:915,1
    - Dst: istcat
      Src: /src/haproxy/src/h3.c:916,1
    - Dst: istptr
      Src: /src/haproxy/src/h3.c:939,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:940,1
    - Dst: HTTP_IS_CTL
      Src: /src/haproxy/src/h3.c:940,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:941,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:943,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h3.c:949,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:949,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/h3.c:958,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:960,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h3.c:961,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:961,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:969,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:969,1
    - Dst: _h3_handle_hdr
      Src: /src/haproxy/src/h3.c:972,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:974,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:979,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:979,1
    - Dst: http_authority_has_forbidden_char
      Src: /src/haproxy/src/h3.c:982,1
    - Dst: h3_set_authority
      Src: /src/haproxy/src/h3.c:983,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:985,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:990,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:996,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:996,1
    - Dst: http_cookie_register
      Src: /src/haproxy/src/h3.c:997,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1001,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1001,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/h3.c:1002,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1006,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1008,1
    - Dst: h3_check_body_size
      Src: /src/haproxy/src/h3.c:1023,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1028,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1028,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1029,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1029,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1030,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1030,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1031,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1031,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1032,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1032,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1042,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1044,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1048,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1048,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1049,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1049,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1056,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1058,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h3.c:1063,1
    - Dst: _h3_trim_header
      Src: /src/haproxy/src/h3.c:1063,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:1077,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1078,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1080,1
    - Dst: http_cookie_merge
      Src: /src/haproxy/src/h3.c:1086,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h3.c:1093,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h3.c:1098,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:1106,1
    - Dst: qcs_attach_sc
      Src: /src/haproxy/src/h3.c:1109,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:1117,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:1122,1
    - Dst: b_free
      Src: /src/haproxy/src/h3.c:1123,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/h3.c:1124,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1127,1
    CyclomaticComplexity: 109
    EdgeCount: 109
    ICount: 316
    argCount: 4
    argNames:
    - qcs
    - buf
    - len
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - uint64_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 648
    functionDepth: 6
    functionLinenumber: 648
    functionLinenumberEnd: 1129
    functionName: h3_req_headers_to_htx
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - unlikely
    - qpack_err_decode
    - TRACE_ENTER
    - get_trash_chunk
    - htx_nbblks
    - istmatch
    - ist_find_range
    - _h3_handle_hdr
    - offer_buffers
    - istlen
    - qcc_report_glitch
    - http_cookie_register
    - ist
    - htx_add_header
    - _h3_handle_phdr
    - isteq
    - istptr
    - ist2bin
    - find_http_meth
    - b_wrap
    - htx_from_buf
    - b_alloc
    - isteqi
    - b_head
    - http_parse_cont_len_header
    - TRACE_ERROR
    - h3_check_body_size
    - TRACE_LEAVE
    - b_free
    - h3_set_authority
    - b_size
    - htx_add_stline
    - http_validate_scheme
    - http_path_has_forbidden_char
    - qpack_decode_fs
    - HTTP_IS_CTL
    - htx_to_buf
    - http_cookie_merge
    - BUG_ON
    - http_method_has_forbidden_char
    - istcat
    - _h3_trim_header
    - http_authority_has_forbidden_char
    - HTTP_IS_LWS
    - htx_add_endof
    - qcs_attach_sc
    - isttest
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h3_req_headers_to_htx(struct qcs *qcs, const struct buffer
      *buf,\n                                     uint64_t len, char fin)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/h3.c:1146,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:1177,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1180,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1180,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h3.c:1180,1
    - Dst: qpack_decode_fs
      Src: /src/haproxy/src/h3.c:1181,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1181,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1184,1
    - Dst: qpack_err_decode
      Src: /src/haproxy/src/h3.c:1185,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1187,1
    - Dst: qcc_get_stream_rxbuf
      Src: /src/haproxy/src/h3.c:1193,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1194,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1198,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:1198,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:1199,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/h3.c:1200,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h3.c:1205,1
    - Dst: istmatch
      Src: /src/haproxy/src/h3.c:1226,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1226,1
    - Dst: _h3_handle_phdr
      Src: /src/haproxy/src/h3.c:1239,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1241,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1249,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1249,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:1250,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1251,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1253,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1261,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1263,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:1274,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1275,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1277,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1286,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1288,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h3.c:1293,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1293,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1293,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1295,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1307,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1307,1
    - Dst: _h3_handle_hdr
      Src: /src/haproxy/src/h3.c:1310,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1312,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1317,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1317,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1318,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1318,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1319,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1319,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1320,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1320,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1321,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1321,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1323,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1325,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1329,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1329,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/h3.c:1330,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1334,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1336,1
    - Dst: h3_check_body_size
      Src: /src/haproxy/src/h3.c:1351,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h3.c:1357,1
    - Dst: _h3_trim_header
      Src: /src/haproxy/src/h3.c:1357,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h3.c:1365,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h3.c:1370,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/h3.c:1380,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1381,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:1381,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/h3.c:1385,1
    - Dst: htx_truncate_blk
      Src: /src/haproxy/src/h3.c:1392,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:1393,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1396,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 168
    argCount: 4
    argNames:
    - qcs
    - buf
    - len
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - uint64_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1140
    functionDepth: 3
    functionLinenumber: 1140
    functionLinenumberEnd: 1398
    functionName: h3_resp_headers_to_htx
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - TRACE_USER
    - qpack_err_decode
    - TRACE_ENTER
    - get_trash_chunk
    - htx_nbblks
    - istmatch
    - _h3_handle_hdr
    - htx_get_tail_blk
    - qcc_report_glitch
    - htx_is_empty
    - istlen
    - ist
    - htx_add_header
    - _h3_handle_phdr
    - isteq
    - b_wrap
    - htx_from_buf
    - h3_check_body_size
    - b_head
    - http_parse_cont_len_header
    - TRACE_ERROR
    - TRACE_LEAVE
    - b_size
    - htx_add_stline
    - htx_truncate_blk
    - qpack_decode_fs
    - htx_to_buf
    - BUG_ON
    - qcc_get_stream_rxbuf
    - _h3_trim_header
    - htx_add_endof
    - isttest
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h3_resp_headers_to_htx(struct qcs *qcs, const struct buffer
      *buf,\n                                      uint64_t len, char fin)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/h3.c:1414,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:1426,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1429,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1429,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h3.c:1429,1
    - Dst: qpack_decode_fs
      Src: /src/haproxy/src/h3.c:1430,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1430,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1433,1
    - Dst: qpack_err_decode
      Src: /src/haproxy/src/h3.c:1434,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1436,1
    - Dst: qcc_get_stream_rxbuf
      Src: /src/haproxy/src/h3.c:1442,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1443,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1447,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:1447,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:1448,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/h3.c:1449,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/h3.c:1459,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1463,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1468,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1468,1
    - Dst: istmatch
      Src: /src/haproxy/src/h3.c:1476,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1476,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1477,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1479,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h3.c:1486,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1487,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1489,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1496,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1496,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1497,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1497,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1498,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1498,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1499,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1499,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1500,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1500,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1501,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1501,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1502,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1502,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1503,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1503,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1504,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1506,1
    - Dst: ist_find_ctl
      Src: /src/haproxy/src/h3.c:1522,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:1523,1
    - Dst: http_header_has_forbidden_char
      Src: /src/haproxy/src/h3.c:1523,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1524,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1526,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:1533,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:1533,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:1535,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:1535,1
    - Dst: htx_add_trailer
      Src: /src/haproxy/src/h3.c:1539,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1540,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h3.c:1554,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1555,1
    - Dst: htx_truncate_blk
      Src: /src/haproxy/src/h3.c:1567,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:1568,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1571,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 104
    argCount: 4
    argNames:
    - qcs
    - buf
    - len
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - uint64_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1409
    functionDepth: 3
    functionLinenumber: 1409
    functionLinenumberEnd: 1573
    functionName: h3_trailers_to_htx
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - unlikely
    - qpack_err_decode
    - htx_add_trailer
    - TRACE_ENTER
    - get_trash_chunk
    - istmatch
    - htx_get_tail_blk
    - qcc_report_glitch
    - ist_find_ctl
    - ist
    - isteq
    - b_wrap
    - htx_from_buf
    - b_head
    - TRACE_LEAVE
    - TRACE_ERROR
    - http_get_stline
    - b_size
    - http_header_has_forbidden_char
    - htx_truncate_blk
    - qpack_decode_fs
    - htx_to_buf
    - BUG_ON
    - qcc_get_stream_rxbuf
    - HTTP_IS_LWS
    - htx_add_endof
    - HTTP_IS_TOKEN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h3_trailers_to_htx(struct qcs *qcs, const struct buffer *buf,\n
      \                                 uint64_t len, char fin)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:1590,1
    - Dst: qcc_get_stream_rxbuf
      Src: /src/haproxy/src/h3.c:1592,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1593,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:1597,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1599,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1600,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1604,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/h3.c:1606,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h3.c:1617,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h3.c:1618,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/h3.c:1619,1
    - Dst: ist2
      Src: /src/haproxy/src/h3.c:1619,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1619,1
    - Dst: b_orig
      Src: /src/haproxy/src/h3.c:1626,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/h3.c:1630,1
    - Dst: ist2
      Src: /src/haproxy/src/h3.c:1630,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:1641,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1643,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:1647,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 4
    argNames:
    - qcs
    - buf
    - len
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - uint64_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1649
    functionName: h3_data_to_htx
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - ist2
    - htx_to_buf
    - b_head
    - b_orig
    - TRACE_ERROR
    - TRACE_LEAVE
    - qcc_get_stream_rxbuf
    - TRACE_DEVEL
    - TRACE_ENTER
    - htx_add_data
    - b_data
    - htx_free_data_space
    - b_wrap
    - htx_from_buf
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h3_data_to_htx(struct qcs *qcs, const struct buffer *buf,\n
      \                             uint64_t len, char fin)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:1663,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:1666,1
    - Dst: b_orig
      Src: /src/haproxy/src/h3.c:1666,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:1666,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/h3.c:1666,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1668,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/h3.c:1669,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/h3.c:1669,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1671,1
    - Dst: h3_debug_printf
      Src: /src/haproxy/src/h3.c:1675,1
    - Dst: ha_bit_test
      Src: /src/haproxy/src/h3.c:1687,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1689,1
    - Dst: ha_bit_set
      Src: /src/haproxy/src/h3.c:1692,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1720,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1728,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - h3c
    - buf
    - len
    argTypes:
    - struct h3c*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1730
    functionName: h3_parse_settings_frm
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - b_orig
    - TRACE_LEAVE
    - TRACE_ENTER
    - h3_debug_printf
    - ha_bit_set
    - b_head_ofs
    - b_data
    - b_size
    - b_quic_dec_int
    - b_make
    - ha_bit_test
    - qcc_report_glitch
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h3_parse_settings_frm(struct h3c *h3c, const struct buffer
      *buf,\n                                     size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:1739,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:1741,1
    - Dst: b_orig
      Src: /src/haproxy/src/h3.c:1741,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:1741,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/h3.c:1741,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/h3.c:1742,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1744,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1750,1
    - Dst: qcc_report_term_evt
      Src: /src/haproxy/src/h3.c:1764,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - h3c
    - buf
    - len
    argTypes:
    - struct h3c*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1732
    functionDepth: 2
    functionLinenumber: 1732
    functionLinenumberEnd: 1768
    functionName: h3_parse_goaway_frm
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - qcc_report_term_evt
    - b_orig
    - TRACE_LEAVE
    - TRACE_ENTER
    - b_head_ofs
    - b_size
    - b_quic_dec_int
    - b_make
    - qcc_report_glitch
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h3_parse_goaway_frm(struct h3c *h3c, const struct buffer *buf,\n
      \                                  size_t len)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:1787,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/h3.c:1789,1
    - Dst: h3_init_uni_stream
      Src: /src/haproxy/src/h3.c:1790,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1792,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/h3.c:1803,1
    - Dst: h3_parse_uni_stream_no_h3
      Src: /src/haproxy/src/h3.c:1805,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1806,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1822,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1823,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1825,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1829,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/h3.c:1829,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/h3.c:1830,1
    - Dst: h3_check_body_size
      Src: /src/haproxy/src/h3.c:1833,1
    - Dst: qcc_abort_stream_read
      Src: /src/haproxy/src/h3.c:1834,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/h3.c:1835,1
    - Dst: qcs_http_handle_standalone_fin
      Src: /src/haproxy/src/h3.c:1839,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1840,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1841,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1849,1
    - Dst: h3_decode_frm_header
      Src: /src/haproxy/src/h3.c:1855,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/h3.c:1857,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/h3.c:1864,1
    - Dst: h3_check_frame_valid
      Src: /src/haproxy/src/h3.c:1866,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1867,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1868,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1869,1
    - Dst: h3_check_body_size
      Src: /src/haproxy/src/h3.c:1880,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1880,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1889,1
    - Dst: qcm_stream_rx_bufsz
      Src: /src/haproxy/src/h3.c:1907,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1908,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1909,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1911,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1916,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1916,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h3.c:1916,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1917,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1918,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1920,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1925,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/h3.c:1926,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1931,1
    - Dst: h3_check_body_size
      Src: /src/haproxy/src/h3.c:1934,1
    - Dst: h3_inc_frame_type_cnt
      Src: /src/haproxy/src/h3.c:1937,1
    - Dst: h3_data_to_htx
      Src: /src/haproxy/src/h3.c:1940,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:1945,1
    - Dst: h3_req_headers_to_htx
      Src: /src/haproxy/src/h3.c:1946,1
    - Dst: h3_resp_headers_to_htx
      Src: /src/haproxy/src/h3.c:1950,1
    - Dst: h3_trailers_to_htx
      Src: /src/haproxy/src/h3.c:1972,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:1977,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1984,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1985,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1987,1
    - Dst: h3_parse_goaway_frm
      Src: /src/haproxy/src/h3.c:1996,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1998,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1999,1
    - Dst: h3_parse_settings_frm
      Src: /src/haproxy/src/h3.c:2004,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2006,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:2007,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2014,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:2014,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2026,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:2026,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2042,1
    - Dst: b_del
      Src: /src/haproxy/src/h3.c:2044,1
    - Dst: qcc_abort_stream_read
      Src: /src/haproxy/src/h3.c:2058,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/h3.c:2059,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2060,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:2064,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2065,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2068,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:2069,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2078,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2082,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 208
    argCount: 3
    argNames:
    - qcs
    - b
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 1781
    functionDepth: 7
    functionLinenumber: 1781
    functionLinenumberEnd: 2084
    functionName: h3_rcv_buf
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - unlikely
    - h3_req_headers_to_htx
    - TRACE_ENTER
    - qcc_reset_stream
    - h3_data_to_htx
    - qcc_report_glitch
    - h3_init_uni_stream
    - h3_parse_settings_frm
    - h3_decode_frm_header
    - TRACE_DEVEL
    - b_wrap
    - h3_check_body_size
    - TRACE_PROTO
    - quic_stream_is_bidi
    - b_head
    - TRACE_ERROR
    - TRACE_LEAVE
    - qcm_stream_rx_bufsz
    - qcs_http_handle_standalone_fin
    - b_data
    - h3_resp_headers_to_htx
    - qcc_abort_stream_read
    - qcc_set_error
    - b_del
    - h3_check_frame_valid
    - h3_trailers_to_htx
    - h3_parse_goaway_frm
    - h3_inc_frame_type_cnt
    - BUG_ON
    - h3_parse_uni_stream_no_h3
    - quic_stream_is_uni
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t h3_rcv_buf(struct qcs *qcs, struct buffer *b, int fin)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:2100,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/h3.c:2102,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:2105,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:2107,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:2108,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:2109,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:2110,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:2112,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:2113,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2116,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2118,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2119,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2120,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2121,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2122,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2123,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2125,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2126,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:2129,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2131,1
    - Dst: b_room
      Src: /src/haproxy/src/h3.c:2135,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2135,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/h3.c:2138,1
    - Dst: b_force_xfer
      Src: /src/haproxy/src/h3.c:2141,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2141,1
    - Dst: qcc_send_stream
      Src: /src/haproxy/src/h3.c:2144,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2148,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - qcs
    - ctx
    argTypes:
    - struct qcs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2091
    functionDepth: 5
    functionLinenumber: 2091
    functionLinenumberEnd: 2154
    functionName: h3_control_send
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_force_xfer
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_int_getsize
    - b_quic_enc_int
    - b_room
    - b_data
    - ABORT_NOW
    - qcc_send_stream
    - b_make
    - qcc_get_stream_txbuf
    - BUG_ON_HOT
    linkageType: ''
    returnType: int
    signature: int h3_control_send(struct qcs *qcs, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:2168,1
    - Dst: istptr
      Src: /src/haproxy/src/h3.c:2169,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2170,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:2170,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2172,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:2172,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:2172,1
    - Dst: qpack_encode_header
      Src: /src/haproxy/src/h3.c:2176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - n
    - v
    argTypes:
    - struct buffer*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2161
    functionDepth: 3
    functionLinenumber: 2161
    functionLinenumberEnd: 2177
    functionName: h3_encode_header
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - unlikely
    - istptr
    - HTTP_IS_LWS
    - qpack_encode_header
    - istlen
    linkageType: ''
    returnType: int
    signature: "int h3_encode_header(struct buffer *buf,\n                            const
      struct ist n, const struct ist v)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:2201,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2205,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/h3.c:2205,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2206,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2215,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h3.c:2216,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/h3.c:2217,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/h3.c:2218,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2222,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2223,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/h3.c:2227,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h3.c:2228,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2239,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2241,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:2244,1
    - Dst: qcc_realloc_stream_txbuf
      Src: /src/haproxy/src/h3.c:2245,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2248,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2252,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2256,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2256,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:2260,1
    - Dst: b_tail
      Src: /src/haproxy/src/h3.c:2260,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2260,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2262,1
    - Dst: qpack_encode_field_section_line
      Src: /src/haproxy/src/h3.c:2264,1
    - Dst: qpack_encode_method
      Src: /src/haproxy/src/h3.c:2267,1
    - Dst: ist2
      Src: /src/haproxy/src/h3.c:2279,1
    - Dst: istadv
      Src: /src/haproxy/src/h3.c:2280,1
    - Dst: ist2
      Src: /src/haproxy/src/h3.c:2283,1
    - Dst: istadv
      Src: /src/haproxy/src/h3.c:2287,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:2291,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2293,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2295,1
    - Dst: qpack_encode_scheme
      Src: /src/haproxy/src/h3.c:2298,1
    - Dst: qpack_encode_path
      Src: /src/haproxy/src/h3.c:2301,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:2304,1
    - Dst: qpack_encode_auth
      Src: /src/haproxy/src/h3.c:2305,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2320,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2320,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2330,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2330,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2331,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2331,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2332,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2332,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2333,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2333,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2334,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2334,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2337,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2337,1
    - Dst: istist
      Src: /src/haproxy/src/h3.c:2341,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2341,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:2342,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2344,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:2348,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2348,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2348,1
    - Dst: h3_encode_header
      Src: /src/haproxy/src/h3.c:2351,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:2358,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2358,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2360,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2361,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2361,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:2362,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2362,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2365,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2367,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2368,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2369,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2375,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2380,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2385,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 138
    argCount: 2
    argNames:
    - qcs
    - htx
    argTypes:
    - struct qcs*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2186
    functionDepth: 4
    functionLinenumber: 2186
    functionLinenumberEnd: 2387
    functionName: h3_req_headers_send
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - istadv
    - TRACE_ENTER
    - TRACE_DATA
    - qpack_encode_field_section_line
    - qpack_encode_scheme
    - htx_get_blk_ptr
    - h3_encode_header
    - quic_int_getsize
    - b_putchr
    - htx_sl_req_meth
    - b_contig_space
    - qcc_get_stream_txbuf
    - istlen
    - htx_get_blk_name
    - ist
    - ist2
    - TRACE_DEVEL
    - b_tail
    - htx_get_blk_type
    - isteq
    - b_make
    - htx_sl_req_uri
    - htx_get_head_blk
    - htx_get_next_blk
    - qpack_encode_path
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_add
    - b_quic_enc_int
    - b_data
    - qcc_realloc_stream_txbuf
    - htx_get_blk_value
    - qpack_encode_method
    - qpack_encode_auth
    - TRACE_STATE
    - BUG_ON
    - htx_remove_blk
    - istist
    - isttest
    linkageType: ''
    returnType: int
    signature: int h3_req_headers_send(struct qcs *qcs, struct htx *htx)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:2412,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2416,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/h3.c:2416,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2417,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2427,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h3.c:2428,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2431,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/h3.c:2435,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2436,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:2436,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/h3.c:2440,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2445,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2446,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/h3.c:2449,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h3.c:2450,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/h3.c:2455,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2463,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2465,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:2468,1
    - Dst: qcc_realloc_stream_txbuf
      Src: /src/haproxy/src/h3.c:2469,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2472,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2476,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2481,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2481,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:2491,1
    - Dst: b_tail
      Src: /src/haproxy/src/h3.c:2491,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2491,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2493,1
    - Dst: qpack_encode_field_section_line
      Src: /src/haproxy/src/h3.c:2495,1
    - Dst: qpack_encode_int_status
      Src: /src/haproxy/src/h3.c:2497,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2498,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2512,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2512,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2522,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2522,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2523,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2523,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2524,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2524,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2525,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2525,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2526,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2526,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2529,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2529,1
    - Dst: istist
      Src: /src/haproxy/src/h3.c:2533,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2533,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:2534,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2536,1
    - Dst: h3_encode_header
      Src: /src/haproxy/src/h3.c:2539,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2553,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:2554,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2554,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2556,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2557,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2557,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2560,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2561,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2561,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:2563,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2563,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2566,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2568,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2569,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2570,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2576,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2580,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:2585,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2586,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2590,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2595,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2600,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 134
    argCount: 2
    argNames:
    - qcs
    - htx
    argTypes:
    - struct qcs*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2396
    functionDepth: 4
    functionLinenumber: 2396
    functionLinenumberEnd: 2602
    functionName: h3_resp_headers_send
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - unlikely
    - qpack_encode_int_status
    - isttest
    - htx_get_blksz
    - TRACE_ENTER
    - TRACE_DATA
    - qpack_encode_field_section_line
    - htx_get_blk_ptr
    - h3_encode_header
    - quic_int_getsize
    - b_putchr
    - b_contig_space
    - qcc_get_stream_txbuf
    - htx_get_blk_name
    - ist
    - TRACE_DEVEL
    - b_tail
    - htx_get_blk_type
    - isteq
    - b_make
    - htx_get_head_blk
    - htx_get_next_blk
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_add
    - b_quic_enc_int
    - b_data
    - qcc_realloc_stream_txbuf
    - htx_get_blk_value
    - TRACE_STATE
    - BUG_ON
    - ABORT_NOW
    - htx_remove_blk
    - qcc_release_stream_txbuf
    - istist
    - TRACE_USER
    linkageType: ''
    returnType: int
    signature: int h3_resp_headers_send(struct qcs *qcs, struct htx *htx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:2627,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2635,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/h3.c:2635,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2636,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2645,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2646,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/h3.c:2649,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h3.c:2650,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2654,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2664,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2667,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2669,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2670,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2671,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2678,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:2681,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2683,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2687,1
    - Dst: b_room
      Src: /src/haproxy/src/h3.c:2692,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2693,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:2694,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/h3.c:2702,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/h3.c:2703,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2703,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:2705,1
    - Dst: b_peek
      Src: /src/haproxy/src/h3.c:2705,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2705,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2705,1
    - Dst: qpack_encode_field_section_line
      Src: /src/haproxy/src/h3.c:2707,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2708,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:2709,1
    - Dst: b_tail
      Src: /src/haproxy/src/h3.c:2716,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2718,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2718,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2722,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2722,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2723,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2723,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2724,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2724,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2725,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2725,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2726,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2726,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2727,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2727,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2728,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2728,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2729,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2729,1
    - Dst: h3_encode_header
      Src: /src/haproxy/src/h3.c:2733,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2734,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:2735,1
    - Dst: b_tail
      Src: /src/haproxy/src/h3.c:2744,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2748,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2754,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2756,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2757,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2757,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:2758,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2758,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2762,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2764,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2765,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2766,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2772,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2776,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 114
    argCount: 2
    argNames:
    - qcs
    - htx
    argTypes:
    - struct qcs*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2615
    functionDepth: 4
    functionLinenumber: 2615
    functionLinenumberEnd: 2778
    functionName: h3_resp_trailers_send
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - TRACE_ENTER
    - TRACE_DATA
    - qpack_encode_field_section_line
    - b_room
    - h3_encode_header
    - b_putchr
    - b_contig_space
    - qcc_get_stream_txbuf
    - htx_get_blk_name
    - b_peek
    - ist
    - TRACE_DEVEL
    - b_tail
    - htx_get_blk_type
    - isteq
    - b_make
    - htx_get_head_blk
    - htx_get_next_blk
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_add
    - b_quic_enc_int
    - b_data
    - b_slow_realign
    - htx_get_blk_value
    - b_space_wraps
    - TRACE_STATE
    - htx_remove_blk
    - qcc_release_stream_txbuf
    linkageType: ''
    returnType: int
    signature: int h3_resp_trailers_send(struct qcs *qcs, struct htx *htx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:2800,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h3.c:2803,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2806,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2807,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2808,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:2816,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2818,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2822,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2830,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:2830,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:2830,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2831,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h3.c:2832,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2835,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:2839,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2843,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2844,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:2845,1
    - Dst: b_reset
      Src: /src/haproxy/src/h3.c:2859,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:2860,1
    - Dst: b_tail
      Src: /src/haproxy/src/h3.c:2860,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2860,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:2861,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/h3.c:2861,1
    - Dst: qcc_realign_stream_txbuf
      Src: /src/haproxy/src/h3.c:2863,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:2871,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2872,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:2873,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:2880,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:2881,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2882,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2884,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2886,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2887,1
    - Dst: b_putblk
      Src: /src/haproxy/src/h3.c:2889,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h3.c:2889,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2894,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/h3.c:2896,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:2899,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2899,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2903,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2907,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2908,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 78
    argCount: 4
    argNames:
    - qcs
    - htx
    - buf
    - count
    argTypes:
    - struct qcs*
    - struct htx*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2789
    functionDepth: 4
    functionLinenumber: 2789
    functionLinenumberEnd: 2910
    functionName: h3_resp_data_send
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - qcc_realign_stream_txbuf
    - TRACE_ENTER
    - TRACE_DATA
    - htx_nbblks
    - htx_get_blk_ptr
    - b_putchr
    - b_contig_space
    - qcc_get_stream_txbuf
    - htx_is_empty
    - TRACE_DEVEL
    - b_tail
    - htx_get_blk_type
    - b_make
    - htx_get_head_blk
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_add
    - b_quic_enc_int
    - b_data
    - b_size
    - b_space_wraps
    - TRACE_STATE
    - BUG_ON
    - htx_cut_data_blk
    - b_putblk
    - b_reset
    - qcc_release_stream_txbuf
    - htx_remove_blk
    linkageType: ''
    returnType: int
    signature: "int h3_resp_data_send(struct qcs *qcs, struct htx *htx,\n                             struct
      buffer *buf, size_t count)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:2935,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:2938,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h3.c:2942,1
    - Dst: qcc_stream_can_send
      Src: /src/haproxy/src/h3.c:2942,1
    - Dst: htx_get_head
      Src: /src/haproxy/src/h3.c:2943,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/h3.c:2944,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2945,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2946,1
    - Dst: h3_req_headers_send
      Src: /src/haproxy/src/h3.c:2950,1
    - Dst: h3_resp_headers_send
      Src: /src/haproxy/src/h3.c:2961,1
    - Dst: h3_resp_data_send
      Src: /src/haproxy/src/h3.c:2971,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:2974,1
    - Dst: h3_resp_trailers_send
      Src: /src/haproxy/src/h3.c:2985,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2995,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:3003,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:3004,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:3030,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h3.c:3030,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/h3.c:3031,1
    - Dst: qcc_abort_stream_read
      Src: /src/haproxy/src/h3.c:3036,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h3.c:3041,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/h3.c:3042,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:3045,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3047,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 78
    argCount: 4
    argNames:
    - qcs
    - buf
    - count
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 2923
    functionDepth: 5
    functionLinenumber: 2923
    functionLinenumberEnd: 3049
    functionName: h3_snd_buf
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - TRACE_ENTER
    - htx_get_head
    - h3_resp_trailers_send
    - htx_is_empty
    - htx_get_blk_type
    - qcs_is_close_remote
    - h3_req_headers_send
    - htx_from_buf
    - TRACE_LEAVE
    - qcc_stream_can_send
    - qcc_abort_stream_read
    - qcc_set_error
    - h3_resp_headers_send
    - htx_to_buf
    - htx_get_blk
    - h3_resp_data_send
    - htx_remove_blk
    - TRACE_USER
    linkageType: ''
    returnType: size_t
    signature: size_t h3_snd_buf(struct qcs *qcs, struct buffer *buf, size_t count,
      char *fin)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3058,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:3061,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:3074,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/h3.c:3074,1
    - Dst: qcc_realign_stream_txbuf
      Src: /src/haproxy/src/h3.c:3076,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:3084,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:3085,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:3095,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3105,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - qcs
    - count
    argTypes:
    - struct qcs*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3107
      start: 3051
    functionDepth: 4
    functionLinenumber: 3051
    functionLinenumberEnd: 3107
    functionName: h3_nego_ff
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - qcc_realign_stream_txbuf
    - TRACE_LEAVE
    - TRACE_ENTER
    - qcc_release_stream_txbuf
    - b_contig_space
    - qcc_get_stream_txbuf
    linkageType: ''
    returnType: size_t
    signature: size_t h3_nego_ff(struct qcs *qcs, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3117,1
    - Dst: h3_debug_printf
      Src: /src/haproxy/src/h3.c:3119,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:3122,1
    - Dst: b_sub
      Src: /src/haproxy/src/h3.c:3125,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:3126,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:3127,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:3128,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3135
      start: 3114
    functionDepth: 1
    functionLinenumber: 3114
    functionLinenumberEnd: 3135
    functionName: h3_done_ff
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - b_sub
    - TRACE_ENTER
    - h3_debug_printf
    - TRACE_DATA
    - b_add
    - b_quic_enc_int
    - b_putchr
    linkageType: ''
    returnType: size_t
    signature: size_t h3_done_ff(struct qcs *qcs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3163,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:3164,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:3166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - qcs
    - side
    argTypes:
    - struct qcs*
    - enum qcc_app_ops_close_side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3171
      start: 3149
    functionDepth: 2
    functionLinenumber: 3149
    functionLinenumberEnd: 3171
    functionName: h3_close
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - qcc_set_error
    - qcc_report_glitch
    - TRACE_ERROR
    linkageType: ''
    returnType: int
    signature: int h3_close(struct qcs *qcs, enum qcc_app_ops_close_side side)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3175,1
    - Dst: qcc_send_stream
      Src: /src/haproxy/src/h3.c:3185,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/h3.c:3188,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/h3.c:3193,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/h3.c:3197,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:3199,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - qcs
    - mode
    argTypes:
    - struct qcs*
    - enum qcc_app_ops_lclose_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3206
      start: 3173
    functionDepth: 5
    functionLinenumber: 3173
    functionLinenumberEnd: 3206
    functionName: h3_lclose
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ENTER
    - qcc_reset_stream
    - qcc_send_stream
    - qcc_set_error
    linkageType: ''
    returnType: void
    signature: void h3_lclose(struct qcs *qcs, enum qcc_app_ops_lclose_mode mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3218,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/h3.c:3220,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3222,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/h3.c:3236,1
    - Dst: qcs_wait_http_req
      Src: /src/haproxy/src/h3.c:3239,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/h3.c:3257,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:3259,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/h3.c:3259,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:3261,1
    - Dst: qcc_abort_stream_read
      Src: /src/haproxy/src/h3.c:3262,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/h3.c:3263,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3268,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:3272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - qcs
    - conn_ctx
    argTypes:
    - struct qcs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3274
      start: 3213
    functionDepth: 5
    functionLinenumber: 3213
    functionLinenumberEnd: 3274
    functionName: h3_attach
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_local
    - quic_stream_is_bidi
    - pool_alloc
    - TRACE_ERROR
    - BUG_ON
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - qcc_reset_stream
    - qcc_abort_stream_read
    - qcs_wait_http_req
    linkageType: ''
    returnType: int
    signature: int h3_attach(struct qcs *qcs, void *conn_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3280,1
    - Dst: pool_free
      Src: /src/haproxy/src/h3.c:3282,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3286
      start: 3276
    functionDepth: 1
    functionLinenumber: 3276
    functionLinenumberEnd: 3286
    functionName: h3_detach
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    - pool_free
    linkageType: ''
    returnType: void
    signature: void h3_detach(struct qcs *qcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3302,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:3311,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3315,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:3319,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:3321,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:3322,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:3323,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:3324,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:3326,1
    - Dst: b_room
      Src: /src/haproxy/src/h3.c:3327,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:3327,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/h3.c:3328,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/h3.c:3328,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3330,1
    - Dst: b_force_xfer
      Src: /src/haproxy/src/h3.c:3334,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:3334,1
    - Dst: qcc_send_stream
      Src: /src/haproxy/src/h3.c:3335,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3339,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:3348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - h3c
    argTypes:
    - struct h3c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3350
      start: 3292
    functionDepth: 5
    functionLinenumber: 3292
    functionLinenumberEnd: 3350
    functionName: h3_send_goaway
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - qfctl_sblocked
    - TRACE_LEAVE
    - TRACE_ERROR
    - b_force_xfer
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_int_getsize
    - b_quic_enc_int
    - b_room
    - b_data
    - qcc_send_stream
    - b_make
    - qcc_get_stream_txbuf
    linkageType: ''
    returnType: int
    signature: int h3_send_goaway(struct h3c *h3c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3359,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/h3.c:3361,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3363,1
    - Dst: qc_counters
      Src: /src/haproxy/src/h3.c:3375,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/h3.c:3376,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3378,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:3382,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:3383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3355
    functionDepth: 2
    functionLinenumber: 3355
    functionLinenumberEnd: 3385
    functionName: h3_init
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - qc_counters
    - pool_alloc
    - TRACE_ERROR
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - qcc_set_error
    - LIST_INIT
    linkageType: ''
    returnType: int
    signature: int h3_init(struct qcc *qcc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3400,1
    - Dst: qcc_fctl_avail_streams
      Src: /src/haproxy/src/h3.c:3411,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3412,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:3413,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:3415,1
    - Dst: qcc_init_stream_local
      Src: /src/haproxy/src/h3.c:3419,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:3422,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3423,1
    - Dst: qcs_send_metadata
      Src: /src/haproxy/src/h3.c:3427,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/h3.c:3431,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/h3.c:3431,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:3432,1
    - Dst: h3_control_send
      Src: /src/haproxy/src/h3.c:3443,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:3444,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3448,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:3452,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:3456,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3458
      start: 3394
    functionDepth: 7
    functionLinenumber: 3394
    functionLinenumberEnd: 3458
    functionName: h3_finalize
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - qfctl_sblocked
    - TRACE_STATE
    - TRACE_ERROR
    - BUG_ON
    - TRACE_LEAVE
    - qcs_send_metadata
    - TRACE_ENTER
    - TRACE_DEVEL
    - qcc_fctl_avail_streams
    - qcc_set_error
    - h3_control_send
    - qcc_report_glitch
    - qcc_init_stream_local
    linkageType: ''
    returnType: int
    signature: int h3_finalize(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3465,1
    - Dst: h3_send_goaway
      Src: /src/haproxy/src/h3.c:3474,1
    - Dst: quic_err_app
      Src: /src/haproxy/src/h3.c:3482,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3485
      start: 3461
    functionDepth: 6
    functionLinenumber: 3461
    functionLinenumberEnd: 3485
    functionName: h3_shutdown
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - quic_err_app
    - TRACE_ENTER
    - h3_send_goaway
    linkageType: ''
    returnType: void
    signature: void h3_shutdown(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/h3.c:3490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3491
      start: 3487
    functionDepth: 1
    functionLinenumber: 3487
    functionLinenumberEnd: 3491
    functionName: h3_release
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - pool_free
    linkageType: ''
    returnType: void
    signature: void h3_release(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h3_inc_err_cnt
      Src: /src/haproxy/src/h3.c:3498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - err_code
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3494
    functionDepth: 2
    functionLinenumber: 3494
    functionLinenumberEnd: 3499
    functionName: h3_stats_inc_err_cnt
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - h3_inc_err_cnt
    linkageType: ''
    returnType: void
    signature: void h3_stats_inc_err_cnt(void *ctx, int err_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_err_app
      Src: /src/haproxy/src/h3.c:3504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3505
      start: 3501
    functionDepth: 1
    functionLinenumber: 3501
    functionLinenumberEnd: 3505
    functionName: h3_report_susp
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - quic_err_app
    linkageType: ''
    returnType: void
    signature: void h3_report_susp(void *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3519
      start: 3507
    functionDepth: 0
    functionLinenumber: 3507
    functionLinenumberEnd: 3519
    functionName: h3_ft_str
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *h3_ft_str(uint64_t type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/h3.c:3536,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/h3.c:3538,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/h3.c:3541,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/h3.c:3544,1
    - Dst: h3_ft_str
      Src: /src/haproxy/src/h3.c:3545,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3548
      start: 3522
    functionDepth: 1
    functionLinenumber: 3522
    functionLinenumberEnd: 3548
    functionName: h3_trace
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - h3_ft_str
    linkageType: ''
    returnType: void
    signature: "void h3_trace(enum trace_level level, uint64_t mask,\n                     const
      struct trace_source *src,\n                     const struct ist where, const
      struct ist func,\n                     const void *a1, const void *a2, const
      void *a3, const void *a4)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3562,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/h3.c:3568,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/h3.c:3573,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3575,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/h3.c:3582,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3584,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/h3.c:3585,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/h3.c:3593,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/h3.c:3594,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3597,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - out
    - id
    argTypes:
    - struct list*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3599
      start: 3556
    functionDepth: 2
    functionLinenumber: 3556
    functionLinenumberEnd: 3599
    functionName: h3_reject
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_stream_is_uni
    - qc_frm_free
    - TRACE_ENTER
    - LIST_APPEND
    - qc_frm_alloc
    linkageType: ''
    returnType: int
    signature: int h3_reject(struct list *out, uint64_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tv
    - from
    - ms
    argTypes:
    - struct timeval*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: _tv_ms_add
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *_tv_ms_add(struct timeval *tv, const struct timeval
      *from, int ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __tv_ms_cmp
      Src: /src/haproxy/src/time.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: _tv_ms_cmp
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 1
    functionsReached:
    - __tv_ms_cmp
    linkageType: ''
    returnType: int
    signature: int _tv_ms_cmp(const struct timeval *tv1, const struct timeval *tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __tv_ms_cmp2
      Src: /src/haproxy/src/time.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: _tv_ms_cmp2
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 1
    functionsReached:
    - __tv_ms_cmp2
    linkageType: ''
    returnType: int
    signature: int _tv_ms_cmp2(const struct timeval *tv1, const struct timeval *tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __tv_ms_le2
      Src: /src/haproxy/src/time.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: _tv_ms_le2
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 1
    functionsReached:
    - __tv_ms_le2
    linkageType: ''
    returnType: int
    signature: int _tv_ms_le2(const struct timeval *tv1, const struct timeval *tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __tv_ms_remain
      Src: /src/haproxy/src/time.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: _tv_ms_remain
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 1
    functionsReached:
    - __tv_ms_remain
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _tv_ms_remain(const struct timeval *tv1, const struct
      timeval *tv2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tv_iseternity
      Src: /src/haproxy/src/time.c:79,1
    - Dst: __tv_ms_remain
      Src: /src/haproxy/src/time.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: _tv_ms_remain2
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 0
    functionsReached:
    - tv_iseternity
    - __tv_ms_remain
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _tv_ms_remain2(const struct timeval *tv1, const struct
      timeval *tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __tv_ms_elapsed
      Src: /src/haproxy/src/time.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: _tv_ms_elapsed
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 2
    functionsReached:
    - __tv_ms_elapsed
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _tv_ms_elapsed(const struct timeval *tv1, const struct
      timeval *tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __tv_add
      Src: /src/haproxy/src/time.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tv
    - from
    - inc
    argTypes:
    - struct timeval*
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: _tv_add
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 1
    functionsReached:
    - __tv_add
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *_tv_add(struct timeval *tv, const struct timeval *from,
      const struct timeval *inc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __tv_add_ifset
      Src: /src/haproxy/src/time.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tv
    - from
    - inc
    argTypes:
    - struct timeval*
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: _tv_add_ifset
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 1
    functionsReached:
    - __tv_add_ifset
    linkageType: ''
    returnType: int
    signature: int _tv_add_ifset(struct timeval *tv, const struct timeval *from, const
      struct timeval *inc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __tv_remain
      Src: /src/haproxy/src/time.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tv1
    - tv2
    - tv
    argTypes:
    - struct timeval*
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: _tv_remain
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 1
    functionsReached:
    - __tv_remain
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *_tv_remain(const struct timeval *tv1, const struct
      timeval *tv2, struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __tv_remain2
      Src: /src/haproxy/src/time.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tv1
    - tv2
    - tv
    argTypes:
    - struct timeval*
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: _tv_remain2
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 1
    functionsReached:
    - __tv_remain2
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *_tv_remain2(const struct timeval *tv1, const struct
      timeval *tv2, struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __tv_isle
      Src: /src/haproxy/src/time.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: _tv_isle
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 1
    functionsReached:
    - __tv_isle
    linkageType: ''
    returnType: int
    signature: int _tv_isle(const struct timeval *tv1, const struct timeval *tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __tv_isgt
      Src: /src/haproxy/src/time.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: _tv_isgt
    functionSourceFile: /src/haproxy/src/time.c
    functionUses: 1
    functionsReached:
    - __tv_isgt
    linkageType: ''
    returnType: int
    signature: int _tv_isgt(const struct timeval *tv1, const struct timeval *tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: SPOP_SLEN
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPOP_SLEN(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: spop_strm_sc
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline *spop_strm_sc(const struct spop_strm *spop_strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_opposite
      Src: /src/haproxy/src/mux_spop.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: spop_strm_opposite_sd
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - se_opposite
    linkageType: ''
    returnType: struct sedesc
    signature: struct sedesc *spop_strm_opposite_sd(struct spop_strm *spop_strm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_spop.c:312,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/mux_spop.c:318,1
    - Dst: dump_text_line
      Src: /src/haproxy/src/mux_spop.c:323,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:323,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:323,1
    - Dst: dump_text_line
      Src: /src/haproxy/src/mux_spop.c:331,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:331,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:331,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - buf
    - ofs
    - len
    argTypes:
    - struct buffer*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 336
    functionName: spop_trace_buf
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - b_orig
    - b_contig_data
    - b_peek_ofs
    - dump_text_line
    - b_size
    linkageType: ''
    returnType: void
    signature: void spop_trace_buf(const struct buffer *buf, size_t ofs, size_t len)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:363,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:366,1
    - Dst: spop_conn_st_to_str
      Src: /src/haproxy/src/mux_spop.c:366,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:368,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:370,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:374,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:376,1
    - Dst: spop_strm_st_to_str
      Src: /src/haproxy/src/mux_spop.c:376,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:378,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_spop.c:378,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:379,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:380,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:380,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:380,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:383,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:393,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:394,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:394,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:395,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:395,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_spop.c:398,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:399,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:401,1
    - Dst: br_head_idx
      Src: /src/haproxy/src/mux_spop.c:402,1
    - Dst: br_tail_idx
      Src: /src/haproxy/src/mux_spop.c:402,1
    - Dst: br_size
      Src: /src/haproxy/src/mux_spop.c:402,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:403,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:403,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:404,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:404,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:405,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:405,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:406,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:406,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:411,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:412,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:412,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:413,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:413,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:431,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:432,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:432,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:433,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:433,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:435,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_spop.c:436,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:437,1
    - Dst: spop_trace_buf
      Src: /src/haproxy/src/mux_spop.c:438,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:438,1
    - Dst: spop_trace_buf
      Src: /src/haproxy/src/mux_spop.c:440,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_spop.c:441,1
    - Dst: spop_trace_buf
      Src: /src/haproxy/src/mux_spop.c:442,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:442,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 60
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 446
    functionName: spop_trace
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - b_orig
    - se_fl_get
    - br_head_idx
    - chunk_appendf
    - spop_strm_st_to_str
    - spop_conn_st_to_str
    - b_head_ofs
    - chunk_memcat
    - b_data
    - b_size
    - br_tail_idx
    - br_tail
    - spop_trace_buf
    - spop_strm_sc
    - br_size
    - br_head
    linkageType: ''
    returnType: void
    signature: "void spop_trace(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n\t\t       const struct ist where, const struct ist func,\n\t\t
      \      const void *a1, const void *a2, const void *a3, const void *a4)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_spop.c:462,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:463,1
    - Dst: spop_conn_restart_reading
      Src: /src/haproxy/src/mux_spop.c:465,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_spop.c:469,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:469,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:470,1
    - Dst: spop_conn_restart_reading
      Src: /src/haproxy/src/mux_spop.c:474,1
    - Dst: spop_conn_st_by_id
      Src: /src/haproxy/src/mux_spop.c:480,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:480,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_spop.c:481,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:482,1
    - Dst: spop_conn_restart_reading
      Src: /src/haproxy/src/mux_spop.c:484,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - target
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 489
    functionName: spop_buf_available
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - spop_conn_st_by_id
    - TRACE_STATE
    - br_tail
    - spop_strm_sc
    - spop_conn_restart_reading
    linkageType: ''
    returnType: int
    signature: int spop_buf_available(void *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/mux_spop.c:495,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:495,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:496,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_spop.c:496,1
    - Dst: b_queue
      Src: /src/haproxy/src/mux_spop.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - spop_conn
    - bptr
    argTypes:
    - struct spop_conn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: spop_get_buf
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_alloc
    - b_queue
    - likely
    - LIST_INLIST
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *spop_get_buf(struct spop_conn *spop_conn, struct buffer
      *bptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_free
      Src: /src/haproxy/src/mux_spop.c:505,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_spop.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - spop_conn
    - bptr
    argTypes:
    - struct spop_conn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 508
    functionName: spop_release_buf
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - offer_buffers
    - b_free
    linkageType: ''
    returnType: void
    signature: void spop_release_buf(struct spop_conn *spop_conn, struct buffer *bptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:515,1
    - Dst: br_head_pick
      Src: /src/haproxy/src/mux_spop.c:515,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_spop.c:516,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_spop.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 524
    functionName: spop_release_mbuf
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - b_free
    - b_size
    - offer_buffers
    - br_head_pick
    linkageType: ''
    returnType: void
    signature: void spop_release_mbuf(struct spop_conn *spop_conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:547,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 556
    functionName: spop_recv_allowed
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - b_data
    linkageType: ''
    returnType: int
    signature: int spop_recv_allowed(const struct spop_conn *spop_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tevt_report_event
      Src: /src/haproxy/src/mux_spop.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - spop_conn
    - type
    argTypes:
    - struct spop_conn*
    - enum muxc_term_event_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 563
    functionName: spop_conn_report_term_evt
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - tevt_report_event
    linkageType: ''
    returnType: void
    signature: void spop_conn_report_term_evt(struct spop_conn *spop_conn, enum muxc_term_event_type
      type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spop_recv_allowed
      Src: /src/haproxy/src/mux_spop.c:568,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:570,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - spop_conn
    - consider_buffer
    argTypes:
    - struct spop_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 574
    functionName: spop_conn_restart_reading
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 1
    functionsReached:
    - b_data
    - tasklet_wakeup
    - spop_recv_allowed
    linkageType: ''
    returnType: void
    signature: void spop_conn_restart_reading(const struct spop_conn *spop_conn, int
      consider_buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 587
    functionName: spop_streams_left
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int spop_streams_left(const struct spop_conn *spop_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 598
    functionName: spop_used_streams
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int spop_used_streams(struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/mux_spop.c:603,1
    - Dst: spop_streams_left
      Src: /src/haproxy/src/mux_spop.c:615,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_spop.c:616,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_spop.c:619,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 622
    functionName: spop_avail_streams
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - objt_server
    - spop_streams_left
    - MIN
    linkageType: ''
    returnType: int
    signature: int spop_avail_streams(struct connection *conn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:638,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_spop.c:640,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:642,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_spop.c:647,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_spop.c:654,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_spop.c:655,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:657,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_spop.c:664,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_spop.c:667,1
    - Dst: br_init
      Src: /src/haproxy/src/mux_spop.c:690,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_spop.c:692,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_spop.c:693,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_spop.c:698,1
    - Dst: spop_stconn_new
      Src: /src/haproxy/src/mux_spop.c:705,1
    - Dst: spop_strm_opposite_sd
      Src: /src/haproxy/src/mux_spop.c:712,1
    - Dst: spoe_appctx_agent
      Src: /src/haproxy/src/mux_spop.c:714,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/mux_spop.c:714,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:716,1
    - Dst: spop_conn_restart_reading
      Src: /src/haproxy/src/mux_spop.c:725,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:726,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_spop.c:730,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_spop.c:731,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_spop.c:732,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:735,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 83
    argCount: 4
    argNames:
    - conn
    - px
    - sess
    - input
    argTypes:
    - struct connection*
    - struct proxy*
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 629
    functionDepth: 3
    functionLinenumber: 629
    functionLinenumberEnd: 737
    functionName: spop_init
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - task_queue
    - TRACE_ENTER
    - spop_stconn_new
    - spop_conn_restart_reading
    - task_new_here
    - LIST_INIT
    - pool_alloc
    - task_destroy
    - TRACE_DEVEL
    - tasklet_new
    - sc_appctx
    - pool_free
    - tick_add
    - TRACE_LEAVE
    - TRACE_ERROR
    - br_init
    - tick_isset
    - spop_strm_opposite_sd
    - spoe_appctx_agent
    - tasklet_free
    linkageType: ''
    returnType: int
    signature: "int spop_init(struct connection *conn, struct proxy *px, struct session
      *sess,\n\t\t     struct buffer *input)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:746,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/mux_spop.c:748,1
    - Dst: spop_release_buf
      Src: /src/haproxy/src/mux_spop.c:750,1
    - Dst: spop_release_mbuf
      Src: /src/haproxy/src/mux_spop.c:751,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_spop.c:755,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_spop.c:758,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_spop.c:761,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:763,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_spop.c:766,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:771,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/mux_spop.c:773,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/mux_spop.c:774,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/mux_spop.c:776,1
    - Dst: conn_free
      Src: /src/haproxy/src/mux_spop.c:777,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 779
    functionName: spop_release
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - conn_full_close
    - spop_conn_report_term_evt
    - conn_free
    - task_wakeup
    - TRACE_DEVEL
    - TRACE_POINT
    - spop_release_buf
    - struct connection*::destroy_cb
    - b_dequeue
    - pool_free
    - spop_release_mbuf
    - conn_stop_tracking
    - tasklet_free
    - struct connection*::xprt::unsubscribe
    linkageType: ''
    returnType: void
    signature: void spop_release(struct spop_conn *spop_conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 792
    functionName: spop_conn_get_next_sid
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t spop_conn_get_next_sid(const struct spop_conn *spop_conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup
      Src: /src/haproxy/src/mux_spop.c:805,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_spop.c:808,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - spop_conn
    - id
    argTypes:
    - struct spop_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 809
    functionName: spop_conn_st_by_id
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 1
    functionsReached:
    - container_of
    - eb32_lookup
    linkageType: ''
    returnType: struct spop_strm
    signature: struct spop_strm *spop_conn_st_by_id(struct spop_conn *spop_conn, int
      id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 820
    functionName: spop_conn_read0_pending
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int spop_conn_read0_pending(struct spop_conn *spop_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 831
    functionName: spop_conn_may_expire
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int spop_conn_may_expire(const struct spop_conn *spop_conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:838,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_spop.c:843,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 847
    functionName: spop_conn_is_dead
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - eb_is_empty
    - br_data
    linkageType: ''
    returnType: int
    signature: int spop_conn_is_dead(struct spop_conn *spop_conn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:857,1
    - Dst: spop_conn_may_expire
      Src: /src/haproxy/src/mux_spop.c:859,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_spop.c:861,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_spop.c:863,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_spop.c:868,1
    - Dst: tick_first
      Src: /src/haproxy/src/mux_spop.c:870,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_spop.c:875,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_spop.c:876,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_spop.c:880,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_spop.c:888,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_spop.c:893,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/mux_spop.c:894,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_spop.c:898,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_spop.c:898,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_spop.c:905,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_spop.c:911,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:912,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 915
    functionName: spop_conn_update_timeout
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_conn_may_expire
    - tick_remain
    - statistical_prng_range
    - TRACE_LEAVE
    - br_data
    - task_wakeup
    - task_queue
    - TRACE_ENTER
    - tick_is_le
    - tick_first
    - tick_isset
    - tick_add_ifset
    - tick_add
    linkageType: ''
    returnType: void
    signature: void spop_conn_update_timeout(struct spop_conn *spop_conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - spop_conn
    - err
    argTypes:
    - struct spop_conn*
    - enum spop_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 930
    functionName: spop_conn_error
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void spop_conn_error(struct spop_conn *spop_conn, enum spop_error err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:936,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:940,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_spop.c:942,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - spop_strm
    - err
    argTypes:
    - struct spop_strm*
    - enum spop_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 948
    functionName: spop_strm_error
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - se_fl_set_error
    - TRACE_STATE
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void spop_strm_error(struct spop_strm *spop_strm, enum spop_error err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:954,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:955,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 960
    functionName: spop_strm_notify_recv
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void spop_strm_notify_recv(struct spop_strm *spop_strm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:966,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:968,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 973
    functionName: spop_strm_notify_send
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void spop_strm_notify_send(struct spop_strm *spop_strm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:983,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:984,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:994,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:994,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 995
    functionName: spop_strm_alert
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_strm_sc
    - tasklet_wakeup
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void spop_strm_alert(struct spop_strm *spop_strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_n32
      Src: /src/haproxy/src/mux_spop.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - frame
    - len
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1001
    functionName: spop_set_frame_size
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - write_n32
    linkageType: ''
    returnType: void
    signature: void spop_set_frame_size(void *frame, uint32_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readv_bytes
      Src: /src/haproxy/src/mux_spop.c:1012,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:1012,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_spop.c:1012,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:1012,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - bytes
    - b
    - o
    argTypes:
    - void*
    - size_t
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1013
    functionName: spop_get_buf_bytes
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_wrap
    - b_orig
    - readv_bytes
    linkageType: ''
    returnType: __maybe_unused
    signature: "__maybe_unused spop_get_buf_bytes(void *dst, size_t bytes,\n                                    const
      struct buffer *b, int o)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readv_n16
      Src: /src/haproxy/src/mux_spop.c:1017,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:1017,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_spop.c:1017,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:1017,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - o
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1018
    functionName: spop_get_n16
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - readv_n16
    - b_peek
    - b_orig
    - b_wrap
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused spop_get_n16(const struct buffer *b, int o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readv_n32
      Src: /src/haproxy/src/mux_spop.c:1022,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:1022,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_spop.c:1022,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:1022,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - o
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1023
    functionName: spop_get_n32
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - readv_n32
    - b_peek
    - b_orig
    - b_wrap
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused spop_get_n32(const struct buffer *b, int o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readv_n64
      Src: /src/haproxy/src/mux_spop.c:1027,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:1027,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_spop.c:1027,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:1027,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - o
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1028
    functionName: spop_get_n64
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_wrap
    - readv_n64
    - b_orig
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused spop_get_n64(const struct buffer *b, int o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1036,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:1039,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1046,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:1048,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - b
    - o
    - i
    argTypes:
    - struct buffer*
    - int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1054
    functionName: spop_get_varint
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_data
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused spop_get_varint(const struct buffer *b, int o, uint64_t
      *i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1064,1
    - Dst: spop_get_n32
      Src: /src/haproxy/src/mux_spop.c:1068,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:1070,1
    - Dst: spop_get_n32
      Src: /src/haproxy/src/mux_spop.c:1071,1
    - Dst: spop_get_varint
      Src: /src/haproxy/src/mux_spop.c:1075,1
    - Dst: spop_get_varint
      Src: /src/haproxy/src/mux_spop.c:1079,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - b
    - o
    - hdr
    argTypes:
    - struct buffer*
    - int
    - struct spop_frame_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1087
    functionName: spop_peek_frame_hdr
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - b_peek
    - b_data
    - spop_get_n32
    - spop_get_varint
    linkageType: ''
    returnType: int
    signature: int spop_peek_frame_hdr(const struct buffer *b, int o, struct spop_frame_header
      *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - o
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1095
    functionName: spop_skip_frame_hdr
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - b_del
    linkageType: ''
    returnType: void
    signature: void spop_skip_frame_hdr(struct buffer *b, size_t o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spop_peek_frame_hdr
      Src: /src/haproxy/src/mux_spop.c:1102,1
    - Dst: spop_skip_frame_hdr
      Src: /src/haproxy/src/mux_spop.c:1104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - hdr
    argTypes:
    - struct buffer*
    - struct spop_frame_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1098
    functionDepth: 3
    functionLinenumber: 1098
    functionLinenumberEnd: 1106
    functionName: spop_get_frame_hdr
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_peek_frame_hdr
    - spop_skip_frame_hdr
    linkageType: ''
    returnType: int
    signature: int spop_get_frame_hdr(struct buffer *b, struct spop_frame_header *hdr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1116,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:1120,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:1121,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1121,1
    - Dst: spop_strm_notify_recv
      Src: /src/haproxy/src/mux_spop.c:1122,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1125,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1128
    functionName: spop_strm_close
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_ENTER
    - b_data
    - spop_strm_notify_recv
    - spop_strm_sc
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void spop_strm_close(struct spop_strm *spop_strm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:1136,1
    - Dst: spop_conn_read0_pending
      Src: /src/haproxy/src/mux_spop.c:1138,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:1139,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:1140,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:1141,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:1142,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:1145,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:1147,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:1148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - spop_conn
    - spop_strm
    argTypes:
    - struct spop_conn*
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1149
    functionName: spop_strm_propagate_term_flags
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - se_fl_test
    - spop_conn_read0_pending
    - se_report_term_evt
    linkageType: ''
    returnType: void
    signature: void spop_strm_propagate_term_flags(struct spop_conn *spop_conn, struct
      spop_strm *spop_strm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1159,1
    - Dst: spop_strm_close
      Src: /src/haproxy/src/mux_spop.c:1161,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/mux_spop.c:1162,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:1163,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_spop.c:1164,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_spop.c:1165,1
    - Dst: spop_remove_from_list
      Src: /src/haproxy/src/mux_spop.c:1174,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:1176,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:1176,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_spop.c:1177,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_spop.c:1178,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1155
    functionDepth: 4
    functionLinenumber: 1155
    functionLinenumberEnd: 1181
    functionName: spop_strm_destroy
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - BUG_ON
    - spop_remove_from_list
    - eb32_delete
    - TRACE_ENTER
    - b_free
    - b_size
    - spop_strm_close
    - offer_buffers
    - se_fl_test
    - pool_free
    - sedesc_free
    linkageType: ''
    returnType: void
    signature: void spop_strm_destroy(struct spop_strm *spop_strm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1193,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_spop.c:1195,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:1197,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_spop.c:1202,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/mux_spop.c:1218,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1222,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 2
    argNames:
    - spop_conn
    - id
    argTypes:
    - struct spop_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1228
    functionName: spop_strm_new
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - eb32_insert
    - pool_alloc
    - TRACE_ERROR
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - LIST_INIT
    linkageType: ''
    returnType: struct spop_strm
    signature: struct spop_strm *spop_strm_new(struct spop_conn *spop_conn, int id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1239,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:1241,1
    - Dst: spop_streams_left
      Src: /src/haproxy/src/mux_spop.c:1245,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:1246,1
    - Dst: spop_strm_new
      Src: /src/haproxy/src/mux_spop.c:1251,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:1253,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_spop.c:1256,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1261,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1265,1
    - Dst: spop_strm_destroy
      Src: /src/haproxy/src/mux_spop.c:1267,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - spop_conn
    - sc
    - sess
    argTypes:
    - struct spop_conn*
    - struct stconn*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1234
    functionDepth: 5
    functionLinenumber: 1234
    functionLinenumberEnd: 1269
    functionName: spop_stconn_new
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - sc_attach_mux
    - TRACE_DEVEL
    - TRACE_ENTER
    - spop_strm_new
    - spop_strm_destroy
    - spop_streams_left
    linkageType: ''
    returnType: struct spop_strm
    signature: "struct spop_strm *spop_stconn_new(struct spop_conn *spop_conn, struct
      stconn *sc,\n\t\t\t\t\t struct session *sess)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1280,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:1282,1
    - Dst: spop_strm_destroy
      Src: /src/haproxy/src/mux_spop.c:1284,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1285,1
    - Dst: spop_conn_read0_pending
      Src: /src/haproxy/src/mux_spop.c:1289,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1292,1
    - Dst: spop_strm_close
      Src: /src/haproxy/src/mux_spop.c:1295,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_spop.c:1299,1
    - Dst: spop_strm_propagate_term_flags
      Src: /src/haproxy/src/mux_spop.c:1300,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1308,1
    - Dst: spop_strm_alert
      Src: /src/haproxy/src/mux_spop.c:1312,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1314,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1276
    functionDepth: 5
    functionLinenumber: 1276
    functionLinenumberEnd: 1315
    functionName: spop_strm_wake_one_stream
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_strm_alert
    - TRACE_STATE
    - TRACE_LEAVE
    - se_fl_set_error
    - TRACE_DEVEL
    - TRACE_ENTER
    - spop_conn_read0_pending
    - spop_strm_propagate_term_flags
    - spop_strm_destroy
    - spop_strm_close
    - spop_strm_sc
    linkageType: ''
    returnType: void
    signature: void spop_strm_wake_one_stream(struct spop_strm *spop_strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup
      Src: /src/haproxy/src/mux_spop.c:1323,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_spop.c:1325,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_spop.c:1328,1
    - Dst: spop_strm_wake_one_stream
      Src: /src/haproxy/src/mux_spop.c:1329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1318
    functionDepth: 6
    functionLinenumber: 1318
    functionLinenumberEnd: 1331
    functionName: spop_wake_unassigned_streams
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - container_of
    - spop_strm_wake_one_stream
    - eb32_lookup
    - eb32_next
    linkageType: ''
    returnType: void
    signature: void spop_wake_unassigned_streams(struct spop_conn *spop_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1341,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_spop.c:1344,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_spop.c:1346,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_spop.c:1347,1
    - Dst: spop_strm_wake_one_stream
      Src: /src/haproxy/src/mux_spop.c:1348,1
    - Dst: spop_wake_unassigned_streams
      Src: /src/haproxy/src/mux_spop.c:1350,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - spop_conn
    - last
    argTypes:
    - struct spop_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1336
    functionDepth: 7
    functionLinenumber: 1336
    functionLinenumberEnd: 1353
    functionName: spop_wake_some_streams
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_wake_unassigned_streams
    - TRACE_LEAVE
    - TRACE_ENTER
    - container_of
    - eb32_next
    - eb32_lookup_ge
    - spop_strm_wake_one_stream
    linkageType: ''
    returnType: void
    signature: void spop_wake_some_streams(struct spop_conn *spop_conn, int last)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1369,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:1371,1
    - Dst: spop_get_buf
      Src: /src/haproxy/src/mux_spop.c:1373,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1376,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_spop.c:1382,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:1382,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_spop.c:1382,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_spop.c:1383,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_spop.c:1386,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1386,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_spop.c:1394,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:1397,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:1398,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:1398,1
    - Dst: SPOP_SLEN
      Src: /src/haproxy/src/mux_spop.c:1401,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/mux_spop.c:1402,1
    - Dst: SPOP_SLEN
      Src: /src/haproxy/src/mux_spop.c:1406,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/mux_spop.c:1407,1
    - Dst: SPOP_SLEN
      Src: /src/haproxy/src/mux_spop.c:1411,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/mux_spop.c:1412,1
    - Dst: encode_varint
      Src: /src/haproxy/src/mux_spop.c:1416,1
    - Dst: SPOP_SLEN
      Src: /src/haproxy/src/mux_spop.c:1420,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/mux_spop.c:1421,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_spop.c:1425,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_spop.c:1427,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/mux_spop.c:1430,1
    - Dst: SPOP_SLEN
      Src: /src/haproxy/src/mux_spop.c:1435,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/mux_spop.c:1436,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_spop.c:1440,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/mux_spop.c:1441,1
    - Dst: SPOP_SLEN
      Src: /src/haproxy/src/mux_spop.c:1449,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/mux_spop.c:1450,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:1455,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:1458,1
    - Dst: spop_set_frame_size
      Src: /src/haproxy/src/mux_spop.c:1459,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_spop.c:1460,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1464,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1468,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:1469,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_spop.c:1473,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1477,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1482,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1483,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 107
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1360
    functionDepth: 2
    functionLinenumber: 1360
    functionLinenumberEnd: 1485
    functionName: spop_conn_send_hello
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - get_trash_chunk
    - SPOP_SLEN
    - br_tail
    - b_contig_space
    - spoe_encode_buffer
    - TRACE_DEVEL
    - br_tail_add
    - b_tail
    - b_make
    - TRACE_PROTO
    - spop_get_buf
    - b_orig
    - memcpy
    - TRACE_LEAVE
    - TRACE_ERROR
    - spop_set_frame_size
    - b_add
    - b_data
    - b_size
    - b_slow_realign
    - b_space_wraps
    - TRACE_STATE
    - encode_varint
    - strlen
    linkageType: ''
    returnType: int
    signature: int spop_conn_send_hello(struct spop_conn *spop_conn)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1500,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:1502,1
    - Dst: spop_get_buf
      Src: /src/haproxy/src/mux_spop.c:1504,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1507,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_spop.c:1513,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:1513,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_spop.c:1513,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_spop.c:1514,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_spop.c:1517,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1517,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_spop.c:1525,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:1528,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:1529,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:1529,1
    - Dst: SPOP_SLEN
      Src: /src/haproxy/src/mux_spop.c:1532,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/mux_spop.c:1533,1
    - Dst: encode_varint
      Src: /src/haproxy/src/mux_spop.c:1537,1
    - Dst: SPOP_SLEN
      Src: /src/haproxy/src/mux_spop.c:1541,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/mux_spop.c:1542,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/mux_spop.c:1549,1
    - Dst: istptr
      Src: /src/haproxy/src/mux_spop.c:1549,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_spop.c:1549,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:1552,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:1558,1
    - Dst: spop_set_frame_size
      Src: /src/haproxy/src/mux_spop.c:1559,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_spop.c:1560,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:1567,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:1571,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:1575,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:1588,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:1593,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:1597,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1603,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1607,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_spop.c:1610,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1614,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:1619,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1623,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1624,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 112
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1491
    functionDepth: 2
    functionLinenumber: 1491
    functionLinenumberEnd: 1626
    functionName: spop_conn_send_disconnect
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_conn_report_term_evt
    - TRACE_ENTER
    - SPOP_SLEN
    - br_tail
    - b_contig_space
    - istlen
    - spoe_encode_buffer
    - TRACE_DEVEL
    - br_tail_add
    - b_tail
    - istptr
    - b_make
    - TRACE_PROTO
    - spop_get_buf
    - b_orig
    - memcpy
    - TRACE_LEAVE
    - TRACE_ERROR
    - spop_set_frame_size
    - b_add
    - b_data
    - b_size
    - b_slow_realign
    - b_space_wraps
    - TRACE_STATE
    - encode_varint
    linkageType: ''
    returnType: int
    signature: int spop_conn_send_disconnect(struct spop_conn *spop_conn)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1640,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:1645,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1649,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1651,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:1655,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_spop.c:1655,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/mux_spop.c:1660,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_spop.c:1663,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/mux_spop.c:1678,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1680,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_spop.c:1685,1
    - Dst: memcmp
      Src: /src/haproxy/src/mux_spop.c:1685,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_spop.c:1685,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1690,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/mux_spop.c:1693,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1694,1
    - Dst: spoe_str_to_vsn
      Src: /src/haproxy/src/mux_spop.c:1698,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1700,1
    - Dst: spoe_check_vsn
      Src: /src/haproxy/src/mux_spop.c:1703,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1704,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_spop.c:1709,1
    - Dst: memcmp
      Src: /src/haproxy/src/mux_spop.c:1709,1
    - Dst: SPOP_SLEN
      Src: /src/haproxy/src/mux_spop.c:1709,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1717,1
    - Dst: decode_varint
      Src: /src/haproxy/src/mux_spop.c:1720,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1721,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1725,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_spop.c:1731,1
    - Dst: memcmp
      Src: /src/haproxy/src/mux_spop.c:1731,1
    - Dst: SPOP_SLEN
      Src: /src/haproxy/src/mux_spop.c:1731,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1736,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/mux_spop.c:1739,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1740,1
    - Dst: isspace
      Src: /src/haproxy/src/mux_spop.c:1748,1
    - Dst: strncmp
      Src: /src/haproxy/src/mux_spop.c:1750,1
    - Dst: isspace
      Src: /src/haproxy/src/mux_spop.c:1752,1
    - Dst: memchr
      Src: /src/haproxy/src/mux_spop.c:1757,1
    - Dst: spoe_skip_data
      Src: /src/haproxy/src/mux_spop.c:1766,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1767,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1775,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1779,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:1788,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:1789,1
    - Dst: spop_wake_unassigned_streams
      Src: /src/haproxy/src/mux_spop.c:1792,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1793,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1796,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 124
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1633
    functionDepth: 7
    functionLinenumber: 1633
    functionLinenumberEnd: 1798
    functionName: spop_conn_handle_hello
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memcmp
    - TRACE_ENTER
    - b_contig_data
    - SPOP_SLEN
    - isspace
    - TRACE_DEVEL
    - spoe_check_vsn
    - decode_varint
    - TRACE_PROTO
    - b_head
    - TRACE_LEAVE
    - spop_conn_error
    - spoe_str_to_vsn
    - spoe_decode_buffer
    - b_data
    - b_size
    - spoe_skip_data
    - b_del
    - spop_wake_unassigned_streams
    - b_slow_realign_ofs
    - strncmp
    - memchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int spop_conn_handle_hello(struct spop_conn *spop_conn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1812,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:1817,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1821,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1823,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:1827,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_spop.c:1827,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/mux_spop.c:1828,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_spop.c:1830,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/mux_spop.c:1843,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1845,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_spop.c:1850,1
    - Dst: memcmp
      Src: /src/haproxy/src/mux_spop.c:1850,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_spop.c:1850,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1858,1
    - Dst: decode_varint
      Src: /src/haproxy/src/mux_spop.c:1861,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1862,1
    - Dst: spoe_skip_data
      Src: /src/haproxy/src/mux_spop.c:1886,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1887,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:1893,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:1894,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1896,1
    - Dst: spop_wake_some_streams
      Src: /src/haproxy/src/mux_spop.c:1898,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:1899,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1900,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1904,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1905,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1805
    functionDepth: 8
    functionLinenumber: 1805
    functionLinenumberEnd: 1907
    functionName: spop_conn_handle_disconnect
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memcmp
    - spop_conn_report_term_evt
    - TRACE_ENTER
    - b_contig_data
    - spop_wake_some_streams
    - TRACE_DEVEL
    - decode_varint
    - TRACE_PROTO
    - b_head
    - TRACE_LEAVE
    - spop_conn_error
    - spoe_decode_buffer
    - b_data
    - b_size
    - b_del
    - spoe_skip_data
    - b_slow_realign_ofs
    - TRACE_STATE
    - strlen
    linkageType: ''
    returnType: int
    signature: int spop_conn_handle_disconnect(struct spop_conn *spop_conn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1919,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:1924,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1928,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1930,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:1934,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_spop.c:1934,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/mux_spop.c:1935,1
    - Dst: spop_get_buf
      Src: /src/haproxy/src/mux_spop.c:1938,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1941,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_spop.c:1947,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1949,1
    - Dst: b_putchr
      Src: /src/haproxy/src/mux_spop.c:1952,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_spop.c:1965,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1967,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_spop.c:1971,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:1972,1
    - Dst: spop_strm_close
      Src: /src/haproxy/src/mux_spop.c:1979,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:1982,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1983,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1987,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 2
    argNames:
    - spop_conn
    - spop_strm
    argTypes:
    - struct spop_conn*
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1914
    functionDepth: 3
    functionLinenumber: 1914
    functionLinenumberEnd: 1989
    functionName: spop_conn_handle_ack
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_xfer
    - TRACE_PROTO
    - spop_get_buf
    - b_slow_realign_ofs
    - TRACE_STATE
    - BUG_ON
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - b_contig_data
    - b_room
    - b_data
    - b_size
    - spop_strm_close
    - b_putchr
    linkageType: ''
    returnType: int
    signature: int spop_conn_handle_ack(struct spop_conn *spop_conn, struct spop_strm
      *spop_strm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:1996,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_spop.c:2012,1
    - Dst: spop_strm_notify_send
      Src: /src/haproxy/src/mux_spop.c:2016,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2019,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - spop_conn
    - head
    argTypes:
    - struct spop_conn*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 1992
    functionDepth: 2
    functionLinenumber: 1992
    functionLinenumberEnd: 2020
    functionName: spop_resume_each_sending_spop_strm
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - spop_strm_notify_send
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void spop_resume_each_sending_spop_strm(struct spop_conn *spop_conn,
      struct list *head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_spop.c:2012,1
    - Dst: spop_strm_notify_send
      Src: /src/haproxy/src/mux_spop.c:2016,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1998
    functionDepth: 2
    functionLinenumber: 1998
    functionLinenumberEnd: 2017
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 93
    functionsReached:
    - LIST_DEL_INIT
    - spop_strm_notify_send
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(spop_strm, spop_strm_back, head, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:2035,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_spop.c:2038,1
    - Dst: spop_resume_each_sending_spop_strm
      Src: /src/haproxy/src/mux_spop.c:2041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2031
    functionDepth: 3
    functionLinenumber: 2031
    functionLinenumberEnd: 2043
    functionName: spop_remove_from_list
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 1
    functionsReached:
    - LIST_DEL_INIT
    - LIST_INLIST
    - spop_resume_each_sending_spop_strm
    linkageType: ''
    returnType: void
    signature: void spop_remove_from_list(struct spop_strm *spop_strm)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2052,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:2057,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2059,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2064,1
    - Dst: spop_get_frame_hdr
      Src: /src/haproxy/src/mux_spop.c:2065,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2067,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2072,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2074,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2075,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2079,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2081,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2082,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2087,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2089,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2090,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2102,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2103,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2109,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:2114,1
    - Dst: spop_get_frame_hdr
      Src: /src/haproxy/src/mux_spop.c:2115,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2121,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2122,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2123,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2133,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2137,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2138,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2139,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2143,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2144,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2145,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2149,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2150,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2151,1
    - Dst: spop_conn_st_by_id
      Src: /src/haproxy/src/mux_spop.c:2156,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:2157,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2158,1
    - Dst: spop_conn_read0_pending
      Src: /src/haproxy/src/mux_spop.c:2159,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:2162,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2164,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:2165,1
    - Dst: spop_strm_notify_recv
      Src: /src/haproxy/src/mux_spop.c:2166,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2173,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2174,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2175,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2185,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2186,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2187,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2196,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2197,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2198,1
    - Dst: spop_conn_handle_hello
      Src: /src/haproxy/src/mux_spop.c:2210,1
    - Dst: spop_conn_handle_disconnect
      Src: /src/haproxy/src/mux_spop.c:2214,1
    - Dst: spop_conn_handle_ack
      Src: /src/haproxy/src/mux_spop.c:2218,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:2222,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_spop.c:2224,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2224,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:2225,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:2234,1
    - Dst: spop_conn_send_disconnect
      Src: /src/haproxy/src/mux_spop.c:2235,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2244,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_spop.c:2245,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2245,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:2246,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2250,1
    - Dst: spop_conn_read0_pending
      Src: /src/haproxy/src/mux_spop.c:2262,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2262,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2263,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2265,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2266,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:2270,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:2270,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:2274,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:2274,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:2278,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2279,1
    - Dst: spop_conn_read0_pending
      Src: /src/haproxy/src/mux_spop.c:2280,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:2283,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2285,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:2286,1
    - Dst: spop_strm_notify_recv
      Src: /src/haproxy/src/mux_spop.c:2287,1
    - Dst: spop_conn_restart_reading
      Src: /src/haproxy/src/mux_spop.c:2290,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2292,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 201
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2047
    functionDepth: 9
    functionLinenumber: 2047
    functionLinenumberEnd: 2294
    functionName: spop_process_demux
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - unlikely
    - spop_conn_report_term_evt
    - TRACE_ENTER
    - spop_strm_sc
    - spop_conn_restart_reading
    - se_fl_test
    - eb_is_empty
    - TRACE_DEVEL
    - spop_conn_send_disconnect
    - spop_strm_notify_recv
    - se_fl_set
    - TRACE_PROTO
    - TRACE_LEAVE
    - spop_conn_error
    - TRACE_ERROR
    - spop_conn_handle_ack
    - b_data
    - spop_conn_handle_hello
    - b_del
    - spop_conn_st_by_id
    - TRACE_STATE
    - spop_get_frame_hdr
    - spop_conn_read0_pending
    - MIN
    - spop_conn_handle_disconnect
    linkageType: ''
    returnType: void
    signature: void spop_process_demux(struct spop_conn *spop_conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2302,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:2304,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:2305,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:2306,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:2307,1
    - Dst: spop_conn_send_hello
      Src: /src/haproxy/src/mux_spop.c:2307,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2310,1
    - Dst: spop_resume_each_sending_spop_strm
      Src: /src/haproxy/src/mux_spop.c:2318,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2300
    functionDepth: 3
    functionLinenumber: 2300
    functionLinenumberEnd: 2326
    functionName: spop_process_mux
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TRACE_PROTO
    - TRACE_STATE
    - TRACE_LEAVE
    - TRACE_ENTER
    - spop_conn_send_hello
    - spop_resume_each_sending_spop_strm
    linkageType: ''
    returnType: int
    signature: int spop_process_mux(struct spop_conn *spop_conn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2338,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2341,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2342,1
    - Dst: spop_recv_allowed
      Src: /src/haproxy/src/mux_spop.c:2345,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2346,1
    - Dst: spop_get_buf
      Src: /src/haproxy/src/mux_spop.c:2350,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2352,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_spop.c:2357,1
    - Dst: struct connection*::xprt::rcv_buf
      Src: /src/haproxy/src/mux_spop.c:2358,1
    - Dst: spop_recv_allowed
      Src: /src/haproxy/src/mux_spop.c:2360,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_spop.c:2361,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_spop.c:2362,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_spop.c:2365,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_spop.c:2367,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_spop.c:2368,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2372,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_spop.c:2373,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2377,1
    - Dst: spop_release_buf
      Src: /src/haproxy/src/mux_spop.c:2378,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2383,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2388,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2331
    functionDepth: 2
    functionLinenumber: 2331
    functionLinenumberEnd: 2390
    functionName: spop_recv
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - struct connection*::xprt::rcv_buf
    - spop_get_buf
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_DATA
    - conn_xprt_read0_pending
    - b_room
    - b_data
    - spop_release_buf
    - struct connection*::xprt::subscribe
    - spop_recv_allowed
    linkageType: ''
    returnType: int
    signature: int spop_recv(struct spop_conn *spop_conn)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2401,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2404,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_spop.c:2407,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:2407,1
    - Dst: spop_process_mux
      Src: /src/haproxy/src/mux_spop.c:2444,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_spop.c:2455,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:2455,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_spop.c:2455,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2456,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/mux_spop.c:2459,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2459,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_spop.c:2465,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:2466,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2467,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_spop.c:2472,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_spop.c:2477,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2481,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:2487,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_spop.c:2490,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:2490,1
    - Dst: spop_resume_each_sending_spop_strm
      Src: /src/haproxy/src/mux_spop.c:2498,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_spop.c:2502,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2503,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2508,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_spop.c:2509,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2512,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 73
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2395
    functionDepth: 4
    functionLinenumber: 2395
    functionLinenumberEnd: 2515
    functionName: spop_send
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_process_mux
    - spop_conn_report_term_evt
    - br_data
    - TRACE_ENTER
    - TRACE_DATA
    - br_tail
    - offer_buffers
    - br_head
    - TRACE_DEVEL
    - br_del_head
    - b_free
    - b_data
    - b_size
    - spop_resume_each_sending_spop_strm
    - struct connection*::xprt::subscribe
    - b_del
    - TRACE_STATE
    - struct connection*::xprt::snd_buf
    - b_reset
    linkageType: ''
    returnType: int
    signature: int spop_send(struct spop_conn *spop_conn)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_spop.c:2531,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2537,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_spop.c:2538,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:2542,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:2547,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:2549,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_spop.c:2550,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:2552,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:2554,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_spop.c:2556,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2562,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2566,1
    - Dst: spop_send
      Src: /src/haproxy/src/mux_spop.c:2571,1
    - Dst: spop_recv
      Src: /src/haproxy/src/mux_spop.c:2573,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2574,1
    - Dst: spop_process
      Src: /src/haproxy/src/mux_spop.c:2575,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_spop.c:2586,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/mux_spop.c:2590,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/mux_spop.c:2596,1
    - Dst: srv_add_idle
      Src: /src/haproxy/src/mux_spop.c:2597,1
    - Dst: spop_release
      Src: /src/haproxy/src/mux_spop.c:2608,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2519
    functionDepth: 5
    functionLinenumber: 2519
    functionLinenumberEnd: 2610
    functionName: spop_io_cb
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_send
    - BUG_ON
    - srv_add_idle
    - HA_SPIN_UNLOCK
    - conn_delete_from_tree
    - HA_SPIN_LOCK
    - TRACE_ENTER
    - TRACE_POINT
    - spop_recv
    - session_reinsert_idle_conn
    - b_data
    - spop_release
    - session_detach_idle_conn
    - LIST_INLIST
    - ASSUME_NONNULL
    - objt_server
    - spop_process
    - tasklet_free
    linkageType: ''
    returnType: struct task
    signature: struct task *spop_io_cb(struct task *t, void *ctx, unsigned int state)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:2620,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2623,1
    - Dst: spop_process_demux
      Src: /src/haproxy/src/mux_spop.c:2624,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_spop.c:2627,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_spop.c:2629,1
    - Dst: spop_send
      Src: /src/haproxy/src/mux_spop.c:2632,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_spop.c:2644,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_spop.c:2647,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:2648,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:2648,1
    - Dst: spop_strm_notify_recv
      Src: /src/haproxy/src/mux_spop.c:2649,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_spop.c:2650,1
    - Dst: spop_conn_read0_pending
      Src: /src/haproxy/src/mux_spop.c:2654,1
    - Dst: spop_wake_some_streams
      Src: /src/haproxy/src/mux_spop.c:2656,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:2658,1
    - Dst: spop_release
      Src: /src/haproxy/src/mux_spop.c:2660,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2661,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_spop.c:2667,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_spop.c:2668,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2669,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2673,1
    - Dst: spop_release_buf
      Src: /src/haproxy/src/mux_spop.c:2674,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_spop.c:2677,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_spop.c:2677,1
    - Dst: spop_release_mbuf
      Src: /src/haproxy/src/mux_spop.c:2678,1
    - Dst: spop_conn_update_timeout
      Src: /src/haproxy/src/mux_spop.c:2680,1
    - Dst: spop_send
      Src: /src/haproxy/src/mux_spop.c:2681,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2682,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2684
      start: 2616
    functionDepth: 10
    functionLinenumber: 2616
    functionLinenumberEnd: 2684
    functionName: spop_process
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 1
    functionsReached:
    - br_data
    - HA_SPIN_LOCK
    - eb32_next
    - b_room
    - spop_wake_some_streams
    - spop_release
    - spop_release_buf
    - spop_strm_sc
    - se_fl_test
    - spop_conn_update_timeout
    - eb_is_empty
    - TRACE_DEVEL
    - container_of
    - eb32_lookup_ge
    - spop_strm_notify_recv
    - spop_release_mbuf
    - TRACE_LEAVE
    - conn_delete_from_tree
    - b_data
    - spop_process_demux
    - spop_send
    - HA_SPIN_UNLOCK
    - spop_conn_read0_pending
    - TRACE_POINT
    - LIST_ISEMPTY
    - b_reset
    linkageType: ''
    returnType: int
    signature: int spop_process(struct spop_conn *spop_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:2691,1
    - Dst: spop_process
      Src: /src/haproxy/src/mux_spop.c:2692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2687
    functionDepth: 11
    functionLinenumber: 2687
    functionLinenumberEnd: 2693
    functionName: spop_wake
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_process
    - TRACE_POINT
    linkageType: ''
    returnType: int
    signature: int spop_wake(struct connection *conn)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - conn
    - mux_ctl
    - output
    argTypes:
    - struct connection*
    - enum mux_ctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2695
    functionDepth: 0
    functionLinenumber: 2695
    functionLinenumberEnd: 2717
    functionName: spop_ctl
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int spop_ctl(struct connection *conn, enum mux_ctl_type mux_ctl, void
      *output)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_spop.c:2722,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_spop.c:2733,1
    - Dst: spop_dump_spop_strm_info
      Src: /src/haproxy/src/mux_spop.c:2736,1
    - Dst: spop_dump_spop_conn_info
      Src: /src/haproxy/src/mux_spop.c:2739,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:2742,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_spop.c:2744,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - sc
    - mux_sctl
    - output
    argTypes:
    - struct stconn*
    - enum mux_sctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2719
    functionDepth: 2
    functionLinenumber: 2719
    functionLinenumberEnd: 2754
    functionName: spop_sctl
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - get_trash_chunk
    - __sc_mux_strm
    - spop_dump_spop_strm_info
    - tevt_evts2str
    - spop_dump_spop_conn_info
    linkageType: ''
    returnType: int
    signature: int spop_sctl(struct stconn *sc, enum mux_sctl_type mux_sctl, void
      *output)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_spop.c:2765,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2767,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_spop.c:2770,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2776,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2782,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2783,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_spop.c:2791,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_spop.c:2793,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2795,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:2797,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_spop.c:2801,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2805,1
    - Dst: spop_wake_some_streams
      Src: /src/haproxy/src/mux_spop.c:2811,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_spop.c:2813,1
    - Dst: spop_conn_send_disconnect
      Src: /src/haproxy/src/mux_spop.c:2820,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_spop.c:2823,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/mux_spop.c:2824,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_spop.c:2828,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:2828,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_spop.c:2828,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2829,1
    - Dst: struct spop_conn*::conn::xprt::snd_buf
      Src: /src/haproxy/src/mux_spop.c:2830,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2831,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:2834,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2835,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_spop.c:2837,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_spop.c:2843,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:2850,1
    - Dst: spop_release
      Src: /src/haproxy/src/mux_spop.c:2851,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2853,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2855
      start: 2762
    functionDepth: 8
    functionLinenumber: 2762
    functionLinenumberEnd: 2855
    functionName: spop_timeout_task
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_conn_report_term_evt
    - br_data
    - TRACE_ENTER
    - HA_SPIN_LOCK
    - spop_wake_some_streams
    - spop_release
    - offer_buffers
    - struct spop_conn*::conn::xprt::snd_buf
    - br_head
    - task_destroy
    - eb_is_empty
    - conn_xprt_ready
    - TRACE_DEVEL
    - tick_is_expired
    - spop_conn_send_disconnect
    - TRACE_LEAVE
    - conn_delete_from_tree
    - br_del_head
    - b_free
    - b_data
    - b_size
    - b_del
    - HA_SPIN_UNLOCK
    - session_detach_idle_conn
    linkageType: ''
    returnType: struct task
    signature: struct task *spop_timeout_task(struct task *t, void *context, unsigned
      int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - out
    - es
    argTypes:
    - struct buffer*
    - struct error_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2866
    functionDepth: 0
    functionLinenumber: 2866
    functionLinenumberEnd: 2870
    functionName: spop_show_error_snapshot
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __maybe_unused
    signature: __maybe_unused spop_show_error_snapshot(struct buffer *out, const struct
      error_snapshot *es)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - spop_conn
    - spop_strm
    - buf
    argTypes:
    - struct spop_conn*
    - struct spop_strm*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2883
      start: 2879
    functionDepth: 0
    functionLinenumber: 2879
    functionLinenumberEnd: 2883
    functionName: spop_strm_capture_bad_message
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __maybe_unused
    signature: "__maybe_unused spop_strm_capture_bad_message(struct spop_conn *spop_conn,
      struct spop_strm *spop_strm,\n\t\t\t\t\t\t\t struct buffer *buf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2897,1
    - Dst: spop_stconn_new
      Src: /src/haproxy/src/mux_spop.c:2898,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/mux_spop.c:2903,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/mux_spop.c:2904,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2906,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2910,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - conn
    - sd
    - sess
    argTypes:
    - struct connection*
    - struct sedesc*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2892
    functionDepth: 6
    functionLinenumber: 2892
    functionLinenumberEnd: 2912
    functionName: spop_attach
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - xprt_set_used
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - spop_stconn_new
    - HA_ATOMIC_AND
    linkageType: ''
    returnType: int
    signature: int spop_attach(struct connection *conn, struct sedesc *sd, struct
      session *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_spop.c:2925,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_spop.c:2927,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:2928,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:2929,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_spop.c:2930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2933
      start: 2919
    functionDepth: 1
    functionLinenumber: 2919
    functionLinenumberEnd: 2933
    functionName: spop_get_first_sc
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_strm_sc
    - eb32_first
    - container_of
    - eb32_next
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *spop_get_first_sc(const struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:2942,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:2943,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:2944,1
    - Dst: spop_release
      Src: /src/haproxy/src/mux_spop.c:2945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2947
      start: 2938
    functionDepth: 4
    functionLinenumber: 2938
    functionLinenumberEnd: 2947
    functionName: spop_destroy
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_release
    - BUG_ON
    - eb_is_empty
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void spop_destroy(void *ctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2958,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2961,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2979,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_spop.c:2983,1
    - Dst: spop_conn_update_timeout
      Src: /src/haproxy/src/mux_spop.c:2984,1
    - Dst: spop_conn_restart_reading
      Src: /src/haproxy/src/mux_spop.c:2992,1
    - Dst: spop_strm_destroy
      Src: /src/haproxy/src/mux_spop.c:2995,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/mux_spop.c:3000,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:3002,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:3003,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_spop.c:3005,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_spop.c:3005,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3006,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_spop.c:3013,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_spop.c:3014,1
    - Dst: session_check_idle_conn
      Src: /src/haproxy/src/mux_spop.c:3017,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_spop.c:3018,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_spop.c:3018,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3019,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3027,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:3032,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/mux_spop.c:3037,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_spop.c:3044,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_spop.c:3045,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_spop.c:3047,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_spop.c:3047,1
    - Dst: CALL_MUX_NO_RET
      Src: /src/haproxy/src/mux_spop.c:3049,1
    - Dst: destroy
      Src: /src/haproxy/src/mux_spop.c:3049,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3050,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3057,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/mux_spop.c:3060,1
    - Dst: spop_avail_streams
      Src: /src/haproxy/src/mux_spop.c:3061,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_spop.c:3061,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:3062,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/mux_spop.c:3063,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_spop.c:3063,1
    - Dst: spop_conn_is_dead
      Src: /src/haproxy/src/mux_spop.c:3071,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3073,1
    - Dst: spop_release
      Src: /src/haproxy/src/mux_spop.c:3074,1
    - Dst: spop_conn_update_timeout
      Src: /src/haproxy/src/mux_spop.c:3077,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3078,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3081,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3082
      start: 2952
    functionDepth: 5
    functionLinenumber: 2952
    functionLinenumberEnd: 3082
    functionName: spop_detach
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_avail_streams
    - TRACE_ENTER
    - spop_release
    - HA_ATOMIC_OR
    - objt_server
    - spop_conn_restart_reading
    - spop_conn_update_timeout
    - eb_is_empty
    - TRACE_DEVEL
    - srv_add_to_avail_list
    - destroy
    - spop_conn_is_dead
    - TRACE_LEAVE
    - CALL_MUX_NO_RET
    - spop_strm_destroy
    - LIST_INLIST
    - session_check_idle_conn
    - __objt_server
    - session_add_conn
    - srv_add_to_idle_list
    - tick_isset
    - ceb_intree
    - xprt_set_idle
    - session_unown_conn
    linkageType: ''
    returnType: void
    signature: void spop_detach(struct sedesc *sd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:3089,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:3098,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:3100,1
    - Dst: spop_strm_close
      Src: /src/haproxy/src/mux_spop.c:3104,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:3107,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3085
    functionDepth: 3
    functionLinenumber: 3085
    functionLinenumberEnd: 3111
    functionName: spop_do_shutr
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - spop_strm_close
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void spop_do_shutr(struct spop_strm *spop_strm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:3118,1
    - Dst: spop_strm_close
      Src: /src/haproxy/src/mux_spop.c:3126,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:3132,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:3133,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:3139,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3143
      start: 3114
    functionDepth: 3
    functionLinenumber: 3114
    functionLinenumberEnd: 3143
    functionName: spop_do_shutw
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_ENTER
    - spop_strm_close
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void spop_do_shutw(struct spop_strm *spop_strm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_spop.c:3148,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:3150,1
    - Dst: spop_do_shutw
      Src: /src/haproxy/src/mux_spop.c:3152,1
    - Dst: spop_do_shutr
      Src: /src/haproxy/src/mux_spop.c:3154,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sc
    - mode
    - reason
    argTypes:
    - struct stconn*
    - enum se_shut_mode
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3146
    functionDepth: 4
    functionLinenumber: 3146
    functionLinenumberEnd: 3156
    functionName: spop_shut
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - spop_do_shutr
    - TRACE_ENTER
    - __sc_mux_strm
    - spop_do_shutw
    linkageType: ''
    returnType: void
    signature: void spop_shut(struct stconn *sc, enum se_shut_mode mode, struct se_abort_info
      *reason)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_spop.c:3165,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:3168,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:3169,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3175,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3178,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:3179,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_spop.c:3180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3163
    functionDepth: 1
    functionLinenumber: 3163
    functionLinenumberEnd: 3183
    functionName: spop_subscribe
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - TRACE_DEVEL
    - LIST_APPEND
    - __sc_mux_strm
    - LIST_INLIST
    linkageType: ''
    returnType: int
    signature: int spop_subscribe(struct stconn *sc, int event_type, struct wait_event
      *es)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_spop.c:3191,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:3194,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:3195,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3202,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3205,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_spop.c:3207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - sc
    - event_type
    - es
    argTypes:
    - struct stconn*
    - int
    - struct wait_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 3189
    functionDepth: 1
    functionLinenumber: 3189
    functionLinenumberEnd: 3210
    functionName: spop_unsubscribe
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - TRACE_DEVEL
    - BUG_ON
    - LIST_DEL_INIT
    linkageType: ''
    returnType: int
    signature: int spop_unsubscribe(struct stconn *sc, int event_type, struct wait_event
      *es)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:3227,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:3229,1
    - Dst: spop_get_buf
      Src: /src/haproxy/src/mux_spop.c:3231,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:3234,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_spop.c:3240,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:3240,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_spop.c:3240,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_spop.c:3241,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_spop.c:3244,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3244,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_spop.c:3251,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:3254,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:3255,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3255,1
    - Dst: encode_varint
      Src: /src/haproxy/src/mux_spop.c:3257,1
    - Dst: encode_varint
      Src: /src/haproxy/src/mux_spop.c:3259,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_spop.c:3265,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:3265,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:3268,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:3274,1
    - Dst: spop_set_frame_size
      Src: /src/haproxy/src/mux_spop.c:3275,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_spop.c:3277,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:3278,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3282,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3286,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_spop.c:3289,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:3293,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:3298,1
    - Dst: spop_strm_error
      Src: /src/haproxy/src/mux_spop.c:3299,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3302,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 3
    argNames:
    - spop_strm
    - buf
    - count
    argTypes:
    - struct spop_strm*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3304
      start: 3218
    functionDepth: 2
    functionLinenumber: 3218
    functionLinenumberEnd: 3304
    functionName: spop_strm_send_notify
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - br_tail
    - b_contig_space
    - b_peek
    - TRACE_DEVEL
    - br_tail_add
    - b_tail
    - b_make
    - TRACE_PROTO
    - spop_get_buf
    - b_orig
    - memcpy
    - TRACE_LEAVE
    - TRACE_ERROR
    - spop_set_frame_size
    - b_add
    - b_data
    - b_size
    - b_slow_realign
    - b_del
    - spop_strm_error
    - b_space_wraps
    - TRACE_STATE
    - encode_varint
    linkageType: ''
    returnType: size_t
    signature: size_t spop_strm_send_notify(struct spop_strm *spop_strm, struct buffer
      *buf, size_t count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_spop.c:3320,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:3324,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_spop.c:3326,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_spop.c:3326,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3326,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3327,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:3328,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_spop.c:3330,1
    - Dst: spop_strm_propagate_term_flags
      Src: /src/haproxy/src/mux_spop.c:3331,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3332,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_spop.c:3333,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_spop.c:3334,1
    - Dst: spop_conn_restart_reading
      Src: /src/haproxy/src/mux_spop.c:3341,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3346
      start: 3318
    functionDepth: 3
    functionLinenumber: 3318
    functionLinenumberEnd: 3346
    functionName: spop_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - b_xfer
    - TRACE_LEAVE
    - spop_strm_propagate_term_flags
    - TRACE_ENTER
    - b_free
    - __sc_mux_strm
    - b_data
    - se_fl_clr
    - MIN
    - b_size
    - spop_conn_restart_reading
    - offer_buffers
    linkageType: ''
    returnType: size_t
    signature: size_t spop_rcv_buf(struct stconn *sc, struct buffer *buf, size_t count,
      int flags)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_spop.c:3355,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:3360,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_spop.c:3366,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:3367,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3368,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3370,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3379,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:3384,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:3385,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3386,1
    - Dst: spop_conn_get_next_sid
      Src: /src/haproxy/src/mux_spop.c:3392,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:3395,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3396,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/mux_spop.c:3401,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/mux_spop.c:3406,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:3410,1
    - Dst: spop_strm_send_notify
      Src: /src/haproxy/src/mux_spop.c:3414,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3421,1
    - Dst: spop_strm_error
      Src: /src/haproxy/src/mux_spop.c:3423,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3435,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_spop.c:3436,1
    - Dst: spop_strm_close
      Src: /src/haproxy/src/mux_spop.c:3437,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3442,1
    - Dst: spop_send
      Src: /src/haproxy/src/mux_spop.c:3443,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:3444,1
    - Dst: spop_remove_from_list
      Src: /src/haproxy/src/mux_spop.c:3451,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3452,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3455,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3457
      start: 3353
    functionDepth: 5
    functionLinenumber: 3353
    functionLinenumberEnd: 3457
    functionName: spop_snd_buf
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - se_fl_set_error
    - TRACE_ENTER
    - b_peek
    - eb32_insert
    - TRACE_DEVEL
    - spop_strm_close
    - se_fl_set
    - TRACE_LEAVE
    - spop_conn_get_next_sid
    - tasklet_wakeup
    - LIST_INLIST
    - se_report_term_evt
    - spop_strm_error
    - spop_send
    - spop_remove_from_list
    - eb32_delete
    - __sc_mux_strm
    - LIST_ISEMPTY
    - spop_strm_send_notify
    linkageType: ''
    returnType: size_t
    signature: size_t spop_snd_buf(struct stconn *sc, struct buffer *buf, size_t count,
      int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3471,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3473,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:3473,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:3474,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3474,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:3475,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3478,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3480,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_spop.c:3480,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_spop.c:3480,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:3481,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3482,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:3483,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:3483,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_spop.c:3483,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:3483,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3486,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3488,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3490,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3491,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/mux_spop.c:3496,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3497,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - msg
    - spop_strm
    - pfx
    argTypes:
    - struct buffer*
    - struct spop_strm*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3500
      start: 3464
    functionDepth: 6
    functionLinenumber: 3464
    functionLinenumberEnd: 3500
    functionName: spop_dump_spop_strm_info
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 1
    functionsReached:
    - b_orig
    - se_fl_get
    - chunk_appendf
    - b_head_ofs
    - b_data
    - b_size
    - tevt_evts2str
    - spop_strm_sc
    - se_fl_test
    - resolve_sym_name
    linkageType: ''
    returnType: int
    signature: int spop_dump_spop_strm_info(struct buffer *msg, const struct spop_strm
      *spop_strm, const char *pfx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mux_spop.c:3520,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_spop.c:3524,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_spop.c:3526,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:3528,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_spop.c:3530,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_spop.c:3533,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:3534,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3535,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_spop.c:3538,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3541,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3543,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3545,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:3545,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:3546,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3546,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3550,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3552,1
    - Dst: br_head_idx
      Src: /src/haproxy/src/mux_spop.c:3553,1
    - Dst: br_tail_idx
      Src: /src/haproxy/src/mux_spop.c:3553,1
    - Dst: br_size
      Src: /src/haproxy/src/mux_spop.c:3553,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3554,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:3554,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:3555,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3555,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3556,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:3556,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:3557,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3557,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3559,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3561,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_spop.c:3562,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_spop.c:3563,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_spop.c:3563,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_spop.c:3563,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - msg
    - spop_conn
    - pfx
    argTypes:
    - struct buffer*
    - struct spop_conn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3567
      start: 3507
    functionDepth: 2
    functionLinenumber: 3507
    functionLinenumberEnd: 3567
    functionName: spop_dump_spop_conn_info
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 1
    functionsReached:
    - chunk_appendf
    - TICKS_TO_MS
    - eb32_next
    - br_tail
    - tevt_evts2str
    - spop_strm_sc
    - br_size
    - br_head
    - container_of
    - b_head_ofs
    - tick_is_expired
    - br_head_idx
    - human_time
    - b_orig
    - b_data
    - b_size
    - br_tail_idx
    - list_for_each_entry
    - eb32_first
    linkageType: ''
    returnType: int
    signature: int spop_dump_spop_conn_info(struct buffer *msg, struct spop_conn *spop_conn,
      const char *pfx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spop_dump_spop_conn_info
      Src: /src/haproxy/src/mux_spop.c:3580,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_spop.c:3582,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_spop.c:3584,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3585,1
    - Dst: spop_dump_spop_strm_info
      Src: /src/haproxy/src/mux_spop.c:3586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - msg
    - conn
    argTypes:
    - struct buffer*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3590
      start: 3570
    functionDepth: 7
    functionLinenumber: 3570
    functionLinenumberEnd: 3590
    functionName: spop_show_fd
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - container_of
    - eb32_first
    - spop_dump_spop_strm_info
    - spop_dump_spop_conn_info
    linkageType: ''
    returnType: int
    signature: int spop_show_fd(struct buffer *msg, struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3605,1
    - Dst: spop_dump_spop_strm_info
      Src: /src/haproxy/src/mux_spop.c:3606,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3608,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3609,1
    - Dst: spop_dump_spop_conn_info
      Src: /src/haproxy/src/mux_spop.c:3610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - msg
    - sd
    - pfx
    argTypes:
    - struct buffer*
    - struct sedesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3612
      start: 3597
    functionDepth: 7
    functionLinenumber: 3597
    functionLinenumberEnd: 3612
    functionName: spop_show_sd
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_dump_spop_conn_info
    - chunk_appendf
    - spop_dump_spop_strm_info
    linkageType: ''
    returnType: int
    signature: int spop_show_sd(struct buffer *msg, struct sedesc *sd, const char
      *pfx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:3633,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_spop.c:3641,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_spop.c:3642,1
    - Dst: fd_takeover
      Src: /src/haproxy/src/mux_spop.c:3647,1
    - Dst: struct connection*::xprt::takeover
      Src: /src/haproxy/src/mux_spop.c:3650,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_spop.c:3657,1
    - Dst: struct spop_conn*::conn::xprt::unsubscribe
      Src: /src/haproxy/src/mux_spop.c:3662,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/mux_spop.c:3672,1
    - Dst: task_kill
      Src: /src/haproxy/src/mux_spop.c:3673,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_spop.c:3687,1
    - Dst: struct spop_conn*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_spop.c:3693,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_spop.c:3698,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_spop.c:3702,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_spop.c:3703,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - conn
    - orig_tid
    - release
    argTypes:
    - struct connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3618
    functionDepth: 2
    functionLinenumber: 3618
    functionLinenumberEnd: 3705
    functionName: spop_takeover
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - __task_free
    - task_kill
    - tasklet_wakeup_on
    - tasklet_new
    - fd_takeover
    - tasklet_free
    - struct spop_conn*::conn::xprt::unsubscribe
    - __ha_barrier_store
    - LIST_INLIST
    - struct connection*::xprt::takeover
    - struct spop_conn*::conn::xprt::subscribe
    - task_new_here
    linkageType: ''
    returnType: int
    signature: int spop_takeover(struct connection *conn, int orig_tid, int release)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __objt_proxy
      Src: /src/haproxy/src/stats-file.c:50,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/stats-file.c:54,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stats-file.c:59,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stats-file.c:63,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-file.c:71,1
    - Dst: field_format
      Src: /src/haproxy/src/stats-file.c:77,1
    - Dst: stats_emit_raw_data_field
      Src: /src/haproxy/src/stats-file.c:80,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-file.c:82,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-file.c:86,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - out
    - line
    - stats_count
    - ctx
    argTypes:
    - struct buffer*
    - struct field*
    - size_t
    - struct show_stat_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 88
    functionName: stats_dump_fields_file
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 1
    functionsReached:
    - __objt_server
    - chunk_strcat
    - chunk_appendf
    - __objt_proxy
    - ABORT_NOW
    - field_format
    - stats_emit_raw_data_field
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: "int stats_dump_fields_file(struct buffer *out,\n                           const
      struct field *line, size_t stats_count,\n                           struct show_stat_ctx
      *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:96,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-file.c:99,1
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats-file.c:102,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-file.c:104,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-file.c:109,1
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats-file.c:112,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-file.c:114,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-file.c:119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - type
    - out
    argTypes:
    - int
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 120
    functionName: stats_dump_file_header
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 1
    functionsReached:
    - chunk_strcat
    - stcol_is_generic
    - chunk_appendf
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void stats_dump_file_header(int type, struct buffer *out)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: iststrip
      Src: /src/haproxy/src/stats-file.c:141,1
    - Dst: istptr
      Src: /src/haproxy/src/stats-file.c:142,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-file.c:142,1
    - Dst: istsplit
      Src: /src/haproxy/src/stats-file.c:143,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-file.c:149,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-file.c:149,1
    - Dst: isteq
      Src: /src/haproxy/src/stats-file.c:152,1
    - Dst: ist
      Src: /src/haproxy/src/stats-file.c:152,1
    - Dst: isteq
      Src: /src/haproxy/src/stats-file.c:154,1
    - Dst: ist
      Src: /src/haproxy/src/stats-file.c:154,1
    - Dst: istsplit
      Src: /src/haproxy/src/stats-file.c:158,1
    - Dst: isteq
      Src: /src/haproxy/src/stats-file.c:159,1
    - Dst: ist
      Src: /src/haproxy/src/stats-file.c:159,1
    - Dst: memset
      Src: /src/haproxy/src/stats-file.c:170,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-file.c:173,1
    - Dst: istsplit
      Src: /src/haproxy/src/stats-file.c:179,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/stats-file.c:180,1
    - Dst: ist0
      Src: /src/haproxy/src/stats-file.c:180,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stats-file.c:186,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 4
    argNames:
    - header
    - st_tree
    - domain
    - cols
    argTypes:
    - struct ist
    - struct eb_root*
    - enum stfile_domain*
    - struct stat_col*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 208
    functionName: parse_header_line
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - ist
    - memset
    - iststrip
    - ist0
    - istsplit
    - ebst_lookup
    - ebmb_entry
    - isteq
    - istptr
    - istlen
    linkageType: ''
    returnType: int
    signature: "int parse_header_line(struct ist header, struct eb_root *st_tree,\n
      \                            enum stfile_domain *domain,\n                             const
      struct stat_col *cols[])"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stcol_nature
      Src: /src/haproxy/src/stats-file.c:218,1
    - Dst: stcol_format
      Src: /src/haproxy/src/stats-file.c:219,1
    - Dst: istptr
      Src: /src/haproxy/src/stats-file.c:220,1
    - Dst: read_uint64
      Src: /src/haproxy/src/stats-file.c:225,1
    - Dst: istend
      Src: /src/haproxy/src/stats-file.c:225,1
    - Dst: read_uint
      Src: /src/haproxy/src/stats-file.c:230,1
    - Dst: istend
      Src: /src/haproxy/src/stats-file.c:230,1
    - Dst: istend
      Src: /src/haproxy/src/stats-file.c:239,1
    - Dst: preload_freq_ctr
      Src: /src/haproxy/src/stats-file.c:246,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stats-file.c:249,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - col
    - token
    - counter
    argTypes:
    - struct stat_col*
    - struct ist
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 257
    functionName: load_ctr
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - ns_to_sec
    - read_uint
    - istend
    - stcol_format
    - preload_freq_ctr
    - stcol_nature
    - istptr
    - read_uint64
    linkageType: ''
    returnType: int
    signature: "int load_ctr(const struct stat_col *col, const struct ist token,\n
      \                   void* counter)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: istsplit
      Src: /src/haproxy/src/stats-file.c:277,1
    - Dst: ist0
      Src: /src/haproxy/src/stats-file.c:278,1
    - Dst: guid_is_valid_fmt
      Src: /src/haproxy/src/stats-file.c:279,1
    - Dst: guid_lookup
      Src: /src/haproxy/src/stats-file.c:282,1
    - Dst: obj_type
      Src: /src/haproxy/src/stats-file.c:288,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/stats-file.c:290,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/stats-file.c:332,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stats-file.c:353,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-file.c:371,1
    - Dst: istsplit
      Src: /src/haproxy/src/stats-file.c:374,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-file.c:375,1
    - Dst: load_ctr
      Src: /src/haproxy/src/stats-file.c:382,1
    - Dst: load_ctr
      Src: /src/haproxy/src/stats-file.c:384,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 86
    argCount: 3
    argNames:
    - line
    - domain
    - cols
    argTypes:
    - struct ist
    - enum stfile_domain
    - struct stat_col*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 391
    functionName: parse_stat_line
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - guid_is_valid_fmt
    - guid_lookup
    - ist0
    - istsplit
    - __objt_listener
    - load_ctr
    - __objt_proxy
    - obj_type
    - istlen
    linkageType: ''
    returnType: int
    signature: "int parse_stat_line(struct ist line,\n                           enum
      stfile_domain domain,\n                           const struct stat_col *cols[])"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/haproxy/src/stats-file.c:408,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:410,1
    - Dst: generate_stat_tree
      Src: /src/haproxy/src/stats-file.c:415,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:416,1
    - Dst: malloc
      Src: /src/haproxy/src/stats-file.c:420,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/stats-file.c:420,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:422,1
    - Dst: fgets
      Src: /src/haproxy/src/stats-file.c:429,1
    - Dst: iststrip
      Src: /src/haproxy/src/stats-file.c:433,1
    - Dst: ist
      Src: /src/haproxy/src/stats-file.c:433,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-file.c:434,1
    - Dst: istmatch
      Src: /src/haproxy/src/stats-file.c:438,1
    - Dst: ist
      Src: /src/haproxy/src/stats-file.c:438,1
    - Dst: istptr
      Src: /src/haproxy/src/stats-file.c:441,1
    - Dst: parse_header_line
      Src: /src/haproxy/src/stats-file.c:442,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:444,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:448,1
    - Dst: parse_stat_line
      Src: /src/haproxy/src/stats-file.c:454,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:455,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:462,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/stats-file.c:469,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/stats-file.c:470,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stats-file.c:471,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/stats-file.c:473,1
    - Dst: ha_free
      Src: /src/haproxy/src/stats-file.c:474,1
    - Dst: ha_free
      Src: /src/haproxy/src/stats-file.c:477,1
    - Dst: fclose
      Src: /src/haproxy/src/stats-file.c:478,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 394
    functionDepth: 9
    functionLinenumber: 394
    functionLinenumberEnd: 479
    functionName: apply_stats_file
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 1
    functionsReached:
    - iststrip
    - parse_header_line
    - ebmb_entry
    - istmatch
    - parse_stat_line
    - istlen
    - ist
    - eb_is_empty
    - ha_free
    - generate_stat_tree
    - istptr
    - fgets
    - malloc
    - fclose
    - ebmb_first
    - ebmb_delete
    - ha_warning
    - fopen
    - array_size_or_fail
    linkageType: ''
    returnType: void
    signature: void apply_stats_file(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct shm_stats_file_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 493
    functionName: shm_stats_file_check_ver
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int shm_stats_file_check_ver(struct shm_stats_file_hdr *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stats-file.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - hb
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: shm_hb_is_stale
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - tick_is_expired
    linkageType: ''
    returnType: int
    signature: int shm_hb_is_stale(uint hb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:506,1
    - Dst: shm_hb_is_stale
      Src: /src/haproxy/src/stats-file.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hdr
    - id
    argTypes:
    - struct shm_stats_file_hdr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 508
    functionName: shm_stats_file_slot_isfree
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - shm_hb_is_stale
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int shm_stats_file_slot_isfree(struct shm_stats_file_hdr *hdr, int
      id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:519,1
    - Dst: shm_hb_is_stale
      Src: /src/haproxy/src/stats-file.c:521,1
    - Dst: tick_add
      Src: /src/haproxy/src/stats-file.c:522,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stats-file.c:522,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stats-file.c:524,1
    - Dst: getpid
      Src: /src/haproxy/src/stats-file.c:525,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/stats-file.c:529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct shm_stats_file_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 534
    functionName: shm_stats_file_get_free_slot
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - getpid
    - HA_ATOMIC_LOAD
    - MS_TO_TICKS
    - __ha_cpu_relax
    - HA_ATOMIC_CAS
    - shm_hb_is_stale
    - tick_add
    linkageType: ''
    returnType: int
    signature: int shm_stats_file_get_free_slot(struct shm_stats_file_hdr *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/haproxy/src/stats-file.c:553,1
    - Dst: MIN
      Src: /src/haproxy/src/stats-file.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 559
    functionName: shm_file_grow
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - write
    - MIN
    linkageType: ''
    returnType: int
    signature: int shm_file_grow(unsigned int bytes)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:570,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:571,1
    - Dst: SHM_STATS_FILE_OBJECT
      Src: /src/haproxy/src/stats-file.c:578,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:579,1
    - Dst: shm_stats_file_slot_isfree
      Src: /src/haproxy/src/stats-file.c:594,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stats-file.c:613,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/stats-file.c:617,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stats-file.c:621,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 629
    functionName: shm_stats_file_reuse_object
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - shm_stats_file_slot_isfree
    - HA_ATOMIC_STORE
    - BUG_ON
    - HA_ATOMIC_LOAD
    - HA_ATOMIC_CAS
    - SHM_STATS_FILE_OBJECT
    linkageType: ''
    returnType: struct shm_stats_file_object
    signature: struct shm_stats_file_object *shm_stats_file_reuse_object(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stats-file.c:651,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stats-file.c:651,1
    - Dst: shm_stats_file_reuse_object
      Src: /src/haproxy/src/stats-file.c:654,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:663,1
    - Dst: memprintf
      Src: /src/haproxy/src/stats-file.c:666,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:672,1
    - Dst: shm_file_grow
      Src: /src/haproxy/src/stats-file.c:687,1
    - Dst: memprintf
      Src: /src/haproxy/src/stats-file.c:688,1
    - Dst: strerror
      Src: /src/haproxy/src/stats-file.c:689,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/stats-file.c:692,1
    - Dst: SHM_STATS_FILE_OBJECT
      Src: /src/haproxy/src/stats-file.c:696,1
    - Dst: memset
      Src: /src/haproxy/src/stats-file.c:697,1
    - Dst: HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/stats-file.c:699,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/stats-file.c:701,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stats-file.c:706,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/stats-file.c:708,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - errmsg
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 638
    functionDepth: 5
    functionLinenumber: 638
    functionLinenumberEnd: 713
    functionName: shm_stats_file_add_object
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 1
    functionsReached:
    - memprintf
    - shm_file_grow
    - memset
    - HA_ATOMIC_LOAD
    - strerror
    - MS_TO_TICKS
    - HA_ATOMIC_FETCH_ADD
    - __ha_cpu_relax
    - tick_is_expired
    - HA_ATOMIC_CAS
    - HA_ATOMIC_ADD
    - SHM_STATS_FILE_OBJECT
    - shm_stats_file_reuse_object
    linkageType: ''
    returnType: struct shm_stats_file_object
    signature: struct shm_stats_file_object *shm_stats_file_add_object(char **errmsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stats-file.c:724,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:724,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:725,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/stats-file.c:729,1
    - Dst: tick_add
      Src: /src/haproxy/src/stats-file.c:730,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stats-file.c:730,1
    - Dst: tick_add
      Src: /src/haproxy/src/stats-file.c:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 715
    functionDepth: 9
    functionLinenumber: 715
    functionLinenumberEnd: 734
    functionName: shm_stats_file_hb
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - HA_ATOMIC_LOAD
    - MS_TO_TICKS
    - tick_is_expired
    - ha_warning
    - tick_add
    linkageType: ''
    returnType: struct task
    signature: struct task *shm_stats_file_hb(struct task *task, void *context, unsigned
      int state)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:746,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:747,1
    - Dst: SHM_STATS_FILE_OBJECT
      Src: /src/haproxy/src/stats-file.c:756,1
    - Dst: HA_ATOMIC_FETCH_OR
      Src: /src/haproxy/src/stats-file.c:758,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:767,1
    - Dst: guid_lookup
      Src: /src/haproxy/src/stats-file.c:771,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:777,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/stats-file.c:778,1
    - Dst: calloc
      Src: /src/haproxy/src/stats-file.c:782,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:793,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stats-file.c:794,1
    - Dst: calloc
      Src: /src/haproxy/src/stats-file.c:796,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/stats-file.c:806,1
    - Dst: calloc
      Src: /src/haproxy/src/stats-file.c:809,1
    - Dst: calloc
      Src: /src/haproxy/src/stats-file.c:815,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/stats-file.c:833,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 837
    functionName: shm_stats_file_preload
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - guid_lookup
    - BUG_ON
    - HA_ATOMIC_LOAD
    - calloc
    - __objt_listener
    - HA_ATOMIC_FETCH_OR
    - __objt_proxy
    - HA_ATOMIC_AND
    - SHM_STATS_FILE_OBJECT
    linkageType: ''
    returnType: void
    signature: void shm_stats_file_preload(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:849,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:852,1
    - Dst: open
      Src: /src/haproxy/src/stats-file.c:866,1
    - Dst: open
      Src: /src/haproxy/src/stats-file.c:868,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats-file.c:870,1
    - Dst: strerror
      Src: /src/haproxy/src/stats-file.c:870,1
    - Dst: shm_file_grow
      Src: /src/haproxy/src/stats-file.c:876,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats-file.c:877,1
    - Dst: mmap
      Src: /src/haproxy/src/stats-file.c:884,1
    - Dst: SHM_STATS_FILE_MAPPING_SIZE
      Src: /src/haproxy/src/stats-file.c:885,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats-file.c:888,1
    - Dst: memset
      Src: /src/haproxy/src/stats-file.c:894,1
    - Dst: shm_stats_file_check_ver
      Src: /src/haproxy/src/stats-file.c:902,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:925,1
    - Dst: clock_get_now_offset
      Src: /src/haproxy/src/stats-file.c:925,1
    - Dst: clock_get_now_offset
      Src: /src/haproxy/src/stats-file.c:931,1
    - Dst: clock_set_now_offset
      Src: /src/haproxy/src/stats-file.c:940,1
    - Dst: clock_update_global_date
      Src: /src/haproxy/src/stats-file.c:943,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/stats-file.c:947,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:957,1
    - Dst: shm_stats_file_slot_isfree
      Src: /src/haproxy/src/stats-file.c:959,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stats-file.c:969,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/stats-file.c:970,1
    - Dst: shm_stats_file_get_free_slot
      Src: /src/haproxy/src/stats-file.c:978,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:980,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:984,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:985,1
    - Dst: munmap
      Src: /src/haproxy/src/stats-file.c:988,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/stats-file.c:999,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats-file.c:1001,1
    - Dst: task_schedule
      Src: /src/haproxy/src/stats-file.c:1005,1
    - Dst: tick_add
      Src: /src/haproxy/src/stats-file.c:1005,1
    - Dst: shm_stats_file_preload
      Src: /src/haproxy/src/stats-file.c:1008,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:1014,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 840
    functionDepth: 9
    functionLinenumber: 840
    functionLinenumberEnd: 1016
    functionName: shm_stats_file_prepare
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 1
    functionsReached:
    - shm_stats_file_slot_isfree
    - task_new_anywhere
    - HA_ATOMIC_LOAD
    - task_schedule
    - open
    - munmap
    - strerror
    - mmap
    - shm_stats_file_check_ver
    - HA_ATOMIC_CAS
    - clock_get_now_offset
    - SHM_STATS_FILE_MAPPING_SIZE
    - tick_add
    - clock_update_date
    - __ha_cpu_relax
    - shm_file_grow
    - memset
    - BUG_ON
    - shm_stats_file_preload
    - clock_update_global_date
    - shm_stats_file_get_free_slot
    - clock_set_now_offset
    - ha_alert
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int shm_stats_file_prepare(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/stats-file.c:1022,1
    - Dst: munmap
      Src: /src/haproxy/src/stats-file.c:1025,1
    - Dst: SHM_STATS_FILE_MAPPING_SIZE
      Src: /src/haproxy/src/stats-file.c:1025,1
    - Dst: close
      Src: /src/haproxy/src/stats-file.c:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1028
    functionName: cleanup_shm_stats_file
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - close
    - munmap
    - SHM_STATS_FILE_MAPPING_SIZE
    linkageType: ''
    returnType: void
    signature: void cleanup_shm_stats_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/haterm_init.c:17,1
    - Dst: exit
      Src: /src/haproxy/src/haterm_init.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 35
    functionName: haterm_usage
    functionSourceFile: /src/haproxy/src/haterm_init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void haterm_usage(char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/haterm_init.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: hbuf_alloc
    functionSourceFile: /src/haproxy/src/haterm_init.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct hbuf
    signature: struct hbuf *hbuf_alloc(struct hbuf *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/haterm_init.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: free_hbuf
    functionSourceFile: /src/haproxy/src/haterm_init.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void free_hbuf(struct hbuf *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/haproxy/src/haterm_init.c:86,1
    - Dst: va_start
      Src: /src/haproxy/src/haterm_init.c:97,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/haterm_init.c:98,1
    - Dst: va_end
      Src: /src/haproxy/src/haterm_init.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - h
    - fmt
    argTypes:
    - struct hbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: hbuf_appendf
    functionSourceFile: /src/haproxy/src/haterm_init.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - vsnprintf
    - format
    linkageType: ''
    returnType: void
    signature: void hbuf_appendf(struct hbuf *h, char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: hbuf_is_null
    functionSourceFile: /src/haproxy/src/haterm_init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hbuf_is_null(const struct hbuf *h)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/haterm_init.c:123,1
    - Dst: strncmp
      Src: /src/haproxy/src/haterm_init.c:126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - h
    - line
    argTypes:
    - struct hbuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 156
    functionName: hstream_str_buf_append
    functionSourceFile: /src/haproxy/src/haterm_init.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void hstream_str_buf_append(struct hbuf *h, const char *line)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:180,1
    - Dst: hbuf_alloc
      Src: /src/haproxy/src/haterm_init.c:182,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haterm_init.c:183,1
    - Dst: exit
      Src: /src/haproxy/src/haterm_init.c:184,1
    - Dst: strcmp
      Src: /src/haproxy/src/haterm_init.c:206,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:209,1
    - Dst: strcmp
      Src: /src/haproxy/src/haterm_init.c:213,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:216,1
    - Dst: strcmp
      Src: /src/haproxy/src/haterm_init.c:236,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:239,1
    - Dst: strcmp
      Src: /src/haproxy/src/haterm_init.c:243,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:246,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:251,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:264,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:272,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:279,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:286,1
    - Dst: printf
      Src: /src/haproxy/src/haterm_init.c:288,1
    - Dst: exit
      Src: /src/haproxy/src/haterm_init.c:289,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:294,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:301,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:308,1
    - Dst: hbuf_is_null
      Src: /src/haproxy/src/haterm_init.c:310,1
    - Dst: hbuf_alloc
      Src: /src/haproxy/src/haterm_init.c:311,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haterm_init.c:312,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:316,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:317,1
    - Dst: hstream_str_buf_append
      Src: /src/haproxy/src/haterm_init.c:320,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:325,1
    - Dst: hbuf_is_null
      Src: /src/haproxy/src/haterm_init.c:327,1
    - Dst: hbuf_alloc
      Src: /src/haproxy/src/haterm_init.c:328,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haterm_init.c:329,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:333,1
    - Dst: hstream_str_buf_append
      Src: /src/haproxy/src/haterm_init.c:336,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:341,1
    - Dst: hbuf_is_null
      Src: /src/haproxy/src/haterm_init.c:343,1
    - Dst: hbuf_alloc
      Src: /src/haproxy/src/haterm_init.c:343,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haterm_init.c:344,1
    - Dst: hstream_str_buf_append
      Src: /src/haproxy/src/haterm_init.c:349,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:358,1
    - Dst: strchr
      Src: /src/haproxy/src/haterm_init.c:364,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:366,1
    - Dst: strchr
      Src: /src/haproxy/src/haterm_init.c:371,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:377,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:384,1
    - Dst: hbuf_is_null
      Src: /src/haproxy/src/haterm_init.c:386,1
    - Dst: hbuf_alloc
      Src: /src/haproxy/src/haterm_init.c:387,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haterm_init.c:388,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:392,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:393,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:397,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:403,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:412,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:424,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haterm_init.c:429,1
    - Dst: haterm_usage
      Src: /src/haproxy/src/haterm_init.c:430,1
    - Dst: hbuf_is_null
      Src: /src/haproxy/src/haterm_init.c:433,1
    - Dst: hbuf_alloc
      Src: /src/haproxy/src/haterm_init.c:435,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haterm_init.c:436,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:439,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:440,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:442,1
    - Dst: hbuf_is_null
      Src: /src/haproxy/src/haterm_init.c:446,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:447,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:450,1
    - Dst: hbuf_is_null
      Src: /src/haproxy/src/haterm_init.c:451,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:452,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:455,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:459,1
    - Dst: hbuf_appendf
      Src: /src/haproxy/src/haterm_init.c:463,1
    - Dst: strdup
      Src: /src/haproxy/src/haterm_init.c:465,1
    - Dst: strdup
      Src: /src/haproxy/src/haterm_init.c:466,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haterm_init.c:468,1
    - Dst: fprintf
      Src: /src/haproxy/src/haterm_init.c:474,1
    - Dst: exit
      Src: /src/haproxy/src/haterm_init.c:475,1
    - Dst: free_hbuf
      Src: /src/haproxy/src/haterm_init.c:483,1
    - Dst: free_hbuf
      Src: /src/haproxy/src/haterm_init.c:484,1
    - Dst: free_hbuf
      Src: /src/haproxy/src/haterm_init.c:485,1
    - Dst: free_hbuf
      Src: /src/haproxy/src/haterm_init.c:486,1
    - Dst: exit
      Src: /src/haproxy/src/haterm_init.c:488,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 228
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 163
    functionDepth: 9
    functionLinenumber: 163
    functionLinenumberEnd: 489
    functionName: haproxy_init_args
    functionSourceFile: /src/haproxy/src/haterm_init.c
    functionUses: 1
    functionsReached:
    - hbuf_appendf
    - exit
    - hbuf_alloc
    - free_hbuf
    - hstream_str_buf_append
    - strcmp
    - printf
    - strchr
    - haterm_usage
    - ha_alert
    - fprintf
    - hbuf_is_null
    - strdup
    linkageType: ''
    returnType: void
    signature: void haproxy_init_args(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/haterm_init.c:494,1
    - Dst: strdup
      Src: /src/haproxy/src/haterm_init.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 500
    functionName: copy_argv
    functionSourceFile: /src/haproxy/src/haterm_init.c
    functionUses: 1
    functionsReached:
    - calloc
    - strdup
    linkageType: ''
    returnType: char
    signature: char **copy_argv(int argc, char **argv)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: EXTRA_COUNTERS_BASE
      Src: /src/haproxy/src/resolvers.c:137,1
    - Dst: mkf_str
      Src: /src/haproxy/src/resolvers.c:141,1
    - Dst: mkf_str
      Src: /src/haproxy/src/resolvers.c:144,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:147,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:150,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:153,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:156,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:159,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:162,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:165,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:168,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:171,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:174,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:177,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:180,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:183,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:186,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:189,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 70
    argCount: 4
    argNames:
    - mod
    - ctr
    - stats
    - selected_field
    argTypes:
    - struct stats_module*
    - struct extra_counters*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 205
    functionName: resolv_fill_stats
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - mkf_str
    - EXTRA_COUNTERS_BASE
    - mkf_u64
    linkageType: ''
    returnType: int
    signature: "int resolv_fill_stats(struct stats_module *mod, struct extra_counters
      *ctr,\n                             struct field *stats, unsigned int *selected_field)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_inet6_reachable
      Src: /src/haproxy/src/resolvers.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 242
    functionName: resolv_active_families
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - is_inet6_reachable
    linkageType: ''
    returnType: int
    signature: int resolv_active_families(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:251,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 256
    functionName: find_resolvers_by_id
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 2
    functionsReached:
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct resolvers
    signature: struct resolvers *find_resolvers_by_id(const char *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - parent
    - id
    argTypes:
    - struct resolvers*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: find_nameserver_by_resolvers_and_id
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct dns_nameserver
    signature: struct dns_nameserver *find_nameserver_by_resolvers_and_id(struct resolvers
      *parent, unsigned int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:279,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - px
    argTypes:
    - char*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: find_srvrq_by_name
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct resolv_srvrq
    signature: struct resolv_srvrq *find_srvrq_by_name(const char *name, struct proxy
      *px)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/resolvers.c:294,1
    - Dst: resolv_str_to_dn_label
      Src: /src/haproxy/src/resolvers.c:295,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:298,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:299,1
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:303,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:304,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:305,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:310,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:311,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:314,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:315,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:318,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:320,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:325,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:326,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - srv
    - fqdn
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 288
    functionDepth: 9
    functionLinenumber: 288
    functionLinenumberEnd: 330
    functionName: new_resolv_srvrq
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - proxy_type_str
    - calloc
    - LIST_APPEND
    - free
    - ha_alert
    - resolv_str_to_dn_label
    - strdup
    - LIST_INIT
    - strlen
    linkageType: ''
    returnType: struct resolv_srvrq
    signature: struct resolv_srvrq *new_resolv_srvrq(struct server *srv, char *fqdn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/resolvers.c:346,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:356,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:356,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:357,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:357,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - requester
    argTypes:
    - struct resolv_requester*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 365
    functionName: find_srvrq_answer_record
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - memcmp
    - typeof
    - eb32_first
    - eb32_next
    - eb32_entry
    - objt_server
    linkageType: ''
    returnType: struct resolv_answer_item
    signature: struct resolv_answer_item *find_srvrq_answer_record(const struct resolv_requester
      *requester)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: resolv_resolution_timeout
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int resolv_resolution_timeout(struct resolv_resolution *res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:378,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:379,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:380,1
    - Dst: tick_first
      Src: /src/haproxy/src/resolvers.c:381,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:381,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:384,1
    - Dst: tick_first
      Src: /src/haproxy/src/resolvers.c:385,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:385,1
    - Dst: resolv_resolution_timeout
      Src: /src/haproxy/src/resolvers.c:385,1
    - Dst: task_queue
      Src: /src/haproxy/src/resolvers.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - resolvers
    argTypes:
    - struct resolvers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 389
    functionName: resolv_update_resolvers_timeout
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - LIST_NEXT
    - list_for_each_entry
    - resolv_resolution_timeout
    - task_queue
    - tick_first
    - LIST_ISEMPTY
    - tick_add
    linkageType: ''
    returnType: void
    signature: void resolv_update_resolvers_timeout(struct resolvers *resolvers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/resolvers.c:412,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:415,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:416,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:417,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:420,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:421,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:425,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:430,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:431,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:432,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:437,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:438,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 7
    argNames:
    - query_id
    - query_type
    - accepted_payload_size
    - hostname_dn
    - hostname_dn_len
    - buf
    - bufsize
    argTypes:
    - int
    - int
    - unsigned int
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 445
    functionName: resolv_build_query
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - htons
    linkageType: ''
    returnType: int
    signature: "int resolv_build_query(int query_id, int query_type, unsigned int
      accepted_payload_size,\n                              char *hostname_dn, int
      hostname_dn_len, char *buf, int bufsize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resolv_build_query
      Src: /src/haproxy/src/resolvers.c:461,1
    - Dst: send_log
      Src: /src/haproxy/src/resolvers.c:466,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:472,1
    - Dst: dns_send_nameserver
      Src: /src/haproxy/src/resolvers.c:473,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:478,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 450
    functionDepth: 12
    functionLinenumber: 450
    functionLinenumberEnd: 481
    functionName: resolv_send_query
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - LIST_DEL_INIT
    - LIST_APPEND
    - resolv_build_query
    - send_log
    - dns_send_nameserver
    linkageType: ''
    returnType: int
    signature: int resolv_send_query(struct resolv_resolution *resolution)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ha_random32
      Src: /src/haproxy/src/resolvers.c:506,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/resolvers.c:507,1
    - Dst: send_log
      Src: /src/haproxy/src/resolvers.c:512,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/resolvers.c:524,1
    - Dst: resolv_send_query
      Src: /src/haproxy/src/resolvers.c:528,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 486
    functionDepth: 13
    functionLinenumber: 486
    functionLinenumberEnd: 530
    functionName: resolv_run_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - resolv_send_query
    - eb32_insert
    - eb32_lookup
    - ha_random32
    - send_log
    linkageType: ''
    returnType: int
    signature: int resolv_run_resolution(struct resolv_resolution *resolution)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:544,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:548,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:549,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:550,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/resolvers.c:550,1
    - Dst: obj_type
      Src: /src/haproxy/src/resolvers.c:556,1
    - Dst: obj_type
      Src: /src/haproxy/src/resolvers.c:557,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/resolvers.c:559,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:562,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct resolv_requester*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 563
    functionName: resolv_trigger_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 2
    functionsReached:
    - leave_resolver_code
    - task_wakeup
    - tick_isset
    - tick_is_expired
    - obj_type
    - enter_resolver_code
    - tick_add
    linkageType: ''
    returnType: void
    signature: void resolv_trigger_resolution(struct resolv_requester *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_delete
      Src: /src/haproxy/src/resolvers.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 583
    functionName: resolv_reset_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - eb32_delete
    linkageType: ''
    returnType: void
    signature: void resolv_reset_resolution(struct resolv_resolution *resolution)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resp
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: resolv_response_get_query_id
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short resolv_response_get_query_id(unsigned char *resp)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: resolv_read_name
      Src: /src/haproxy/src/resolvers.c:628,1
    - Dst: tolower
      Src: /src/haproxy/src/resolvers.c:654,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 7
    argNames:
    - buffer
    - bufend
    - name
    - destination
    - dest_len
    - offset
    - depth
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - char*
    - int
    - int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 684
    functionName: resolv_read_name
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - tolower
    - resolv_read_name
    linkageType: ''
    returnType: int
    signature: "int resolv_read_name(unsigned char *buffer, unsigned char *bufend,\n\t\t
      \    unsigned char *name, char *destination, int dest_len,\n\t\t     int *offset,
      unsigned int depth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: enter_resolver_code
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void enter_resolver_code()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_delete
      Src: /src/haproxy/src/resolvers.c:701,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:705,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 707
    functionName: abort_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - eb32_delete
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void abort_resolution(struct resolv_resolution *res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:724,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:725,1
    - Dst: resolv_free_resolution
      Src: /src/haproxy/src/resolvers.c:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 731
    functionName: leave_resolver_code
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - LIST_ISEMPTY
    - LIST_NEXT
    - resolv_free_resolution
    linkageType: ''
    returnType: void
    signature: void leave_resolver_code()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _resolv_unlink_resolution
      Src: /src/haproxy/src/resolvers.c:744,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:745,1
    - Dst: srvrq_set_srv_down
      Src: /src/haproxy/src/resolvers.c:746,1
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/resolvers.c:748,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:750,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:751,1
    - Dst: memset
      Src: /src/haproxy/src/resolvers.c:753,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/resolvers.c:755,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:758,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:759,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 763
    functionName: resolv_srvrq_cleanup_srv
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - server_set_inetaddr
    - srvrq_set_srv_down
    - memset
    - ha_free
    - LIST_DEL_INIT
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - LIST_APPEND
    - _resolv_unlink_resolution
    - cebis_item_delete
    linkageType: ''
    returnType: void
    signature: void resolv_srvrq_cleanup_srv(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/resolvers.c:772,1
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:775,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:776,1
    - Dst: resolv_srvrq_cleanup_srv
      Src: /src/haproxy/src/resolvers.c:777,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:778,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 768
    functionDepth: 4
    functionLinenumber: 768
    functionLinenumberEnd: 783
    functionName: resolv_srvrq_expire_task
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - leave_resolver_code
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - tick_is_expired
    - enter_resolver_code
    - resolv_srvrq_cleanup_srv
    linkageType: ''
    returnType: struct task
    signature: struct task *resolv_srvrq_expire_task(struct task *t, void *context,
      unsigned int state)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:796,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:796,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:797,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:797,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/resolvers.c:801,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:801,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:805,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/resolvers.c:810,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:810,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:813,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:814,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:819,1
    - Dst: resolv_srvrq_cleanup_srv
      Src: /src/haproxy/src/resolvers.c:820,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/resolvers.c:825,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:827,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:830,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:838,1
    - Dst: objt_resolv_srvrq
      Src: /src/haproxy/src/resolvers.c:842,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:847,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:849,1
    - Dst: tolower
      Src: /src/haproxy/src/resolvers.c:863,1
    - Dst: cebis_item_lookup
      Src: /src/haproxy/src/resolvers.c:866,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:868,1
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/resolvers.c:878,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:882,1
    - Dst: cebis_item_next
      Src: /src/haproxy/src/resolvers.c:884,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:888,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:891,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:892,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:903,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:904,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:905,1
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/resolvers.c:920,1
    - Dst: _resolv_unlink_resolution
      Src: /src/haproxy/src/resolvers.c:949,1
    - Dst: server_set_inetaddr_warn
      Src: /src/haproxy/src/resolvers.c:955,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/resolvers.c:957,1
    - Dst: resolv_dn_label_to_str
      Src: /src/haproxy/src/resolvers.c:963,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:965,1
    - Dst: srv_update_fqdn
      Src: /src/haproxy/src/resolvers.c:968,1
    - Dst: send_log
      Src: /src/haproxy/src/resolvers.c:970,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/resolvers.c:973,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:974,1
    - Dst: resolv_link_resolution
      Src: /src/haproxy/src/resolvers.c:981,1
    - Dst: snprintf
      Src: /src/haproxy/src/resolvers.c:995,1
    - Dst: server_parse_weight_change_request
      Src: /src/haproxy/src/resolvers.c:996,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:998,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 123
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 788
    functionDepth: 10
    functionLinenumber: 788
    functionLinenumberEnd: 1002
    functionName: resolv_check_response
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - cebis_item_lookup
    - memcmp
    - resolv_dn_label_to_str
    - list_for_each_entry_safe
    - HA_SPIN_LOCK
    - eb32_next
    - server_get_inetaddr
    - LIST_APPEND
    - _resolv_unlink_resolution
    - cebis_item_delete
    - srv_update_fqdn
    - snprintf
    - tick_is_lt
    - server_set_inetaddr_warn
    - pool_free
    - tick_add
    - objt_resolv_srvrq
    - typeof
    - server_set_inetaddr
    - LIST_DEL_INIT
    - tolower
    - resolv_link_resolution
    - cebis_item_next
    - server_parse_weight_change_request
    - eb32_entry
    - LIST_INLIST
    - send_log
    - list_for_each_entry
    - eb32_delete
    - HA_SPIN_UNLOCK
    - eb32_first
    - resolv_srvrq_cleanup_srv
    linkageType: ''
    returnType: void
    signature: void resolv_check_response(struct resolv_resolution *res)
  - BBCount: 83
    BranchProfiles: []
    Callsites:
    - Dst: resolv_read_name
      Src: /src/haproxy/src/resolvers.c:1125,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1132,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/resolvers.c:1166,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:1173,1
    - Dst: resolv_read_name
      Src: /src/haproxy/src/resolvers.c:1177,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1184,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1201,1
    - Dst: read_n32
      Src: /src/haproxy/src/resolvers.c:1226,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1249,1
    - Dst: XXH32
      Src: /src/haproxy/src/resolvers.c:1250,1
    - Dst: resolv_read_name
      Src: /src/haproxy/src/resolvers.c:1268,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1272,1
    - Dst: XXH32
      Src: /src/haproxy/src/resolvers.c:1274,1
    - Dst: read_n16
      Src: /src/haproxy/src/resolvers.c:1289,1
    - Dst: read_n16
      Src: /src/haproxy/src/resolvers.c:1291,1
    - Dst: read_n16
      Src: /src/haproxy/src/resolvers.c:1293,1
    - Dst: resolv_read_name
      Src: /src/haproxy/src/resolvers.c:1296,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1301,1
    - Dst: XXH32
      Src: /src/haproxy/src/resolvers.c:1303,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1305,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1316,1
    - Dst: XXH32
      Src: /src/haproxy/src/resolvers.c:1317,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1329,1
    - Dst: XXH32
      Src: /src/haproxy/src/resolvers.c:1332,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/resolvers.c:1353,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:1353,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:1354,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:1354,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1360,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1367,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1375,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1384,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1398,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/resolvers.c:1405,1
    - Dst: resolv_read_name
      Src: /src/haproxy/src/resolvers.c:1420,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/resolvers.c:1450,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:1454,1
    - Dst: resolv_read_name
      Src: /src/haproxy/src/resolvers.c:1457,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1460,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1465,1
    - Dst: read_n32
      Src: /src/haproxy/src/resolvers.c:1490,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:1506,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1511,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:1513,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1518,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1521,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:1537,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:1537,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:1540,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:1540,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1547,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1552,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1559,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1575,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:1583,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:1583,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:1584,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:1584,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1588,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1596,1
    - Dst: resolv_check_response
      Src: /src/haproxy/src/resolvers.c:1606,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1613,1
    CyclomaticComplexity: 165
    EdgeCount: 165
    ICount: 413
    argCount: 4
    argNames:
    - resp
    - bufend
    - resolution
    - max_answer_records
    argTypes:
    - unsigned char*
    - unsigned char*
    - struct resolv_resolution*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1013
    functionDepth: 11
    functionLinenumber: 1013
    functionLinenumberEnd: 1615
    functionName: resolv_validate_dns_response
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - memcmp
    - typeof
    - eb32_insert
    - pool_alloc
    - memcpy
    - XXH32
    - resolv_read_name
    - eb32_lookup
    - eb32_next
    - read_n32
    - resolv_active_families
    - eb32_entry
    - eb32_first
    - read_n16
    - LIST_INIT
    - resolv_check_response
    - pool_free
    linkageType: ''
    returnType: int
    signature: "int resolv_validate_dns_response(unsigned char *resp, unsigned char
      *bufend,\n                                        struct resolv_resolution *resolution,
      int max_answer_records)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/resolvers.c:1642,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/resolvers.c:1646,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:1669,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:1675,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:1675,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:1676,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:1680,1
    - Dst: in_net_ipv4
      Src: /src/haproxy/src/resolvers.c:1700,1
    - Dst: in_net_ipv6
      Src: /src/haproxy/src/resolvers.c:1704,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:1719,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1742,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1744,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:1756,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:1767,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:1773,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:1775,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:1818,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:1819,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 120
    argCount: 7
    argNames:
    - r_res
    - resolv_opts
    - currentip
    - currentip_sin_family
    - newip
    - newip_sin_family
    - owner
    argTypes:
    - struct resolv_response*
    - struct resolv_options*
    - void*
    - short
    - void**
    - short*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1625
    functionDepth: 3
    functionLinenumber: 1625
    functionLinenumberEnd: 1823
    functionName: resolv_get_ip_from_response
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - in_net_ipv6
    - typeof
    - memcmp
    - eb_is_empty
    - list_for_each_entry
    - LIST_DEL_INIT
    - eb32_next
    - LIST_APPEND
    - resolv_active_families
    - eb32_entry
    - LIST_INLIST
    - in_net_ipv4
    - eb32_first
    linkageType: ''
    returnType: int
    signature: "int resolv_get_ip_from_response(struct resolv_response *r_res,\n                             struct
      resolv_options *resolv_opts, void *currentip,\n                             short
      currentip_sin_family,\n                             void **newip, short *newip_sin_family,\n
      \                            struct server *owner)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/haproxy/src/resolvers.c:1858,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - dn
    - dn_len
    - str
    - str_len
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1835
    functionDepth: 0
    functionLinenumber: 1835
    functionLinenumberEnd: 1862
    functionName: resolv_dn_label_to_str
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int resolv_dn_label_to_str(const char *dn, int dn_len, char *str, int
      str_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/haproxy/src/resolvers.c:1898,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - str
    - str_len
    - dn
    - dn_len
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1874
    functionDepth: 0
    functionLinenumber: 1874
    functionLinenumberEnd: 1903
    functionName: resolv_str_to_dn_label
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 4
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int resolv_str_to_dn_label(const char *str, int str_len, char *dn,
      int dn_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/resolvers.c:1916,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 27
    argCount: 2
    argNames:
    - string
    - err
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1912
    functionDepth: 0
    functionLinenumber: 1912
    functionLinenumberEnd: 1949
    functionName: resolv_hostname_validation
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int resolv_hostname_validation(const char *string, char **err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:1969,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1974,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:1979,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1984,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/resolvers.c:1990,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:1998,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:2005,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:2014,1
    - Dst: resolv_free_resolution
      Src: /src/haproxy/src/resolvers.c:2019,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - resolvers
    - hostname_dn
    - hostname_dn_len
    - query_type
    argTypes:
    - struct resolvers*
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 1959
    functionDepth: 1
    functionLinenumber: 1959
    functionLinenumberEnd: 2021
    functionName: resolv_pick_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - pool_zalloc
    - memcmp
    - list_for_each_entry
    - LIST_APPEND
    - resolv_free_resolution
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: struct resolv_resolution
    signature: "struct resolv_resolution *resolv_pick_resolution(struct resolvers
      *resolvers,\n\t\t\t\t\t\t\tchar **hostname_dn, int hostname_dn_len,\n\t\t\t\t\t\t\tint
      query_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:2030,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:2031,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:2033,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:2033,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/resolvers.c:2034,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2035,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2024
    functionDepth: 1
    functionLinenumber: 2024
    functionLinenumberEnd: 2038
    functionName: resolv_purge_resolution_answer_records
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - typeof
    - eb32_delete
    - eb32_next
    - eb32_entry
    - eb32_first
    - pool_free
    linkageType: ''
    returnType: void
    signature: void resolv_purge_resolution_answer_records(struct resolv_resolution
      *resolution)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resolv_reset_resolution
      Src: /src/haproxy/src/resolvers.c:2046,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:2047,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2050,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2051,1
    - Dst: resolv_purge_resolution_answer_records
      Src: /src/haproxy/src/resolvers.c:2054,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2056,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2041
    functionDepth: 2
    functionLinenumber: 2041
    functionLinenumberEnd: 2058
    functionName: resolv_free_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 2
    functionsReached:
    - ha_free
    - resolv_purge_resolution_answer_records
    - list_for_each_entry_safe
    - LIST_DEL_INIT
    - resolv_reset_resolution
    - pool_free
    linkageType: ''
    returnType: void
    signature: void resolv_free_resolution(struct resolv_resolution *resolution)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/resolvers.c:2075,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:2079,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - req
    - owner
    argTypes:
    - struct resolv_requester**
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2065
    functionDepth: 1
    functionLinenumber: 2065
    functionLinenumberEnd: 2087
    functionName: resolv_get_requester
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - pool_alloc
    linkageType: ''
    returnType: struct resolv_requester
    signature: "struct resolv_requester *\nresolv_get_requester(struct resolv_requester
      **req, enum obj_type *owner,\n                     int (*cb)(struct resolv_requester
      *, struct dns_counters *),\n                     int (*err_cb)(struct resolv_requester
      *, int))"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:2104,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:2110,1
    - Dst: resolv_get_requester
      Src: /src/haproxy/src/resolvers.c:2113,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:2119,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2128,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2129,1
    - Dst: resolv_get_requester
      Src: /src/haproxy/src/resolvers.c:2139,1
    - Dst: resolv_get_requester
      Src: /src/haproxy/src/resolvers.c:2156,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2167,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2168,1
    - Dst: resolv_get_requester
      Src: /src/haproxy/src/resolvers.c:2178,1
    - Dst: resolv_pick_resolution
      Src: /src/haproxy/src/resolvers.c:2198,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:2203,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2204,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:2208,1
    - Dst: resolv_free_resolution
      Src: /src/haproxy/src/resolvers.c:2209,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2214,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2218,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2222,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2228,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2237,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 95
    argCount: 3
    argNames:
    - requester
    - requester_type
    - requester_locked
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2092
    functionDepth: 3
    functionLinenumber: 2092
    functionLinenumberEnd: 2239
    functionName: resolv_link_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 3
    functionsReached:
    - leave_resolver_code
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - LIST_APPEND
    - resolv_get_requester
    - resolv_active_families
    - LIST_ISEMPTY
    - resolv_free_resolution
    - resolv_pick_resolution
    - enter_resolver_code
    - pool_free
    linkageType: ''
    returnType: int
    signature: int resolv_link_resolution(void *requester, int requester_type, int
      requester_locked)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:2249,1
    - Dst: objt_server
      Src: /src/haproxy/src/resolvers.c:2250,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2251,1
    - Dst: objt_resolv_srvrq
      Src: /src/haproxy/src/resolvers.c:2253,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:2254,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:2255,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:2257,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:2257,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2259,1
    - Dst: resolv_srvrq_cleanup_srv
      Src: /src/haproxy/src/resolvers.c:2261,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2266,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - res
    - req
    argTypes:
    - struct resolv_resolution*
    - struct resolv_requester*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2242
    functionDepth: 4
    functionLinenumber: 2242
    functionLinenumberEnd: 2267
    functionName: resolv_detach_from_resolution_answer_items
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 2
    functionsReached:
    - objt_resolv_srvrq
    - typeof
    - leave_resolver_code
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - objt_server
    - eb32_first
    - eb32_next
    - eb32_entry
    - enter_resolver_code
    - resolv_srvrq_cleanup_srv
    linkageType: ''
    returnType: void
    signature: void resolv_detach_from_resolution_answer_items(struct resolv_resolution
      *res,  struct resolv_requester *req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2282,1
    - Dst: resolv_detach_from_resolution_answer_items
      Src: /src/haproxy/src/resolvers.c:2286,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:2289,1
    - Dst: obj_type
      Src: /src/haproxy/src/resolvers.c:2294,1
    - Dst: abort_resolution
      Src: /src/haproxy/src/resolvers.c:2297,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:2299,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/resolvers.c:2301,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - requester
    argTypes:
    - struct resolv_requester*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2272
    functionDepth: 5
    functionLinenumber: 2272
    functionLinenumberEnd: 2305
    functionName: _resolv_unlink_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 2
    functionsReached:
    - resolv_detach_from_resolution_answer_items
    - LIST_DEL_INIT
    - task_wakeup
    - LIST_ISEMPTY
    - tick_isset
    - obj_type
    - abort_resolution
    linkageType: ''
    returnType: void
    signature: void _resolv_unlink_resolution(struct resolv_requester *requester)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:2310,1
    - Dst: _resolv_unlink_resolution
      Src: /src/haproxy/src/resolvers.c:2311,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - requester
    argTypes:
    - struct resolv_requester*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2308
    functionDepth: 6
    functionLinenumber: 2308
    functionLinenumberEnd: 2313
    functionName: resolv_unlink_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 6
    functionsReached:
    - enter_resolver_code
    - leave_resolver_code
    - _resolv_unlink_resolution
    linkageType: ''
    returnType: void
    signature: void resolv_unlink_resolution(struct resolv_requester *requester)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:2337,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:2338,1
    - Dst: memset
      Src: /src/haproxy/src/resolvers.c:2343,1
    - Dst: dns_recv_nameserver
      Src: /src/haproxy/src/resolvers.c:2344,1
    - Dst: resolv_response_get_query_id
      Src: /src/haproxy/src/resolvers.c:2362,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/resolvers.c:2365,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:2373,1
    - Dst: resolv_validate_dns_response
      Src: /src/haproxy/src/resolvers.c:2378,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2437,1
    - Dst: resolv_send_query
      Src: /src/haproxy/src/resolvers.c:2443,1
    - Dst: resolv_send_query
      Src: /src/haproxy/src/resolvers.c:2447,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2461,1
    - Dst: struct resolv_requester*::requester_error_cb
      Src: /src/haproxy/src/resolvers.c:2462,1
    - Dst: resolv_purge_resolution_answer_records
      Src: /src/haproxy/src/resolvers.c:2464,1
    - Dst: resolv_reset_resolution
      Src: /src/haproxy/src/resolvers.c:2465,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2466,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:2467,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2474,1
    - Dst: objt_server
      Src: /src/haproxy/src/resolvers.c:2475,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:2478,1
    - Dst: struct resolv_requester*::requester_cb
      Src: /src/haproxy/src/resolvers.c:2479,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:2481,1
    - Dst: resolv_reset_resolution
      Src: /src/haproxy/src/resolvers.c:2485,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2486,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:2487,1
    - Dst: resolv_update_resolvers_timeout
      Src: /src/haproxy/src/resolvers.c:2490,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:2491,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2492,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 120
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct dns_nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2322
    functionDepth: 13
    functionLinenumber: 2322
    functionLinenumberEnd: 2494
    functionName: resolv_process_responses
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - resolv_send_query
    - leave_resolver_code
    - HA_SPIN_LOCK
    - LIST_APPEND
    - objt_server
    - enter_resolver_code
    - resolv_reset_resolution
    - dns_recv_nameserver
    - resolv_purge_resolution_answer_records
    - eb32_lookup
    - resolv_validate_dns_response
    - struct resolv_requester*::requester_cb
    - LIST_DEL_INIT
    - resolv_update_resolvers_timeout
    - resolv_response_get_query_id
    - eb32_entry
    - memset
    - list_for_each_entry
    - HA_SPIN_UNLOCK
    - resolv_active_families
    - struct resolv_requester*::requester_error_cb
    linkageType: ''
    returnType: int
    signature: int resolv_process_responses(struct dns_nameserver *ns)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:2506,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:2507,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2514,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2516,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:2518,1
    - Dst: abort_resolution
      Src: /src/haproxy/src/resolvers.c:2519,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:2526,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/resolvers.c:2527,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2540,1
    - Dst: struct resolv_requester*::requester_error_cb
      Src: /src/haproxy/src/resolvers.c:2541,1
    - Dst: resolv_purge_resolution_answer_records
      Src: /src/haproxy/src/resolvers.c:2543,1
    - Dst: resolv_reset_resolution
      Src: /src/haproxy/src/resolvers.c:2547,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2550,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2551,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:2552,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2567,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2570,1
    - Dst: resolv_send_query
      Src: /src/haproxy/src/resolvers.c:2575,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2576,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2582,1
    - Dst: unlikely
      Src: /src/haproxy/src/resolvers.c:2584,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2593,1
    - Dst: obj_type
      Src: /src/haproxy/src/resolvers.c:2596,1
    - Dst: __objt_server
      Src: /src/haproxy/src/resolvers.c:2598,1
    - Dst: __objt_resolv_srvrq
      Src: /src/haproxy/src/resolvers.c:2601,1
    - Dst: resolv_reset_resolution
      Src: /src/haproxy/src/resolvers.c:2625,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:2630,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:2632,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:2633,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/resolvers.c:2633,1
    - Dst: abort_resolution
      Src: /src/haproxy/src/resolvers.c:2634,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:2640,1
    - Dst: resolv_resolution_timeout
      Src: /src/haproxy/src/resolvers.c:2640,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:2641,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/resolvers.c:2641,1
    - Dst: resolv_run_resolution
      Src: /src/haproxy/src/resolvers.c:2644,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2646,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/resolvers.c:2647,1
    - Dst: resolv_update_resolvers_timeout
      Src: /src/haproxy/src/resolvers.c:2651,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:2652,1
    - Dst: unlikely
      Src: /src/haproxy/src/resolvers.c:2654,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:2657,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2660,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/resolvers.c:2662,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2667,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 100
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2669
      start: 2500
    functionDepth: 14
    functionLinenumber: 2500
    functionLinenumberEnd: 2669
    functionName: process_resolvers
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - unlikely
    - resolv_send_query
    - LIST_NEXT
    - leave_resolver_code
    - list_for_each_entry_safe
    - resolv_resolution_timeout
    - HA_SPIN_LOCK
    - LIST_APPEND
    - abort_resolution
    - enter_resolver_code
    - resolv_reset_resolution
    - resolv_purge_resolution_answer_records
    - tick_is_expired
    - obj_type
    - LIST_INSERT
    - tick_add
    - resolv_run_resolution
    - LIST_DEL_INIT
    - resolv_update_resolvers_timeout
    - __objt_server
    - list_for_each_entry
    - task_wakeup
    - HA_SPIN_UNLOCK
    - resolv_active_families
    - LIST_ISEMPTY
    - tick_isset
    - __objt_resolv_srvrq
    - struct resolv_requester*::requester_error_cb
    linkageType: ''
    returnType: struct task
    signature: struct task *process_resolvers(struct task *t, void *context, unsigned
      int state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2679,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2680,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2681,1
    - Dst: fd_delete
      Src: /src/haproxy/src/resolvers.c:2684,1
    - Dst: close
      Src: /src/haproxy/src/resolvers.c:2685,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/resolvers.c:2687,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2688,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/resolvers.c:2691,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:2692,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:2693,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:2694,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2695,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2697,1
    - Dst: EXTRA_COUNTERS_FREE
      Src: /src/haproxy/src/resolvers.c:2698,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2699,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2702,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2703,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2704,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2705,1
    - Dst: resolv_free_resolution
      Src: /src/haproxy/src/resolvers.c:2707,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2710,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2711,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2712,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2713,1
    - Dst: resolv_free_resolution
      Src: /src/haproxy/src/resolvers.c:2715,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/resolvers.c:2718,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2719,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2720,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:2721,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2722,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 1
    argNames:
    - resolvers
    argTypes:
    - struct resolvers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2673
    functionDepth: 4
    functionLinenumber: 2673
    functionLinenumberEnd: 2724
    functionName: resolvers_destroy
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - task_destroy
    - LIST_DEL_INIT
    - EXTRA_COUNTERS_FREE
    - list_for_each_entry_safe
    - proxy_drop
    - dns_ring_free
    - free
    - resolv_free_resolution
    - close
    - pool_free
    linkageType: ''
    returnType: void
    signature: void resolvers_destroy(struct resolvers *resolvers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2732,1
    - Dst: resolvers_destroy
      Src: /src/haproxy/src/resolvers.c:2733,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2736,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2737,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2738,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2739,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2727
    functionDepth: 5
    functionLinenumber: 2727
    functionLinenumberEnd: 2742
    functionName: resolvers_deinit
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - resolvers_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void resolvers_deinit(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:2756,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2759,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2764,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/resolvers.c:2769,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/resolvers.c:2770,1
    - Dst: socket
      Src: /src/haproxy/src/resolvers.c:2771,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2773,1
    - Dst: connect
      Src: /src/haproxy/src/resolvers.c:2779,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/resolvers.c:2779,1
    - Dst: ha_warning
      Src: /src/haproxy/src/resolvers.c:2781,1
    - Dst: close
      Src: /src/haproxy/src/resolvers.c:2784,1
    - Dst: close
      Src: /src/haproxy/src/resolvers.c:2788,1
    - Dst: task_new_on
      Src: /src/haproxy/src/resolvers.c:2797,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2798,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/resolvers.c:2808,1
    - Dst: find_resolvers_by_id
      Src: /src/haproxy/src/resolvers.c:2827,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2828,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:2829,1
    - Dst: resolv_link_resolution
      Src: /src/haproxy/src/resolvers.c:2838,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2839,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:2840,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/resolvers.c:2846,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2848,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:2849,1
    - Dst: resolv_link_resolution
      Src: /src/haproxy/src/resolvers.c:2857,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2858,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:2859,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2871,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2874,1
    - Dst: resolvers_deinit
      Src: /src/haproxy/src/resolvers.c:2875,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2748
    functionDepth: 9
    functionLinenumber: 2748
    functionLinenumberEnd: 2878
    functionName: resolvers_finalize_config
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - task_new_anywhere
    - get_addr_len
    - BUG_ON
    - list_for_each_entry
    - ha_warning
    - task_wakeup
    - proxy_type_str
    - resolv_link_resolution
    - task_new_on
    - leave_resolver_code
    - resolvers_deinit
    - connect
    - ha_alert
    - socket
    - protocol_lookup
    - enter_resolver_code
    - close
    - find_resolvers_by_id
    linkageType: ''
    returnType: int
    signature: int resolvers_finalize_config(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/resolvers.c:2885,1
    - Dst: memset
      Src: /src/haproxy/src/resolvers.c:2889,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/src/resolvers.c:2892,1
    - Dst: stats_dump_one_line
      Src: /src/haproxy/src/resolvers.c:2897,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/resolvers.c:2900,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - sc
    - ns
    - stats
    - stats_count
    - stat_modules
    argTypes:
    - struct stconn*
    - struct dns_nameserver*
    - struct field*
    - size_t
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2880
    functionDepth: 4
    functionLinenumber: 2880
    functionLinenumberEnd: 2907
    functionName: stats_dump_resolv_to_buffer
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - stats_dump_one_line
    - memset
    - stats_putchk
    - __sc_appctx
    - struct stats_module*::fill_stats
    linkageType: ''
    returnType: int
    signature: "int stats_dump_resolv_to_buffer(struct stconn *sc,\n                                    struct
      dns_nameserver *ns,\n                                    struct field *stats,
      size_t stats_count,\n                                    struct list *stat_modules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fill_stats
      Src: /src/haproxy/src/resolvers.c:2892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2891
    functionDepth: 0
    functionLinenumber: 2891
    functionLinenumberEnd: 2895
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 234
    functionsReached:
    - fill_stats
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(mod, stat_modules, list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/resolvers.c:2916,1
    - Dst: sc_ic
      Src: /src/haproxy/src/resolvers.c:2918,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2923,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/resolvers.c:2926,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2931,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/resolvers.c:2933,1
    - Dst: buffer_almost_full
      Src: /src/haproxy/src/resolvers.c:2936,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/resolvers.c:2937,1
    - Dst: b_size
      Src: /src/haproxy/src/resolvers.c:2937,1
    - Dst: stats_dump_resolv_to_buffer
      Src: /src/haproxy/src/resolvers.c:2941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - sc
    - stats
    - stats_count
    - stat_modules
    argTypes:
    - struct stconn*
    - struct field*
    - size_t
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2912
    functionDepth: 5
    functionLinenumber: 2912
    functionLinenumberEnd: 2955
    functionName: stats_dump_resolvers
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - LIST_NEXT
    - list_for_each_entry_from
    - sc_ic
    - __sc_appctx
    - b_size
    - stats_dump_resolv_to_buffer
    - sc_need_room
    - buffer_almost_full
    linkageType: ''
    returnType: int
    signature: "int stats_dump_resolvers(struct stconn *sc,\n                         struct
      field *stats, size_t stats_count,\n                         struct list *stat_modules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2968,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2969,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/resolvers.c:2970,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:2971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - clrall
    - stat_modules
    argTypes:
    - int
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2957
    functionDepth: 1
    functionLinenumber: 2957
    functionLinenumberEnd: 2976
    functionName: resolv_stats_clear_counters
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - EXTRA_COUNTERS_GET
    - memcpy
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void resolv_stats_clear_counters(int clrall, struct list *stat_modules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2968,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2969,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/resolvers.c:2970,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:2971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2974
      start: 2964
    functionDepth: 1
    functionLinenumber: 2964
    functionLinenumberEnd: 2974
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 236
    functionsReached:
    - EXTRA_COUNTERS_GET
    - memcpy
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(mod, stat_modules, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2984,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2985,1
    - Dst: EXTRA_COUNTERS_REGISTER
      Src: /src/haproxy/src/resolvers.c:2986,1
    - Dst: EXTRA_COUNTERS_ADD
      Src: /src/haproxy/src/resolvers.c:2990,1
    - Dst: EXTRA_COUNTERS_ALLOC
      Src: /src/haproxy/src/resolvers.c:2996,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:2999,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - stat_modules
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3017
      start: 2978
    functionDepth: 1
    functionLinenumber: 2978
    functionLinenumberEnd: 3017
    functionName: resolv_allocate_counters
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - EXTRA_COUNTERS_ALLOC
    - memcpy
    - list_for_each_entry
    - EXTRA_COUNTERS_ADD
    - strcmp
    - EXTRA_COUNTERS_REGISTER
    linkageType: ''
    returnType: int
    signature: int resolv_allocate_counters(struct list *stat_modules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXTRA_COUNTERS_ADD
      Src: /src/haproxy/src/resolvers.c:2990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2989
    functionDepth: 1
    functionLinenumber: 2989
    functionLinenumberEnd: 2994
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 237
    functionsReached:
    - EXTRA_COUNTERS_ADD
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(mod, stat_modules, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:2999,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3009
      start: 2998
    functionDepth: 0
    functionLinenumber: 2998
    functionLinenumberEnd: 3009
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 237
    functionsReached:
    - strcmp
    - memcpy
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(mod, stat_modules, list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/resolvers.c:3024,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:3028,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3029,1
    - Dst: cli_err
      Src: /src/haproxy/src/resolvers.c:3035,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3022
    functionDepth: 1
    functionLinenumber: 3022
    functionLinenumberEnd: 3038
    functionName: cli_parse_stat_resolvers
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - strcmp
    - cli_err
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_stat_resolvers(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/resolvers.c:3052,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:3054,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/resolvers.c:3055,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/resolvers.c:3060,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:3060,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/resolvers.c:3062,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/resolvers.c:3070,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/resolvers.c:3071,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/resolvers.c:3074,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:3074,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/resolvers.c:3078,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/resolvers.c:3079,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3080,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3081,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3082,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3083,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3084,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3085,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3086,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3087,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3088,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3089,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3090,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3091,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3092,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3093,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3094,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3095,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/resolvers.c:3096,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3046
    functionDepth: 1
    functionLinenumber: 3046
    functionLinenumberEnd: 3114
    functionName: cli_io_handler_dump_resolvers_to_buffer
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - typeof
    - list_for_each_entry_from
    - chunk_printf
    - chunk_appendf
    - LIST_ISEMPTY
    - applet_putchk
    - chunk_reset
    - applet_putstr
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_resolvers_to_buffer(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/resolvers.c:3135,1
    - Dst: resolv_str_to_dn_label
      Src: /src/haproxy/src/resolvers.c:3141,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3147,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - stream
    - hostname
    - hostname_len
    argTypes:
    - struct stream*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3158
      start: 3131
    functionDepth: 2
    functionLinenumber: 3131
    functionLinenumberEnd: 3158
    functionName: action_prepare_for_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - ha_free
    - strdup
    - get_trash_chunk
    - resolv_str_to_dn_label
    linkageType: ''
    returnType: int
    signature: int action_prepare_for_resolution(struct stream *stream, const char
      *hostname, int hostname_len)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:3177,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:3184,1
    - Dst: resolv_get_ip_from_response
      Src: /src/haproxy/src/resolvers.c:3202,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:3208,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:3212,1
    - Dst: vars_set_by_name
      Src: /src/haproxy/src/resolvers.c:3223,1
    - Dst: strlen
      Src: /src/haproxy/src/resolvers.c:3223,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/resolvers.c:3232,1
    - Dst: action_prepare_for_resolution
      Src: /src/haproxy/src/resolvers.c:3236,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:3241,1
    - Dst: resolv_link_resolution
      Src: /src/haproxy/src/resolvers.c:3244,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:3252,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:3253,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/resolvers.c:3254,1
    - Dst: resolv_trigger_resolution
      Src: /src/haproxy/src/resolvers.c:3258,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:3266,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:3268,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3272,1
    - Dst: _resolv_unlink_resolution
      Src: /src/haproxy/src/resolvers.c:3275,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:3276,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 88
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3280
      start: 3164
    functionDepth: 6
    functionLinenumber: 3164
    functionLinenumberEnd: 3280
    functionName: resolv_action_do_resolve
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - action_prepare_for_resolution
    - resolv_trigger_resolution
    - memcpy
    - leave_resolver_code
    - ha_free
    - resolv_link_resolution
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - resolv_get_ip_from_response
    - tick_isset
    - tick_is_expired
    - vars_set_by_name
    - _resolv_unlink_resolution
    - pool_free
    - enter_resolver_code
    - sample_fetch_as_type
    - tick_add
    - strlen
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return resolv_action_do_resolve(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\t      struct session *sess, struct stream *s, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_sample_expr
      Src: /src/haproxy/src/resolvers.c:3284,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3285,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3286,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3288
      start: 3282
    functionDepth: 5
    functionLinenumber: 3282
    functionLinenumberEnd: 3288
    functionName: release_resolv_action
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - free
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void release_resolv_action(struct act_rule *rule)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3314,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3318,1
    - Dst: my_strndup
      Src: /src/haproxy/src/resolvers.c:3321,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3331,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3333,1
    - Dst: my_strndup
      Src: /src/haproxy/src/resolvers.c:3336,1
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:3341,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3353,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3355,1
    - Dst: strncmp
      Src: /src/haproxy/src/resolvers.c:3359,1
    - Dst: strncmp
      Src: /src/haproxy/src/resolvers.c:3362,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/resolvers.c:3372,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3384,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/resolvers.c:3386,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3387,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3401,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3402,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3403,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3404,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 78
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3407
      start: 3303
    functionDepth: 7
    functionLinenumber: 3303
    functionLinenumberEnd: 3407
    functionName: resolv_parse_do_resolve
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - memprintf
    - ha_free
    - calloc
    - strchr
    - strncmp
    - sample_src_names
    - free
    - sample_parse_expr
    linkageType: ''
    returnType: enum act_parse_ret
    signature: enum act_parse_ret resolv_parse_do_resolve(const char **args, int *orig_arg,
      struct proxy *px, struct act_rule *rule, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3433,1
    - Dst: find_resolvers_by_id
      Src: /src/haproxy/src/resolvers.c:3437,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3445
      start: 3428
    functionDepth: 5
    functionLinenumber: 3428
    functionLinenumberEnd: 3445
    functionName: check_action_do_resolve
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - memprintf
    - find_resolvers_by_id
    linkageType: ''
    returnType: int
    signature: int check_action_do_resolve(struct act_rule *rule, struct proxy *px,
      char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3461
      start: 3447
    functionDepth: 0
    functionLinenumber: 3447
    functionLinenumberEnd: 3461
    functionName: resolvers_setup_proxy
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void resolvers_setup_proxy(struct proxy *px)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/resolvers.c:3476,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/resolvers.c:3476,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3477,1
    - Dst: fopen
      Src: /src/haproxy/src/resolvers.c:3482,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3484,1
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:3489,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3492,1
    - Dst: fgets
      Src: /src/haproxy/src/resolvers.c:3497,1
    - Dst: strncmp
      Src: /src/haproxy/src/resolvers.c:3499,1
    - Dst: strtok
      Src: /src/haproxy/src/resolvers.c:3502,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3508,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:3515,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3516,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3518,1
    - Dst: memset
      Src: /src/haproxy/src/resolvers.c:3528,1
    - Dst: str2ip2
      Src: /src/haproxy/src/resolvers.c:3529,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3531,1
    - Dst: set_host_port
      Src: /src/haproxy/src/resolvers.c:3537,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/resolvers.c:3539,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3542,1
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:3548,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3550,1
    - Dst: dns_dgram_init
      Src: /src/haproxy/src/resolvers.c:3555,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3557,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3559,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3563,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3566,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/resolvers.c:3568,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3569,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3570,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3574,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3577,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3579,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/resolvers.c:3580,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3581,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3582,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:3590,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3595,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3596,1
    - Dst: fclose
      Src: /src/haproxy/src/resolvers.c:3598,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 113
    argCount: 2
    argNames:
    - errmsg
    - warnmsg
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3601
      start: 3463
    functionDepth: 5
    functionLinenumber: 3463
    functionLinenumberEnd: 3601
    functionName: parse_resolve_conf
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - LIST_APPEND
    - dns_dgram_init
    - str2ip2
    - strcmp
    - dns_ring_free
    - fopen
    - fgets
    - malloc
    - fclose
    - calloc
    - strtok
    - memset
    - list_for_each_entry
    - strncmp
    - set_host_port
    - protocol_lookup
    - array_size_or_fail
    - strdup
    linkageType: ''
    returnType: int
    signature: int parse_resolve_conf(char **errmsg, char **warnmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:3610,1
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/resolvers.c:3616,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3618,1
    - Dst: resolvers_setup_proxy
      Src: /src/haproxy/src/resolvers.c:3623,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/resolvers.c:3625,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:3630,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3631,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3637,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:3657,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:3658,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:3659,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/resolvers.c:3660,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3669,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/resolvers.c:3671,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:3672,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3674,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 63
    argCount: 4
    argNames:
    - resolvers
    - id
    - file
    - linenum
    argTypes:
    - struct resolvers**
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3676
      start: 3603
    functionDepth: 4
    functionLinenumber: 3603
    functionLinenumberEnd: 3676
    functionName: resolvers_new
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_INIT
    - ha_free
    - calloc
    - resolvers_setup_proxy
    - proxy_drop
    - LIST_DEL_INIT
    - LIST_APPEND
    - copy_file_name
    - alloc_new_proxy
    - LIST_INIT
    - strdup
    linkageType: ''
    returnType: int
    signature: int resolvers_new(struct resolvers **resolvers, const char *id, const
      char *file, int linenum)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3696,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3698,1
    - Dst: invalid_char
      Src: /src/haproxy/src/resolvers.c:3703,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3705,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:3711,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3713,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3714,1
    - Dst: resolvers_new
      Src: /src/haproxy/src/resolvers.c:3721,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3723,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3728,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3735,1
    - Dst: invalid_char
      Src: /src/haproxy/src/resolvers.c:3741,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3743,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:3749,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3751,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3752,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/resolvers.c:3759,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3763,1
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:3768,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3769,1
    - Dst: parse_server
      Src: /src/haproxy/src/resolvers.c:3775,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3779,1
    - Dst: dns_stream_init
      Src: /src/haproxy/src/resolvers.c:3783,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3784,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3786,1
    - Dst: dns_dgram_init
      Src: /src/haproxy/src/resolvers.c:3790,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3791,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3793,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3797,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3798,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/resolvers.c:3801,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:3802,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:3803,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:3804,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3805,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/resolvers.c:3807,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3808,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3810,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3814,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3815,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3817,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/resolvers.c:3819,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:3820,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:3821,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:3822,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3823,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/resolvers.c:3825,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3826,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3828,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:3837,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3840,1
    - Dst: parse_resolve_conf
      Src: /src/haproxy/src/resolvers.c:3841,1
    - Dst: indent_msg
      Src: /src/haproxy/src/resolvers.c:3843,1
    - Dst: ha_warning
      Src: /src/haproxy/src/resolvers.c:3844,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3845,1
    - Dst: indent_msg
      Src: /src/haproxy/src/resolvers.c:3848,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3849,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3850,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3854,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3859,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3861,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/resolvers.c:3865,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3867,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3873,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3879,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3884,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3886,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3888,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3890,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3892,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3894,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3897,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/resolvers.c:3903,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3904,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3910,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3914,1
    - Dst: atoi
      Src: /src/haproxy/src/resolvers.c:3920,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3922,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3930,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3931,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3936,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3938,1
    - Dst: atoi
      Src: /src/haproxy/src/resolvers.c:3943,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3945,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3947,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3952,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3953,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3958,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/resolvers.c:3963,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3965,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3971,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3977,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/resolvers.c:3989,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3990,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3997,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:4004,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:4010,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:4011,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 287
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4013
      start: 3689
    functionDepth: 9
    functionLinenumber: 3689
    functionLinenumberEnd: 4013
    functionName: cfg_parse_resolvers
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - free
    - LIST_APPEND
    - warn_if_lower
    - parse_resolve_conf
    - dns_dgram_init
    - atoi
    - invalid_char
    - task_destroy
    - ha_free
    - strcmp
    - dns_ring_free
    - parse_server
    - str2sa_range
    - indent_msg
    - dns_stream_init
    - calloc
    - list_for_each_entry
    - resolvers_new
    - ha_alert
    - ha_warning
    - parse_time_err
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_resolvers(const char *file, int linenum, char **args,
      int kwm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_resolvers_by_id
      Src: /src/haproxy/src/resolvers.c:4028,1
    - Dst: resolvers_new
      Src: /src/haproxy/src/resolvers.c:4032,1
    - Dst: parse_resolve_conf
      Src: /src/haproxy/src/resolvers.c:4038,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:4042,1
    - Dst: resolvers_destroy
      Src: /src/haproxy/src/resolvers.c:4049,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4056
      start: 4019
    functionDepth: 6
    functionLinenumber: 4019
    functionLinenumberEnd: 4056
    functionName: resolvers_create_default
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - resolvers_destroy
    - resolvers_new
    - LIST_ISEMPTY
    - parse_resolve_conf
    - find_resolvers_by_id
    linkageType: ''
    returnType: int
    signature: int resolvers_create_default()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:4064,1
    - Dst: xprt_get
      Src: /src/haproxy/src/resolvers.c:4070,1
    - Dst: xprt_get
      Src: /src/haproxy/src/resolvers.c:4070,1
    - Dst: xprt_get
      Src: /src/haproxy/src/resolvers.c:4071,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:4072,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4082
      start: 4058
    functionDepth: 9
    functionLinenumber: 4058
    functionLinenumberEnd: 4082
    functionName: cfg_post_check_resolvers
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - xprt_get
    - ha_alert
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int cfg_post_check_resolvers(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/resolvers.c:4092,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:4099,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:4103,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:4105,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:4107,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:4120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4122
      start: 4085
    functionDepth: 7
    functionLinenumber: 4085
    functionLinenumberEnd: 4122
    functionName: cfg_parse_dns_accept_family
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    - strchr
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_dns_accept_family(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/resolvers.c:4147,1
    - Dst: ist
      Src: /src/haproxy/src/resolvers.c:4148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - id
    - metric
    - desc
    argTypes:
    - unsigned int
    - struct promex_metric*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4150
      start: 4140
    functionDepth: 1
    functionLinenumber: 4140
    functionLinenumberEnd: 4150
    functionName: rslv_promex_metric_info
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - ist
    linkageType: ''
    returnType: int
    signature: int rslv_promex_metric_info(unsigned int id, struct promex_metric *metric,
      struct ist *desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:4156,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:4160,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:4161,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:4163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - unused
    - id
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4166
      start: 4152
    functionDepth: 1
    functionLinenumber: 4152
    functionLinenumberEnd: 4166
    functionName: rslv_promex_start_ts
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - LIST_NEXT
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void *rslv_promex_start_ts(void *unused, unsigned int id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:4173,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:4176,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/resolvers.c:4177,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:4178,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:4180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - unused
    - metric_ctx
    - id
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4185
      start: 4168
    functionDepth: 1
    functionLinenumber: 4168
    functionLinenumberEnd: 4185
    functionName: rslv_promex_next_ts
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_from
    - LIST_ISEMPTY
    - LIST_NEXT
    linkageType: ''
    returnType: void
    signature: void *rslv_promex_next_ts(void *unused, void *metric_ctx, unsigned
      int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/resolvers.c:4194,1
    - Dst: ist
      Src: /src/haproxy/src/resolvers.c:4195,1
    - Dst: ist
      Src: /src/haproxy/src/resolvers.c:4196,1
    - Dst: ist
      Src: /src/haproxy/src/resolvers.c:4197,1
    - Dst: resolv_fill_stats
      Src: /src/haproxy/src/resolvers.c:4199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - unused
    - metric_ctx
    - id
    - labels
    - field
    argTypes:
    - void*
    - void*
    - unsigned int
    - struct promex_label*
    - struct field*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4203
      start: 4187
    functionDepth: 2
    functionLinenumber: 4187
    functionLinenumberEnd: 4203
    functionName: rslv_promex_fill_ts
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - ist
    - resolv_fill_stats
    linkageType: ''
    returnType: int
    signature: int rslv_promex_fill_ts(void *unused, void *metric_ctx, unsigned int
      id, struct promex_label *labels, struct field *field)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/auth.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: auth_find_userlist
    functionSourceFile: /src/haproxy/src/auth.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct userlist
    signature: 'struct userlist *

      auth_find_userlist(char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/auth.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ul
    - name
    argTypes:
    - struct userlist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: check_group
    functionSourceFile: /src/haproxy/src/auth.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int check_group(struct userlist *ul, char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/auth.c:98,1
    - Dst: free
      Src: /src/haproxy/src/auth.c:103,1
    - Dst: free
      Src: /src/haproxy/src/auth.c:104,1
    - Dst: free
      Src: /src/haproxy/src/auth.c:105,1
    - Dst: free
      Src: /src/haproxy/src/auth.c:113,1
    - Dst: free
      Src: /src/haproxy/src/auth.c:114,1
    - Dst: free
      Src: /src/haproxy/src/auth.c:119,1
    - Dst: free
      Src: /src/haproxy/src/auth.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - ul
    argTypes:
    - struct userlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 122
    functionName: userlist_free
    functionSourceFile: /src/haproxy/src/auth.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void userlist_free(struct userlist *ul)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strtok
      Src: /src/haproxy/src/auth.c:141,1
    - Dst: strcmp
      Src: /src/haproxy/src/auth.c:143,1
    - Dst: ha_alert
      Src: /src/haproxy/src/auth.c:148,1
    - Dst: free
      Src: /src/haproxy/src/auth.c:153,1
    - Dst: calloc
      Src: /src/haproxy/src/auth.c:159,1
    - Dst: ha_alert
      Src: /src/haproxy/src/auth.c:161,1
    - Dst: free
      Src: /src/haproxy/src/auth.c:166,1
    - Dst: free
      Src: /src/haproxy/src/auth.c:176,1
    - Dst: strtok
      Src: /src/haproxy/src/auth.c:186,1
    - Dst: strcmp
      Src: /src/haproxy/src/auth.c:188,1
    - Dst: ha_alert
      Src: /src/haproxy/src/auth.c:193,1
    - Dst: calloc
      Src: /src/haproxy/src/auth.c:199,1
    - Dst: ha_alert
      Src: /src/haproxy/src/auth.c:201,1
    - Dst: ha_free
      Src: /src/haproxy/src/auth.c:211,1
    - Dst: free
      Src: /src/haproxy/src/auth.c:223,1
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:234,1
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:238,1
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:241,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 124
    functionDepth: 9
    functionLinenumber: 124
    functionLinenumberEnd: 247
    functionName: userlist_postinit
    functionSourceFile: /src/haproxy/src/auth.c
    functionUses: 1
    functionsReached:
    - ha_free
    - calloc
    - strcmp
    - free
    - ha_alert
    - fprintf
    - strtok
    linkageType: ''
    returnType: int
    signature: int userlist_postinit()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:263,1
    - Dst: strcmp
      Src: /src/haproxy/src/auth.c:268,1
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:275,1
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:278,1
    - Dst: crypt_r
      Src: /src/haproxy/src/auth.c:284,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/auth.c:286,1
    - Dst: crypt
      Src: /src/haproxy/src/auth.c:287,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/auth.c:288,1
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:297,1
    - Dst: strcmp
      Src: /src/haproxy/src/auth.c:300,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - ul
    - user
    - pass
    argTypes:
    - struct userlist*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 304
    functionName: check_user
    functionSourceFile: /src/haproxy/src/auth.c
    functionUses: 2
    functionsReached:
    - strcmp
    - crypt
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - fprintf
    - crypt_r
    linkageType: ''
    returnType: int
    signature: int check_user(struct userlist *ul, const char *user, const char *pass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/auth.c:321,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/auth.c:328,1
    - Dst: strcmp
      Src: /src/haproxy/src/auth.c:333,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - smp
    - expr
    - fill
    argTypes:
    - struct sample*
    - struct pattern_expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 338
    functionName: pat_match_auth
    functionSourceFile: /src/haproxy/src/auth.c
    functionUses: 0
    functionsReached:
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct pattern
    signature: 'struct pattern *

      pat_match_auth(struct sample *smp, struct pattern_expr *expr, int fill)'
  - BBCount: 177
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:68,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:70,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:77,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:78,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:83,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:84,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:91,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:92,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:98,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:100,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:102,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:105,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:110,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:111,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:118,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:119,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:126,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:127,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:134,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:135,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:139,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:140,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:144,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:145,1
    - Dst: protocol_clrf_all
      Src: /src/haproxy/src/cfgparse-global.c:147,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:150,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:154,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:157,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:162,1
    - Dst: blk_SHA1_Init
      Src: /src/haproxy/src/cfgparse-global.c:167,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/cfgparse-global.c:168,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:168,1
    - Dst: blk_SHA1_Final
      Src: /src/haproxy/src/cfgparse-global.c:169,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:170,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-global.c:171,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:174,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:175,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:178,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:183,1
    - Dst: strl2irc
      Src: /src/haproxy/src/cfgparse-global.c:187,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:187,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:188,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:194,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:195,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:198,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:203,1
    - Dst: strl2irc
      Src: /src/haproxy/src/cfgparse-global.c:207,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:207,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:208,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:213,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:214,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:217,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:220,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:226,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:228,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:231,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:237,1
    - Dst: getpwnam
      Src: /src/haproxy/src/cfgparse-global.c:245,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:250,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:250,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:254,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:256,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:259,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:265,1
    - Dst: getgrnam
      Src: /src/haproxy/src/cfgparse-global.c:274,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:279,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:279,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:284,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:287,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:290,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:295,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-global.c:299,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:301,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:307,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:313,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:314,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:317,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:321,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:323,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:326,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:331,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:332,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:335,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:340,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:344,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:346,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:347,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:350,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:355,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:359,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:361,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:362,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:365,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:370,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:374,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:376,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:377,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:380,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:384,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:386,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:387,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:390,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:395,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:399,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:401,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:402,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:405,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:409,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:411,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:412,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:415,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:419,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:421,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:426,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:427,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:430,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:435,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:439,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:441,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:442,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:445,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:450,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:454,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:456,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:461,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:468,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-global.c:470,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-global.c:471,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-global.c:473,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-global.c:475,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:477,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:481,1
    - Dst: isupper
      Src: /src/haproxy/src/cfgparse-global.c:486,1
    - Dst: islower
      Src: /src/haproxy/src/cfgparse-global.c:486,1
    - Dst: isdigit
      Src: /src/haproxy/src/cfgparse-global.c:487,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:492,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-global.c:499,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:500,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:502,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:505,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:507,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:514,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:518,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:523,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-global.c:525,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:530,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:532,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:537,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:539,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:544,1
    - Dst: getpwnam
      Src: /src/haproxy/src/cfgparse-global.c:547,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:549,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:560,1
    - Dst: getgrnam
      Src: /src/haproxy/src/cfgparse-global.c:563,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:565,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:576,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:582,1
    - Dst: parse_logger
      Src: /src/haproxy/src/cfgparse-global.c:583,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:584,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:589,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:593,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-global.c:603,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:604,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:606,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:608,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:614,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:619,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:621,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:623,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:629,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:634,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:636,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:638,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:644,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:649,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:651,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:652,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:655,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/cfgparse-global.c:659,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/cfgparse-global.c:660,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:660,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:660,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:660,1
    - Dst: b_orig
      Src: /src/haproxy/src/cfgparse-global.c:661,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/cfgparse-global.c:662,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:663,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:668,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:669,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:672,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:677,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:681,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:683,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:687,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:691,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:694,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-global.c:699,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:701,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:706,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:711,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:716,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:725,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse-global.c:733,1
    - Dst: parse_process_number
      Src: /src/haproxy/src/cfgparse-global.c:740,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:741,1
    - Dst: parse_process_number
      Src: /src/haproxy/src/cfgparse-global.c:747,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:748,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cfgparse-global.c:758,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:759,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/cfgparse-global.c:765,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cfgparse-global.c:765,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/cfgparse-global.c:766,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cfgparse-global.c:766,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:767,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cfgparse-global.c:785,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cfgparse-global.c:796,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cfgparse-global.c:798,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cfgparse-global.c:799,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cfgparse-global.c:800,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cfgparse-global.c:801,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:806,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:812,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:813,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:817,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:818,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:823,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:826,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:830,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/cfgparse-global.c:836,1
    - Dst: atoll
      Src: /src/haproxy/src/cfgparse-global.c:837,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:839,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/cfgparse-global.c:845,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse-global.c:854,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:858,1
    - Dst: check_kw_experimental
      Src: /src/haproxy/src/cfgparse-global.c:864,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:865,1
    - Dst: parse
      Src: /src/haproxy/src/cfgparse-global.c:870,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:872,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:876,1
    - Dst: cfg_find_best_match
      Src: /src/haproxy/src/cfgparse-global.c:887,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:889,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:891,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-global.c:896,1
    CyclomaticComplexity: 307
    EdgeCount: 307
    ICount: 780
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 63
    functionDepth: 9
    functionLinenumber: 63
    functionLinenumberEnd: 898
    functionName: cfg_parse_global
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - parse_logger
    - HA_ATOMIC_LOAD
    - parse
    - ha_cpuset_assign
    - free
    - isdigit
    - strl2irc
    - chunk_destroy
    - atoi
    - ha_cpuset_count
    - snprintf
    - HA_ATOMIC_STORE
    - ha_cpuset_clr
    - atoll
    - alertif_too_many_args
    - strerror
    - atol
    - strcmp
    - protocol_clrf_all
    - blk_SHA1_Init
    - strchr
    - strtol
    - getgrnam
    - blk_SHA1_Final
    - parse_process_number
    - ha_cpuset_zero
    - b_orig
    - memcpy
    - calloc
    - isupper
    - blk_SHA1_Update
    - parse_cpu_set
    - islower
    - my_popcountl
    - ha_cpuset_set
    - strdup
    - cfg_find_best_match
    - getpwnam
    - ha_cpuset_ffs
    - BUG_ON
    - list_for_each_entry
    - check_kw_experimental
    - ha_alert
    - ha_warning
    - chunk_initlen
    - parse_time_err
    - strlen
    linkageType: ''
    returnType: int
    signature: int cfg_parse_global(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 900
    functionDepth: 7
    functionLinenumber: 900
    functionLinenumberEnd: 910
    functionName: cfg_parse_prealloc_fd
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_prealloc_fd(char **args, int section_type, struct proxy
      *curpx,\n                            const struct proxy *defpx, const char *file,
      int line,\n                            char **err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:922,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-global.c:926,1
    - Dst: istlen
      Src: /src/haproxy/src/cfgparse-global.c:927,1
    - Dst: istfind
      Src: /src/haproxy/src/cfgparse-global.c:927,1
    - Dst: istadv
      Src: /src/haproxy/src/cfgparse-global.c:928,1
    - Dst: istfind
      Src: /src/haproxy/src/cfgparse-global.c:928,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:930,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:933,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:937,1
    - Dst: istmatch
      Src: /src/haproxy/src/cfgparse-global.c:941,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-global.c:941,1
    - Dst: istmatch
      Src: /src/haproxy/src/cfgparse-global.c:947,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-global.c:947,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:954,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 913
    functionDepth: 5
    functionLinenumber: 913
    functionLinenumberEnd: 959
    functionName: cfg_parse_reject_privileged_ports
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - istadv
    - memprintf
    - ist
    - strcmp
    - istmatch
    - istfind
    - istlen
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_reject_privileged_ports(char **args, int section_type,\n
      \                                            struct proxy *curpx,\n                                             const
      struct proxy *defpx,\n                                             const char
      *file, int line, char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:969,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:974,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:976,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:980,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:983,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 962
    functionDepth: 9
    functionLinenumber: 962
    functionLinenumberEnd: 991
    functionName: cfg_parse_global_master_worker
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    - ha_warning
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_master_worker(char **args, int section_type,\n\t\t\t\t\t
      \ struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t\t  const char *file,
      int line, char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1001,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1004,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:1006,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1011,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1014,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1018,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 994
    functionDepth: 9
    functionLinenumber: 994
    functionLinenumberEnd: 1023
    functionName: cfg_parse_global_mode
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - strcmp
    - BUG_ON
    - ha_warning
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_mode(char **args, int section_type,\n\t\t\t\t
      struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t const char *file,
      int line, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1025
    functionDepth: 7
    functionLinenumber: 1025
    functionLinenumberEnd: 1038
    functionName: cfg_parse_global_disable_ktls
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_disable_ktls(char **args, int section_type,\n\t\t\t\t\t
      struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t\t const char *file,
      int line, char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1048,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1051,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1054,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1057,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1060,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1064,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1041
    functionDepth: 7
    functionLinenumber: 1041
    functionLinenumberEnd: 1069
    functionName: cfg_parse_global_disable_poller
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - strcmp
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_disable_poller(char **args, int section_type,\n\t\t\t\t\t
      \  struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t\t   const char
      *file, int line, char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1078,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1081,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1083,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1087,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:1090,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1092,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1071
    functionDepth: 7
    functionLinenumber: 1071
    functionLinenumberEnd: 1097
    functionName: cfg_parse_global_pidfile
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - memprintf
    - BUG_ON
    - strcmp
    - too_many_args
    - strdup
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_pidfile(char **args, int section_type,\n\t\t\t\t
      \   struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t    const char
      *file, int line, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1104,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1107,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1109,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1099
    functionDepth: 7
    functionLinenumber: 1099
    functionLinenumberEnd: 1117
    functionName: cfg_parse_global_non_std_directives
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - strcmp
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_non_std_directives(char **args, int section_type,\n\t\t\t\t\t
      \      struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t\t       const
      char *file, int line, char **err)"
  - BBCount: 85
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1125,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1129,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1131,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1135,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:1138,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1143,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1147,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1151,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:1154,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1156,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1162,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1164,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:1167,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1169,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1173,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1177,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1181,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:1184,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1186,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1193,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1195,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1198,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1203,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1209,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1211,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1214,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1219,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1227,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1233,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1235,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:1238,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1240,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1246,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1250,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-global.c:1254,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1256,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1261,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1266,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1271,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1278,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1280,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1284,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1287,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1293,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1295,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1299,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1302,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1308,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1310,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1314,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1317,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1323,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1325,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1329,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1332,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1338,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1341,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1345,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1348,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1354,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1358,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1361,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1365,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1368,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1374,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1378,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1380,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1383,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1389,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1391,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:1394,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1398,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1400,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:1403,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1407,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1409,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:1412,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1414,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1420,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1422,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:1425,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1427,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1433,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1436,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1438,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:1441,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1443,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1447,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-global.c:1450,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1453,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1457,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1459,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1462,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1464,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1466,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1469,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1473,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1475,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:1478,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1480,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1486,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1493,1
    CyclomaticComplexity: 98
    EdgeCount: 98
    ICount: 333
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1119
    functionDepth: 7
    functionLinenumber: 1119
    functionLinenumberEnd: 1496
    functionName: cfg_parse_global_tune_opts
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_size_err
    - BUG_ON
    - atol
    - strcmp
    - strtol
    - atoi
    - too_many_args
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_tune_opts(char **args, int section_type,\n\t\t\t\t
      \     struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t      const char
      *file, int line, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1503,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1506,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1509,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1498
    functionDepth: 7
    functionLinenumber: 1498
    functionLinenumberEnd: 1519
    functionName: cfg_parse_global_tune_forward_opts
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - strcmp
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_tune_forward_opts(char **args, int section_type,\n\t\t\t\t\t
      \     struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t\t      const
      char *file, int line, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1525,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1526,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1529,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1530,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1521
    functionDepth: 5
    functionLinenumber: 1521
    functionLinenumberEnd: 1537
    functionName: cfg_parse_global_unsupported_opts
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_unsupported_opts(char **args, int section_type,\n\t\t\t\t\t
      \    struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t\t     const char
      *file, int line, char **err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1544,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1544,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1545,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1548,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1554,1
    - Dst: setenv
      Src: /src/haproxy/src/cfgparse-global.c:1560,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1561,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1562,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1566,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1570,1
    - Dst: unsetenv
      Src: /src/haproxy/src/cfgparse-global.c:1575,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1576,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1577,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1582,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-global.c:1592,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:1592,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:1593,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse-global.c:1599,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1602,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-global.c:1607,1
    - Dst: unsetenv
      Src: /src/haproxy/src/cfgparse-global.c:1610,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1611,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1612,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1621,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1539
    functionDepth: 7
    functionLinenumber: 1539
    functionLinenumberEnd: 1626
    functionName: cfg_parse_global_env_opts
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - memprintf
    - memcpy
    - strerror
    - BUG_ON
    - setenv
    - strcmp
    - unsetenv
    - strchr
    - strncmp
    - too_many_args
    - strlen
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_env_opts(char **args, int section_type,\n\t\t\t\t
      \    struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t     const char
      *file, int line, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1633,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1638,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:1642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1628
    functionDepth: 5
    functionLinenumber: 1628
    functionLinenumberEnd: 1644
    functionName: cfg_parse_global_shm_stats_file
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_shm_stats_file(char **args, int section_type,\n\t\t\t\t
      \          struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t           const
      char *file, int line, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1651,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1656,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:1660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1646
    functionDepth: 5
    functionLinenumber: 1646
    functionLinenumberEnd: 1662
    functionName: cfg_parse_global_shm_stats_file_max_objects
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_shm_stats_file_max_objects(char **args, int section_type,\n\t\t\t\t
      \                      struct proxy *curpx, const struct proxy *defpx,\n\t\t\t\t
      \                      const char *file, int line, char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1672,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1676,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-global.c:1680,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1682,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1687,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1692,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1697,1
    - Dst: usleep
      Src: /src/haproxy/src/cfgparse-global.c:1701,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1664
    functionDepth: 7
    functionLinenumber: 1664
    functionLinenumberEnd: 1704
    functionName: cfg_parse_global_parser_pause
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - parse_time_err
    - usleep
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_parser_pause(char **args, int section_type,\n
      \                                        struct proxy *curpx, const struct proxy
      *defpx,\n                                         const char *file, int line,
      char **err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1716,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-global.c:1719,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1721,1
    - Dst: setpriority
      Src: /src/haproxy/src/cfgparse-global.c:1734,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:1735,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1735,1
    - Dst: getpriority
      Src: /src/haproxy/src/cfgparse-global.c:1738,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:1740,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1740,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1748,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1709
    functionDepth: 9
    functionLinenumber: 1709
    functionLinenumberEnd: 1752
    functionName: cfg_parse_tune_renice
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - memprintf
    - BUG_ON
    - strerror
    - setpriority
    - strtol
    - getpriority
    - ha_warning
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_tune_renice(char **args, int section_type, struct proxy
      *curpx,\n                                const struct proxy *defpx, const char
      *file, int line,\n                                char **err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1760,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1764,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1768,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:1771,1
    - Dst: stat
      Src: /src/haproxy/src/cfgparse-global.c:1776,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse-global.c:1778,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1779,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse-global.c:1781,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1783,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse-global.c:1785,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1786,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse-global.c:1788,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1754
    functionDepth: 10
    functionLinenumber: 1754
    functionLinenumberEnd: 1793
    functionName: cfg_parse_global_chroot
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strerror
    - stat
    - ha_diag_warning
    - too_many_args
    - strdup
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_chroot(char **args, int section_type, struct
      proxy *curpx,\n\t\t\t\t   const struct proxy *defpx, const char *file, int line,\n\t\t\t\t
      \  char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1802,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1806,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1811,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-global.c:1816,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:1817,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1819,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1795
    functionDepth: 7
    functionLinenumber: 1795
    functionLinenumberEnd: 1824
    functionName: cfg_parse_global_localpeer
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_localpeer(char **args, int section_type, struct
      proxy *curpx,\n\t\t\t\t      const struct proxy *defpx, const char *file, int
      line,\n\t\t\t\t      char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1833,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1837,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-global.c:1841,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1843,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1826
    functionDepth: 7
    functionLinenumber: 1826
    functionLinenumberEnd: 1850
    functionName: cfg_parse_global_stress_level
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strtol
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_global_stress_level(char **args, int section_type, struct
      proxy *curpx,\n                                         const struct proxy *defpx,
      const char *file, int line,\n                                         char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ebst_lookup
      Src: /src/haproxy/src/ebsttree.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: ebst_lookup
    functionSourceFile: /src/haproxy/src/ebsttree.c
    functionUses: 18
    functionsReached:
    - __ebst_lookup
    linkageType: ''
    returnType: struct ebmb_node
    signature: struct ebmb_node *ebst_lookup(struct eb_root *root, const char *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ebst_insert
      Src: /src/haproxy/src/ebsttree.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct ebmb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: ebst_insert
    functionSourceFile: /src/haproxy/src/ebsttree.c
    functionUses: 8
    functionsReached:
    - __ebst_insert
    linkageType: ''
    returnType: struct ebmb_node
    signature: struct ebmb_node *ebst_insert(struct eb_root *root, struct ebmb_node
      *new)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/sock.c:75,1
    - Dst: unlikely
      Src: /src/haproxy/src/sock.c:90,1
    - Dst: accept4
      Src: /src/haproxy/src/sock.c:95,1
    - Dst: accept
      Src: /src/haproxy/src/sock.c:102,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/sock.c:103,1
    - Dst: fd_set_cloexec
      Src: /src/haproxy/src/sock.c:105,1
    - Dst: likely
      Src: /src/haproxy/src/sock.c:109,1
    - Dst: unlikely
      Src: /src/haproxy/src/sock.c:110,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:111,1
    - Dst: unlikely
      Src: /src/haproxy/src/sock.c:117,1
    - Dst: port_is_restricted
      Src: /src/haproxy/src/sock.c:117,1
    - Dst: conn_new
      Src: /src/haproxy/src/sock.c:121,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/sock.c:132,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/sock.c:146,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/sock.c:149,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:164,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:172,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:181,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/sock.c:197,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:200,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 83
    argCount: 2
    argNames:
    - l
    - status
    argTypes:
    - struct listener*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 63
    functionDepth: 10
    functionLinenumber: 63
    functionLinenumberEnd: 204
    functionName: sock_accept_conn
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sockaddr_alloc
    - fd_set_cloexec
    - accept4
    - port_is_restricted
    - accept
    - _HA_ATOMIC_AND
    - likely
    - fd_set_nonblock
    - conn_new
    - sockaddr_free
    - send_log
    - fd_cant_recv
    - close
    linkageType: ''
    returnType: struct connection
    signature: struct connection *sock_accept_conn(struct listener *l, int *status)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qfprintf
      Src: /src/haproxy/src/sock.c:211,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:219,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:227,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:236,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:249,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:256,1
    - Dst: strerror
      Src: /src/haproxy/src/sock.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - conn
    - be
    argTypes:
    - struct connection*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 209
    functionDepth: 10
    functionLinenumber: 209
    functionLinenumberEnd: 262
    functionName: sock_handle_system_err
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - qfprintf
    - send_log
    - strerror
    linkageType: ''
    returnType: int
    signature: int sock_handle_system_err(struct connection *conn, struct proxy *be)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/sock.c:280,1
    - Dst: __objt_server
      Src: /src/haproxy/src/sock.c:281,1
    - Dst: __objt_server
      Src: /src/haproxy/src/sock.c:284,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/sock.c:287,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:288,1
    - Dst: my_socketat
      Src: /src/haproxy/src/sock.c:289,1
    - Dst: sock_handle_system_err
      Src: /src/haproxy/src/sock.c:293,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sock.c:303,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:304,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:305,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/sock.c:313,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock.c:315,1
    - Dst: qfprintf
      Src: /src/haproxy/src/sock.c:316,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:317,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:318,1
    - Dst: fd_set_cloexec
      Src: /src/haproxy/src/sock.c:326,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sock.c:327,1
    - Dst: send_log
      Src: /src/haproxy/src/sock.c:328,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:329,1
    - Dst: sock_set_mark
      Src: /src/haproxy/src/sock.c:338,1
    - Dst: sock_set_tos
      Src: /src/haproxy/src/sock.c:340,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 5
    argNames:
    - conn
    - be
    - proto_type
    - sock_type
    - stream_err
    argTypes:
    - struct connection*
    - struct proxy*
    - enum proto_type
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 272
    functionDepth: 11
    functionLinenumber: 272
    functionLinenumberEnd: 344
    functionName: sock_create_server_socket
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 3
    functionsReached:
    - __objt_server
    - fd_set_cloexec
    - BUG_ON
    - send_log
    - my_socketat
    - setsockopt
    - sock_handle_system_err
    - sock_set_tos
    - fd_set_nonblock
    - ha_alert
    - qfprintf
    - protocol_lookup
    - objt_server
    - sock_set_mark
    - close
    linkageType: ''
    returnType: int
    signature: "int sock_create_server_socket(struct connection *conn, struct proxy
      *be,\n                              enum proto_type proto_type, int sock_type,
      int *stream_err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fd_want_recv_safe
      Src: /src/haproxy/src/sock.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: sock_enable
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - fd_want_recv_safe
    linkageType: ''
    returnType: void
    signature: void sock_enable(struct receiver *rx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/sock.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: sock_disable
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    linkageType: ''
    returnType: void
    signature: void sock_disable(struct receiver *rx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct receiver*::proto::rx_disable
      Src: /src/haproxy/src/sock.c:375,1
    - Dst: fd_delete
      Src: /src/haproxy/src/sock.c:389,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 361
    functionDepth: 4
    functionLinenumber: 361
    functionLinenumberEnd: 391
    functionName: sock_unbind
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - struct receiver*::proto::rx_disable
    linkageType: ''
    returnType: void
    signature: void sock_unbind(struct receiver *rx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - un
    - socklen
    argTypes:
    - struct sockaddr_un*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 413
    functionName: sock_restore_unix_family
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sock_restore_unix_family(struct sockaddr_un *un, socklen_t socklen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/haproxy/src/sock.c:426,1
    - Dst: getpeername
      Src: /src/haproxy/src/sock.c:428,1
    - Dst: sock_restore_unix_family
      Src: /src/haproxy/src/sock.c:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - fd
    - sa
    - salen
    - dir
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 436
    functionName: sock_get_src
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - getsockname
    - getpeername
    - sock_restore_unix_family
    linkageType: ''
    returnType: int
    signature: int sock_get_src(int fd, struct sockaddr *sa, socklen_t salen, int
      dir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getpeername
      Src: /src/haproxy/src/sock.c:449,1
    - Dst: getsockname
      Src: /src/haproxy/src/sock.c:451,1
    - Dst: sock_restore_unix_family
      Src: /src/haproxy/src/sock.c:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - fd
    - sa
    - salen
    - dir
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 459
    functionName: sock_get_dst
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - getsockname
    - getpeername
    - sock_restore_unix_family
    linkageType: ''
    returnType: int
    signature: int sock_get_dst(int fd, struct sockaddr *sa, socklen_t salen, int
      dir)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/sock.c:483,1
    - Dst: strlen
      Src: /src/haproxy/src/sock.c:483,1
    - Dst: strtoll
      Src: /src/haproxy/src/sock.c:499,1
    - Dst: strlen
      Src: /src/haproxy/src/sock.c:499,1
    - Dst: socketpair
      Src: /src/haproxy/src/sock.c:501,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:502,1
    - Dst: send_fd_uxst
      Src: /src/haproxy/src/sock.c:505,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sock.c:506,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:507,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:508,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:512,1
    - Dst: socket
      Src: /src/haproxy/src/sock.c:518,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:520,1
    - Dst: strncpy
      Src: /src/haproxy/src/sock.c:524,1
    - Dst: connect
      Src: /src/haproxy/src/sock.c:528,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:530,1
    - Dst: memset
      Src: /src/haproxy/src/sock.c:535,1
    - Dst: malloc
      Src: /src/haproxy/src/sock.c:536,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/sock.c:536,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/sock.c:536,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:538,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock.c:542,1
    - Dst: send
      Src: /src/haproxy/src/sock.c:548,1
    - Dst: strlen
      Src: /src/haproxy/src/sock.c:548,1
    - Dst: strlen
      Src: /src/haproxy/src/sock.c:548,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:549,1
    - Dst: recvmsg
      Src: /src/haproxy/src/sock.c:554,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:555,1
    - Dst: malloc
      Src: /src/haproxy/src/sock.c:564,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/sock.c:564,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:566,1
    - Dst: malloc
      Src: /src/haproxy/src/sock.c:570,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/sock.c:570,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:572,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/sock.c:577,1
    - Dst: recvmsg
      Src: /src/haproxy/src/sock.c:585,1
    - Dst: send
      Src: /src/haproxy/src/sock.c:597,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/sock.c:600,1
    - Dst: CMSG_NXTHDR
      Src: /src/haproxy/src/sock.c:600,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/sock.c:602,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:605,1
    - Dst: memcpy
      Src: /src/haproxy/src/sock.c:613,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/sock.c:613,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:621,1
    - Dst: calloc
      Src: /src/haproxy/src/sock.c:635,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:637,1
    - Dst: getsockname
      Src: /src/haproxy/src/sock.c:643,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:644,1
    - Dst: ha_free
      Src: /src/haproxy/src/sock.c:645,1
    - Dst: sock_restore_unix_family
      Src: /src/haproxy/src/sock.c:652,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:657,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:665,1
    - Dst: malloc
      Src: /src/haproxy/src/sock.c:668,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:670,1
    - Dst: memcpy
      Src: /src/haproxy/src/sock.c:673,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:680,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:688,1
    - Dst: malloc
      Src: /src/haproxy/src/sock.c:691,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:693,1
    - Dst: memcpy
      Src: /src/haproxy/src/sock.c:696,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sock.c:703,1
    - Dst: sock_inet_is_foreign
      Src: /src/haproxy/src/sock.c:713,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock.c:717,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock.c:726,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:746,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:750,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:751,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:752,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:755,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:758,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:759,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:761,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:762,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 209
    argCount: 1
    argNames:
    - unixsocket
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 465
    functionDepth: 9
    functionLinenumber: 465
    functionLinenumberEnd: 765
    functionName: sock_get_old_sockets
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 1
    functionsReached:
    - CMSG_NXTHDR
    - free
    - socket
    - CMSG_LEN
    - close
    - ha_free
    - setsockopt
    - getsockopt
    - socketpair
    - strtoll
    - recvmsg
    - CMSG_SPACE
    - connect
    - sock_inet_is_foreign
    - strncpy
    - malloc
    - memcpy
    - calloc
    - CMSG_DATA
    - send_fd_uxst
    - memset
    - send
    - strncmp
    - CMSG_FIRSTHDR
    - sock_restore_unix_family
    - ha_alert
    - ha_warning
    - getsockname
    - array_size_or_fail
    - strlen
    linkageType: ''
    returnType: int
    signature: int sock_get_old_sockets(const char *unixsocket)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/sock.c:803,1
    - Dst: strcmp
      Src: /src/haproxy/src/sock.c:813,1
    - Dst: USE_NS
      Src: /src/haproxy/src/sock.c:814,1
    - Dst: strcmp
      Src: /src/haproxy/src/sock.c:815,1
    - Dst: struct receiver*::proto::fam::addrcmp
      Src: /src/haproxy/src/sock.c:817,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:830,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:831,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:832,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 33
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 835
    functionName: sock_find_compatible_fd
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 2
    functionsReached:
    - strcmp
    - free
    - struct receiver*::proto::fam::addrcmp
    - USE_NS
    - strlen
    linkageType: ''
    returnType: int
    signature: int sock_find_compatible_fd(const struct receiver *rx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/haproxy/src/sock.c:847,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:848,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:849,1
    - Dst: free
      Src: /src/haproxy/src/sock.c:850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 853
    functionName: sock_drop_unused_old_sockets
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 2
    functionsReached:
    - close
    - free
    linkageType: ''
    returnType: void
    signature: void sock_drop_unused_old_sockets()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/haproxy/src/sock.c:865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 869
    functionName: sock_accepting_conn
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 3
    functionsReached:
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int sock_accepting_conn(const struct receiver *rx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:883,1
    - Dst: listener_accept
      Src: /src/haproxy/src/sock.c:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 876
    functionDepth: 6
    functionLinenumber: 876
    functionLinenumberEnd: 885
    functionName: sock_accept_iocb
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - listener_accept
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sock_accept_iocb(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:893,1
    - Dst: fd_insert
      Src: /src/haproxy/src/sock.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: sock_conn_ctrl_init
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - fd_insert
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sock_conn_ctrl_init(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:903,1
    - Dst: fd_delete
      Src: /src/haproxy/src/sock.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 901
    functionDepth: 4
    functionLinenumber: 901
    functionLinenumberEnd: 906
    functionName: sock_conn_ctrl_close
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sock_conn_ctrl_close(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/haproxy/src/sock.c:919,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - conn
    - level
    - optname
    - buf
    - size
    argTypes:
    - struct connection*
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 923
    functionName: sock_conn_get_opt
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int sock_conn_get_opt(const struct connection *conn, int level, int
      optname, void *buf, int size)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/sock.c:940,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:946,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/sock.c:948,1
    - Dst: unlikely
      Src: /src/haproxy/src/sock.c:990,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/sock.c:991,1
    - Dst: obj_type
      Src: /src/haproxy/src/sock.c:1006,1
    - Dst: objt_server
      Src: /src/haproxy/src/sock.c:1007,1
    - Dst: connect
      Src: /src/haproxy/src/sock.c:1009,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/sock.c:1009,1
    - Dst: conn_set_errno
      Src: /src/haproxy/src/sock.c:1014,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/sock.c:1015,1
    - Dst: fd_may_send
      Src: /src/haproxy/src/sock.c:1026,1
    - Dst: fd_cond_recv
      Src: /src/haproxy/src/sock.c:1027,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/sock.c:1036,1
    - Dst: fd_stop_both
      Src: /src/haproxy/src/sock.c:1037,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/sock.c:1046,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/sock.c:1050,1
    - Dst: fd_want_send
      Src: /src/haproxy/src/sock.c:1051,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 1053
    functionName: sock_conn_check
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - get_addr_len
    - fd_send_ready
    - BUG_ON
    - conn_ctrl_ready
    - fd_cond_recv
    - fd_want_send
    - conn_report_term_evt
    - conn_set_errno
    - connect
    - fd_stop_both
    - COUNT_IF
    - obj_type
    - HA_ATOMIC_AND
    - fd_cant_send
    - objt_server
    - fd_may_send
    linkageType: ''
    returnType: int
    signature: int sock_conn_check(struct connection *conn)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/sock.c:1065,1
    - Dst: unlikely
      Src: /src/haproxy/src/sock.c:1072,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/sock.c:1073,1
    - Dst: fd_send_active
      Src: /src/haproxy/src/sock.c:1073,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/sock.c:1074,1
    - Dst: fd_recv_active
      Src: /src/haproxy/src/sock.c:1074,1
    - Dst: sock_conn_check
      Src: /src/haproxy/src/sock.c:1079,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/sock.c:1084,1
    - Dst: fd_send_active
      Src: /src/haproxy/src/sock.c:1084,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/sock.c:1096,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/sock.c:1098,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/sock.c:1105,1
    - Dst: fd_recv_active
      Src: /src/haproxy/src/sock.c:1105,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/sock.c:1117,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/sock.c:1119,1
    - Dst: conn_notify_mux
      Src: /src/haproxy/src/sock.c:1127,1
    - Dst: unlikely
      Src: /src/haproxy/src/sock.c:1136,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/sock.c:1137,1
    - Dst: fd_stop_both
      Src: /src/haproxy/src/sock.c:1138,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/sock.c:1145,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1058
    functionDepth: 3
    functionLinenumber: 1058
    functionLinenumberEnd: 1148
    functionName: sock_conn_iocb
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fd_send_ready
    - conn_ctrl_ready
    - fd_recv_ready
    - conn_notify_mux
    - tasklet_wakeup
    - fd_stop_recv
    - fd_stop_both
    - fd_recv_active
    - fd_stop_send
    - sock_conn_check
    - fd_send_active
    linkageType: ''
    returnType: void
    signature: void sock_conn_iocb(int fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:1161,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/sock.c:1166,1
    - Dst: recv
      Src: /src/haproxy/src/sock.c:1173,1
    - Dst: recv
      Src: /src/haproxy/src/sock.c:1176,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/sock.c:1184,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/sock.c:1201,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1203
    functionName: sock_drain
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - fd_recv_ready
    - recv
    - HA_ATOMIC_AND
    - fd_cant_recv
    linkageType: ''
    returnType: int
    signature: int sock_drain(struct connection *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:1215,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/sock.c:1218,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/sock.c:1221,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/sock.c:1225,1
    - Dst: fd_want_send
      Src: /src/haproxy/src/sock.c:1228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - event_type
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1232
    functionName: sock_check_events
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - fd_send_ready
    - BUG_ON
    - fd_recv_ready
    - fd_want_recv
    - fd_want_send
    linkageType: ''
    returnType: int
    signature: int sock_check_events(struct connection *conn, int event_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:1239,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/sock.c:1242,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/sock.c:1245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - event_type
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1246
    functionName: sock_ignore_events
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - fd_stop_send
    - fd_stop_recv
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sock_ignore_events(struct connection *conn, int event_type)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: real_family
      Src: /src/haproxy/src/sock.c:1264,1
    - Dst: socket
      Src: /src/haproxy/src/sock.c:1267,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock.c:1271,1
    - Dst: memset
      Src: /src/haproxy/src/sock.c:1275,1
    - Dst: real_family
      Src: /src/haproxy/src/sock.c:1276,1
    - Dst: bind
      Src: /src/haproxy/src/sock.c:1277,1
    - Dst: getsockname
      Src: /src/haproxy/src/sock.c:1280,1
    - Dst: socket
      Src: /src/haproxy/src/sock.c:1283,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock.c:1287,1
    - Dst: bind
      Src: /src/haproxy/src/sock.c:1290,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:1300,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:1302,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 3
    argNames:
    - fam
    - type
    - protocol
    argTypes:
    - struct proto_fam*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1252
    functionDepth: 1
    functionLinenumber: 1252
    functionLinenumberEnd: 1305
    functionName: _sock_supports_reuseport
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 1
    functionsReached:
    - memset
    - setsockopt
    - bind
    - getsockname
    - socket
    - real_family
    - close
    linkageType: ''
    returnType: int
    signature: int _sock_supports_reuseport(const struct proto_fam *fam, int type,
      int protocol)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/cfgparse-peers.c:43,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:45,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-peers.c:46,1
    - Dst: peers_setup_frontend
      Src: /src/haproxy/src/cfgparse-peers.c:50,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-peers.c:57,1
    - Dst: drop_file_name
      Src: /src/haproxy/src/cfgparse-peers.c:58,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/cfgparse-peers.c:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - file
    - linenum
    - id
    - peers
    argTypes:
    - char*
    - int
    - char*
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 32
    functionDepth: 9
    functionLinenumber: 32
    functionLinenumberEnd: 64
    functionName: init_peers_frontend
    functionSourceFile: /src/haproxy/src/cfgparse-peers.c
    functionUses: 0
    functionsReached:
    - ha_free
    - copy_file_name
    - peers_setup_frontend
    - drop_file_name
    - alloc_new_proxy
    - ha_alert
    - strdup
    linkageType: ''
    returnType: int
    signature: "int init_peers_frontend(const char *file, int linenum,\n                               const
      char *id, struct peers *peers)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-peers.c:75,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cfgparse-peers.c:76,1
    - Dst: typeof
      Src: /src/haproxy/src/cfgparse-peers.c:76,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-peers.c:82,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-peers.c:83,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/cfgparse-peers.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - p
    - file
    - line
    - arg
    - xprt
    argTypes:
    - struct proxy*
    - char*
    - int
    - char*
    - struct xprt_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 91
    functionName: bind_conf_uniq_alloc
    functionSourceFile: /src/haproxy/src/cfgparse-peers.c
    functionUses: 0
    functionsReached:
    - typeof
    - LIST_ELEM
    - free
    - LIST_ISEMPTY
    - bind_conf_alloc
    - strdup
    linkageType: ''
    returnType: struct bind_conf
    signature: "struct bind_conf *bind_conf_uniq_alloc(struct proxy *p,\n                                              const
      char *file, int line,\n                                              const char
      *arg, struct xprt_ops *xprt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-peers.c:104,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:106,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-peers.c:115,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/cfgparse-peers.c:117,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/cfgparse-peers.c:118,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-peers.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - peers
    - file
    - linenum
    - id
    - local
    argTypes:
    - struct peers*
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 98
    functionDepth: 9
    functionLinenumber: 98
    functionLinenumberEnd: 127
    functionName: cfg_peers_add_peer
    functionSourceFile: /src/haproxy/src/cfgparse-peers.c
    functionUses: 0
    functionsReached:
    - ns_to_sec
    - HA_SPIN_INIT
    - calloc
    - ha_alert
    - strdup
    linkageType: ''
    returnType: struct peer
    signature: "struct peer *cfg_peers_add_peer(struct peers *peers,\n                                       const
      char *file, int linenum,\n                                       const char
      *id, int local)"
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:151,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:151,1
    - Dst: init_peers_frontend
      Src: /src/haproxy/src/cfgparse-peers.c:158,1
    - Dst: bind_conf_uniq_alloc
      Src: /src/haproxy/src/cfgparse-peers.c:163,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse-peers.c:164,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:166,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:179,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-peers.c:184,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:185,1
    - Dst: str2listener
      Src: /src/haproxy/src/cfgparse-peers.c:189,1
    - Dst: indent_msg
      Src: /src/haproxy/src/cfgparse-peers.c:191,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:192,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:195,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:205,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cfgparse-peers.c:212,1
    - Dst: typeof
      Src: /src/haproxy/src/cfgparse-peers.c:212,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-peers.c:224,1
    - Dst: get_host_port
      Src: /src/haproxy/src/cfgparse-peers.c:226,1
    - Dst: cfg_peers_add_peer
      Src: /src/haproxy/src/cfgparse-peers.c:233,1
    - Dst: bind_parse_args_list
      Src: /src/haproxy/src/cfgparse-peers.c:242,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:247,1
    - Dst: init_peers_frontend
      Src: /src/haproxy/src/cfgparse-peers.c:248,1
    - Dst: parse_server
      Src: /src/haproxy/src/cfgparse-peers.c:252,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:255,1
    - Dst: init_peers_frontend
      Src: /src/haproxy/src/cfgparse-peers.c:256,1
    - Dst: parse_logger
      Src: /src/haproxy/src/cfgparse-peers.c:260,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:261,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:266,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:271,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-peers.c:276,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse-peers.c:281,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:283,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:294,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:295,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-peers.c:301,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:302,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-peers.c:309,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/cfgparse-peers.c:311,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-peers.c:312,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:315,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:316,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:322,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:326,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-peers.c:337,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:341,1
    - Dst: cfg_peers_add_peer
      Src: /src/haproxy/src/cfgparse-peers.c:347,1
    - Dst: init_peers_frontend
      Src: /src/haproxy/src/cfgparse-peers.c:355,1
    - Dst: parse_server
      Src: /src/haproxy/src/cfgparse-peers.c:369,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-peers.c:381,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse-peers.c:386,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-peers.c:392,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-peers.c:393,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-peers.c:402,1
    - Dst: get_host_port
      Src: /src/haproxy/src/cfgparse-peers.c:413,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-peers.c:417,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-peers.c:425,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/cfgparse-peers.c:429,1
    - Dst: bind_conf_uniq_alloc
      Src: /src/haproxy/src/cfgparse-peers.c:439,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse-peers.c:439,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:441,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-peers.c:450,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:451,1
    - Dst: str2listener
      Src: /src/haproxy/src/cfgparse-peers.c:455,1
    - Dst: indent_msg
      Src: /src/haproxy/src/cfgparse-peers.c:457,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:458,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:461,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:469,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:473,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-peers.c:478,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:480,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:487,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:495,1
    - Dst: init_peers_frontend
      Src: /src/haproxy/src/cfgparse-peers.c:501,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/cfgparse-peers.c:509,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/cfgparse-peers.c:510,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:511,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cfgparse-peers.c:518,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cfgparse-peers.c:518,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:519,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-peers.c:525,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-peers.c:526,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:528,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-peers.c:530,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-peers.c:531,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/cfgparse-peers.c:536,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:538,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-peers.c:540,1
    - Dst: parse_stick_table
      Src: /src/haproxy/src/cfgparse-peers.c:548,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-peers.c:550,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-peers.c:551,1
    - Dst: stktable_store_name
      Src: /src/haproxy/src/cfgparse-peers.c:555,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:559,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:562,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse-peers.c:570,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-peers.c:572,1
    - Dst: parse
      Src: /src/haproxy/src/cfgparse-peers.c:573,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:575,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-peers.c:580,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-peers.c:589,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-peers.c:595,1
    CyclomaticComplexity: 110
    EdgeCount: 110
    ICount: 341
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 139
    functionDepth: 10
    functionLinenumber: 139
    functionLinenumberEnd: 597
    functionName: cfg_parse_peers
    functionSourceFile: /src/haproxy/src/cfgparse-peers.c
    functionUses: 0
    functionsReached:
    - bind_conf_uniq_alloc
    - parse_logger
    - parse
    - free
    - init_peers_frontend
    - proxy_cap_str
    - bind_parse_args_list
    - str2listener
    - invalid_char
    - alertif_too_many_args
    - ha_free
    - chunk_strcat
    - strcmp
    - stktable_find_by_name
    - stktable_store_name
    - chunk_memcat
    - parse_server
    - strtol
    - indent_msg
    - typeof
    - ns_to_sec
    - parse_stick_table
    - cfg_peers_add_peer
    - calloc
    - ha_diag_warning
    - chunk_strcpy
    - chunk_reset
    - strdup
    - BUG_ON
    - HA_SPIN_INIT
    - list_for_each_entry
    - xprt_get
    - get_host_port
    - LIST_ISEMPTY
    - ha_alert
    - ha_warning
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int cfg_parse_peers(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/jws.c:27,1
    - Dst: BN_num_bytes
      Src: /src/haproxy/src/jws.c:30,1
    - Dst: BN_bn2bin
      Src: /src/haproxy/src/jws.c:34,1
    - Dst: a2base64url
      Src: /src/haproxy/src/jws.c:37,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - bn
    - dst
    - dsize
    argTypes:
    - BIGNUM*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 42
    functionName: bn2base64url
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 0
    functionsReached:
    - BN_bn2bin
    - BN_num_bytes
    - a2base64url
    - get_trash_chunk
    linkageType: ''
    returnType: size_t
    signature: size_t bn2base64url(const BIGNUM *bn, char *dst, size_t dsize)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/haproxy/src/jws.c:62,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/haproxy/src/jws.c:64,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/haproxy/src/jws.c:67,1
    - Dst: curves2nid
      Src: /src/haproxy/src/jws.c:73,1
    - Dst: nid2nist
      Src: /src/haproxy/src/jws.c:75,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/haproxy/src/jws.c:85,1
    - Dst: EC_KEY_get0_group
      Src: /src/haproxy/src/jws.c:87,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/haproxy/src/jws.c:89,1
    - Dst: BN_new
      Src: /src/haproxy/src/jws.c:93,1
    - Dst: BN_new
      Src: /src/haproxy/src/jws.c:95,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/haproxy/src/jws.c:97,1
    - Dst: EC_curve_nid2nist
      Src: /src/haproxy/src/jws.c:99,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/haproxy/src/jws.c:99,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:104,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:106,1
    - Dst: bn2base64url
      Src: /src/haproxy/src/jws.c:110,1
    - Dst: bn2base64url
      Src: /src/haproxy/src/jws.c:111,1
    - Dst: snprintf
      Src: /src/haproxy/src/jws.c:115,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:126,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:127,1
    - Dst: BN_free
      Src: /src/haproxy/src/jws.c:129,1
    - Dst: BN_free
      Src: /src/haproxy/src/jws.c:130,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 61
    argCount: 3
    argNames:
    - pkey
    - dst
    - dsize
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 135
    functionName: EVP_PKEY_EC_to_pub_jwk
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - EC_POINT_get_affine_coordinates
    - alloc_trash_chunk
    - EC_KEY_get0_group
    - bn2base64url
    - EVP_PKEY_get0_EC_KEY
    - BN_new
    - EC_curve_nid2nist
    - nid2nist
    - BN_free
    - EC_KEY_get0_public_key
    - EC_GROUP_get_curve_name
    - curves2nid
    - EVP_PKEY_get_utf8_string_param
    - EVP_PKEY_get_bn_param
    - snprintf
    linkageType: ''
    returnType: size_t
    signature: size_t EVP_PKEY_EC_to_pub_jwk(EVP_PKEY *pkey, char *dst, size_t dsize)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/haproxy/src/jws.c:151,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/haproxy/src/jws.c:153,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/haproxy/src/jws.c:158,1
    - Dst: BN_dup
      Src: /src/haproxy/src/jws.c:160,1
    - Dst: RSA_get0_n
      Src: /src/haproxy/src/jws.c:160,1
    - Dst: BN_dup
      Src: /src/haproxy/src/jws.c:162,1
    - Dst: RSA_get0_e
      Src: /src/haproxy/src/jws.c:162,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:167,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:169,1
    - Dst: bn2base64url
      Src: /src/haproxy/src/jws.c:173,1
    - Dst: bn2base64url
      Src: /src/haproxy/src/jws.c:174,1
    - Dst: snprintf
      Src: /src/haproxy/src/jws.c:178,1
    - Dst: BN_free
      Src: /src/haproxy/src/jws.c:188,1
    - Dst: BN_free
      Src: /src/haproxy/src/jws.c:189,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:190,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:191,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 3
    argNames:
    - pkey
    - dst
    - dsize
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 196
    functionName: EVP_PKEY_RSA_to_pub_jwk
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - RSA_get0_e
    - alloc_trash_chunk
    - bn2base64url
    - EVP_PKEY_get_bn_param
    - EVP_PKEY_get0_RSA
    - BN_free
    - BN_dup
    - RSA_get0_n
    - snprintf
    linkageType: ''
    returnType: size_t
    signature: size_t EVP_PKEY_RSA_to_pub_jwk(EVP_PKEY *pkey, char *dst, size_t dsize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/jws.c:207,1
    - Dst: EVP_PKEY_RSA_to_pub_jwk
      Src: /src/haproxy/src/jws.c:209,1
    - Dst: EVP_PKEY_EC_to_pub_jwk
      Src: /src/haproxy/src/jws.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pkey
    - dst
    - dsize
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: EVP_PKEY_to_pub_jwk
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_base_id
    - EVP_PKEY_EC_to_pub_jwk
    - EVP_PKEY_RSA_to_pub_jwk
    linkageType: ''
    returnType: size_t
    signature: size_t EVP_PKEY_to_pub_jwk(EVP_PKEY *pkey, char *dst, size_t dsize)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:250,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/jws.c:253,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/jws.c:255,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/jws.c:257,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/jws.c:259,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/jws.c:260,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/jws.c:261,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/jws.c:262,1
    - Dst: a2base64url
      Src: /src/haproxy/src/jws.c:264,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:266,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 7
    argNames:
    - alg
    - kid
    - jwk
    - nonce
    - url
    - dst
    - dsize
    argTypes:
    - enum jwt_alg
    - char*
    - char*
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 270
    functionName: jws_b64_protected
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 2
    functionsReached:
    - alloc_trash_chunk
    - chunk_appendf
    - a2base64url
    - free_trash_chunk
    linkageType: ''
    returnType: size_t
    signature: "size_t jws_b64_protected(enum jwt_alg alg, char *kid, char *jwk, char
      *nonce, char *url,\n                         char *dst, size_t dsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: a2base64url
      Src: /src/haproxy/src/jws.c:282,1
    - Dst: strlen
      Src: /src/haproxy/src/jws.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - payload
    - dst
    - dsize
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 287
    functionName: jws_b64_payload
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 2
    functionsReached:
    - a2base64url
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t jws_b64_payload(char *payload, char *dst, size_t dsize)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/jws.c:296,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/haproxy/src/jws.c:302,1
    - Dst: curves2nid
      Src: /src/haproxy/src/jws.c:305,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/haproxy/src/jws.c:312,1
    - Dst: EC_KEY_get0_group
      Src: /src/haproxy/src/jws.c:314,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/haproxy/src/jws.c:317,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 342
    functionName: EVP_PKEY_to_jws_alg
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 1
    functionsReached:
    - EC_KEY_get0_group
    - EVP_PKEY_get0_EC_KEY
    - curves2nid
    - EC_GROUP_get_curve_name
    - EVP_PKEY_base_id
    - EVP_PKEY_get_utf8_string_param
    linkageType: ''
    returnType: enum jwt_alg
    signature: enum jwt_alg EVP_PKEY_to_jws_alg(EVP_PKEY *pkey)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jws.c:364,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jws.c:369,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jws.c:374,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:385,1
    - Dst: EVP_MD_CTX_new
      Src: /src/haproxy/src/jws.c:388,1
    - Dst: EVP_DigestSignInit
      Src: /src/haproxy/src/jws.c:391,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/haproxy/src/jws.c:394,1
    - Dst: strlen
      Src: /src/haproxy/src/jws.c:394,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/haproxy/src/jws.c:397,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/haproxy/src/jws.c:400,1
    - Dst: strlen
      Src: /src/haproxy/src/jws.c:400,1
    - Dst: EVP_DigestSignFinal
      Src: /src/haproxy/src/jws.c:403,1
    - Dst: EVP_DigestSignFinal
      Src: /src/haproxy/src/jws.c:409,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/jws.c:415,1
    - Dst: EVP_PKEY_bits
      Src: /src/haproxy/src/jws.c:424,1
    - Dst: d2i_ECDSA_SIG
      Src: /src/haproxy/src/jws.c:426,1
    - Dst: ECDSA_SIG_get0_r
      Src: /src/haproxy/src/jws.c:429,1
    - Dst: ECDSA_SIG_get0_s
      Src: /src/haproxy/src/jws.c:432,1
    - Dst: BN_bn2binpad
      Src: /src/haproxy/src/jws.c:435,1
    - Dst: BN_bn2binpad
      Src: /src/haproxy/src/jws.c:438,1
    - Dst: a2base64url
      Src: /src/haproxy/src/jws.c:446,1
    - Dst: EVP_MD_CTX_free
      Src: /src/haproxy/src/jws.c:449,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:450,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 76
    argCount: 6
    argNames:
    - pkey
    - alg
    - b64protected
    - b64payload
    - dst
    - dsize
    argTypes:
    - EVP_PKEY*
    - enum jwt_alg
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 455
    functionName: jws_b64_signature
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 1
    functionsReached:
    - EVP_DigestSignFinal
    - EVP_sha512
    - EVP_MD_CTX_new
    - free_trash_chunk
    - alloc_trash_chunk
    - EVP_DigestSignInit
    - ECDSA_SIG_get0_r
    - BN_bn2binpad
    - EVP_PKEY_bits
    - EVP_DigestSignUpdate
    - EVP_MD_CTX_free
    - d2i_ECDSA_SIG
    - a2base64url
    - EVP_PKEY_base_id
    - EVP_sha384
    - EVP_sha256
    - ECDSA_SIG_get0_s
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t jws_b64_signature(EVP_PKEY *pkey, enum jwt_alg alg, char *b64protected,
      char *b64payload, char *dst, size_t dsize)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:471,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jws.c:475,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jws.c:476,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jws.c:477,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/jws.c:482,1
    - Dst: strlen
      Src: /src/haproxy/src/jws.c:482,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/jws.c:483,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/jws.c:484,1
    - Dst: strlen
      Src: /src/haproxy/src/jws.c:484,1
    - Dst: HMAC
      Src: /src/haproxy/src/jws.c:487,1
    - Dst: a2base64url
      Src: /src/haproxy/src/jws.c:492,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:495,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 7
    argNames:
    - key
    - key_len
    - alg
    - b64protected
    - b64payload
    - dst
    - dsize
    argTypes:
    - char*
    - size_t
    - enum jwt_alg
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 500
    functionName: jws_b64_hmac_signature
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 1
    functionsReached:
    - EVP_sha512
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_memcat
    - a2base64url
    - HMAC
    - EVP_sha384
    - EVP_sha256
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t jws_b64_hmac_signature(char *key, size_t key_len, enum jwt_alg
      alg, char *b64protected, char *b64payload, char *dst, size_t dsize)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:515,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/jws.c:518,1
    - Dst: EVP_PKEY_RSA_to_pub_jwk
      Src: /src/haproxy/src/jws.c:520,1
    - Dst: EVP_PKEY_EC_to_pub_jwk
      Src: /src/haproxy/src/jws.c:523,1
    - Dst: EVP_Digest
      Src: /src/haproxy/src/jws.c:530,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jws.c:530,1
    - Dst: a2base64url
      Src: /src/haproxy/src/jws.c:533,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:536,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - pkey
    - dst
    - dsize
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 540
    functionName: jws_thumbprint
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 1
    functionsReached:
    - free_trash_chunk
    - alloc_trash_chunk
    - a2base64url
    - EVP_Digest
    - EVP_PKEY_base_id
    - EVP_PKEY_EC_to_pub_jwk
    - EVP_PKEY_RSA_to_pub_jwk
    - EVP_sha256
    linkageType: ''
    returnType: size_t
    signature: size_t jws_thumbprint(EVP_PKEY *pkey, char *dst, size_t dsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/jws.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - protected
    - payload
    - signature
    - dst
    - dsize
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 560
    functionName: jws_flattened
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 2
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: size_t
    signature: size_t jws_flattened(char *protected, char *payload, char *signature,
      char *dst, size_t dsize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:583,1
    - Dst: fopen
      Src: /src/haproxy/src/jws.c:592,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:593,1
    - Dst: PEM_read_PrivateKey
      Src: /src/haproxy/src/jws.c:596,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:597,1
    - Dst: EVP_PKEY_to_pub_jwk
      Src: /src/haproxy/src/jws.c:601,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:603,1
    - Dst: EVP_PKEY_to_jws_alg
      Src: /src/haproxy/src/jws.c:605,1
    - Dst: jws_b64_protected
      Src: /src/haproxy/src/jws.c:606,1
    - Dst: jws_b64_payload
      Src: /src/haproxy/src/jws.c:607,1
    - Dst: jws_b64_signature
      Src: /src/haproxy/src/jws.c:608,1
    - Dst: jws_flattened
      Src: /src/haproxy/src/jws.c:609,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:611,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jws.c:613,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 563
    functionDepth: 5
    functionLinenumber: 563
    functionLinenumberEnd: 617
    functionName: jws_debug
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 0
    functionsReached:
    - jws_b64_protected
    - PEM_read_PrivateKey
    - EVP_PKEY_to_jws_alg
    - jws_flattened
    - jws_b64_signature
    - jws_b64_payload
    - EVP_PKEY_to_pub_jwk
    - fopen
    - fprintf
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int jws_debug(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/haproxy/src/jws.c:633,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:634,1
    - Dst: PEM_read_PrivateKey
      Src: /src/haproxy/src/jws.c:637,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:638,1
    - Dst: EVP_PKEY_to_pub_jwk
      Src: /src/haproxy/src/jws.c:642,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:643,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jws.c:645,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 620
    functionDepth: 5
    functionLinenumber: 620
    functionLinenumberEnd: 649
    functionName: jwk_debug
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 0
    functionsReached:
    - PEM_read_PrivateKey
    - EVP_PKEY_to_pub_jwk
    - fprintf
    - fopen
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int jwk_debug(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hap_register_unittest
      Src: /src/haproxy/src/jws.c:653,1
    - Dst: hap_register_unittest
      Src: /src/haproxy/src/jws.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 655
    functionName: __jws_init
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 0
    functionsReached:
    - hap_register_unittest
    linkageType: ''
    returnType: void
    signature: void __jws_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lbprm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: FWLC_LBPRM_SEQ
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FWLC_LBPRM_SEQ(lbprm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lbprm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: FWLC_LBPRM_SMALLEST
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FWLC_LBPRM_SMALLEST(lbprm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/lb_fwlc.c:42,1
    - Dst: _HA_ATOMIC_DWCAS
      Src: /src/haproxy/src/lb_fwlc.c:44,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/lb_fwlc.c:48,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - lbprm
    - current
    - seq
    - smallest
    argTypes:
    - struct lbprm*
    - uint64_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 58
    functionName: fwlc_set_seq_and_smallest
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_DWCAS
    - HA_SPIN_UNLOCK
    - _HA_ATOMIC_CAS
    - HA_SPIN_LOCK
    linkageType: ''
    returnType: int
    signature: int fwlc_set_seq_and_smallest(struct lbprm *lbprm, uint64_t current,
      unsigned int seq, unsigned int smallest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: fwlc_remove_from_tree
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwlc_remove_from_tree(struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/lb_fwlc.c:78,1
    - Dst: pool_free
      Src: /src/haproxy/src/lb_fwlc.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: fwlc_proxy_deinit
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - pool_free
    - MT_LIST_POP
    linkageType: ''
    returnType: void
    signature: void fwlc_proxy_deinit(struct proxy *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/lb_fwlc.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: fwlc_server_deinit
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - pool_free
    linkageType: ''
    returnType: void
    signature: void fwlc_server_deinit(struct server *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/lb_fwlc.c:103,1
    - Dst: _HA_ATOMIC_FETCH_SUB
      Src: /src/haproxy/src/lb_fwlc.c:105,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:108,1
    - Dst: fwlc_set_seq_and_smallest
      Src: /src/haproxy/src/lb_fwlc.c:118,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:118,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/lb_fwlc.c:118,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/lb_fwlc.c:121,1
    - Dst: pool_free
      Src: /src/haproxy/src/lb_fwlc.c:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 129
    functionName: fwlc_dequeue_srv
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - fwlc_set_seq_and_smallest
    - FWLC_LBPRM_SEQ
    - MT_LIST_DELETE
    - _HA_ATOMIC_FETCH_SUB
    - eb32_delete
    - __ha_cpu_relax
    - FWLC_LBPRM_SMALLEST
    - pool_free
    linkageType: ''
    returnType: void
    signature: void fwlc_dequeue_srv(struct server *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/lb_fwlc.c:142,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/lb_fwlc.c:143,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/lb_fwlc.c:145,1
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/lb_fwlc.c:149,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/lb_fwlc.c:155,1
    - Dst: pool_free
      Src: /src/haproxy/src/lb_fwlc.c:156,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/lb_fwlc.c:159,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/lb_fwlc.c:169,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/lb_fwlc.c:176,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/lb_fwlc.c:178,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/lb_fwlc.c:179,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - p
    - allocated_elt
    argTypes:
    - struct proxy*
    - struct fwlc_tree_elt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 183
    functionName: fwlc_alloc_tree_elt
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - MT_LIST_POP
    - eb32_delete
    - MT_LIST_APPEND
    - MT_LIST_INIT
    - pool_free
    linkageType: ''
    returnType: struct fwlc_tree_elt
    signature: struct fwlc_tree_elt *fwlc_alloc_tree_elt(struct proxy *p, struct fwlc_tree_elt
      *allocated_elt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup
      Src: /src/haproxy/src/lb_fwlc.c:194,1
    - Dst: container_of
      Src: /src/haproxy/src/lb_fwlc.c:196,1
    - Dst: fwlc_alloc_tree_elt
      Src: /src/haproxy/src/lb_fwlc.c:199,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/lb_fwlc.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - s
    - key
    argTypes:
    - struct server*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: fwlc_get_tree_elt
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - container_of
    - eb32_insert
    - fwlc_alloc_tree_elt
    - eb32_lookup
    linkageType: ''
    returnType: struct fwlc_tree_elt
    signature: struct fwlc_tree_elt *fwlc_get_tree_elt(struct server *s, u32 key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:229,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:229,1
    - Dst: fwlc_get_tree_elt
      Src: /src/haproxy/src/lb_fwlc.c:234,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/lb_fwlc.c:243,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/lb_fwlc.c:246,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/lb_fwlc.c:247,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/lb_fwlc.c:249,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:250,1
    - Dst: fwlc_set_seq_and_smallest
      Src: /src/haproxy/src/lb_fwlc.c:256,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - s
    - eweight
    argTypes:
    - struct server*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 258
    functionName: fwlc_queue_srv
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - fwlc_set_seq_and_smallest
    - FWLC_LBPRM_SEQ
    - _HA_ATOMIC_INC
    - statistical_prng_range
    - fwlc_get_tree_elt
    - _HA_ATOMIC_LOAD
    - tasklet_wakeup
    - MT_LIST_APPEND
    - FWLC_LBPRM_SMALLEST
    linkageType: ''
    returnType: void
    signature: void fwlc_queue_srv(struct server *s, unsigned int eweight)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/lb_fwlc.c:270,1
    - Dst: mt_list_try_lock_prev
      Src: /src/haproxy/src/lb_fwlc.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - tree_elt
    argTypes:
    - struct fwlc_tree_elt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 280
    functionName: fwlc_lock_target_list
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - mt_list_try_lock_prev
    - statistical_prng_range
    linkageType: ''
    returnType: struct mt_list
    signature: struct mt_list fwlc_lock_target_list(struct fwlc_tree_elt *tree_elt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:291,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:291,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 296
    functionName: fwlc_get_key
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fwlc_get_key(struct server *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwlc_get_key
      Src: /src/haproxy/src/lb_fwlc.c:306,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/lb_fwlc.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - s
    - expected
    argTypes:
    - struct server*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: fwlc_check_srv_key
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - fwlc_get_key
    linkageType: ''
    returnType: void
    signature: void fwlc_check_srv_key(struct server *s, unsigned int expected)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:324,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/lb_fwlc.c:329,1
    - Dst: fwlc_get_key
      Src: /src/haproxy/src/lb_fwlc.c:330,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:336,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/lb_fwlc.c:340,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:343,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/lb_fwlc.c:347,1
    - Dst: container_of
      Src: /src/haproxy/src/lb_fwlc.c:349,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:357,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/lb_fwlc.c:358,1
    - Dst: fwlc_check_srv_key
      Src: /src/haproxy/src/lb_fwlc.c:359,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/lb_fwlc.c:378,1
    - Dst: HA_RWLOCK_TRYRDTOWR
      Src: /src/haproxy/src/lb_fwlc.c:379,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/lb_fwlc.c:387,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:388,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/lb_fwlc.c:390,1
    - Dst: fwlc_get_key
      Src: /src/haproxy/src/lb_fwlc.c:400,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:406,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/lb_fwlc.c:408,1
    - Dst: fwlc_check_srv_key
      Src: /src/haproxy/src/lb_fwlc.c:409,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/lb_fwlc.c:412,1
    - Dst: container_of
      Src: /src/haproxy/src/lb_fwlc.c:414,1
    - Dst: HA_RWLOCK_WRTORD
      Src: /src/haproxy/src/lb_fwlc.c:415,1
    - Dst: fwlc_alloc_tree_elt
      Src: /src/haproxy/src/lb_fwlc.c:437,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:440,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/lb_fwlc.c:441,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/lb_fwlc.c:443,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/lb_fwlc.c:450,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/lb_fwlc.c:452,1
    - Dst: HA_RWLOCK_WRTORD
      Src: /src/haproxy/src/lb_fwlc.c:453,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/lb_fwlc.c:455,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/lb_fwlc.c:458,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:470,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:472,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:473,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:473,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:477,1
    - Dst: fwlc_set_seq_and_smallest
      Src: /src/haproxy/src/lb_fwlc.c:483,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:483,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/lb_fwlc.c:483,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/lb_fwlc.c:485,1
    - Dst: likely
      Src: /src/haproxy/src/lb_fwlc.c:487,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/lb_fwlc.c:488,1
    - Dst: mt_list_lock_full
      Src: /src/haproxy/src/lb_fwlc.c:496,1
    - Dst: fwlc_lock_target_list
      Src: /src/haproxy/src/lb_fwlc.c:497,1
    - Dst: fwlc_lock_target_list
      Src: /src/haproxy/src/lb_fwlc.c:499,1
    - Dst: mt_list_lock_full
      Src: /src/haproxy/src/lb_fwlc.c:500,1
    - Dst: mt_list_unlock_link
      Src: /src/haproxy/src/lb_fwlc.c:507,1
    - Dst: fwlc_lock_target_list
      Src: /src/haproxy/src/lb_fwlc.c:509,1
    - Dst: mt_list_unlock_full
      Src: /src/haproxy/src/lb_fwlc.c:514,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:518,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/lb_fwlc.c:523,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/lb_fwlc.c:524,1
    - Dst: fwlc_check_srv_key
      Src: /src/haproxy/src/lb_fwlc.c:526,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 105
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 527
    functionName: fwlc_srv_reposition
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_TRYRDTOWR
    - likely
    - FWLC_LBPRM_SMALLEST
    - HA_RWLOCK_WRTORD
    - mt_list_unlock_full
    - fwlc_set_seq_and_smallest
    - eb32_insert
    - pool_alloc
    - fwlc_check_srv_key
    - eb32_lookup
    - container_of
    - __ha_barrier_store
    - fwlc_get_key
    - mt_list_unlock_link
    - fwlc_lock_target_list
    - HA_ATOMIC_XCHG
    - _HA_ATOMIC_DEC
    - HA_RWLOCK_RDUNLOCK
    - tasklet_wakeup
    - __ha_cpu_relax
    - FWLC_LBPRM_SEQ
    - _HA_ATOMIC_INC
    - _HA_ATOMIC_LOAD
    - mt_list_lock_full
    - _HA_ATOMIC_STORE
    - fwlc_alloc_tree_elt
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void fwlc_srv_reposition(struct server *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_fwlc.c:541,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fwlc.c:544,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fwlc.c:546,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwlc.c:549,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fwlc.c:566,1
    - Dst: fwlc_dequeue_srv
      Src: /src/haproxy/src/lb_fwlc.c:574,1
    - Dst: fwlc_remove_from_tree
      Src: /src/haproxy/src/lb_fwlc.c:575,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fwlc.c:579,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:580,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fwlc.c:583,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 537
    functionDepth: 3
    functionLinenumber: 537
    functionLinenumberEnd: 584
    functionName: fwlc_set_server_status_down
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - fwlc_dequeue_srv
    - update_backend_weight
    - HA_RWLOCK_WRUNLOCK
    - fwlc_remove_from_tree
    - srv_lb_status_changed
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void fwlc_set_server_status_down(struct server *srv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_fwlc.c:599,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fwlc.c:602,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fwlc.c:605,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwlc.c:607,1
    - Dst: fwlc_queue_srv
      Src: /src/haproxy/src/lb_fwlc.c:639,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fwlc.c:643,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:644,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fwlc.c:647,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 648
    functionName: fwlc_set_server_status_up
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - update_backend_weight
    - fwlc_queue_srv
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void fwlc_set_server_status_up(struct server *srv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_fwlc.c:660,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwlc.c:671,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_fwlc.c:672,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fwlc.c:675,1
    - Dst: fwlc_set_server_status_up
      Src: /src/haproxy/src/lb_fwlc.c:679,1
    - Dst: fwlc_set_server_status_down
      Src: /src/haproxy/src/lb_fwlc.c:683,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_fwlc.c:687,1
    - Dst: fwlc_dequeue_srv
      Src: /src/haproxy/src/lb_fwlc.c:690,1
    - Dst: fwlc_queue_srv
      Src: /src/haproxy/src/lb_fwlc.c:700,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fwlc.c:702,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:703,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fwlc.c:705,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 655
    functionDepth: 5
    functionLinenumber: 655
    functionLinenumberEnd: 706
    functionName: fwlc_update_server_weight
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - srv_willbe_usable
    - fwlc_dequeue_srv
    - update_backend_weight
    - fwlc_queue_srv
    - fwlc_set_server_status_down
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - HA_RWLOCK_WRLOCK
    - srv_lb_commit_status
    - fwlc_set_server_status_up
    linkageType: ''
    returnType: void
    signature: void fwlc_update_server_weight(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_fwlc.c:720,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_fwlc.c:725,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fwlc.c:726,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwlc.c:733,1
    - Dst: fwlc_queue_srv
      Src: /src/haproxy/src/lb_fwlc.c:736,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 712
    functionDepth: 4
    functionLinenumber: 712
    functionLinenumberEnd: 739
    functionName: fwlc_init_server_tree
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - update_backend_weight
    - fwlc_queue_srv
    - recount_servers
    - srv_lb_commit_status
    linkageType: ''
    returnType: int
    signature: int fwlc_init_server_tree(struct proxy *p)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/lb_fwlc.c:755,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:756,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/lb_fwlc.c:759,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:759,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/lb_fwlc.c:765,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:765,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_fwlc.c:778,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/lb_fwlc.c:779,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:781,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:783,1
    - Dst: container_of
      Src: /src/haproxy/src/lb_fwlc.c:788,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:789,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_fwlc.c:792,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:793,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:793,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:804,1
    - Dst: fwlc_srv_reposition
      Src: /src/haproxy/src/lb_fwlc.c:805,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/lb_fwlc.c:806,1
    - Dst: eb32_next
      Src: /src/haproxy/src/lb_fwlc.c:833,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:834,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:837,1
    - Dst: likely
      Src: /src/haproxy/src/lb_fwlc.c:843,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:843,1
    - Dst: fwlc_set_seq_and_smallest
      Src: /src/haproxy/src/lb_fwlc.c:844,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:844,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:845,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/lb_fwlc.c:846,1
    - Dst: unlikely
      Src: /src/haproxy/src/lb_fwlc.c:854,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:854,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:854,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:854,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:860,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:866,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:866,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:876,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 91
    argCount: 2
    argNames:
    - p
    - srvtoavoid
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 746
    functionDepth: 4
    functionLinenumber: 746
    functionLinenumberEnd: 879
    functionName: fwlc_get_next_server
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 1
    functionsReached:
    - fwlc_set_seq_and_smallest
    - fwlc_srv_reposition
    - FWLC_LBPRM_SEQ
    - unlikely
    - statistical_prng_range
    - _HA_ATOMIC_LOAD
    - HA_RWLOCK_RDUNLOCK
    - HA_ATOMIC_LOAD
    - container_of
    - eb32_next
    - likely
    - eb32_entry
    - eb32_lookup_ge
    - __ha_barrier_store
    - FWLC_LBPRM_SMALLEST
    - srv_dynamic_maxconn
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct server
    signature: struct server *fwlc_get_next_server(struct proxy *p, struct server
      *srvtoavoid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: istfree
      Src: /src/haproxy/src/http_act.c:50,1
    - Dst: regex_free
      Src: /src/haproxy/src/http_act.c:52,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_act.c:53,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: release_http_action
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_deinit
    - istfree
    - release_sample_expr
    - regex_free
    linkageType: ''
    returnType: void
    signature: void release_http_action(struct act_rule *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_http_reply
      Src: /src/haproxy/src/http_act.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: release_act_http_reply
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - release_http_reply
    linkageType: ''
    returnType: void
    signature: void release_act_http_reply(struct act_rule *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_check_http_reply
      Src: /src/haproxy/src/http_act.c:74,1
    - Dst: release_act_http_reply
      Src: /src/haproxy/src/http_act.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: check_act_http_reply
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - http_check_http_reply
    - release_act_http_reply
    linkageType: ''
    returnType: int
    signature: int check_act_http_reply(struct act_rule *rule, struct proxy *px, char
      **err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:96,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:103,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/http_act.c:107,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:111,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:122,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:124,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:126,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:128,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 136
    functionName: http_action_set_req_line
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - free_trash_chunk
    - build_logline
    - alloc_trash_chunk
    - http_req_replace_stline
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_set_req_line(struct act_rule *rule, struct
      proxy *px,\n                                                struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:173,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:178,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:181,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:181,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:182,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:191,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 150
    functionDepth: 9
    functionLinenumber: 150
    functionLinenumberEnd: 197
    functionName: parse_set_req_line
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - parse_logformat_string
    - memprintf
    - strcmp
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_set_req_line(const char **args, int *orig_arg,
      struct proxy *px,\n                                             struct act_rule
      *rule, char **err)"
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_act.c:210,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_act.c:211,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_act.c:211,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:212,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:220,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:221,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:222,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:224,1
    - Dst: uri_normalizer_path_merge_slashes
      Src: /src/haproxy/src/http_act.c:227,1
    - Dst: iststop
      Src: /src/haproxy/src/http_act.c:227,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:232,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:238,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:239,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:240,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:242,1
    - Dst: uri_normalizer_path_dot
      Src: /src/haproxy/src/http_act.c:245,1
    - Dst: iststop
      Src: /src/haproxy/src/http_act.c:245,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:250,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:257,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:258,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:259,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:261,1
    - Dst: uri_normalizer_path_dotdot
      Src: /src/haproxy/src/http_act.c:264,1
    - Dst: iststop
      Src: /src/haproxy/src/http_act.c:264,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:269,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:275,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:276,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:277,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:279,1
    - Dst: uri_normalizer_query_sort
      Src: /src/haproxy/src/http_act.c:282,1
    - Dst: istfind
      Src: /src/haproxy/src/http_act.c:282,1
    - Dst: http_replace_req_query
      Src: /src/haproxy/src/http_act.c:287,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:294,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:295,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:296,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:298,1
    - Dst: uri_normalizer_percent_upper
      Src: /src/haproxy/src/http_act.c:301,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:306,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:313,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:314,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:315,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:317,1
    - Dst: uri_normalizer_percent_decode_unreserved
      Src: /src/haproxy/src/http_act.c:320,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:325,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:331,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:332,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:333,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:335,1
    - Dst: uri_normalizer_fragment_strip
      Src: /src/haproxy/src/http_act.c:338,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:343,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:349,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:350,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:351,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:353,1
    - Dst: uri_normalizer_fragment_encode
      Src: /src/haproxy/src/http_act.c:356,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:361,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:382,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/http_act.c:393,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/http_act.c:395,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/http_act.c:397,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/http_act.c:399,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 146
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 206
    functionDepth: 5
    functionLinenumber: 206
    functionLinenumberEnd: 407
    functionName: http_action_normalize_uri
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - uri_normalizer_path_dot
    - alloc_trash_chunk
    - _HA_ATOMIC_ADD
    - http_uri_parser_init
    - http_replace_req_path
    - uri_normalizer_query_sort
    - ist2
    - uri_normalizer_path_dotdot
    - uri_normalizer_fragment_encode
    - http_replace_req_query
    - http_parse_path
    - istfind
    - htx_sl_req_uri
    - uri_normalizer_percent_decode_unreserved
    - htxbuf
    - free_trash_chunk
    - http_get_stline
    - uri_normalizer_percent_upper
    - iststop
    - uri_normalizer_path_merge_slashes
    - uri_normalizer_fragment_strip
    - isttest
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_normalize_uri(struct act_rule *rule, struct
      proxy *px,\n                                                 struct session
      *sess, struct stream *s, int flags)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:423,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:427,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:432,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:437,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:440,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:447,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:447,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:448,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:452,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:457,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:460,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:467,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:467,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:468,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:472,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:475,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:482,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:482,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:483,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:487,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:492,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:498,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 74
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 414
    functionDepth: 5
    functionLinenumber: 414
    functionLinenumberEnd: 504
    functionName: parse_http_normalize_uri
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_normalize_uri(const char **args, int
      *orig_arg, struct proxy *px,\n                                                   struct
      act_rule *rule, char **err)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:524,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:525,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_act.c:528,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_act.c:528,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_act.c:528,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:531,1
    - Dst: iststop
      Src: /src/haproxy/src/http_act.c:532,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:532,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:535,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:536,1
    - Dst: istlen
      Src: /src/haproxy/src/http_act.c:539,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/http_act.c:542,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:545,1
    - Dst: exp_replace
      Src: /src/haproxy/src/http_act.c:550,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/http_act.c:554,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:558,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:559,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:570,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:572,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:574,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:576,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 516
    functionDepth: 6
    functionLinenumber: 516
    functionLinenumberEnd: 584
    functionName: http_action_replace_uri
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - iststop
    - _HA_ATOMIC_INC
    - free_trash_chunk
    - build_logline
    - alloc_trash_chunk
    - http_get_stline
    - http_req_replace_stline
    - http_uri_parser_init
    - http_parse_path
    - exp_replace
    - htx_sl_req_uri
    - istlen
    - regex_exec_match2
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_replace_uri(struct act_rule *rule, struct
      proxy *px,\n                                               struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:611,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:617,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:620,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:620,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:621,1
    - Dst: regex_comp
      Src: /src/haproxy/src/http_act.c:625,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:626,1
    - Dst: free
      Src: /src/haproxy/src/http_act.c:627,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:636,1
    - Dst: regex_free
      Src: /src/haproxy/src/http_act.c:637,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 593
    functionDepth: 9
    functionLinenumber: 593
    functionLinenumberEnd: 643
    functionName: parse_replace_uri
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - parse_logformat_string
    - memprintf
    - regex_comp
    - strcmp
    - free
    - regex_free
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_replace_uri(const char **args, int *orig_arg,
      struct proxy *px,\n                                            struct act_rule
      *rule, char **err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: http_res_set_status
      Src: /src/haproxy/src/http_act.c:649,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:651,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:653,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:655,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 646
    functionDepth: 4
    functionLinenumber: 646
    functionLinenumberEnd: 667
    functionName: action_http_set_status
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - http_res_set_status
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_http_set_status(struct act_rule *rule, struct
      proxy *px,\n                                              struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:682,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:686,1
    - Dst: strtol
      Src: /src/haproxy/src/http_act.c:691,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:693,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:700,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:701,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:702,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:702,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:704,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:704,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 674
    functionDepth: 5
    functionLinenumber: 674
    functionLinenumberEnd: 709
    functionName: parse_http_set_status
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - memprintf
    - ist
    - strcmp
    - strtol
    - strdup
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_set_status(const char **args, int *orig_arg,
      struct proxy *px,\n                                                struct act_rule
      *rule, char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_must_kill_conn
      Src: /src/haproxy/src/http_act.c:721,1
    - Dst: stream_abort
      Src: /src/haproxy/src/http_act.c:722,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:727,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:729,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:731,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 739
    functionName: http_action_reject
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - sc_must_kill_conn
    - stream_abort
    - _HA_ATOMIC_INC
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_reject(struct act_rule *rule, struct proxy
      *px,\n                                          struct session *sess, struct
      stream *s, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 751
    functionName: parse_http_action_reject
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_action_reject(const char **args, int
      *orig_arg, struct proxy *px,\n                                                   struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 768
    functionName: http_req_disable_l7_retry
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_req_disable_l7_retry(struct act_rule *rule, struct
      proxy *px,\n                                          struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - args
    - orig_args
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 781
    functionName: parse_http_req_disable_l7_retry
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_req_disable_l7_retry(const char **args,\n\t\t\t\t\t\t\t
      \ int *orig_args, struct proxy *px,\n\t\t\t\t\t\t\t  struct act_rule *rule,
      char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_act.c:796,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_act.c:801,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_act.c:810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 788
    functionDepth: 4
    functionLinenumber: 788
    functionLinenumberEnd: 813
    functionName: http_action_req_capture
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - sample_fetch_as_type
    - pool_alloc
    - memcpy
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_req_capture(struct act_rule *rule, struct
      proxy *px,\n                                               struct session *sess,
      struct stream *s, int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/http_act.c:826,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_act.c:837,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_act.c:842,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_act.c:851,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 820
    functionDepth: 4
    functionLinenumber: 820
    functionLinenumberEnd: 854
    functionName: http_action_req_capture_by_id
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - sample_fetch_as_type
    - pool_alloc
    - memcpy
    - strm_fe
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_req_capture_by_id(struct act_rule *rule,
      struct proxy *px,\n                                                     struct
      session *sess, struct stream *s, int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 861
    functionDepth: 5
    functionLinenumber: 861
    functionLinenumberEnd: 876
    functionName: check_http_req_capture
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int check_http_req_capture(struct act_rule *rule, struct proxy *px,
      char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:882,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 879
    functionDepth: 5
    functionLinenumber: 879
    functionLinenumberEnd: 885
    functionName: release_http_capture
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void release_http_capture(struct act_rule *rule)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:901,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:902,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:906,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/http_act.c:911,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:916,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/http_act.c:918,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:919,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:924,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:925,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:929,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:933,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:934,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:941,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:942,1
    - Dst: atoi
      Src: /src/haproxy/src/http_act.c:946,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:948,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:949,1
    - Dst: calloc
      Src: /src/haproxy/src/http_act.c:954,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:956,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:957,1
    - Dst: create_pool
      Src: /src/haproxy/src/http_act.c:964,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:966,1
    - Dst: free
      Src: /src/haproxy/src/http_act.c:967,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:968,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:983,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:990,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:991,1
    - Dst: strtol
      Src: /src/haproxy/src/http_act.c:995,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:997,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:998,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1014,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1015,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 96
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 892
    functionDepth: 7
    functionLinenumber: 892
    functionLinenumberEnd: 1021
    functionName: parse_http_req_capture
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    - calloc
    - strcmp
    - sample_src_names
    - free
    - strtol
    - atoi
    - sample_parse_expr
    - release_sample_expr
    - create_pool
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_req_capture(const char **args, int *orig_arg,
      struct proxy *px,\n                                                 struct act_rule
      *rule, char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/http_act.c:1034,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_act.c:1045,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_act.c:1050,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_act.c:1059,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1028
    functionDepth: 4
    functionLinenumber: 1028
    functionLinenumberEnd: 1062
    functionName: http_action_res_capture_by_id
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - sample_fetch_as_type
    - pool_alloc
    - memcpy
    - strm_fe
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_res_capture_by_id(struct act_rule *rule,
      struct proxy *px,\n                                                     struct
      session *sess, struct stream *s, int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1078,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1069
    functionDepth: 5
    functionLinenumber: 1069
    functionLinenumberEnd: 1084
    functionName: check_http_res_capture
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int check_http_res_capture(struct act_rule *rule, struct proxy *px,
      char **err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1100,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1101,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1105,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/http_act.c:1110,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1115,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/http_act.c:1117,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1118,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1123,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1124,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1128,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1129,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1130,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1137,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1138,1
    - Dst: strtol
      Src: /src/haproxy/src/http_act.c:1142,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1144,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1145,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1091
    functionDepth: 7
    functionLinenumber: 1091
    functionLinenumberEnd: 1161
    functionName: parse_http_res_capture
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - sample_src_names
    - strtol
    - sample_parse_expr
    - release_sample_expr
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_res_capture(const char **args, int *orig_arg,
      struct proxy *px,\n                                                 struct act_rule
      *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1172
    functionName: parse_http_allow
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_allow(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t   struct act_rule *rule, char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1187,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1209,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1209,1
    - Dst: http_parse_http_reply
      Src: /src/haproxy/src/http_act.c:1210,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1214,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1215,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1215,1
    - Dst: http_parse_http_reply
      Src: /src/haproxy/src/http_act.c:1216,1
    - Dst: http_parse_http_reply
      Src: /src/haproxy/src/http_act.c:1224,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1179
    functionDepth: 7
    functionLinenumber: 1179
    functionLinenumberEnd: 1234
    functionName: parse_http_deny
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strcmp
    - http_parse_http_reply
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_deny(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t  struct act_rule *rule, char **err)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_act.c:1246,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1263,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1267,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_act.c:1269,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_act.c:1270,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_act.c:1272,1
    - Dst: http_reply_to_htx
      Src: /src/haproxy/src/http_act.c:1276,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_act.c:1281,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1282,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_act.c:1285,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:1285,1
    - Dst: b_orig
      Src: /src/haproxy/src/http_act.c:1285,1
    - Dst: b_data
      Src: /src/haproxy/src/http_act.c:1285,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_act.c:1289,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_act.c:1290,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1299,1
    - Dst: stream_inc_http_err_ctr
      Src: /src/haproxy/src/http_act.c:1306,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_act.c:1312,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1241
    functionDepth: 13
    functionLinenumber: 1241
    functionLinenumberEnd: 1314
    functionName: http_action_auth
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - ist
    - http_error_message
    - ist2
    - b_orig
    - htx_to_buf
    - _HA_ATOMIC_INC
    - stream_inc_http_err_ctr
    - chunk_printf
    - http_find_header
    - http_remove_header
    - b_data
    - http_reply_to_htx
    - channel_htx_truncate
    - http_forward_proxy_resp
    - http_add_header
    - htx_from_buf
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_auth(struct act_rule *rule, struct proxy
      *px,\n\t\t\t\t\tstruct session *sess, struct stream *s, int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:1328,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1331,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1334,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1337,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1319
    functionDepth: 5
    functionLinenumber: 1319
    functionLinenumberEnd: 1343
    functionName: parse_http_auth
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - memprintf
    - ist
    - strcmp
    - strdup
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_auth(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t  struct act_rule *rule, char **err)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_act.c:1360,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:1361,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_act.c:1381,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1382,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1382,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1382,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:1390,1
    - Dst: b_tail
      Src: /src/haproxy/src/http_act.c:1390,1
    - Dst: b_room
      Src: /src/haproxy/src/http_act.c:1390,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_act.c:1391,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:1391,1
    - Dst: b_head
      Src: /src/haproxy/src/http_act.c:1391,1
    - Dst: b_data
      Src: /src/haproxy/src/http_act.c:1391,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/http_act.c:1397,1
    - Dst: typeof
      Src: /src/haproxy/src/http_act.c:1397,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_act.c:1399,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_act.c:1401,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:1407,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_act.c:1413,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1355
    functionDepth: 13
    functionLinenumber: 1355
    functionLinenumberEnd: 1417
    functionName: http_action_early_hint
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - ist
    - ist2
    - b_head
    - LIST_NEXT
    - typeof
    - free_trash_chunk
    - build_logline
    - alloc_trash_chunk
    - b_tail
    - htx_add_header
    - b_room
    - b_data
    - htx_add_stline
    - channel_htx_truncate
    - htx_add_endof
    - http_forward_proxy_resp
    - htx_from_buf
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_early_hint(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\t      struct session *sess, struct stream *s, int flags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_act.c:1431,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:1437,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:1441,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:1443,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_act.c:1448,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1449,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_act.c:1453,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:1457,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1468,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1470,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1472,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1474,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1427
    functionDepth: 3
    functionLinenumber: 1427
    functionLinenumberEnd: 1482
    functionName: http_action_set_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - ist2
    - htxbuf
    - _HA_ATOMIC_INC
    - free_trash_chunk
    - build_logline
    - alloc_trash_chunk
    - http_find_header
    - http_remove_header
    - http_add_header
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_set_header(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\t      struct session *sess, struct stream *s, int flags)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_act.c:1491,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_act.c:1499,1
    - Dst: b_orig
      Src: /src/haproxy/src/http_act.c:1503,1
    - Dst: b_tail
      Src: /src/haproxy/src/http_act.c:1504,1
    - Dst: decode_varint
      Src: /src/haproxy/src/http_act.c:1506,1
    - Dst: decode_varint
      Src: /src/haproxy/src/http_act.c:1509,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:1516,1
    - Dst: decode_varint
      Src: /src/haproxy/src/http_act.c:1519,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:1524,1
    - Dst: istlen
      Src: /src/haproxy/src/http_act.c:1527,1
    - Dst: istmatch
      Src: /src/haproxy/src/http_act.c:1527,1
    - Dst: is_immutable_header
      Src: /src/haproxy/src/http_act.c:1530,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_act.c:1536,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1537,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_act.c:1541,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1553,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1555,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1557,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1559,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 64
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1487
    functionDepth: 4
    functionLinenumber: 1487
    functionLinenumberEnd: 1567
    functionName: http_action_set_headers_bin
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - decode_varint
    - htxbuf
    - ist2
    - b_orig
    - _HA_ATOMIC_INC
    - http_find_header
    - http_remove_header
    - b_tail
    - is_immutable_header
    - istmatch
    - istlen
    - sample_fetch_as_type
    - http_add_header
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_set_headers_bin(struct act_rule *rule,
      struct proxy *px,\n\t\t\t\t\t\t  struct session *sess, struct stream *s, int
      flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:1593,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1597,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1602,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:1602,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:1620,1
    - Dst: istfree
      Src: /src/haproxy/src/http_act.c:1621,1
    - Dst: istptr
      Src: /src/haproxy/src/http_act.c:1632,1
    - Dst: istend
      Src: /src/haproxy/src/http_act.c:1632,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/http_act.c:1633,1
    - Dst: istptr
      Src: /src/haproxy/src/http_act.c:1635,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1638,1
    - Dst: istptr
      Src: /src/haproxy/src/http_act.c:1638,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1575
    functionDepth: 9
    functionLinenumber: 1575
    functionLinenumberEnd: 1644
    functionName: parse_http_set_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - parse_logformat_string
    - memprintf
    - ist
    - istend
    - istfree
    - istptr
    - HTTP_IS_TOKEN
    - strdup
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_set_header(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t\t   struct act_rule *rule, char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:1660,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1664,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/http_act.c:1668,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1680,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/http_act.c:1681,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1682,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1687,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1690,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1691,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1694,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:1694,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1647
    functionDepth: 7
    functionLinenumber: 1647
    functionLinenumberEnd: 1702
    functionName: parse_http_set_headers_bin
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - memprintf
    - ist
    - strcmp
    - sample_src_names
    - sample_parse_expr
    - release_sample_expr
    - strdup
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_set_headers_bin(const char **args, int
      *orig_arg, struct proxy *px,\n\t\t\t\t\t\t   struct act_rule *rule, char **err)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_act.c:1716,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:1721,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:1725,1
    - Dst: http_replace_hdrs
      Src: /src/haproxy/src/http_act.c:1727,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:1732,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1743,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1745,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1747,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1749,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1712
    functionDepth: 4
    functionLinenumber: 1712
    functionLinenumberEnd: 1757
    functionName: http_action_replace_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - _HA_ATOMIC_INC
    - free_trash_chunk
    - build_logline
    - alloc_trash_chunk
    - http_replace_hdrs
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_replace_header(struct act_rule *rule,
      struct proxy *px,\n\t\t\t\t\t\t  struct session *sess, struct stream *s, int
      flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:1774,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1778,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1782,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:1782,1
    - Dst: regex_comp
      Src: /src/haproxy/src/http_act.c:1785,1
    - Dst: istfree
      Src: /src/haproxy/src/http_act.c:1786,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:1806,1
    - Dst: istfree
      Src: /src/haproxy/src/http_act.c:1807,1
    - Dst: regex_free
      Src: /src/haproxy/src/http_act.c:1808,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1763
    functionDepth: 9
    functionLinenumber: 1763
    functionLinenumberEnd: 1814
    functionName: parse_http_replace_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - parse_logformat_string
    - memprintf
    - ist
    - regex_comp
    - istfree
    - regex_free
    - strdup
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_replace_header(const char **args, int
      *orig_arg, struct proxy *px,\n\t\t\t\t\t\t    struct act_rule *rule, char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_act.c:1826,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_act.c:1833,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1834,1
    - Dst: http_find_pfx_header
      Src: /src/haproxy/src/http_act.c:1837,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1838,1
    - Dst: http_find_sfx_header
      Src: /src/haproxy/src/http_act.c:1841,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1842,1
    - Dst: http_find_sub_header
      Src: /src/haproxy/src/http_act.c:1845,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1846,1
    - Dst: http_match_header
      Src: /src/haproxy/src/http_act.c:1849,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1850,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1821
    functionDepth: 3
    functionLinenumber: 1821
    functionLinenumberEnd: 1856
    functionName: http_action_del_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - http_find_header
    - http_match_header
    - http_remove_header
    - http_find_sub_header
    - http_find_sfx_header
    - http_find_pfx_header
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_del_header(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\t\t  struct session *sess, struct stream *s, int flags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:1873,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1877,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1881,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:1881,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1884,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1887,1
    - Dst: pat_find_match_name
      Src: /src/haproxy/src/http_act.c:1892,1
    - Dst: regex_comp
      Src: /src/haproxy/src/http_act.c:1895,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1905,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1863
    functionDepth: 5
    functionLinenumber: 1863
    functionLinenumberEnd: 1912
    functionName: parse_http_del_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - memprintf
    - ist
    - regex_comp
    - strcmp
    - pat_find_match_name
    - strdup
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_del_header(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t\tstruct act_rule *rule, char **err)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_act.c:1924,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_act.c:1931,1
    - Dst: b_orig
      Src: /src/haproxy/src/http_act.c:1935,1
    - Dst: b_tail
      Src: /src/haproxy/src/http_act.c:1936,1
    - Dst: decode_varint
      Src: /src/haproxy/src/http_act.c:1938,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:1945,1
    - Dst: is_immutable_header
      Src: /src/haproxy/src/http_act.c:1948,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_act.c:1955,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1956,1
    - Dst: http_find_pfx_header
      Src: /src/haproxy/src/http_act.c:1959,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1960,1
    - Dst: http_find_sfx_header
      Src: /src/haproxy/src/http_act.c:1963,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1964,1
    - Dst: http_find_sub_header
      Src: /src/haproxy/src/http_act.c:1967,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1968,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1983,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1985,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1987,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1989,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 64
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1919
    functionDepth: 4
    functionLinenumber: 1919
    functionLinenumberEnd: 1997
    functionName: http_action_del_headers_bin
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - decode_varint
    - htxbuf
    - ist2
    - b_orig
    - _HA_ATOMIC_INC
    - http_find_header
    - http_remove_header
    - b_tail
    - is_immutable_header
    - http_find_sub_header
    - sample_fetch_as_type
    - http_find_sfx_header
    - http_find_pfx_header
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_del_headers_bin(struct act_rule *rule,
      struct proxy *px,\n\t\t\t\t\t\t  struct session *sess, struct stream *s, int
      flags)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:2016,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2020,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/http_act.c:2024,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2036,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/http_act.c:2037,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:2038,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:2042,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2045,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:2046,1
    - Dst: pat_find_match_name
      Src: /src/haproxy/src/http_act.c:2050,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2053,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:2054,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2063,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:2064,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2004
    functionDepth: 7
    functionLinenumber: 2004
    functionLinenumberEnd: 2074
    functionName: parse_http_del_headers_bin
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - memprintf
    - strcmp
    - sample_src_names
    - pat_find_match_name
    - sample_parse_expr
    - release_sample_expr
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_del_headers_bin(const char **args, int
      *orig_arg, struct proxy *px,\n\t\t\t\t\t\tstruct act_rule *rule, char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/src/http_act.c:2085,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_act.c:2089,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/http_act.c:2092,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/http_act.c:2095,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/http_act.c:2096,1
    - Dst: tick_isset
      Src: /src/haproxy/src/http_act.c:2099,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/http_act.c:2099,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2078
    functionDepth: 4
    functionLinenumber: 2078
    functionLinenumberEnd: 2104
    functionName: http_action_pause
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - MS_TO_TICKS
    - tick_isset
    - tick_is_expired
    - tick_add_ifset
    - sample_fetch_as_type
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_pause(struct act_rule *rule, struct proxy
      *px,\n\t\t\t\t\t struct session *sess, struct stream *s, int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_time_err
      Src: /src/haproxy/src/http_act.c:2121,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2123,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2128,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/http_act.c:2134,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2137,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2109
    functionDepth: 7
    functionLinenumber: 2109
    functionLinenumberEnd: 2153
    functionName: parse_http_pause
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - sample_parse_expr
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_pause(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t      struct act_rule *rule, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_act.c:2165,1
    - Dst: http_free_redirect_rule
      Src: /src/haproxy/src/http_act.c:2166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2157
    functionDepth: 4
    functionLinenumber: 2157
    functionLinenumberEnd: 2167
    functionName: release_http_redir
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - http_free_redirect_rule
    linkageType: ''
    returnType: void
    signature: void release_http_redir(struct act_rule *rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_parse_redirect_rule
      Src: /src/haproxy/src/http_act.c:2184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2172
    functionDepth: 7
    functionLinenumber: 2172
    functionLinenumberEnd: 2200
    functionName: parse_http_redirect
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - http_parse_redirect_rule
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_redirect(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t      struct act_rule *rule, char **err)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/http_act.c:2213,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:2218,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:2223,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/http_act.c:2229,1
    - Dst: pat_ref_find_elt
      Src: /src/haproxy/src/http_act.c:2230,1
    - Dst: pat_ref_add
      Src: /src/haproxy/src/http_act.c:2231,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/http_act.c:2232,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:2240,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:2245,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/http_act.c:2248,1
    - Dst: pat_ref_find_elt
      Src: /src/haproxy/src/http_act.c:2249,1
    - Dst: pat_ref_set_elt_duplicate
      Src: /src/haproxy/src/http_act.c:2252,1
    - Dst: pat_ref_add
      Src: /src/haproxy/src/http_act.c:2256,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/http_act.c:2258,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/http_act.c:2265,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/http_act.c:2266,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/http_act.c:2267,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:2276,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:2277,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2205
    functionDepth: 6
    functionLinenumber: 2205
    functionLinenumberEnd: 2285
    functionName: http_action_set_map
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - free_trash_chunk
    - build_logline
    - alloc_trash_chunk
    - pat_ref_delete
    - pat_ref_add
    - pat_ref_find_elt
    - pat_ref_set_elt_duplicate
    - HA_RWLOCK_WRLOCK
    - pat_ref_lookup
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_set_map(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\t   struct session *sess, struct stream *s, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/http_act.c:2290,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_act.c:2291,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_act.c:2293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2288
    functionDepth: 4
    functionLinenumber: 2288
    functionLinenumberEnd: 2294
    functionName: release_http_map
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_deinit
    - free
    linkageType: ''
    returnType: void
    signature: void release_http_map(struct act_rule *rule)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2315,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:2320,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:2321,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2326,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2331,1
    - Dst: my_strndup
      Src: /src/haproxy/src/http_act.c:2339,1
    - Dst: strlen
      Src: /src/haproxy/src/http_act.c:2339,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:2357,1
    - Dst: free
      Src: /src/haproxy/src/http_act.c:2358,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:2365,1
    - Dst: free
      Src: /src/haproxy/src/http_act.c:2366,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2301
    functionDepth: 9
    functionLinenumber: 2301
    functionLinenumberEnd: 2373
    functionName: parse_http_set_map
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - parse_logformat_string
    - my_strndup
    - memprintf
    - free
    - strlen
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_set_map(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t     struct act_rule *rule, char **err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/http_act.c:2392,1
    - Dst: stktable_fetch_key
      Src: /src/haproxy/src/http_act.c:2395,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/http_act.c:2399,1
    - Dst: stream_track_stkctr
      Src: /src/haproxy/src/http_act.c:2403,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2406,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2407,1
    - Dst: http_status_matches
      Src: /src/haproxy/src/http_act.c:2417,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2418,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2419,1
    - Dst: http_status_matches
      Src: /src/haproxy/src/http_act.c:2423,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2424,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2425,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/http_act.c:2429,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2432,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/http_act.c:2434,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2434,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2437,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/http_act.c:2439,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2439,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2442,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/http_act.c:2444,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2444,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/http_act.c:2447,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/http_act.c:2450,1
    - Dst: stkctr_set_flags
      Src: /src/haproxy/src/http_act.c:2453,1
    - Dst: stkctr_set_flags
      Src: /src/haproxy/src/http_act.c:2455,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2378
    functionDepth: 6
    functionLinenumber: 2378
    functionLinenumberEnd: 2459
    functionName: http_action_track_sc
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_fetch_key
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - http_status_matches
    - stkctr_set_flags
    - stktable_data_ptr
    - stream_track_stkctr
    - stktable_data_cast
    - HA_RWLOCK_WRLOCK
    - stktable_touch_local
    - stktable_get_entry
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_track_sc(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\t    struct session *sess, struct stream *s, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:2463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2461
    functionDepth: 5
    functionLinenumber: 2461
    functionLinenumberEnd: 2464
    functionName: release_http_track_sc
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void release_http_track_sc(struct act_rule *rule)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cfg_parse_track_sc_num
      Src: /src/haproxy/src/http_act.c:2479,1
    - Dst: strlen
      Src: /src/haproxy/src/http_act.c:2479,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/http_act.c:2483,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2495,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/http_act.c:2496,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:2497,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:2501,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2504,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:2505,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:2510,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2469
    functionDepth: 7
    functionLinenumber: 2469
    functionLinenumberEnd: 2522
    functionName: parse_http_track_sc
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cfg_parse_track_sc_num
    - strcmp
    - sample_src_names
    - sample_parse_expr
    - strdup
    - release_sample_expr
    - strlen
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_track_sc(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t\t struct act_rule *rule, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_act.c:2533,1
    - Dst: stream_set_timeout
      Src: /src/haproxy/src/http_act.c:2537,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/http_act.c:2537,1
    - Dst: stream_set_timeout
      Src: /src/haproxy/src/http_act.c:2540,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/http_act.c:2540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2524
    functionDepth: 4
    functionLinenumber: 2524
    functionLinenumberEnd: 2544
    functionName: action_timeout_set_stream_timeout
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - MS_TO_TICKS
    - sample_fetch_as_type
    - stream_set_timeout
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return action_timeout_set_stream_timeout(struct act_rule
      *rule,\n                                                         struct proxy
      *px,\n                                                         struct session
      *sess,\n                                                         struct stream
      *s,\n                                                         int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2561,1
    - Dst: cfg_parse_rule_set_timeout
      Src: /src/haproxy/src/http_act.c:2565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2572
      start: 2548
    functionDepth: 5
    functionLinenumber: 2548
    functionLinenumberEnd: 2572
    functionName: parse_http_set_timeout
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cfg_parse_rule_set_timeout
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_set_timeout(const char **args,\n                                                 int
      *orig_arg,\n                                                 struct proxy *px,\n
      \                                                struct act_rule *rule, char
      **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2587
      start: 2577
    functionDepth: 0
    functionLinenumber: 2577
    functionLinenumberEnd: 2587
    functionName: http_action_strict_mode
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_strict_mode(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\t       struct session *sess, struct stream *s, int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2599,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/http_act.c:2603,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/http_act.c:2605,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2592
    functionDepth: 5
    functionLinenumber: 2592
    functionLinenumberEnd: 2615
    functionName: parse_http_strict_mode
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcasecmp
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_strict_mode(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t\t struct act_rule *rule, char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: http_reply_message
      Src: /src/haproxy/src/http_act.c:2634,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:2644,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2622
    functionDepth: 14
    functionLinenumber: 2622
    functionLinenumberEnd: 2648
    functionName: http_action_return
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - http_reply_message
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_return(struct act_rule *rule, struct proxy
      *px,\n\t\t\t\t\t  struct session *sess, struct stream *s, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_parse_http_reply
      Src: /src/haproxy/src/http_act.c:2659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2669
      start: 2654
    functionDepth: 7
    functionLinenumber: 2654
    functionLinenumberEnd: 2669
    functionName: parse_http_return
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - http_parse_http_reply
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_return(const char **args, int *orig_arg,
      struct proxy *px,\n\t\t\t\t\t    struct act_rule *rule, char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: http_wait_for_msg_body
      Src: /src/haproxy/src/http_act.c:2690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2682
    functionDepth: 2
    functionLinenumber: 2682
    functionLinenumberEnd: 2704
    functionName: http_action_wait_for_body
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - http_wait_for_msg_body
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_wait_for_body(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\t\t struct session *sess, struct stream *s, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2709
    functionDepth: 5
    functionLinenumber: 2709
    functionLinenumberEnd: 2719
    functionName: check_http_wait_for_body
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int check_http_wait_for_body(struct act_rule *rule, struct proxy *px,
      char **err)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2733,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:2741,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2743,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/http_act.c:2746,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2748,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2752,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2756,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:2761,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2763,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/http_act.c:2766,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2768,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:2773,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2781,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2724
    functionDepth: 5
    functionLinenumber: 2724
    functionLinenumberEnd: 2795
    functionName: parse_http_wait_for_body
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - parse_size_err
    - memprintf
    - strcmp
    - parse_time_err
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_wait_for_body(const char **args, int
      *orig_arg, struct proxy *px,\n\t\t\t\t\t\t   struct act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_orig_register
      Src: /src/haproxy/src/http_act.c:2803,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_act.c:2804,1
    - Dst: log_orig_register
      Src: /src/haproxy/src/http_act.c:2805,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_act.c:2806,1
    - Dst: log_orig_register
      Src: /src/haproxy/src/http_act.c:2807,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_act.c:2808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2809
      start: 2801
    functionDepth: 4
    functionLinenumber: 2801
    functionLinenumberEnd: 2809
    functionName: init_do_log
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - log_orig_register
    linkageType: ''
    returnType: void
    signature: void init_do_log(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_log_parse_act
      Src: /src/haproxy/src/http_act.c:2816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2813
    functionDepth: 6
    functionLinenumber: 2813
    functionLinenumberEnd: 2817
    functionName: parse_http_req_do_log
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - do_log_parse_act
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_req_do_log(const char **args, int *orig_arg,
      struct proxy *px,\n                                                struct act_rule
      *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_log_parse_act
      Src: /src/haproxy/src/http_act.c:2822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2819
    functionDepth: 6
    functionLinenumber: 2819
    functionLinenumberEnd: 2823
    functionName: parse_http_res_do_log
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - do_log_parse_act
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_res_do_log(const char **args, int *orig_arg,
      struct proxy *px,\n                                                struct act_rule
      *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_log_parse_act
      Src: /src/haproxy/src/http_act.c:2828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2829
      start: 2825
    functionDepth: 6
    functionLinenumber: 2825
    functionLinenumberEnd: 2829
    functionName: parse_http_after_res_do_log
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - do_log_parse_act
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_http_after_res_do_log(const char **args,
      int *orig_arg, struct proxy *px,\n                                                      struct
      act_rule *rule, char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb32_insert
      Src: /src/haproxy/src/eb32tree.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: eb32_insert
    functionSourceFile: /src/haproxy/src/eb32tree.c
    functionUses: 30
    functionsReached:
    - __eb32_insert
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_insert(struct eb_root *root, struct eb32_node
      *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb32i_insert
      Src: /src/haproxy/src/eb32tree.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: eb32i_insert
    functionSourceFile: /src/haproxy/src/eb32tree.c
    functionUses: 1
    functionsReached:
    - __eb32i_insert
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32i_insert(struct eb_root *root, struct eb32_node
      *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb32_lookup
      Src: /src/haproxy/src/eb32tree.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: eb32_lookup
    functionSourceFile: /src/haproxy/src/eb32tree.c
    functionUses: 15
    functionsReached:
    - __eb32_lookup
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_lookup(struct eb_root *root, u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb32i_lookup
      Src: /src/haproxy/src/eb32tree.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: eb32i_lookup
    functionSourceFile: /src/haproxy/src/eb32tree.c
    functionUses: 1
    functionsReached:
    - __eb32i_lookup
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32i_lookup(struct eb_root *root, s32 x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/eb32tree.c:56,1
    - Dst: unlikely
      Src: /src/haproxy/src/eb32tree.c:60,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32tree.c:60,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32tree.c:65,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:65,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32tree.c:73,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:73,1
    - Dst: eb_prefetch
      Src: /src/haproxy/src/eb32tree.c:76,1
    - Dst: eb_prefetch
      Src: /src/haproxy/src/eb32tree.c:77,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32tree.c:94,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:95,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32tree.c:96,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:96,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/eb32tree.c:111,1
    - Dst: eb_walk_down
      Src: /src/haproxy/src/eb32tree.c:111,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32tree.c:126,1
    - Dst: unlikely
      Src: /src/haproxy/src/eb32tree.c:130,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/eb32tree.c:130,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:130,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/eb32tree.c:132,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:132,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:135,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/eb32tree.c:136,1
    - Dst: eb_walk_down
      Src: /src/haproxy/src/eb32tree.c:136,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 138
    functionName: eb32_lookup_le
    functionSourceFile: /src/haproxy/src/eb32tree.c
    functionUses: 0
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - eb32_entry
    - eb_root_to_node
    - eb_walk_down
    - eb_clrtag
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_lookup_le(struct eb_root *root, u32 x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/eb32tree.c:151,1
    - Dst: unlikely
      Src: /src/haproxy/src/eb32tree.c:155,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32tree.c:155,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32tree.c:160,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:160,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32tree.c:168,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:168,1
    - Dst: eb_prefetch
      Src: /src/haproxy/src/eb32tree.c:171,1
    - Dst: eb_prefetch
      Src: /src/haproxy/src/eb32tree.c:172,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32tree.c:189,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:190,1
    - Dst: container_of
      Src: /src/haproxy/src/eb32tree.c:191,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:191,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/eb32tree.c:206,1
    - Dst: eb_walk_down
      Src: /src/haproxy/src/eb32tree.c:206,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/eb32tree.c:221,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/eb32tree.c:223,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:223,1
    - Dst: eb_untag
      Src: /src/haproxy/src/eb32tree.c:226,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/eb32tree.c:227,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/eb32tree.c:230,1
    - Dst: eb_walk_down
      Src: /src/haproxy/src/eb32tree.c:230,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 232
    functionName: eb32_lookup_ge
    functionSourceFile: /src/haproxy/src/eb32tree.c
    functionUses: 20
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - eb32_entry
    - eb_root_to_node
    - eb_walk_down
    - eb_clrtag
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_lookup_ge(struct eb_root *root, u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_init
      Src: /src/haproxy/src/trace.c:51,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/trace.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: alloc_trace_buffers_per_thread
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - chunk_init
    - my_realloc2
    linkageType: ''
    returnType: int
    signature: int alloc_trace_buffers_per_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_destroy
      Src: /src/haproxy/src/trace.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: free_trace_buffers_per_thread
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    linkageType: ''
    returnType: void
    signature: void free_trace_buffers_per_thread()
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 5
    argNames:
    - arg_def
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - uint32_t
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 81
    functionName: trace_pick_arg
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *trace_pick_arg(uint32_t arg_def, const void *a1, const void *a2,
      const void *a3, const void *a4)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/trace.c:107,1
    - Dst: likely
      Src: /src/haproxy/src/trace.c:110,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:122,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:125,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:128,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:131,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:134,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:137,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:140,1
    - Dst: struct trace_source*::fill_ctx
      Src: /src/haproxy/src/trace.c:143,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/trace.c:151,1
    - Dst: objt_listener
      Src: /src/haproxy/src/trace.c:164,1
    - Dst: objt_server
      Src: /src/haproxy/src/trace.c:179,1
    - Dst: objt_proxy
      Src: /src/haproxy/src/trace.c:185,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:195,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 175
    argCount: 10
    argNames:
    - level
    - mask
    - src
    - where
    - ist_func
    - a1
    - a2
    - a3
    - a4
    - plockptr
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 262
    functionName: __trace_enabled
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - struct trace_source*::fill_ctx
    - HA_ATOMIC_STORE
    - HA_ATOMIC_LOAD
    - trace_pick_arg
    - likely
    - LIST_INLIST
    - objt_server
    - objt_listener
    - objt_proxy
    linkageType: ''
    returnType: int
    signature: "int __trace_enabled(enum trace_level level, uint64_t mask, struct
      trace_source *src,\n\t\t    const struct ist where, const struct ist ist_func,\n\t\t
      \   const void *a1, const void *a2, const void *a3, const void *a4,\n\t\t    const
      void **plockptr)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: __trace_enabled
      Src: /src/haproxy/src/trace.c:280,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:282,1
    - Dst: ist
      Src: /src/haproxy/src/trace.c:293,1
    - Dst: ist2
      Src: /src/haproxy/src/trace.c:298,1
    - Dst: ist
      Src: /src/haproxy/src/trace.c:300,1
    - Dst: ist2
      Src: /src/haproxy/src/trace.c:301,1
    - Dst: ist
      Src: /src/haproxy/src/trace.c:302,1
    - Dst: ist
      Src: /src/haproxy/src/trace.c:309,1
    - Dst: isttest
      Src: /src/haproxy/src/trace.c:311,1
    - Dst: ist
      Src: /src/haproxy/src/trace.c:313,1
    - Dst: b_reset
      Src: /src/haproxy/src/trace.c:324,1
    - Dst: b_istput
      Src: /src/haproxy/src/trace.c:325,1
    - Dst: cb
      Src: /src/haproxy/src/trace.c:326,1
    - Dst: ist2
      Src: /src/haproxy/src/trace.c:327,1
    - Dst: sink_write
      Src: /src/haproxy/src/trace.c:340,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:345,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:346,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:349,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:350,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 10
    argNames:
    - level
    - mask
    - src
    - where
    - ist_func
    - a1
    - a2
    - a3
    - a4
    - msg
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 352
    functionName: __trace
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - cb
    - ist2
    - HA_ATOMIC_STORE
    - ist
    - b_istput
    - __trace_enabled
    - sink_write
    - b_reset
    - isttest
    linkageType: ''
    returnType: void
    signature: "void __trace(enum trace_level level, uint64_t mask, struct trace_source
      *src,\n             const struct ist where, const struct ist ist_func,\n             const
      void *a1, const void *a2, const void *a3, const void *a4,\n             void
      (*cb)(enum trace_level level, uint64_t mask, const struct trace_source *src,\n
      \                       const struct ist where, const struct ist func,\n                        const
      void *a1, const void *a2, const void *a3, const void *a4),\n             const
      struct ist msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 9
    argNames:
    - level
    - mask
    - src
    - where
    - func
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - enum trace_level
    - uint64_t
    - struct trace_source*
    - struct ist
    - struct ist
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: trace_no_cb
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void trace_no_cb(enum trace_level level, uint64_t mask, const struct
      trace_source *src,\n\t\t const struct ist where, const struct ist func,\n\t\t
      const void *a1, const void *a2, const void *a3, const void *a4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct trace_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 371
    functionName: trace_source_reset
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void trace_source_reset(struct trace_source *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace_source_reset
      Src: /src/haproxy/src/trace.c:379,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/trace.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct trace_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: trace_register_source
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - trace_source_reset
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void trace_register_source(struct trace_source *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/trace.c:386,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:388,1
    - Dst: isteq
      Src: /src/haproxy/src/trace.c:389,1
    - Dst: isteq
      Src: /src/haproxy/src/trace.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 392
    functionName: trace_find_source
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - ist
    - isteq
    - list_for_each_entry
    linkageType: ''
    returnType: struct trace_source
    signature: struct trace_source *trace_find_source(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ev
    - name
    argTypes:
    - struct trace_event*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 400
    functionName: trace_find_event
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct trace_event
    signature: struct trace_event *trace_find_event(const struct trace_event *ev,
      const char *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:408,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:410,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:412,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:414,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:416,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - level
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 422
    functionName: trace_parse_level
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int trace_parse_level(const char *level)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:434,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:443,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:450,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - src
    - verbosity
    argTypes:
    - struct trace_source*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 461
    functionName: trace_source_parse_verbosity
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int trace_source_parse_verbosity(struct trace_source *src,\n                                        const
      char *verbosity)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sink_find_early
      Src: /src/haproxy/src/trace.c:477,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:479,1
    - Dst: sink_find
      Src: /src/haproxy/src/trace.c:484,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - name
    - msg
    - file
    - line
    argTypes:
    - char*
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 470
    functionDepth: 5
    functionLinenumber: 470
    functionLinenumberEnd: 491
    functionName: _trace_get_sink
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - sink_find
    - memprintf
    - sink_find_early
    linkageType: ''
    returnType: struct sink
    signature: "struct sink *_trace_get_sink(const char *name, char **msg,\n                                    const
      char *file, int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct trace_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 500
    functionName: trace_enforce_origin_priority
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int trace_enforce_origin_priority(const struct trace_source *src)
  - BBCount: 82
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:521,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:527,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:528,1
    - Dst: trace_state_char
      Src: /src/haproxy/src/trace.c:528,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:531,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:535,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:537,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:538,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:539,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:543,1
    - Dst: trace_find_source
      Src: /src/haproxy/src/trace.c:547,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:549,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:567,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:577,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:578,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:579,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:580,1
    - Dst: trace_enforce_origin_priority
      Src: /src/haproxy/src/trace.c:584,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:587,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/trace.c:588,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:593,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:595,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/trace.c:597,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:599,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:604,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:605,1
    - Dst: trace_state_char
      Src: /src/haproxy/src/trace.c:605,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:608,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:613,1
    - Dst: trace_find_source
      Src: /src/haproxy/src/trace.c:614,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:616,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:622,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:625,1
    - Dst: trace_enforce_origin_priority
      Src: /src/haproxy/src/trace.c:626,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:627,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:633,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:634,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:635,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:636,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:654,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:656,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:657,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:658,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:660,1
    - Dst: trace_event_char
      Src: /src/haproxy/src/trace.c:661,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:665,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:676,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:677,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:679,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:680,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:683,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:686,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:687,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:690,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:691,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:692,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:695,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/trace.c:697,1
    - Dst: trace_find_event
      Src: /src/haproxy/src/trace.c:702,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:704,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/trace.c:709,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/trace.c:711,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/trace.c:713,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/trace.c:714,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:720,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:725,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:726,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:727,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:728,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:733,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:735,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:739,1
    - Dst: _trace_get_sink
      Src: /src/haproxy/src/trace.c:742,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:748,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:751,1
    - Dst: trace_enforce_origin_priority
      Src: /src/haproxy/src/trace.c:752,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:753,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:760,1
    - Dst: trace_parse_level
      Src: /src/haproxy/src/trace.c:765,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/trace.c:768,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:770,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:771,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:772,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:774,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:776,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:778,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:780,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:782,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:785,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:790,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:793,1
    - Dst: trace_enforce_origin_priority
      Src: /src/haproxy/src/trace.c:794,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:795,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:802,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:806,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:808,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:812,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:816,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:820,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:824,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:827,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:831,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:835,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:839,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:843,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:847,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:850,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:854,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:859,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:864,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:869,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:874,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:877,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:878,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:879,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:881,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:882,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:883,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:885,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:886,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:887,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:889,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:890,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:891,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:893,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:894,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:895,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:897,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:898,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:899,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:901,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:902,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:903,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:905,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:906,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:907,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:909,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:910,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:911,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:913,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:914,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:915,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:917,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:918,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:919,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:921,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:922,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:923,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:925,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:926,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:927,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:929,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:930,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:931,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:933,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:934,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:935,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:937,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:938,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:939,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:942,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:949,1
    - Dst: trace_source_parse_verbosity
      Src: /src/haproxy/src/trace.c:955,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/trace.c:958,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:960,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:961,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:962,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:965,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:969,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:974,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:978,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:984,1
    CyclomaticComplexity: 141
    EdgeCount: 141
    ICount: 335
    argCount: 4
    argNames:
    - args
    - msg
    - file
    - line
    argTypes:
    - char**
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 510
    functionDepth: 6
    functionLinenumber: 510
    functionLinenumberEnd: 991
    functionName: _trace_parse_statement
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - memprintf
    - HA_ATOMIC_LOAD
    - trace_event_char
    - chunk_appendf
    - HA_ATOMIC_OR
    - HA_ATOMIC_STORE
    - chunk_printf
    - strcmp
    - HA_ATOMIC_CAS
    - trace_enforce_origin_priority
    - trace_parse_level
    - trace_state_char
    - _trace_get_sink
    - chunk_reset
    - trace_find_event
    - trace_source_parse_verbosity
    - list_for_each_entry
    - HA_ATOMIC_AND
    - trace_find_source
    - strdup
    linkageType: ''
    returnType: int
    signature: int _trace_parse_statement(char **args, char **msg, const char *file,
      int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _trace_parse_statement
      Src: /src/haproxy/src/trace.c:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - args
    - msg
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 996
    functionDepth: 7
    functionLinenumber: 996
    functionLinenumberEnd: 999
    functionName: trace_parse_statement
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 1
    functionsReached:
    - _trace_parse_statement
    linkageType: ''
    returnType: int
    signature: int trace_parse_statement(char **args, char **msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/trace.c:1005,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1007,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/trace.c:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - arg_src
    - errmsg
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1001
    functionDepth: 5
    functionLinenumber: 1001
    functionLinenumberEnd: 1014
    functionName: trace_add_cmd
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 1
    functionsReached:
    - malloc
    - memprintf
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int trace_add_cmd(const char *arg_src, char **errmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace_source_reset
      Src: /src/haproxy/src/trace.c:1018,1
    - Dst: sink_find
      Src: /src/haproxy/src/trace.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - src
    - level
    - verbosity
    argTypes:
    - struct trace_source*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1024
    functionName: _trace_parse_cmd
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - sink_find
    - trace_source_reset
    linkageType: ''
    returnType: void
    signature: void _trace_parse_cmd(struct trace_source *src, int level, int verbosity)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:1040,1
    - Dst: _trace_parse_cmd
      Src: /src/haproxy/src/trace.c:1041,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:1045,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1046,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:1064,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1066,1
    - Dst: strtok_r
      Src: /src/haproxy/src/trace.c:1070,1
    - Dst: strchr
      Src: /src/haproxy/src/trace.c:1078,1
    - Dst: strlen
      Src: /src/haproxy/src/trace.c:1087,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:1087,1
    - Dst: trace_find_source
      Src: /src/haproxy/src/trace.c:1088,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1090,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1091,1
    - Dst: strlen
      Src: /src/haproxy/src/trace.c:1096,1
    - Dst: strchr
      Src: /src/haproxy/src/trace.c:1101,1
    - Dst: strlen
      Src: /src/haproxy/src/trace.c:1110,1
    - Dst: trace_parse_level
      Src: /src/haproxy/src/trace.c:1111,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1113,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1114,1
    - Dst: strlen
      Src: /src/haproxy/src/trace.c:1119,1
    - Dst: strchr
      Src: /src/haproxy/src/trace.c:1124,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1125,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1126,1
    - Dst: trace_source_parse_verbosity
      Src: /src/haproxy/src/trace.c:1130,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1135,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1138,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1140,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1143,1
    - Dst: _trace_parse_cmd
      Src: /src/haproxy/src/trace.c:1149,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:1152,1
    - Dst: _trace_parse_cmd
      Src: /src/haproxy/src/trace.c:1153,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1159,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 2
    argNames:
    - arg_src
    - errmsg
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1030
    functionDepth: 5
    functionLinenumber: 1030
    functionLinenumberEnd: 1161
    functionName: trace_parse_cmd
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 1
    functionsReached:
    - strtok_r
    - trace_source_parse_verbosity
    - memprintf
    - list_for_each_entry
    - ha_free
    - strcmp
    - strchr
    - strlen
    - trace_parse_level
    - trace_find_source
    - _trace_parse_cmd
    - strdup
    linkageType: ''
    returnType: int
    signature: int trace_parse_cmd(const char *arg_src, char **errmsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/trace.c:1169,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/trace.c:1170,1
    - Dst: trace_parse_cmd
      Src: /src/haproxy/src/trace.c:1172,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/trace.c:1173,1
    - Dst: free
      Src: /src/haproxy/src/trace.c:1174,1
    - Dst: ha_alert
      Src: /src/haproxy/src/trace.c:1179,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1180,1
    - Dst: exit
      Src: /src/haproxy/src/trace.c:1181,1
    - Dst: printf
      Src: /src/haproxy/src/trace.c:1184,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1185,1
    - Dst: exit
      Src: /src/haproxy/src/trace.c:1186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1163
    functionDepth: 9
    functionLinenumber: 1163
    functionLinenumberEnd: 1189
    functionName: trace_parse_cmds
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - exit
    - ha_free
    - printf
    - free
    - LIST_ISEMPTY
    - trace_parse_cmd
    - ha_alert
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void trace_parse_cmds(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _trace_parse_statement
      Src: /src/haproxy/src/trace.c:1199,1
    - Dst: ha_notice
      Src: /src/haproxy/src/trace.c:1202,1
    - Dst: ha_warning
      Src: /src/haproxy/src/trace.c:1204,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1192
    functionDepth: 9
    functionLinenumber: 1192
    functionLinenumberEnd: 1214
    functionName: cfg_parse_trace
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - ha_free
    - ha_notice
    - _trace_parse_statement
    - ha_warning
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_trace(char **args, int section_type, struct proxy *curpx,\n\t\t\t
      \  const struct proxy *defpx, const char *file, int line,\n\t\t\t   char **err)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:1231,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/trace.c:1233,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:1242,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:1246,1
    - Dst: check_kw_experimental
      Src: /src/haproxy/src/trace.c:1247,1
    - Dst: ha_alert
      Src: /src/haproxy/src/trace.c:1248,1
    - Dst: parse
      Src: /src/haproxy/src/trace.c:1253,1
    - Dst: ha_alert
      Src: /src/haproxy/src/trace.c:1255,1
    - Dst: ha_warning
      Src: /src/haproxy/src/trace.c:1259,1
    - Dst: cfg_find_best_match
      Src: /src/haproxy/src/trace.c:1267,1
    - Dst: ha_alert
      Src: /src/haproxy/src/trace.c:1269,1
    - Dst: ha_alert
      Src: /src/haproxy/src/trace.c:1271,1
    - Dst: free
      Src: /src/haproxy/src/trace.c:1276,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - inv
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1226
    functionDepth: 9
    functionLinenumber: 1226
    functionLinenumberEnd: 1278
    functionName: cfg_parse_traces
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - check_kw_experimental
    - alertif_too_many_args
    - list_for_each_entry
    - parse
    - strcmp
    - free
    - ha_alert
    - ha_warning
    - cfg_find_best_match
    linkageType: ''
    returnType: int
    signature: int cfg_parse_traces(const char *file, int linenum, char **args, int
      inv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/trace.c:1286,1
    - Dst: trace_parse_statement
      Src: /src/haproxy/src/trace.c:1289,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/trace.c:1291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1281
    functionDepth: 8
    functionLinenumber: 1281
    functionLinenumberEnd: 1295
    functionName: cli_parse_trace
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - trace_parse_statement
    - cli_has_level
    - cli_dynmsg
    linkageType: ''
    returnType: int
    signature: int cli_parse_trace(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:1308,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:1312,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:1314,1
    - Dst: trace_state_char
      Src: /src/haproxy/src/trace.c:1315,1
    - Dst: cli_msg
      Src: /src/haproxy/src/trace.c:1322,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/trace.c:1325,1
    - Dst: trace_find_source
      Src: /src/haproxy/src/trace.c:1328,1
    - Dst: cli_err
      Src: /src/haproxy/src/trace.c:1330,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:1333,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:1334,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:1337,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:1339,1
    - Dst: trace_event_char
      Src: /src/haproxy/src/trace.c:1341,1
    - Dst: trace_event_char
      Src: /src/haproxy/src/trace.c:1342,1
    - Dst: trace_event_char
      Src: /src/haproxy/src/trace.c:1343,1
    - Dst: trace_event_char
      Src: /src/haproxy/src/trace.c:1344,1
    - Dst: cli_msg
      Src: /src/haproxy/src/trace.c:1348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1298
    functionDepth: 2
    functionLinenumber: 1298
    functionLinenumberEnd: 1349
    functionName: cli_parse_show_trace
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - list_for_each_entry
    - chunk_printf
    - trace_event_char
    - trace_state_char
    - chunk_appendf
    - trace_find_source
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_trace(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/htx.c:26,1
    - Dst: write_u64
      Src: /src/haproxy/src/htx.c:27,1
    - Dst: read_u64
      Src: /src/haproxy/src/htx.c:27,1
    - Dst: memcpy
      Src: /src/haproxy/src/htx.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: htx_memcpy
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - write_u64
    - read_u64
    - memcpy
    - likely
    linkageType: ''
    returnType: void
    signature: void htx_memcpy(void *dst, void *src, size_t len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk_sz
      Src: /src/haproxy/src/htx.c:43,1
    - Dst: htxbuf
      Src: /src/haproxy/src/htx.c:44,1
    - Dst: htx_get_head
      Src: /src/haproxy/src/htx.c:60,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/htx.c:60,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:61,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:62,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:65,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:66,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/htx.c:70,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/htx.c:70,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:76,1
    - Dst: __htx_blkinfo_size
      Src: /src/haproxy/src/htx.c:76,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:80,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:83,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:83,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:83,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:106,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:108,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 3
    argNames:
    - htx
    - blk
    - blkinfo
    argTypes:
    - struct htx*
    - struct htx_blk*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 109
    functionName: htx_defrag
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 5
    functionsReached:
    - htx_get_blksz
    - htxbuf
    - __htx_blkinfo_size
    - htx_get_blk
    - htx_get_blk_value
    - htx_add_data_atonce
    - htx_get_blk_ptr
    - htx_get_blk_type
    - get_trash_chunk_sz
    - htx_add_blk
    - htx_get_head
    - htx_memcpy
    - htx_get_next
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_defrag(struct htx *htx, struct htx_blk *blk, uint32_t
      blkinfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_head
      Src: /src/haproxy/src/htx.c:120,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/htx.c:120,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:128,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:129,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:134,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 141
    functionName: htx_defrag_blks
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - htx_get_blk
    - htx_get_blk_type
    - htx_get_head
    - htx_get_next
    linkageType: ''
    returnType: void
    signature: void htx_defrag_blks(struct htx *htx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/htx.c:154,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:160,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:174,1
    - Dst: htx_defrag_blks
      Src: /src/haproxy/src/htx.c:177,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:179,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:179,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:194,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:195,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:196,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:199,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:204,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/htx.c:211,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:213,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:224,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:225,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:226,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 2
    argNames:
    - htx
    - blksz
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 230
    functionName: htx_reserve_nxblk
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htx_defrag_blks
    - htx_pos_to_addr
    - htx_defrag
    - BUG_ON
    - htx_get_blk
    - htx_free_data_space
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_reserve_nxblk(struct htx *htx, uint32_t blksz)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:255,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:258,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:259,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:260,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:262,1
    - Dst: htx_free_space
      Src: /src/haproxy/src/htx.c:271,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:329,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:330,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:331,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:332,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 3
    argNames:
    - htx
    - blk
    - delta
    argTypes:
    - struct htx*
    - struct htx_blk*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 334
    functionName: htx_prepare_blk_expansion
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - htx_pos_to_addr
    - BUG_ON
    - htx_free_space
    linkageType: ''
    returnType: int
    signature: int htx_prepare_blk_expansion(struct htx *htx, struct htx_blk *blk,
      int32_t delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:343,1
    - Dst: htx_reserve_nxblk
      Src: /src/haproxy/src/htx.c:344,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - htx
    - type
    - blksz
    argTypes:
    - struct htx*
    - enum htx_blk_type
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 339
    functionDepth: 5
    functionLinenumber: 339
    functionLinenumberEnd: 351
    functionName: htx_add_blk
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 2
    functionsReached:
    - htx_reserve_nxblk
    - BUG_ON
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_add_blk(struct htx *htx, enum htx_blk_type type,
      uint32_t blksz)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:362,1
    - Dst: htx_reset
      Src: /src/haproxy/src/htx.c:368,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:373,1
    - Dst: htx_get_blk_pos
      Src: /src/haproxy/src/htx.c:374,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:375,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:379,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:398,1
    - Dst: htx_get_blk_pos
      Src: /src/haproxy/src/htx.c:402,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:407,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:428,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:429,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:430,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:431,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 433
    functionName: htx_remove_blk
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 30
    functionsReached:
    - htx_get_blksz
    - BUG_ON
    - htx_get_blk
    - htx_get_blk_type
    - htx_get_blk_pos
    - htx_reset
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_remove_blk(struct htx *htx, struct htx_blk *blk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/htx.c:448,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:448,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:449,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - htx
    - offset
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 458
    functionName: htx_find_offset
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 4
    functionsReached:
    - htx_get_next_blk
    - htx_get_blksz
    - htx_get_head_blk
    linkageType: ''
    returnType: struct htx_ret
    signature: struct htx_ret htx_find_offset(struct htx *htx, uint32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_find_offset
      Src: /src/haproxy/src/htx.c:466,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:469,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/htx.c:470,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:471,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - htx
    - offset
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 475
    functionName: htx_truncate
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 10
    functionsReached:
    - htx_find_offset
    - htx_change_blk_value_len
    - htx_get_next_blk
    - htx_get_blk_type
    - htx_remove_blk
    linkageType: ''
    returnType: void
    signature: void htx_truncate(struct htx *htx, uint32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_drain
      Src: /src/haproxy/src/htx.c:483,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:486,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 487
    functionName: htx_truncate_blk
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 5
    functionsReached:
    - htx_get_next_blk
    - htx_remove_blk
    - htx_drain
    linkageType: ''
    returnType: void
    signature: void htx_truncate_blk(struct htx *htx, struct htx_blk *blk)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htx_reset
      Src: /src/haproxy/src/htx.c:504,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/htx.c:510,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:512,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:513,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/htx.c:521,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:529,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - htx
    - count
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 534
    functionName: htx_drain
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 1
    functionsReached:
    - htx_get_blksz
    - htx_cut_data_blk
    - htx_get_blk_type
    - htx_remove_blk
    - htx_reset
    - htx_get_head_blk
    linkageType: ''
    returnType: struct htx_ret
    signature: struct htx_ret htx_drain(struct htx *htx, uint32_t count)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/htx.c:554,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:558,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:561,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:565,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:566,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:575,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:576,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:577,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/htx.c:590,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:591,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:594,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:600,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:601,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/htx.c:602,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:607,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:611,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:611,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:615,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:616,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:617,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:618,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 2
    argNames:
    - htx
    - data
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 543
    functionDepth: 6
    functionLinenumber: 543
    functionLinenumberEnd: 620
    functionName: htx_add_data_atonce
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 7
    functionsReached:
    - htx_change_blk_value_len
    - htx_get_blksz
    - htx_pos_to_addr
    - htx_defrag
    - BUG_ON
    - htx_get_blk_ptr
    - htx_get_blk_type
    - htx_add_blk
    - htx_free_data_space
    - htx_get_tail_blk
    - htx_memcpy
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_add_data_atonce(struct htx *htx, struct ist data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/htx.c:634,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/htx.c:635,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:636,1
    - Dst: htx_prepare_blk_expansion
      Src: /src/haproxy/src/htx.c:637,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:644,1
    - Dst: ptr::ptr
      Src: /src/haproxy/src/htx.c:644,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:644,1
    - Dst: memmove
      Src: /src/haproxy/src/htx.c:645,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:645,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:645,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:646,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:646,1
    - Dst: memmove
      Src: /src/haproxy/src/htx.c:650,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:650,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:650,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:651,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:651,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:652,1
    - Dst: ptr::ptr
      Src: /src/haproxy/src/htx.c:652,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:652,1
    - Dst: htx_set_blk_value_len
      Src: /src/haproxy/src/htx.c:656,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:660,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:663,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:667,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:671,1
    - Dst: ptr::ptr
      Src: /src/haproxy/src/htx.c:671,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:671,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:672,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:675,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:675,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:675,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:675,1
    - Dst: htx_set_blk_value_len
      Src: /src/haproxy/src/htx.c:678,1
    - Dst: alloc_trash_chunk_sz
      Src: /src/haproxy/src/htx.c:684,1
    - Dst: b_orig
      Src: /src/haproxy/src/htx.c:690,1
    - Dst: b_set_data
      Src: /src/haproxy/src/htx.c:691,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:694,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:698,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:702,1
    - Dst: ptr::ptr
      Src: /src/haproxy/src/htx.c:702,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:702,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:703,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:706,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:706,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:706,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:706,1
    - Dst: htx_set_blk_value_len
      Src: /src/haproxy/src/htx.c:713,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/htx.c:716,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:719,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:719,1
    - Dst: b_orig
      Src: /src/haproxy/src/htx.c:719,1
    - Dst: b_data
      Src: /src/haproxy/src/htx.c:719,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/htx.c:720,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 4
    argNames:
    - htx
    - blk
    - old
    - new
    argTypes:
    - struct htx*
    - struct htx_blk*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 723
    functionName: htx_replace_blk_value
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 6
    functionsReached:
    - len::len
    - memmove
    - htx_set_blk_value_len
    - b_orig
    - alloc_trash_chunk_sz
    - istend
    - htx_defrag
    - free_trash_chunk
    - htx_get_blk_ptr
    - htx_prepare_blk_expansion
    - b_data
    - ptr::ptr
    - b_set_data
    - htx_get_blk_name
    - htx_memcpy
    - htx_get_blk_value
    linkageType: ''
    returnType: struct htx_blk
    signature: "struct htx_blk *htx_replace_blk_value(struct htx *htx, struct htx_blk
      *blk,\n\t\t\t\t      const struct ist old, const struct ist new)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/htx.c:746,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:746,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:752,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/htx.c:761,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:768,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/htx.c:771,1
    - Dst: isttrim
      Src: /src/haproxy/src/htx.c:772,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/htx.c:773,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:778,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:794,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:800,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:800,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:800,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:823,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:825,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:830,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:834,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:834,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:835,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:836,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:837,1
    - Dst: htx_get_prev_blk
      Src: /src/haproxy/src/htx.c:838,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:841,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/htx.c:847,1
    - Dst: htx_drain
      Src: /src/haproxy/src/htx.c:858,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/htx.c:860,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:860,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:866,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/htx.c:867,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 94
    argCount: 4
    argNames:
    - dst
    - src
    - count
    - flags
    argTypes:
    - struct htx*
    - struct htx*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 735
    functionDepth: 6
    functionLinenumber: 735
    functionLinenumberEnd: 879
    functionName: htx_xfer
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 5
    functionsReached:
    - htx_get_next_blk
    - htx_get_blksz
    - isttrim
    - BUG_ON
    - htx_get_prev_blk
    - htx_cut_data_blk
    - htx_get_blk_value
    - htx_get_blk_ptr
    - htx_get_blk_type
    - htx_add_data
    - htx_remove_blk
    - htx_add_blk
    - htx_drain
    - htx_free_data_space
    - htx_get_tail_blk
    - htx_is_empty
    - htx_memcpy
    - htx_get_head_blk
    linkageType: ''
    returnType: size_t
    signature: size_t htx_xfer(struct htx *dst, struct htx *src, size_t count, unsigned
      int flags)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: htx_used_space
      Src: /src/haproxy/src/htx.c:897,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/htx.c:903,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:903,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:904,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:905,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/src/htx.c:911,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/htx.c:917,1
    - Dst: isttrim
      Src: /src/haproxy/src/htx.c:918,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/htx.c:919,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:922,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/htx.c:927,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:935,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:939,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:939,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:939,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:959,1
    - Dst: unlikely
      Src: /src/haproxy/src/htx.c:964,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:970,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:972,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/htx.c:977,1
    - Dst: htx_drain
      Src: /src/haproxy/src/htx.c:984,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/htx.c:989,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:989,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/htx.c:992,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/htx.c:995,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 72
    argCount: 4
    argNames:
    - dst
    - src
    - count
    - mark
    argTypes:
    - struct htx*
    - struct htx*
    - uint32_t
    - enum htx_blk_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 888
    functionDepth: 6
    functionLinenumber: 888
    functionLinenumberEnd: 997
    functionName: htx_xfer_blks
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_blksz
    - htx_get_next_blk
    - isttrim
    - htx_cut_data_blk
    - htx_get_max_blksz
    - htx_get_blk_value
    - htx_get_blk_ptr
    - htx_get_blk_type
    - htx_add_data
    - htx_remove_blk
    - htx_used_space
    - htx_add_blk
    - htx_drain
    - htx_get_tail_blk
    - htx_is_empty
    - htx_memcpy
    - htx_get_head_blk
    linkageType: ''
    returnType: struct htx_ret
    signature: "struct htx_ret htx_xfer_blks(struct htx *dst, struct htx *src, uint32_t
      count,\n\t\t\t     enum htx_blk_type mark)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:1011,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:1015,1
    - Dst: htx_prepare_blk_expansion
      Src: /src/haproxy/src/htx.c:1016,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/htx.c:1025,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:1035,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/src/htx.c:1036,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:1037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - htx
    - blk
    - name
    - value
    argTypes:
    - struct htx*
    - struct htx_blk*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1003
    functionDepth: 4
    functionLinenumber: 1003
    functionLinenumberEnd: 1039
    functionName: htx_replace_header
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 1
    functionsReached:
    - htx_get_blksz
    - htx_defrag
    - htx_get_blk_ptr
    - htx_get_blk_type
    - htx_prepare_blk_expansion
    - ist2bin_lc
    - htx_memcpy
    linkageType: ''
    returnType: struct htx_blk
    signature: "struct htx_blk *htx_replace_header(struct htx *htx, struct htx_blk
      *blk,\n\t\t\t\t   const struct ist name, const struct ist value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:1055,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:1060,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:1064,1
    - Dst: htx_prepare_blk_expansion
      Src: /src/haproxy/src/htx.c:1066,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/htx.c:1073,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:1084,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/htx.c:1088,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/htx.c:1089,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/htx.c:1090,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:1092,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/htx.c:1092,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:1093,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/htx.c:1093,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:1094,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/htx.c:1094,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 5
    argNames:
    - htx
    - blk
    - p1
    - p2
    - p3
    argTypes:
    - struct htx*
    - struct htx_blk*
    - struct ist
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1045
    functionDepth: 4
    functionLinenumber: 1045
    functionLinenumberEnd: 1097
    functionName: htx_replace_stline
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 1
    functionsReached:
    - htx_get_blksz
    - htx_defrag
    - HTX_SL_P2_PTR
    - HTX_SL_P1_LEN
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - htx_get_blk_ptr
    - htx_get_blk_type
    - htx_prepare_blk_expansion
    - HTX_SL_P2_LEN
    - HTX_SL_P3_LEN
    - htx_memcpy
    linkageType: ''
    returnType: struct htx_sl
    signature: "struct htx_sl *htx_replace_stline(struct htx *htx, struct htx_blk
      *blk, const struct ist p1,\n\t\t\t\t  const struct ist p2, const struct ist
      p3)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/htx.c:1109,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:1119,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:1125,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:1126,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/htx.c:1132,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:1133,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:1137,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:1145,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1152,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/htx.c:1157,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1159,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1160,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1161,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1162,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:1166,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1105
    functionDepth: 6
    functionLinenumber: 1105
    functionLinenumberEnd: 1172
    functionName: htx_reserve_max_data
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 1
    functionsReached:
    - htx_change_blk_value_len
    - htx_get_blksz
    - htx_pos_to_addr
    - htx_defrag
    - BUG_ON
    - htx_get_blk_type
    - htx_add_blk
    - htx_free_data_space
    - htx_get_tail_blk
    linkageType: ''
    returnType: struct htx_ret
    signature: struct htx_ret htx_reserve_max_data(struct htx *htx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/htx.c:1187,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/htx.c:1188,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:1197,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:1203,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:1204,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/htx.c:1210,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:1211,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:1215,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:1224,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1231,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:1237,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:1238,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/htx.c:1239,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1241,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1242,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1243,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1244,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:1248,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:1254,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:1254,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 2
    argNames:
    - htx
    - data
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1178
    functionDepth: 6
    functionLinenumber: 1178
    functionLinenumberEnd: 1256
    functionName: htx_add_data
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 10
    functionsReached:
    - htx_change_blk_value_len
    - htx_get_blksz
    - htx_pos_to_addr
    - htx_defrag
    - BUG_ON
    - htx_get_blk_ptr
    - htx_get_blk_type
    - htx_add_blk
    - htx_free_data_space
    - htx_get_tail_blk
    - htx_memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t htx_add_data(struct htx *htx, const struct ist data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/htx.c:1269,1
    - Dst: htx_get_prev_blk
      Src: /src/haproxy/src/htx.c:1273,1
    - Dst: htx_get_prev_blk
      Src: /src/haproxy/src/htx.c:1273,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:1274,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:1282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - htx
    - data
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1265
    functionDepth: 7
    functionLinenumber: 1265
    functionLinenumberEnd: 1287
    functionName: htx_add_last_data
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 2
    functionsReached:
    - htx_get_blk_type
    - htx_get_prev_blk
    - htx_get_blksz
    - htx_add_data_atonce
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_add_last_data(struct htx *htx, struct ist data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_prev_blk
      Src: /src/haproxy/src/htx.c:1297,1
    - Dst: htx_get_prev_blk
      Src: /src/haproxy/src/htx.c:1297,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:1305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - htx
    - blk
    - ref
    argTypes:
    - struct htx*
    - struct htx_blk**
    - struct htx_blk**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1312
    functionName: htx_move_blk_before
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - htx_get_prev_blk
    linkageType: ''
    returnType: void
    signature: void htx_move_blk_before(struct htx *htx, struct htx_blk **blk, struct
      htx_blk **ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/htx.c:1324,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:1324,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:1325,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:1330,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:1331,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:1335,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:1335,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:1335,1
    - Dst: htx_truncate
      Src: /src/haproxy/src/htx.c:1341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct htx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1318
    functionDepth: 6
    functionLinenumber: 1318
    functionLinenumberEnd: 1343
    functionName: htx_append_msg
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htx_get_next_blk
    - htx_get_blksz
    - htx_get_blk_ptr
    - htx_get_blk_type
    - htx_add_blk
    - htx_truncate
    - htx_memcpy
    - htx_get_head_blk
    linkageType: ''
    returnType: int
    signature: int htx_append_msg(struct htx *dst, const struct htx *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/htx.c:1355,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/htx.c:1356,1
    - Dst: b_alloc_small
      Src: /src/haproxy/src/htx.c:1358,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/htx.c:1360,1
    - Dst: htx_xfer
      Src: /src/haproxy/src/htx.c:1361,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/htx.c:1362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - dst
    - src
    - flags
    argTypes:
    - struct buffer*
    - struct buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1352
    functionDepth: 7
    functionLinenumber: 1352
    functionLinenumberEnd: 1364
    functionName: __htx_xfer_to_small_buffer
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - b_alloc_small
    - htx_to_buf
    - htx_xfer
    - htx_used_space
    - htx_from_buf
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *__htx_xfer_to_small_buffer(struct buffer *dst, struct
      buffer *src, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/htx.c:1375,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/htx.c:1376,1
    - Dst: b_alloc_large
      Src: /src/haproxy/src/htx.c:1378,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/htx.c:1380,1
    - Dst: htx_xfer
      Src: /src/haproxy/src/htx.c:1381,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/htx.c:1382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - dst
    - src
    - flags
    argTypes:
    - struct buffer*
    - struct buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1372
    functionDepth: 7
    functionLinenumber: 1372
    functionLinenumberEnd: 1384
    functionName: __htx_xfer_to_large_buffer
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - htx_to_buf
    - b_alloc_large
    - htx_xfer
    - htx_used_space
    - htx_from_buf
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *__htx_xfer_to_large_buffer(struct buffer *dst, struct
      buffer *src, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __htx_xfer_to_small_buffer
      Src: /src/haproxy/src/htx.c:1389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1387
    functionDepth: 8
    functionLinenumber: 1387
    functionLinenumberEnd: 1390
    functionName: htx_move_to_small_buffer
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 1
    functionsReached:
    - __htx_xfer_to_small_buffer
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *htx_move_to_small_buffer(struct buffer *dst, struct
      buffer *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __htx_xfer_to_large_buffer
      Src: /src/haproxy/src/htx.c:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1393
    functionDepth: 8
    functionLinenumber: 1393
    functionLinenumberEnd: 1396
    functionName: htx_move_to_large_buffer
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 1
    functionsReached:
    - __htx_xfer_to_large_buffer
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *htx_move_to_large_buffer(struct buffer *dst, struct
      buffer *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __htx_xfer_to_small_buffer
      Src: /src/haproxy/src/htx.c:1401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1399
    functionDepth: 8
    functionLinenumber: 1399
    functionLinenumberEnd: 1402
    functionName: htx_copy_to_small_buffer
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 1
    functionsReached:
    - __htx_xfer_to_small_buffer
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *htx_copy_to_small_buffer(struct buffer *dst, struct
      buffer *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __htx_xfer_to_large_buffer
      Src: /src/haproxy/src/htx.c:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1405
    functionDepth: 8
    functionLinenumber: 1405
    functionLinenumberEnd: 1408
    functionName: htx_copy_to_large_buffer
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - __htx_xfer_to_large_buffer
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *htx_copy_to_large_buffer(struct buffer *dst, struct
      buffer *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/guid.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - guid
    argTypes:
    - struct guid_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: guid_init
    functionSourceFile: /src/haproxy/src/guid.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void guid_init(struct guid_node *guid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: guid_is_valid_fmt
      Src: /src/haproxy/src/guid.c:36,1
    - Dst: obj_type
      Src: /src/haproxy/src/guid.c:39,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/guid.c:41,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/guid.c:45,1
    - Dst: __objt_server
      Src: /src/haproxy/src/guid.c:49,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/guid.c:54,1
    - Dst: strdup
      Src: /src/haproxy/src/guid.c:58,1
    - Dst: memprintf
      Src: /src/haproxy/src/guid.c:60,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/guid.c:64,1
    - Dst: cebuis_item_insert
      Src: /src/haproxy/src/guid.c:65,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/guid.c:67,1
    - Dst: guid_name
      Src: /src/haproxy/src/guid.c:68,1
    - Dst: memprintf
      Src: /src/haproxy/src/guid.c:69,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/guid.c:73,1
    - Dst: ha_free
      Src: /src/haproxy/src/guid.c:81,1
    - Dst: ha_free
      Src: /src/haproxy/src/guid.c:82,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - objt
    - uid
    - errmsg
    argTypes:
    - enum obj_type*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 84
    functionName: guid_insert
    functionSourceFile: /src/haproxy/src/guid.c
    functionUses: 2
    functionsReached:
    - __objt_server
    - memprintf
    - HA_RWLOCK_WRLOCK
    - guid_is_valid_fmt
    - HA_RWLOCK_WRUNLOCK
    - ha_free
    - __objt_listener
    - __objt_proxy
    - ABORT_NOW
    - guid_name
    - obj_type
    - cebuis_item_insert
    - strdup
    linkageType: ''
    returnType: int
    signature: int guid_insert(enum obj_type *objt, const char *uid, char **errmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/guid.c:91,1
    - Dst: cebuis_item_delete
      Src: /src/haproxy/src/guid.c:94,1
    - Dst: ha_free
      Src: /src/haproxy/src/guid.c:95,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/guid.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - guid
    argTypes:
    - struct guid_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: guid_remove
    functionSourceFile: /src/haproxy/src/guid.c
    functionUses: 1
    functionsReached:
    - cebuis_item_delete
    - HA_RWLOCK_WRUNLOCK
    - ha_free
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void guid_remove(struct guid_node *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/guid.c:111,1
    - Dst: cebuis_item_lookup
      Src: /src/haproxy/src/guid.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - uid
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: guid_lookup
    functionSourceFile: /src/haproxy/src/guid.c
    functionUses: 2
    functionsReached:
    - cebuis_item_lookup
    - BUG_ON
    linkageType: ''
    returnType: struct guid_node
    signature: struct guid_node *guid_lookup(const char *uid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/guid.c:123,1
    - Dst: memprintf
      Src: /src/haproxy/src/guid.c:127,1
    - Dst: invalid_char
      Src: /src/haproxy/src/guid.c:131,1
    - Dst: memprintf
      Src: /src/haproxy/src/guid.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - uid
    - errmsg
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: guid_is_valid_fmt
    functionSourceFile: /src/haproxy/src/guid.c
    functionUses: 2
    functionsReached:
    - invalid_char
    - memprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int guid_is_valid_fmt(const char *uid, char **errmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/src/guid.c:153,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/guid.c:155,1
    - Dst: memprintf
      Src: /src/haproxy/src/guid.c:156,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/guid.c:156,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/guid.c:159,1
    - Dst: memprintf
      Src: /src/haproxy/src/guid.c:160,1
    - Dst: __objt_server
      Src: /src/haproxy/src/guid.c:165,1
    - Dst: memprintf
      Src: /src/haproxy/src/guid.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - guid
    argTypes:
    - struct guid_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 146
    functionDepth: 5
    functionLinenumber: 146
    functionLinenumberEnd: 173
    functionName: guid_name
    functionSourceFile: /src/haproxy/src/guid.c
    functionUses: 1
    functionsReached:
    - __objt_server
    - memprintf
    - __objt_listener
    - __objt_proxy
    - proxy_cap_str
    - obj_type
    linkageType: ''
    returnType: char
    signature: char *guid_name(const struct guid_node *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/guid.c:180,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/guid.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: guid_count
    functionSourceFile: /src/haproxy/src/guid.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int guid_count(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:133,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:136,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:139,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:140,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:149,1
    - Dst: sysctlbyname
      Src: /src/haproxy/src/cpu_topo.c:152,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cpu_topo.c:153,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:156,1
    - Dst: cpuset_getaffinity
      Src: /src/haproxy/src/cpu_topo.c:158,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:162,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:168,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 172
    functionName: ha_cpuset_detect_online
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_zero
    - BUG_ON
    - cpuset_getaffinity
    - read_line_to_trash
    - sysctlbyname
    - parse_cpu_set
    - ha_cpuset_or
    - ha_cpuset_count
    linkageType: ''
    returnType: int
    signature: int ha_cpuset_detect_online(struct hap_cpuset *set)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_detect_bound
      Src: /src/haproxy/src/cpu_topo.c:190,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:194,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:200,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:201,1
    - Dst: ha_cpuset_detect_online
      Src: /src/haproxy/src/cpu_topo.c:211,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:213,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 224
    functionName: cpu_detect_usable
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - ha_cpuset_detect_online
    - ha_cpuset_detect_bound
    - ha_cpuset_isset
    linkageType: ''
    returnType: int
    signature: int cpu_detect_usable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:231,1
    - Dst: sched_getaffinity
      Src: /src/haproxy/src/cpu_topo.c:236,1
    - Dst: cpuset_getaffinity
      Src: /src/haproxy/src/cpu_topo.c:238,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: ha_cpuset_detect_bound
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 3
    functionsReached:
    - ha_cpuset_count
    - ha_cpuset_zero
    - cpuset_getaffinity
    - sched_getaffinity
    linkageType: ''
    returnType: int
    signature: int ha_cpuset_detect_bound(struct hap_cpuset *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: cpu_map_configured
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - ha_cpuset_count
    linkageType: ''
    returnType: int
    signature: int cpu_map_configured(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/cpu_topo.c:284,1
    - Dst: printf
      Src: /src/haproxy/src/cpu_topo.c:296,1
    - Dst: printf
      Src: /src/haproxy/src/cpu_topo.c:299,1
    - Dst: printf
      Src: /src/haproxy/src/cpu_topo.c:305,1
    - Dst: printf
      Src: /src/haproxy/src/cpu_topo.c:309,1
    - Dst: putchar
      Src: /src/haproxy/src/cpu_topo.c:312,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - topo
    argTypes:
    - struct ha_cpu_topo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 314
    functionName: cpu_topo_debug
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - putchar
    - printf
    linkageType: ''
    returnType: void
    signature: void cpu_topo_debug(const struct ha_cpu_topo *topo)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cpu_topo.c:323,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cpu_topo.c:327,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cpu_topo.c:333,1
    - Dst: ha_cpuset_isequal
      Src: /src/haproxy/src/cpu_topo.c:347,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:358,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:360,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:369,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:371,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:379,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:380,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:380,1
    - Dst: print_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:382,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:384,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:386,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cpu_topo.c:388,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 2
    argNames:
    - topo
    - trash
    argTypes:
    - struct ha_cpu_topo*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 393
    functionName: cpu_topo_dump_summary
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 2
    functionsReached:
    - print_cpu_set
    - chunk_appendf
    - ha_cpuset_isequal
    - ha_cpuset_count
    - snprintf
    linkageType: ''
    returnType: void
    signature: void cpu_topo_dump_summary(const struct ha_cpu_topo *topo, struct buffer
      *trash)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: _cmp_cpu_index
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _cmp_cpu_index(const void *a, const void *b)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 46
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 494
    functionName: _cmp_cpu_locality
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _cmp_cpu_locality(const void *a, const void *b)
  - BBCount: 25
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 50
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 583
    functionName: _cmp_cpu_cluster_capa
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _cmp_cpu_cluster_capa(const void *a, const void *b)
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 30
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 639
    functionName: _cmp_cpu_cluster
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _cmp_cpu_cluster(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/haproxy/src/cpu_topo.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - topo
    - entries
    argTypes:
    - struct ha_cpu_topo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 647
    functionName: cpu_reorder_by_index
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void cpu_reorder_by_index(struct ha_cpu_topo *topo, int entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/haproxy/src/cpu_topo.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - topo
    - entries
    argTypes:
    - struct ha_cpu_topo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 653
    functionName: cpu_reorder_by_locality
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void cpu_reorder_by_locality(struct ha_cpu_topo *topo, int entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/haproxy/src/cpu_topo.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - topo
    - entries
    argTypes:
    - struct ha_cpu_topo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 659
    functionName: cpu_reorder_by_cluster
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void cpu_reorder_by_cluster(struct ha_cpu_topo *topo, int entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/haproxy/src/cpu_topo.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - topo
    - entries
    argTypes:
    - struct ha_cpu_topo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 665
    functionName: cpu_reorder_by_cluster_capa
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void cpu_reorder_by_cluster_capa(struct ha_cpu_topo *topo, int entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 675
    functionName: _cmp_cluster_index
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _cmp_cluster_index(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 683
    functionName: _cmp_cluster_capa
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _cmp_cluster_capa(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 694
    functionName: _cmp_cluster_avg_capa
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _cmp_cluster_avg_capa(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/haproxy/src/cpu_topo.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - clusters
    - entries
    argTypes:
    - struct ha_cpu_cluster*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 700
    functionName: cpu_cluster_reorder_by_index
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void cpu_cluster_reorder_by_index(struct ha_cpu_cluster *clusters,
      int entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/haproxy/src/cpu_topo.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - clusters
    - entries
    argTypes:
    - struct ha_cpu_cluster*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: cpu_cluster_reorder_by_capa
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void cpu_cluster_reorder_by_capa(struct ha_cpu_cluster *clusters, int
      entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/haproxy/src/cpu_topo.c:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - clusters
    - entries
    argTypes:
    - struct ha_cpu_cluster*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 712
    functionName: cpu_cluster_reorder_by_avg_capa
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void cpu_cluster_reorder_by_avg_capa(struct ha_cpu_cluster *clusters,
      int entries)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_size
      Src: /src/haproxy/src/cpu_topo.c:720,1
    - Dst: sysconf
      Src: /src/haproxy/src/cpu_topo.c:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 729
    functionName: cpu_topo_get_maxcpus
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - sysconf
    - ha_cpuset_size
    linkageType: ''
    returnType: int
    signature: int cpu_topo_get_maxcpus(void)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:749,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:751,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:757,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:761,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:770,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:772,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:778,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:782,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:791,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:793,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:799,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:803,1
    - Dst: cpu_reorder_by_cluster
      Src: /src/haproxy/src/cpu_topo.c:819,1
    - Dst: cpu_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:876,1
    - Dst: cpu_reorder_by_locality
      Src: /src/haproxy/src/cpu_topo.c:895,1
    - Dst: cpu_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:960,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 130
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 961
    functionName: cpu_fixup_topology
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - ha_cpuset_ffs
    - ha_cpuset_zero
    - cpu_reorder_by_index
    - cpu_reorder_by_cluster
    - ha_cpuset_set
    - cpu_reorder_by_locality
    - ha_cpuset_clr
    linkageType: ''
    returnType: void
    signature: void cpu_fixup_topology(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpu_reorder_by_cluster_capa
      Src: /src/haproxy/src/cpu_topo.c:977,1
    - Dst: cpu_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:1032,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 1033
    functionName: cpu_compose_clusters
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - cpu_reorder_by_cluster_capa
    - cpu_reorder_by_index
    linkageType: ''
    returnType: void
    signature: void cpu_compose_clusters(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1042,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1043,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1049,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1050,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1056,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1057,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1063,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1064,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1036
    functionDepth: 2
    functionLinenumber: 1036
    functionLinenumberEnd: 1067
    functionName: cpu_refine_cpusets
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - ha_cpuset_isset
    linkageType: ''
    returnType: void
    signature: void cpu_refine_cpusets(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - start
    - tsid
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1078
    functionName: find_next_cpu_tsid
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_next_cpu_tsid(int start, int tsid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - start
    - l3id
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1089
    functionName: find_next_cpu_ccx
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_next_cpu_ccx(int start, int l3id)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1112,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1118,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1124,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1151,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1152,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1153,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1158,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1161,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1162,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1163,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1177,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1178,1
    - Dst: find_next_cpu_tsid
      Src: /src/haproxy/src/cpu_topo.c:1184,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1188,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:1191,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1198,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1199,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1206,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1218,1
    - Dst: find_next_cpu_tsid
      Src: /src/haproxy/src/cpu_topo.c:1219,1
    - Dst: find_next_cpu_tsid
      Src: /src/haproxy/src/cpu_topo.c:1220,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1227,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:1229,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1232,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1235,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:1236,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1239,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1240,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1251,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1252,1
    - Dst: find_next_cpu_ccx
      Src: /src/haproxy/src/cpu_topo.c:1253,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1256,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:1258,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cpu_topo.c:1260,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1261,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1262,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1270,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1277,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cpu_topo.c:1282,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 125
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1098
    functionDepth: 10
    functionLinenumber: 1098
    functionLinenumberEnd: 1288
    functionName: cpu_policy_first_usable_node
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - ha_cpuset_ffs
    - ha_cpuset_zero
    - ha_cpuset_clr
    - BUG_ON
    - ha_cpuset_assign
    - ha_diag_warning
    - find_next_cpu_tsid
    - find_next_cpu_ccx
    - ha_cpuset_set
    - ha_cpuset_isset
    linkageType: ''
    returnType: int
    signature: int cpu_policy_first_usable_node(int policy, int tmin, int tmax, int
      gmin, int gmax, char **err)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1302,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1303,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1323,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1324,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1325,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1352,1
    - Dst: find_next_cpu_ccx
      Src: /src/haproxy/src/cpu_topo.c:1357,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1362,1
    - Dst: find_next_cpu_tsid
      Src: /src/haproxy/src/cpu_topo.c:1366,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1368,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1370,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:1371,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1372,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1373,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:1382,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1385,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1386,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1388,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1404,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1408,1
    - Dst: find_next_cpu_tsid
      Src: /src/haproxy/src/cpu_topo.c:1412,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1415,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1416,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:1420,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1421,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1429,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1430,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1434,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1440,1
    - Dst: find_next_cpu_tsid
      Src: /src/haproxy/src/cpu_topo.c:1441,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1443,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1449,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:1450,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1453,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1456,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:1457,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1460,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1461,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1465,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1471,1
    - Dst: find_next_cpu_ccx
      Src: /src/haproxy/src/cpu_topo.c:1472,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1475,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1477,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:1480,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:1482,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1483,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1487,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 129
    argCount: 5
    argNames:
    - cpu_count
    - thr_count
    - node_cpu_set
    - touse_tsid
    - touse_ccx
    argTypes:
    - int
    - int
    - struct hap_cpuset
    - struct hap_cpuset
    - struct hap_cpuset
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1290
    functionDepth: 2
    functionLinenumber: 1290
    functionLinenumberEnd: 1497
    functionName: cpu_policy_assign_threads
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_ffs
    - ha_cpuset_zero
    - ha_cpuset_clr
    - ha_cpuset_assign
    - find_next_cpu_tsid
    - find_next_cpu_ccx
    - ha_cpuset_set
    - ha_cpuset_isset
    linkageType: ''
    returnType: void
    signature: void cpu_policy_assign_threads(int cpu_count, int thr_count, struct
      hap_cpuset node_cpu_set, struct hap_cpuset touse_tsid, struct hap_cpuset touse_ccx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1520,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1526,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1530,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1541,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1542,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1543,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1551,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1562,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1563,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1565,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1567,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1583,1
    - Dst: cpu_policy_assign_threads
      Src: /src/haproxy/src/cpu_topo.c:1585,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cpu_topo.c:1589,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cpu_topo.c:1591,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 54
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1506
    functionDepth: 10
    functionLinenumber: 1506
    functionLinenumberEnd: 1594
    functionName: cpu_policy_group_by_cluster
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - ha_cpuset_zero
    - ha_diag_warning
    - cpu_policy_assign_threads
    - ha_cpuset_set
    - ha_cpuset_isset
    linkageType: ''
    returnType: int
    signature: int cpu_policy_group_by_cluster(int policy, int tmin, int tmax, int
      gmin, int gmax, char **err)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1619,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1625,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1629,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1640,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1641,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1642,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1650,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1661,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1662,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1664,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1666,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1681,1
    - Dst: cpu_policy_assign_threads
      Src: /src/haproxy/src/cpu_topo.c:1683,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cpu_topo.c:1687,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cpu_topo.c:1689,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 54
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1605
    functionDepth: 10
    functionLinenumber: 1605
    functionLinenumberEnd: 1692
    functionName: cpu_policy_group_by_ccx
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - ha_cpuset_zero
    - ha_diag_warning
    - cpu_policy_assign_threads
    - ha_cpuset_set
    - ha_cpuset_isset
    linkageType: ''
    returnType: int
    signature: int cpu_policy_group_by_ccx(int policy, int tmin, int tmax, int gmin,
      int gmax, char **err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1708,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1714,1
    - Dst: cpu_cluster_reorder_by_avg_capa
      Src: /src/haproxy/src/cpu_topo.c:1719,1
    - Dst: cpu_cluster_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:1740,1
    - Dst: cpu_policy_group_by_ccx
      Src: /src/haproxy/src/cpu_topo.c:1745,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1701
    functionDepth: 11
    functionLinenumber: 1701
    functionLinenumberEnd: 1746
    functionName: cpu_policy_performance
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - cpu_policy_group_by_ccx
    - cpu_cluster_reorder_by_index
    - cpu_cluster_reorder_by_avg_capa
    linkageType: ''
    returnType: int
    signature: int cpu_policy_performance(int policy, int tmin, int tmax, int gmin,
      int gmax, char **err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1762,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1768,1
    - Dst: cpu_cluster_reorder_by_avg_capa
      Src: /src/haproxy/src/cpu_topo.c:1773,1
    - Dst: cpu_cluster_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:1793,1
    - Dst: cpu_policy_group_by_ccx
      Src: /src/haproxy/src/cpu_topo.c:1798,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1755
    functionDepth: 11
    functionLinenumber: 1755
    functionLinenumberEnd: 1799
    functionName: cpu_policy_efficiency
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - cpu_policy_group_by_ccx
    - cpu_cluster_reorder_by_index
    - cpu_cluster_reorder_by_avg_capa
    linkageType: ''
    returnType: int
    signature: int cpu_policy_efficiency(int policy, int tmin, int tmax, int gmin,
      int gmax, char **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1813,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1819,1
    - Dst: cpu_cluster_reorder_by_capa
      Src: /src/haproxy/src/cpu_topo.c:1824,1
    - Dst: cpu_cluster_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:1841,1
    - Dst: cpu_policy_group_by_cluster
      Src: /src/haproxy/src/cpu_topo.c:1844,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1806
    functionDepth: 11
    functionLinenumber: 1806
    functionLinenumberEnd: 1845
    functionName: cpu_policy_resource
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - cpu_cluster_reorder_by_capa
    - ha_notice
    - cpu_cluster_reorder_by_index
    - cpu_policy_group_by_cluster
    linkageType: ''
    returnType: int
    signature: int cpu_policy_resource(int policy, int tmin, int tmax, int gmin, int
      gmax, char **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cpu_map_configured
      Src: /src/haproxy/src/cpu_topo.c:1854,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cpu_topo.c:1857,1
    - Dst: fct
      Src: /src/haproxy/src/cpu_topo.c:1876,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1850
    functionDepth: 7
    functionLinenumber: 1850
    functionLinenumberEnd: 1880
    functionName: cpu_apply_policy
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - cpu_map_configured
    - fct
    - ha_notice
    linkageType: ''
    returnType: int
    signature: int cpu_apply_policy(int tmin, int tmax, int gmin, int gmax, char **err)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:1906,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:1921,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:1935,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:1941,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1944,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1946,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1950,1
    - Dst: atoi
      Src: /src/haproxy/src/cpu_topo.c:1952,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1962,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:1966,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1968,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:1978,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1997,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:2000,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:2003,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:2005,1
    - Dst: is_file_present
      Src: /src/haproxy/src/cpu_topo.c:2026,1
    - Dst: is_file_present
      Src: /src/haproxy/src/cpu_topo.c:2027,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:2031,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:2032,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:2035,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:2035,1
    - Dst: memcmp
      Src: /src/haproxy/src/cpu_topo.c:2036,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:2038,1
    - Dst: is_file_present
      Src: /src/haproxy/src/cpu_topo.c:2057,1
    - Dst: is_file_present
      Src: /src/haproxy/src/cpu_topo.c:2058,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:2062,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:2063,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:2066,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:2068,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:2076,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpu_topo.c:2078,1
    - Dst: is_file_present
      Src: /src/haproxy/src/cpu_topo.c:2083,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:2090,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpu_topo.c:2092,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:2114,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:2117,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpu_topo.c:2120,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:2127,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:2130,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpu_topo.c:2132,1
    - Dst: opendir
      Src: /src/haproxy/src/cpu_topo.c:2139,1
    - Dst: readdir
      Src: /src/haproxy/src/cpu_topo.c:2141,1
    - Dst: strncmp
      Src: /src/haproxy/src/cpu_topo.c:2146,1
    - Dst: strtol
      Src: /src/haproxy/src/cpu_topo.c:2154,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:2159,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:2162,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:2164,1
    - Dst: closedir
      Src: /src/haproxy/src/cpu_topo.c:2170,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 147
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 1887
    functionDepth: 3
    functionLinenumber: 1887
    functionLinenumberEnd: 2173
    functionName: cpu_detect_topology
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - memcmp
    - is_dir_present
    - readdir
    - strcmp
    - opendir
    - read_line_to_trash
    - closedir
    - strncmp
    - parse_cpu_set
    - str2uic
    - strtol
    - atoi
    - ha_cpuset_count
    - is_file_present
    - ha_cpuset_isset
    linkageType: ''
    returnType: int
    signature: int cpu_detect_topology(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/haproxy/src/cpu_topo.c:2184,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cpu_topo.c:2185,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2191,1
    - Dst: cpuset_getaffinity
      Src: /src/haproxy/src/cpu_topo.c:2193,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:2198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2177
    functionDepth: 2
    functionLinenumber: 2177
    functionLinenumberEnd: 2203
    functionName: cpu_detect_topology
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - ha_cpuset_zero
    - cpuset_getaffinity
    - BUG_ON
    - sysctlbyname
    - ha_cpuset_isset
    linkageType: ''
    returnType: int
    signature: int cpu_detect_topology(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2207
    functionDepth: 0
    functionLinenumber: 2207
    functionLinenumberEnd: 2210
    functionName: cpu_detect_topology
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpu_detect_topology(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cpu_topo.c:2223,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2227,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2234,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2240,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2242,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2244,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2252,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2254,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2217
    functionDepth: 7
    functionLinenumber: 2217
    functionLinenumberEnd: 2256
    functionName: cfg_parse_cpu_affinity
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_cpu_affinity(char **args, int section_type, struct proxy
      *curpx,\n                             const struct proxy *defpx, const char
      *file, int line,\n\t\t\t     char **err)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2270,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2275,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2275,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2277,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:2282,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:2286,1
    - Dst: ha_cpuset_and
      Src: /src/haproxy/src/cpu_topo.c:2288,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2291,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2291,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2293,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:2298,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:2302,1
    - Dst: ha_cpuset_and
      Src: /src/haproxy/src/cpu_topo.c:2304,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2307,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2307,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2309,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:2314,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:2318,1
    - Dst: ha_cpuset_and
      Src: /src/haproxy/src/cpu_topo.c:2320,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2323,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2323,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2325,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:2330,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:2334,1
    - Dst: ha_cpuset_and
      Src: /src/haproxy/src/cpu_topo.c:2336,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2339,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2339,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2341,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:2346,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:2350,1
    - Dst: ha_cpuset_and
      Src: /src/haproxy/src/cpu_topo.c:2352,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2357,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2363,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2374,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2379,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 103
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2261
    functionDepth: 5
    functionLinenumber: 2261
    functionLinenumberEnd: 2382
    functionName: cfg_parse_cpu_set
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ha_cpuset_and
    - strcmp
    - parse_cpu_set
    - ha_cpuset_or
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_cpu_set(char **args, int section_type, struct proxy
      *curpx,\n                                   const struct proxy *defpx, const
      char *file, int line,\n                                   char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cpu_topo.c:2393,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2397,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2398,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2400,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2401,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2405,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:2411,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2418,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:2420,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2387
    functionDepth: 7
    functionLinenumber: 2387
    functionLinenumberEnd: 2427
    functionName: cfg_parse_cpu_policy
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cfg_parse_cpu_policy(char **args, int section_type, struct proxy
      *curpx,\n\t\t\t\tconst struct proxy *defpx, const char *file, int line,\n\t\t\t\tchar
      **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_topo_get_maxcpus
      Src: /src/haproxy/src/cpu_topo.c:2436,1
    - Dst: calloc
      Src: /src/haproxy/src/cpu_topo.c:2439,1
    - Dst: malloc
      Src: /src/haproxy/src/cpu_topo.c:2444,1
    - Dst: malloc
      Src: /src/haproxy/src/cpu_topo.c:2449,1
    - Dst: memset
      Src: /src/haproxy/src/cpu_topo.c:2458,1
    - Dst: memset
      Src: /src/haproxy/src/cpu_topo.c:2462,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2467,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2468,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2469,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2470,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2471,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2472,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2473,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2474,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2475,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2476,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:2480,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:2481,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:2482,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:2483,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:2484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2432
    functionDepth: 2
    functionLinenumber: 2432
    functionLinenumberEnd: 2488
    functionName: cpu_topo_alloc
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - malloc
    - ha_cpuset_zero
    - cpu_topo_get_maxcpus
    - memset
    - calloc
    - ha_cpuset_set
    linkageType: ''
    returnType: int
    signature: int cpu_topo_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/cpu_topo.c:2492,1
    - Dst: ha_free
      Src: /src/haproxy/src/cpu_topo.c:2493,1
    - Dst: ha_free
      Src: /src/haproxy/src/cpu_topo.c:2494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2490
    functionDepth: 1
    functionLinenumber: 2490
    functionLinenumberEnd: 2495
    functionName: cpu_topo_deinit
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: void
    signature: void cpu_topo_deinit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - conf
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: FLT_TRACE
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_TRACE(conf, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - conf
    - ','
    - strm
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: FLT_STRM_TRACE
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_STRM_TRACE(conf, strm, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: channel_label
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      channel_label(const struct channel *chn)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_trace.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: proxy_mode
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 3
    functionsReached:
    - strm_fe
    linkageType: ''
    returnType: char
    signature: 'char *

      proxy_mode(const struct stream *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: stream_pos
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      stream_pos(const struct stream *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: filter_type
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      filter_type(const struct filter *f)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:96,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:98,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:101,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:103,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:107,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:109,1
    - Dst: isprint
      Src: /src/haproxy/src/flt_trace.c:109,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: trace_hexdump
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - fprintf
    - isprint
    linkageType: ''
    returnType: void
    signature: void trace_hexdump(struct ist ist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_contig_data
      Src: /src/haproxy/src/flt_trace.c:122,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/flt_trace.c:123,1
    - Dst: memcpy
      Src: /src/haproxy/src/flt_trace.c:126,1
    - Dst: b_peek
      Src: /src/haproxy/src/flt_trace.c:126,1
    - Dst: memcpy
      Src: /src/haproxy/src/flt_trace.c:127,1
    - Dst: b_orig
      Src: /src/haproxy/src/flt_trace.c:127,1
    - Dst: trace_hexdump
      Src: /src/haproxy/src/flt_trace.c:128,1
    - Dst: ist2
      Src: /src/haproxy/src/flt_trace.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - offset
    - len
    argTypes:
    - struct buffer*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 129
    functionName: trace_raw_hexdump
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - trace_hexdump
    - b_peek
    - ist2
    - b_orig
    - memcpy
    - b_contig_data
    linkageType: ''
    returnType: void
    signature: void trace_raw_hexdump(struct buffer *buf, unsigned int offset, unsigned
      int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/flt_trace.c:136,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_trace.c:136,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_trace.c:137,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/flt_trace.c:138,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/flt_trace.c:146,1
    - Dst: istadv
      Src: /src/haproxy/src/flt_trace.c:147,1
    - Dst: isttrim
      Src: /src/haproxy/src/flt_trace.c:150,1
    - Dst: trace_hexdump
      Src: /src/haproxy/src/flt_trace.c:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - htx
    - offset
    - len
    argTypes:
    - struct htx*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 155
    functionName: trace_htx_hexdump
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - trace_hexdump
    - htx_get_next_blk
    - htx_get_blksz
    - istadv
    - isttrim
    - htx_get_first_blk
    - htx_get_blk_type
    - htx_get_blk_value
    linkageType: ''
    returnType: void
    signature: void trace_htx_hexdump(struct htx *htx, unsigned int offset, unsigned
      int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_find_offset
      Src: /src/haproxy/src/flt_trace.c:161,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_trace.c:165,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/flt_trace.c:166,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_trace.c:167,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_trace.c:170,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_trace.c:172,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/flt_trace.c:174,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_trace.c:176,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - htx
    - offset
    - len
    argTypes:
    - struct htx*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: trace_get_htx_datalen
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - htx_find_offset
    - htx_get_blk_type
    - htx_get_next_blk
    - htx_get_blksz
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int trace_get_htx_datalen(struct htx *htx, unsigned int offset,
      unsigned int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:191,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:193,1
    - Dst: FLT_TRACE
      Src: /src/haproxy/src/flt_trace.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 185
    functionDepth: 5
    functionLinenumber: 185
    functionLinenumberEnd: 204
    functionName: trace_init
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_TRACE
    - memprintf
    linkageType: ''
    returnType: int
    signature: int trace_init(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_TRACE
      Src: /src/haproxy/src/flt_trace.c:213,1
    - Dst: free
      Src: /src/haproxy/src/flt_trace.c:214,1
    - Dst: free
      Src: /src/haproxy/src/flt_trace.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: trace_deinit
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_TRACE
    - free
    linkageType: ''
    returnType: void
    signature: void trace_deinit(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: trace_check
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int trace_check(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_TRACE
      Src: /src/haproxy/src/flt_trace.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: trace_init_per_thread
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_TRACE
    linkageType: ''
    returnType: int
    signature: int trace_init_per_thread(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_TRACE
      Src: /src/haproxy/src/flt_trace.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: trace_deinit_per_thread
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_TRACE
    linkageType: ''
    returnType: void
    signature: void trace_deinit_per_thread(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:255,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:257,1
    - Dst: filter_type
      Src: /src/haproxy/src/flt_trace.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: trace_attach
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_CONF
    - filter_type
    - FLT_STRM_TRACE
    linkageType: ''
    returnType: int
    signature: int trace_attach(struct stream *s, struct filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:268,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:270,1
    - Dst: filter_type
      Src: /src/haproxy/src/flt_trace.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: trace_detach
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_CONF
    - filter_type
    - FLT_STRM_TRACE
    linkageType: ''
    returnType: void
    signature: void trace_detach(struct stream *s, struct filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:278,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: trace_stream_start
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_CONF
    - FLT_STRM_TRACE
    linkageType: ''
    returnType: int
    signature: int trace_stream_start(struct stream *s, struct filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:291,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - filter
    - be
    argTypes:
    - struct stream*
    - struct filter*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 296
    functionName: trace_stream_set_backend
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_CONF
    - FLT_STRM_TRACE
    linkageType: ''
    returnType: int
    signature: "int trace_stream_set_backend(struct stream *s, struct filter *filter,\n\t\t\t
      struct proxy *be)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:302,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: trace_stream_stop
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_CONF
    - FLT_STRM_TRACE
    linkageType: ''
    returnType: void
    signature: void trace_stream_stop(struct stream *s, struct filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:312,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 316
    functionName: trace_check_timeouts
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_CONF
    - FLT_STRM_TRACE
    linkageType: ''
    returnType: void
    signature: void trace_check_timeouts(struct stream *s, struct filter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:326,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:328,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:330,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:330,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:330,1
    - Dst: register_data_filter
      Src: /src/haproxy/src/flt_trace.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - s
    - filter
    - chn
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 335
    functionName: trace_chn_start_analyze
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - stream_pos
    - FLT_CONF
    - proxy_mode
    - FLT_STRM_TRACE
    - register_data_filter
    - channel_label
    linkageType: ''
    returnType: int
    signature: "int trace_chn_start_analyze(struct stream *s, struct filter *filter,\n\t\t\tstruct
      channel *chn)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:342,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:404,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:407,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:407,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:407,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 4
    argNames:
    - s
    - filter
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 410
    functionName: trace_chn_analyze
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - stream_pos
    - FLT_CONF
    - proxy_mode
    - FLT_STRM_TRACE
    - channel_label
    linkageType: ''
    returnType: int
    signature: "int trace_chn_analyze(struct stream *s, struct filter *filter,\n\t\t
      \ struct channel *chn, unsigned an_bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:417,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:419,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:421,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:421,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - filter
    - chn
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 423
    functionName: trace_chn_end_analyze
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - stream_pos
    - FLT_CONF
    - proxy_mode
    - FLT_STRM_TRACE
    - channel_label
    linkageType: ''
    returnType: int
    signature: "int trace_chn_end_analyze(struct stream *s, struct filter *filter,\n\t\t
      \     struct channel *chn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:432,1
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_trace.c:433,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/flt_trace.c:434,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:437,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:439,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:439,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:439,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/flt_trace.c:440,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/flt_trace.c:440,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/flt_trace.c:441,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/flt_trace.c:441,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/flt_trace.c:442,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/flt_trace.c:442,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/flt_trace.c:444,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/flt_trace.c:444,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/flt_trace.c:445,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_trace.c:446,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/flt_trace.c:454,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/flt_trace.c:455,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:456,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 460
    functionName: trace_http_headers
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - channel_label
    - FLT_CONF
    - htx_get_blk_name
    - HTX_SL_P1_LEN
    - FLT_STRM_TRACE
    - htx_get_blk_type
    - htxbuf
    - http_get_stline
    - htx_get_first
    - proxy_mode
    - HTX_SL_P3_LEN
    - htx_get_blk_value
    - htx_get_next
    - stream_pos
    - HTX_SL_P2_PTR
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - htx_get_blk
    - HTX_SL_P2_LEN
    linkageType: ''
    returnType: int
    signature: "int trace_http_headers(struct stream *s, struct filter *filter,\n\t\t
      \  struct http_msg *msg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:466,1
    - Dst: trace_get_htx_datalen
      Src: /src/haproxy/src/flt_trace.c:470,1
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_trace.c:470,1
    - Dst: ha_random
      Src: /src/haproxy/src/flt_trace.c:473,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:481,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:484,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:484,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:484,1
    - Dst: trace_htx_hexdump
      Src: /src/haproxy/src/flt_trace.c:488,1
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_trace.c:488,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/flt_trace.c:491,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 5
    argNames:
    - s
    - filter
    - msg
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 493
    functionName: trace_http_payload
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - stream_pos
    - htxbuf
    - trace_get_htx_datalen
    - channel_label
    - task_wakeup
    - proxy_mode
    - FLT_STRM_TRACE
    - ha_random
    - trace_htx_hexdump
    - FLT_CONF
    linkageType: ''
    returnType: int
    signature: "int trace_http_payload(struct stream *s, struct filter *filter, struct
      http_msg *msg,\n\t\t   unsigned int offset, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:499,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:501,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:503,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:503,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 505
    functionName: trace_http_end
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - stream_pos
    - FLT_CONF
    - proxy_mode
    - FLT_STRM_TRACE
    - channel_label
    linkageType: ''
    returnType: int
    signature: "int trace_http_end(struct stream *s, struct filter *filter,\n\t       struct
      http_msg *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:511,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:513,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:515,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:515,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 516
    functionName: trace_http_reset
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - stream_pos
    - FLT_CONF
    - proxy_mode
    - FLT_STRM_TRACE
    - channel_label
    linkageType: ''
    returnType: void
    signature: "void trace_http_reset(struct stream *s, struct filter *filter,\n\t\t
      struct http_msg *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:522,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:524,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:525,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - filter
    - status
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - short
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 526
    functionName: trace_http_reply
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - stream_pos
    - FLT_CONF
    - proxy_mode
    - FLT_STRM_TRACE
    linkageType: ''
    returnType: void
    signature: "void trace_http_reply(struct stream *s, struct filter *filter, short
      status,\n\t\t const struct buffer *msg)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:535,1
    - Dst: trace_get_htx_datalen
      Src: /src/haproxy/src/flt_trace.c:540,1
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_trace.c:540,1
    - Dst: ha_random
      Src: /src/haproxy/src/flt_trace.c:543,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:551,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:554,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:554,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:554,1
    - Dst: trace_htx_hexdump
      Src: /src/haproxy/src/flt_trace.c:558,1
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_trace.c:558,1
    - Dst: ha_random
      Src: /src/haproxy/src/flt_trace.c:563,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:567,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:570,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:570,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:570,1
    - Dst: trace_raw_hexdump
      Src: /src/haproxy/src/flt_trace.c:574,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/flt_trace.c:578,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 5
    argNames:
    - s
    - filter
    - chn
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 580
    functionName: trace_tcp_payload
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - stream_pos
    - htxbuf
    - trace_get_htx_datalen
    - channel_label
    - task_wakeup
    - proxy_mode
    - FLT_STRM_TRACE
    - trace_raw_hexdump
    - ha_random
    - trace_htx_hexdump
    - FLT_CONF
    linkageType: ''
    returnType: int
    signature: "int trace_tcp_payload(struct stream *s, struct filter *filter, struct
      channel *chn,\n\t\t  unsigned int offset, unsigned int len)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/flt_trace.c:625,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:627,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:632,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:636,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:638,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:643,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_trace.c:647,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:649,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:654,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:656,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:658,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:660,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:662,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:665,1
    - Dst: atoll
      Src: /src/haproxy/src/flt_trace.c:669,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:671,1
    - Dst: free
      Src: /src/haproxy/src/flt_trace.c:691,1
    - Dst: free
      Src: /src/haproxy/src/flt_trace.c:692,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 618
    functionDepth: 5
    functionLinenumber: 618
    functionLinenumberEnd: 694
    functionName: parse_trace_flt
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoll
    - calloc
    - strcmp
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int parse_trace_flt(char **args, int *cur_arg, struct proxy *px,\n
      \               struct flt_conf *fconf, char **err, void *private)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: field_origin
      Src: /src/haproxy/src/stats-json.c:18,1
    - Dst: field_nature
      Src: /src/haproxy/src/stats-json.c:27,1
    - Dst: field_scope
      Src: /src/haproxy/src/stats-json.c:43,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-json.c:52,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 82
    argCount: 2
    argNames:
    - out
    - f
    argTypes:
    - struct buffer*
    - struct field*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 58
    functionName: stats_emit_json_field_tags
    functionSourceFile: /src/haproxy/src/stats-json.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - field_nature
    - field_scope
    - field_origin
    linkageType: ''
    returnType: int
    signature: int stats_emit_json_field_tags(struct buffer *out, const struct field
      *f)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: field_format
      Src: /src/haproxy/src/stats-json.c:75,1
    - Dst: snprintf
      Src: /src/haproxy/src/stats-json.c:78,1
    - Dst: snprintf
      Src: /src/haproxy/src/stats-json.c:81,1
    - Dst: snprintf
      Src: /src/haproxy/src/stats-json.c:87,1
    - Dst: snprintf
      Src: /src/haproxy/src/stats-json.c:92,1
    - Dst: flt_trim
      Src: /src/haproxy/src/stats-json.c:96,1
    - Dst: snprintf
      Src: /src/haproxy/src/stats-json.c:96,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-json.c:99,1
    - Dst: snprintf
      Src: /src/haproxy/src/stats-json.c:102,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-json.c:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - out
    - f
    argTypes:
    - struct buffer*
    - struct field*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 113
    functionName: stats_emit_json_data_field
    functionSourceFile: /src/haproxy/src/stats-json.c
    functionUses: 0
    functionsReached:
    - field_str
    - chunk_appendf
    - flt_trim
    - field_format
    - snprintf
    linkageType: ''
    returnType: int
    signature: int stats_emit_json_data_field(struct buffer *out, const struct field
      *f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-json.c:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 8
    argNames:
    - out
    - stat
    - name
    - pos
    - field_type
    - iid
    - sid
    - pid
    argTypes:
    - struct buffer*
    - struct field*
    - char*
    - int
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 141
    functionName: stats_print_proxy_field_json
    functionSourceFile: /src/haproxy/src/stats-json.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void stats_print_proxy_field_json(struct buffer *out,\n                                         const
      struct field *stat,\n                                         const char *name,\n
      \                                        int pos,\n                                         uint32_t
      field_type,\n                                         uint32_t iid,\n                                         uint32_t
      sid,\n                                         uint32_t pid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-json.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - stat
    - name
    - pos
    argTypes:
    - struct buffer*
    - struct field*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: stats_print_rslv_field_json
    functionSourceFile: /src/haproxy/src/stats-json.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void stats_print_rslv_field_json(struct buffer *out,\n                                        const
      struct field *stat,\n                                        const char *name,\n
      \                                       int pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: stats_dump_json_header
    functionSourceFile: /src/haproxy/src/stats-json.c
    functionUses: 1
    functionsReached:
    - chunk_strcat
    linkageType: ''
    returnType: void
    signature: void stats_dump_json_header(struct buffer *out)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:173,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:175,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:185,1
    - Dst: stats_print_proxy_field_json
      Src: /src/haproxy/src/stats-json.c:191,1
    - Dst: stats_print_rslv_field_json
      Src: /src/haproxy/src/stats-json.c:199,1
    - Dst: stats_emit_json_field_tags
      Src: /src/haproxy/src/stats-json.c:207,1
    - Dst: stats_emit_json_data_field
      Src: /src/haproxy/src/stats-json.c:210,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:213,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:218,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats-json.c:227,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:229,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-json.c:230,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 4
    argNames:
    - out
    - line
    - stats_count
    - ctx
    argTypes:
    - struct buffer*
    - struct field*
    - size_t
    - struct show_stat_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 236
    functionName: stats_dump_fields_json
    functionSourceFile: /src/haproxy/src/stats-json.c
    functionUses: 1
    functionsReached:
    - stats_print_rslv_field_json
    - chunk_strcat
    - chunk_appendf
    - stats_emit_json_field_tags
    - chunk_reset
    - stats_print_proxy_field_json
    - stats_emit_json_data_field
    linkageType: ''
    returnType: int
    signature: "int stats_dump_fields_json(struct buffer *out,\n                           const
      struct field *line, size_t stats_count,\n                           struct show_stat_ctx
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: stats_dump_json_end
    functionSourceFile: /src/haproxy/src/stats-json.c
    functionUses: 1
    functionsReached:
    - chunk_strcat
    linkageType: ''
    returnType: void
    signature: void stats_dump_json_end(struct buffer *out)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:254,1
    - Dst: field_format
      Src: /src/haproxy/src/stats-json.c:261,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:264,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-json.c:269,1
    - Dst: stats_emit_json_field_tags
      Src: /src/haproxy/src/stats-json.c:277,1
    - Dst: stats_emit_json_data_field
      Src: /src/haproxy/src/stats-json.c:280,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:283,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:288,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats-json.c:296,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-json.c:297,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 3
    argNames:
    - out
    - info
    - ctx
    argTypes:
    - struct buffer*
    - struct field*
    - struct show_stat_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 303
    functionName: stats_dump_json_info_fields
    functionSourceFile: /src/haproxy/src/stats-json.c
    functionUses: 1
    functionsReached:
    - chunk_strcat
    - chunk_appendf
    - stats_emit_json_field_tags
    - field_format
    - chunk_reset
    - stats_emit_json_data_field
    linkageType: ''
    returnType: int
    signature: "int stats_dump_json_info_fields(struct buffer *out,\n                                const
      struct field *info,\n                                struct show_stat_ctx *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-json.c:317,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats-json.c:509,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-json.c:510,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-json.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 514
    functionName: stats_dump_json_schema
    functionSourceFile: /src/haproxy/src/stats-json.c
    functionUses: 1
    functionsReached:
    - chunk_strcat
    - chunk_appendf
    - chunk_reset
    linkageType: ''
    returnType: void
    signature: void stats_dump_json_schema(struct buffer *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats-json.c:525,1
    - Dst: stats_dump_json_schema
      Src: /src/haproxy/src/stats-json.c:527,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stats-json.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 533
    functionName: stats_dump_json_schema_to_buffer
    functionSourceFile: /src/haproxy/src/stats-json.c
    functionUses: 1
    functionsReached:
    - applet_putchk
    - stats_dump_json_schema
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int stats_dump_json_schema_to_buffer(struct appctx *appctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:64,1
    - Dst: stat
      Src: /src/haproxy/src/cfgparse-ssl.c:68,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:69,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/cfgparse-ssl.c:73,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:74,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:80,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:83,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:86,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:87,1
    - Dst: ssl_free_global_issuers
      Src: /src/haproxy/src/cfgparse-ssl.c:88,1
    - Dst: scandir
      Src: /src/haproxy/src/cfgparse-ssl.c:90,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:92,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-ssl.c:93,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:101,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:102,1
    - Dst: stat
      Src: /src/haproxy/src/cfgparse-ssl.c:103,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-ssl.c:104,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-ssl.c:104,1
    - Dst: S_ISREG
      Src: /src/haproxy/src/cfgparse-ssl.c:107,1
    - Dst: BIO_new
      Src: /src/haproxy/src/cfgparse-ssl.c:110,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/cfgparse-ssl.c:110,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/cfgparse-ssl.c:113,1
    - Dst: ssl_load_global_issuer_from_BIO
      Src: /src/haproxy/src/cfgparse-ssl.c:115,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-ssl.c:117,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:118,1
    - Dst: BIO_free
      Src: /src/haproxy/src/cfgparse-ssl.c:122,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:124,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 53
    functionDepth: 9
    functionLinenumber: 53
    functionLinenumberEnd: 127
    functionName: ssl_load_global_issuers_from_path
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - scandir
    - stat
    - free
    - S_ISREG
    - BIO_new
    - BIO_read_filename
    - snprintf
    - strerror
    - ha_free
    - strcmp
    - ssl_free_global_issuers
    - too_many_args
    - BIO_s_file
    - S_ISDIR
    - ssl_load_global_issuer_from_BIO
    - BIO_free
    - strlen
    - ha_warning
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ssl_load_global_issuers_from_path(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t      const struct proxy *defpx, const char
      *file, int line,\n\t\t\t\t\t      char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: ssl_parse_global_ssl_async
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_ssl_async(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:158,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:164,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:169,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:170,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:175,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:178,1
    - Dst: ssl_init_single_engine
      Src: /src/haproxy/src/cfgparse-ssl.c:181,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:185,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    functionLinenumberEnd: 191
    functionName: ssl_parse_global_ssl_engine
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ssl_init_single_engine
    - strcmp
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_ssl_engine(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:204,1
    - Dst: EVP_set_default_properties
      Src: /src/haproxy/src/cfgparse-ssl.c:208,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:213,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/cfgparse-ssl.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 196
    functionDepth: 5
    functionLinenumber: 196
    functionLinenumberEnd: 216
    functionName: ssl_parse_global_ssl_propquery
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - OpenSSL_version
    - memprintf
    - EVP_set_default_properties
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_ssl_propquery(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t  const struct proxy *defpx, const char *file,
      int line,\n\t\t\t\t\t  char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:229,1
    - Dst: ssl_init_provider
      Src: /src/haproxy/src/cfgparse-ssl.c:233,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:238,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/cfgparse-ssl.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 241
    functionName: ssl_parse_global_ssl_provider
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - OpenSSL_version
    - memprintf
    - ssl_init_provider
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_ssl_provider(char **args, int section_type, struct
      proxy *curpx,\n\t\t\t\t\t const struct proxy *defpx, const char *file, int line,\n\t\t\t\t\t
      char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:252,1
    - Dst: OSSL_PROVIDER_set_default_search_path
      Src: /src/haproxy/src/cfgparse-ssl.c:256,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:260,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/cfgparse-ssl.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 5
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: ssl_parse_global_ssl_provider_path
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - OpenSSL_version
    - OSSL_PROVIDER_set_default_search_path
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_ssl_provider_path(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t      const struct proxy *defpx, const char
      *file, int line,\n\t\t\t\t\t      char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:276,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:280,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:284,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 268
    functionDepth: 7
    functionLinenumber: 268
    functionLinenumberEnd: 287
    functionName: ssl_parse_global_ciphers
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_ciphers(char **args, int section_type, struct
      proxy *curpx,\n                                    const struct proxy *defpx,
      const char *file, int line,\n                                    char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:301,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:305,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:309,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:310,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 317
    functionName: ssl_parse_global_ciphersuites
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_ciphersuites(char **args, int section_type, struct
      proxy *curpx,\n                                    const struct proxy *defpx,
      const char *file, int line,\n                                    char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:328,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/cfgparse-ssl.c:328,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:334,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:338,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:342,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 323
    functionDepth: 7
    functionLinenumber: 323
    functionLinenumberEnd: 346
    functionName: ssl_parse_global_curves
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - OpenSSL_version
    - too_many_args
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_curves(char **args, int section_type, struct
      proxy *curpx,\n                                   const struct proxy *defpx,
      const char *file, int line,\n\t\t\t\t   char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:357,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/cfgparse-ssl.c:357,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:364,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:368,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:372,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 352
    functionDepth: 7
    functionLinenumber: 352
    functionLinenumberEnd: 376
    functionName: ssl_parse_global_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - OpenSSL_version
    - too_many_args
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_sigalgs(char **args, int section_type, struct
      proxy *curpx,\n                                   const struct proxy *defpx,
      const char *file, int line,\n\t\t\t\t   char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:387,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/cfgparse-ssl.c:387,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:394,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:398,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:402,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 382
    functionDepth: 7
    functionLinenumber: 382
    functionLinenumberEnd: 406
    functionName: ssl_parse_global_client_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - OpenSSL_version
    - too_many_args
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_client_sigalgs(char **args, int section_type,
      struct proxy *curpx,\n                                   const struct proxy
      *defpx, const char *file, int line,\n\t\t\t\t   char **err)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:417,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:419,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:421,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:423,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:425,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:427,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:429,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-ssl.c:431,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:435,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:439,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:443,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-ssl.c:447,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:449,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 411
    functionDepth: 9
    functionLinenumber: 411
    functionLinenumberEnd: 453
    functionName: ssl_parse_global_int
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - ha_warning
    - atoi
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_int(char **args, int section_type, struct proxy
      *curpx,\n                                const struct proxy *defpx, const char
      *file, int line,\n                                char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_parse_global_int
      Src: /src/haproxy/src/cfgparse-ssl.c:461,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:466,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse-ssl.c:470,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 455
    functionDepth: 10
    functionLinenumber: 455
    functionLinenumberEnd: 476
    functionName: ssl_parse_global_capture_buffer
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_parse_global_int
    - memprintf
    - create_pool
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_capture_buffer(char **args, int section_type,
      struct proxy *curpx,\n                                           const struct
      proxy *defpx, const char *file, int line,\n                                           char
      **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:485,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:488,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:490,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:493,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse-ssl.c:500,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:502,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse-ssl.c:506,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 480
    functionDepth: 7
    functionLinenumber: 480
    functionLinenumberEnd: 513
    functionName: ssl_parse_global_keylog
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    - create_pool
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_keylog(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 515
    functionDepth: 5
    functionLinenumber: 515
    functionLinenumberEnd: 521
    functionName: ssl_parse_global_keylog
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_keylog(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:530,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:533,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:535,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 526
    functionDepth: 7
    functionLinenumber: 526
    functionLinenumberEnd: 542
    functionName: ssl_parse_certificate_compression
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_certificate_compression(char **args, int section_type,
      struct proxy *curpx,\n                                             const struct
      proxy *defpx, const char *file, int line,\n                                             char
      **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 544
    functionDepth: 5
    functionLinenumber: 544
    functionLinenumberEnd: 551
    functionName: ssl_parse_certificate_compression
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_certificate_compression(char **args, int section_type,
      struct proxy *curpx,\n                                             const struct
      proxy *defpx, const char *file, int line,\n                                             char
      **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 557
    functionDepth: 7
    functionLinenumber: 557
    functionLinenumberEnd: 566
    functionName: ssl_parse_global_private_cache
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - too_many_args
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_private_cache(char **args, int section_type,
      struct proxy *curpx,\n                                          const struct
      proxy *defpx, const char *file, int line,\n                                          char
      **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:577,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:581,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-ssl.c:585,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:587,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:592,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:597,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 571
    functionDepth: 7
    functionLinenumber: 571
    functionLinenumberEnd: 601
    functionName: ssl_parse_global_lifetime
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_lifetime(char **args, int section_type, struct
      proxy *curpx,\n                                     const struct proxy *defpx,
      const char *file, int line,\n                                     char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:611,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:615,1
    - Dst: ssl_sock_load_global_dh_param_from_file
      Src: /src/haproxy/src/cfgparse-ssl.c:619,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:620,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:625,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/cfgparse-ssl.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 606
    functionDepth: 7
    functionLinenumber: 606
    functionLinenumberEnd: 628
    functionName: ssl_parse_global_dh_param_file
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - OpenSSL_version
    - too_many_args
    - memprintf
    - ssl_sock_load_global_dh_param_from_file
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_dh_param_file(char **args, int section_type,
      struct proxy *curpx,\n                                       const struct proxy
      *defpx, const char *file, int line,\n                                       char
      **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:639,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:643,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-ssl.c:647,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:649,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:654,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/cfgparse-ssl.c:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 633
    functionDepth: 7
    functionLinenumber: 633
    functionLinenumberEnd: 658
    functionName: ssl_parse_global_default_dh
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - atoi
    - too_many_args
    - memprintf
    - OpenSSL_version
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_default_dh(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:677,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:680,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:683,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:686,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:689,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:692,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:699,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:718,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:722,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 665
    functionDepth: 5
    functionLinenumber: 665
    functionLinenumberEnd: 724
    functionName: ssl_parse_global_extra_files
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_extra_files(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 734
    functionName: ssl_parse_global_extra_noext
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_extra_noext(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:746,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:761,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:763,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:767,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:770,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:777,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:779,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:788,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:790,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 738
    functionDepth: 5
    functionLinenumber: 738
    functionLinenumberEnd: 793
    functionName: ssl_parse_global_passphrase_cmd
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ha_free
    - calloc
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_passphrase_cmd(char **args, int section_type,
      struct proxy *curpx,\n\t\t\t\t\t   const struct proxy *defpx, const char *file,
      int line,\n\t\t\t\t\t   char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:802,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:807,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:809,1
    - Dst: ssl_store_load_locations_file
      Src: /src/haproxy/src/cfgparse-ssl.c:811,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - args
    - cur_arg
    - ca_file_p
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - char**
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 799
    functionDepth: 5
    functionLinenumber: 799
    functionLinenumberEnd: 816
    functionName: ssl_bind_parse_ca_file_common
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_store_load_locations_file
    - memprintf
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_ca_file_common(char **args, int cur_arg, char **ca_file_p,
      int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_ca_file_common
      Src: /src/haproxy/src/cfgparse-ssl.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 819
    functionDepth: 6
    functionLinenumber: 819
    functionLinenumberEnd: 822
    functionName: ssl_bind_parse_ca_file
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_bind_parse_ca_file_common
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_ca_file(char **args, int cur_arg, struct proxy *px,
      struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_ca_file
      Src: /src/haproxy/src/cfgparse-ssl.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 823
    functionDepth: 7
    functionLinenumber: 823
    functionLinenumberEnd: 826
    functionName: bind_parse_ca_file
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_ca_file
    linkageType: ''
    returnType: int
    signature: int bind_parse_ca_file(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_ca_file_common
      Src: /src/haproxy/src/cfgparse-ssl.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 829
    functionDepth: 6
    functionLinenumber: 829
    functionLinenumberEnd: 832
    functionName: ssl_bind_parse_ca_verify_file
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_bind_parse_ca_file_common
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_ca_verify_file(char **args, int cur_arg, struct
      proxy *px, struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_ca_verify_file
      Src: /src/haproxy/src/cfgparse-ssl.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 833
    functionDepth: 7
    functionLinenumber: 833
    functionLinenumberEnd: 836
    functionName: bind_parse_ca_verify_file
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_ca_verify_file
    linkageType: ''
    returnType: int
    signature: int bind_parse_ca_verify_file(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:842,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:847,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:849,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 839
    functionDepth: 5
    functionLinenumber: 839
    functionLinenumberEnd: 852
    functionName: bind_parse_ca_sign_file
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_ca_sign_file(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:858,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 855
    functionDepth: 5
    functionLinenumber: 855
    functionLinenumberEnd: 863
    functionName: bind_parse_ca_sign_pass
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_ca_sign_pass(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:869,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:873,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 866
    functionDepth: 5
    functionLinenumber: 866
    functionLinenumberEnd: 876
    functionName: ssl_bind_parse_ciphers
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_ciphers(char **args, int cur_arg, struct proxy *px,
      struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_ciphers
      Src: /src/haproxy/src/cfgparse-ssl.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 877
    functionDepth: 6
    functionLinenumber: 877
    functionLinenumberEnd: 880
    functionName: bind_parse_ciphers
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_ciphers
    linkageType: ''
    returnType: int
    signature: int bind_parse_ciphers(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:887,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:891,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:892,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 883
    functionDepth: 5
    functionLinenumber: 883
    functionLinenumberEnd: 898
    functionName: ssl_bind_parse_ciphersuites
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_ciphersuites(char **args, int cur_arg, struct proxy
      *px, struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_ciphersuites
      Src: /src/haproxy/src/cfgparse-ssl.c:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 900
    functionDepth: 6
    functionLinenumber: 900
    functionLinenumberEnd: 903
    functionName: bind_parse_ciphersuites
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_ciphersuites
    linkageType: ''
    returnType: int
    signature: int bind_parse_ciphersuites(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:912,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:917,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:917,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:918,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:919,1
    - Dst: ssl_sock_load_cert
      Src: /src/haproxy/src/cfgparse-ssl.c:922,1
    - Dst: ssl_sock_load_cert
      Src: /src/haproxy/src/cfgparse-ssl.c:925,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 906
    functionDepth: 11
    functionLinenumber: 906
    functionLinenumberEnd: 926
    functionName: bind_parse_crt
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_sock_load_cert
    - memprintf
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int bind_parse_crt(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:934,1
    - Dst: ssl_sock_load_cert_list_file
      Src: /src/haproxy/src/cfgparse-ssl.c:938,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 929
    functionDepth: 10
    functionLinenumber: 929
    functionLinenumberEnd: 943
    functionName: bind_parse_crt_list
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ssl_sock_load_cert_list_file
    linkageType: ''
    returnType: int
    signature: int bind_parse_crt_list(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:949,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:953,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:958,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:960,1
    - Dst: ssl_store_load_locations_file
      Src: /src/haproxy/src/cfgparse-ssl.c:962,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:963,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 946
    functionDepth: 5
    functionLinenumber: 946
    functionLinenumberEnd: 968
    functionName: ssl_bind_parse_crl_file
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_store_load_locations_file
    - memprintf
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_crl_file(char **args, int cur_arg, struct proxy
      *px, struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_crl_file
      Src: /src/haproxy/src/cfgparse-ssl.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 6
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: bind_parse_crl_file
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_crl_file
    linkageType: ''
    returnType: int
    signature: int bind_parse_crl_file(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:979,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:982,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 975
    functionDepth: 5
    functionLinenumber: 975
    functionLinenumberEnd: 988
    functionName: ssl_bind_parse_curves
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_curves(char **args, int cur_arg, struct proxy *px,
      struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_curves
      Src: /src/haproxy/src/cfgparse-ssl.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 989
    functionDepth: 6
    functionLinenumber: 989
    functionLinenumberEnd: 992
    functionName: bind_parse_curves
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_curves
    linkageType: ''
    returnType: int
    signature: int bind_parse_curves(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:998,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1003,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1006,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1008,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1011,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/cfgparse-ssl.c:1015,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 995
    functionDepth: 5
    functionLinenumber: 995
    functionLinenumberEnd: 1018
    functionName: ssl_bind_parse_ktls
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcasecmp
    - mark_tainted
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_ktls(char **args, int cur_arg, struct proxy *px,
      struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_ktls
      Src: /src/haproxy/src/cfgparse-ssl.c:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1020
    functionDepth: 6
    functionLinenumber: 1020
    functionLinenumberEnd: 1023
    functionName: bind_parse_ktls
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_ktls
    linkageType: ''
    returnType: int
    signature: int bind_parse_ktls(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1030,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1033,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1026
    functionDepth: 5
    functionLinenumber: 1026
    functionLinenumberEnd: 1039
    functionName: ssl_bind_parse_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_sigalgs(char **args, int cur_arg, struct proxy *px,
      struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_sigalgs
      Src: /src/haproxy/src/cfgparse-ssl.c:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1040
    functionDepth: 6
    functionLinenumber: 1040
    functionLinenumberEnd: 1043
    functionName: bind_parse_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_sigalgs
    linkageType: ''
    returnType: int
    signature: int bind_parse_sigalgs(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1050,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1053,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1056,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1046
    functionDepth: 5
    functionLinenumber: 1046
    functionLinenumberEnd: 1059
    functionName: ssl_bind_parse_client_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_client_sigalgs(char **args, int cur_arg, struct
      proxy *px, struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_client_sigalgs
      Src: /src/haproxy/src/cfgparse-ssl.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1060
    functionDepth: 6
    functionLinenumber: 1060
    functionLinenumberEnd: 1063
    functionName: bind_parse_client_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_client_sigalgs
    linkageType: ''
    returnType: int
    signature: int bind_parse_client_sigalgs(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1070,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1073,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1077,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1081,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1067
    functionDepth: 5
    functionLinenumber: 1067
    functionLinenumberEnd: 1085
    functionName: ssl_bind_parse_ecdhe
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_ecdhe(char **args, int cur_arg, struct proxy *px,
      struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_ecdhe
      Src: /src/haproxy/src/cfgparse-ssl.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1086
    functionDepth: 6
    functionLinenumber: 1086
    functionLinenumberEnd: 1089
    functionName: bind_parse_ecdhe
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_ecdhe
    linkageType: ''
    returnType: int
    signature: int bind_parse_ecdhe(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1102,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1106,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1109,1
    - Dst: cert_ignerr_bitfield_set_all
      Src: /src/haproxy/src/cfgparse-ssl.c:1110,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1116,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1118,1
    - Dst: strtok_r
      Src: /src/haproxy/src/cfgparse-ssl.c:1123,1
    - Dst: isdigit
      Src: /src/haproxy/src/cfgparse-ssl.c:1125,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-ssl.c:1126,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1128,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1130,1
    - Dst: x509_v_err_str_to_int
      Src: /src/haproxy/src/cfgparse-ssl.c:1134,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1136,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1138,1
    - Dst: cert_ignerr_bitfield_set
      Src: /src/haproxy/src/cfgparse-ssl.c:1142,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1092
    functionDepth: 5
    functionLinenumber: 1092
    functionLinenumberEnd: 1147
    functionName: bind_parse_ignore_err
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strtok_r
    - memprintf
    - strcmp
    - x509_v_err_str_to_int
    - free
    - cert_ignerr_bitfield_set
    - isdigit
    - atoi
    - cert_ignerr_bitfield_set_all
    - strdup
    linkageType: ''
    returnType: int
    signature: int bind_parse_ignore_err(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse-ssl.c:1154,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1158,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1160,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1162,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1164,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1166,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1170,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1172,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1178,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - arg
    - methods
    - err
    argTypes:
    - char*
    - struct tls_version_filter*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1150
    functionDepth: 5
    functionLinenumber: 1150
    functionLinenumberEnd: 1180
    functionName: parse_tls_method_options
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - strchr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int parse_tls_method_options(char *arg, struct tls_version_filter *methods,
      char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tls_method_options
      Src: /src/haproxy/src/cfgparse-ssl.c:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1182
    functionDepth: 6
    functionLinenumber: 1182
    functionLinenumberEnd: 1185
    functionName: bind_parse_tls_method_options
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - parse_tls_method_options
    linkageType: ''
    returnType: int
    signature: int bind_parse_tls_method_options(char **args, int cur_arg, struct
      proxy *px, struct bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tls_method_options
      Src: /src/haproxy/src/cfgparse-ssl.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1187
    functionDepth: 6
    functionLinenumber: 1187
    functionLinenumberEnd: 1190
    functionName: srv_parse_tls_method_options
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - parse_tls_method_options
    linkageType: ''
    returnType: int
    signature: int srv_parse_tls_method_options(char **args, int *cur_arg, struct
      proxy *px, struct server *newsrv, char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1198,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1202,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1205,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1208,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1210,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - args
    - cur_arg
    - methods
    - err
    argTypes:
    - char**
    - int
    - struct tls_version_filter*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1193
    functionDepth: 5
    functionLinenumber: 1193
    functionLinenumberEnd: 1217
    functionName: parse_tls_method_minmax
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_tls_method_minmax(char **args, int cur_arg, struct tls_version_filter
      *methods, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-ssl.c:1224,1
    - Dst: parse_tls_method_minmax
      Src: /src/haproxy/src/cfgparse-ssl.c:1226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1219
    functionDepth: 9
    functionLinenumber: 1219
    functionLinenumberEnd: 1234
    functionName: ssl_bind_parse_tls_method_minmax
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - parse_tls_method_minmax
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_tls_method_minmax(char **args, int cur_arg, struct
      proxy *px, struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tls_method_minmax
      Src: /src/haproxy/src/cfgparse-ssl.c:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1235
    functionDepth: 6
    functionLinenumber: 1235
    functionLinenumberEnd: 1238
    functionName: bind_parse_tls_method_minmax
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - parse_tls_method_minmax
    linkageType: ''
    returnType: int
    signature: int bind_parse_tls_method_minmax(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_tls_method_minmax
      Src: /src/haproxy/src/cfgparse-ssl.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1240
    functionDepth: 6
    functionLinenumber: 1240
    functionLinenumberEnd: 1243
    functionName: srv_parse_tls_method_minmax
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - parse_tls_method_minmax
    linkageType: ''
    returnType: int
    signature: int srv_parse_tls_method_minmax(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1253
    functionName: bind_parse_no_tls_tickets
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int bind_parse_no_tls_tickets(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1260
    functionName: ssl_bind_parse_allow_0rtt
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_allow_0rtt(char **args, int cur_arg, struct proxy
      *px, struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1262
    functionDepth: 0
    functionLinenumber: 1262
    functionLinenumberEnd: 1266
    functionName: bind_parse_allow_0rtt
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bind_parse_allow_0rtt(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1275,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1279,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1285,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:1286,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1288,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-ssl.c:1292,1
    - Dst: memchr
      Src: /src/haproxy/src/cfgparse-ssl.c:1298,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1300,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1304,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1318,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1269
    functionDepth: 5
    functionLinenumber: 1269
    functionLinenumberEnd: 1321
    functionName: ssl_bind_parse_npn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - memcpy
    - calloc
    - free
    - memchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_npn(char **args, int cur_arg, struct proxy *px,
      struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_npn
      Src: /src/haproxy/src/cfgparse-ssl.c:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1323
    functionDepth: 6
    functionLinenumber: 1323
    functionLinenumberEnd: 1326
    functionName: bind_parse_npn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_npn
    linkageType: ''
    returnType: int
    signature: int bind_parse_npn(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1339,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1347,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:1348,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1350,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-ssl.c:1353,1
    - Dst: memchr
      Src: /src/haproxy/src/cfgparse-ssl.c:1359,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1361,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1365,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1385,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 4
    argNames:
    - arg
    - alpn_str
    - alpn_len
    - err
    argTypes:
    - char*
    - char**
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1330
    functionDepth: 5
    functionLinenumber: 1330
    functionLinenumberEnd: 1388
    functionName: ssl_sock_parse_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 2
    functionsReached:
    - memprintf
    - memcpy
    - calloc
    - free
    - memchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int ssl_sock_parse_alpn(char *arg, char **alpn_str, int *alpn_len,
      char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1396,1
    - Dst: ssl_sock_parse_alpn
      Src: /src/haproxy/src/cfgparse-ssl.c:1398,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1400,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1391
    functionDepth: 6
    functionLinenumber: 1391
    functionLinenumberEnd: 1406
    functionName: ssl_bind_parse_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ssl_sock_parse_alpn
    - free
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_alpn(char **args, int cur_arg, struct proxy *px,
      struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_alpn
      Src: /src/haproxy/src/cfgparse-ssl.c:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1408
    functionDepth: 7
    functionLinenumber: 1408
    functionLinenumberEnd: 1411
    functionName: bind_parse_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_alpn
    linkageType: ''
    returnType: int
    signature: int bind_parse_alpn(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1419,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1422,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1426,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1430,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1440
    functionName: bind_parse_ssl
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    linkageType: ''
    returnType: int
    signature: int bind_parse_ssl(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1443
    functionDepth: 0
    functionLinenumber: 1443
    functionLinenumberEnd: 1447
    functionName: bind_parse_pcc
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bind_parse_pcc(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1450
    functionDepth: 5
    functionLinenumber: 1450
    functionLinenumberEnd: 1459
    functionName: bind_parse_generate_certs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_generate_certs(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1462
    functionDepth: 0
    functionLinenumber: 1462
    functionLinenumberEnd: 1469
    functionName: bind_parse_strict_sni
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int bind_parse_strict_sni(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1481,1
    - Dst: tlskeys_ref_lookup
      Src: /src/haproxy/src/cfgparse-ssl.c:1485,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:1492,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1494,1
    - Dst: malloc
      Src: /src/haproxy/src/cfgparse-ssl.c:1498,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/cfgparse-ssl.c:1498,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1500,1
    - Dst: fopen
      Src: /src/haproxy/src/cfgparse-ssl.c:1504,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1505,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1509,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1511,1
    - Dst: fgets
      Src: /src/haproxy/src/cfgparse-ssl.c:1516,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1517,1
    - Dst: base64dec
      Src: /src/haproxy/src/cfgparse-ssl.c:1527,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1529,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1541,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1548,1
    - Dst: fclose
      Src: /src/haproxy/src/cfgparse-ssl.c:1552,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/cfgparse-ssl.c:1559,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/cfgparse-ssl.c:1562,1
    - Dst: fclose
      Src: /src/haproxy/src/cfgparse-ssl.c:1568,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1570,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1571,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1572,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1577,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 86
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1472
    functionDepth: 5
    functionLinenumber: 1472
    functionLinenumberEnd: 1580
    functionName: bind_parse_tls_ticket_keys
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - malloc
    - memprintf
    - base64dec
    - HA_RWLOCK_INIT
    - fclose
    - calloc
    - tlskeys_ref_lookup
    - free
    - strlen
    - fopen
    - LIST_INSERT
    - array_size_or_fail
    - fgets
    - strdup
    linkageType: ''
    returnType: int
    signature: int bind_parse_tls_ticket_keys(char **args, int cur_arg, struct proxy
      *px, struct bind_conf *conf, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1586,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1590,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1592,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1594,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1597,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1583
    functionDepth: 5
    functionLinenumber: 1583
    functionLinenumberEnd: 1603
    functionName: ssl_bind_parse_verify
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_verify(char **args, int cur_arg, struct proxy *px,
      struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_verify
      Src: /src/haproxy/src/cfgparse-ssl.c:1606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1604
    functionDepth: 6
    functionLinenumber: 1604
    functionLinenumberEnd: 1607
    functionName: bind_parse_verify
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_verify
    linkageType: ''
    returnType: int
    signature: int bind_parse_verify(char **args, int cur_arg, struct proxy *px, struct
      bind_conf *conf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1612,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1614,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1610
    functionDepth: 5
    functionLinenumber: 1610
    functionLinenumberEnd: 1621
    functionName: ssl_bind_parse_no_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_no_alpn(char **args, int cur_arg, struct proxy *px,
      struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_no_alpn
      Src: /src/haproxy/src/cfgparse-ssl.c:1626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1624
    functionDepth: 6
    functionLinenumber: 1624
    functionLinenumberEnd: 1627
    functionName: bind_parse_no_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_no_alpn
    linkageType: ''
    returnType: int
    signature: int bind_parse_no_alpn(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - from_cli
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct ssl_bind_conf*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1631
    functionDepth: 0
    functionLinenumber: 1631
    functionLinenumberEnd: 1635
    functionName: ssl_bind_parse_no_ca_names
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_bind_parse_no_ca_names(char **args, int cur_arg, struct proxy
      *px, struct ssl_bind_conf *conf, int from_cli, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_bind_parse_no_ca_names
      Src: /src/haproxy/src/cfgparse-ssl.c:1639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1640
    functionName: bind_parse_no_ca_names
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 1
    functionsReached:
    - ssl_bind_parse_no_ca_names
    linkageType: ''
    returnType: int
    signature: int bind_parse_no_ca_names(char **args, int cur_arg, struct proxy *px,
      struct bind_conf *conf, char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1651,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1655,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1661,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:1662,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1664,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-ssl.c:1668,1
    - Dst: memchr
      Src: /src/haproxy/src/cfgparse-ssl.c:1675,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1678,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1682,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1696,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1645
    functionDepth: 5
    functionLinenumber: 1645
    functionLinenumberEnd: 1699
    functionName: srv_parse_npn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - memcpy
    - calloc
    - free
    - memchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int srv_parse_npn(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1704,1
    - Dst: ssl_sock_parse_alpn
      Src: /src/haproxy/src/cfgparse-ssl.c:1705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - alpn
    - out_alpn_str
    - out_alpn_len
    - err
    argTypes:
    - char*
    - char**
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1702
    functionDepth: 6
    functionLinenumber: 1702
    functionLinenumberEnd: 1706
    functionName: parse_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 5
    functionsReached:
    - ssl_sock_parse_alpn
    - free
    linkageType: ''
    returnType: int
    signature: int parse_alpn(char *alpn, char **out_alpn_str, int *out_alpn_len,
      char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_alpn
      Src: /src/haproxy/src/cfgparse-ssl.c:1713,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1717,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1710
    functionDepth: 7
    functionLinenumber: 1710
    functionLinenumberEnd: 1723
    functionName: srv_parse_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_alpn
    linkageType: ''
    returnType: int
    signature: int srv_parse_alpn(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_alpn
      Src: /src/haproxy/src/cfgparse-ssl.c:1729,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1733,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1726
    functionDepth: 7
    functionLinenumber: 1726
    functionLinenumberEnd: 1739
    functionName: srv_parse_check_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_alpn
    linkageType: ''
    returnType: int
    signature: int srv_parse_check_alpn(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1747,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1752,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1754,1
    - Dst: ssl_store_load_locations_file
      Src: /src/haproxy/src/cfgparse-ssl.c:1756,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1757,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1742
    functionDepth: 5
    functionLinenumber: 1742
    functionLinenumberEnd: 1762
    functionName: srv_parse_ca_file
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_store_load_locations_file
    - memprintf
    linkageType: ''
    returnType: int
    signature: int srv_parse_ca_file(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1768,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1772,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1773,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1765
    functionDepth: 5
    functionLinenumber: 1765
    functionLinenumberEnd: 1780
    functionName: srv_parse_check_sni
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_parse_check_sni(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1788,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1783
    functionDepth: 5
    functionLinenumber: 1783
    functionLinenumberEnd: 1799
    functionName: srv_parse_renegotiate
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int srv_parse_renegotiate(char **args, int *cur_arg, struct proxy
      *px,\n                                 struct server *newsrv, char **err)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1805,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1808,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/cfgparse-ssl.c:1814,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1815,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1831,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1839,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1847,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/cfgparse-ssl.c:1853,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1854,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 42
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1802
    functionDepth: 1
    functionLinenumber: 1802
    functionLinenumberEnd: 1864
    functionName: ssl_sock_init_srv
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - srv_is_quic
    - strdup
    linkageType: ''
    returnType: int
    signature: int ssl_sock_init_srv(struct server *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_init_srv
      Src: /src/haproxy/src/cfgparse-ssl.c:1870,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1867
    functionDepth: 5
    functionLinenumber: 1867
    functionLinenumberEnd: 1876
    functionName: srv_parse_check_ssl
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ssl_sock_init_srv
    linkageType: ''
    returnType: int
    signature: int srv_parse_check_ssl(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1882,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1886,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1887,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1879
    functionDepth: 5
    functionLinenumber: 1879
    functionLinenumberEnd: 1895
    functionName: srv_parse_ciphers
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_parse_ciphers(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1902,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1906,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1907,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1910,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1898
    functionDepth: 5
    functionLinenumber: 1898
    functionLinenumberEnd: 1920
    functionName: srv_parse_ciphersuites
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_parse_ciphersuites(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1926,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1933,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1936,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1923
    functionDepth: 5
    functionLinenumber: 1923
    functionLinenumberEnd: 1943
    functionName: srv_parse_client_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_parse_client_sigalgs(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1950,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1956,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1961,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1963,1
    - Dst: ssl_store_load_locations_file
      Src: /src/haproxy/src/cfgparse-ssl.c:1965,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1966,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1947
    functionDepth: 5
    functionLinenumber: 1947
    functionLinenumberEnd: 1971
    functionName: srv_parse_crl_file
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_store_load_locations_file
    - memprintf
    linkageType: ''
    returnType: int
    signature: int srv_parse_crl_file(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1977,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1984,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1987,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1974
    functionDepth: 5
    functionLinenumber: 1974
    functionLinenumberEnd: 1994
    functionName: srv_parse_curves
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_parse_curves(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2001,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2006,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2008,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1997
    functionDepth: 5
    functionLinenumber: 1997
    functionLinenumberEnd: 2011
    functionName: srv_parse_crt
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int srv_parse_crt(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2014
    functionDepth: 0
    functionLinenumber: 2014
    functionLinenumberEnd: 2018
    functionName: srv_parse_check_sni_auto
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_check_sni_auto(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2025
    functionName: srv_parse_no_check_sni_auto
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_no_check_sni_auto(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2034
    functionName: srv_parse_no_check_ssl
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: int
    signature: int srv_parse_no_check_ssl(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2042
    functionName: srv_parse_no_send_proxy_ssl
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_no_send_proxy_ssl(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2045
    functionDepth: 0
    functionLinenumber: 2045
    functionLinenumberEnd: 2051
    functionName: srv_parse_no_send_proxy_cn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_no_send_proxy_cn(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_init_srv
      Src: /src/haproxy/src/cfgparse-ssl.c:2058,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2059,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2054
    functionDepth: 5
    functionLinenumber: 2054
    functionLinenumberEnd: 2068
    functionName: srv_parse_no_ssl
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - ssl_sock_init_srv
    linkageType: ''
    returnType: int
    signature: int srv_parse_no_ssl(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2074,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2080,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2084,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2086,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2089,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/cfgparse-ssl.c:2093,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2071
    functionDepth: 5
    functionLinenumber: 2071
    functionLinenumberEnd: 2095
    functionName: srv_parse_ktls
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcasecmp
    - mark_tainted
    linkageType: ''
    returnType: int
    signature: int srv_parse_ktls(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2098
    functionDepth: 0
    functionLinenumber: 2098
    functionLinenumberEnd: 2102
    functionName: srv_parse_allow_0rtt
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_allow_0rtt(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2105
    functionDepth: 0
    functionLinenumber: 2105
    functionLinenumberEnd: 2109
    functionName: srv_parse_no_ssl_reuse
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_no_ssl_reuse(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2112
    functionDepth: 0
    functionLinenumber: 2112
    functionLinenumberEnd: 2116
    functionName: srv_parse_no_tls_tickets
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_no_tls_tickets(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2118
    functionDepth: 0
    functionLinenumber: 2118
    functionLinenumberEnd: 2123
    functionName: srv_parse_send_proxy_ssl
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_send_proxy_ssl(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2132
    functionName: srv_parse_send_proxy_cn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_send_proxy_cn(char **args, int *cur_arg, struct proxy
      *px, struct server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2138,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2145,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2148,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2135
    functionDepth: 5
    functionLinenumber: 2135
    functionLinenumberEnd: 2155
    functionName: srv_parse_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_parse_sigalgs(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2161,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2168,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2172,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2173,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2158
    functionDepth: 5
    functionLinenumber: 2158
    functionLinenumberEnd: 2181
    functionName: srv_parse_sni
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_parse_sni(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2184
    functionDepth: 0
    functionLinenumber: 2184
    functionLinenumberEnd: 2188
    functionName: srv_parse_sni_auto
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_sni_auto(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2191
    functionDepth: 0
    functionLinenumber: 2191
    functionLinenumberEnd: 2195
    functionName: srv_parse_no_sni_auto
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_no_sni_auto(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_init_srv
      Src: /src/haproxy/src/cfgparse-ssl.c:2201,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2198
    functionDepth: 5
    functionLinenumber: 2198
    functionLinenumberEnd: 2207
    functionName: srv_parse_ssl
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ssl_sock_init_srv
    linkageType: ''
    returnType: int
    signature: int srv_parse_ssl(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2210
    functionDepth: 0
    functionLinenumber: 2210
    functionLinenumberEnd: 2214
    functionName: srv_parse_ssl_reuse
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_ssl_reuse(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2217
    functionDepth: 0
    functionLinenumber: 2217
    functionLinenumberEnd: 2221
    functionName: srv_parse_tls_tickets
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_parse_tls_tickets(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2227,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2231,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2233,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2224
    functionDepth: 5
    functionLinenumber: 2224
    functionLinenumberEnd: 2242
    functionName: srv_parse_verify
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int srv_parse_verify(char **args, int *cur_arg, struct proxy *px, struct
      server *newsrv, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2248,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2252,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2253,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2245
    functionDepth: 5
    functionLinenumber: 2245
    functionLinenumberEnd: 2261
    functionName: srv_parse_verifyhost
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int srv_parse_verifyhost(char **args, int *cur_arg, struct proxy *px,
      struct server *newsrv, char **err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2270,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2274,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2276,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2278,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2280,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2282,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2284,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2284,1
    - Dst: parse_tls_method_minmax
      Src: /src/haproxy/src/cfgparse-ssl.c:2285,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2288,1
    - Dst: parse_tls_method_options
      Src: /src/haproxy/src/cfgparse-ssl.c:2292,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2293,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2264
    functionDepth: 6
    functionLinenumber: 2264
    functionLinenumberEnd: 2299
    functionName: ssl_parse_default_bind_options
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - parse_tls_method_options
    - memprintf
    - strcmp
    - parse_tls_method_minmax
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_default_bind_options(char **args, int section_type,
      struct proxy *curpx,\n                                          const struct
      proxy *defpx, const char *file, int line,\n                                          char
      **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2308,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2312,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2314,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2314,1
    - Dst: parse_tls_method_minmax
      Src: /src/haproxy/src/cfgparse-ssl.c:2315,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2318,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2322,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2322,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2324,1
    - Dst: parse_tls_method_options
      Src: /src/haproxy/src/cfgparse-ssl.c:2331,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2332,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2302
    functionDepth: 6
    functionLinenumber: 2302
    functionLinenumberEnd: 2338
    functionName: ssl_parse_default_server_options
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - parse_tls_method_options
    - memprintf
    - strcmp
    - parse_tls_method_minmax
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_default_server_options(char **args, int section_type,
      struct proxy *curpx,\n                                            const struct
      proxy *defpx, const char *file, int line,\n                                            char
      **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:2358,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2362,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2367,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2370,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2343
    functionDepth: 7
    functionLinenumber: 2343
    functionLinenumberEnd: 2372
    functionName: ssl_parse_global_path_base
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_global_path_base(char **args, int section_type, struct
      proxy *curpx,\n                                        const struct proxy *defpx,
      const char *file, int line,\n                                        char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2380,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-ssl.c:2386,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-ssl.c:2390,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-ssl.c:2392,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-ssl.c:2398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2405
      start: 2375
    functionDepth: 9
    functionLinenumber: 2375
    functionLinenumberEnd: 2405
    functionName: ssl_parse_security_level
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strtol
    - ha_alert
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_security_level(char **args, int section_type, struct
      proxy *curpx,\n\t\t\t\t\t const struct proxy *defpx, const char *file, int linenum,\n\t\t\t\t\t
      char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2408
    functionDepth: 5
    functionLinenumber: 2408
    functionLinenumberEnd: 2419
    functionName: ssl_parse_skip_self_issued_ca
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int ssl_parse_skip_self_issued_ca(char **args, int section_type, struct
      proxy *curpx,\n\t\t\t\t\t const struct proxy *defpx, const char *file, int line,\n\t\t\t\t\t
      char **err)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:2445,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2447,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2450,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2452,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:2458,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2460,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2468,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2473,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:2477,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:2477,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2478,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2479,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2486,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2487,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2495,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:2498,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2500,1
    - Dst: parse
      Src: /src/haproxy/src/cfgparse-ssl.c:2504,1
    - Dst: ckch_conf_parse
      Src: /src/haproxy/src/cfgparse-ssl.c:2514,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2526,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/cfgparse-ssl.c:2533,1
    - Dst: ckch_conf_clean
      Src: /src/haproxy/src/cfgparse-ssl.c:2537,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2538,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/cfgparse-ssl.c:2539,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2540,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2541,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2542,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 94
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2434
    functionDepth: 5
    functionLinenumber: 2434
    functionLinenumberEnd: 2544
    functionName: proxy_parse_ssl_f_use
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse
    - ha_free
    - calloc
    - ssl_sock_free_ssl_conf
    - strcmp
    - ckch_conf_clean
    - free
    - ckch_conf_parse
    - LIST_INSERT
    - strdup
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_ssl_f_use(char **args, int section_type, struct proxy
      *curpx,\n                                 const struct proxy *defpx, const char
      *file, int linenum,\n                                 char **err)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/cfgparse-ssl.c:2561,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2565,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2567,1
    - Dst: crtlist_new
      Src: /src/haproxy/src/cfgparse-ssl.c:2573,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2575,1
    - Dst: crtlist_entry_new
      Src: /src/haproxy/src/cfgparse-ssl.c:2580,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2582,1
    - Dst: crtlist_dup_ssl_conf
      Src: /src/haproxy/src/cfgparse-ssl.c:2588,1
    - Dst: crtlist_load_crt
      Src: /src/haproxy/src/cfgparse-ssl.c:2590,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-ssl.c:2592,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2593,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cfgparse-ssl.c:2597,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2599,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2600,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2601,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/cfgparse-ssl.c:2606,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2607,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse-ssl.c:2614,1
    - Dst: ssl_sock_load_cert_list_file
      Src: /src/haproxy/src/cfgparse-ssl.c:2616,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-ssl.c:2628,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2629,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/cfgparse-ssl.c:2631,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2632,1
    - Dst: ckch_conf_clean
      Src: /src/haproxy/src/cfgparse-ssl.c:2633,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2634,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/cfgparse-ssl.c:2635,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2636,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cfgparse-ssl.c:2637,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2638,1
    - Dst: crtlist_entry_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2641,1
    - Dst: crtlist_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2642,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2645,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2551
    functionDepth: 10
    functionLinenumber: 2551
    functionLinenumberEnd: 2647
    functionName: post_section_frontend_crt_init
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - memprintf
    - crtlist_load_crt
    - ha_free
    - list_for_each_entry
    - list_for_each_entry_safe
    - ssl_sock_free_ssl_conf
    - crtlist_entry_free
    - ssl_sock_load_cert_list_file
    - free
    - ckch_conf_clean
    - ebst_insert
    - crtlist_dup_ssl_conf
    - crtlist_new
    - ha_alert
    - crtlist_free
    - crtlist_entry_new
    linkageType: ''
    returnType: int
    signature: int post_section_frontend_crt_init()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/signal.c:42,1
    - Dst: signal
      Src: /src/haproxy/src/signal.c:46,1
    - Dst: qfprintf
      Src: /src/haproxy/src/signal.c:47,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/signal.c:48,1
    - Dst: qfprintf
      Src: /src/haproxy/src/signal.c:57,1
    - Dst: signal
      Src: /src/haproxy/src/signal.c:62,1
    - Dst: wake_thread
      Src: /src/haproxy/src/signal.c:65,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/signal.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 67
    functionName: signal_handler
    functionSourceFile: /src/haproxy/src/signal.c
    functionUses: 0
    functionsReached:
    - wake_thread
    - signal
    - _HA_ATOMIC_AND
    - qfprintf
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void signal_handler(int sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_sigmask
      Src: /src/haproxy/src/signal.c:82,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/signal.c:94,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/signal.c:98,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/signal.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 107
    functionName: __signal_process_queue
    functionSourceFile: /src/haproxy/src/signal.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - list_for_each_entry_safe
    - ha_sigmask
    linkageType: ''
    returnType: void
    signature: void __signal_process_queue()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/haproxy/src/signal.c:120,1
    - Dst: memset
      Src: /src/haproxy/src/signal.c:122,1
    - Dst: memset
      Src: /src/haproxy/src/signal.c:123,1
    - Dst: sigfillset
      Src: /src/haproxy/src/signal.c:125,1
    - Dst: sigdelset
      Src: /src/haproxy/src/signal.c:126,1
    - Dst: sigdelset
      Src: /src/haproxy/src/signal.c:133,1
    - Dst: sigdelset
      Src: /src/haproxy/src/signal.c:134,1
    - Dst: sigdelset
      Src: /src/haproxy/src/signal.c:135,1
    - Dst: sigdelset
      Src: /src/haproxy/src/signal.c:136,1
    - Dst: sigdelset
      Src: /src/haproxy/src/signal.c:138,1
    - Dst: sigdelset
      Src: /src/haproxy/src/signal.c:141,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/signal.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 145
    functionName: signal_init
    functionSourceFile: /src/haproxy/src/signal.c
    functionUses: 0
    functionsReached:
    - memset
    - sigfillset
    - sigdelset
    - signal
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void signal_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/haproxy/src/signal.c:158,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/signal.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 160
    functionName: haproxy_unblock_signals
    functionSourceFile: /src/haproxy/src/signal.c
    functionUses: 3
    functionsReached:
    - ha_sigmask
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: void haproxy_unblock_signals()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/haproxy/src/signal.c:170,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/signal.c:171,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/signal.c:172,1
    - Dst: pool_free
      Src: /src/haproxy/src/signal.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: deinit_signals
    functionSourceFile: /src/haproxy/src/signal.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - signal
    - pool_free
    linkageType: ''
    returnType: void
    signature: void deinit_signals()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/haproxy/src/signal.c:194,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/signal.c:199,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/signal.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - sig
    - arg
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: signal_register_fct
    functionSourceFile: /src/haproxy/src/signal.c
    functionUses: 7
    functionsReached:
    - pool_alloc
    - signal
    - LIST_APPEND
    linkageType: ''
    returnType: struct sig_handler
    signature: struct sig_handler *signal_register_fct(int sig, void (*fct)(struct
      sig_handler *), int arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/haproxy/src/signal.c:226,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/signal.c:231,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/signal.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - sig
    - task
    - reason
    argTypes:
    - int
    - struct task*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 240
    functionName: signal_register_task
    functionSourceFile: /src/haproxy/src/signal.c
    functionUses: 2
    functionsReached:
    - pool_alloc
    - signal
    - LIST_APPEND
    linkageType: ''
    returnType: struct sig_handler
    signature: struct sig_handler *signal_register_task(int sig, struct task *task,
      int reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/signal.c:247,1
    - Dst: pool_free
      Src: /src/haproxy/src/signal.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: signal_unregister_handler
    functionSourceFile: /src/haproxy/src/signal.c
    functionUses: 2
    functionsReached:
    - LIST_DELETE
    - pool_free
    linkageType: ''
    returnType: void
    signature: void signal_unregister_handler(struct sig_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/signal.c:267,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/signal.c:269,1
    - Dst: pool_free
      Src: /src/haproxy/src/signal.c:270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - sig
    - target
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: signal_unregister_target
    functionSourceFile: /src/haproxy/src/signal.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - pool_free
    linkageType: ''
    returnType: void
    signature: void signal_unregister_target(int sig, void *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/signal.c:288,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/signal.c:289,1
    - Dst: pool_free
      Src: /src/haproxy/src/signal.c:290,1
    - Dst: signal
      Src: /src/haproxy/src/signal.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 294
    functionName: signal_unregister
    functionSourceFile: /src/haproxy/src/signal.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - signal
    - pool_free
    linkageType: ''
    returnType: void
    signature: void signal_unregister(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/cache.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct cache_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: cache_rdlock
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void cache_rdlock(struct cache_tree *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/cache.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct cache_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: cache_rdunlock
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: void
    signature: void cache_rdunlock(struct cache_tree *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/cache.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct cache_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: cache_wrlock
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void cache_wrlock(struct cache_tree *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/cache.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct cache_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: cache_wrunlock
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    linkageType: ''
    returnType: void
    signature: void cache_wrunlock(struct cache_tree *cache)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup
      Src: /src/haproxy/src/cache.c:256,1
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:256,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/cache.c:260,1
    - Dst: memcmp
      Src: /src/haproxy/src/cache.c:263,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - cache_tree
    - hash
    - delete_expired
    argTypes:
    - struct cache_tree*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 272
    functionName: get_entry
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 9
    functionsReached:
    - release_entry_locked
    - memcmp
    - eb32_lookup
    - eb32_entry
    - read_u32
    linkageType: ''
    returnType: struct cache_entry
    signature: struct cache_entry *get_entry(struct cache_tree *cache_tree, char *hash,
      int delete_expired)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/cache.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: retain_entry
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void retain_entry(struct cache_entry *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/cache.c:294,1
    - Dst: cache_wrlock
      Src: /src/haproxy/src/cache.c:296,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/cache.c:301,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:302,1
    - Dst: delete_entry
      Src: /src/haproxy/src/cache.c:306,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - cache
    - entry
    - needs_locking
    argTypes:
    - struct cache_tree*
    - struct cache_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 311
    functionName: release_entry
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_SUB_FETCH
    - HA_ATOMIC_LOAD
    - delete_entry
    - cache_wrunlock
    - cache_wrlock
    linkageType: ''
    returnType: void
    signature: void release_entry(struct cache_tree *cache, struct cache_entry *entry,
      int needs_locking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cache
    - entry
    argTypes:
    - struct cache_tree*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: release_entry_locked
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 1
    functionsReached:
    - release_entry
    linkageType: ''
    returnType: void
    signature: void release_entry_locked(struct cache_tree *cache, struct cache_entry
      *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cache
    - entry
    argTypes:
    - struct cache_tree*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: release_entry_unlocked
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - release_entry
    linkageType: ''
    returnType: void
    signature: void release_entry_unlocked(struct cache_tree *cache, struct cache_entry
      *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct vary_hashing_information*::cmp_fn
      Src: /src/haproxy/src/cache.c:353,1
    - Dst: memcmp
      Src: /src/haproxy/src/cache.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ref_key
    - new_key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 361
    functionName: secondary_key_cmp
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - struct vary_hashing_information*::cmp_fn
    - memcmp
    linkageType: ''
    returnType: int
    signature: int secondary_key_cmp(const char *ref_key, const char *new_key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: secondary_key_cmp
      Src: /src/haproxy/src/cache.c:384,1
    - Dst: eb32_next_dup
      Src: /src/haproxy/src/cache.c:385,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:392,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/cache.c:395,1
    - Dst: memcmp
      Src: /src/haproxy/src/cache.c:401,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:407,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 5
    argNames:
    - cache
    - entry
    - primary_hash
    - secondary_key
    - delete_expired
    argTypes:
    - struct cache_tree*
    - struct cache_entry*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 413
    functionName: get_secondary_entry
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - release_entry_locked
    - memcmp
    - eb32_next_dup
    - secondary_key_cmp
    - eb32_entry
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *get_secondary_entry(struct cache_tree *cache,
      struct cache_entry *entry,\n                                        const char
      *primary_hash, const char *secondary_key, int delete_expired)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cache
    - hash
    argTypes:
    - struct cache*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: get_cache_tree_from_hash
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct cache_tree
    signature: struct cache_tree *get_cache_tree_from_hash(struct cache *cache, unsigned
      int hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/src/cache.c:439,1
    - Dst: eb32_prev_dup
      Src: /src/haproxy/src/cache.c:440,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - cache
    - dup_tail
    argTypes:
    - struct cache_tree*
    - struct eb32_node**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 431
    functionDepth: 4
    functionLinenumber: 431
    functionLinenumberEnd: 454
    functionName: clear_expired_duplicates
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - eb32_prev_dup
    - release_entry_locked
    - container_of
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int clear_expired_duplicates(struct cache_tree *cache, struct
      eb32_node **dup_tail)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: eb32_insert
      Src: /src/haproxy/src/cache.c:476,1
    - Dst: eb32_prev_dup
      Src: /src/haproxy/src/cache.c:485,1
    - Dst: container_of
      Src: /src/haproxy/src/cache.c:489,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:502,1
    - Dst: clear_expired_duplicates
      Src: /src/haproxy/src/cache.c:506,1
    - Dst: container_of
      Src: /src/haproxy/src/cache.c:510,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - cache
    - tree
    - new_entry
    argTypes:
    - struct cache*
    - struct cache_tree*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 469
    functionDepth: 5
    functionLinenumber: 469
    functionLinenumberEnd: 522
    functionName: insert_entry
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - release_entry_locked
    - clear_expired_duplicates
    - eb32_insert
    - eb32_prev_dup
    - container_of
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *insert_entry(struct cache *cache, struct cache_tree
      *tree, struct cache_entry *new_entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb32_next_dup
      Src: /src/haproxy/src/cache.c:544,1
    - Dst: container_of
      Src: /src/haproxy/src/cache.c:549,1
    - Dst: eb32_prev_dup
      Src: /src/haproxy/src/cache.c:555,1
    - Dst: container_of
      Src: /src/haproxy/src/cache.c:557,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/cache.c:562,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - del_entry
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 564
    functionName: delete_entry
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 1
    functionsReached:
    - eb32_prev_dup
    - eb32_delete
    - container_of
    - eb32_next_dup
    linkageType: ''
    returnType: void
    signature: void delete_entry(struct cache_entry *del_entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: shctx_ptr
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct shared_context
    signature: struct shared_context *shctx_ptr(struct cache *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: block_ptr
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct shared_block
    signature: struct shared_block *block_ptr(struct cache_entry *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: cache_store_init
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cache_store_init(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/cache.c:592,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 594
    functionName: cache_store_deinit
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cache_store_deinit(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cache.c:609,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:610,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:614,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cache.c:615,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cache.c:626,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:630,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cache.c:631,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:643,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cache.c:644,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 596
    functionDepth: 9
    functionLinenumber: 596
    functionLinenumberEnd: 650
    functionName: cache_store_check
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - strcmp
    - ha_alert
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int cache_store_check(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/cache.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 667
    functionName: cache_store_strm_init
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    linkageType: ''
    returnType: int
    signature: int cache_store_strm_init(struct stream *s, struct filter *filter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/cache.c:673,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:675,1
    - Dst: release_entry_unlocked
      Src: /src/haproxy/src/cache.c:687,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:689,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:690,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:691,1
    - Dst: pool_free
      Src: /src/haproxy/src/cache.c:694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 669
    functionDepth: 4
    functionLinenumber: 669
    functionLinenumberEnd: 697
    functionName: cache_store_strm_deinit
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - shctx_row_reattach
    - shctx_wrunlock
    - shctx_ptr
    - FLT_CONF
    - release_entry_unlocked
    - pool_free
    - shctx_wrlock
    linkageType: ''
    returnType: void
    signature: void cache_store_strm_deinit(struct stream *s, struct filter *filter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/cache.c:717,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - s
    - filter
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 723
    functionName: cache_store_post_analyze
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - pool_free
    linkageType: ''
    returnType: int
    signature: "int cache_store_post_analyze(struct stream *s, struct filter *filter,
      struct channel *chn,\n\t\t\t unsigned an_bit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: register_data_filter
      Src: /src/haproxy/src/cache.c:734,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 736
    functionName: cache_store_http_headers
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - register_data_filter
    linkageType: ''
    returnType: int
    signature: int cache_store_http_headers(struct stream *s, struct filter *filter,
      struct http_msg *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_entry_unlocked
      Src: /src/haproxy/src/cache.c:746,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:747,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:748,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:749,1
    - Dst: pool_free
      Src: /src/haproxy/src/cache.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - st
    - filter
    - shctx
    argTypes:
    - struct cache_st*
    - struct filter*
    - struct shared_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 738
    functionDepth: 4
    functionLinenumber: 738
    functionLinenumberEnd: 751
    functionName: disable_cache_entry
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - shctx_wrlock
    - shctx_row_reattach
    - release_entry_unlocked
    - pool_free
    - shctx_wrunlock
    linkageType: ''
    returnType: void
    signature: "void disable_cache_entry(struct cache_st *st,\n                                       struct
      filter *filter, struct shared_context *shctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/cache.c:757,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:758,1
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:760,1
    - Dst: unregister_data_filter
      Src: /src/haproxy/src/cache.c:771,1
    - Dst: htx_find_offset
      Src: /src/haproxy/src/cache.c:778,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/cache.c:781,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/cache.c:782,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/cache.c:783,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/cache.c:791,1
    - Dst: istadv
      Src: /src/haproxy/src/cache.c:792,1
    - Dst: isttrim
      Src: /src/haproxy/src/cache.c:793,1
    - Dst: shctx_row_reserve_hot
      Src: /src/haproxy/src/cache.c:796,1
    - Dst: shctx_row_data_append
      Src: /src/haproxy/src/cache.c:799,1
    - Dst: shctx_row_data_append
      Src: /src/haproxy/src/cache.c:802,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:802,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:802,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/cache.c:805,1
    - Dst: shctx_row_reserve_hot
      Src: /src/haproxy/src/cache.c:818,1
    - Dst: shctx_row_data_append
      Src: /src/haproxy/src/cache.c:821,1
    - Dst: shctx_row_data_append
      Src: /src/haproxy/src/cache.c:824,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/cache.c:824,1
    - Dst: disable_cache_entry
      Src: /src/haproxy/src/cache.c:839,1
    - Dst: unregister_data_filter
      Src: /src/haproxy/src/cache.c:840,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 5
    argNames:
    - s
    - filter
    - msg
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 753
    functionDepth: 5
    functionLinenumber: 753
    functionLinenumberEnd: 842
    functionName: cache_store_http_payload
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - htx_find_offset
    - htx_get_next_blk
    - htx_get_blksz
    - htxbuf
    - istadv
    - isttrim
    - shctx_row_data_append
    - disable_cache_entry
    - htx_get_blk_ptr
    - htx_get_blk_type
    - shctx_row_reserve_hot
    - unregister_data_filter
    - istptr
    - shctx_ptr
    - istlen
    - ASSUME_NONNULL
    - FLT_CONF
    - htx_get_blk_value
    linkageType: ''
    returnType: int
    signature: "int cache_store_http_payload(struct stream *s, struct filter *filter,
      struct http_msg *msg,\n\t\t\t unsigned int offset, unsigned int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/cache.c:849,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:851,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:861,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:865,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:866,1
    - Dst: pool_free
      Src: /src/haproxy/src/cache.c:870,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 875
    functionName: cache_store_http_end
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - shctx_wrlock
    - shctx_row_reattach
    - shctx_ptr
    - FLT_CONF
    - pool_free
    - shctx_wrunlock
    linkageType: ''
    returnType: int
    signature: "int cache_store_http_end(struct stream *s, struct filter *filter,\n
      \                    struct http_msg *msg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - sample
    - slen
    - word
    - wlen
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 913
    functionName: directive_value
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *directive_value(const char *sample, int slen, const char *word,
      int wlen)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:931,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:945,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:945,1
    - Dst: directive_value
      Src: /src/haproxy/src/cache.c:948,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cache.c:950,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:952,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:953,1
    - Dst: strtol
      Src: /src/haproxy/src/cache.c:955,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:956,1
    - Dst: directive_value
      Src: /src/haproxy/src/cache.c:960,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cache.c:962,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:964,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:965,1
    - Dst: strtol
      Src: /src/haproxy/src/cache.c:967,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:968,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:977,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:977,1
    - Dst: parse_http_date
      Src: /src/haproxy/src/cache.c:978,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:978,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:978,1
    - Dst: my_timegm
      Src: /src/haproxy/src/cache.c:979,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1000,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1006,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1012,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 3
    argNames:
    - s
    - cache
    - true_maxage
    argTypes:
    - struct stream*
    - struct cache*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 929
    functionDepth: 5
    functionLinenumber: 929
    functionLinenumberEnd: 1017
    functionName: http_calc_maxage
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist
    - htxbuf
    - my_timegm
    - http_find_header
    - directive_value
    - get_trash_chunk
    - parse_http_date
    - chunk_memcat
    - MIN
    - strtol
    - istptr
    - istlen
    linkageType: ''
    returnType: int
    signature: int http_calc_maxage(struct stream *s, struct cache *cache, int *true_maxage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: retain_entry
      Src: /src/haproxy/src/cache.c:1029,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/cache.c:1030,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/cache.c:1031,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/cache.c:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - first
    - data
    argTypes:
    - struct shared_block*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1034
    functionName: cache_free_blocks
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - LIST_INSERT
    - retain_entry
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void cache_free_blocks(struct shared_block *first, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cache_wrlock
      Src: /src/haproxy/src/cache.c:1046,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/cache.c:1047,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/cache.c:1049,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cache.c:1050,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cache.c:1063,1
    - Dst: delete_entry
      Src: /src/haproxy/src/cache.c:1064,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/cache.c:1067,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - shctx
    argTypes:
    - struct shared_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1036
    functionDepth: 2
    functionLinenumber: 1036
    functionLinenumberEnd: 1070
    functionName: cache_reserve_finish
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - BUG_ON
    - list_for_each_entry_safe
    - delete_entry
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - cache_wrunlock
    - cache_wrlock
    linkageType: ''
    returnType: void
    signature: void cache_reserve_finish(struct shared_context *shctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:1083,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1083,1
    - Dst: parse_http_date
      Src: /src/haproxy/src/cache.c:1084,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:1084,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:1084,1
    - Dst: my_timegm
      Src: /src/haproxy/src/cache.c:1085,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:1091,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1091,1
    - Dst: parse_http_date
      Src: /src/haproxy/src/cache.c:1092,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:1092,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:1092,1
    - Dst: my_timegm
      Src: /src/haproxy/src/cache.c:1093,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1077
    functionDepth: 5
    functionLinenumber: 1077
    functionLinenumberEnd: 1104
    functionName: get_last_modified_time
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - ist
    - my_timegm
    - http_find_header
    - parse_http_date
    - istptr
    - istlen
    linkageType: ''
    returnType: time_t
    signature: time_t get_last_modified_time(struct htx *htx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:1124,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1124,1
    - Dst: isteqi
      Src: /src/haproxy/src/cache.c:1127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - htx
    - vary_signature
    argTypes:
    - struct htx*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1136
    functionName: http_check_vary_header
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - isteqi
    - http_find_header
    - ist
    linkageType: ''
    returnType: int
    signature: int http_check_vary_header(struct htx *htx, unsigned int *vary_signature)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:1172,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1172,1
    - Dst: parse_encoding_value
      Src: /src/haproxy/src/cache.c:1173,1
    - Dst: write_u32
      Src: /src/haproxy/src/cache.c:1183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - htx
    - vary_signature
    - secondary_key
    argTypes:
    - struct htx*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1186
    functionName: set_secondary_key_encoding
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - write_u32
    - http_find_header
    - parse_encoding_value
    - ist
    linkageType: ''
    returnType: int
    signature: int set_secondary_key_encoding(struct htx *htx, unsigned int vary_signature,
      char *secondary_key)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:1204,1
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:1207,1
    - Dst: obj_type
      Src: /src/haproxy/src/cache.c:1216,1
    - Dst: get_cache_tree_from_hash
      Src: /src/haproxy/src/cache.c:1225,1
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:1225,1
    - Dst: cache_wrlock
      Src: /src/haproxy/src/cache.c:1244,1
    - Dst: get_entry
      Src: /src/haproxy/src/cache.c:1246,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:1248,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1249,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cache.c:1264,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/cache.c:1265,1
    - Dst: FLT_CONF
      Src: /src/haproxy/src/cache.c:1265,1
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:1275,1
    - Dst: http_check_vary_header
      Src: /src/haproxy/src/cache.c:1288,1
    - Dst: http_request_reduce_secondary_key
      Src: /src/haproxy/src/cache.c:1295,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:1298,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1298,1
    - Dst: http_check_response_for_cacheability
      Src: /src/haproxy/src/cache.c:1302,1
    - Dst: cache_wrlock
      Src: /src/haproxy/src/cache.c:1307,1
    - Dst: get_entry
      Src: /src/haproxy/src/cache.c:1308,1
    - Dst: get_secondary_entry
      Src: /src/haproxy/src/cache.c:1311,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1318,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:1321,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1324,1
    - Dst: shctx_row_reserve_hot
      Src: /src/haproxy/src/cache.c:1326,1
    - Dst: memset
      Src: /src/haproxy/src/cache.c:1335,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1344,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1346,1
    - Dst: cache_wrlock
      Src: /src/haproxy/src/cache.c:1348,1
    - Dst: insert_entry
      Src: /src/haproxy/src/cache.c:1350,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1352,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1355,1
    - Dst: http_calc_maxage
      Src: /src/haproxy/src/cache.c:1364,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:1367,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1367,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/cache.c:1369,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:1370,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:1375,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/cache.c:1380,1
    - Dst: get_last_modified_time
      Src: /src/haproxy/src/cache.c:1385,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/cache.c:1387,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/cache.c:1388,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/cache.c:1388,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/cache.c:1389,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/cache.c:1390,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/cache.c:1391,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:1394,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:1395,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/cache.c:1395,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/cache.c:1402,1
    - Dst: isteq
      Src: /src/haproxy/src/cache.c:1403,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1403,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:1404,1
    - Dst: b_data
      Src: /src/haproxy/src/cache.c:1405,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:1405,1
    - Dst: set_secondary_key_encoding
      Src: /src/haproxy/src/cache.c:1423,1
    - Dst: shctx_row_reserve_hot
      Src: /src/haproxy/src/cache.c:1426,1
    - Dst: shctx_row_data_append
      Src: /src/haproxy/src/cache.c:1437,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cache.c:1443,1
    - Dst: release_entry_unlocked
      Src: /src/haproxy/src/cache.c:1455,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:1457,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:1458,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:1459,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 168
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1193
    functionDepth: 6
    functionLinenumber: 1193
    functionLinenumberEnd: 1463
    functionName: http_action_store_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - unlikely
    - release_entry_locked
    - htx_get_blksz
    - http_find_header
    - http_remove_header
    - htx_get_blk_ptr
    - shctx_ptr
    - http_check_vary_header
    - get_entry
    - cache_wrlock
    - FLT_CONF
    - strl2llrc
    - htx_get_blk_name
    - get_last_modified_time
    - istlen
    - insert_entry
    - ist
    - LIST_INIT
    - get_cache_tree_from_hash
    - set_secondary_key_encoding
    - shctx_row_reattach
    - cache_wrunlock
    - htx_get_blk_type
    - shctx_row_reserve_hot
    - chunk_memcat
    - isteq
    - obj_type
    - get_secondary_entry
    - release_entry_unlocked
    - shctx_row_data_append
    - shctx_wrunlock
    - htxbuf
    - memcpy
    - htx_get_first
    - b_data
    - chunk_reset
    - http_calc_maxage
    - htx_get_next
    - shctx_wrlock
    - http_check_response_for_cacheability
    - memset
    - list_for_each_entry
    - htx_get_blk
    - http_request_reduce_secondary_key
    - read_u32
    - FLT_ID
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_store_cache(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\tstruct session *sess, struct stream *s, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:1475,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:1476,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:1478,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:1480,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:1481,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1471
    functionDepth: 3
    functionLinenumber: 1471
    functionLinenumberEnd: 1483
    functionName: http_cache_applet_release
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - block_ptr
    - shctx_row_reattach
    - release_entry
    - shctx_wrunlock
    - shctx_ptr
    - shctx_wrlock
    linkageType: ''
    returnType: void
    signature: void http_cache_applet_release(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:1490,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/cache.c:1496,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/cache.c:1505,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/cache.c:1511,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1513,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1514,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cache.c:1520,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:1520,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - appctx
    - htx
    - type
    - info
    - shblk
    - offset
    argTypes:
    - struct appctx*
    - struct htx*
    - enum htx_blk_type
    - uint32_t
    - struct shared_block*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1486
    functionDepth: 6
    functionLinenumber: 1486
    functionLinenumberEnd: 1528
    functionName: htx_cache_dump_blk
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - typeof
    - LIST_NEXT
    - memcpy
    - htx_get_blk_ptr
    - MIN
    - htx_add_blk
    - shctx_ptr
    - htx_free_data_space
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int htx_cache_dump_blk(struct appctx *appctx, struct htx
      *htx, enum htx_blk_type type,\n\t\t\t\t       uint32_t info, struct shared_block
      *shblk, unsigned int offset)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:1534,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/cache.c:1538,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1560,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/cache.c:1561,1
    - Dst: ist2
      Src: /src/haproxy/src/cache.c:1561,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cache.c:1569,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:1569,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 5
    argNames:
    - appctx
    - htx
    - info
    - shblk
    - offset
    argTypes:
    - struct appctx*
    - struct htx*
    - uint32_t
    - struct shared_block*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1530
    functionDepth: 7
    functionLinenumber: 1530
    functionLinenumberEnd: 1580
    functionName: htx_cache_dump_data_blk
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - ist2
    - typeof
    - LIST_NEXT
    - htx_add_data
    - MIN
    - shctx_ptr
    - htx_free_data_space
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int htx_cache_dump_data_blk(struct appctx *appctx, struct
      htx *htx,\n\t\t\t\t\t    uint32_t info, struct shared_block *shblk, unsigned
      int offset)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:1586,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1604,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1605,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cache.c:1608,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:1608,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1609,1
    - Dst: htx_cache_dump_blk
      Src: /src/haproxy/src/cache.c:1616,1
    - Dst: htx_cache_dump_data_blk
      Src: /src/haproxy/src/cache.c:1619,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - appctx
    - htx
    - len
    - mark
    argTypes:
    - struct appctx*
    - struct htx*
    - unsigned int
    - enum htx_blk_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1582
    functionDepth: 8
    functionLinenumber: 1582
    functionLinenumberEnd: 1632
    functionName: htx_cache_dump_msg
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - htx_cache_dump_blk
    - typeof
    - LIST_NEXT
    - memcpy
    - MIN
    - shctx_ptr
    - htx_cache_dump_data_blk
    linkageType: ''
    returnType: size_t
    signature: "size_t htx_cache_dump_msg(struct appctx *appctx, struct htx *htx,
      unsigned int len,\n\t\t\t\t enum htx_blk_type mark)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:1638,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1659,1
    - Dst: b_putblk
      Src: /src/haproxy/src/cache.c:1660,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cache.c:1668,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:1668,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 6
    argNames:
    - appctx
    - buf
    - len
    - info
    - shblk
    - offset
    argTypes:
    - struct appctx*
    - struct buffer*
    - unsigned int
    - uint32_t
    - struct shared_block*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1634
    functionDepth: 1
    functionLinenumber: 1634
    functionLinenumberEnd: 1679
    functionName: ff_cache_dump_data_blk
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - typeof
    - LIST_NEXT
    - b_putblk
    - MIN
    - shctx_ptr
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int ff_cache_dump_data_blk(struct appctx *appctx, struct
      buffer *buf, unsigned int len,\n\t\t\t\t\t   uint32_t info, struct shared_block
      *shblk, unsigned int offset)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:1685,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:1686,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1704,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1705,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cache.c:1708,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:1708,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1709,1
    - Dst: ff_cache_dump_data_blk
      Src: /src/haproxy/src/cache.c:1717,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - appctx
    - buf
    - len
    argTypes:
    - struct appctx*
    - struct buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1681
    functionDepth: 2
    functionLinenumber: 1681
    functionLinenumberEnd: 1732
    functionName: ff_cache_dump_msg
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - block_ptr
    - typeof
    - LIST_NEXT
    - memcpy
    - MIN
    - shctx_ptr
    - ff_cache_dump_data_blk
    linkageType: ''
    returnType: size_t
    signature: size_t ff_cache_dump_msg(struct appctx *appctx, struct buffer *buf,
      unsigned int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/cache.c:1741,1
    - Dst: MAX
      Src: /src/haproxy/src/cache.c:1742,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:1743,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/cache.c:1745,1
    - Dst: b_head
      Src: /src/haproxy/src/cache.c:1745,1
    - Dst: b_size
      Src: /src/haproxy/src/cache.c:1745,1
    - Dst: b_set_data
      Src: /src/haproxy/src/cache.c:1746,1
    - Dst: b_head
      Src: /src/haproxy/src/cache.c:1746,1
    - Dst: http_add_header
      Src: /src/haproxy/src/cache.c:1747,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1747,1
    - Dst: ist2
      Src: /src/haproxy/src/cache.c:1747,1
    - Dst: b_head
      Src: /src/haproxy/src/cache.c:1747,1
    - Dst: b_data
      Src: /src/haproxy/src/cache.c:1747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1734
    functionDepth: 3
    functionLinenumber: 1734
    functionLinenumberEnd: 1750
    functionName: htx_cache_add_age_hdr
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist
    - ist2
    - b_head
    - MAX
    - b_data
    - b_size
    - ultoa_o
    - chunk_reset
    - b_set_data
    - http_add_header
    linkageType: ''
    returnType: int
    signature: int htx_cache_add_age_hdr(struct appctx *appctx, struct htx *htx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:1756,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cache.c:1759,1
    - Dst: ff_cache_dump_msg
      Src: /src/haproxy/src/cache.c:1761,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/cache.c:1764,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/cache.c:1765,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/cache.c:1767,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/cache.c:1768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - appctx
    - buf
    - count
    - flags
    argTypes:
    - struct appctx*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1752
    functionDepth: 3
    functionLinenumber: 1752
    functionLinenumberEnd: 1773
    functionName: http_cache_fastfwd
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - block_ptr
    - ff_cache_dump_msg
    - applet_fl_clr
    - BUG_ON
    - applet_set_eoi
    - se_fl_clr
    - applet_set_eos
    linkageType: ''
    returnType: size_t
    signature: size_t http_cache_fastfwd(struct appctx *appctx, struct buffer *buf,
      size_t count, unsigned int flags)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:1779,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cache.c:1785,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cache.c:1788,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/cache.c:1788,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/cache.c:1792,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/cache.c:1792,1
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:1792,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:1795,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/cache.c:1802,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:1806,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cache.c:1806,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/cache.c:1811,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:1816,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cache.c:1816,1
    - Dst: htx_cache_dump_msg
      Src: /src/haproxy/src/cache.c:1821,1
    - Dst: htx_get_tail_type
      Src: /src/haproxy/src/cache.c:1822,1
    - Dst: htx_cache_add_age_hdr
      Src: /src/haproxy/src/cache.c:1823,1
    - Dst: http_replace_res_status
      Src: /src/haproxy/src/cache.c:1829,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1829,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1829,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/cache.c:1837,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/cache.c:1837,1
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:1837,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/cache.c:1838,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:1838,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:1838,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/cache.c:1842,1
    - Dst: htx_cache_dump_msg
      Src: /src/haproxy/src/cache.c:1852,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/cache.c:1854,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cache.c:1858,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/cache.c:1865,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/cache.c:1866,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/cache.c:1867,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/cache.c:1873,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/cache.c:1878,1
    - Dst: b_reset
      Src: /src/haproxy/src/cache.c:1882,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/cache.c:1883,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/cache.c:1889,1
    - Dst: b_reset
      Src: /src/haproxy/src/cache.c:1894,1
    - Dst: b_data
      Src: /src/haproxy/src/cache.c:1896,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1897,1
    - Dst: b_head
      Src: /src/haproxy/src/cache.c:1897,1
    - Dst: b_data
      Src: /src/haproxy/src/cache.c:1897,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/cache.c:1898,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/cache.c:1900,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/cache.c:1901,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 101
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1775
    functionDepth: 9
    functionLinenumber: 1775
    functionLinenumberEnd: 1904
    functionName: http_cache_io_handler
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - unlikely
    - applet_need_more_data
    - htx_sl_req_meth
    - istlen
    - se_fl_test
    - htx_is_empty
    - htx_cache_dump_msg
    - ist
    - applet_fl_clr
    - applet_fl_set
    - istptr
    - find_http_meth
    - applet_set_eos
    - htx_from_buf
    - se_fl_set
    - applet_set_error
    - htxbuf
    - b_head
    - htx_get_tail_type
    - htx_cache_add_age_hdr
    - memcpy
    - http_get_stline
    - appctx_get_buf
    - b_data
    - http_replace_res_status
    - block_ptr
    - htx_to_buf
    - BUG_ON
    - applet_fl_test
    - applet_set_eoi
    - se_fl_clr
    - b_reset
    linkageType: ''
    returnType: void
    signature: void http_cache_io_handler(struct appctx *appctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:1912,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:1912,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:1913,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cache.c:1919,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:1922,1
    - Dst: calloc
      Src: /src/haproxy/src/cache.c:1930,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:1932,1
    - Dst: strdup
      Src: /src/haproxy/src/cache.c:1936,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:1938,1
    - Dst: calloc
      Src: /src/haproxy/src/cache.c:1943,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:1945,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cache.c:1951,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:1958,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:1959,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 4
    argNames:
    - proxy
    - name
    - rule
    - err
    argTypes:
    - struct proxy*
    - char*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1907
    functionDepth: 5
    functionLinenumber: 1907
    functionLinenumberEnd: 1962
    functionName: parse_cache_rule
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - memprintf
    - list_for_each_entry
    - calloc
    - strcmp
    - LIST_APPEND
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int parse_cache_rule(struct proxy *proxy, const char *name, struct
      act_rule *rule, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_cache_rule
      Src: /src/haproxy/src/cache.c:1970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - args
    - orig_arg
    - proxy
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1964
    functionDepth: 6
    functionLinenumber: 1964
    functionLinenumberEnd: 1975
    functionName: parse_cache_store
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - parse_cache_rule
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_cache_store(const char **args, int *orig_arg,
      struct proxy *proxy,\n                                          struct act_rule
      *rule, char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:1983,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cache.c:1990,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/cache.c:1993,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/cache.c:1994,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/cache.c:2011,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2011,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:2012,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2012,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/cache.c:2014,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/cache.c:2017,1
    - Dst: blk_SHA1_Init
      Src: /src/haproxy/src/cache.c:2020,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/cache.c:2021,1
    - Dst: blk_SHA1_Final
      Src: /src/haproxy/src/cache.c:2022,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 1980
    functionDepth: 4
    functionLinenumber: 1980
    functionLinenumberEnd: 2025
    functionName: sha1_hosturi
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - chunk_istcat
    - htxbuf
    - ist
    - http_get_stline
    - http_find_header
    - blk_SHA1_Update
    - get_trash_chunk
    - blk_SHA1_Init
    - htx_sl_req_uri
    - blk_SHA1_Final
    linkageType: ''
    returnType: int
    signature: int sha1_hosturi(struct stream *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:2057,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2057,1
    - Dst: isteq
      Src: /src/haproxy/src/cache.c:2061,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2061,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cache.c:2072,1
    - Dst: shctx_row_data_get
      Src: /src/haproxy/src/cache.c:2074,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:2074,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:2074,1
    - Dst: b_orig
      Src: /src/haproxy/src/cache.c:2075,1
    - Dst: ist2
      Src: /src/haproxy/src/cache.c:2077,1
    - Dst: b_orig
      Src: /src/haproxy/src/cache.c:2077,1
    - Dst: http_compare_etags
      Src: /src/haproxy/src/cache.c:2085,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:2095,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2095,1
    - Dst: parse_http_date
      Src: /src/haproxy/src/cache.c:2096,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:2096,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:2096,1
    - Dst: my_timegm
      Src: /src/haproxy/src/cache.c:2097,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 3
    argNames:
    - cache
    - htx
    - entry
    argTypes:
    - struct cache*
    - struct htx*
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2041
    functionDepth: 5
    functionLinenumber: 2041
    functionLinenumberEnd: 2109
    functionName: should_send_notmodified_response
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - block_ptr
    - ist
    - ist2
    - http_compare_etags
    - b_orig
    - istptr
    - http_find_header
    - my_timegm
    - get_trash_chunk
    - parse_http_date
    - isteq
    - shctx_row_data_get
    - shctx_ptr
    - istlen
    linkageType: ''
    returnType: int
    signature: "int should_send_notmodified_response(struct cache *cache, struct htx
      *htx,\n                                            struct cache_entry *entry)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:2119,1
    - Dst: http_check_request_for_cacheability
      Src: /src/haproxy/src/cache.c:2130,1
    - Dst: sha1_hosturi
      Src: /src/haproxy/src/cache.c:2136,1
    - Dst: strm_fe
      Src: /src/haproxy/src/cache.c:2142,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/cache.c:2144,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/cache.c:2148,1
    - Dst: get_cache_tree_from_hash
      Src: /src/haproxy/src/cache.c:2151,1
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:2152,1
    - Dst: cache_rdlock
      Src: /src/haproxy/src/cache.c:2157,1
    - Dst: get_entry
      Src: /src/haproxy/src/cache.c:2158,1
    - Dst: retain_entry
      Src: /src/haproxy/src/cache.c:2166,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:2168,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:2169,1
    - Dst: shctx_row_detach
      Src: /src/haproxy/src/cache.c:2171,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:2174,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:2177,1
    - Dst: cache_rdunlock
      Src: /src/haproxy/src/cache.c:2178,1
    - Dst: http_request_build_secondary_key
      Src: /src/haproxy/src/cache.c:2184,1
    - Dst: cache_rdlock
      Src: /src/haproxy/src/cache.c:2185,1
    - Dst: get_secondary_entry
      Src: /src/haproxy/src/cache.c:2186,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:2194,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:2195,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:2197,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:2198,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:2202,1
    - Dst: retain_entry
      Src: /src/haproxy/src/cache.c:2203,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:2204,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:2206,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:2207,1
    - Dst: shctx_row_detach
      Src: /src/haproxy/src/cache.c:2208,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:2209,1
    - Dst: cache_rdunlock
      Src: /src/haproxy/src/cache.c:2212,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:2215,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:2218,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:2219,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:2220,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:2231,1
    - Dst: sc_applet_create
      Src: /src/haproxy/src/cache.c:2236,1
    - Dst: objt_applet
      Src: /src/haproxy/src/cache.c:2236,1
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cache.c:2237,1
    - Dst: should_send_notmodified_response
      Src: /src/haproxy/src/cache.c:2246,1
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:2246,1
    - Dst: strm_fe
      Src: /src/haproxy/src/cache.c:2248,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/cache.c:2250,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/cache.c:2254,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:2259,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:2260,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:2261,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:2262,1
    - Dst: cache_rdunlock
      Src: /src/haproxy/src/cache.c:2266,1
    - Dst: http_request_prebuild_full_secondary_key
      Src: /src/haproxy/src/cache.c:2273,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 102
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2111
    functionDepth: 6
    functionLinenumber: 2111
    functionLinenumberEnd: 2276
    functionName: http_action_req_cache_use
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - http_request_prebuild_full_secondary_key
    - retain_entry
    - sc_applet_create
    - applet_reserve_svcctx
    - cache_rdlock
    - should_send_notmodified_response
    - shctx_row_detach
    - shctx_ptr
    - get_entry
    - strm_fe
    - get_cache_tree_from_hash
    - shctx_row_reattach
    - http_check_request_for_cacheability
    - sha1_hosturi
    - objt_applet
    - get_secondary_entry
    - http_request_build_secondary_key
    - shctx_wrunlock
    - cache_rdunlock
    - htxbuf
    - shctx_wrlock
    - block_ptr
    - _HA_ATOMIC_INC
    - release_entry
    - read_u32
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return http_action_req_cache_use(struct act_rule *rule, struct
      proxy *px,\n                                         struct session *sess, struct
      stream *s, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_cache_rule
      Src: /src/haproxy/src/cache.c:2285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - args
    - orig_arg
    - proxy
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2279
    functionDepth: 6
    functionLinenumber: 2279
    functionLinenumberEnd: 2290
    functionName: parse_cache_use
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - parse_cache_rule
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret parse_cache_use(const char **args, int *orig_arg,
      struct proxy *proxy,\n                                          struct act_rule
      *rule, char **err)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2296,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2299,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cache.c:2305,1
    - Dst: calloc
      Src: /src/haproxy/src/cache.c:2313,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2315,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/cache.c:2320,1
    - Dst: strlen
      Src: /src/haproxy/src/cache.c:2321,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2322,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cache.c:2327,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2328,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2329,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2341,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cache.c:2345,1
    - Dst: strtoul
      Src: /src/haproxy/src/cache.c:2350,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2352,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2359,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2368,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cache.c:2369,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2375,1
    - Dst: atoi
      Src: /src/haproxy/src/cache.c:2380,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2381,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cache.c:2385,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2391,1
    - Dst: strtoul
      Src: /src/haproxy/src/cache.c:2396,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2398,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2404,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cache.c:2405,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2411,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2415,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2417,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2420,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2424,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cache.c:2428,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2434,1
    - Dst: strtoul
      Src: /src/haproxy/src/cache.c:2439,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2441,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2449,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 139
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2292
    functionDepth: 9
    functionLinenumber: 2292
    functionLinenumberEnd: 2455
    functionName: cfg_parse_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - alertif_too_many_args
    - list_for_each_entry
    - calloc
    - strcmp
    - strtoul
    - strlcpy2
    - ha_alert
    - ha_warning
    - atoi
    - strlen
    linkageType: ''
    returnType: int
    signature: int cfg_parse_cache(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2466,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2477,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cache.c:2485,1
    - Dst: ha_free
      Src: /src/haproxy/src/cache.c:2490,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2459
    functionDepth: 9
    functionLinenumber: 2459
    functionLinenumberEnd: 2493
    functionName: cfg_post_parse_section_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - ha_free
    - ha_alert
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int cfg_post_parse_section_cache()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/cache.c:2504,1
    - Dst: shctx_init
      Src: /src/haproxy/src/cache.c:2506,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2511,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2513,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:2524,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cache.c:2526,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cache.c:2527,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2528,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/cache.c:2531,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cache.c:2533,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/cache.c:2534,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cache.c:2544,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2549,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2550,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2495
    functionDepth: 9
    functionLinenumber: 2495
    functionLinenumberEnd: 2562
    functionName: post_check_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - HA_RWLOCK_INIT
    - memcpy
    - HA_SPIN_INIT
    - shctx_init
    - list_for_each_entry
    - list_for_each_entry_safe
    - strcmp
    - LIST_APPEND
    - free
    - ha_alert
    - LIST_INIT
    linkageType: ''
    returnType: int
    signature: int post_check_cache()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - encoding_name
    - ','
    - encoding_value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2583
    functionDepth: 0
    functionLinenumber: 2583
    functionLinenumberEnd: 2592
    functionName: CHECK_ENCODING
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ENCODING(str, encoding_name, encoding_value)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:2612,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2621,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2622,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2625,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2626,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2629,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2630,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2633,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2634,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2637,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2638,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2641,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2642,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2645,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2646,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2649,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2650,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2653,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2654,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2656,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2659,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2660,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2663,1
    - Dst: http_trim_leading_spht
      Src: /src/haproxy/src/cache.c:2673,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:2674,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2679,1
    - Dst: http_trim_leading_spht
      Src: /src/haproxy/src/cache.c:2681,1
    - Dst: isteq
      Src: /src/haproxy/src/cache.c:2683,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2683,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 3
    argNames:
    - encoding
    - encoding_value
    - has_null_weight
    argTypes:
    - struct ist
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2604
    functionDepth: 2
    functionLinenumber: 2604
    functionLinenumberEnd: 2689
    functionName: parse_encoding_value
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 1
    functionsReached:
    - http_trim_leading_spht
    - ist
    - isteq
    - istnext
    - istlen
    - CHECK_ENCODING
    linkageType: ''
    returnType: int
    signature: "int parse_encoding_value(struct ist encoding, unsigned int *encoding_value,\n\t\t\t\tunsigned
      int *has_null_weight)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:2720,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:2731,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/src/cache.c:2735,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:2735,1
    - Dst: parse_encoding_value
      Src: /src/haproxy/src/cache.c:2738,1
    - Dst: write_u32
      Src: /src/haproxy/src/cache.c:2769,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - htx
    - hdr_name
    - buf
    - buf_len
    argTypes:
    - struct htx*
    - struct ist
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2775
      start: 2704
    functionDepth: 3
    functionLinenumber: 2704
    functionLinenumberEnd: 2775
    functionName: accept_encoding_normalizer
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - write_u32
    - parse_encoding_value
    - istptr
    - ist2bin_lc
    - istlen
    linkageType: ''
    returnType: int
    signature: "int accept_encoding_normalizer(struct htx *htx, struct ist hdr_name,\n\t\t\t\t
      \     char *buf, unsigned int *buf_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:2792,1
    - Dst: write_u64
      Src: /src/haproxy/src/cache.c:2794,1
    - Dst: XXH3
      Src: /src/haproxy/src/cache.c:2794,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:2794,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:2794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - htx
    - hdr_name
    - buf
    - buf_len
    argTypes:
    - struct htx*
    - struct ist
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2786
    functionDepth: 1
    functionLinenumber: 2786
    functionLinenumberEnd: 2799
    functionName: default_normalizer
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - XXH3
    - istptr
    - write_u64
    - istlen
    linkageType: ''
    returnType: int
    signature: "int default_normalizer(struct htx *htx, struct ist hdr_name,\n\t\t\t
      \     char *buf, unsigned int *buf_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:2807,1
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:2808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ref
    - new
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2826
      start: 2805
    functionDepth: 1
    functionLinenumber: 2805
    functionLinenumberEnd: 2826
    functionName: accept_encoding_bitmap_cmp
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - read_u32
    linkageType: ''
    returnType: int
    signature: int accept_encoding_bitmap_cmp(const void *ref, const void *new, unsigned
      int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_request_build_secondary_key
      Src: /src/haproxy/src/cache.c:2844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2840
    functionDepth: 1
    functionLinenumber: 2840
    functionLinenumberEnd: 2845
    functionName: http_request_prebuild_full_secondary_key
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 1
    functionsReached:
    - http_request_build_secondary_key
    linkageType: ''
    returnType: int
    signature: int http_request_prebuild_full_secondary_key(struct stream *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:2861,1
    - Dst: struct vary_hashing_information*::norm_fn
      Src: /src/haproxy/src/cache.c:2876,1
    - Dst: memset
      Src: /src/haproxy/src/cache.c:2882,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - s
    - vary_signature
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2891
      start: 2858
    functionDepth: 1
    functionLinenumber: 2858
    functionLinenumberEnd: 2891
    functionName: http_request_build_secondary_key
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 2
    functionsReached:
    - htxbuf
    - memset
    - struct vary_hashing_information*::norm_fn
    linkageType: ''
    returnType: int
    signature: int http_request_build_secondary_key(struct stream *s, int vary_signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - vary_signature
    - prebuilt_key
    argTypes:
    - unsigned int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2898
    functionDepth: 0
    functionLinenumber: 2898
    functionLinenumberEnd: 2919
    functionName: http_request_reduce_secondary_key
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int http_request_reduce_secondary_key(unsigned int vary_signature,\n\t\t\t\t\t
      \    char prebuilt_key[HTTP_CACHE_SEC_KEY_LEN])"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:2934,1
    - Dst: strdup
      Src: /src/haproxy/src/cache.c:2937,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:2939,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/cache.c:2946,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2951,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:2958,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cache.c:2964,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2965,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2966,1
    - Dst: calloc
      Src: /src/haproxy/src/cache.c:2972,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:2974,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2989,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2990,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2923
    functionDepth: 5
    functionLinenumber: 2923
    functionLinenumberEnd: 2992
    functionName: parse_cache_flt
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - memprintf
    - calloc
    - list_for_each_entry_safe
    - strcmp
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int parse_cache_flt(char **args, int *cur_arg, struct proxy *px,\n\t\tstruct
      flt_conf *fconf, char **err, void *private)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cache.c:2997,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cache.c:2999,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cache.c:3002,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:3002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3004
      start: 2995
    functionDepth: 2
    functionLinenumber: 2995
    functionLinenumberEnd: 3004
    functionName: cli_parse_show_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - typeof
    - cli_has_level
    - LIST_ELEM
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_cache(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/cache.c:3011,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/cache.c:3016,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:3021,1
    - Dst: shctx_rdlock
      Src: /src/haproxy/src/cache.c:3027,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cache.c:3028,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:3028,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:3028,1
    - Dst: shctx_rdunlock
      Src: /src/haproxy/src/cache.c:3029,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cache.c:3030,1
    - Dst: cache_rdlock
      Src: /src/haproxy/src/cache.c:3044,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/cache.c:3047,1
    - Dst: container_of
      Src: /src/haproxy/src/cache.c:3054,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cache.c:3058,1
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:3058,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cache.c:3060,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cache.c:3061,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:3062,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:3062,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:3063,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cache.c:3068,1
    - Dst: cache_rdunlock
      Src: /src/haproxy/src/cache.c:3069,1
    - Dst: cache_rdunlock
      Src: /src/haproxy/src/cache.c:3073,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/cache.c:3077,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/cache.c:3081,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3083
      start: 3007
    functionDepth: 2
    functionLinenumber: 3007
    functionLinenumberEnd: 3083
    functionName: cli_io_handler_show_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - block_ptr
    - free_trash_chunk
    - list_for_each_entry_from
    - alloc_trash_chunk
    - chunk_printf
    - chunk_appendf
    - shctx_rdunlock
    - container_of
    - cache_rdlock
    - eb32_lookup_ge
    - read_u32
    - cache_rdunlock
    - shctx_ptr
    - shctx_rdlock
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_cache(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3089
    functionDepth: 0
    functionLinenumber: 3089
    functionLinenumberEnd: 3097
    functionName: smp_fetch_res_cache_hit
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int smp_fetch_res_cache_hit(const struct arg *args, struct sample
      *smp,\n                        const char *kw, void *private)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_appctx
      Src: /src/haproxy/src/cache.c:3112,1
    - Dst: strlen
      Src: /src/haproxy/src/cache.c:3119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3102
    functionDepth: 1
    functionLinenumber: 3102
    functionLinenumberEnd: 3124
    functionName: smp_fetch_res_cache_name
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - sc_appctx
    - strlen
    linkageType: ''
    returnType: int
    signature: "int smp_fetch_res_cache_name(const struct arg *args, struct sample
      *smp,\n                         const char *kw, void *private)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_random64
      Src: /src/haproxy/src/cache.c:3130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3128
    functionDepth: 3
    functionLinenumber: 3128
    functionLinenumberEnd: 3131
    functionName: cache_init
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - ha_random64
    linkageType: ''
    returnType: void
    signature: void cache_init()
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/frontend.c:54,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/frontend.c:59,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/frontend.c:61,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/frontend.c:62,1
    - Dst: log_orig
      Src: /src/haproxy/src/frontend.c:62,1
    - Dst: likely
      Src: /src/haproxy/src/frontend.c:64,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/frontend.c:64,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/frontend.c:68,1
    - Dst: log_orig
      Src: /src/haproxy/src/frontend.c:68,1
    - Dst: sc_src
      Src: /src/haproxy/src/frontend.c:71,1
    - Dst: send_log
      Src: /src/haproxy/src/frontend.c:73,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/frontend.c:79,1
    - Dst: sc_dst
      Src: /src/haproxy/src/frontend.c:82,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/frontend.c:84,1
    - Dst: get_host_port
      Src: /src/haproxy/src/frontend.c:85,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/frontend.c:87,1
    - Dst: send_log
      Src: /src/haproxy/src/frontend.c:90,1
    - Dst: get_host_port
      Src: /src/haproxy/src/frontend.c:91,1
    - Dst: send_log
      Src: /src/haproxy/src/frontend.c:99,1
    - Dst: unlikely
      Src: /src/haproxy/src/frontend.c:108,1
    - Dst: sc_conn
      Src: /src/haproxy/src/frontend.c:116,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/frontend.c:117,1
    - Dst: MIN
      Src: /src/haproxy/src/frontend.c:118,1
    - Dst: memcpy
      Src: /src/haproxy/src/frontend.c:119,1
    - Dst: sc_src
      Src: /src/haproxy/src/frontend.c:124,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/frontend.c:126,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/frontend.c:130,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/frontend.c:133,1
    - Dst: get_host_port
      Src: /src/haproxy/src/frontend.c:135,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/frontend.c:141,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/frontend.c:147,1
    - Dst: write
      Src: /src/haproxy/src/frontend.c:147,1
    - Dst: unlikely
      Src: /src/haproxy/src/frontend.c:153,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/frontend.c:154,1
    - Dst: unlikely
      Src: /src/haproxy/src/frontend.c:158,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/frontend.c:159,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/frontend.c:163,1
    - Dst: http_create_txn
      Src: /src/haproxy/src/frontend.c:163,1
    - Dst: pcli_create_txn
      Src: /src/haproxy/src/frontend.c:165,1
    - Dst: pool_free
      Src: /src/haproxy/src/frontend.c:173,1
    - Dst: pool_free
      Src: /src/haproxy/src/frontend.c:175,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 89
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 50
    functionDepth: 11
    functionLinenumber: 50
    functionLinenumberEnd: 178
    functionName: frontend_accept
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 0
    functionsReached:
    - unlikely
    - DISGUISE
    - sc_conn
    - struct stream*::do_log
    - likely
    - lf_expr_isempty
    - sc_src
    - log_orig_proxy
    - chunk_printf
    - IS_HTX_STRM
    - pool_free
    - pool_zalloc
    - memcpy
    - http_create_txn
    - write
    - objt_conn
    - log_orig
    - strlcpy2
    - send_log
    - addr_to_str
    - pcli_create_txn
    - get_host_port
    - LIST_ISEMPTY
    - MIN
    - conn_get_alpn
    - sc_dst
    linkageType: ''
    returnType: int
    signature: int frontend_accept(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/frontend.c:193,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/frontend.c:201,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/frontend.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 205
    functionName: increment_actconn
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 2
    functionsReached:
    - unlikely
    - __ha_cpu_relax
    - _HA_ATOMIC_CAS
    linkageType: ''
    returnType: int
    signature: int increment_actconn()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: smp_fetch_fe_id
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fe_id(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/frontend.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 233
    functionName: smp_fetch_fe_name
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fe_name(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/frontend.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: smp_fetch_fe_defbe
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fe_defbe(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/frontend.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 269
    functionName: smp_fetch_fe_req_rate
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 0
    functionsReached:
    - COUNTERS_SHARED_TOTAL
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fe_req_rate(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/frontend.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 289
    functionName: smp_fetch_fe_sess_rate
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 0
    functionsReached:
    - COUNTERS_SHARED_TOTAL
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fe_sess_rate(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 309
    functionName: smp_fetch_fe_conn
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fe_conn(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/frontend.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: smp_fetch_fe_client_timeout
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 0
    functionsReached:
    - TICKS_TO_MS
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fe_client_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/frontend.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - smp
    - km
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: smp_fetch_fe_tarpit_timeout
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 0
    functionsReached:
    - TICKS_TO_MS
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fe_tarpit_timeout(const struct arg *args, struct sample
      *smp, const char *km, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_make_safe
      Src: /src/haproxy/src/frontend.c:332,1
    - Dst: proxy_fe_by_name
      Src: /src/haproxy/src/frontend.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 338
    functionName: sample_conv_fe_exists
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 0
    functionsReached:
    - proxy_fe_by_name
    - smp_make_safe
    linkageType: ''
    returnType: int
    signature: int sample_conv_fe_exists(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 453
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON(x)
  - 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: BUG_ON_HOT
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_HOT(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncbmb_head
      Src: /src/haproxy/src/ncbmbuf.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - 'off'
    argTypes:
    - struct ncbmbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: ncbmb_peek
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - ncbmb_head
    linkageType: ''
    returnType: char
    signature: char *ncbmb_peek(const struct ncbmbuf *buf, ncb_sz_t off)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:34,1
    - Dst: memset
      Src: /src/haproxy/src/ncbmbuf.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - buf
    - 'off'
    - len
    argTypes:
    - struct ncbmbuf*
    - ncb_sz_t
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 65
    functionName: ncbmb_set_bitmap
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - ncbmb_size
    - memset
    linkageType: ''
    returnType: void
    signature: void ncbmb_set_bitmap(struct ncbmbuf *buf, ncb_sz_t off, ncb_sz_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct itbmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: itbmap_is_full
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int itbmap_is_full(const struct itbmap *it)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:87,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - it
    - 'off'
    - buf
    argTypes:
    - struct itbmap*
    - ncb_sz_t
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 119
    functionName: itbmap_load
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - ncbmb_size
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: "void itbmap_load(struct itbmap *it, ncb_sz_t off,\n                        const
      struct ncbmbuf *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:128,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:128,1
    - Dst: itbmap_load
      Src: /src/haproxy/src/ncbmbuf.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - 'off'
    argTypes:
    - struct ncbmbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: itbmap_get
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - ncbmb_size
    - BUG_ON
    - itbmap_load
    linkageType: ''
    returnType: struct itbmap
    signature: struct itbmap itbmap_get(const struct ncbmbuf *buf, ncb_sz_t off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:141,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:141,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:143,1
    - Dst: itbmap_load
      Src: /src/haproxy/src/ncbmbuf.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - prev
    argTypes:
    - struct ncbmbuf*
    - struct itbmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 154
    functionName: itbmap_next
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - ncbmb_size
    - BUG_ON_HOT
    - itbmap_load
    linkageType: ''
    returnType: struct itbmap
    signature: "struct itbmap itbmap_next(const struct ncbmbuf *buf,\n                                 const
      struct itbmap *prev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - i
    argTypes:
    - unsigned char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: bit_unset
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bit_unset(unsigned char *value, char i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:171,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/ncbmbuf.c:171,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:173,1
    - Dst: memset
      Src: /src/haproxy/src/ncbmbuf.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - head
    argTypes:
    - struct ncbmbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: ncbmb_init
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - ncbmb_is_null
    - BUG_ON_HOT
    - memset
    linkageType: ''
    returnType: void
    signature: void ncbmb_init(struct ncbmbuf *buf, ncb_sz_t head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/ncbmbuf.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - area
    - size
    - head
    argTypes:
    - char*
    - ncb_sz_t
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: ncbmb_make
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: struct ncbmbuf
    signature: struct ncbmbuf ncbmb_make(char *area, ncb_sz_t size, ncb_sz_t head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: ncbmb_total_data
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncb_sz_t
    signature: ncb_sz_t ncbmb_total_data(const struct ncbmbuf *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/ncbmbuf.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 217
    functionName: ncbmb_is_empty
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 2
    functionsReached:
    - ncbmb_is_null
    linkageType: ''
    returnType: int
    signature: int ncbmb_is_empty(const struct ncbmbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: ncbmb_is_full
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncbmb_is_full(const struct ncbmbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: ncbmb_is_fragmented
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncbmb_is_fragmented(const struct ncbmbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:237,1
    - Dst: itbmap_is_full
      Src: /src/haproxy/src/ncbmbuf.c:241,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:243,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - buf
    - 'off'
    argTypes:
    - struct ncbmbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 261
    functionName: ncbmb_data
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 4
    functionsReached:
    - itbmap_get
    - itbmap_is_full
    - itbmap_next
    linkageType: ''
    returnType: ncb_sz_t
    signature: ncb_sz_t ncbmb_data(const struct ncbmbuf *buf, ncb_sz_t off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncbmb_peek
      Src: /src/haproxy/src/ncbmbuf.c:271,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:273,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:275,1
    - Dst: ncbmb_wrap
      Src: /src/haproxy/src/ncbmbuf.c:277,1
    - Dst: ncbmb_wrap
      Src: /src/haproxy/src/ncbmbuf.c:278,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbmbuf.c:280,1
    - Dst: ncbmb_set_bitmap
      Src: /src/haproxy/src/ncbmbuf.c:281,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbmbuf.c:283,1
    - Dst: ncbmb_orig
      Src: /src/haproxy/src/ncbmbuf.c:283,1
    - Dst: ncbmb_set_bitmap
      Src: /src/haproxy/src/ncbmbuf.c:284,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbmbuf.c:287,1
    - Dst: ncbmb_set_bitmap
      Src: /src/haproxy/src/ncbmbuf.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - buf
    - 'off'
    - data
    - len
    - mode
    argTypes:
    - struct ncbmbuf*
    - ncb_sz_t
    - char*
    - ncb_sz_t
    - enum ncb_add_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 292
    functionName: ncbmb_add
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 1
    functionsReached:
    - memcpy
    - ncbmb_peek
    - ncbmb_wrap
    - ncbmb_set_bitmap
    - ncbmb_orig
    - BUG_ON_HOT
    linkageType: ''
    returnType: enum ncb_ret
    signature: "enum ncb_ret ncbmb_add(struct ncbmbuf *buf, ncb_sz_t off,\n                       const
      char *data, ncb_sz_t len, enum ncb_add_mode mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:304,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:304,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:307,1
    - Dst: bit_unset
      Src: /src/haproxy/src/ncbmbuf.c:326,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:334,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:335,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:335,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - adv
    argTypes:
    - struct ncbmbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 341
    functionName: ncbmb_advance
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 2
    functionsReached:
    - bit_unset
    - ncbmb_size
    - itbmap_get
    - BUG_ON_HOT
    linkageType: ''
    returnType: enum ncb_ret
    signature: enum ncb_ret ncbmb_advance(struct ncbmbuf *buf, ncb_sz_t adv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:350,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:353,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:354,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:355,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:358,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:360,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - b
    - line
    argTypes:
    - struct ncbmbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 362
    functionName: ncbmbuf_print_buf
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ncbmbuf_print_buf(struct ncbmbuf *b, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - 'off'
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: NCBMB_DATA_EQ
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCBMB_DATA_EQ(buf, off, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ncbmbuf.c:369,1
    - Dst: calloc
      Src: /src/haproxy/src/ncbmbuf.c:370,1
    - Dst: memset
      Src: /src/haproxy/src/ncbmbuf.c:373,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:376,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:377,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:377,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:379,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:380,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:380,1
    - Dst: ncbmb_advance
      Src: /src/haproxy/src/ncbmbuf.c:381,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:382,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:382,1
    - Dst: ncbmb_advance
      Src: /src/haproxy/src/ncbmbuf.c:383,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:384,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:385,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:385,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:388,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:389,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:389,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:390,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:391,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:391,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:392,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:393,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:394,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:394,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:395,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:396,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:397,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:397,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:398,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:401,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:401,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:403,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:404,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:404,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:405,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:406,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:406,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:407,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:410,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:411,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:413,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:414,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:414,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:415,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:416,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:416,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:417,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:418,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:418,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:419,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:422,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:422,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:424,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:425,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:425,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:426,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:427,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:427,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:428,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:429,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:429,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:430,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:431,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:432,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:432,1
    - Dst: ncbmb_advance
      Src: /src/haproxy/src/ncbmbuf.c:433,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:434,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:434,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:435,1
    - Dst: free
      Src: /src/haproxy/src/ncbmbuf.c:437,1
    - Dst: free
      Src: /src/haproxy/src/ncbmbuf.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 367
    functionDepth: 4
    functionLinenumber: 367
    functionLinenumberEnd: 438
    functionName: test_ncbmb
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - ncbmbuf_print_buf
    - memset
    - ncbmb_advance
    - ncbmb_make
    - calloc
    - free
    - ncbmb_add
    - NCBMB_DATA_EQ
    - fprintf
    linkageType: ''
    returnType: void
    signature: void test_ncbmb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - it
    - ','
    - m
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: ITBMAP_CHECK
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITBMAP_CHECK(it, m, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ncbmbuf.c:446,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:450,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:450,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:451,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:451,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:452,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:452,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:454,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:454,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:455,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:455,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:458,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:458,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:459,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:459,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:460,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:460,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:461,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:461,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:462,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:462,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:463,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:463,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:464,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:464,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:467,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:467,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:468,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:468,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:469,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:469,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:470,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:470,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:473,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:473,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:474,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:474,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:475,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:475,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:476,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:476,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:479,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:479,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:480,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:480,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:481,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:481,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:482,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:482,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:485,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:485,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:486,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:486,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:487,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:487,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:488,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:488,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:491,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:491,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:492,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:492,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:493,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:493,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:496,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:496,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:497,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:497,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:498,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:498,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:500,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:500,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:501,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:501,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:503,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:503,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:504,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:504,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:507,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:507,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:508,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:508,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:509,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:509,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:512,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:512,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:513,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:513,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:514,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:514,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:515,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:515,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:516,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:516,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:517,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:517,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:519,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:519,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:520,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:520,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:521,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:521,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:522,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:522,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:525,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:525,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:526,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:526,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:527,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:527,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:528,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:528,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:529,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:529,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:530,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:530,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:532,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:532,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:533,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:533,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:534,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:534,1
    - Dst: free
      Src: /src/haproxy/src/ncbmbuf.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 537
    functionName: test_itbmap
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - ncbmbuf_print_buf
    - BUG_ON
    - ncbmb_make
    - calloc
    - free
    - ITBMAP_CHECK
    - itbmap_get
    - itbmap_next
    linkageType: ''
    returnType: void
    signature: void test_itbmap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ncbmbuf.c:542,1
    - Dst: calloc
      Src: /src/haproxy/src/ncbmbuf.c:543,1
    - Dst: memset
      Src: /src/haproxy/src/ncbmbuf.c:546,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:548,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:549,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:550,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:551,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:552,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:553,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:554,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:555,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:556,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:557,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:558,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:559,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:560,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:561,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:562,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:563,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:564,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:565,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:566,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:567,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:568,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:569,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:570,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:571,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:572,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:573,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:574,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:576,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:577,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:578,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:579,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:580,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:581,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:582,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:583,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:584,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:585,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:586,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:587,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:588,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:589,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:590,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:591,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:592,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:593,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:594,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:595,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:596,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:597,1
    - Dst: free
      Src: /src/haproxy/src/ncbmbuf.c:599,1
    - Dst: free
      Src: /src/haproxy/src/ncbmbuf.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 600
    functionName: test_ngtcp2_crypto
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - memset
    - ncbmb_make
    - calloc
    - free
    - ncbmb_add
    - NCBMB_DATA_EQ
    linkageType: ''
    returnType: void
    signature: void test_ngtcp2_crypto(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ncbmb
      Src: /src/haproxy/src/ncbmbuf.c:604,1
    - Dst: test_itbmap
      Src: /src/haproxy/src/ncbmbuf.c:605,1
    - Dst: test_ngtcp2_crypto
      Src: /src/haproxy/src/ncbmbuf.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 602
    functionDepth: 5
    functionLinenumber: 602
    functionLinenumberEnd: 608
    functionName: main
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 30
    functionsReached:
    - test_itbmap
    - test_ngtcp2_crypto
    - test_ncbmb
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_openssl_compat.c:43,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:45,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - ssl
    - ext_type
    - context
    - out
    - outlen
    - x
    - chainidx
    - al
    - add_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char**
    - size_t*
    - X509*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: qc_ssl_compat_add_tps_cb
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int qc_ssl_compat_add_tps_cb(SSL *ssl, unsigned int ext_type, unsigned
      int context,\n                                    const unsigned char **out,
      size_t *outlen,\n                                    X509 *x, size_t chainidx,
      int *al, void *add_arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xprt_get
      Src: /src/haproxy/src/quic_openssl_compat.c:61,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/haproxy/src/quic_openssl_compat.c:68,1
    - Dst: SSL_CTX_has_client_custom_ext
      Src: /src/haproxy/src/quic_openssl_compat.c:70,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/haproxy/src/quic_openssl_compat.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - bind_conf
    - ctx
    argTypes:
    - struct bind_conf*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: quic_tls_compat_init
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 3
    functionsReached:
    - SSL_CTX_has_client_custom_ext
    - SSL_CTX_set_keylog_callback
    - xprt_get
    - SSL_CTX_add_custom_ext
    linkageType: ''
    returnType: int
    signature: int quic_tls_compat_init(struct bind_conf *bind_conf, SSL_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:91,1
    - Dst: tls_aead
      Src: /src/haproxy/src/quic_openssl_compat.c:97,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/haproxy/src/quic_openssl_compat.c:101,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_openssl_compat.c:104,1
    - Dst: quic_hkdf_expand_label
      Src: /src/haproxy/src/quic_openssl_compat.c:108,1
    - Dst: tls_md
      Src: /src/haproxy/src/quic_openssl_compat.c:108,1
    - Dst: quic_hkdf_expand_label
      Src: /src/haproxy/src/quic_openssl_compat.c:113,1
    - Dst: tls_md
      Src: /src/haproxy/src/quic_openssl_compat.c:113,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 6
    argNames:
    - qc
    - keys
    - level
    - cipher
    - secret
    - secret_len
    argTypes:
    - struct quic_conn*
    - struct quic_tls_compat_keys*
    - enum ssl_encryption_level_t
    - SSL_CIPHER*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 124
    functionName: quic_tls_compat_set_encryption_secret
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_key_length
    - TRACE_LEAVE
    - memcpy
    - TRACE_ENTER
    - tls_md
    - quic_hkdf_expand_label
    - tls_aead
    linkageType: ''
    returnType: int
    signature: "int quic_tls_compat_set_encryption_secret(struct quic_conn *qc,\n
      \                                                struct quic_tls_compat_keys
      *keys,\n                                                 enum ssl_encryption_level_t
      level,\n                                                 const SSL_CIPHER *cipher,\n
      \                                                const uint8_t *secret, size_t
      secret_len)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_openssl_compat.c:138,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:144,1
    - Dst: strncmp
      Src: /src/haproxy/src/quic_openssl_compat.c:151,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_openssl_compat.c:153,1
    - Dst: strncmp
      Src: /src/haproxy/src/quic_openssl_compat.c:156,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_openssl_compat.c:158,1
    - Dst: strncmp
      Src: /src/haproxy/src/quic_openssl_compat.c:161,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_openssl_compat.c:163,1
    - Dst: strncmp
      Src: /src/haproxy/src/quic_openssl_compat.c:166,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_openssl_compat.c:168,1
    - Dst: struct quic_openssl_compat*::method::set_encryption_secrets
      Src: /src/haproxy/src/quic_openssl_compat.c:212,1
    - Dst: SSL_get_current_cipher
      Src: /src/haproxy/src/quic_openssl_compat.c:218,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/haproxy/src/quic_openssl_compat.c:223,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/quic_openssl_compat.c:224,1
    - Dst: struct quic_openssl_compat*::method::set_encryption_secrets
      Src: /src/haproxy/src/quic_openssl_compat.c:228,1
    - Dst: quic_tls_compat_set_encryption_secret
      Src: /src/haproxy/src/quic_openssl_compat.c:231,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:236,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 79
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 237
    functionName: quic_tls_compat_keylog_callback
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 1
    functionsReached:
    - SSL_CIPHER_get_id
    - struct quic_openssl_compat*::method::set_encryption_secrets
    - TRACE_LEAVE
    - quic_tls_compat_set_encryption_secret
    - TRACE_ENTER
    - quic_set_tls_alert
    - qc_is_back
    - strncmp
    - SSL_get_current_cipher
    - SSL_get_ex_data
    linkageType: ''
    returnType: void
    signature: void quic_tls_compat_keylog_callback(const SSL *ssl, const char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:246,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - qc
    - rec
    - out
    - plain
    argTypes:
    - struct quic_conn*
    - struct quic_tls_compat_record*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 265
    functionName: quic_tls_compat_create_header
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: size_t
    signature: "size_t quic_tls_compat_create_header(struct quic_conn *qc,\n                                            struct
      quic_tls_compat_record *rec,\n                                            unsigned
      char *out, int plain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - nonce
    - len
    - pn
    argTypes:
    - unsigned char*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: quic_tls_compute_nonce
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_tls_compute_nonce(unsigned char *nonce, size_t len, uint64_t
      pn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_nid
      Src: /src/haproxy/src/quic_openssl_compat.c:290,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:292,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/haproxy/src/quic_openssl_compat.c:293,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/quic_openssl_compat.c:301,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/quic_openssl_compat.c:302,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/quic_openssl_compat.c:304,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/quic_openssl_compat.c:305,1
    - Dst: EVP_EncryptUpdate
      Src: /src/haproxy/src/quic_openssl_compat.c:307,1
    - Dst: EVP_EncryptUpdate
      Src: /src/haproxy/src/quic_openssl_compat.c:308,1
    - Dst: EVP_EncryptUpdate
      Src: /src/haproxy/src/quic_openssl_compat.c:309,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/haproxy/src/quic_openssl_compat.c:310,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/quic_openssl_compat.c:312,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/src/quic_openssl_compat.c:320,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:321,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 17
    argCount: 10
    argNames:
    - qc
    - cipher
    - s
    - out
    - outlen
    - nonce
    - in
    - inlen
    - ad
    - adlen
    argTypes:
    - struct quic_conn*
    - EVP_CIPHER*
    - struct quic_tls_secret*
    - unsigned char*
    - size_t*
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 323
    functionName: quic_tls_tls_seal
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    - EVP_EncryptInit_ex
    - TRACE_LEAVE
    - TRACE_ENTER
    - EVP_CIPHER_CTX_new
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_ctrl
    - EVP_EncryptFinal_ex
    - EVP_CIPHER_nid
    linkageType: ''
    returnType: int
    signature: "int quic_tls_tls_seal(struct quic_conn *qc,\n                             const
      EVP_CIPHER *cipher, struct quic_tls_secret *s,\n                             unsigned
      char *out, size_t *outlen, unsigned char *nonce,\n                             const
      unsigned char *in, size_t inlen,\n                             const unsigned
      char *ad, size_t adlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:338,1
    - Dst: quic_tls_compat_create_header
      Src: /src/haproxy/src/quic_openssl_compat.c:341,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_openssl_compat.c:348,1
    - Dst: quic_tls_compute_nonce
      Src: /src/haproxy/src/quic_openssl_compat.c:349,1
    - Dst: quic_tls_tls_seal
      Src: /src/haproxy/src/quic_openssl_compat.c:351,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - qc
    - level
    - rec
    - res
    argTypes:
    - struct quic_conn*
    - enum ssl_encryption_level_t
    - struct quic_tls_compat_record*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 359
    functionName: quic_tls_compat_create_record
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - memcpy
    - quic_tls_tls_seal
    - TRACE_ENTER
    - quic_tls_compat_create_header
    - quic_tls_compute_nonce
    linkageType: ''
    returnType: int
    signature: "int quic_tls_compat_create_record(struct quic_conn *qc,\n                                         enum
      ssl_encryption_level_t level,\n                                         struct
      quic_tls_compat_record *rec,\n                                         unsigned
      char *res)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_openssl_compat.c:367,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:373,1
    - Dst: struct quic_openssl_compat*::method::add_handshake_data
      Src: /src/haproxy/src/quic_openssl_compat.c:379,1
    - Dst: struct quic_openssl_compat*::method::send_alert
      Src: /src/haproxy/src/quic_openssl_compat.c:384,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 6
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 391
    functionName: quic_tls_compat_msg_callback
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 0
    functionsReached:
    - struct quic_openssl_compat*::method::add_handshake_data
    - struct quic_openssl_compat*::method::send_alert
    - TRACE_LEAVE
    - TRACE_ENTER
    - SSL_get_ex_data
    linkageType: ''
    returnType: void
    signature: "void quic_tls_compat_msg_callback(int write_p, int version, int content_type,\n
      \                                 const void *buf, size_t len, SSL *ssl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_openssl_compat.c:397,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:399,1
    - Dst: BIO_new
      Src: /src/haproxy/src/quic_openssl_compat.c:401,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/quic_openssl_compat.c:401,1
    - Dst: BIO_new
      Src: /src/haproxy/src/quic_openssl_compat.c:405,1
    - Dst: BIO_s_null
      Src: /src/haproxy/src/quic_openssl_compat.c:405,1
    - Dst: SSL_set_bio
      Src: /src/haproxy/src/quic_openssl_compat.c:409,1
    - Dst: SSL_set_max_early_data
      Src: /src/haproxy/src/quic_openssl_compat.c:411,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:421,1
    - Dst: BIO_free
      Src: /src/haproxy/src/quic_openssl_compat.c:424,1
    - Dst: BIO_free
      Src: /src/haproxy/src/quic_openssl_compat.c:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - ssl
    - quic_method
    argTypes:
    - SSL*
    - SSL_QUIC_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 427
    functionName: SSL_set_quic_method
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ENTER
    - BIO_free
    - BIO_new
    - SSL_set_bio
    - BIO_s_null
    - BIO_s_mem
    - SSL_get_ex_data
    - SSL_set_max_early_data
    linkageType: ''
    returnType: int
    signature: int SSL_set_quic_method(SSL *ssl, const SSL_QUIC_METHOD *quic_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_openssl_compat.c:431,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:433,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 436
    functionName: SSL_quic_read_level
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 1
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    - SSL_get_ex_data
    linkageType: ''
    returnType: enum ssl_encryption_level_t
    signature: enum ssl_encryption_level_t SSL_quic_read_level(const SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_openssl_compat.c:441,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:443,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 446
    functionName: SSL_quic_write_level
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    - SSL_get_ex_data
    linkageType: ''
    returnType: enum ssl_encryption_level_t
    signature: enum ssl_encryption_level_t SSL_quic_write_level(const SSL *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_openssl_compat.c:457,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:460,1
    - Dst: SSL_get_rbio
      Src: /src/haproxy/src/quic_openssl_compat.c:462,1
    - Dst: memset
      Src: /src/haproxy/src/quic_openssl_compat.c:465,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_openssl_compat.c:470,1
    - Dst: quic_tls_compat_create_header
      Src: /src/haproxy/src/quic_openssl_compat.c:473,1
    - Dst: BIO_write
      Src: /src/haproxy/src/quic_openssl_compat.c:474,1
    - Dst: BIO_write
      Src: /src/haproxy/src/quic_openssl_compat.c:475,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_openssl_compat.c:481,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_openssl_compat.c:482,1
    - Dst: quic_tls_compat_create_record
      Src: /src/haproxy/src/quic_openssl_compat.c:492,1
    - Dst: BIO_write
      Src: /src/haproxy/src/quic_openssl_compat.c:496,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:505,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 4
    argNames:
    - ssl
    - level
    - data
    - len
    argTypes:
    - SSL*
    - enum ssl_encryption_level_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 507
    functionName: SSL_provide_quic_data
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 1
    functionsReached:
    - memset
    - TRACE_LEAVE
    - memcpy
    - BIO_write
    - TRACE_ENTER
    - quic_tls_compat_create_header
    - SSL_get_rbio
    - quic_tls_compat_create_record
    - SSL_get_ex_data
    - QUIC_MIN
    linkageType: ''
    returnType: int
    signature: "int SSL_provide_quic_data(SSL *ssl, enum ssl_encryption_level_t level,\n
      \                         const uint8_t *data, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_openssl_compat.c:511,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:514,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 517
    functionName: SSL_process_quic_post_handshake
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 1
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: int SSL_process_quic_post_handshake(SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_openssl_compat.c:521,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:526,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ssl
    - params
    - params_len
    argTypes:
    - SSL*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 529
    functionName: SSL_set_quic_transport_params
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 1
    functionsReached:
    - TRACE_ENTER
    - TRACE_LEAVE
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: int SSL_set_quic_transport_params(SSL *ssl, const uint8_t *params,
      size_t params_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/proxy.c:172,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:177,1
    - Dst: stktable_compatible_sample
      Src: /src/haproxy/src/proxy.c:181,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:182,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:188,1
    - Dst: stktable_alloc_data_type
      Src: /src/haproxy/src/proxy.c:190,1
    - Dst: stktable_alloc_data_type
      Src: /src/haproxy/src/proxy.c:191,1
    - Dst: in_proxies_list
      Src: /src/haproxy/src/proxy.c:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - curproxy
    - mrule
    argTypes:
    - struct proxy*
    - struct sticking_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 167
    functionDepth: 9
    functionLinenumber: 167
    functionLinenumberEnd: 197
    functionName: resolve_stick_rule
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - stktable_compatible_sample
    - ha_free
    - in_proxies_list
    - stktable_find_by_name
    - ha_alert
    - stktable_alloc_data_type
    linkageType: ''
    returnType: int
    signature: int resolve_stick_rule(struct proxy *curproxy, struct sticking_rule
      *mrule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:204,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:205,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/proxy.c:206,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - rules
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: free_stick_rules
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - free_acl_cond
    - free
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void free_stick_rules(struct list *rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:204,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:205,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/proxy.c:206,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 107
    functionsReached:
    - LIST_DELETE
    - free_acl_cond
    - free
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(rule, ruleb, rules, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:216,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:217,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:218,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:219,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - srules
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 222
    functionName: free_server_rules
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - lf_expr_deinit
    - free_acl_cond
    - free
    linkageType: ''
    returnType: void
    signature: void free_server_rules(struct list *srules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:216,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:217,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:218,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:219,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 107
    functionsReached:
    - LIST_DELETE
    - lf_expr_deinit
    - free_acl_cond
    - free
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(srule, sruleb, srules, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/proxy.c:235,1
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/proxy.c:237,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/proxy.c:238,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/proxy.c:239,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:242,1
    - Dst: drop_file_name
      Src: /src/haproxy/src/proxy.c:243,1
    - Dst: counters_fe_shared_drop
      Src: /src/haproxy/src/proxy.c:244,1
    - Dst: counters_be_shared_drop
      Src: /src/haproxy/src/proxy.c:245,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:246,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:247,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:248,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:249,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:250,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:251,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:252,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:253,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:254,1
    - Dst: istfree
      Src: /src/haproxy/src/proxy.c:255,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:256,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:258,1
    - Dst: istfree
      Src: /src/haproxy/src/proxy.c:260,1
    - Dst: istfree
      Src: /src/haproxy/src/proxy.c:261,1
    - Dst: http_ext_clean
      Src: /src/haproxy/src/proxy.c:263,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:265,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:266,1
    - Dst: prune_acl
      Src: /src/haproxy/src/proxy.c:267,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:268,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:271,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:272,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:273,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:274,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:275,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:276,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:277,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:279,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:282,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:283,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:284,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:285,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:287,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/proxy.c:288,1
    - Dst: free_logger
      Src: /src/haproxy/src/proxy.c:289,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:295,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/proxy.c:296,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/proxy.c:298,1
    - Dst: free_email_alert
      Src: /src/haproxy/src/proxy.c:300,1
    - Dst: stats_uri_auth_drop
      Src: /src/haproxy/src/proxy.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 228
    functionDepth: 7
    functionLinenumber: 228
    functionLinenumberEnd: 303
    functionName: proxy_free_common
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - HA_SPIN_LOCK
    - free
    - free_act_rules
    - prune_acl
    - chunk_destroy
    - cebis_item_delete
    - counters_fe_shared_drop
    - stats_uri_auth_drop
    - ha_free
    - istfree
    - drop_file_name
    - counters_be_shared_drop
    - LIST_DEL_INIT
    - http_ext_clean
    - lf_expr_deinit
    - LIST_DELETE
    - free_email_alert
    - HA_SPIN_UNLOCK
    - free_logger
    linkageType: ''
    returnType: void
    signature: void proxy_free_common(struct proxy *px)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: proxy_free_common
      Src: /src/haproxy/src/proxy.c:323,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/proxy.c:326,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:327,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:328,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:329,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:331,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:333,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:334,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:335,1
    - Dst: guid_remove
      Src: /src/haproxy/src/proxy.c:338,1
    - Dst: EXTRA_COUNTERS_FREE
      Src: /src/haproxy/src/proxy.c:340,1
    - Dst: EXTRA_COUNTERS_FREE
      Src: /src/haproxy/src/proxy.c:341,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:343,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:344,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:345,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:346,1
    - Dst: free_server_rules
      Src: /src/haproxy/src/proxy.c:349,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:351,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:352,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:353,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:355,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:356,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:357,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:360,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:361,1
    - Dst: http_free_redirect_rule
      Src: /src/haproxy/src/proxy.c:362,1
    - Dst: free_stick_rules
      Src: /src/haproxy/src/proxy.c:365,1
    - Dst: free_stick_rules
      Src: /src/haproxy/src/proxy.c:366,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:373,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:374,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:375,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:384,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:385,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:386,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:392,1
    - Dst: struct proxy*::lbprm::ops::server_deinit
      Src: /src/haproxy/src/proxy.c:396,1
    - Dst: srv_drop
      Src: /src/haproxy/src/proxy.c:398,1
    - Dst: srv_free_params
      Src: /src/haproxy/src/proxy.c:405,1
    - Dst: srv_free
      Src: /src/haproxy/src/proxy.c:406,1
    - Dst: struct proxy*::lbprm::ops::proxy_deinit
      Src: /src/haproxy/src/proxy.c:410,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:412,1
    - Dst: guid_remove
      Src: /src/haproxy/src/proxy.c:413,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:414,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:415,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:416,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:417,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:418,1
    - Dst: counters_fe_shared_drop
      Src: /src/haproxy/src/proxy.c:420,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:421,1
    - Dst: task_destroy
      Src: /src/haproxy/src/proxy.c:423,1
    - Dst: EXTRA_COUNTERS_FREE
      Src: /src/haproxy/src/proxy.c:425,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:426,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:430,1
    - Dst: struct bind_conf*::xprt::destroy_bind_conf
      Src: /src/haproxy/src/proxy.c:432,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:433,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:434,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:435,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:436,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:437,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:438,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:439,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:440,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:441,1
    - Dst: flt_deinit
      Src: /src/haproxy/src/proxy.c:444,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:446,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:449,1
    - Dst: task_destroy
      Src: /src/haproxy/src/proxy.c:451,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:453,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:454,1
    - Dst: stktable_deinit
      Src: /src/haproxy/src/proxy.c:456,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:457,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:458,1
    - Dst: HA_RWLOCK_DESTROY
      Src: /src/haproxy/src/proxy.c:460,1
    - Dst: HA_RWLOCK_DESTROY
      Src: /src/haproxy/src/proxy.c:461,1
    - Dst: proxy_unref_defaults
      Src: /src/haproxy/src/proxy.c:463,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 110
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 308
    functionDepth: 8
    functionLinenumber: 308
    functionLinenumberEnd: 464
    functionName: deinit_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - free_server_rules
    - list_for_each_entry_safe
    - free
    - free_acl_cond
    - srv_drop
    - srv_free
    - counters_fe_shared_drop
    - proxy_unref_defaults
    - task_destroy
    - EXTRA_COUNTERS_FREE
    - ha_free
    - struct proxy*::lbprm::ops::proxy_deinit
    - pool_destroy
    - struct proxy*::lbprm::ops::server_deinit
    - stktable_deinit
    - proxy_free_common
    - struct bind_conf*::xprt::destroy_bind_conf
    - srv_free_params
    - free_stick_rules
    - lf_expr_deinit
    - http_free_redirect_rule
    - release_sample_expr
    - LIST_DELETE
    - list_for_each_entry
    - HA_RWLOCK_DESTROY
    - guid_remove
    - flt_deinit
    linkageType: ''
    returnType: void
    signature: void deinit_proxy(struct proxy *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/proxy.c:475,1
    - Dst: deinit_proxy
      Src: /src/haproxy/src/proxy.c:479,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 469
    functionDepth: 9
    functionLinenumber: 469
    functionLinenumberEnd: 481
    functionName: proxy_drop
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 10
    functionsReached:
    - ha_free
    - HA_ATOMIC_SUB_FETCH
    - deinit_proxy
    linkageType: ''
    returnType: void
    signature: void proxy_drop(struct proxy *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - cap
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 502
    functionName: proxy_cap_str
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *proxy_cap_str(int cap)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 524
    functionName: proxy_mode_str
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *proxy_mode_str(int mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:529,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:531,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:533,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 539
    functionName: str_to_proxy_mode
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: enum pr_mode
    signature: enum pr_mode str_to_proxy_mode(const char *mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/proxy.c:555,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/proxy.c:558,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/proxy.c:559,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/proxy.c:567,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/proxy.c:568,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/proxy.c:576,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/proxy.c:577,1
    - Dst: strlen
      Src: /src/haproxy/src/proxy.c:585,1
    - Dst: strlen
      Src: /src/haproxy/src/proxy.c:585,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - word
    - extra
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 547
    functionDepth: 4
    functionLinenumber: 547
    functionLinenumberEnd: 588
    functionName: proxy_find_best_option
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - word_fingerprint_distance
    - make_word_fingerprint
    - strlen
    linkageType: ''
    returnType: char
    signature: char *proxy_find_best_option(const char *word, const char **extra)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ceb32_item_lookup_ge
      Src: /src/haproxy/src/proxy.c:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - from
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 605
    functionName: proxy_get_next_id
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - ceb32_item_lookup_ge
    linkageType: ''
    returnType: uint
    signature: uint proxy_get_next_id(uint from)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:629,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:633,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:638,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:642,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:646,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:650,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:654,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:659,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:664,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:668,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:672,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:676,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:680,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:684,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:685,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:687,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:688,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:690,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:691,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:694,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:703,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:707,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:709,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:714,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:719,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/proxy.c:723,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:724,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:725,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:730,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:731,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:736,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:741,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/proxy.c:745,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 118
    argCount: 7
    argNames:
    - args
    - section
    - proxy
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 616
    functionDepth: 5
    functionLinenumber: 616
    functionLinenumberEnd: 747
    functionName: proxy_parse_timeout
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - proxy_type_str
    - strcmp
    - MS_TO_TICKS
    - warn_if_lower
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_timeout(char **args, int section, struct proxy *proxy,\n
      \                              const struct proxy *defpx, const char *file,
      int line,\n                               char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:768,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:773,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:778,1
    - Dst: strtoul
      Src: /src/haproxy/src/proxy.c:782,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:784,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:789,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:790,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:794,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 7
    argNames:
    - args
    - section
    - proxy
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 756
    functionDepth: 5
    functionLinenumber: 756
    functionLinenumberEnd: 800
    functionName: proxy_parse_rate_limit
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - strtoul
    - proxy_type_str
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_rate_limit(char **args, int section, struct proxy
      *proxy,\n                                  const struct proxy *defpx, const
      char *file, int line,\n                                  char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:820,1
    - Dst: strtol
      Src: /src/haproxy/src/proxy.c:824,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:826,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:831,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 7
    argNames:
    - args
    - section
    - proxy
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 809
    functionDepth: 5
    functionLinenumber: 809
    functionLinenumberEnd: 839
    functionName: proxy_parse_max_ka_queue
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strtol
    - proxy_type_str
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_max_ka_queue(char **args, int section, struct proxy
      *proxy,\n                                    const struct proxy *defpx, const
      char *file, int line,\n                                    char **err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:854,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:860,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:866,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:875,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:882,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:883,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:884,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:889,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:890,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:896,1
    - Dst: strtol
      Src: /src/haproxy/src/proxy.c:903,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:905,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:912,1
    - Dst: calloc
      Src: /src/haproxy/src/proxy.c:917,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:919,1
    - Dst: create_pool
      Src: /src/haproxy/src/proxy.c:925,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:927,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:928,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:932,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:937,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:945,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 7
    argNames:
    - args
    - section
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 848
    functionDepth: 5
    functionLinenumber: 848
    functionLinenumberEnd: 948
    functionName: proxy_parse_declare
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - calloc
    - strcmp
    - free
    - strtol
    - create_pool
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_declare(char **args, int section, struct proxy *curpx,\n
      \                              const struct proxy *defpx, const char *file,
      int line,\n                               char **err)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:959,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:963,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:968,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:970,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:972,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:974,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:976,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:978,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:980,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:982,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:984,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:986,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:988,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:990,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:992,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:994,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:996,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:998,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1000,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1002,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1007,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1009,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1013,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 7
    argNames:
    - args
    - section
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 951
    functionDepth: 5
    functionLinenumber: 951
    functionLinenumberEnd: 1021
    functionName: proxy_parse_retry_on
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_retry_on(char **args, int section, struct proxy *curpx,\n
      \                              const struct proxy *defpx, const char *file,
      int line,\n                               char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1030,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1034,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1040,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1042,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1044,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1047,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 7
    argNames:
    - args
    - section
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1024
    functionDepth: 5
    functionLinenumber: 1024
    functionLinenumberEnd: 1052
    functionName: proxy_parse_hash_preserve_affinity
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_hash_preserve_affinity(char **args, int section, struct
      proxy *curpx,\n\t\t\t\t\t\t\t\t\tconst struct proxy *defpx, const char *file,
      int line,\n\t\t\t\t\t\t\t\t\tchar **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1067,1
    - Dst: strtol
      Src: /src/haproxy/src/proxy.c:1071,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1073,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1077,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1079,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1080,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1084,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1086,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1087,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1093,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 7
    argNames:
    - args
    - section
    - proxy
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1056
    functionDepth: 5
    functionLinenumber: 1056
    functionLinenumberEnd: 1098
    functionName: proxy_parse_tcpka_cnt
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - strtol
    - proxy_type_str
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_tcpka_cnt(char **args, int section, struct proxy *proxy,\n
      \                                   const struct proxy *defpx, const char *file,
      int line,\n                                    char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1114,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:1117,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1119,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1124,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1129,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1133,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1135,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1136,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1140,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1142,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1143,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1149,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 7
    argNames:
    - args
    - section
    - proxy
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1103
    functionDepth: 5
    functionLinenumber: 1103
    functionLinenumberEnd: 1154
    functionName: proxy_parse_tcpka_idle
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    - strcmp
    - proxy_type_str
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_tcpka_idle(char **args, int section, struct proxy
      *proxy,\n                                  const struct proxy *defpx, const
      char *file, int line,\n                                  char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1170,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:1173,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1175,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1180,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1185,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1189,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1191,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1192,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1196,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1198,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1199,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1205,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 7
    argNames:
    - args
    - section
    - proxy
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1159
    functionDepth: 5
    functionLinenumber: 1159
    functionLinenumberEnd: 1210
    functionName: proxy_parse_tcpka_intvl
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    - strcmp
    - proxy_type_str
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_tcpka_intvl(char **args, int section, struct proxy
      *proxy,\n\t\t                   const struct proxy *defpx, const char *file,
      int line,\n                                   char **err)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1221,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1226,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1230,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1230,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1231,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/proxy.c:1235,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1236,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/proxy.c:1240,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1241,1
    - Dst: calloc
      Src: /src/haproxy/src/proxy.c:1245,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1247,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1253,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/proxy.c:1254,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:1259,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1213
    functionDepth: 6
    functionLinenumber: 1213
    functionLinenumberEnd: 1261
    functionName: proxy_parse_force_be_switch
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - calloc
    - strcmp
    - LIST_APPEND
    - warnif_cond_conflicts
    - free_acl_cond
    - build_acl_cond
    - LIST_INIT
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_force_be_switch(char **args, int section_type, struct
      proxy *curpx,\n                                       const struct proxy *defpx,
      const char *file, int line,\n                                       char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1271,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1276,1
    - Dst: guid_insert
      Src: /src/haproxy/src/proxy.c:1281,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1282,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1263
    functionDepth: 9
    functionLinenumber: 1263
    functionLinenumberEnd: 1288
    functionName: proxy_parse_guid
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - ha_free
    - memprintf
    - ha_alert
    - guid_insert
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_guid(char **args, int section_type, struct proxy *curpx,\n
      \                           const struct proxy *defpx, const char *file, int
      line,\n                            char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cebis_item_insert
      Src: /src/haproxy/src/proxy.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1299
    functionName: proxy_store_name
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - cebis_item_insert
    linkageType: ''
    returnType: void
    signature: void proxy_store_name(struct proxy *px)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ceb32_item_lookup
      Src: /src/haproxy/src/proxy.c:1309,1
    - Dst: ceb32_item_next_dup
      Src: /src/haproxy/src/proxy.c:1310,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - id
    - cap
    - table
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1320
    functionName: proxy_find_by_id
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 3
    functionsReached:
    - ceb32_item_lookup
    - ceb32_item_next_dup
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *proxy_find_by_id(int id, int cap, int table)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: proxy_find_by_id
      Src: /src/haproxy/src/proxy.c:1333,1
    - Dst: atoi
      Src: /src/haproxy/src/proxy.c:1333,1
    - Dst: cebis_item_lookup
      Src: /src/haproxy/src/proxy.c:1341,1
    - Dst: cebis_item_next_dup
      Src: /src/haproxy/src/proxy.c:1342,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - name
    - cap
    - table
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1328
    functionDepth: 2
    functionLinenumber: 1328
    functionLinenumberEnd: 1353
    functionName: proxy_find_by_name
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 8
    functionsReached:
    - atoi
    - proxy_find_by_id
    - cebis_item_lookup
    - cebis_item_next_dup
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *proxy_find_by_name(const char *name, int cap, int table)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/proxy.c:1407,1
    - Dst: proxy_find_by_id
      Src: /src/haproxy/src/proxy.c:1418,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/proxy.c:1465,1
    - Dst: proxy_find_by_id
      Src: /src/haproxy/src/proxy.c:1471,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 52
    argCount: 4
    argNames:
    - cap
    - name
    - id
    - diff
    argTypes:
    - int
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1393
    functionDepth: 3
    functionLinenumber: 1393
    functionLinenumberEnd: 1481
    functionName: proxy_find_best_match
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_find_by_id
    - proxy_find_by_name
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *proxy_find_best_match(int cap, const char *name, int
      id, int *diff)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1492,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1493,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1498,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1499,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1504,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1506,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1511,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1513,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1518,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1489
    functionDepth: 9
    functionLinenumber: 1489
    functionLinenumberEnd: 1524
    functionName: proxy_cfg_ensure_no_http
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int proxy_cfg_ensure_no_http(struct proxy *curproxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1537,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1532
    functionDepth: 9
    functionLinenumber: 1532
    functionLinenumberEnd: 1542
    functionName: proxy_cfg_ensure_no_log
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int proxy_cfg_ensure_no_log(struct proxy *curproxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/proxy.c:1550,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1552,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1553,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1554,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1555,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1556,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1557,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1558,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1559,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1560,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1561,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1562,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1563,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1564,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1565,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1566,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1567,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1568,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1570,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/proxy.c:1572,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1573,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1574,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1575,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1576,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1577,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1578,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1579,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1580,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1581,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1582,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/proxy.c:1584,1
    - Dst: proxy_reset_timeouts
      Src: /src/haproxy/src/proxy.c:1591,1
    - Dst: guid_init
      Src: /src/haproxy/src/proxy.c:1601,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/proxy.c:1602,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/proxy.c:1607,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/proxy.c:1609,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/proxy.c:1610,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/proxy.c:1611,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/proxy.c:1612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 62
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1548
    functionDepth: 2
    functionLinenumber: 1548
    functionLinenumberEnd: 1629
    functionName: init_new_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_reset_timeouts
    - lf_expr_init
    - memset
    - HA_RWLOCK_INIT
    - MT_LIST_INIT
    - guid_init
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void init_new_proxy(struct proxy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_aligned_zalloc_typed
      Src: /src/haproxy/src/proxy.c:1636,1
    - Dst: typeof
      Src: /src/haproxy/src/proxy.c:1636,1
    - Dst: queue_init
      Src: /src/haproxy/src/proxy.c:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1632
    functionDepth: 1
    functionLinenumber: 1632
    functionLinenumberEnd: 1641
    functionName: proxy_init_per_thr
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - queue_init
    - typeof
    - ha_aligned_zalloc_typed
    linkageType: ''
    returnType: int
    signature: int proxy_init_per_thr(struct proxy *px)
  - BBCount: 178
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:1658,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/proxy.c:1659,1
    - Dst: xprt_get
      Src: /src/haproxy/src/proxy.c:1664,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/proxy.c:1670,1
    - Dst: ist
      Src: /src/haproxy/src/proxy.c:1670,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1673,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1676,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/proxy.c:1692,1
    - Dst: isteq
      Src: /src/haproxy/src/proxy.c:1694,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1695,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1696,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1704,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1705,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1712,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1713,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1732,1
    - Dst: xprt_get
      Src: /src/haproxy/src/proxy.c:1736,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1745,1
    - Dst: xprt_get
      Src: /src/haproxy/src/proxy.c:1746,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1747,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1749,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1752,1
    - Dst: strlen
      Src: /src/haproxy/src/proxy.c:1758,1
    - Dst: strstr
      Src: /src/haproxy/src/proxy.c:1766,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1767,1
    - Dst: strstr
      Src: /src/haproxy/src/proxy.c:1774,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1775,1
    - Dst: strstr
      Src: /src/haproxy/src/proxy.c:1785,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1787,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/proxy.c:1793,1
    - Dst: xprt_get
      Src: /src/haproxy/src/proxy.c:1800,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1806,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1808,1
    - Dst: conn_calc_max_streams
      Src: /src/haproxy/src/proxy.c:1812,1
    - Dst: ha_notice
      Src: /src/haproxy/src/proxy.c:1813,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1816,1
    - Dst: bind_complete_thread_setup
      Src: /src/haproxy/src/proxy.c:1822,1
    - Dst: bind_generate_guid
      Src: /src/haproxy/src/proxy.c:1829,1
    - Dst: proxy_cfg_ensure_no_http
      Src: /src/haproxy/src/proxy.c:1838,1
    - Dst: proxy_cfg_ensure_no_log
      Src: /src/haproxy/src/proxy.c:1839,1
    - Dst: proxy_cfg_ensure_no_log
      Src: /src/haproxy/src/proxy.c:1843,1
    - Dst: proxy_cfg_ensure_no_http
      Src: /src/haproxy/src/proxy.c:1848,1
    - Dst: proxy_cfg_ensure_no_log
      Src: /src/haproxy/src/proxy.c:1849,1
    - Dst: proxy_cfg_ensure_no_http
      Src: /src/haproxy/src/proxy.c:1854,1
    - Dst: proxy_cfg_ensure_no_http
      Src: /src/haproxy/src/proxy.c:1858,1
    - Dst: proxy_cfg_ensure_no_log
      Src: /src/haproxy/src/proxy.c:1859,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1865,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1866,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:1871,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1872,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1873,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1880,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1881,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1885,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1886,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1906,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1907,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1913,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1918,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1923,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1931,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1936,1
    - Dst: free_email_alert
      Src: /src/haproxy/src/proxy.c:1938,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1941,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1947,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1948,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1953,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1958,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1964,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1965,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1967,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/proxy.c:1975,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1977,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1981,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1987,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/proxy.c:1988,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1988,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/proxy.c:1990,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1990,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:1994,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1998,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:2014,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/proxy.c:2025,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/proxy.c:2030,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2031,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2033,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/proxy.c:2037,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/proxy.c:2039,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2042,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:2053,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/proxy.c:2059,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2061,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2065,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2071,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/proxy.c:2072,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2072,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/proxy.c:2074,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2074,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2078,1
    - Dst: warnif_tcp_http_cond
      Src: /src/haproxy/src/proxy.c:2089,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:2093,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/proxy.c:2103,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/proxy.c:2106,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2107,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2109,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/proxy.c:2113,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/proxy.c:2115,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2118,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:2124,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/proxy.c:2129,1
    - Dst: warnif_tcp_http_cond
      Src: /src/haproxy/src/proxy.c:2130,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2133,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2134,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2138,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:2144,1
    - Dst: resolve_stick_rule
      Src: /src/haproxy/src/proxy.c:2149,1
    - Dst: warnif_tcp_http_cond
      Src: /src/haproxy/src/proxy.c:2152,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:2156,1
    - Dst: resolve_stick_rule
      Src: /src/haproxy/src/proxy.c:2159,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/proxy.c:2164,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/proxy.c:2165,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/proxy.c:2166,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/proxy.c:2167,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/proxy.c:2168,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/proxy.c:2169,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/proxy.c:2170,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/proxy.c:2172,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2176,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2178,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/proxy.c:2180,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2180,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:2187,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2188,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2195,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2197,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2206,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:2218,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2222,1
    - Dst: free_email_alert
      Src: /src/haproxy/src/proxy.c:2224,1
    - Dst: init_email_alert
      Src: /src/haproxy/src/proxy.c:2229,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2230,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2231,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2238,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2240,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2248,1
    - Dst: parse_http_req_cond
      Src: /src/haproxy/src/proxy.c:2267,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/proxy.c:2273,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2276,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:2283,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:2295,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:2296,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/proxy.c:2304,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/proxy.c:2307,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2308,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2310,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/proxy.c:2322,1
    - Dst: add_to_logformat_list
      Src: /src/haproxy/src/proxy.c:2325,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/proxy.c:2326,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2327,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2329,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/proxy.c:2347,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/proxy.c:2349,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2350,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2352,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/proxy.c:2364,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/proxy.c:2367,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2368,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2370,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/proxy.c:2391,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2396,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2397,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2400,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2404,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2406,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/proxy.c:2408,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2412,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2413,1
    - Dst: smp_resolve_args
      Src: /src/haproxy/src/proxy.c:2425,1
    - Dst: indent_msg
      Src: /src/haproxy/src/proxy.c:2428,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2429,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2430,1
    - Dst: acl_find_targets
      Src: /src/haproxy/src/proxy.c:2432,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2439,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2443,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2457,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2458,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2464,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2465,1
    - Dst: create_pool
      Src: /src/haproxy/src/proxy.c:2472,1
    - Dst: create_pool
      Src: /src/haproxy/src/proxy.c:2478,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2489,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/proxy.c:2522,1
    - Dst: cebis_item_prev_dup
      Src: /src/haproxy/src/proxy.c:2525,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2526,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2528,1
    - Dst: server_get_next_id
      Src: /src/haproxy/src/proxy.c:2543,1
    - Dst: server_index_id
      Src: /src/haproxy/src/proxy.c:2545,1
    - Dst: set_usermsgs_ctx
      Src: /src/haproxy/src/proxy.c:2562,1
    - Dst: srv_minmax_conn_apply
      Src: /src/haproxy/src/proxy.c:2564,1
    - Dst: check_server_tcpcheck
      Src: /src/haproxy/src/proxy.c:2566,1
    - Dst: xprt_get
      Src: /src/haproxy/src/proxy.c:2577,1
    - Dst: xprt_get
      Src: /src/haproxy/src/proxy.c:2577,1
    - Dst: xprt_get
      Src: /src/haproxy/src/proxy.c:2578,1
    - Dst: xprt_get
      Src: /src/haproxy/src/proxy.c:2579,1
    - Dst: xprt_get
      Src: /src/haproxy/src/proxy.c:2579,1
    - Dst: xprt_get
      Src: /src/haproxy/src/proxy.c:2580,1
    - Dst: srv_configure_auto_sni
      Src: /src/haproxy/src/proxy.c:2589,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2590,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2592,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2604,1
    - Dst: srv_apply_track
      Src: /src/haproxy/src/proxy.c:2607,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/proxy.c:2614,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/proxy.c:2628,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:2638,1
    - Dst: struct proxy*::lbprm::ops::proxy_init
      Src: /src/haproxy/src/proxy.c:2649,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/proxy.c:2655,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2661,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/proxy.c:2662,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/proxy.c:2662,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2663,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2664,1
    - Dst: proxy_check_http_errors
      Src: /src/haproxy/src/proxy.c:2668,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2674,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2675,1
    - Dst: stats_uri_auth_drop
      Src: /src/haproxy/src/proxy.c:2677,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2682,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2683,1
    - Dst: isttest
      Src: /src/haproxy/src/proxy.c:2687,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2688,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2689,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2693,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2694,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2695,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2699,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2700,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2701,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2705,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2706,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2707,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2711,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2712,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2713,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2721,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2722,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2732,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2733,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2742,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2743,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2755,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2756,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2761,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2762,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2767,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2768,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2775,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2776,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2787,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2788,1
    - Dst: flt_check
      Src: /src/haproxy/src/proxy.c:2798,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2804,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2805,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2822,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2829,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2830,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2833,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2834,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:2849,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/proxy.c:2858,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/proxy.c:2861,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/proxy.c:2864,1
    - Dst: ist
      Src: /src/haproxy/src/proxy.c:2864,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/proxy.c:2875,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/proxy.c:2875,1
    - Dst: isteq
      Src: /src/haproxy/src/proxy.c:2877,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2878,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2879,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/proxy.c:2886,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2887,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2888,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/proxy.c:2894,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2895,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2896,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/proxy.c:2917,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/proxy.c:2919,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2921,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:2922,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/proxy.c:2927,1
    CyclomaticComplexity: 311
    EdgeCount: 311
    ICount: 783
    argCount: 2
    argNames:
    - px
    - err_code
    argTypes:
    - struct proxy*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 1643
    functionDepth: 10
    functionLinenumber: 1643
    functionLinenumberEnd: 2936
    functionName: proxy_finalize
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - srv_set_dyncookie
    - ha_notice
    - isttest
    - LIST_NEXT
    - proxy_type_str
    - smp_resolve_args
    - srv_is_quic
    - free
    - LIST_APPEND
    - sample_src_names
    - lf_expr_isempty
    - srv_minmax_conn_apply
    - bind_generate_guid
    - acl_find_targets
    - free_tcpcheck_vars
    - create_tcpcheck_ruleset
    - init_email_alert
    - lf_expr_init
    - parse_logformat_string
    - ist
    - add_to_logformat_list
    - server_get_next_id
    - stats_uri_auth_drop
    - ha_free
    - strcmp
    - create_pool
    - mark_tainted
    - get_mux_proto
    - isteq
    - conn_calc_max_streams
    - sample_parse_expr
    - strstr
    - parse_http_req_cond
    - indent_msg
    - warnif_tcp_http_cond
    - set_usermsgs_ctx
    - cebis_item_prev_dup
    - srv_apply_track
    - reset_usermsgs_ctx
    - resolve_stick_rule
    - srv_configure_auto_sni
    - bind_complete_thread_setup
    - find_tcpcheck_ruleset
    - lf_expr_deinit
    - strdup
    - check_action_rules
    - proxy_cfg_ensure_no_http
    - lf_expr_postcheck
    - HA_RWLOCK_INIT
    - list_for_each_entry
    - free_email_alert
    - lf_expr_compile
    - check_server_tcpcheck
    - xprt_get
    - conn_pr_mode_to_proto_mode
    - server_index_id
    - flt_check
    - LIST_ISEMPTY
    - server_find_by_name
    - ceb_intree
    - ha_alert
    - conn_get_best_mux_entry
    - ha_warning
    - struct proxy*::lbprm::ops::proxy_init
    - proxy_mode_str
    - proxy_be_by_name
    - proxy_cfg_ensure_no_log
    - proxy_check_http_errors
    - strlen
    linkageType: ''
    returnType: int
    signature: int proxy_finalize(struct proxy *px, int *err_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: proxy_free_common
      Src: /src/haproxy/src/proxy.c:2946,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2950,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2951,1
    - Dst: srv_free
      Src: /src/haproxy/src/proxy.c:2952,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2957,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:2958,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2959,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2966,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:2967,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2968,1
    - Dst: proxy_release_conf_errors
      Src: /src/haproxy/src/proxy.c:2972,1
    - Dst: deinit_proxy_tcpcheck
      Src: /src/haproxy/src/proxy.c:2973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - defproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2974
      start: 2942
    functionDepth: 8
    functionLinenumber: 2942
    functionLinenumberEnd: 2974
    functionName: defaults_px_free
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_free_common
    - ha_free
    - deinit_proxy_tcpcheck
    - proxy_release_conf_errors
    - free
    - pool_destroy
    - srv_free
    linkageType: ''
    returnType: void
    signature: void defaults_px_free(struct proxy *defproxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:2983,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:2984,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/proxy.c:2986,1
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/proxy.c:2987,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:2988,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/proxy.c:2989,1
    - Dst: defaults_px_free
      Src: /src/haproxy/src/proxy.c:2991,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2993
      start: 2981
    functionDepth: 9
    functionLinenumber: 2981
    functionLinenumberEnd: 2993
    functionName: defaults_px_destroy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - LIST_DELETE
    - BUG_ON
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - free
    - defaults_px_free
    - cebis_item_delete
    linkageType: ''
    returnType: void
    signature: void defaults_px_destroy(struct proxy *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cebis_item_first
      Src: /src/haproxy/src/proxy.c:3004,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:3005,1
    - Dst: cebis_item_next
      Src: /src/haproxy/src/proxy.c:3006,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/proxy.c:3007,1
    - Dst: defaults_px_destroy
      Src: /src/haproxy/src/proxy.c:3008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3000
    functionDepth: 10
    functionLinenumber: 3000
    functionLinenumberEnd: 3010
    functionName: defaults_px_destroy_all_unref
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - HA_ATOMIC_LOAD
    - cebis_item_first
    - cebis_item_next
    - defaults_px_destroy
    linkageType: ''
    returnType: void
    signature: void defaults_px_destroy_all_unref(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:3020,1
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/proxy.c:3021,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/proxy.c:3022,1
    - Dst: defaults_px_destroy
      Src: /src/haproxy/src/proxy.c:3023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3025
      start: 3018
    functionDepth: 10
    functionLinenumber: 3018
    functionLinenumberEnd: 3025
    functionName: defaults_px_detach
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - defaults_px_destroy
    - cebis_item_delete
    - BUG_ON
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void defaults_px_detach(struct proxy *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cebis_item_first
      Src: /src/haproxy/src/proxy.c:3035,1
    - Dst: cebis_item_next
      Src: /src/haproxy/src/proxy.c:3037,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/proxy.c:3038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3040
      start: 3031
    functionDepth: 1
    functionLinenumber: 3031
    functionLinenumberEnd: 3040
    functionName: defaults_px_ref_all
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_INC
    - cebis_item_first
    - cebis_item_next
    linkageType: ''
    returnType: void
    signature: void defaults_px_ref_all(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cebis_item_first
      Src: /src/haproxy/src/proxy.c:3051,1
    - Dst: cebis_item_next
      Src: /src/haproxy/src/proxy.c:3052,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:3054,1
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/proxy.c:3055,1
    - Dst: defaults_px_destroy
      Src: /src/haproxy/src/proxy.c:3056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3058
      start: 3047
    functionDepth: 10
    functionLinenumber: 3047
    functionLinenumberEnd: 3058
    functionName: defaults_px_unref_all
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_SUB_FETCH
    - BUG_ON
    - cebis_item_first
    - cebis_item_next
    - defaults_px_destroy
    linkageType: ''
    returnType: void
    signature: void defaults_px_unref_all(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:3071,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/proxy.c:3074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - defpx
    - px
    argTypes:
    - struct proxy*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3066
    functionDepth: 1
    functionLinenumber: 3066
    functionLinenumberEnd: 3075
    functionName: defaults_px_ref
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void defaults_px_ref(struct proxy *defpx, struct proxy *px)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3090,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:3113,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:3114,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:3115,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:3116,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:3117,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:3118,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:3119,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3123,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3129,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3134,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:3140,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:3141,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3142,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:3148,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3149,1
    - Dst: defaults_px_ref
      Src: /src/haproxy/src/proxy.c:3157,1
    - Dst: defaults_px_ref
      Src: /src/haproxy/src/proxy.c:3166,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 47
    argCount: 3
    argNames:
    - px
    - defpx
    - errmsg
    argTypes:
    - struct proxy*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3171
      start: 3084
    functionDepth: 5
    functionLinenumber: 3084
    functionLinenumberEnd: 3171
    functionName: proxy_ref_defaults
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - defaults_px_ref
    - memprintf
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int proxy_ref_defaults(struct proxy *px, struct proxy *defpx, char
      **errmsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/proxy.c:3183,1
    - Dst: defaults_px_destroy
      Src: /src/haproxy/src/proxy.c:3184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3186
      start: 3179
    functionDepth: 10
    functionLinenumber: 3179
    functionLinenumberEnd: 3186
    functionName: proxy_unref_defaults
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_SUB_FETCH
    - defaults_px_destroy
    linkageType: ''
    returnType: void
    signature: void proxy_unref_defaults(struct proxy *px)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: init_new_proxy
      Src: /src/haproxy/src/proxy.c:3198,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3201,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3203,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/proxy.c:3209,1
    - Dst: proxy_store_name
      Src: /src/haproxy/src/proxy.c:3213,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/proxy.c:3216,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3222,1
    - Dst: srv_free
      Src: /src/haproxy/src/proxy.c:3224,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:3225,1
    - Dst: counters_fe_shared_drop
      Src: /src/haproxy/src/proxy.c:3226,1
    - Dst: counters_be_shared_drop
      Src: /src/haproxy/src/proxy.c:3227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - px
    - name
    - cap
    - errmsg
    argTypes:
    - struct proxy*
    - char*
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3230
      start: 3196
    functionDepth: 5
    functionLinenumber: 3196
    functionLinenumberEnd: 3230
    functionName: setup_new_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - memprintf
    - ns_to_sec
    - ha_free
    - LIST_APPEND
    - srv_free
    - counters_be_shared_drop
    - counters_fe_shared_drop
    - proxy_store_name
    - init_new_proxy
    - strdup
    linkageType: ''
    returnType: int
    signature: int setup_new_proxy(struct proxy *px, const char *name, unsigned int
      cap, char **errmsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_aligned_zalloc_typed
      Src: /src/haproxy/src/proxy.c:3239,1
    - Dst: typeof
      Src: /src/haproxy/src/proxy.c:3239,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3240,1
    - Dst: setup_new_proxy
      Src: /src/haproxy/src/proxy.c:3244,1
    - Dst: proxy_take
      Src: /src/haproxy/src/proxy.c:3247,1
    - Dst: srv_free
      Src: /src/haproxy/src/proxy.c:3258,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:3259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - name
    - cap
    - errmsg
    argTypes:
    - char*
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3261
      start: 3235
    functionDepth: 6
    functionLinenumber: 3235
    functionLinenumberEnd: 3261
    functionName: alloc_new_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 10
    functionsReached:
    - memprintf
    - typeof
    - proxy_take
    - free
    - srv_free
    - setup_new_proxy
    - ha_aligned_zalloc_typed
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *alloc_new_proxy(const char *name, unsigned int cap, char
      **errmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/proxy.c:3267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3268
      start: 3264
    functionDepth: 1
    functionLinenumber: 3264
    functionLinenumberEnd: 3268
    functionName: proxy_take
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void proxy_take(struct proxy *px)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: counters_fe_shared_prepare
      Src: /src/haproxy/src/proxy.c:3283,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:3284,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:3285,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:3286,1
    - Dst: counters_be_shared_prepare
      Src: /src/haproxy/src/proxy.c:3296,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:3297,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:3298,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:3299,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:3306,1
    - Dst: counters_fe_shared_prepare
      Src: /src/haproxy/src/proxy.c:3308,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:3309,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:3310,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:3311,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:3312,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3321
      start: 3271
    functionDepth: 9
    functionLinenumber: 3271
    functionLinenumberEnd: 3321
    functionName: proxy_postcheck
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - counters_be_shared_prepare
    - proxy_type_str
    - list_for_each_entry
    - ha_free
    - ha_alert
    - counters_fe_shared_prepare
    linkageType: ''
    returnType: int
    signature: int proxy_postcheck(struct proxy *px)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: srv_alloc
      Src: /src/haproxy/src/proxy.c:3342,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3344,1
    - Dst: srv_settings_init
      Src: /src/haproxy/src/proxy.c:3349,1
    - Dst: srv_settings_cpy
      Src: /src/haproxy/src/proxy.c:3351,1
    - Dst: http_ext_clean
      Src: /src/haproxy/src/proxy.c:3363,1
    - Dst: http_ext_dup
      Src: /src/haproxy/src/proxy.c:3364,1
    - Dst: isttest
      Src: /src/haproxy/src/proxy.c:3366,1
    - Dst: istdup
      Src: /src/haproxy/src/proxy.c:3367,1
    - Dst: proxy_dup_default_conf_errors
      Src: /src/haproxy/src/proxy.c:3370,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3371,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:3372,1
    - Dst: dup_tcpcheck_vars
      Src: /src/haproxy/src/proxy.c:3400,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3402,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3409,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3413,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3415,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3424,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3428,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3431,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3438,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3453,1
    - Dst: isttest
      Src: /src/haproxy/src/proxy.c:3471,1
    - Dst: istdup
      Src: /src/haproxy/src/proxy.c:3472,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3474,1
    - Dst: lf_expr_dup
      Src: /src/haproxy/src/proxy.c:3476,1
    - Dst: lf_expr_dup
      Src: /src/haproxy/src/proxy.c:3477,1
    - Dst: lf_expr_dup
      Src: /src/haproxy/src/proxy.c:3478,1
    - Dst: stats_uri_auth_drop
      Src: /src/haproxy/src/proxy.c:3497,1
    - Dst: stats_uri_auth_take
      Src: /src/haproxy/src/proxy.c:3498,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:3502,1
    - Dst: dup_logger
      Src: /src/haproxy/src/proxy.c:3503,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3506,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/proxy.c:3509,1
    - Dst: lf_expr_dup
      Src: /src/haproxy/src/proxy.c:3512,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/proxy.c:3514,1
    - Dst: isttest
      Src: /src/haproxy/src/proxy.c:3517,1
    - Dst: istdup
      Src: /src/haproxy/src/proxy.c:3518,1
    - Dst: isttest
      Src: /src/haproxy/src/proxy.c:3520,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3521,1
    - Dst: calloc
      Src: /src/haproxy/src/proxy.c:3529,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3531,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3544,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3546,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:3548,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3550,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3552,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3554,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3556,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 176
    argCount: 3
    argNames:
    - curproxy
    - defproxy
    - errmsg
    argTypes:
    - struct proxy*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3564
      start: 3328
    functionDepth: 7
    functionLinenumber: 3328
    functionLinenumberEnd: 3564
    functionName: proxy_defproxy_cpy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - lf_expr_dup
    - memprintf
    - isttest
    - srv_alloc
    - dup_logger
    - free
    - LIST_APPEND
    - dup_tcpcheck_vars
    - stats_uri_auth_drop
    - proxy_dup_default_conf_errors
    - calloc
    - http_ext_clean
    - chunk_dup
    - list_for_each_entry
    - BUG_ON
    - srv_settings_init
    - stats_uri_auth_take
    - istdup
    - srv_settings_cpy
    - http_ext_dup
    - strdup
    linkageType: ''
    returnType: int
    signature: "int proxy_defproxy_cpy(struct proxy *curproxy, const struct proxy
      *defproxy,\n                              char **errmsg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/proxy.c:3577,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:3578,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:3579,1
    - Dst: proxy_defproxy_cpy
      Src: /src/haproxy/src/proxy.c:3584,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:3585,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:3586,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/proxy.c:3588,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/proxy.c:3593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - name
    - cap
    - file
    - linenum
    - defproxy
    argTypes:
    - char*
    - unsigned int
    - char*
    - int
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3597
      start: 3570
    functionDepth: 10
    functionLinenumber: 3570
    functionLinenumberEnd: 3597
    functionName: parse_new_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - proxy_drop
    - free
    - copy_file_name
    - proxy_defproxy_cpy
    - alloc_new_proxy
    - ha_alert
    linkageType: ''
    returnType: struct proxy
    signature: "struct proxy *parse_new_proxy(const char *name, unsigned int cap,\n
      \                             const char *file, int linenum,\n                              const
      struct proxy *defproxy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3607
      start: 3602
    functionDepth: 0
    functionLinenumber: 3602
    functionLinenumberEnd: 3607
    functionName: proxy_cond_pause
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_cond_pause(struct proxy *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3617
      start: 3612
    functionDepth: 0
    functionLinenumber: 3612
    functionLinenumberEnd: 3617
    functionName: proxy_cond_resume
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_cond_resume(struct proxy *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/proxy.c:3645,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/proxy.c:3647,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:3651,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:3655,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/proxy.c:3659,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/proxy.c:3662,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3663
      start: 3624
    functionDepth: 10
    functionLinenumber: 3624
    functionLinenumberEnd: 3663
    functionName: proxy_cond_disable
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - COUNTERS_SHARED_TOTAL
    - send_log
    - task_wakeup
    - ha_warning
    linkageType: ''
    returnType: void
    signature: void proxy_cond_disable(struct proxy *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/proxy.c:3688,1
    - Dst: stktable_trash_oldest
      Src: /src/haproxy/src/proxy.c:3708,1
    - Dst: pool_gc
      Src: /src/haproxy/src/proxy.c:3711,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/proxy.c:3718,1
    - Dst: tick_first
      Src: /src/haproxy/src/proxy.c:3727,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:3727,1
    - Dst: unlikely
      Src: /src/haproxy/src/proxy.c:3736,1
    - Dst: COUNTERS_SHARED_TOTAL_ARG2
      Src: /src/haproxy/src/proxy.c:3740,1
    - Dst: tick_first
      Src: /src/haproxy/src/proxy.c:3747,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:3747,1
    - Dst: dequeue_proxy_listeners
      Src: /src/haproxy/src/proxy.c:3752,1
    - Dst: task_queue
      Src: /src/haproxy/src/proxy.c:3755,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3757
      start: 3671
    functionDepth: 5
    functionLinenumber: 3671
    functionLinenumberEnd: 3757
    functionName: manage_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - unlikely
    - pool_gc
    - task_wakeup
    - task_queue
    - tick_first
    - stktable_trash_oldest
    - COUNTERS_SHARED_TOTAL_ARG2
    - tick_add
    - dequeue_proxy_listeners
    linkageType: ''
    returnType: struct task
    signature: struct task *manage_proxy(struct task *t, void *context, unsigned int
      state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3767,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:3770,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3772,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3777,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3786
      start: 3760
    functionDepth: 5
    functionLinenumber: 3760
    functionLinenumberEnd: 3786
    functionName: proxy_parse_grace
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_grace(char **args, int section_type, struct proxy
      *curpx,\n                             const struct proxy *defpx, const char
      *file, int line,\n                             char **err)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3795,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:3798,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3800,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3805,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3814
      start: 3788
    functionDepth: 5
    functionLinenumber: 3788
    functionLinenumberEnd: 3814
    functionName: proxy_parse_hard_stop_after
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_hard_stop_after(char **args, int section_type, struct
      proxy *curpx,\n                                const struct proxy *defpx, const
      char *file, int line,\n                                char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3823,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:3830,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:3836,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3838,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3843,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:3848,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3854
      start: 3816
    functionDepth: 5
    functionLinenumber: 3816
    functionLinenumberEnd: 3854
    functionName: proxy_parse_close_spread_time
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - parse_time_err
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_close_spread_time(char **args, int section_type, struct
      proxy *curpx,\n\t\t\t\t\t const struct proxy *defpx, const char *file, int line,\n\t\t\t\t\t
      char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:3863,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:3864,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/proxy.c:3867,1
    - Dst: wake_thread
      Src: /src/haproxy/src/proxy.c:3868,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:3873,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:3874,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:3878,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:3880,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/proxy.c:3886,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:3889,1
    - Dst: stream_shutdown
      Src: /src/haproxy/src/proxy.c:3890,1
    - Dst: thread_release
      Src: /src/haproxy/src/proxy.c:3894,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:3897,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/proxy.c:3897,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3856
    functionDepth: 10
    functionLinenumber: 3856
    functionLinenumberEnd: 3899
    functionName: hard_stop
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - thread_isolate
    - wake_thread
    - _HA_ATOMIC_LOAD
    - list_for_each_entry
    - MS_TO_TICKS
    - stream_shutdown
    - ha_warning
    - send_log
    - tick_add
    - thread_release
    linkageType: ''
    returnType: struct task
    signature: struct task *hard_stop(struct task *t, void *context, unsigned int
      state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/src/proxy.c:3910,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:3911,1
    - Dst: tick_isset
      Src: /src/haproxy/src/proxy.c:3915,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/proxy.c:3916,1
    - Dst: task_schedule
      Src: /src/haproxy/src/proxy.c:3919,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:3919,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:3922,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/proxy.c:3927,1
    - Dst: protocol_stop_now
      Src: /src/haproxy/src/proxy.c:3930,1
    - Dst: thread_release
      Src: /src/haproxy/src/proxy.c:3932,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:3937,1
    - Dst: proxy_cond_disable
      Src: /src/haproxy/src/proxy.c:3938,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:3939,1
    - Dst: signal_handler
      Src: /src/haproxy/src/proxy.c:3944,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3945
      start: 3902
    functionDepth: 11
    functionLinenumber: 3902
    functionLinenumberEnd: 3945
    functionName: do_soft_stop_now
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - task_new_anywhere
    - thread_isolate
    - proxy_cond_disable
    - HA_RWLOCK_WRUNLOCK
    - task_schedule
    - tick_isset
    - signal_handler
    - ha_alert
    - HA_RWLOCK_WRLOCK
    - protocol_stop_now
    - tick_add
    - thread_release
    linkageType: ''
    returnType: void
    signature: void do_soft_stop_now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_notice
      Src: /src/haproxy/src/proxy.c:3950,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:3951,1
    - Dst: do_soft_stop_now
      Src: /src/haproxy/src/proxy.c:3952,1
    - Dst: task_destroy
      Src: /src/haproxy/src/proxy.c:3953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3955
      start: 3948
    functionDepth: 12
    functionLinenumber: 3948
    functionLinenumberEnd: 3955
    functionName: grace_expired
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - send_log
    - ha_notice
    - do_soft_stop_now
    - task_destroy
    linkageType: ''
    returnType: struct task
    signature: struct task *grace_expired(struct task *t, void *context, unsigned
      int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/src/proxy.c:3967,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/proxy.c:3968,1
    - Dst: ha_notice
      Src: /src/haproxy/src/proxy.c:3970,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:3971,1
    - Dst: task_schedule
      Src: /src/haproxy/src/proxy.c:3973,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:3973,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:3977,1
    - Dst: do_soft_stop_now
      Src: /src/haproxy/src/proxy.c:3982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3983
      start: 3961
    functionDepth: 12
    functionLinenumber: 3961
    functionLinenumberEnd: 3983
    functionName: soft_stop
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - task_new_anywhere
    - ha_notice
    - task_schedule
    - do_soft_stop_now
    - tick_isset
    - ha_alert
    - send_log
    - tick_add
    linkageType: ''
    returnType: void
    signature: void soft_stop(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:3996,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:4001,1
    - Dst: suspend_listener
      Src: /src/haproxy/src/proxy.c:4002,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:4005,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:4005,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:4006,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:4006,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:4007,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:4011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4013
      start: 3992
    functionDepth: 10
    functionLinenumber: 3992
    functionLinenumberEnd: 4013
    functionName: pause_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - list_for_each_entry
    - proxy_cap_str
    - ha_warning
    - send_log
    - suspend_listener
    linkageType: ''
    returnType: int
    signature: int pause_proxy(struct proxy *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:4028,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:4030,1
    - Dst: stop_listener
      Src: /src/haproxy/src/proxy.c:4031,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:4038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4039
      start: 4024
    functionDepth: 2
    functionLinenumber: 4024
    functionLinenumberEnd: 4039
    functionName: stop_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 5
    functionsReached:
    - list_for_each_entry
    - stop_listener
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void stop_proxy(struct proxy *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:4053,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:4059,1
    - Dst: resume_listener
      Src: /src/haproxy/src/proxy.c:4060,1
    - Dst: get_host_port
      Src: /src/haproxy/src/proxy.c:4063,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:4065,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:4066,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:4067,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:4068,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:4071,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:4072,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:4073,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:4074,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:4084,1
    - Dst: pause_proxy
      Src: /src/haproxy/src/proxy.c:4086,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:4090,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4092
      start: 4048
    functionDepth: 11
    functionLinenumber: 4048
    functionLinenumberEnd: 4092
    functionName: resume_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - list_for_each_entry
    - resume_listener
    - get_host_port
    - pause_proxy
    - proxy_cap_str
    - ha_warning
    - send_log
    linkageType: ''
    returnType: int
    signature: int resume_proxy(struct proxy *p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: flt_set_stream_backend
      Src: /src/haproxy/src/proxy.c:4108,1
    - Dst: HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/proxy.c:4117,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/src/proxy.c:4118,1
    - Dst: proxy_inc_be_ctr
      Src: /src/haproxy/src/proxy.c:4119,1
    - Dst: strm_fe
      Src: /src/haproxy/src/proxy.c:4132,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/proxy.c:4138,1
    - Dst: strm_fe
      Src: /src/haproxy/src/proxy.c:4138,1
    - Dst: strm_li
      Src: /src/haproxy/src/proxy.c:4144,1
    - Dst: strm_li
      Src: /src/haproxy/src/proxy.c:4144,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/proxy.c:4146,1
    - Dst: stream_set_http_mode
      Src: /src/haproxy/src/proxy.c:4149,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/proxy.c:4152,1
    - Dst: unlikely
      Src: /src/haproxy/src/proxy.c:4164,1
    - Dst: http_create_txn
      Src: /src/haproxy/src/proxy.c:4164,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - s
    - be
    argTypes:
    - struct stream*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4175
      start: 4100
    functionDepth: 9
    functionLinenumber: 4100
    functionLinenumberEnd: 4175
    functionName: stream_set_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - flt_set_stream_backend
    - HA_ATOMIC_ADD_FETCH
    - unlikely
    - http_create_txn
    - proxy_inc_be_ctr
    - strm_li
    - IS_HTX_STRM
    - stream_set_http_mode
    - COUNTERS_UPDATE_MAX
    - strm_fe
    linkageType: ''
    returnType: int
    signature: int stream_set_backend(struct stream *s, struct proxy *be)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/proxy.c:4209,1
    - Dst: b_data
      Src: /src/haproxy/src/proxy.c:4211,1
    - Dst: malloc
      Src: /src/haproxy/src/proxy.c:4213,1
    - Dst: b_size
      Src: /src/haproxy/src/proxy.c:4221,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/proxy.c:4221,1
    - Dst: memcpy
      Src: /src/haproxy/src/proxy.c:4226,1
    - Dst: b_peek
      Src: /src/haproxy/src/proxy.c:4226,1
    - Dst: memcpy
      Src: /src/haproxy/src/proxy.c:4229,1
    - Dst: b_orig
      Src: /src/haproxy/src/proxy.c:4229,1
    - Dst: objt_server
      Src: /src/haproxy/src/proxy.c:4234,1
    - Dst: objt_conn
      Src: /src/haproxy/src/proxy.c:4236,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/proxy.c:4236,1
    - Dst: __objt_conn
      Src: /src/haproxy/src/proxy.c:4236,1
    - Dst: __objt_conn
      Src: /src/haproxy/src/proxy.c:4237,1
    - Dst: memset
      Src: /src/haproxy/src/proxy.c:4239,1
    - Dst: b_wrap
      Src: /src/haproxy/src/proxy.c:4241,1
    - Dst: b_peek
      Src: /src/haproxy/src/proxy.c:4241,1
    - Dst: memset
      Src: /src/haproxy/src/proxy.c:4255,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:4261,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/proxy.c:4263,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/proxy.c:4265,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:4267,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:4268,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 10
    argNames:
    - proxy
    - is_back
    - other_end
    - target
    - sess
    - buf
    - buf_ofs
    - buf_out
    - err_pos
    - ctx
    argTypes:
    - struct proxy*
    - int
    - struct proxy*
    - enum obj_type*
    - struct session*
    - struct buffer*
    - long
    - unsigned int
    - unsigned int
    - union error_snapshot_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4269
      start: 4196
    functionDepth: 1
    functionLinenumber: 4196
    functionLinenumberEnd: 4269
    functionName: proxy_capture_error
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - malloc
    - b_peek
    - __objt_conn
    - memset
    - b_orig
    - memcpy
    - HA_RWLOCK_WRUNLOCK
    - ha_free
    - objt_conn
    - HA_ATOMIC_FETCH_ADD
    - b_data
    - b_size
    - b_peek_ofs
    - HA_ATOMIC_XCHG
    - HA_RWLOCK_WRLOCK
    - objt_server
    - b_wrap
    - conn_get_src
    linkageType: ''
    returnType: void
    signature: "void proxy_capture_error(struct proxy *proxy, int is_back,\n\t\t\t
      struct proxy *other_end, enum obj_type *target,\n\t\t\t const struct session
      *sess,\n\t\t\t const struct buffer *buf, long buf_ofs,\n\t\t\t unsigned int
      buf_out, unsigned int err_pos,\n\t\t\t const union error_snapshot_ctx *ctx,\n\t\t\t
      void (*show)(struct buffer *, const struct error_snapshot *))"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:4298,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:4308,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4277
    functionDepth: 0
    functionLinenumber: 4277
    functionLinenumberEnd: 4343
    functionName: proxy_adjust_all_maxconn
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void proxy_adjust_all_maxconn()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:4359,1
    - Dst: srv_free
      Src: /src/haproxy/src/proxy.c:4360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4348
    functionDepth: 1
    functionLinenumber: 4348
    functionLinenumberEnd: 4364
    functionName: post_section_px_cleanup
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - ha_free
    - srv_free
    linkageType: ''
    returnType: int
    signature: int post_section_px_cleanup()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4414,1
    - Dst: proxy_fe_by_name
      Src: /src/haproxy/src/proxy.c:4418,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - appctx
    - arg
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4424
      start: 4409
    functionDepth: 1
    functionLinenumber: 4409
    functionLinenumberEnd: 4424
    functionName: cli_find_frontend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_fe_by_name
    - cli_err
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *cli_find_frontend(struct appctx *appctx, const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4435,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/proxy.c:4439,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - appctx
    - arg
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4445
      start: 4430
    functionDepth: 1
    functionLinenumber: 4430
    functionLinenumberEnd: 4445
    functionName: cli_find_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_be_by_name
    - cli_err
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *cli_find_backend(struct appctx *appctx, const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/proxy.c:4455,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/proxy.c:4463,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4472
      start: 4453
    functionDepth: 1
    functionLinenumber: 4453
    functionLinenumberEnd: 4472
    functionName: cli_parse_show_servers
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_be_by_name
    - cli_err
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_servers(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: addr_to_str
      Src: /src/haproxy/src/proxy.c:4481,1
    - Dst: memcpy
      Src: /src/haproxy/src/proxy.c:4484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - addr
    - addr_str
    argTypes:
    - struct sockaddr_storage*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4487
      start: 4475
    functionDepth: 1
    functionLinenumber: 4475
    functionLinenumberEnd: 4487
    functionName: dump_server_addr
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - addr_to_str
    - memcpy
    linkageType: ''
    returnType: void
    signature: void dump_server_addr(const struct sockaddr_storage *addr, char *addr_str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dump_server_addr
      Src: /src/haproxy/src/proxy.c:4515,1
    - Dst: dump_server_addr
      Src: /src/haproxy/src/proxy.c:4516,1
    - Dst: dump_server_addr
      Src: /src/haproxy/src/proxy.c:4517,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/proxy.c:4519,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/proxy.c:4529,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/proxy.c:4538,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/proxy.c:4539,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/proxy.c:4540,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/proxy.c:4546,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/proxy.c:4553,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/proxy.c:4555,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/proxy.c:4555,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/proxy.c:4556,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:4564,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:4566,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:4569,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4574
      start: 4497
    functionDepth: 5
    functionLinenumber: 4497
    functionLinenumberEnd: 4574
    functionName: dump_servers_state
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - ns_to_sec
    - hash_ipanon
    - chunk_printf
    - chunk_appendf
    - HA_ANON_CLI
    - dump_server_addr
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int dump_servers_state(struct appctx *appctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/proxy.c:4587,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/proxy.c:4589,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:4593,1
    - Dst: dump_servers_state
      Src: /src/haproxy/src/proxy.c:4606,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4615
      start: 4580
    functionDepth: 6
    functionLinenumber: 4580
    functionLinenumberEnd: 4615
    functionName: cli_io_handler_servers_state
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - dump_servers_state
    - chunk_printf
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_servers_state(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/proxy.c:4624,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/proxy.c:4627,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:4628,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:4641,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:4642,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4647
      start: 4620
    functionDepth: 1
    functionLinenumber: 4620
    functionLinenumberEnd: 4647
    functionName: cli_io_handler_show_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - applet_putchk
    - chunk_appendf
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_backend(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:4658,1
    - Dst: cli_find_backend
      Src: /src/haproxy/src/proxy.c:4661,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4666,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:4671,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:4673,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/proxy.c:4676,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/proxy.c:4677,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/proxy.c:4678,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4682
      start: 4653
    functionDepth: 6
    functionLinenumber: 4653
    functionLinenumberEnd: 4682
    functionName: cli_parse_enable_dyncookie_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - srv_set_dyncookie
    - HA_RWLOCK_WRUNLOCK
    - cli_find_backend
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - HA_RWLOCK_WRLOCK
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_enable_dyncookie_backend(char **args, char *payload,
      struct appctx *appctx, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:4693,1
    - Dst: cli_find_backend
      Src: /src/haproxy/src/proxy.c:4696,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4701,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:4706,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:4708,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/proxy.c:4711,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:4713,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/proxy.c:4714,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4718
      start: 4688
    functionDepth: 2
    functionLinenumber: 4688
    functionLinenumberEnd: 4718
    functionName: cli_parse_disable_dyncookie_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - ha_free
    - cli_find_backend
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - HA_RWLOCK_WRLOCK
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_disable_dyncookie_backend(char **args, char *payload,
      struct appctx *appctx, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:4730,1
    - Dst: cli_find_backend
      Src: /src/haproxy/src/proxy.c:4733,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4738,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4741,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:4743,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4745,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:4750,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:4751,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:4753,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/proxy.c:4756,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/proxy.c:4757,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/proxy.c:4758,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4762
      start: 4724
    functionDepth: 6
    functionLinenumber: 4724
    functionLinenumberEnd: 4762
    functionName: cli_parse_set_dyncookie_key_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - srv_set_dyncookie
    - cli_err
    - HA_RWLOCK_WRUNLOCK
    - cli_find_backend
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - free
    - HA_RWLOCK_WRLOCK
    - cli_has_level
    - strdup
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_dyncookie_key_backend(char **args, char *payload,
      struct appctx *appctx, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:4774,1
    - Dst: cli_find_frontend
      Src: /src/haproxy/src/proxy.c:4777,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4782,1
    - Dst: atoi
      Src: /src/haproxy/src/proxy.c:4784,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4786,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:4791,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:4794,1
    - Dst: relax_listener
      Src: /src/haproxy/src/proxy.c:4796,1
    - Dst: dequeue_proxy_listeners
      Src: /src/haproxy/src/proxy.c:4800,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:4802,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4805
      start: 4768
    functionDepth: 5
    functionLinenumber: 4768
    functionLinenumberEnd: 4805
    functionName: cli_parse_set_maxconn_frontend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - dequeue_proxy_listeners
    - list_for_each_entry
    - HA_RWLOCK_WRUNLOCK
    - relax_listener
    - cli_find_frontend
    - HA_RWLOCK_WRLOCK
    - atoi
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_maxconn_frontend(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:4815,1
    - Dst: cli_find_frontend
      Src: /src/haproxy/src/proxy.c:4818,1
    - Dst: cli_msg
      Src: /src/haproxy/src/proxy.c:4823,1
    - Dst: stop_proxy
      Src: /src/haproxy/src/proxy.c:4825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4827
      start: 4811
    functionDepth: 3
    functionLinenumber: 4811
    functionLinenumberEnd: 4827
    functionName: cli_parse_shutdown_frontend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - cli_find_frontend
    - cli_has_level
    - cli_msg
    - stop_proxy
    linkageType: ''
    returnType: int
    signature: int cli_parse_shutdown_frontend(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/proxy.c:4844,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:4846,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4852,1
    - Dst: invalid_char
      Src: /src/haproxy/src/proxy.c:4855,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/proxy.c:4856,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:4856,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:4862,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4863,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:4871,1
    - Dst: str_to_proxy_mode
      Src: /src/haproxy/src/proxy.c:4872,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4874,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4878,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:4883,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:4888,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/proxy.c:4895,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/proxy.c:4897,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:4897,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/proxy.c:4901,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:4901,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/proxy.c:4905,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:4905,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/proxy.c:4906,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/proxy.c:4910,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/proxy.c:4912,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/proxy.c:4913,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:4914,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:4916,1
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/proxy.c:4921,1
    - Dst: guid_insert
      Src: /src/haproxy/src/proxy.c:4925,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:4926,1
    - Dst: proxy_defproxy_cpy
      Src: /src/haproxy/src/proxy.c:4930,1
    - Dst: proxy_ref_defaults
      Src: /src/haproxy/src/proxy.c:4937,1
    - Dst: proxy_init_per_thr
      Src: /src/haproxy/src/proxy.c:4940,1
    - Dst: proxy_finalize
      Src: /src/haproxy/src/proxy.c:4942,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:4945,1
    - Dst: struct post_proxy_check_fct*::fct
      Src: /src/haproxy/src/proxy.c:4946,1
    - Dst: stats_allocate_proxy_counters_internal
      Src: /src/haproxy/src/proxy.c:4953,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:4959,1
    - Dst: proxy_get_next_id
      Src: /src/haproxy/src/proxy.c:4964,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:4966,1
    - Dst: proxy_index_id
      Src: /src/haproxy/src/proxy.c:4969,1
    - Dst: thread_release
      Src: /src/haproxy/src/proxy.c:4982,1
    - Dst: unlikely
      Src: /src/haproxy/src/proxy.c:4984,1
    - Dst: be_supports_dynamic_srv
      Src: /src/haproxy/src/proxy.c:4984,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:4985,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:4987,1
    - Dst: ha_notice
      Src: /src/haproxy/src/proxy.c:4988,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:4989,1
    - Dst: cli_umsg
      Src: /src/haproxy/src/proxy.c:4990,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/proxy.c:4996,1
    - Dst: thread_release
      Src: /src/haproxy/src/proxy.c:4997,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:5000,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/proxy.c:5001,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:5004,1
    - Dst: cli_umsgerr
      Src: /src/haproxy/src/proxy.c:5005,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 130
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5009
      start: 4835
    functionDepth: 11
    functionLinenumber: 4835
    functionLinenumberEnd: 5009
    functionName: cli_parse_add_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memprintf
    - ha_notice
    - proxy_index_id
    - proxy_cap_str
    - cli_dynerr
    - invalid_char
    - thread_isolate
    - proxy_init_per_thr
    - ha_free
    - strcmp
    - struct post_proxy_check_fct*::fct
    - be_supports_dynamic_srv
    - proxy_defproxy_cpy
    - str_to_proxy_mode
    - cli_has_level
    - cli_umsgerr
    - cli_err
    - thread_release
    - stats_allocate_proxy_counters_internal
    - proxy_finalize
    - usermsgs_clr
    - alloc_new_proxy
    - guid_insert
    - proxy_get_next_id
    - cli_umsg
    - list_for_each_entry
    - proxy_drop
    - proxy_ref_defaults
    - proxy_find_by_name
    - ha_alert
    - proxy_mode_str
    linkageType: ''
    returnType: int
    signature: int cli_parse_add_backend(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/proxy.c:5030,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 3
    argNames:
    - bename
    - pb
    - pm
    argTypes:
    - char*
    - struct proxy**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5086
      start: 5021
    functionDepth: 1
    functionLinenumber: 5021
    functionLinenumberEnd: 5086
    functionName: be_check_for_deletion
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - proxy_be_by_name
    linkageType: ''
    returnType: int
    signature: int be_check_for_deletion(const char *bename, struct proxy **pb, const
      char **pm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:5097,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:5101,1
    - Dst: thread_isolate_full
      Src: /src/haproxy/src/proxy.c:5105,1
    - Dst: be_check_for_deletion
      Src: /src/haproxy/src/proxy.c:5108,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:5110,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:5114,1
    - Dst: MT_LIST_NEXT
      Src: /src/haproxy/src/proxy.c:5115,1
    - Dst: watcher_next
      Src: /src/haproxy/src/proxy.c:5116,1
    - Dst: ceb32_item_delete
      Src: /src/haproxy/src/proxy.c:5119,1
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/proxy.c:5120,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:5129,1
    - Dst: thread_release
      Src: /src/haproxy/src/proxy.c:5135,1
    - Dst: ha_notice
      Src: /src/haproxy/src/proxy.c:5137,1
    - Dst: proxy_drop
      Src: /src/haproxy/src/proxy.c:5138,1
    - Dst: cli_umsg
      Src: /src/haproxy/src/proxy.c:5140,1
    - Dst: thread_release
      Src: /src/haproxy/src/proxy.c:5144,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5146
      start: 5089
    functionDepth: 10
    functionLinenumber: 5089
    functionLinenumberEnd: 5146
    functionName: cli_parse_delete_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - cebis_item_delete
    - be_check_for_deletion
    - ha_notice
    - BUG_ON
    - proxy_drop
    - thread_isolate_full
    - ceb32_item_delete
    - thread_release
    - MT_LIST_ISEMPTY
    - watcher_next
    - cli_has_level
    - MT_LIST_NEXT
    - cli_umsg
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_delete_backend(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:5157,1
    - Dst: cli_find_frontend
      Src: /src/haproxy/src/proxy.c:5160,1
    - Dst: cli_msg
      Src: /src/haproxy/src/proxy.c:5165,1
    - Dst: cli_msg
      Src: /src/haproxy/src/proxy.c:5168,1
    - Dst: pause_proxy
      Src: /src/haproxy/src/proxy.c:5171,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:5174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5177
      start: 5152
    functionDepth: 11
    functionLinenumber: 5152
    functionLinenumberEnd: 5177
    functionName: cli_parse_disable_frontend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - pause_proxy
    - cli_find_frontend
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_disable_frontend(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:5188,1
    - Dst: cli_find_frontend
      Src: /src/haproxy/src/proxy.c:5191,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:5196,1
    - Dst: cli_msg
      Src: /src/haproxy/src/proxy.c:5199,1
    - Dst: resume_proxy
      Src: /src/haproxy/src/proxy.c:5202,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:5205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5207
      start: 5183
    functionDepth: 12
    functionLinenumber: 5183
    functionLinenumberEnd: 5207
    functionName: cli_parse_enable_frontend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - cli_msg
    - cli_find_frontend
    - cli_has_level
    - resume_proxy
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_enable_frontend(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/proxy.c:5213,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:5215,1
    - Dst: cli_find_backend
      Src: /src/haproxy/src/proxy.c:5218,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:5220,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:5223,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/proxy.c:5225,1
    - Dst: thread_release
      Src: /src/haproxy/src/proxy.c:5227,1
    - Dst: ha_notice
      Src: /src/haproxy/src/proxy.c:5229,1
    - Dst: cli_umsg
      Src: /src/haproxy/src/proxy.c:5230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5231
      start: 5209
    functionDepth: 7
    functionLinenumber: 5209
    functionLinenumberEnd: 5231
    functionName: cli_parse_publish_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - thread_isolate
    - cli_find_backend
    - usermsgs_clr
    - thread_release
    - cli_has_level
    - cli_umsg
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_publish_backend(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/proxy.c:5237,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:5239,1
    - Dst: cli_find_backend
      Src: /src/haproxy/src/proxy.c:5242,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:5244,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:5247,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/proxy.c:5249,1
    - Dst: thread_release
      Src: /src/haproxy/src/proxy.c:5251,1
    - Dst: ha_notice
      Src: /src/haproxy/src/proxy.c:5253,1
    - Dst: cli_umsg
      Src: /src/haproxy/src/proxy.c:5254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5255
      start: 5233
    functionDepth: 7
    functionLinenumber: 5233
    functionLinenumberEnd: 5255
    functionName: cli_parse_unpublish_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - thread_isolate
    - cli_find_backend
    - usermsgs_clr
    - thread_release
    - cli_has_level
    - cli_umsg
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_unpublish_backend(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/proxy.c:5272,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:5274,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/proxy.c:5280,1
    - Dst: atoi
      Src: /src/haproxy/src/proxy.c:5284,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:5287,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:5293,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:5295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5299
      start: 5270
    functionDepth: 3
    functionLinenumber: 5270
    functionLinenumberEnd: 5299
    functionName: cli_parse_show_errors
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - strcmp
    - proxy_find_by_name
    - applet_reserve_svcctx
    - atoi
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_errors(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/proxy.c:5310,1
    - Dst: get_localtime
      Src: /src/haproxy/src/proxy.c:5318,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:5319,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:5324,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/proxy.c:5338,1
    - Dst: get_localtime
      Src: /src/haproxy/src/proxy.c:5366,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:5367,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/proxy.c:5371,1
    - Dst: get_host_port
      Src: /src/haproxy/src/proxy.c:5374,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:5382,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:5390,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:5398,1
    - Dst: struct error_snapshot*::show
      Src: /src/haproxy/src/proxy.c:5410,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:5412,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:5414,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:5423,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:5425,1
    - Dst: dump_text_line
      Src: /src/haproxy/src/proxy.c:5437,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/proxy.c:5439,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:5443,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/proxy.c:5450,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/proxy.c:5462,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 99
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5465
      start: 5305
    functionDepth: 2
    functionLinenumber: 5305
    functionLinenumberEnd: 5465
    functionName: cli_io_handler_show_errors
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDLOCK
    - HA_RWLOCK_RDUNLOCK
    - chunk_appendf
    - get_host_port
    - dump_text_line
    - struct error_snapshot*::show
    - applet_fl_set
    - chunk_reset
    - get_localtime
    - addr_to_str
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_errors(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - sctl
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 206
    functionName: ssl_sock_parse_sctl
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ssl_sock_parse_sctl(struct buffer *sctl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: chunk_initstr
      Src: /src/haproxy/src/ssl_ckch.c:221,1
    - Dst: open
      Src: /src/haproxy/src/ssl_ckch.c:224,1
    - Dst: read
      Src: /src/haproxy/src/ssl_ckch.c:230,1
    - Dst: ssl_sock_parse_sctl
      Src: /src/haproxy/src/ssl_ckch.c:244,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:248,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_ckch.c:249,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:250,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:255,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:256,1
    - Dst: close
      Src: /src/haproxy/src/ssl_ckch.c:262,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - sctl_path
    - buf
    - data
    - err
    argTypes:
    - char*
    - char*
    - struct ckch_data*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 265
    functionName: ssl_sock_load_sctl_from_file
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - chunk_initstr
    - chunk_dup
    - ha_free
    - calloc
    - open
    - free
    - ssl_sock_parse_sctl
    - read
    - close
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_sctl_from_file(const char *sctl_path, char *buf,
      struct ckch_data *data, char **err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_ckch.c:294,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:296,1
    - Dst: open
      Src: /src/haproxy/src/ssl_ckch.c:302,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:304,1
    - Dst: read
      Src: /src/haproxy/src/ssl_ckch.c:310,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:315,1
    - Dst: close
      Src: /src/haproxy/src/ssl_ckch.c:323,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:328,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_ckch.c:329,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:330,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:335,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:336,1
    - Dst: close
      Src: /src/haproxy/src/ssl_ckch.c:342,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 4
    argNames:
    - ocsp_path
    - buf
    - data
    - err
    argTypes:
    - char*
    - char*
    - struct ckch_data*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 274
    functionDepth: 5
    functionLinenumber: 274
    functionLinenumberEnd: 345
    functionName: ssl_sock_load_ocsp_response_from_file
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - base64dec
    - memprintf
    - chunk_dup
    - ha_free
    - calloc
    - open
    - free
    - read
    - close
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_ocsp_response_from_file(const char *ocsp_path, char
      *buf, struct ckch_data *data, char **err)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_load_pem_into_ckch
      Src: /src/haproxy/src/ssl_ckch.c:370,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:375,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:377,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:380,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:382,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:388,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:390,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/ssl_ckch.c:394,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:394,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:395,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_ckch.c:406,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:408,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:410,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:421,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:426,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:426,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:427,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:433,1
    - Dst: ssl_sock_load_key_into_ckch
      Src: /src/haproxy/src/ssl_ckch.c:434,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:435,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:442,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:446,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:447,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:449,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:454,1
    - Dst: b_sub
      Src: /src/haproxy/src/ssl_ckch.c:455,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:455,1
    - Dst: X509_check_private_key
      Src: /src/haproxy/src/ssl_ckch.c:459,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:460,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:470,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:470,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:471,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:477,1
    - Dst: ssl_sock_load_sctl_from_file
      Src: /src/haproxy/src/ssl_ckch.c:478,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:479,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:486,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:488,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:494,1
    - Dst: b_sub
      Src: /src/haproxy/src/ssl_ckch.c:495,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:495,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:504,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:504,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:505,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:511,1
    - Dst: ssl_sock_load_ocsp_response_from_file
      Src: /src/haproxy/src/ssl_ckch.c:512,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:518,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:520,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:526,1
    - Dst: b_sub
      Src: /src/haproxy/src/ssl_ckch.c:527,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:527,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:535,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:535,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:536,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:542,1
    - Dst: ssl_sock_load_issuer_file_into_ckch
      Src: /src/haproxy/src/ssl_ckch.c:543,1
    - Dst: X509_check_issued
      Src: /src/haproxy/src/ssl_ckch.c:548,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:549,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:556,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:558,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:564,1
    - Dst: b_sub
      Src: /src/haproxy/src/ssl_ckch.c:565,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:565,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:575,1
    - Dst: ssl_sock_free_cert_key_and_chain_contents
      Src: /src/haproxy/src/ssl_ckch.c:579,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:581,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 172
    argCount: 4
    argNames:
    - path
    - data
    - conf
    - err
    argTypes:
    - char*
    - struct ckch_data*
    - struct ckch_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 363
    functionDepth: 6
    functionLinenumber: 363
    functionLinenumberEnd: 584
    functionName: ssl_sock_load_files_into_ckch
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - memprintf
    - alloc_trash_chunk
    - ssl_sock_load_issuer_file_into_ckch
    - stat
    - free
    - ssl_sock_load_pem_into_ckch
    - ssl_sock_load_ocsp_response_from_file
    - chunk_strcat
    - strcmp
    - ssl_sock_load_sctl_from_file
    - ssl_sock_free_cert_key_and_chain_contents
    - free_trash_chunk
    - strrchr
    - chunk_strcpy
    - b_data
    - X509_check_private_key
    - ERR_clear_error
    - strdup
    - X509_check_issued
    - b_sub
    - ssl_sock_load_key_into_ckch
    - strlen
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_files_into_ckch(const char *path, struct ckch_data
      *data, struct ckch_conf *conf, char **err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/haproxy/src/ssl_ckch.c:602,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:604,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ckch.c:610,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/ssl_ckch.c:610,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/ssl_ckch.c:614,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/haproxy/src/ssl_ckch.c:629,1
    - Dst: ERR_peek_last_error
      Src: /src/haproxy/src/ssl_ckch.c:633,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:635,1
    - Dst: ERR_error_string
      Src: /src/haproxy/src/ssl_ckch.c:636,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:642,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:646,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:648,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_ckch.c:650,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 4
    argNames:
    - path
    - buf
    - data
    - err
    argTypes:
    - char*
    - char*
    - struct ckch_data*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 593
    functionDepth: 5
    functionLinenumber: 593
    functionLinenumberEnd: 653
    functionName: ssl_sock_load_key_into_ckch
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - ERR_clear_error
    - SWAP
    - memprintf
    - PEM_read_bio_PrivateKey
    - ERR_error_string
    - BIO_free
    - BIO_new_mem_buf
    - BIO_new
    - BIO_read_filename
    - EVP_PKEY_free
    - BIO_s_file
    - ERR_peek_last_error
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_key_into_ckch(const char *path, char *buf, struct
      ckch_data *data , char **err)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:672,1
    - Dst: BIO_new_mem_buf
      Src: /src/haproxy/src/ssl_ckch.c:678,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:680,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ckch.c:686,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/ssl_ckch.c:686,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:688,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/ssl_ckch.c:692,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:693,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/haproxy/src/ssl_ckch.c:709,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:715,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:716,1
    - Dst: ssl_sock_get_dh_from_bio
      Src: /src/haproxy/src/ssl_ckch.c:721,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:722,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:727,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:728,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/haproxy/src/ssl_ckch.c:734,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:736,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:737,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_ckch.c:738,1
    - Dst: PEM_read_bio_X509
      Src: /src/haproxy/src/ssl_ckch.c:743,1
    - Dst: sk_X509_new_null
      Src: /src/haproxy/src/ssl_ckch.c:745,1
    - Dst: sk_X509_push
      Src: /src/haproxy/src/ssl_ckch.c:746,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ckch.c:747,1
    - Dst: ssl_get0_issuer_chain
      Src: /src/haproxy/src/ssl_ckch.c:754,1
    - Dst: X509_chain_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:756,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:759,1
    - Dst: ERR_GET_LIB
      Src: /src/haproxy/src/ssl_ckch.c:760,1
    - Dst: ERR_GET_REASON
      Src: /src/haproxy/src/ssl_ckch.c:760,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:761,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_ckch.c:762,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:768,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:769,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:773,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:774,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ckch.c:778,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:783,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:784,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:785,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:786,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:787,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:793,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:795,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_ckch.c:797,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_ckch.c:799,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ckch.c:801,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_ckch.c:803,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 96
    argCount: 4
    argNames:
    - path
    - buf
    - data
    - err
    argTypes:
    - char*
    - char*
    - struct ckch_data*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 664
    functionDepth: 5
    functionLinenumber: 664
    functionLinenumberEnd: 806
    functionName: ssl_sock_load_pem_into_ckch
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - memprintf
    - HASSL_DH_free
    - sk_X509_pop_free
    - ERR_reason_error_string
    - sk_X509_new_null
    - PEM_read_bio_PrivateKey
    - BIO_reset
    - ssl_get0_issuer_chain
    - BIO_new
    - STACK_OF
    - BIO_read_filename
    - ERR_GET_LIB
    - PEM_read_bio_X509
    - ERR_GET_REASON
    - ha_free
    - BIO_new_mem_buf
    - ssl_sock_get_dh_from_bio
    - SWAP
    - ERR_clear_error
    - EVP_PKEY_free
    - BIO_s_file
    - X509_free
    - PEM_read_bio_X509_AUX
    - X509_chain_up_ref
    - BIO_free
    - sk_X509_push
    - ERR_get_error
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_pem_into_ckch(const char *path, char *buf, struct
      ckch_data *data , char **err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ckch.c:817,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_ckch.c:822,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_ckch.c:827,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_ckch.c:831,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:835,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:836,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:840,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:841,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ckch.c:845,1
    - Dst: ssl_ocsp_build_response_key
      Src: /src/haproxy/src/ssl_ckch.c:858,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ckch.c:859,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/ssl_ckch.c:860,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:861,1
    - Dst: ssl_sock_free_ocsp
      Src: /src/haproxy/src/ssl_ckch.c:862,1
    - Dst: OCSP_CERTID_free
      Src: /src/haproxy/src/ssl_ckch.c:865,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct ckch_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 869
    functionName: ssl_sock_free_cert_key_and_chain_contents
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 3
    functionsReached:
    - OCSP_CERTID_free
    - X509_free
    - HASSL_DH_free
    - ssl_ocsp_build_response_key
    - sk_X509_pop_free
    - ebmb_lookup
    - ssl_sock_free_ocsp
    - ha_free
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void ssl_sock_free_cert_key_and_chain_contents(struct ckch_data *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:888,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:893,1
    - Dst: X509_chain_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:897,1
    - Dst: HASSL_DH_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:902,1
    - Dst: wolfSSL_DH_dup
      Src: /src/haproxy/src/ssl_ckch.c:905,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:914,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_ckch.c:915,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:916,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:926,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_ckch.c:927,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:928,1
    - Dst: X509_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:935,1
    - Dst: OCSP_CERTID_dup
      Src: /src/haproxy/src/ssl_ckch.c:938,1
    - Dst: ssl_sock_free_cert_key_and_chain_contents
      Src: /src/haproxy/src/ssl_ckch.c:945,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct ckch_data*
    - struct ckch_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 880
    functionDepth: 4
    functionLinenumber: 880
    functionLinenumberEnd: 948
    functionName: ssl_sock_copy_cert_key_and_chain
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - wolfSSL_DH_dup
    - OCSP_CERTID_dup
    - X509_chain_up_ref
    - chunk_dup
    - ha_free
    - X509_up_ref
    - calloc
    - HASSL_DH_up_ref
    - EVP_PKEY_up_ref
    - ssl_sock_free_cert_key_and_chain_contents
    linkageType: ''
    returnType: struct ckch_data
    signature: "struct ckch_data *ssl_sock_copy_cert_key_and_chain(struct ckch_data
      *src,\n                                                                   struct
      ckch_data *dst)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/haproxy/src/ssl_ckch.c:961,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:963,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ckch.c:969,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/ssl_ckch.c:969,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/ssl_ckch.c:973,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/haproxy/src/ssl_ckch.c:977,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:979,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ckch.c:985,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:991,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:993,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 4
    argNames:
    - path
    - buf
    - data
    - err
    argTypes:
    - char*
    - char*
    - struct ckch_data*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 953
    functionDepth: 5
    functionLinenumber: 953
    functionLinenumberEnd: 996
    functionName: ssl_sock_load_issuer_file_into_ckch
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - ERR_clear_error
    - memprintf
    - PEM_read_bio_X509_AUX
    - X509_free
    - BIO_free
    - BIO_new_mem_buf
    - BIO_new
    - BIO_read_filename
    - BIO_s_file
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_issuer_file_into_ckch(const char *path, char *buf,
      struct ckch_data *data, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:1013,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_ckch.c:1014,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:1016,1
    - Dst: ssl_sock_free_cert_key_and_chain_contents
      Src: /src/haproxy/src/ssl_ckch.c:1018,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:1019,1
    - Dst: ckch_conf_clean
      Src: /src/haproxy/src/ssl_ckch.c:1022,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct ckch_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1006
    functionDepth: 4
    functionLinenumber: 1006
    functionLinenumberEnd: 1025
    functionName: ckch_store_free
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 6
    functionsReached:
    - ha_free
    - list_for_each_entry_safe
    - ckch_conf_clean
    - free
    - ckch_inst_free
    - ssl_sock_free_cert_key_and_chain_contents
    - ebmb_delete
    linkageType: ''
    returnType: void
    signature: void ckch_store_free(struct ckch_store *store)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:1039,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:1040,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_ckch.c:1044,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1046,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1047,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:1049,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:1055,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1034
    functionDepth: 5
    functionLinenumber: 1034
    functionLinenumberEnd: 1057
    functionName: ckch_store_new
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - ckch_store_free
    - memcpy
    - calloc
    - LIST_INIT
    - strlen
    linkageType: ''
    returnType: struct ckch_store
    signature: struct ckch_store *ckch_store_new(const char *filename)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ckch_store_new
      Src: /src/haproxy/src/ssl_ckch.c:1070,1
    - Dst: ssl_sock_copy_cert_key_and_chain
      Src: /src/haproxy/src/ssl_ckch.c:1074,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1086,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1088,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1090,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1092,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1094,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1096,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/ssl_ckch.c:1102,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/ssl_ckch.c:1102,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1106,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/ssl_ckch.c:1123,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/ssl_ckch.c:1123,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1127,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1142,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1144,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:1145,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct ckch_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1061
    functionDepth: 6
    functionLinenumber: 1061
    functionLinenumberEnd: 1148
    functionName: ckchs_dup
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - my_realloc2
    - ckch_store_free
    - ckch_store_new
    - free
    - ssl_sock_copy_cert_key_and_chain
    - array_size_or_fail
    - strdup
    linkageType: ''
    returnType: struct ckch_store
    signature: struct ckch_store *ckchs_dup(const struct ckch_store *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_ckch.c:1157,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:1161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1153
    functionDepth: 2
    functionLinenumber: 1153
    functionLinenumberEnd: 1162
    functionName: ckchs_lookup
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 16
    functionsReached:
    - ebst_lookup
    - ebmb_entry
    linkageType: ''
    returnType: struct ckch_store
    signature: struct ckch_store *ckchs_lookup(char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ckch_store_new
      Src: /src/haproxy/src/ssl_ckch.c:1171,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1173,1
    - Dst: ssl_sock_load_files_into_ckch
      Src: /src/haproxy/src/ssl_ckch.c:1177,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_ckch.c:1183,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:1183,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:1184,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:1188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - path
    - err
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1167
    functionDepth: 7
    functionLinenumber: 1167
    functionLinenumberEnd: 1191
    functionName: ckch_store_new_load_files_path
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 4
    functionsReached:
    - memprintf
    - memcpy
    - ckch_store_free
    - ssl_sock_load_files_into_ckch
    - ckch_store_new
    - ebst_insert
    - strlen
    linkageType: ''
    returnType: struct ckch_store
    signature: struct ckch_store *ckch_store_new_load_files_path(char *path, char
      **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ckch_store_new
      Src: /src/haproxy/src/ssl_ckch.c:1203,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1205,1
    - Dst: ssl_sock_load_files_into_ckch
      Src: /src/haproxy/src/ssl_ckch.c:1214,1
    - Dst: ckch_store_load_files
      Src: /src/haproxy/src/ssl_ckch.c:1222,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_ckch.c:1229,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:1229,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:1230,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:1234,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 5
    argNames:
    - name
    - conf
    - file
    - linenum
    - err
    argTypes:
    - char*
    - struct ckch_conf*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1197
    functionDepth: 7
    functionLinenumber: 1197
    functionLinenumberEnd: 1237
    functionName: ckch_store_new_load_files_conf
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - ckch_store_load_files
    - memprintf
    - memcpy
    - ckch_store_free
    - ssl_sock_load_files_into_ckch
    - ckch_store_new
    - ebst_insert
    - strlen
    linkageType: ''
    returnType: struct ckch_store
    signature: struct ckch_store *ckch_store_new_load_files_conf(char *name, struct
      ckch_conf *conf, const char *file, int linenum, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:1251,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_ckch.c:1252,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1253,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:1254,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1255,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_ckch.c:1257,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1259,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1260,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:1263,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/ssl_ckch.c:1264,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1268,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:1269,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1271,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1272,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - inst
    argTypes:
    - struct ckch_inst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1243
    functionDepth: 3
    functionLinenumber: 1243
    functionLinenumberEnd: 1276
    functionName: ckch_inst_free
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 8
    functionsReached:
    - LIST_DELETE
    - SSL_CTX_free
    - LIST_DEL_INIT
    - ha_free
    - list_for_each_entry_safe
    - free
    - LIST_INLIST
    - ebmb_delete
    linkageType: ''
    returnType: void
    signature: void ckch_inst_free(struct ckch_inst *inst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:1283,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1287,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1288,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1289,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1293
    functionName: ckch_inst_new
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - calloc
    - LIST_INIT
    linkageType: ''
    returnType: struct ckch_inst
    signature: struct ckch_inst *ckch_inst_new()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_ckch.c:1311,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:1313,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_ckch.c:1321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - path
    - oldest_entry
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1306
    functionDepth: 2
    functionLinenumber: 1306
    functionLinenumberEnd: 1324
    functionName: ssl_store_get_cafile_entry
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - ebmb_next_dup
    - ebst_lookup
    - ebmb_entry
    linkageType: ''
    returnType: struct cafile_entry
    signature: struct cafile_entry *ssl_store_get_cafile_entry(char *path, int oldest_entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct cafile_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1326
    functionDepth: 2
    functionLinenumber: 1326
    functionLinenumberEnd: 1329
    functionName: ssl_store_add_uncommitted_cafile_entry
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ebst_insert
    linkageType: ''
    returnType: int
    signature: int ssl_store_add_uncommitted_cafile_entry(struct cafile_entry *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:1333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1331
    functionDepth: 3
    functionLinenumber: 1331
    functionLinenumberEnd: 1339
    functionName: ssl_store_get0_locations_file
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ssl_store_get_cafile_entry
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE * ssl_store_get0_locations_file(char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:1347,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:1349,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_ckch.c:1351,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - path
    - store
    - type
    argTypes:
    - char*
    - X509_STORE*
    - enum cafile_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1357
    functionName: ssl_store_create_cafile_entry
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - calloc
    - LIST_INIT
    - memcpy
    - strlen
    linkageType: ''
    returnType: struct cafile_entry
    signature: struct cafile_entry *ssl_store_create_cafile_entry(char *path, X509_STORE
      *store, enum cafile_type type)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:1370,1
    - Dst: X509_STORE_new
      Src: /src/haproxy/src/ssl_ckch.c:1378,1
    - Dst: X509_STORE_getX_objects
      Src: /src/haproxy/src/ssl_ckch.c:1382,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_ckch.c:1383,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/haproxy/src/ssl_ckch.c:1387,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_ckch.c:1387,1
    - Dst: X509_STORE_add_cert
      Src: /src/haproxy/src/ssl_ckch.c:1389,1
    - Dst: ERR_GET_REASON
      Src: /src/haproxy/src/ssl_ckch.c:1391,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:1391,1
    - Dst: X509_OBJECT_get0_X509_CRL
      Src: /src/haproxy/src/ssl_ckch.c:1397,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_ckch.c:1397,1
    - Dst: X509_STORE_add_crl
      Src: /src/haproxy/src/ssl_ckch.c:1399,1
    - Dst: ERR_GET_REASON
      Src: /src/haproxy/src/ssl_ckch.c:1401,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:1401,1
    - Dst: ssl_store_create_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:1409,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_ckch.c:1410,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_ckch.c:1414,1
    - Dst: X509_STORE_free
      Src: /src/haproxy/src/ssl_ckch.c:1415,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:1416,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct cafile_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1366
    functionDepth: 2
    functionLinenumber: 1366
    functionLinenumberEnd: 1419
    functionName: ssl_store_dup_cafile_entry
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - X509_STORE_add_cert
    - ssl_store_create_cafile_entry
    - sk_X509_OBJECT_num
    - X509_STORE_new
    - ERR_get_error
    - X509_STORE_free
    - ha_free
    - X509_OBJECT_get0_X509_CRL
    - X509_STORE_getX_objects
    - sk_X509_OBJECT_popX_free
    - STACK_OF
    - X509_STORE_add_crl
    - X509_OBJECT_get0_X509
    - sk_X509_OBJECT_value
    linkageType: ''
    returnType: struct cafile_entry
    signature: struct cafile_entry *ssl_store_dup_cafile_entry(struct cafile_entry
      *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_free
      Src: /src/haproxy/src/ssl_ckch.c:1429,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:1431,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:1434,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1436,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1437,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1441,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1442,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ca_e
    argTypes:
    - struct cafile_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1423
    functionDepth: 3
    functionLinenumber: 1423
    functionLinenumberEnd: 1446
    functionName: ssl_store_delete_cafile_entry
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    - list_for_each_entry_safe
    - LIST_DELETE
    - free
    linkageType: ''
    returnType: void
    signature: void ssl_store_delete_cafile_entry(struct cafile_entry *ca_e)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:1463,1
    - Dst: X509_STORE_free
      Src: /src/haproxy/src/ssl_ckch.c:1473,1
    - Dst: X509_STORE_new
      Src: /src/haproxy/src/ssl_ckch.c:1478,1
    - Dst: BIO_new_mem_buf
      Src: /src/haproxy/src/ssl_ckch.c:1483,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:1483,1
    - Dst: PEM_X509_INFO_read_bio
      Src: /src/haproxy/src/ssl_ckch.c:1487,1
    - Dst: sk_X509_INFO_num
      Src: /src/haproxy/src/ssl_ckch.c:1491,1
    - Dst: sk_X509_INFO_value
      Src: /src/haproxy/src/ssl_ckch.c:1492,1
    - Dst: X509_STORE_add_cert
      Src: /src/haproxy/src/ssl_ckch.c:1496,1
    - Dst: X509_STORE_add_crl
      Src: /src/haproxy/src/ssl_ckch.c:1498,1
    - Dst: sk_X509_INFO_num
      Src: /src/haproxy/src/ssl_ckch.c:1503,1
    - Dst: sk_X509_INFO_num
      Src: /src/haproxy/src/ssl_ckch.c:1503,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/haproxy/src/ssl_ckch.c:1507,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:1510,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 3
    argNames:
    - ca_e
    - cert_buf
    - append
    argTypes:
    - struct cafile_entry*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1460
    functionDepth: 0
    functionLinenumber: 1460
    functionLinenumberEnd: 1513
    functionName: ssl_store_load_ca_from_buf
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - X509_STORE_add_cert
    - X509_STORE_new
    - X509_STORE_free
    - sk_X509_INFO_pop_free
    - BIO_free
    - BIO_new_mem_buf
    - PEM_X509_INFO_read_bio
    - STACK_OF
    - X509_STORE_add_crl
    - sk_X509_INFO_value
    - sk_X509_INFO_num
    - strlen
    linkageType: ''
    returnType: int
    signature: int ssl_store_load_ca_from_buf(struct cafile_entry *ca_e, char *cert_buf,
      int append)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_default_cert_dir_env
      Src: /src/haproxy/src/ssl_ckch.c:1524,1
    - Dst: getenv
      Src: /src/haproxy/src/ssl_ckch.c:1527,1
    - Dst: X509_get_default_cert_dir
      Src: /src/haproxy/src/ssl_ckch.c:1529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1532
    functionName: ha_default_cert_dir
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - getenv
    - X509_get_default_cert_dir_env
    - X509_get_default_cert_dir
    linkageType: ''
    returnType: char
    signature: char *ha_default_cert_dir()
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:1541,1
    - Dst: ssl_store_get0_locations_file
      Src: /src/haproxy/src/ssl_ckch.c:1542,1
    - Dst: X509_STORE_new
      Src: /src/haproxy/src/ssl_ckch.c:1555,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1558,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1562,1
    - Dst: ha_default_cert_dir
      Src: /src/haproxy/src/ssl_ckch.c:1563,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1566,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:1572,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1574,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_ckch.c:1574,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/ssl_ckch.c:1578,1
    - Dst: X509_STORE_load_locations
      Src: /src/haproxy/src/ssl_ckch.c:1585,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:1586,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1588,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_ckch.c:1588,1
    - Dst: scandir
      Src: /src/haproxy/src/ssl_ckch.c:1595,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:1603,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_ckch.c:1612,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1614,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1615,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1616,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1617,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1618,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_ckch.c:1622,1
    - Dst: X509_STORE_load_locations
      Src: /src/haproxy/src/ssl_ckch.c:1623,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1626,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:1630,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1631,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_ckch.c:1634,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_ckch.c:1634,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1637,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1640,1
    - Dst: ssl_commit_crlfile_cb
      Src: /src/haproxy/src/ssl_ckch.c:1645,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1647,1
    - Dst: X509_STORE_getX_objects
      Src: /src/haproxy/src/ssl_ckch.c:1652,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_ckch.c:1653,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_ckch.c:1656,1
    - Dst: ssl_store_create_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:1658,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1661,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:1664,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_ckch.c:1666,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_ckch.c:1670,1
    - Dst: X509_STORE_free
      Src: /src/haproxy/src/ssl_ckch.c:1671,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 101
    argCount: 4
    argNames:
    - path
    - create_if_none
    - type
    - shuterror
    argTypes:
    - char*
    - int
    - enum cafile_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1539
    functionDepth: 9
    functionLinenumber: 1539
    functionLinenumberEnd: 1675
    functionName: __ssl_store_load_locations_file
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - ssl_commit_crlfile_cb
    - ERR_reason_error_string
    - scandir
    - stat
    - free
    - X509_STORE_load_locations
    - X509_STORE_getX_objects
    - STACK_OF
    - ssl_store_create_cafile_entry
    - strerror
    - X509_STORE_free
    - chunk_printf
    - strcmp
    - ha_default_cert_dir
    - ssl_store_get0_locations_file
    - strrchr
    - sk_X509_OBJECT_popX_free
    - ERR_clear_error
    - X509_STORE_new
    - sk_X509_OBJECT_num
    - S_ISDIR
    - ebst_insert
    - ha_alert
    - ha_warning
    - ERR_get_error
    linkageType: ''
    returnType: int
    signature: int __ssl_store_load_locations_file(char *path, int create_if_none,
      enum cafile_type type, int shuterror)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ssl_store_load_locations_file
      Src: /src/haproxy/src/ssl_ckch.c:1679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - create_if_none
    - type
    argTypes:
    - char*
    - int
    - enum cafile_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1677
    functionDepth: 10
    functionLinenumber: 1677
    functionLinenumberEnd: 1680
    functionName: ssl_store_load_locations_file
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 6
    functionsReached:
    - __ssl_store_load_locations_file
    linkageType: ''
    returnType: int
    signature: int ssl_store_load_locations_file(char *path, int create_if_none, enum
      cafile_type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1700
    functionDepth: 1
    functionLinenumber: 1700
    functionLinenumberEnd: 1703
    functionName: cli_release_show_sni
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void cli_release_show_sni(struct appctx *appctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:1713,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1726,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:1727,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_ckch.c:1739,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_ckch.c:1739,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/ssl_ckch.c:1741,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_ckch.c:1743,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:1752,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:1754,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:1760,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:1766,1
    - Dst: x509_get_notafter_time_t
      Src: /src/haproxy/src/ssl_ckch.c:1772,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1778,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1782,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:1787,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1789,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1794,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1808,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1811,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1812,1
    - Dst: x509_get_notafter
      Src: /src/haproxy/src/ssl_ckch.c:1812,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1813,1
    - Dst: x509_get_notbefore
      Src: /src/haproxy/src/ssl_ckch.c:1813,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:1815,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:1816,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:1824,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:1834,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:1843,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 86
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1710
    functionDepth: 4
    functionLinenumber: 1710
    functionLinenumberEnd: 1845
    functionName: cli_io_handler_show_sni
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - typeof
    - HA_RWLOCK_RDLOCK
    - x509_get_notbefore
    - list_for_each_entry
    - list_for_each_entry_from
    - alloc_trash_chunk
    - HA_RWLOCK_RDUNLOCK
    - x509_get_notafter_time_t
    - chunk_appendf
    - free_trash_chunk
    - ebmb_entry
    - x509_get_notafter
    - applet_putchk
    - ebmb_next
    - ebmb_first
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_sni(struct appctx *appctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ckch.c:1851,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1861,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1864,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1876,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1883,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1885,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1889,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1892,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1898,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/ssl_ckch.c:1900,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:1903,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1903,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:1906,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1906,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:1909,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1909,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:1913,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1913,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1920,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:1925,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1926,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1849
    functionDepth: 5
    functionLinenumber: 1849
    functionLinenumberEnd: 1929
    functionName: cli_parse_show_sni
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - cli_err
    - strcmp
    - applet_reserve_svcctx
    - parse_time_err
    - cli_dynerr
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_sni(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:1934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1932
    functionDepth: 1
    functionLinenumber: 1932
    functionLinenumberEnd: 1935
    functionName: cli_release_show_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void cli_release_show_cert(struct appctx *appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:1943,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1952,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1953,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:1954,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1960,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:1961,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:1966,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1967,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:1969,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:1970,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:1975,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:1979,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1940
    functionDepth: 1
    functionLinenumber: 1940
    functionLinenumberEnd: 1982
    functionName: cli_io_handler_show_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_appendf
    - ebmb_entry
    - ebmb_next
    - ebmb_first
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_cert(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:1993,1
    - Dst: X509_get_ext_d2i
      Src: /src/haproxy/src/ssl_ckch.c:1995,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/haproxy/src/ssl_ckch.c:1997,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/haproxy/src/ssl_ckch.c:1998,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2000,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_ckch.c:2002,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2003,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ssl_ckch.c:2004,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/haproxy/src/ssl_ckch.c:2008,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - cert
    - out
    argTypes:
    - X509*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1989
    functionDepth: 1
    functionLinenumber: 1989
    functionLinenumberEnd: 2011
    functionName: ssl_sock_get_san_oneline
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_GENERAL_NAME_pop_free
    - chunk_appendf
    - X509_get_ext_d2i
    - ASN1_STRING_to_UTF8
    - STACK_OF
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_san_oneline(X509 *cert, struct buffer *out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:2022,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_ckch.c:2023,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_ckch.c:2024,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:2032,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:2034,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:2036,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:2042,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:2043,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_ckch.c:2045,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_ckch.c:2046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - cafile_entry
    - ckch_inst
    argTypes:
    - struct cafile_entry*
    - struct ckch_inst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2019
    functionDepth: 3
    functionLinenumber: 2019
    functionLinenumberEnd: 2050
    functionName: do_chain_inst_and_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - typeof
    - calloc
    - free
    - LIST_APPEND
    - LIST_ISEMPTY
    - LIST_INIT
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int do_chain_inst_and_cafile(struct cafile_entry *cafile_entry, struct
      ckch_inst *ckch_inst)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:2099,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:2103,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:2112,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:2114,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:2116,1
    - Dst: do_chain_inst_and_cafile
      Src: /src/haproxy/src/ssl_ckch.c:2122,1
    - Dst: do_chain_inst_and_cafile
      Src: /src/haproxy/src/ssl_ckch.c:2129,1
    - Dst: do_chain_inst_and_cafile
      Src: /src/haproxy/src/ssl_ckch.c:2135,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 54
    argCount: 4
    argNames:
    - ckch_inst
    - bind_conf
    - ssl_conf
    - srv
    argTypes:
    - struct ckch_inst*
    - struct bind_conf*
    - struct ssl_bind_conf*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2061
    functionDepth: 4
    functionLinenumber: 2061
    functionLinenumberEnd: 2139
    functionName: ckch_inst_add_cafile_link
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 3
    functionsReached:
    - do_chain_inst_and_cafile
    - ssl_store_get_cafile_entry
    linkageType: ''
    returnType: void
    signature: "void ckch_inst_add_cafile_link(struct ckch_inst *ckch_inst, struct
      bind_conf *bind_conf,\n\t\t\t       struct ssl_bind_conf *ssl_conf, const struct
      server *srv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ocsp_build_response_key
      Src: /src/haproxy/src/ssl_ckch.c:2272,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2274,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2276,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ckch_store
    - out
    argTypes:
    - struct ckch_store*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2265
    functionDepth: 1
    functionLinenumber: 2265
    functionLinenumberEnd: 2283
    functionName: ckch_store_show_ocsp_certid
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - ssl_ocsp_build_response_key
    linkageType: ''
    returnType: int
    signature: int ckch_store_show_ocsp_certid(struct ckch_store *ckch_store, struct
      buffer *out)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2293,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2299,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2301,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2302,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2305,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2306,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2309,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2310,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2313,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2314,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2317,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2318,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2321,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2322,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2324,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2326,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2328,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2330,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2332,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2334,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:2335,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2336,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2338,1
    - Dst: show_cert_detail
      Src: /src/haproxy/src/ssl_ckch.c:2340,1
    - Dst: ckch_store_show_ocsp_certid
      Src: /src/haproxy/src/ssl_ckch.c:2346,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2349,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2353,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2356,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2289
    functionDepth: 2
    functionLinenumber: 2289
    functionLinenumberEnd: 2358
    functionName: cli_io_handler_show_cert_detail
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - show_cert_detail
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_appendf
    - ckch_store_show_ocsp_certid
    - LIST_ISEMPTY
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_cert_detail(struct appctx *appctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2369,1
    - Dst: ssl_ocsp_response_print
      Src: /src/haproxy/src/ssl_ckch.c:2380,1
    - Dst: ssl_ocsp_build_response_key
      Src: /src/haproxy/src/ssl_ckch.c:2387,1
    - Dst: ssl_get_ocspresponse_detail
      Src: /src/haproxy/src/ssl_ckch.c:2390,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2394,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2398,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2401,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2404,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2364
    functionDepth: 3
    functionLinenumber: 2364
    functionLinenumberEnd: 2406
    functionName: cli_io_handler_show_cert_ocsp_detail
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ssl_ocsp_build_response_key
    - cli_err
    - free_trash_chunk
    - alloc_trash_chunk
    - ssl_get_ocspresponse_detail
    - ssl_ocsp_response_print
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_cert_ocsp_detail(struct appctx *appctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ckch.c:2411,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:2414,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2415,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2419,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2420,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_ckch.c:2430,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:2431,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:2448,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:2457,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2475,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2476,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2409
    functionDepth: 3
    functionLinenumber: 2409
    functionLinenumberEnd: 2477
    functionName: cli_parse_show_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - strrchr
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - applet_reserve_svcctx
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_cert(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ckch.c:2482,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:2485,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2486,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2490,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2491,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:2502,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:2506,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2513,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2514,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2524,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2525,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2480
    functionDepth: 3
    functionLinenumber: 2480
    functionLinenumberEnd: 2526
    functionName: cli_parse_dump_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - applet_reserve_svcctx
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_dump_cert(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:2533,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2534,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:2538,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:2538,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2542,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2543,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:2545,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2550,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2554,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2555,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - args
    - appctx
    - value
    argTypes:
    - char**
    - struct appctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2528
    functionDepth: 5
    functionLinenumber: 2528
    functionLinenumberEnd: 2556
    functionName: cli_set_ssl_jwt
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - cli_err
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - cli_has_level
    - cli_dynerr
    linkageType: ''
    returnType: int
    signature: int cli_set_ssl_jwt(char **args, struct appctx *appctx, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_set_ssl_jwt
      Src: /src/haproxy/src/ssl_ckch.c:2561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2559
    functionDepth: 6
    functionLinenumber: 2559
    functionLinenumberEnd: 2562
    functionName: cli_parse_add_jwt
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - cli_set_ssl_jwt
    linkageType: ''
    returnType: int
    signature: int cli_parse_add_jwt(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_set_ssl_jwt
      Src: /src/haproxy/src/ssl_ckch.c:2567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2568
      start: 2565
    functionDepth: 6
    functionLinenumber: 2565
    functionLinenumberEnd: 2568
    functionName: cli_parse_del_jwt
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - cli_set_ssl_jwt
    linkageType: ''
    returnType: int
    signature: int cli_parse_del_jwt(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ckch.c:2573,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:2575,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2576,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2580,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2571
    functionDepth: 2
    functionLinenumber: 2571
    functionLinenumberEnd: 2584
    functionName: cli_parse_show_jwt
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - cli_has_level
    - cli_err
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_jwt(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2592,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2600,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:2601,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:2606,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2608,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:2610,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2611,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2616,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2589
    functionDepth: 1
    functionLinenumber: 2589
    functionLinenumberEnd: 2623
    functionName: cli_io_handler_show_jwt
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_appendf
    - ebmb_entry
    - ebmb_next
    - ebmb_first
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_jwt(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2626
    functionDepth: 1
    functionLinenumber: 2626
    functionLinenumberEnd: 2629
    functionName: cli_release_show_jwt
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void cli_release_show_jwt(struct appctx *appctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2644,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ckch.c:2653,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_ckch.c:2653,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:2658,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/haproxy/src/ssl_ckch.c:2661,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:2664,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2670,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:2679,1
    - Dst: PEM_write_bio_X509
      Src: /src/haproxy/src/ssl_ckch.c:2682,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:2685,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2691,1
    - Dst: sk_X509_num
      Src: /src/haproxy/src/ssl_ckch.c:2698,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_ckch.c:2699,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:2701,1
    - Dst: PEM_write_bio_X509
      Src: /src/haproxy/src/ssl_ckch.c:2704,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:2707,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2713,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2718,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:2719,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2723,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:2724,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2729,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:2730,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 76
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2640
    functionDepth: 1
    functionLinenumber: 2640
    functionLinenumberEnd: 2733
    functionName: cli_io_handler_dump_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_PrivateKey
    - sk_X509_value
    - free_trash_chunk
    - alloc_trash_chunk
    - BIO_free
    - BIO_reset
    - PEM_write_bio_X509
    - BIO_read
    - sk_X509_num
    - BIO_new
    - BIO_s_mem
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_cert(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2737
    functionDepth: 1
    functionLinenumber: 2737
    functionLinenumberEnd: 2740
    functionName: cli_release_dump_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void cli_release_dump_cert(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2760,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:2761,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:2766,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:2770,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:2771,1
    - Dst: X509_check_private_key
      Src: /src/haproxy/src/ssl_ckch.c:2776,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:2777,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2786,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - path
    - old_ckchs
    - new_ckchs
    - err
    argTypes:
    - char*
    - struct ckch_store**
    - struct ckch_store**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2755
    functionDepth: 5
    functionLinenumber: 2755
    functionLinenumberEnd: 2788
    functionName: ckch_store_update_init
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - strcmp
    - HA_SPIN_UNLOCK
    - X509_check_private_key
    linkageType: ''
    returnType: int
    signature: "int ckch_store_update_init(char *path, struct ckch_store **old_ckchs,\n
      \                          struct ckch_store **new_ckchs, char **err)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_ckch.c:2813,1
    - Dst: ckch_store_rebuild_instances
      Src: /src/haproxy/src/ssl_ckch.c:2824,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2833,1
    - Dst: ckch_store_replace
      Src: /src/haproxy/src/ssl_ckch.c:2845,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2850,1
    - Dst: usermsgs_str
      Src: /src/haproxy/src/ssl_ckch.c:2850,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2861,1
    - Dst: usermsgs_str
      Src: /src/haproxy/src/ssl_ckch.c:2861,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 6
    argNames:
    - old_ckchs
    - new_ckchs
    - ckchi
    - state
    - msg
    - err
    argTypes:
    - struct ckch_store**
    - struct ckch_store**
    - struct ckch_inst**
    - int*
    - struct buffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2872
      start: 2802
    functionDepth: 2
    functionLinenumber: 2802
    functionLinenumberEnd: 2872
    functionName: ckch_store_update_process
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - usermsgs_str
    - chunk_appendf
    - ckch_store_replace
    - ckch_store_rebuild_instances
    linkageType: ''
    returnType: int
    signature: "int ckch_store_update_process(struct ckch_store **old_ckchs, struct
      ckch_store **new_ckchs,\n                              struct ckch_inst **ckchi,
      int *state,\n                              struct buffer *msg, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2880,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:2883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - new_ckchs
    argTypes:
    - struct ckch_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2878
    functionDepth: 5
    functionLinenumber: 2878
    functionLinenumberEnd: 2884
    functionName: ckch_store_update_cleanup
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    - ckch_store_free
    linkageType: ''
    returnType: void
    signature: void ckch_store_update_cleanup(struct ckch_store *new_ckchs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ckch_store_update_cleanup
      Src: /src/haproxy/src/ssl_ckch.c:2892,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:2894,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2888
    functionDepth: 6
    functionLinenumber: 2888
    functionLinenumberEnd: 2897
    functionName: cli_release_commit_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ha_free
    - ckch_store_update_cleanup
    - free_trash_chunk
    linkageType: ''
    returnType: void
    signature: void cli_release_commit_cert(struct appctx *appctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ckch_inst_new_load_srv_store
      Src: /src/haproxy/src/ssl_ckch.c:2920,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_ckch.c:2920,1
    - Dst: ckch_inst_new_load_store
      Src: /src/haproxy/src/ssl_ckch.c:2923,1
    - Dst: ssl_sock_prep_srv_ctx_and_inst
      Src: /src/haproxy/src/ssl_ckch.c:2935,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:2945,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_ckch.c:2947,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - ckch_store
    - ckchi
    - new_inst
    - err
    argTypes:
    - struct ckch_store*
    - struct ckch_inst*
    - struct ckch_inst**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2954
      start: 2905
    functionDepth: 8
    functionLinenumber: 2905
    functionLinenumberEnd: 2954
    functionName: ckch_inst_rebuild
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - ssl_sock_prep_ctx_and_inst
    - ssl_sock_prep_srv_ctx_and_inst
    - srv_is_quic
    - list_for_each_entry_safe
    - ckch_inst_new_load_srv_store
    - ckch_inst_new_load_store
    linkageType: ''
    returnType: int
    signature: "int ckch_inst_rebuild(struct ckch_store *ckch_store, struct ckch_inst
      *ckchi,\n                      struct ckch_inst **new_inst, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2966,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_ckch.c:2968,1
    - Dst: SSL_CTX_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:2970,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:2976,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2977,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2980,1
    - Dst: ssl_sock_load_cert_sni
      Src: /src/haproxy/src/ssl_ckch.c:2981,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ckchi
    argTypes:
    - struct ckch_inst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2960
    functionDepth: 2
    functionLinenumber: 2960
    functionLinenumberEnd: 2984
    functionName: __ssl_sock_load_new_ckch_instance
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_free
    - HA_RWLOCK_WRUNLOCK
    - ha_free
    - ssl_sock_load_cert_sni
    - SSL_CTX_up_ref
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void __ssl_sock_load_new_ckch_instance(struct ckch_inst *ckchi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_ckch.c:2993,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2997,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_ckch.c:2998,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ckchi
    argTypes:
    - struct ckch_inst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2989
    functionDepth: 4
    functionLinenumber: 2989
    functionLinenumberEnd: 3001
    functionName: __ckch_inst_free_locked
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ckch_inst_free
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void __ckch_inst_free_locked(struct ckch_inst *ckchi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/ssl_ckch.c:3023,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:3024,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/ssl_ckch.c:3025,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_ckch.c:3028,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:3031,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/ssl_ckch.c:3033,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:3036,1
    - Dst: __ssl_sock_load_new_ckch_instance
      Src: /src/haproxy/src/ssl_ckch.c:3037,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:3040,1
    - Dst: __ckch_inst_free_locked
      Src: /src/haproxy/src/ssl_ckch.c:3041,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:3044,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:3045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - old_ckchs
    - new_ckchs
    argTypes:
    - struct ckch_store*
    - struct ckch_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3018
    functionDepth: 5
    functionLinenumber: 3018
    functionLinenumberEnd: 3046
    functionName: ckch_store_replace
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 3
    functionsReached:
    - LIST_SPLICE
    - ckch_store_free
    - ebpt_delete
    - list_for_each_entry
    - list_for_each_entry_safe
    - ebst_insert
    - __ssl_sock_load_new_ckch_instance
    - ebpt_insert
    - LIST_INSERT
    - __ckch_inst_free_locked
    linkageType: ''
    returnType: void
    signature: void ckch_store_replace(struct ckch_store *old_ckchs, struct ckch_store
      *new_ckchs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_ckch.c:3068,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/ssl_ckch.c:3071,1
    - Dst: ckch_inst_rebuild
      Src: /src/haproxy/src/ssl_ckch.c:3080,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_ckch.c:3086,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 6
    argNames:
    - old_ckchs
    - new_ckchs
    - ckchi
    - max
    - count
    - err
    argTypes:
    - struct ckch_store*
    - struct ckch_store*
    - struct ckch_inst**
    - int
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3057
    functionDepth: 9
    functionLinenumber: 3057
    functionLinenumberEnd: 3091
    functionName: ckch_store_rebuild_instances
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - list_for_each_entry_from
    - ckch_inst_rebuild
    - LIST_APPEND
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: "int ckch_store_rebuild_instances(struct ckch_store *old_ckchs, struct
      ckch_store *new_ckchs,\n                                 struct ckch_inst **ckchi,
      int max, int *count, char **err)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/ssl_ckch.c:3104,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:3107,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:3108,1
    - Dst: b_reset
      Src: /src/haproxy/src/ssl_ckch.c:3110,1
    - Dst: ckch_store_update_process
      Src: /src/haproxy/src/ssl_ckch.c:3113,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:3116,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:3117,1
    - Dst: b_reset
      Src: /src/haproxy/src/ssl_ckch.c:3119,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/ssl_ckch.c:3122,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/ssl_ckch.c:3133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3135
      start: 3099
    functionDepth: 3
    functionLinenumber: 3099
    functionLinenumberEnd: 3135
    functionName: cli_io_handler_commit_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ckch_store_update_process
    - usermsgs_clr
    - b_data
    - b_reset
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_commit_cert(struct appctx *appctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ckch.c:3143,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3146,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3150,1
    - Dst: ckch_store_update_init
      Src: /src/haproxy/src/ssl_ckch.c:3152,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3159,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3161,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3169,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3171,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3141
    functionDepth: 6
    functionLinenumber: 3141
    functionLinenumberEnd: 3174
    functionName: cli_parse_commit_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - memprintf
    - alloc_trash_chunk
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - applet_reserve_svcctx
    - ckch_store_update_init
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_commit_cert(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3195,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3196,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3200,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/ssl_ckch.c:3201,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3202,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_ckch.c:3209,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3210,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:3212,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3221,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:3226,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3227,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3232,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ckch.c:3234,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:3234,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:3234,1
    - Dst: b_sub
      Src: /src/haproxy/src/ssl_ckch.c:3235,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:3235,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3237,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3243,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:3254,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:3259,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3260,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:3264,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3270,1
    - Dst: ckchs_dup
      Src: /src/haproxy/src/ssl_ckch.c:3277,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3279,1
    - Dst: OCSP_CERTID_free
      Src: /src/haproxy/src/ssl_ckch.c:3288,1
    - Dst: struct cert_exts*::load
      Src: /src/haproxy/src/ssl_ckch.c:3295,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3296,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3307,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3309,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:3313,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:3319,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3321,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3323,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 101
    argCount: 3
    argNames:
    - path
    - payload
    - err
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3182
    functionDepth: 7
    functionLinenumber: 3182
    functionLinenumberEnd: 3325
    functionName: ckch_store_load_payload
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - OCSP_CERTID_free
    - memprintf
    - b_orig
    - ckch_store_free
    - free_trash_chunk
    - b_sub
    - alloc_trash_chunk
    - chunk_strcat
    - strcmp
    - strrchr
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - chunk_strcpy
    - ckchs_dup
    - b_data
    - struct cert_exts*::load
    - strlen
    linkageType: ''
    returnType: int
    signature: int ckch_store_load_payload(char *path, char *payload, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3336,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3340,1
    - Dst: ckch_store_load_payload
      Src: /src/haproxy/src/ssl_ckch.c:3342,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3348,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3348,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3331
    functionDepth: 8
    functionLinenumber: 3331
    functionLinenumberEnd: 3351
    functionName: cli_parse_set_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cli_dynmsg
    - cli_err
    - ckch_store_load_payload
    - cli_has_level
    - cli_dynerr
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_cert(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3358,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3362,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3366,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3367,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3370,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3374,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3375,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:3380,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3385,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3387,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3388,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3391,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3393,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3394
      start: 3354
    functionDepth: 5
    functionLinenumber: 3354
    functionLinenumberEnd: 3394
    functionName: cli_parse_abort_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - cli_dynmsg
    - ckch_store_free
    - strcmp
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_abort_cert(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3408,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3409,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:3413,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3415,1
    - Dst: ckch_store_new
      Src: /src/haproxy/src/ssl_ckch.c:3420,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3422,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:3427,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3428,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3430,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3435,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:3436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - path
    - err
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3402
    functionDepth: 6
    functionLinenumber: 3402
    functionLinenumberEnd: 3438
    functionName: ckch_store_create
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - ckch_store_new
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - free
    - ebst_insert
    linkageType: ''
    returnType: int
    signature: int ckch_store_create(char *path, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3445,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3449,1
    - Dst: ckch_store_create
      Src: /src/haproxy/src/ssl_ckch.c:3451,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3454,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3457
      start: 3441
    functionDepth: 7
    functionLinenumber: 3441
    functionLinenumberEnd: 3457
    functionName: cli_parse_new_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - cli_dynmsg
    - cli_err
    - cli_has_level
    - ckch_store_create
    - cli_dynerr
    linkageType: ''
    returnType: int
    signature: int cli_parse_new_cert(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3466,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3470,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3472,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3473,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3477,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3478,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:3482,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3484,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3489,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:3493,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3494,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:3498,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:3499,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3501,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3503,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3504,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3507,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3508,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3509,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3510
      start: 3460
    functionDepth: 5
    functionLinenumber: 3460
    functionLinenumberEnd: 3510
    functionName: cli_parse_del_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - cli_dynmsg
    - ckch_store_free
    - strcmp
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - LIST_ISEMPTY
    - cli_has_level
    - ebmb_delete
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_del_cert(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3521,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3525,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3531,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3532,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3534,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3536,1
    - Dst: ssl_store_create_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3540,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3542,1
    - Dst: ssl_store_add_uncommitted_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3549,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3552,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3554,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3555,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3557,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3558,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3559
      start: 3515
    functionDepth: 5
    functionLinenumber: 3515
    functionLinenumberEnd: 3559
    functionName: cli_parse_new_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - ssl_store_create_cafile_entry
    - memprintf
    - cli_dynmsg
    - ssl_store_add_uncommitted_cafile_entry
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_new_cafile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3573,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3581,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3585,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3586,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3588,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3589,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/ssl_ckch.c:3594,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3595,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3606,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3607,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3614,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3618,1
    - Dst: ssl_store_dup_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3626,1
    - Dst: ssl_store_dup_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3628,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3631,1
    - Dst: ssl_store_load_ca_from_buf
      Src: /src/haproxy/src/ssl_ckch.c:3638,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3639,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3650,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3652,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3656,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3663,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3666,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3667,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3668,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3668,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3671,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3672,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3674
      start: 3564
    functionDepth: 5
    functionLinenumber: 3564
    functionLinenumberEnd: 3674
    functionName: cli_parse_set_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - cli_dynmsg
    - ssl_store_dup_cafile_entry
    - free_trash_chunk
    - alloc_trash_chunk
    - ssl_store_delete_cafile_entry
    - strcmp
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - chunk_strcpy
    - cli_has_level
    - ssl_store_load_ca_from_buf
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_cafile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ckch.c:3683,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3686,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3690,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3694,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3695,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3698,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3702,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3703,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3717,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3718,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3720,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3721
      start: 3681
    functionDepth: 5
    functionLinenumber: 3681
    functionLinenumberEnd: 3721
    functionName: cli_parse_commit_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - strcmp
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - applet_reserve_svcctx
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_commit_cafile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_ckch.c:3757,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:3758,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_ckch.c:3777,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_ckch.c:3777,1
    - Dst: ssl_store_add_uncommitted_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3780,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/ssl_ckch.c:3786,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/ssl_ckch.c:3795,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/ssl_ckch.c:3800,1
    - Dst: ckch_inst_rebuild
      Src: /src/haproxy/src/ssl_ckch.c:3806,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_ckch.c:3812,1
    - Dst: ssl_commit_crlfile_cb
      Src: /src/haproxy/src/ssl_ckch.c:3821,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:3832,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/ssl_ckch.c:3834,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:3839,1
    - Dst: __ssl_sock_load_new_ckch_instance
      Src: /src/haproxy/src/ssl_ckch.c:3840,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:3847,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_ckch.c:3848,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_ckch.c:3848,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/ssl_ckch.c:3850,1
    - Dst: __ckch_inst_free_locked
      Src: /src/haproxy/src/ssl_ckch.c:3851,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:3852,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:3856,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3857,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/ssl_ckch.c:3863,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_ckch.c:3885,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:3886,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 120
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3728
    functionDepth: 9
    functionLinenumber: 3728
    functionLinenumberEnd: 3897
    functionName: cli_io_handler_commit_cafile_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ssl_commit_crlfile_cb
    - ckch_inst_rebuild
    - LIST_APPEND
    - free
    - applet_putstr
    - LIST_ELEM
    - ssl_store_add_uncommitted_cafile_entry
    - chunk_printf
    - LIST_INSERT
    - typeof
    - applet_have_more_data
    - LIST_DEL_INIT
    - ssl_store_delete_cafile_entry
    - ebmb_delete
    - list_for_each_entry
    - list_for_each_entry_from
    - __ssl_sock_load_new_ckch_instance
    - LIST_ISEMPTY
    - __ckch_inst_free_locked
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_commit_cafile_crlfile(struct appctx *appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3905,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3909,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3913,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3914,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3917,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3921,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3922,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3927,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3932,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3934,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3935,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3938,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3940,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3941
      start: 3901
    functionDepth: 5
    functionLinenumber: 3901
    functionLinenumberEnd: 3941
    functionName: cli_parse_abort_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - cli_dynmsg
    - ssl_store_delete_cafile_entry
    - strcmp
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_abort_cafile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:3953,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3954,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3956,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:3957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3958
      start: 3946
    functionDepth: 4
    functionLinenumber: 3946
    functionLinenumberEnd: 3958
    functionName: cli_release_commit_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ha_free
    - ssl_store_delete_cafile_entry
    - HA_SPIN_UNLOCK
    - ebmb_delete
    linkageType: ''
    returnType: void
    signature: void cli_release_commit_cafile(struct appctx *appctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3969,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:3972,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3980,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3982,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3983,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3985,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3987,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3989,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:3990,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3991,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3993,1
    - Dst: X509_STORE_getX_objects
      Src: /src/haproxy/src/ssl_ckch.c:3998,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_ckch.c:3999,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/haproxy/src/ssl_ckch.c:4001,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_ckch.c:4001,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4006,1
    - Dst: show_cert_detail
      Src: /src/haproxy/src/ssl_ckch.c:4007,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:4013,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_ckch.c:4021,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4022,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_ckch.c:4026,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4027,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_ckch.c:4030,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4033,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4035
      start: 3965
    functionDepth: 1
    functionLinenumber: 3965
    functionLinenumberEnd: 4035
    functionName: cli_io_handler_show_cafile_detail
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - show_cert_detail
    - sk_X509_OBJECT_num
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_appendf
    - LIST_ISEMPTY
    - applet_putchk
    - X509_STORE_getX_objects
    - sk_X509_OBJECT_popX_free
    - STACK_OF
    - X509_OBJECT_get0_X509
    - sk_X509_OBJECT_value
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_cafile_detail(struct appctx *appctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ckch.c:4044,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:4050,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4051,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4055,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4056,1
    - Dst: strchr
      Src: /src/haproxy/src/ssl_ckch.c:4064,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_ckch.c:4068,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4071,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4090,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4100,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4112,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4114,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4115,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4116
      start: 4042
    functionDepth: 5
    functionLinenumber: 4042
    functionLinenumberEnd: 4116
    functionName: cli_parse_show_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - strcmp
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - strchr
    - applet_reserve_svcctx
    - ssl_store_get_cafile_entry
    - strtol
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_cafile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4123
      start: 4120
    functionDepth: 1
    functionLinenumber: 4120
    functionLinenumberEnd: 4123
    functionName: cli_release_show_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void cli_release_show_cafile(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:4130,1
    - Dst: X509_STORE_getX_objects
      Src: /src/haproxy/src/ssl_ckch.c:4133,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_ckch.c:4135,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_ckch.c:4136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - cafile_entry
    argTypes:
    - struct cafile_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4139
      start: 4127
    functionDepth: 1
    functionLinenumber: 4127
    functionLinenumberEnd: 4139
    functionName: get_certificate_count
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - sk_X509_OBJECT_popX_free
    - X509_STORE_getX_objects
    - sk_X509_OBJECT_num
    - STACK_OF
    linkageType: ''
    returnType: int
    signature: int get_certificate_count(struct cafile_entry *cafile_entry)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4149,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4157,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4158,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4159,1
    - Dst: get_certificate_count
      Src: /src/haproxy/src/ssl_ckch.c:4159,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:4160,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4167,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:4168,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:4175,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4177,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4179,1
    - Dst: get_certificate_count
      Src: /src/haproxy/src/ssl_ckch.c:4179,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:4182,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:4183,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4188,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4192,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4195
      start: 4146
    functionDepth: 2
    functionLinenumber: 4146
    functionLinenumberEnd: 4195
    functionName: cli_io_handler_show_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_appendf
    - ebmb_entry
    - ebmb_next
    - ebmb_first
    - get_certificate_count
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_cafile(struct appctx *appctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:4204,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4208,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4210,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4211,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4215,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4216,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4220,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4222,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:4226,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4227,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:4232,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4233,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4235,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4237,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:4238,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4241,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4242,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4243,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4244
      start: 4198
    functionDepth: 5
    functionLinenumber: 4198
    functionLinenumberEnd: 4244
    functionName: cli_parse_del_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - cli_dynmsg
    - ssl_store_delete_cafile_entry
    - strcmp
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - LIST_ISEMPTY
    - cli_has_level
    - ebmb_delete
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_del_cafile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:4253,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4257,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4263,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4264,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4266,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4268,1
    - Dst: ssl_store_create_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4272,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4274,1
    - Dst: ssl_store_add_uncommitted_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4280,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4283,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4285,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:4286,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4288,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4290
      start: 4247
    functionDepth: 5
    functionLinenumber: 4247
    functionLinenumberEnd: 4290
    functionName: cli_parse_new_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - ssl_store_create_cafile_entry
    - memprintf
    - cli_dynmsg
    - ssl_store_add_uncommitted_cafile_entry
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_new_crlfile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:4301,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4305,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4309,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4310,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4312,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4313,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/ssl_ckch.c:4318,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4319,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4330,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4331,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4339,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4343,1
    - Dst: ssl_store_create_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4350,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4352,1
    - Dst: ssl_store_load_ca_from_buf
      Src: /src/haproxy/src/ssl_ckch.c:4358,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4359,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4370,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4372,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4376,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4383,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4386,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4387,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4388,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4388,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4391,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:4392,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4394
      start: 4293
    functionDepth: 5
    functionLinenumber: 4293
    functionLinenumberEnd: 4394
    functionName: cli_parse_set_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - ssl_store_create_cafile_entry
    - memprintf
    - cli_dynmsg
    - free_trash_chunk
    - alloc_trash_chunk
    - ssl_store_delete_cafile_entry
    - strcmp
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - chunk_strcpy
    - cli_has_level
    - ssl_store_load_ca_from_buf
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_crlfile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ckch.c:4401,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:4404,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4408,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4412,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4413,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4416,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4420,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4421,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4435,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4436,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4438,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4439
      start: 4399
    functionDepth: 5
    functionLinenumber: 4399
    functionLinenumberEnd: 4439
    functionName: cli_parse_commit_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - strcmp
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - applet_reserve_svcctx
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_commit_crlfile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:4452,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4453,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4455,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:4456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4457
      start: 4445
    functionDepth: 4
    functionLinenumber: 4445
    functionLinenumberEnd: 4457
    functionName: cli_release_commit_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ha_free
    - ssl_store_delete_cafile_entry
    - HA_SPIN_UNLOCK
    - ebmb_delete
    linkageType: ''
    returnType: void
    signature: void cli_release_commit_crlfile(struct appctx *appctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:4466,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4470,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4472,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4473,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4477,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4478,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4482,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4484,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4488,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:4492,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4493,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:4498,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4499,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4501,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4503,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:4504,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4507,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4508,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4509,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4510
      start: 4460
    functionDepth: 5
    functionLinenumber: 4460
    functionLinenumberEnd: 4510
    functionName: cli_parse_del_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - cli_dynmsg
    - ssl_store_delete_cafile_entry
    - strcmp
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - LIST_ISEMPTY
    - cli_has_level
    - ebmb_delete
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_del_crlfile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:4517,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4521,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4525,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4526,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4529,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4533,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4534,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4539,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4544,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4546,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:4547,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4550,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4552,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4553
      start: 4513
    functionDepth: 5
    functionLinenumber: 4513
    functionLinenumberEnd: 4553
    functionName: cli_parse_abort_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - cli_dynmsg
    - ssl_store_delete_cafile_entry
    - strcmp
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_abort_crlfile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4565,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:4570,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ckch.c:4578,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_ckch.c:4578,1
    - Dst: X509_CRL_get_version
      Src: /src/haproxy/src/ssl_ckch.c:4582,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4583,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4586,1
    - Dst: OBJ_nid2ln
      Src: /src/haproxy/src/ssl_ckch.c:4586,1
    - Dst: X509_CRL_get_signature_nid
      Src: /src/haproxy/src/ssl_ckch.c:4586,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4589,1
    - Dst: X509_CRL_get_issuer
      Src: /src/haproxy/src/ssl_ckch.c:4590,1
    - Dst: ssl_sock_get_dn_oneline
      Src: /src/haproxy/src/ssl_ckch.c:4592,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4595,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4598,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_ckch.c:4599,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:4600,1
    - Dst: ASN1_TIME_print
      Src: /src/haproxy/src/ssl_ckch.c:4602,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/haproxy/src/ssl_ckch.c:4602,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:4604,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4606,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4610,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_ckch.c:4611,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:4612,1
    - Dst: ASN1_TIME_print
      Src: /src/haproxy/src/ssl_ckch.c:4614,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/haproxy/src/ssl_ckch.c:4614,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:4616,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4618,1
    - Dst: X509_CRL_get_REVOKED
      Src: /src/haproxy/src/ssl_ckch.c:4622,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/haproxy/src/ssl_ckch.c:4623,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4624,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4626,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/haproxy/src/ssl_ckch.c:4628,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/haproxy/src/ssl_ckch.c:4629,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:4632,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ckch.c:4634,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/haproxy/src/ssl_ckch.c:4635,1
    - Dst: X509_REVOKED_get0_serialNumber
      Src: /src/haproxy/src/ssl_ckch.c:4635,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ckch.c:4636,1
    - Dst: ASN1_TIME_print
      Src: /src/haproxy/src/ssl_ckch.c:4637,1
    - Dst: X509_REVOKED_get0_revocationDate
      Src: /src/haproxy/src/ssl_ckch.c:4637,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ckch.c:4639,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:4641,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4643,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4648,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:4650,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 2
    argNames:
    - crl
    - out
    argTypes:
    - X509_CRL*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4562
    functionDepth: 2
    functionLinenumber: 4562
    functionLinenumberEnd: 4653
    functionName: show_crl_detail
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - X509_CRL_get_signature_nid
    - alloc_trash_chunk
    - X509_CRL_get_version
    - chunk_appendf
    - BIO_reset
    - sk_X509_REVOKED_value
    - BIO_new
    - STACK_OF
    - X509_CRL_get0_nextUpdate
    - X509_REVOKED_get0_revocationDate
    - X509_CRL_get_issuer
    - OBJ_nid2ln
    - free_trash_chunk
    - BIO_printf
    - chunk_reset
    - X509_REVOKED_get0_serialNumber
    - ssl_sock_get_dn_oneline
    - BIO_s_mem
    - X509_CRL_get0_lastUpdate
    - i2a_ASN1_INTEGER
    - BIO_free
    - ASN1_TIME_print
    - X509_CRL_get_REVOKED
    - BIO_read
    - sk_X509_REVOKED_num
    linkageType: ''
    returnType: int
    signature: int show_crl_detail(X509_CRL *crl, struct buffer *out)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4663,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:4666,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4673,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4675,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4676,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4678,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4680,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4682,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:4683,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4684,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4686,1
    - Dst: X509_STORE_getX_objects
      Src: /src/haproxy/src/ssl_ckch.c:4691,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_ckch.c:4692,1
    - Dst: X509_OBJECT_get0_X509_CRL
      Src: /src/haproxy/src/ssl_ckch.c:4693,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_ckch.c:4693,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4701,1
    - Dst: show_crl_detail
      Src: /src/haproxy/src/ssl_ckch.c:4702,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:4710,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_ckch.c:4714,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4715,1
    - Dst: sk_X509_OBJECT_popX_free
      Src: /src/haproxy/src/ssl_ckch.c:4718,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4719,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4721
      start: 4659
    functionDepth: 3
    functionLinenumber: 4659
    functionLinenumberEnd: 4721
    functionName: cli_io_handler_show_crlfile_detail
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - sk_X509_OBJECT_num
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_appendf
    - show_crl_detail
    - X509_OBJECT_get0_X509_CRL
    - LIST_ISEMPTY
    - applet_putchk
    - X509_STORE_getX_objects
    - sk_X509_OBJECT_popX_free
    - STACK_OF
    - sk_X509_OBJECT_value
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_crlfile_detail(struct appctx *appctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ckch.c:4729,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:4735,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4736,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4740,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4741,1
    - Dst: strchr
      Src: /src/haproxy/src/ssl_ckch.c:4747,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_ckch.c:4751,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4754,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4770,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4780,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4793,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4795,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4796,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4797
      start: 4727
    functionDepth: 5
    functionLinenumber: 4727
    functionLinenumberEnd: 4797
    functionName: cli_parse_show_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - memprintf
    - strcmp
    - HA_SPIN_UNLOCK
    - cli_dynerr
    - strchr
    - applet_reserve_svcctx
    - ssl_store_get_cafile_entry
    - strtol
    - cli_has_level
    - cli_err
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_crlfile(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4804,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4812,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4813,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:4814,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4821,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:4822,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:4829,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4831,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:4834,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:4835,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4840,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4844,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4847
      start: 4801
    functionDepth: 1
    functionLinenumber: 4801
    functionLinenumberEnd: 4847
    functionName: cli_io_handler_show_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - alloc_trash_chunk
    - chunk_appendf
    - ebmb_entry
    - ebmb_next
    - ebmb_first
    - applet_putchk
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_crlfile(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4854
      start: 4851
    functionDepth: 1
    functionLinenumber: 4851
    functionLinenumberEnd: 4854
    functionName: cli_release_show_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void cli_release_show_crlfile(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_first
      Src: /src/haproxy/src/ssl_ckch.c:4864,1
    - Dst: eb_next
      Src: /src/haproxy/src/ssl_ckch.c:4866,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:4867,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:4868,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:4873,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:4877,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:4878,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:4879,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4882
      start: 4857
    functionDepth: 5
    functionLinenumber: 4857
    functionLinenumberEnd: 4882
    functionName: ckch_deinit
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - eb_first
    - ckch_store_free
    - ssl_store_delete_cafile_entry
    - eb_next
    - ebmb_entry
    - ebmb_next
    - ebmb_first
    - ebmb_delete
    linkageType: ''
    returnType: void
    signature: void ckch_deinit()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: path_base
      Src: /src/haproxy/src/ssl_ckch.c:4932,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4942,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4956,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4958,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4961,1
    - Dst: curves2nid
      Src: /src/haproxy/src/ssl_ckch.c:4971,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4972,1
    - Dst: ssl_gen_EVP_PKEY
      Src: /src/haproxy/src/ssl_ckch.c:4977,1
    - Dst: ssl_gen_x509
      Src: /src/haproxy/src/ssl_ckch.c:4983,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4985,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:4990,1
    - Dst: ha_notice
      Src: /src/haproxy/src/ssl_ckch.c:4992,1
    - Dst: acme_gen_tmp_pkey
      Src: /src/haproxy/src/ssl_ckch.c:4993,1
    - Dst: acme_gen_tmp_x509
      Src: /src/haproxy/src/ssl_ckch.c:4994,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4997,1
    - Dst: ssl_sock_load_pem_into_ckch
      Src: /src/haproxy/src/ssl_ckch.c:5004,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 7
    argNames:
    - value
    - buf
    - s
    - cli
    - filename
    - linenum
    - err
    argTypes:
    - void*
    - char*
    - struct ckch_store*
    - int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5008
      start: 4924
    functionDepth: 7
    functionLinenumber: 4924
    functionLinenumberEnd: 5008
    functionName: ckch_conf_load_pem_or_generate
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - acme_gen_tmp_x509
    - memprintf
    - ha_notice
    - ssl_sock_load_pem_into_ckch
    - ssl_gen_EVP_PKEY
    - strcmp
    - stat
    - path_base
    - ssl_gen_x509
    - curves2nid
    - acme_gen_tmp_pkey
    linkageType: ''
    returnType: int
    signature: int ckch_conf_load_pem_or_generate(void *value, char *buf, struct ckch_store
      *s, int cli, const char *filename, int linenum, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: path_base
      Src: /src/haproxy/src/ssl_ckch.c:5017,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:5025,1
    - Dst: acme_gen_tmp_pkey
      Src: /src/haproxy/src/ssl_ckch.c:5027,1
    - Dst: ssl_sock_load_key_into_ckch
      Src: /src/haproxy/src/ssl_ckch.c:5031,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 7
    argNames:
    - value
    - buf
    - s
    - cli
    - filename
    - linenum
    - err
    argTypes:
    - void*
    - char*
    - struct ckch_store*
    - int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5035
      start: 5009
    functionDepth: 6
    functionLinenumber: 5009
    functionLinenumberEnd: 5035
    functionName: ckch_conf_load_key_or_generate
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - stat
    - ssl_sock_load_key_into_ckch
    - acme_gen_tmp_pkey
    - path_base
    linkageType: ''
    returnType: int
    signature: int ckch_conf_load_key_or_generate(void *value, char *buf, struct ckch_store
      *s, int cli, const char *filename, int linenum, char **err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/haproxy/src/ssl_ckch.c:5096,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5099,1
    - Dst: func
      Src: /src/haproxy/src/ssl_ckch.c:5109,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5112,1
    - Dst: ssl_sock_free_cert_key_and_chain_contents
      Src: /src/haproxy/src/ssl_ckch.c:5128,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:5129,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 6
    argNames:
    - f
    - c
    - cli
    - file
    - linenum
    - err
    argTypes:
    - struct ckch_conf*
    - struct ckch_store*
    - int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5132
      start: 5069
    functionDepth: 5
    functionLinenumber: 5069
    functionLinenumberEnd: 5132
    functionName: ckch_store_load_files
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 3
    functionsReached:
    - func
    - ERR_clear_error
    - memprintf
    - ssl_sock_free_cert_key_and_chain_contents
    linkageType: ''
    returnType: int
    signature: int ckch_store_load_files(struct ckch_conf *f, struct ckch_store *c,
      int cli, const char *file, int linenum, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5141,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5148,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:5156,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:5157,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:5160,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:5161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5165
      start: 5135
    functionDepth: 5
    functionLinenumber: 5135
    functionLinenumberEnd: 5165
    functionName: crtstore_parse_path_base
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int crtstore_parse_path_base(char **args, int section_type, struct
      proxy *curpx, const struct proxy *defpx,\n                        const char
      *file, int linenum, char **err)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: used::used
      Src: /src/haproxy/src/ssl_ckch.c:5192,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5193,1
    - Dst: used::used
      Src: /src/haproxy/src/ssl_ckch.c:5196,1
    - Dst: used::used
      Src: /src/haproxy/src/ssl_ckch.c:5200,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5201,1
    - Dst: used::used
      Src: /src/haproxy/src/ssl_ckch.c:5205,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5212,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5222,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5223,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5234,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5249,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5254,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5257,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5260,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5266,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5268,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 69
    argCount: 3
    argNames:
    - prev
    - new
    - err
    argTypes:
    - struct ckch_conf*
    - struct ckch_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5277
      start: 5181
    functionDepth: 5
    functionLinenumber: 5181
    functionLinenumberEnd: 5277
    functionName: ckch_conf_cmp
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - memprintf
    - strcmp
    - used::used
    linkageType: ''
    returnType: int
    signature: int ckch_conf_cmp(struct ckch_conf *prev, struct ckch_conf *new, char
      **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ckch_conf_cmp
      Src: /src/haproxy/src/ssl_ckch.c:5286,1
    - Dst: err::err
      Src: /src/haproxy/src/ssl_ckch.c:5286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prev
    - err
    argTypes:
    - struct ckch_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5287
      start: 5282
    functionDepth: 6
    functionLinenumber: 5282
    functionLinenumberEnd: 5287
    functionName: ckch_conf_cmp_empty
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - err::err
    - ckch_conf_cmp
    linkageType: ''
    returnType: int
    signature: int ckch_conf_cmp_empty(struct ckch_conf *prev, char **err)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5296,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5305,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5306,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:5310,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5312,1
    - Dst: ha_freearray
      Src: /src/haproxy/src/ssl_ckch.c:5324,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5325,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/ssl_ckch.c:5332,1
    - Dst: array_size_or_fail
      Src: /src/haproxy/src/ssl_ckch.c:5332,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5334,1
    - Dst: my_strndup
      Src: /src/haproxy/src/ssl_ckch.c:5338,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5340,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:5371,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:5373,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_ckch.c:5380,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5382,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5390,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5392,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5395,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 7
    argNames:
    - args
    - cur_arg
    - f
    - found
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct ckch_conf*
    - int*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5406
      start: 5290
    functionDepth: 9
    functionLinenumber: 5290
    functionLinenumberEnd: 5406
    functionName: ckch_conf_parse
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - memprintf
    - my_strndup
    - my_realloc2
    - ha_free
    - strcmp
    - free
    - ha_alert
    - strtol
    - array_size_or_fail
    - ha_freearray
    - strdup
    linkageType: ''
    returnType: int
    signature: int ckch_conf_parse(char **args, int cur_arg, struct ckch_conf *f,
      int *found, const char *file, int linenum, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5416,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5417,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5418,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5419,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5420,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5422,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:5428,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5430,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:5436,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct ckch_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5440
      start: 5409
    functionDepth: 3
    functionLinenumber: 5409
    functionLinenumberEnd: 5440
    functionName: ckch_conf_clean
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 4
    functionsReached:
    - ha_free
    - free
    linkageType: ''
    returnType: void
    signature: void ckch_conf_clean(struct ckch_conf *conf)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5460,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5464,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_ckch.c:5470,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5472,1
    - Dst: ckch_conf_parse
      Src: /src/haproxy/src/ssl_ckch.c:5480,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5486,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5495,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_ckch.c:5515,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5517,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_ckch.c:5527,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5529,1
    - Dst: ckch_store_new
      Src: /src/haproxy/src/ssl_ckch.c:5537,1
    - Dst: ckch_store_load_files
      Src: /src/haproxy/src/ssl_ckch.c:5544,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:5548,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5549,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:5558,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5562,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - linenum
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5565
      start: 5444
    functionDepth: 10
    functionLinenumber: 5444
    functionLinenumberEnd: 5565
    functionName: crtstore_parse_load
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - memprintf
    - ckch_store_load_files
    - ckch_store_free
    - ckch_store_new
    - strcmp
    - ebst_insert
    - ha_alert
    - ckch_conf_parse
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int crtstore_parse_load(char **args, int section_type, struct proxy
      *curpx, const struct proxy *defpx,\n                        const char *file,
      int linenum, char **err)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5582,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_ckch.c:5586,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5588,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5596,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5601,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:5603,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5604,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:5606,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:5612,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5616,1
    - Dst: check_kw_experimental
      Src: /src/haproxy/src/ssl_ckch.c:5617,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5618,1
    - Dst: parse
      Src: /src/haproxy/src/ssl_ckch.c:5624,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5626,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_ckch.c:5631,1
    - Dst: cfg_find_best_match
      Src: /src/haproxy/src/ssl_ckch.c:5640,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5642,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5644,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:5651,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5653
      start: 5573
    functionDepth: 9
    functionLinenumber: 5573
    functionLinenumberEnd: 5653
    functionName: cfg_parse_crtstore
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - check_kw_experimental
    - list_for_each_entry
    - ha_free
    - parse
    - strcmp
    - free
    - ha_alert
    - ha_warning
    - cfg_find_best_match
    - snprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int cfg_parse_crtstore(const char *file, int linenum, char **args,
      int kwm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5658,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5662
      start: 5655
    functionDepth: 1
    functionLinenumber: 5655
    functionLinenumberEnd: 5662
    functionName: cfg_post_parse_crtstore
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: int
    signature: int cfg_post_parse_crtstore()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: act_add_list
      Src: /src/haproxy/src/tcp_rules.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: tcp_req_conn_keywords_register
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - act_add_list
    linkageType: ''
    returnType: void
    signature: void tcp_req_conn_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: act_add_list
      Src: /src/haproxy/src/tcp_rules.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: tcp_req_sess_keywords_register
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - act_add_list
    linkageType: ''
    returnType: void
    signature: void tcp_req_sess_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: act_add_list
      Src: /src/haproxy/src/tcp_rules.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: tcp_req_cont_keywords_register
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 1
    functionsReached:
    - act_add_list
    linkageType: ''
    returnType: void
    signature: void tcp_req_cont_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: act_add_list
      Src: /src/haproxy/src/tcp_rules.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: tcp_res_cont_keywords_register
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 1
    functionsReached:
    - act_add_list
    linkageType: ''
    returnType: void
    signature: void tcp_res_cont_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: action_lookup
      Src: /src/haproxy/src/tcp_rules.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: tcp_req_conn_action
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - action_lookup
    linkageType: ''
    returnType: struct action_kw
    signature: struct action_kw *tcp_req_conn_action(const char *kw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: action_lookup
      Src: /src/haproxy/src/tcp_rules.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: tcp_req_sess_action
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - action_lookup
    linkageType: ''
    returnType: struct action_kw
    signature: struct action_kw *tcp_req_sess_action(const char *kw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: action_lookup
      Src: /src/haproxy/src/tcp_rules.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: tcp_req_cont_action
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 1
    functionsReached:
    - action_lookup
    linkageType: ''
    returnType: struct action_kw
    signature: struct action_kw *tcp_req_cont_action(const char *kw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: action_lookup
      Src: /src/haproxy/src/tcp_rules.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: tcp_res_cont_action
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 1
    functionsReached:
    - action_lookup
    linkageType: ''
    returnType: struct action_kw
    signature: struct action_kw *tcp_res_cont_action(const char *kw)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/tcp_rules.c:104,1
    - Dst: channel_full
      Src: /src/haproxy/src/tcp_rules.c:121,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/tcp_rules.c:122,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/tcp_rules.c:123,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/tcp_rules.c:126,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcp_rules.c:156,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/tcp_rules.c:165,1
    - Dst: acl_exec_cond
      Src: /src/haproxy/src/tcp_rules.c:172,1
    - Dst: acl_pass
      Src: /src/haproxy/src/tcp_rules.c:178,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/tcp_rules.c:190,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/tcp_rules.c:191,1
    - Dst: send_log
      Src: /src/haproxy/src/tcp_rules.c:201,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:216,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/tcp_rules.c:258,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/tcp_rules.c:262,1
    - Dst: tick_isset
      Src: /src/haproxy/src/tcp_rules.c:264,1
    - Dst: tick_add
      Src: /src/haproxy/src/tcp_rules.c:265,1
    - Dst: tick_first
      Src: /src/haproxy/src/tcp_rules.c:266,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/tcp_rules.c:266,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/tcp_rules.c:267,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:272,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:274,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:275,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:280,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:282,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:285,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:290,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:292,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:293,1
    - Dst: sc_must_kill_conn
      Src: /src/haproxy/src/tcp_rules.c:296,1
    - Dst: stream_abort
      Src: /src/haproxy/src/tcp_rules.c:297,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/tcp_rules.c:309,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 177
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 96
    functionDepth: 10
    functionLinenumber: 96
    functionLinenumberEnd: 311
    functionName: tcp_inspect_request
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - stream_report_term_evt
    - channel_dont_connect
    - EXEC_CTX_WITH_RET
    - DBG_TRACE_DEVEL
    - DBG_TRACE_LEAVE
    - stream_abort
    - sc_must_kill_conn
    - tick_is_expired
    - tick_add
    - channel_full
    - tick_first
    - send_log
    - DBG_TRACE_ENTER
    - _HA_ATOMIC_INC
    - acl_exec_cond
    - list_for_each_entry
    - task_wakeup
    - sc_waiting_room
    - struct act_rule*::action_ptr
    - acl_pass
    - tick_isset
    linkageType: ''
    returnType: int
    signature: int tcp_inspect_request(struct stream *s, struct channel *req, int
      an_bit)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/tcp_rules.c:327,1
    - Dst: channel_full
      Src: /src/haproxy/src/tcp_rules.c:341,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/tcp_rules.c:342,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/tcp_rules.c:343,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/tcp_rules.c:346,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcp_rules.c:375,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/tcp_rules.c:384,1
    - Dst: acl_exec_cond
      Src: /src/haproxy/src/tcp_rules.c:391,1
    - Dst: acl_pass
      Src: /src/haproxy/src/tcp_rules.c:397,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/tcp_rules.c:409,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/tcp_rules.c:410,1
    - Dst: send_log
      Src: /src/haproxy/src/tcp_rules.c:420,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:435,1
    - Dst: sc_must_kill_conn
      Src: /src/haproxy/src/tcp_rules.c:464,1
    - Dst: sc_abort
      Src: /src/haproxy/src/tcp_rules.c:465,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/tcp_rules.c:466,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/tcp_rules.c:486,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/tcp_rules.c:491,1
    - Dst: tick_isset
      Src: /src/haproxy/src/tcp_rules.c:492,1
    - Dst: tick_add
      Src: /src/haproxy/src/tcp_rules.c:493,1
    - Dst: tick_first
      Src: /src/haproxy/src/tcp_rules.c:494,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/tcp_rules.c:494,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/tcp_rules.c:495,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:500,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:502,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:504,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:506,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:507,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:512,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:514,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:516,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:518,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:521,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:526,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:528,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:529,1
    - Dst: sc_must_kill_conn
      Src: /src/haproxy/src/tcp_rules.c:532,1
    - Dst: stream_abort
      Src: /src/haproxy/src/tcp_rules.c:533,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/tcp_rules.c:544,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 194
    argCount: 3
    argNames:
    - s
    - rep
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 319
    functionDepth: 10
    functionLinenumber: 319
    functionLinenumberEnd: 546
    functionName: tcp_inspect_response
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - sc_shutdown
    - stream_report_term_evt
    - channel_dont_close
    - EXEC_CTX_WITH_RET
    - DBG_TRACE_DEVEL
    - DBG_TRACE_LEAVE
    - stream_abort
    - sc_must_kill_conn
    - tick_is_expired
    - sc_abort
    - tick_add
    - channel_full
    - tick_first
    - send_log
    - DBG_TRACE_ENTER
    - _HA_ATOMIC_INC
    - acl_exec_cond
    - list_for_each_entry
    - task_wakeup
    - sc_waiting_room
    - struct act_rule*::action_ptr
    - acl_pass
    - tick_isset
    linkageType: ''
    returnType: int
    signature: int tcp_inspect_response(struct stream *s, struct channel *rep, int
      an_bit)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/tcp_rules.c:558,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcp_rules.c:568,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/tcp_rules.c:570,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/tcp_rules.c:575,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/tcp_rules.c:576,1
    - Dst: send_log
      Src: /src/haproxy/src/tcp_rules.c:582,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:606,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:608,1
    - Dst: xprt_add_hs
      Src: /src/haproxy/src/tcp_rules.c:615,1
    - Dst: xprt_add_hs
      Src: /src/haproxy/src/tcp_rules.c:624,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:639,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 74
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 554
    functionDepth: 10
    functionLinenumber: 554
    functionLinenumberEnd: 641
    functionName: tcp_exec_l4_rules
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_INC
    - acl_match_cond
    - list_for_each_entry
    - struct act_rule*::action_ptr
    - objt_conn
    - EXEC_CTX_WITH_RET
    - conn_report_term_evt
    - xprt_add_hs
    - send_log
    linkageType: ''
    returnType: int
    signature: int tcp_exec_l4_rules(struct session *sess)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcp_rules.c:660,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/tcp_rules.c:661,1
    - Dst: EXEC_CTX_WITH_RET
      Src: /src/haproxy/src/tcp_rules.c:666,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/tcp_rules.c:667,1
    - Dst: send_log
      Src: /src/haproxy/src/tcp_rules.c:673,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:697,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:699,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 650
    functionDepth: 10
    functionLinenumber: 650
    functionLinenumberEnd: 712
    functionName: tcp_exec_l5_rules
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_INC
    - acl_match_cond
    - list_for_each_entry
    - struct act_rule*::action_ptr
    - EXEC_CTX_WITH_RET
    - send_log
    linkageType: ''
    returnType: int
    signature: int tcp_exec_l5_rules(struct session *sess)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/tcp_rules.c:721,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:722,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:727,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:732,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:737,1
    - Dst: tcp_res_cont_action
      Src: /src/haproxy/src/tcp_rules.c:744,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/tcp_rules.c:748,1
    - Dst: action_suggest
      Src: /src/haproxy/src/tcp_rules.c:752,1
    - Dst: action_build_list
      Src: /src/haproxy/src/tcp_rules.c:754,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:755,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:758,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:766,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:766,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/tcp_rules.c:767,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:768,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:770,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:775,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:777,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 10
    argNames:
    - args
    - arg
    - section_type
    - curpx
    - defpx
    - rule
    - err
    - where
    - file
    - line
    argTypes:
    - char**
    - int
    - int
    - struct proxy*
    - struct proxy*
    - struct act_rule*
    - char**
    - unsigned int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 715
    functionDepth: 6
    functionLinenumber: 715
    functionLinenumberEnd: 781
    functionName: tcp_parse_response_rule
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - memprintf
    - proxy_type_str
    - struct action_kw*::parse
    - action_suggest
    - strcmp
    - action_build_list
    - tcp_res_cont_action
    - build_acl_cond
    - strlen
    linkageType: ''
    returnType: int
    signature: "int tcp_parse_response_rule(char **args, int arg, int section_type,\n
      \                                  struct proxy *curpx, const struct proxy *defpx,\n
      \                                  struct act_rule *rule, char **err,\n                                   unsigned
      int where,\n                                   const char *file, int line)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/tcp_rules.c:803,1
    - Dst: stktable_fetch_key
      Src: /src/haproxy/src/tcp_rules.c:806,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/tcp_rules.c:811,1
    - Dst: stream_track_stkctr
      Src: /src/haproxy/src/tcp_rules.c:812,1
    - Dst: stkctr_set_flags
      Src: /src/haproxy/src/tcp_rules.c:813,1
    - Dst: stkctr_set_flags
      Src: /src/haproxy/src/tcp_rules.c:815,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/tcp_rules.c:819,1
    - Dst: stktable_fetch_key
      Src: /src/haproxy/src/tcp_rules.c:822,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/tcp_rules.c:823,1
    - Dst: stream_track_stkctr
      Src: /src/haproxy/src/tcp_rules.c:824,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 788
    functionDepth: 6
    functionLinenumber: 788
    functionLinenumberEnd: 829
    functionName: tcp_action_track_sc
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_fetch_key
    - stkctr_set_flags
    - stream_track_stkctr
    - stktable_get_entry
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_track_sc(struct act_rule *rule, struct
      proxy *px,\n\t\t\t\t\t    struct session *sess, struct stream *s, int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcp_rules.c:848,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/tcp_rules.c:856,1
    - Dst: memcpy
      Src: /src/haproxy/src/tcp_rules.c:865,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 836
    functionDepth: 4
    functionLinenumber: 836
    functionLinenumberEnd: 870
    functionName: tcp_action_capture
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - sample_fetch_as_type
    - pool_alloc
    - memcpy
    linkageType: ''
    returnType: enum act_return
    signature: "enum act_return tcp_action_capture(struct act_rule *rule, struct proxy
      *px,\n\t\t\t\t\t  struct session *sess, struct stream *s, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 872
    functionDepth: 5
    functionLinenumber: 872
    functionLinenumberEnd: 875
    functionName: release_tcp_capture
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void release_tcp_capture(struct act_rule * rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 878
    functionDepth: 5
    functionLinenumber: 878
    functionLinenumberEnd: 881
    functionName: release_tcp_track_sc
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void release_tcp_track_sc(struct act_rule * rule)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/tcp_rules.c:889,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:890,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:895,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:900,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:905,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:912,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:919,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:921,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcp_rules.c:928,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:930,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:937,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/tcp_rules.c:939,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:940,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:944,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:947,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:950,1
    - Dst: atoi
      Src: /src/haproxy/src/tcp_rules.c:954,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:956,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:959,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:966,1
    - Dst: free
      Src: /src/haproxy/src/tcp_rules.c:969,1
    - Dst: calloc
      Src: /src/haproxy/src/tcp_rules.c:973,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:975,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:976,1
    - Dst: create_pool
      Src: /src/haproxy/src/tcp_rules.c:983,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:985,1
    - Dst: free
      Src: /src/haproxy/src/tcp_rules.c:986,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:987,1
    - Dst: strncmp
      Src: /src/haproxy/src/tcp_rules.c:1005,1
    - Dst: cfg_parse_track_sc_num
      Src: /src/haproxy/src/tcp_rules.c:1014,1
    - Dst: strlen
      Src: /src/haproxy/src/tcp_rules.c:1014,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1015,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcp_rules.c:1020,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1022,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1029,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/tcp_rules.c:1031,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:1032,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1039,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1042,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:1045,1
    - Dst: strdup
      Src: /src/haproxy/src/tcp_rules.c:1049,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1058,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1059,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1060,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1062,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1067,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1069,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1076,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1077,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1078,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1080,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1085,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1087,1
    - Dst: tcp_req_conn_action
      Src: /src/haproxy/src/tcp_rules.c:1098,1
    - Dst: tcp_req_sess_action
      Src: /src/haproxy/src/tcp_rules.c:1102,1
    - Dst: tcp_req_cont_action
      Src: /src/haproxy/src/tcp_rules.c:1106,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/tcp_rules.c:1111,1
    - Dst: action_build_list
      Src: /src/haproxy/src/tcp_rules.c:1119,1
    - Dst: action_suggest
      Src: /src/haproxy/src/tcp_rules.c:1120,1
    - Dst: action_build_list
      Src: /src/haproxy/src/tcp_rules.c:1123,1
    - Dst: action_suggest
      Src: /src/haproxy/src/tcp_rules.c:1124,1
    - Dst: action_build_list
      Src: /src/haproxy/src/tcp_rules.c:1127,1
    - Dst: action_suggest
      Src: /src/haproxy/src/tcp_rules.c:1128,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1131,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1135,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1144,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1144,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/tcp_rules.c:1145,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1146,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1148,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1153,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1155,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 185
    argCount: 10
    argNames:
    - args
    - arg
    - section_type
    - curpx
    - defpx
    - rule
    - err
    - where
    - file
    - line
    argTypes:
    - char**
    - int
    - int
    - struct proxy*
    - struct proxy*
    - struct act_rule*
    - char**
    - unsigned int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 884
    functionDepth: 7
    functionLinenumber: 884
    functionLinenumberEnd: 1159
    functionName: tcp_parse_request_rule
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - memprintf
    - cfg_parse_track_sc_num
    - proxy_type_str
    - tcp_req_sess_action
    - sample_src_names
    - free
    - atoi
    - strcmp
    - sample_parse_expr
    - struct action_kw*::parse
    - calloc
    - build_acl_cond
    - strdup
    - tcp_req_conn_action
    - release_sample_expr
    - action_suggest
    - strncmp
    - strlen
    - action_build_list
    - tcp_req_cont_action
    - create_pool
    linkageType: ''
    returnType: int
    signature: "int tcp_parse_request_rule(char **args, int arg, int section_type,\n
      \                                 struct proxy *curpx, const struct proxy *defpx,\n
      \                                 struct act_rule *rule, char **err,\n                                  unsigned
      int where, const char *file, int line)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1178,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1179,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1183,1
    - Dst: strlen
      Src: /src/haproxy/src/tcp_rules.c:1184,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1185,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/tcp_rules.c:1190,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1191,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1193,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1196,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1198,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1200,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1205,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1206,1
    - Dst: new_act_rule
      Src: /src/haproxy/src/tcp_rules.c:1213,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1215,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcp_rules.c:1218,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1222,1
    - Dst: tcp_parse_response_rule
      Src: /src/haproxy/src/tcp_rules.c:1229,1
    - Dst: acl_cond_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1232,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1235,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1237,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1239,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/tcp_rules.c:1242,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1243,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1247,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1249,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1251,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1253,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1255,1
    - Dst: warnif_misplaced_tcp_res_cont
      Src: /src/haproxy/src/tcp_rules.c:1260,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcp_rules.c:1262,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1265,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1267,1
    - Dst: free_act_rule
      Src: /src/haproxy/src/tcp_rules.c:1273,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1164
    functionDepth: 7
    functionLinenumber: 1164
    functionLinenumberEnd: 1275
    functionName: tcp_parse_tcp_rep
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - memprintf
    - LIST_ELEM
    - free_act_rule
    - proxy_type_str
    - new_act_rule
    - sample_ckp_names
    - strcmp
    - LIST_APPEND
    - warnif_misplaced_tcp_res_cont
    - tcp_parse_response_rule
    - acl_cond_kw_conflicts
    - acl_cond_conflicts
    - parse_time_err
    - LIST_INIT
    - strlen
    linkageType: ''
    returnType: int
    signature: "int tcp_parse_tcp_rep(char **args, int section_type, struct proxy
      *curpx,\n                             const struct proxy *defpx, const char
      *file, int line,\n                             char **err)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1296,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1298,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1299,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1303,1
    - Dst: strlen
      Src: /src/haproxy/src/tcp_rules.c:1304,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1305,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/tcp_rules.c:1310,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1311,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1313,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1316,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1318,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1320,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1325,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1326,1
    - Dst: new_act_rule
      Src: /src/haproxy/src/tcp_rules.c:1333,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1335,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcp_rules.c:1338,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1342,1
    - Dst: tcp_parse_request_rule
      Src: /src/haproxy/src/tcp_rules.c:1350,1
    - Dst: acl_cond_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1353,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1356,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1358,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1360,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/tcp_rules.c:1363,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1364,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1368,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1370,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1372,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1374,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1376,1
    - Dst: warnif_misplaced_tcp_req_cont
      Src: /src/haproxy/src/tcp_rules.c:1381,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcp_rules.c:1383,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1385,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1389,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1390,1
    - Dst: tcp_parse_request_rule
      Src: /src/haproxy/src/tcp_rules.c:1396,1
    - Dst: acl_cond_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1399,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1402,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1404,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1406,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/tcp_rules.c:1409,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1410,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1414,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1416,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1418,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1420,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1422,1
    - Dst: warnif_misplaced_tcp_req_conn
      Src: /src/haproxy/src/tcp_rules.c:1427,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcp_rules.c:1429,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1431,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1435,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1436,1
    - Dst: tcp_parse_request_rule
      Src: /src/haproxy/src/tcp_rules.c:1442,1
    - Dst: acl_cond_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1445,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1448,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1450,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1452,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/tcp_rules.c:1455,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1456,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1459,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1461,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1463,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1465,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1467,1
    - Dst: warnif_misplaced_tcp_req_sess
      Src: /src/haproxy/src/tcp_rules.c:1472,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcp_rules.c:1474,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1478,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1482,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1484,1
    - Dst: free_act_rule
      Src: /src/haproxy/src/tcp_rules.c:1490,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 133
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1281
    functionDepth: 8
    functionLinenumber: 1281
    functionLinenumberEnd: 1492
    functionName: tcp_parse_tcp_req
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - warnif_misplaced_tcp_req_conn
    - memprintf
    - LIST_ELEM
    - free_act_rule
    - proxy_type_str
    - new_act_rule
    - tcp_parse_request_rule
    - sample_ckp_names
    - warnif_misplaced_tcp_req_cont
    - strcmp
    - LIST_APPEND
    - warnif_misplaced_tcp_req_sess
    - acl_cond_kw_conflicts
    - acl_cond_conflicts
    - parse_time_err
    - LIST_INIT
    - strlen
    linkageType: ''
    returnType: int
    signature: "int tcp_parse_tcp_req(char **args, int section_type, struct proxy
      *curpx,\n                             const struct proxy *defpx, const char
      *file, int line,\n                             char **err)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:89,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:95,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:96,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 97
    argCount: 4
    argNames:
    - smp
    - type
    - ch_data
    - len
    argTypes:
    - struct sample*
    - enum client_hello_type
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 199
    functionName: smp_client_hello_parse
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - ci_head
    - IS_HTX_STRM
    - ci_data
    linkageType: ''
    returnType: int
    signature: int smp_client_hello_parse( struct sample *smp, enum client_hello_type
      type, unsigned char **ch_data, int *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: smp_fetch_wait_end
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_wait_end(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:224,1
    - Dst: htxbuf
      Src: /src/haproxy/src/payload.c:225,1
    - Dst: co_data
      Src: /src/haproxy/src/payload.c:226,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:229,1
    - Dst: obj_type
      Src: /src/haproxy/src/payload.c:231,1
    - Dst: __objt_check
      Src: /src/haproxy/src/payload.c:232,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/payload.c:235,1
    - Dst: htxbuf
      Src: /src/haproxy/src/payload.c:235,1
    - Dst: b_data
      Src: /src/haproxy/src/payload.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 243
    functionName: smp_fetch_len
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - ci_data
    - co_data
    - b_data
    - __objt_check
    - IS_HTX_STRM
    - obj_type
    - IS_HTX_SC
    linkageType: ''
    returnType: int
    signature: int smp_fetch_len(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: smp_client_hello_parse
      Src: /src/haproxy/src/payload.c:257,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 300
    functionName: smp_fetch_req_ssl_st_ext
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - smp_client_hello_parse
    linkageType: ''
    returnType: int
    signature: int smp_fetch_req_ssl_st_ext(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smp_client_hello_parse
      Src: /src/haproxy/src/payload.c:312,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 347
    functionName: smp_fetch_req_ssl_ec_ext
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - smp_client_hello_parse
    linkageType: ''
    returnType: int
    signature: int smp_fetch_req_ssl_ec_ext(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:361,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:365,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:366,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 410
    functionName: smp_fetch_ssl_hello_type
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - ci_head
    - IS_HTX_STRM
    - ci_data
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_hello_type(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:431,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:436,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:440,1
    - Dst: msg_len < 6 || msg_len >
      Src: /src/haproxy/src/payload.c:454,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:511,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:511,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:511,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:512,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:512,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:512,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 90
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 529
    functionName: smp_fetch_req_ssl_ver
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - ci_head
    - ci_data
    - msg_len < 6 || msg_len >
    - b_orig
    - channel_recv_limit
    - IS_HTX_STRM
    linkageType: ''
    returnType: int
    signature: int smp_fetch_req_ssl_ver(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_client_hello_parse
      Src: /src/haproxy/src/payload.c:541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 560
    functionName: smp_fetch_ssl_cipherlist
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - smp_client_hello_parse
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_cipherlist(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_client_hello_parse
      Src: /src/haproxy/src/payload.c:572,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 615
    functionName: smp_fetch_ssl_supported_groups
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - smp_client_hello_parse
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_supported_groups(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_client_hello_parse
      Src: /src/haproxy/src/payload.c:627,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 670
    functionName: smp_fetch_ssl_sigalgs
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - smp_client_hello_parse
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_sigalgs(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_client_hello_parse
      Src: /src/haproxy/src/payload.c:686,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/payload.c:711,1
    - Dst: memmove
      Src: /src/haproxy/src/payload.c:714,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:714,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 735
    functionName: smp_fetch_ssl_keyshare_groups
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - memmove
    - get_trash_chunk
    - b_orig
    - smp_client_hello_parse
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_keyshare_groups(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:781,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:785,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:786,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 110
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 907
    functionName: smp_fetch_ssl_hello_sni
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - ci_head
    - IS_HTX_STRM
    - ci_data
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_hello_sni(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:954,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:958,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:959,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 108
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 1082
    functionName: smp_fetch_ssl_hello_alpn
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - ci_head
    - IS_HTX_STRM
    - ci_data
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_hello_alpn(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1097,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1101,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/payload.c:1107,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/payload.c:1123,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 4
    argNames:
    - s
    - smp
    - cname
    - clen
    argTypes:
    - struct stream*
    - struct sample*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1169
    functionName: fetch_rdp_cookie_name
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 2
    functionsReached:
    - strncasecmp
    - ci_head
    - ci_data
    linkageType: ''
    returnType: int
    signature: int fetch_rdp_cookie_name(struct stream *s, struct sample *smp, const
      char *cname, int clen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:1184,1
    - Dst: fetch_rdp_cookie_name
      Src: /src/haproxy/src/payload.c:1187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1177
    functionDepth: 2
    functionLinenumber: 1177
    functionLinenumberEnd: 1190
    functionName: smp_fetch_rdp_cookie
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - fetch_rdp_cookie_name
    - IS_HTX_STRM
    linkageType: ''
    returnType: int
    signature: int smp_fetch_rdp_cookie(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_fetch_rdp_cookie
      Src: /src/haproxy/src/payload.c:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1193
    functionDepth: 3
    functionLinenumber: 1193
    functionLinenumberEnd: 1207
    functionName: smp_fetch_rdp_cookie_cnt
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - smp_fetch_rdp_cookie
    linkageType: ''
    returnType: int
    signature: int smp_fetch_rdp_cookie_cnt(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:1229,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1232,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1233,1
    - Dst: c_size
      Src: /src/haproxy/src/payload.c:1234,1
    - Dst: obj_type
      Src: /src/haproxy/src/payload.c:1236,1
    - Dst: __objt_check
      Src: /src/haproxy/src/payload.c:1237,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/payload.c:1240,1
    - Dst: b_head
      Src: /src/haproxy/src/payload.c:1242,1
    - Dst: b_data
      Src: /src/haproxy/src/payload.c:1243,1
    - Dst: b_size
      Src: /src/haproxy/src/payload.c:1244,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/payload.c:1280,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1286
    functionName: smp_fetch_payload_lv
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - b_head
    - ci_head
    - ci_data
    - chunk_initlen
    - c_size
    - b_data
    - b_size
    - __objt_check
    - IS_HTX_STRM
    - obj_type
    - IS_HTX_SC
    linkageType: ''
    returnType: int
    signature: int smp_fetch_payload_lv(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:1300,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1303,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1304,1
    - Dst: c_size
      Src: /src/haproxy/src/payload.c:1305,1
    - Dst: obj_type
      Src: /src/haproxy/src/payload.c:1307,1
    - Dst: __objt_check
      Src: /src/haproxy/src/payload.c:1308,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/payload.c:1311,1
    - Dst: b_head
      Src: /src/haproxy/src/payload.c:1313,1
    - Dst: b_data
      Src: /src/haproxy/src/payload.c:1314,1
    - Dst: b_size
      Src: /src/haproxy/src/payload.c:1315,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/payload.c:1331,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/payload.c:1333,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/payload.c:1333,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1341
    functionName: smp_fetch_payload
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - b_head
    - ci_head
    - ci_data
    - chunk_initlen
    - c_size
    - channel_may_recv
    - channel_input_closed
    - b_data
    - b_size
    - __objt_check
    - IS_HTX_STRM
    - obj_type
    - IS_HTX_SC
    linkageType: ''
    returnType: int
    signature: int smp_fetch_payload(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/payload.c:1362,1
    - Dst: memprintf
      Src: /src/haproxy/src/payload.c:1367,1
    - Dst: read_int64
      Src: /src/haproxy/src/payload.c:1377,1
    - Dst: memprintf
      Src: /src/haproxy/src/payload.c:1379,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/payload.c:1382,1
    - Dst: memprintf
      Src: /src/haproxy/src/payload.c:1387,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1356
    functionDepth: 5
    functionLinenumber: 1356
    functionLinenumberEnd: 1394
    functionName: val_payload_lv
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - read_int64
    - memprintf
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: int val_payload_lv(struct arg *arg, char **err_msg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:1416,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1423,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:1428,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:1428,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1428,1
    - Dst: read_n32
      Src: /src/haproxy/src/payload.c:1434,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1434,1
    - Dst: hex2i
      Src: /src/haproxy/src/payload.c:1438,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1438,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1464,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1477
    functionName: smp_fetch_distcc_param
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - ci_head
    - b_orig
    - ci_data
    - channel_recv_limit
    - read_n32
    - hex2i
    - IS_HTX_STRM
    linkageType: ''
    returnType: int
    signature: int smp_fetch_distcc_param(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:1499,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1506,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:1510,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:1510,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1510,1
    - Dst: read_n32
      Src: /src/haproxy/src/payload.c:1516,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1516,1
    - Dst: hex2i
      Src: /src/haproxy/src/payload.c:1520,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1520,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1544,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:1544,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1544,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:1547,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:1547,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1547,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:1550,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:1550,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1550,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/payload.c:1554,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1554,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1558,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 59
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1571
    functionName: smp_fetch_distcc_body
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - ci_head
    - b_orig
    - ci_data
    - channel_recv_limit
    - read_n32
    - hex2i
    - IS_HTX_STRM
    - chunk_initlen
    linkageType: ''
    returnType: int
    signature: int smp_fetch_distcc_body(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/payload.c:1586,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/payload.c:1596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1581
    functionDepth: 5
    functionLinenumber: 1581
    functionLinenumberEnd: 1605
    functionName: val_distcc
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - memprintf
    - chunk_destroy
    linkageType: ''
    returnType: int
    signature: int val_distcc(struct arg *arg, char **err_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: LIST_HEAD
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: LIST_INIT
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 153
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INIT(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: LIST_HEAD_INIT
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_INIT(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lh
    - ','
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: LIST_INSERT
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT(lh, el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lh
    - ','
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: LIST_APPEND
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 251
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_APPEND(lh, el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - new
    - ','
    - old
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: LIST_SPLICE
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_SPLICE(new, old)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - new
    - ','
    - old
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: LIST_SPLICE_END_DETACHED
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_SPLICE_END_DETACHED(new, old)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: LIST_DELETE
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 133
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_DELETE(el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: LIST_DELETE
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 133
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_DELETE(el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: LIST_DEL_INIT
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_DEL_INIT(el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lh
    - ','
    - pt
    - ','
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: LIST_ELEM
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ELEM(lh, pt, el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lh
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: LIST_ISEMPTY
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 162
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ISEMPTY(lh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: LIST_INLIST
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INLIST(el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: LIST_ATMOST1
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ATMOST1(el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: LIST_INLIST_ATOMIC
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INLIST_ATOMIC(el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lh
    - ','
    - pt
    - ','
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: LIST_NEXT
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_NEXT(lh, pt, el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lh
    - ','
    - pt
    - ','
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: LIST_PREV
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_PREV(lh, pt, el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - item
    - ','
    - list_head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 275
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry(item, list_head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - item
    - ','
    - list_head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: list_for_each_entry_from
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_from(item, list_head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - item
    - ','
    - back
    - ','
    - list_head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 114
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe(item, back, list_head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - item
    - ','
    - back
    - ','
    - list_head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: list_for_each_entry_safe_from
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe_from(item, back, list_head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - item
    - ','
    - list_head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: list_for_each_entry_rev
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_rev(item, list_head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - item
    - ','
    - list_head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: list_for_each_entry_from_rev
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_from_rev(item, list_head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - item
    - ','
    - back
    - ','
    - list_head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: list_for_each_entry_safe_rev
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe_rev(item, back, list_head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - item
    - ','
    - back
    - ','
    - list_head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: list_for_each_entry_safe_from_rev
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe_from_rev(item, back, list_head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: mt_list_to_list
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct list
    signature: struct list *mt_list_to_list(struct mt_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: list_to_mt_list
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct mt_list
    signature: struct mt_list *list_to_mt_list(struct list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/include/haproxy/list.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - w
    - pptr
    - attach_off
    argTypes:
    - struct watcher*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: watcher_init
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 5
    functionsReached:
    - MT_LIST_INIT
    linkageType: ''
    returnType: void
    signature: void watcher_init(struct watcher *w, void *pptr, size_t attach_off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/list.h:280,1
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/include/haproxy/list.h:280,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/include/haproxy/list.h:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - w
    - target
    argTypes:
    - struct watcher*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: watcher_attach
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 4
    functionsReached:
    - BUG_ON_HOT
    - MT_LIST_INLIST
    - MT_LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void watcher_attach(struct watcher *w, void *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/include/haproxy/list.h:290,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/include/haproxy/list.h:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct watcher*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: watcher_detach
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 6
    functionsReached:
    - MT_LIST_DELETE
    - MT_LIST_INLIST
    linkageType: ''
    returnType: void
    signature: void watcher_detach(struct watcher *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: watcher_detach
      Src: /src/haproxy/include/haproxy/list.h:301,1
    - Dst: watcher_attach
      Src: /src/haproxy/include/haproxy/list.h:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - w
    - target
    argTypes:
    - struct watcher*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: watcher_next
    functionSourceFile: /src/haproxy/include/haproxy/list.h
    functionUses: 7
    functionsReached:
    - watcher_detach
    - watcher_attach
    linkageType: ''
    returnType: void
    signature: void *watcher_next(struct watcher *w, void *target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:154,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:157,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:157,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:157,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:158,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:158,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:158,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:159,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:159,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:159,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:160,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:160,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:161,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:161,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:161,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:162,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:162,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 167
    functionName: hsl_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/htx-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *hsl_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/htx-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:194,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:196,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:196,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:197,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:197,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:197,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 202
    functionName: htx_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/htx-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *htx_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/htx-t.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: obj_type
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: enum obj_type
    signature: enum obj_type obj_type(const enum obj_type *t)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/obj_type.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: obj_type_name
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 2
    functionsReached:
    - obj_type
    linkageType: ''
    returnType: char
    signature: char *obj_type_name(const enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: __objt_listener
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 19
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct listener
    signature: struct listener *__objt_listener(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_listener
      Src: /src/haproxy/include/haproxy/obj_type.h:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: objt_listener
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 32
    functionsReached:
    - __objt_listener
    linkageType: ''
    returnType: struct listener
    signature: struct listener *objt_listener(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: __objt_proxy
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 10
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *__objt_proxy(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_proxy
      Src: /src/haproxy/include/haproxy/obj_type.h:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: objt_proxy
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 17
    functionsReached:
    - __objt_proxy
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *objt_proxy(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: __objt_server
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 55
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct server
    signature: struct server *__objt_server(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_server
      Src: /src/haproxy/include/haproxy/obj_type.h:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: objt_server
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 101
    functionsReached:
    - __objt_server
    linkageType: ''
    returnType: struct server
    signature: struct server *objt_server(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: __objt_applet
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 2
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct applet
    signature: struct applet *__objt_applet(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_applet
      Src: /src/haproxy/include/haproxy/obj_type.h:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: objt_applet
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 9
    functionsReached:
    - __objt_applet
    linkageType: ''
    returnType: struct applet
    signature: struct applet *objt_applet(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: __objt_appctx
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *__objt_appctx(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_appctx
      Src: /src/haproxy/include/haproxy/obj_type.h:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: objt_appctx
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 2
    functionsReached:
    - __objt_appctx
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *objt_appctx(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: __objt_sc
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *__objt_sc(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_sc
      Src: /src/haproxy/include/haproxy/obj_type.h:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: objt_sc
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 1
    functionsReached:
    - __objt_sc
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *objt_sc(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: __objt_conn
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 5
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct connection
    signature: struct connection *__objt_conn(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_conn
      Src: /src/haproxy/include/haproxy/obj_type.h:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: objt_conn
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 100
    functionsReached:
    - __objt_conn
    linkageType: ''
    returnType: struct connection
    signature: struct connection *objt_conn(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: __objt_resolv_srvrq
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 1
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct resolv_srvrq
    signature: struct resolv_srvrq *__objt_resolv_srvrq(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_resolv_srvrq
      Src: /src/haproxy/include/haproxy/obj_type.h:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: objt_resolv_srvrq
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 5
    functionsReached:
    - __objt_resolv_srvrq
    linkageType: ''
    returnType: struct resolv_srvrq
    signature: struct resolv_srvrq *objt_resolv_srvrq(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: __objt_stream
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct stream
    signature: struct stream *__objt_stream(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_stream
      Src: /src/haproxy/include/haproxy/obj_type.h:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: objt_stream
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 4
    functionsReached:
    - __objt_stream
    linkageType: ''
    returnType: struct stream
    signature: struct stream *objt_stream(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: __objt_check
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 40
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct check
    signature: struct check *__objt_check(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_check
      Src: /src/haproxy/include/haproxy/obj_type.h:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: objt_check
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 61
    functionsReached:
    - __objt_check
    linkageType: ''
    returnType: struct check
    signature: struct check *objt_check(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: __objt_hstream
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct hstream
    signature: struct hstream *__objt_hstream(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_hstream
      Src: /src/haproxy/include/haproxy/obj_type.h:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: objt_hstream
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 1
    functionsReached:
    - __objt_hstream
    linkageType: ''
    returnType: struct hstream
    signature: struct hstream *objt_hstream(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: __objt_acme_rslv
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct acme_rslv
    signature: struct acme_rslv *__objt_acme_rslv(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_acme_rslv
      Src: /src/haproxy/include/haproxy/obj_type.h:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: objt_acme_rslv
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 3
    functionsReached:
    - __objt_acme_rslv
    linkageType: ''
    returnType: struct acme_rslv
    signature: struct acme_rslv *objt_acme_rslv(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/obj_type.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: __objt_dgram
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 2
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct quic_dgram
    signature: struct quic_dgram *__objt_dgram(enum obj_type *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __objt_dgram
      Src: /src/haproxy/include/haproxy/obj_type.h:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: objt_dgram
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 3
    functionsReached:
    - __objt_dgram
    linkageType: ''
    returnType: struct quic_dgram
    signature: struct quic_dgram *objt_dgram(enum obj_type *t)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/obj_type.h:236,1
    - Dst: __objt_listener
      Src: /src/haproxy/include/haproxy/obj_type.h:238,1
    - Dst: __objt_proxy
      Src: /src/haproxy/include/haproxy/obj_type.h:239,1
    - Dst: __objt_server
      Src: /src/haproxy/include/haproxy/obj_type.h:240,1
    - Dst: __objt_applet
      Src: /src/haproxy/include/haproxy/obj_type.h:241,1
    - Dst: __objt_appctx
      Src: /src/haproxy/include/haproxy/obj_type.h:242,1
    - Dst: __objt_conn
      Src: /src/haproxy/include/haproxy/obj_type.h:243,1
    - Dst: __objt_resolv_srvrq
      Src: /src/haproxy/include/haproxy/obj_type.h:244,1
    - Dst: __objt_sc
      Src: /src/haproxy/include/haproxy/obj_type.h:245,1
    - Dst: __objt_stream
      Src: /src/haproxy/include/haproxy/obj_type.h:246,1
    - Dst: __objt_check
      Src: /src/haproxy/include/haproxy/obj_type.h:247,1
    - Dst: __objt_acme_rslv
      Src: /src/haproxy/include/haproxy/obj_type.h:248,1
    - Dst: __objt_dgram
      Src: /src/haproxy/include/haproxy/obj_type.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 254
    functionName: obj_base_ptr
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 1
    functionsReached:
    - __objt_server
    - __objt_appctx
    - __objt_conn
    - __objt_stream
    - __objt_listener
    - __objt_proxy
    - __objt_acme_rslv
    - __objt_check
    - __objt_sc
    - obj_type
    - __objt_resolv_srvrq
    - __objt_applet
    - __objt_dgram
    linkageType: ''
    returnType: void
    signature: void *obj_base_ptr(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - applet
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: CALL_APPLET_WITH_RET
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_APPLET_WITH_RET(applet, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - applet
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: CALL_APPLET_NO_RET
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_APPLET_NO_RET(applet, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - appctx
    - test
    argTypes:
    - struct appctx*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: appctx_app_test
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline appctx_app_test(const struct appctx *appctx, uint test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: appctx_new_on
      Src: /src/haproxy/include/haproxy/applet.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - applet
    - sedesc
    argTypes:
    - struct applet*
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: appctx_new_here
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 5
    functionsReached:
    - appctx_new_on
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *appctx_new_here(struct applet *applet, struct sedesc
      *sedesc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: appctx_new_on
      Src: /src/haproxy/include/haproxy/applet.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - applet
    - sedesc
    argTypes:
    - struct applet*
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: appctx_new_anywhere
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - appctx_new_on
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *appctx_new_anywhere(struct applet *applet, struct sedesc
      *sedesc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_free
      Src: /src/haproxy/include/haproxy/applet.h:96,1
    - Dst: offer_buffers
      Src: /src/haproxy/include/haproxy/applet.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - appctx
    - bptr
    argTypes:
    - struct appctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: appctx_release_buf
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - offer_buffers
    - b_free
    linkageType: ''
    returnType: void
    signature: void appctx_release_buf(struct appctx *appctx, struct buffer *bptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/applet.h:112,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/include/haproxy/applet.h:112,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/applet.h:113,1
    - Dst: b_alloc
      Src: /src/haproxy/include/haproxy/applet.h:113,1
    - Dst: b_queue
      Src: /src/haproxy/include/haproxy/applet.h:114,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:115,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/include/haproxy/applet.h:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - appctx
    - bptr
    argTypes:
    - struct appctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 121
    functionName: appctx_get_buf
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 6
    functionsReached:
    - unlikely
    - b_alloc
    - applet_fl_clr
    - b_queue
    - likely
    - LIST_INLIST
    - applet_fl_set
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *appctx_get_buf(struct appctx *appctx, struct buffer
      *bptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/applet.h:132,1
    - Dst: task_set_thread
      Src: /src/haproxy/include/haproxy/applet.h:133,1
    - Dst: CALL_APPLET_WITH_RET
      Src: /src/haproxy/include/haproxy/applet.h:136,1
    - Dst: init
      Src: /src/haproxy/include/haproxy/applet.h:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: appctx_init
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 7
    functionsReached:
    - CALL_APPLET_WITH_RET
    - init
    - BUG_ON
    - task_set_thread
    linkageType: ''
    returnType: int
    signature: int appctx_init(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_release_buf
      Src: /src/haproxy/include/haproxy/applet.h:143,1
    - Dst: appctx_release_buf
      Src: /src/haproxy/include/haproxy/applet.h:144,1
    - Dst: task_destroy
      Src: /src/haproxy/include/haproxy/applet.h:146,1
    - Dst: b_dequeue
      Src: /src/haproxy/include/haproxy/applet.h:147,1
    - Dst: session_free
      Src: /src/haproxy/include/haproxy/applet.h:149,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/applet.h:150,1
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:150,1
    - Dst: sedesc_free
      Src: /src/haproxy/include/haproxy/applet.h:151,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/applet.h:152,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/include/haproxy/applet.h:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 7
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: __appctx_free
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 4
    functionsReached:
    - BUG_ON
    - task_destroy
    - session_free
    - b_dequeue
    - se_fl_test
    - _HA_ATOMIC_DEC
    - appctx_release_buf
    - pool_free
    - sedesc_free
    linkageType: ''
    returnType: void
    signature: void __appctx_free(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: appctx_wakeup
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: appctx_wakeup(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: appctx_schedule
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: appctx_schedule(ctx, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: appctx_sc
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *appctx_sc(const struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/applet.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: appctx_strm
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 23
    functionsReached:
    - __sc_strm
    linkageType: ''
    returnType: struct stream
    signature: struct stream *appctx_strm(const struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: appctx_is_back
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 3
    functionsReached:
    - appctx_sc
    linkageType: ''
    returnType: int
    signature: int appctx_is_back(const struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: applet_fl_zero
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline applet_fl_zero(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - appctx
    - all
    argTypes:
    - struct appctx*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: applet_fl_setall
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline applet_fl_setall(struct appctx *appctx, uint all)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - appctx
    - 'on'
    argTypes:
    - struct appctx*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: applet_fl_set
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline applet_fl_set(struct appctx *appctx, uint on)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - appctx
    - 'off'
    argTypes:
    - struct appctx*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: applet_fl_clr
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline applet_fl_clr(struct appctx *appctx, uint off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - appctx
    - test
    argTypes:
    - struct appctx*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: applet_fl_test
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline applet_fl_test(const struct appctx *appctx, uint test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: applet_fl_get
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline applet_fl_get(const struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: applet_set_eoi
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 10
    functionsReached:
    - applet_fl_set
    linkageType: ''
    returnType: void
    signature: void applet_set_eoi(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: applet_set_eos
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 15
    functionsReached:
    - applet_fl_set
    linkageType: ''
    returnType: void
    signature: void applet_set_eos(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: applet_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:234,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:235,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: applet_set_error
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 13
    functionsReached:
    - applet_fl_test
    - applet_fl_set
    linkageType: ''
    returnType: void
    signature: void applet_set_error(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_clr
      Src: /src/haproxy/include/haproxy/applet.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: applet_have_more_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 22
    functionsReached:
    - se_fl_clr
    linkageType: ''
    returnType: void
    signature: void applet_have_more_data(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: applet_have_no_more_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 8
    functionsReached:
    - se_fl_set
    linkageType: ''
    returnType: void
    signature: void applet_have_no_more_data(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_will_consume
      Src: /src/haproxy/include/haproxy/applet.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: applet_will_consume
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 15
    functionsReached:
    - se_will_consume
    linkageType: ''
    returnType: void
    signature: void applet_will_consume(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_wont_consume
      Src: /src/haproxy/include/haproxy/applet.h:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: applet_wont_consume
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 9
    functionsReached:
    - se_wont_consume
    linkageType: ''
    returnType: void
    signature: void applet_wont_consume(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_need_more_data
      Src: /src/haproxy/include/haproxy/applet.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: applet_need_more_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 26
    functionsReached:
    - se_need_more_data
    linkageType: ''
    returnType: void
    signature: void applet_need_more_data(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: applet_expect_no_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 3
    functionsReached:
    - se_fl_set
    linkageType: ''
    returnType: void
    signature: void applet_expect_no_data(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_clr
      Src: /src/haproxy/include/haproxy/applet.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: applet_expect_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 2
    functionsReached:
    - se_fl_clr
    linkageType: ''
    returnType: void
    signature: void applet_expect_data(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:304,1
    - Dst: applet_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:305,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/include/haproxy/applet.h:305,1
    - Dst: sc_ob
      Src: /src/haproxy/include/haproxy/applet.h:310,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 311
    functionName: applet_get_inbuf
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 9
    functionsReached:
    - applet_fl_test
    - appctx_app_test
    - appctx_get_buf
    - appctx_sc
    - sc_ob
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *applet_get_inbuf(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:319,1
    - Dst: applet_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:320,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/include/haproxy/applet.h:321,1
    - Dst: sc_ib
      Src: /src/haproxy/include/haproxy/applet.h:326,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 327
    functionName: applet_get_outbuf
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 11
    functionsReached:
    - applet_fl_test
    - appctx_app_test
    - appctx_get_buf
    - appctx_sc
    - sc_ib
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *applet_get_outbuf(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:332,1
    - Dst: htx_used_space
      Src: /src/haproxy/include/haproxy/applet.h:333,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/applet.h:333,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:335,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:335,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: applet_htx_input_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - sc_oc
    - htxbuf
    - co_data
    - appctx_app_test
    - appctx_sc
    - htx_used_space
    linkageType: ''
    returnType: size_t
    signature: size_t applet_htx_input_data(const struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:341,1
    - Dst: applet_htx_input_data
      Src: /src/haproxy/include/haproxy/applet.h:342,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:344,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:345,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:347,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:347,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: applet_input_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 5
    functionsReached:
    - sc_oc
    - applet_htx_input_data
    - co_data
    - appctx_app_test
    - appctx_sc
    - b_data
    linkageType: ''
    returnType: size_t
    signature: size_t applet_input_data(const struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:353,1
    - Dst: htx_used_space
      Src: /src/haproxy/include/haproxy/applet.h:354,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/applet.h:354,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/applet.h:356,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:356,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: applet_htx_output_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - htxbuf
    - ci_data
    - appctx_app_test
    - sc_ic
    - appctx_sc
    - htx_used_space
    linkageType: ''
    returnType: size_t
    signature: size_t applet_htx_output_data(const struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:362,1
    - Dst: applet_htx_output_data
      Src: /src/haproxy/include/haproxy/applet.h:363,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:365,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:366,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/applet.h:368,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:368,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 369
    functionName: applet_output_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 1
    functionsReached:
    - ci_data
    - applet_htx_output_data
    - appctx_app_test
    - sc_ic
    - b_data
    - appctx_sc
    linkageType: ''
    returnType: size_t
    signature: size_t applet_output_data(const struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:382,1
    - Dst: b_del
      Src: /src/haproxy/include/haproxy/applet.h:383,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/include/haproxy/applet.h:384,1
    - Dst: co_skip
      Src: /src/haproxy/include/haproxy/applet.h:387,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:387,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - appctx
    - len
    argTypes:
    - struct appctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 388
    functionName: applet_skip_input
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 7
    functionsReached:
    - co_skip
    - applet_fl_clr
    - sc_oc
    - appctx_app_test
    - appctx_sc
    - b_del
    linkageType: ''
    returnType: void
    signature: void applet_skip_input(struct appctx *appctx, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:394,1
    - Dst: b_reset
      Src: /src/haproxy/include/haproxy/applet.h:395,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/include/haproxy/applet.h:396,1
    - Dst: co_skip
      Src: /src/haproxy/include/haproxy/applet.h:399,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:399,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:399,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:399,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:399,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 400
    functionName: applet_reset_input
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 8
    functionsReached:
    - co_skip
    - applet_fl_clr
    - sc_oc
    - co_data
    - appctx_app_test
    - appctx_sc
    - b_reset
    linkageType: ''
    returnType: void
    signature: void applet_reset_input(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:406,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/include/haproxy/applet.h:407,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/applet.h:407,1
    - Dst: channel_recv_max
      Src: /src/haproxy/include/haproxy/applet.h:409,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:409,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: applet_htx_output_room
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 1
    functionsReached:
    - htxbuf
    - appctx_app_test
    - sc_ic
    - appctx_sc
    - htx_free_data_space
    - channel_recv_max
    linkageType: ''
    returnType: size_t
    signature: size_t applet_htx_output_room(const struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:416,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/include/haproxy/applet.h:417,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:419,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/applet.h:420,1
    - Dst: channel_recv_max
      Src: /src/haproxy/include/haproxy/applet.h:422,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:422,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 423
    functionName: applet_output_room
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 4
    functionsReached:
    - appctx_app_test
    - b_room
    - sc_ic
    - appctx_sc
    - applet_htx_output_room
    - channel_recv_max
    linkageType: ''
    returnType: size_t
    signature: size_t applet_output_room(const struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:435,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/include/haproxy/applet.h:436,1
    - Dst: sc_need_room
      Src: /src/haproxy/include/haproxy/applet.h:438,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - appctx
    - room_needed
    argTypes:
    - struct appctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 439
    functionName: applet_need_room
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - appctx_sc
    - appctx_app_test
    - sc_need_room
    - applet_have_more_data
    linkageType: ''
    returnType: void
    signature: void applet_need_room(struct appctx *appctx, size_t room_needed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:447,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/applet.h:448,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:449,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:450,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/applet.h:450,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:451,1
    - Dst: b_putblk
      Src: /src/haproxy/include/haproxy/applet.h:455,1
    - Dst: b_head
      Src: /src/haproxy/include/haproxy/applet.h:455,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:455,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/applet.h:462,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/applet.h:462,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:462,1
    - Dst: ci_putchk
      Src: /src/haproxy/include/haproxy/applet.h:463,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:463,1
    - Dst: sc_need_room
      Src: /src/haproxy/include/haproxy/applet.h:469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - appctx
    - chunk
    - stress
    argTypes:
    - struct appctx*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 475
    functionName: _applet_putchk
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - unlikely
    - b_head
    - ci_data
    - sc_need_room
    - b_putblk
    - appctx_app_test
    - b_room
    - sc_ic
    - b_data
    - applet_fl_set
    - ci_putchk
    linkageType: ''
    returnType: int
    signature: "int _applet_putchk(struct appctx *appctx, struct buffer *chunk,\n
      \                                int stress)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _applet_putchk
      Src: /src/haproxy/include/haproxy/applet.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - appctx
    - chunk
    argTypes:
    - struct appctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: applet_putchk
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 61
    functionsReached:
    - _applet_putchk
    linkageType: ''
    returnType: int
    signature: int applet_putchk(struct appctx *appctx, struct buffer *chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _applet_putchk
      Src: /src/haproxy/include/haproxy/applet.h:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - appctx
    - chunk
    argTypes:
    - struct appctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: applet_putchk_stress
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 2
    functionsReached:
    - _applet_putchk
    linkageType: ''
    returnType: int
    signature: int applet_putchk_stress(struct appctx *appctx, struct buffer *chunk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:502,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/applet.h:503,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:504,1
    - Dst: b_putblk
      Src: /src/haproxy/include/haproxy/applet.h:508,1
    - Dst: ci_putblk
      Src: /src/haproxy/include/haproxy/applet.h:513,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:513,1
    - Dst: sc_need_room
      Src: /src/haproxy/include/haproxy/applet.h:520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - appctx
    - blk
    - len
    argTypes:
    - struct appctx*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 526
    functionName: applet_putblk
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 4
    functionsReached:
    - b_putblk
    - appctx_app_test
    - ci_putblk
    - b_room
    - sc_ic
    - applet_fl_set
    - sc_need_room
    linkageType: ''
    returnType: int
    signature: int applet_putblk(struct appctx *appctx, const char *blk, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:538,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/applet.h:539,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/applet.h:541,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:542,1
    - Dst: b_putblk
      Src: /src/haproxy/include/haproxy/applet.h:546,1
    - Dst: ci_putstr
      Src: /src/haproxy/include/haproxy/applet.h:551,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:551,1
    - Dst: sc_need_room
      Src: /src/haproxy/include/haproxy/applet.h:558,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/applet.h:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - appctx
    - str
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 563
    functionName: applet_putstr
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 7
    functionsReached:
    - b_putblk
    - appctx_app_test
    - ci_putstr
    - b_room
    - sc_ic
    - applet_fl_set
    - sc_need_room
    - strlen
    linkageType: ''
    returnType: int
    signature: int applet_putstr(struct appctx *appctx, const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:574,1
    - Dst: b_full
      Src: /src/haproxy/include/haproxy/applet.h:575,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:576,1
    - Dst: b_putchr
      Src: /src/haproxy/include/haproxy/applet.h:580,1
    - Dst: ci_putchr
      Src: /src/haproxy/include/haproxy/applet.h:587,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:587,1
    - Dst: sc_need_room
      Src: /src/haproxy/include/haproxy/applet.h:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - appctx
    - chr
    argTypes:
    - struct appctx*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 599
    functionName: applet_putchr
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - ci_putchr
    - appctx_app_test
    - sc_ic
    - b_putchr
    - applet_fl_set
    - b_full
    - sc_need_room
    linkageType: ''
    returnType: int
    signature: int applet_putchr(struct appctx *appctx, char chr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:603,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:604,1
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:605,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:611,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:613,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:613,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - appctx
    - len
    argTypes:
    - struct appctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 620
    functionName: applet_may_get
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - sc_oc
    - co_data
    - appctx_app_test
    - appctx_sc
    - b_data
    - se_fl_test
    linkageType: ''
    returnType: int
    signature: int applet_may_get(const struct appctx *appctx, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: applet_may_get
      Src: /src/haproxy/include/haproxy/applet.h:635,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:638,1
    - Dst: b_head
      Src: /src/haproxy/include/haproxy/applet.h:639,1
    - Dst: co_head
      Src: /src/haproxy/include/haproxy/applet.h:640,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:640,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - appctx
    - c
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 643
    functionName: applet_getchar
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 1
    functionsReached:
    - sc_oc
    - b_head
    - appctx_app_test
    - appctx_sc
    - co_head
    - applet_may_get
    linkageType: ''
    returnType: int
    signature: int applet_getchar(const struct appctx *appctx, char *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: applet_may_get
      Src: /src/haproxy/include/haproxy/applet.h:663,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:667,1
    - Dst: sc_ob
      Src: /src/haproxy/include/haproxy/applet.h:669,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:669,1
    - Dst: b_getblk
      Src: /src/haproxy/include/haproxy/applet.h:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - appctx
    - blk
    - len
    - offset
    argTypes:
    - struct appctx*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 671
    functionName: applet_getblk
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 3
    functionsReached:
    - appctx_app_test
    - b_getblk
    - appctx_sc
    - sc_ob
    - applet_may_get
    linkageType: ''
    returnType: int
    signature: int applet_getblk(const struct appctx *appctx, char *blk, int len,
      int offset)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: applet_may_get
      Src: /src/haproxy/include/haproxy/applet.h:695,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:699,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:701,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:704,1
    - Dst: sc_ob
      Src: /src/haproxy/include/haproxy/applet.h:706,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:707,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:707,1
    - Dst: b_head
      Src: /src/haproxy/include/haproxy/applet.h:715,1
    - Dst: b_next
      Src: /src/haproxy/include/haproxy/applet.h:723,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:726,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/applet.h:727,1
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:728,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:732,1
    - Dst: channel_may_recv
      Src: /src/haproxy/include/haproxy/applet.h:734,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:734,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 4
    argNames:
    - appctx
    - str
    - len
    - sep
    argTypes:
    - struct appctx*
    - char*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 742
    functionName: applet_getword
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 1
    functionsReached:
    - sc_oc
    - b_next
    - b_head
    - co_data
    - channel_may_recv
    - appctx_app_test
    - b_room
    - appctx_sc
    - b_data
    - sc_ob
    - applet_may_get
    - se_fl_test
    linkageType: ''
    returnType: int
    signature: int applet_getword(const struct appctx *appctx, char *str, int len,
      char sep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_getword
      Src: /src/haproxy/include/haproxy/applet.h:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - appctx
    - str
    - len
    argTypes:
    - struct appctx*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 759
    functionDepth: 3
    functionLinenumber: 759
    functionLinenumberEnd: 762
    functionName: applet_getline
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 2
    functionsReached:
    - applet_getword
    linkageType: ''
    returnType: int
    signature: int applet_getline(const struct appctx *appctx, char *str, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: applet_may_get
      Src: /src/haproxy/include/haproxy/applet.h:782,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:786,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:788,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:791,1
    - Dst: sc_ob
      Src: /src/haproxy/include/haproxy/applet.h:793,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:794,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:794,1
    - Dst: b_getblk_nc
      Src: /src/haproxy/include/haproxy/applet.h:797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - appctx
    - blk1
    - len1
    - blk2
    - len2
    argTypes:
    - struct appctx*
    - char**
    - size_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 798
    functionName: applet_getblk_nc
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 2
    functionsReached:
    - sc_oc
    - co_data
    - appctx_app_test
    - appctx_sc
    - b_data
    - sc_ob
    - applet_may_get
    - b_getblk_nc
    linkageType: ''
    returnType: int
    signature: int applet_getblk_nc(const struct appctx *appctx, const char **blk1,
      size_t *len1, const char **blk2, size_t *len2)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: applet_getblk_nc
      Src: /src/haproxy/include/haproxy/applet.h:820,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/applet.h:821,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:842,1
    - Dst: b_full
      Src: /src/haproxy/include/haproxy/applet.h:843,1
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:843,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:847,1
    - Dst: channel_may_recv
      Src: /src/haproxy/include/haproxy/applet.h:849,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:849,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 6
    argNames:
    - appctx
    - blk1
    - len1
    - blk2
    - len2
    - sep
    argTypes:
    - struct appctx*
    - char**
    - size_t*
    - char**
    - size_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 855
    functionName: applet_getword_nc
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - unlikely
    - sc_oc
    - channel_may_recv
    - appctx_app_test
    - appctx_sc
    - b_full
    - se_fl_test
    - applet_getblk_nc
    linkageType: ''
    returnType: int
    signature: int applet_getword_nc(const struct appctx *appctx, const char **blk1,
      size_t *len1, const char **blk2, size_t *len2, char sep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_getword_nc
      Src: /src/haproxy/include/haproxy/applet.h:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - appctx
    - blk1
    - len1
    - blk2
    - len2
    argTypes:
    - struct appctx*
    - char**
    - size_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 873
    functionDepth: 4
    functionLinenumber: 873
    functionLinenumberEnd: 876
    functionName: applet_getline_nc
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 2
    functionsReached:
    - applet_getword_nc
    linkageType: ''
    returnType: int
    signature: int applet_getline_nc(const struct appctx *appctx, const char **blk1,
      size_t *len1, const char **blk2, size_t *len2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: hpack_alloc
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hpack_alloc(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: hpack_free
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hpack_free(pool, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: hpack_alloc
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hpack_alloc(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: hpack_free
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hpack_free(pool, ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dht
    - idx
    argTypes:
    - struct hpack_dht*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: hpack_get_dte
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct hpack_dte
    signature: struct hpack_dte *hpack_get_dte(const struct hpack_dht *dht, uint16_t
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - dht
    - idx
    argTypes:
    - struct hpack_dht*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: hpack_valid_idx
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hpack_valid_idx(const struct hpack_dht *dht, uint32_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dht
    - dte
    argTypes:
    - struct hpack_dht*
    - struct hpack_dte*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: hpack_get_name
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ist
    signature: struct ist hpack_get_name(const struct hpack_dht *dht, const struct
      hpack_dte *dte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dht
    - dte
    argTypes:
    - struct hpack_dht*
    - struct hpack_dte*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: hpack_get_value
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ist
    signature: struct ist hpack_get_value(const struct hpack_dht *dht, const struct
      hpack_dte *dte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hpack_get_dte
      Src: /src/haproxy/include/haproxy/hpack-tbl.h:112,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/hpack-tbl.h:114,1
    - Dst: hpack_get_name
      Src: /src/haproxy/include/haproxy/hpack-tbl.h:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dht
    - idx
    argTypes:
    - struct hpack_dht*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: hpack_idx_to_name
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 2
    functionsReached:
    - hpack_get_dte
    - ist
    - hpack_get_name
    linkageType: ''
    returnType: struct ist
    signature: struct ist hpack_idx_to_name(const struct hpack_dht *dht, uint32_t
      idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hpack_get_dte
      Src: /src/haproxy/include/haproxy/hpack-tbl.h:127,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/hpack-tbl.h:129,1
    - Dst: hpack_get_value
      Src: /src/haproxy/include/haproxy/hpack-tbl.h:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dht
    - idx
    argTypes:
    - struct hpack_dht*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: hpack_idx_to_value
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 2
    functionsReached:
    - hpack_get_value
    - hpack_get_dte
    - ist
    linkageType: ''
    returnType: struct ist
    signature: struct ist hpack_idx_to_value(const struct hpack_dht *dht, uint32_t
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dht
    argTypes:
    - struct hpack_dht*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: hpack_dht_get_tail
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hpack_dht_get_tail(const struct hpack_dht *dht)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __hpack_dht_make_room
      Src: /src/haproxy/include/haproxy/hpack-tbl.h:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dht
    - needed
    argTypes:
    - struct hpack_dht*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: hpack_dht_make_room
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 2
    functionsReached:
    - __hpack_dht_make_room
    linkageType: ''
    returnType: int
    signature: int hpack_dht_make_room(struct hpack_dht *dht, unsigned int needed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dht
    - size
    argTypes:
    - struct hpack_dht*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: hpack_dht_init
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hpack_dht_init(struct hpack_dht *dht, uint32_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/hpack-tbl.h:169,1
    - Dst: hpack_alloc
      Src: /src/haproxy/include/haproxy/hpack-tbl.h:172,1
    - Dst: hpack_dht_init
      Src: /src/haproxy/include/haproxy/hpack-tbl.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: hpack_dht_alloc
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 4
    functionsReached:
    - unlikely
    - hpack_alloc
    - hpack_dht_init
    linkageType: ''
    returnType: struct hpack_dht
    signature: struct hpack_dht *hpack_dht_alloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hpack_free
      Src: /src/haproxy/include/haproxy/hpack-tbl.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dht
    argTypes:
    - struct hpack_dht*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: hpack_dht_free
    functionSourceFile: /src/haproxy/include/haproxy/hpack-tbl.h
    functionUses: 3
    functionsReached:
    - hpack_free
    linkageType: ''
    returnType: void
    signature: void hpack_dht_free(struct hpack_dht *dht)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/session.h:64,1
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/session.h:70,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/session.h:74,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/session.h:76,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/session.h:78,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/session.h:79,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/session.h:81,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/session.h:84,1
    - Dst: stkctr_set_entry
      Src: /src/haproxy/include/haproxy/session.h:87,1
    - Dst: stksess_kill_if_expired
      Src: /src/haproxy/include/haproxy/session.h:88,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 90
    functionName: session_store_counters
    functionSourceFile: /src/haproxy/include/haproxy/session.h
    functionUses: 1
    functionsReached:
    - unlikely
    - stkctr_entry
    - stkctr_set_entry
    - HA_RWLOCK_WRUNLOCK
    - stksess_kill_if_expired
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void session_store_counters(struct session *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/session.h:97,1
    - Dst: stkctr_inc_http_req_ctr
      Src: /src/haproxy/include/haproxy/session.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: session_inc_http_req_ctr
    functionSourceFile: /src/haproxy/include/haproxy/session.h
    functionUses: 6
    functionsReached:
    - unlikely
    - stkctr_inc_http_req_ctr
    linkageType: ''
    returnType: void
    signature: void session_inc_http_req_ctr(struct session *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/session.h:114,1
    - Dst: stkctr_inc_http_err_ctr
      Src: /src/haproxy/include/haproxy/session.h:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: session_inc_http_err_ctr
    functionSourceFile: /src/haproxy/include/haproxy/session.h
    functionUses: 3
    functionsReached:
    - unlikely
    - stkctr_inc_http_err_ctr
    linkageType: ''
    returnType: void
    signature: void session_inc_http_err_ctr(struct session *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/session.h:130,1
    - Dst: stkctr_inc_http_fail_ctr
      Src: /src/haproxy/include/haproxy/session.h:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: session_inc_http_fail_ctr
    functionSourceFile: /src/haproxy/include/haproxy/session.h
    functionUses: 0
    functionsReached:
    - unlikely
    - stkctr_inc_http_fail_ctr
    linkageType: ''
    returnType: void
    signature: void session_inc_http_fail_ctr(struct session *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __session_add_glitch_ctr
      Src: /src/haproxy/include/haproxy/session.h:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - sess
    - inc
    argTypes:
    - struct session*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: session_add_glitch_ctr
    functionSourceFile: /src/haproxy/include/haproxy/session.h
    functionUses: 6
    functionsReached:
    - __session_add_glitch_ctr
    linkageType: ''
    returnType: void
    signature: void session_add_glitch_ctr(struct session *sess, uint inc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/include/haproxy/session.h:152,1
    - Dst: conn_get_src
      Src: /src/haproxy/include/haproxy/session.h:156,1
    - Dst: conn_src
      Src: /src/haproxy/include/haproxy/session.h:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: sess_src
    functionSourceFile: /src/haproxy/include/haproxy/session.h
    functionUses: 6
    functionsReached:
    - objt_conn
    - conn_get_src
    - conn_src
    linkageType: ''
    returnType: struct sockaddr_storage
    signature: struct sockaddr_storage *sess_src(struct session *sess)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/include/haproxy/session.h:167,1
    - Dst: conn_get_dst
      Src: /src/haproxy/include/haproxy/session.h:171,1
    - Dst: conn_dst
      Src: /src/haproxy/include/haproxy/session.h:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: sess_dst
    functionSourceFile: /src/haproxy/include/haproxy/session.h
    functionUses: 5
    functionsReached:
    - objt_conn
    - conn_dst
    - conn_get_dst
    linkageType: ''
    returnType: struct sockaddr_storage
    signature: struct sockaddr_storage *sess_dst(struct session *sess)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/include/haproxy/session.h:184,1
    - Dst: conn_get_src
      Src: /src/haproxy/include/haproxy/session.h:190,1
    - Dst: conn_src
      Src: /src/haproxy/include/haproxy/session.h:191,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/include/haproxy/session.h:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 199
    functionName: sess_get_src
    functionSourceFile: /src/haproxy/include/haproxy/session.h
    functionUses: 2
    functionsReached:
    - objt_conn
    - sockaddr_alloc
    - conn_get_src
    - conn_src
    linkageType: ''
    returnType: int
    signature: int sess_get_src(struct session *sess)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/include/haproxy/session.h:209,1
    - Dst: conn_get_dst
      Src: /src/haproxy/include/haproxy/session.h:215,1
    - Dst: conn_dst
      Src: /src/haproxy/include/haproxy/session.h:216,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/include/haproxy/session.h:220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 224
    functionName: sess_get_dst
    functionSourceFile: /src/haproxy/include/haproxy/session.h
    functionUses: 2
    functionsReached:
    - objt_conn
    - conn_dst
    - conn_get_dst
    - sockaddr_alloc
    linkageType: ''
    returnType: int
    signature: int sess_get_dst(struct session *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: HA_ATOMIC_LOAD
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 135
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_LOAD(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: HA_ATOMIC_STORE
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_STORE(val, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: HA_ATOMIC_XCHG
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_XCHG(val, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: HA_ATOMIC_AND
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_AND(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: HA_ATOMIC_OR
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_OR(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: HA_ATOMIC_ADD
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_ADD(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: HA_ATOMIC_SUB
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_SUB(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: HA_ATOMIC_INC
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 214
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_INC(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: HA_ATOMIC_DEC
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 71
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_DEC(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: HA_ATOMIC_AND_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_AND_FETCH(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: HA_ATOMIC_OR_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_OR_FETCH(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: HA_ATOMIC_ADD_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_ADD_FETCH(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: HA_ATOMIC_SUB_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_SUB_FETCH(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: HA_ATOMIC_FETCH_AND
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_FETCH_AND(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: HA_ATOMIC_FETCH_OR
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_FETCH_OR(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: HA_ATOMIC_FETCH_ADD
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_FETCH_ADD(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: HA_ATOMIC_FETCH_SUB
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_FETCH_SUB(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: HA_ATOMIC_BTS
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_BTS(val, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: HA_ATOMIC_BTR
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_BTR(val, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - old
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: HA_ATOMIC_CAS
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_CAS(val, old, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: HA_ATOMIC_DWCAS
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_DWCAS(val, o, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: HA_ATOMIC_UPDATE_MAX
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_UPDATE_MAX(val, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: HA_ATOMIC_UPDATE_MIN
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_UPDATE_MIN(val, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: __ha_barrier_atomic_load
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_atomic_load()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: __ha_barrier_atomic_store
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_atomic_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: __ha_barrier_atomic_full
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_atomic_full()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: __ha_barrier_load
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_load()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: __ha_barrier_store
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: __ha_barrier_full
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_full()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: __ha_compiler_barrier
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_compiler_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: __ha_cpu_relax
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_cpu_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: __ha_cpu_relax_for_read
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_cpu_relax_for_read()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: HA_ATOMIC_STORE
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_STORE(val, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: HA_ATOMIC_LOAD
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 135
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_LOAD(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: HA_ATOMIC_XCHG
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_XCHG(val, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: HA_ATOMIC_AND
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_AND(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: HA_ATOMIC_OR
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_OR(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: HA_ATOMIC_ADD
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_ADD(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: HA_ATOMIC_SUB
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_SUB(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: HA_ATOMIC_INC
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 214
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_INC(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: HA_ATOMIC_DEC
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 71
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_DEC(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: HA_ATOMIC_AND_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_AND_FETCH(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: HA_ATOMIC_OR_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_OR_FETCH(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: HA_ATOMIC_ADD_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_ADD_FETCH(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: HA_ATOMIC_SUB_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_SUB_FETCH(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: HA_ATOMIC_FETCH_AND
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_FETCH_AND(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: HA_ATOMIC_FETCH_OR
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_FETCH_OR(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: HA_ATOMIC_FETCH_ADD
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_FETCH_ADD(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: HA_ATOMIC_FETCH_SUB
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_FETCH_SUB(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 244
    functionName: HA_ATOMIC_BTS
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_BTS(val, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 269
    functionName: HA_ATOMIC_BTR
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_BTR(val, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: HA_ATOMIC_BTS
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_BTS(val, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: HA_ATOMIC_BTR
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_BTR(val, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - old
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: HA_ATOMIC_CAS
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_CAS(val, old, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: HA_ATOMIC_DWCAS
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_DWCAS(val, o, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: HA_ATOMIC_UPDATE_MAX
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_UPDATE_MAX(val, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: HA_ATOMIC_UPDATE_MIN
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ATOMIC_UPDATE_MIN(val, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: _HA_ATOMIC_LOAD
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_LOAD(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: _HA_ATOMIC_STORE
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_STORE(val, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: _HA_ATOMIC_XCHG
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_XCHG(val, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: _HA_ATOMIC_AND
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_AND(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: _HA_ATOMIC_OR
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_OR(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: _HA_ATOMIC_ADD
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_ADD(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 328
    functionName: _HA_ATOMIC_SUB
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_SUB(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: _HA_ATOMIC_INC
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 119
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_INC(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: _HA_ATOMIC_DEC
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_DEC(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: _HA_ATOMIC_AND_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_AND_FETCH(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: _HA_ATOMIC_OR_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_OR_FETCH(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: _HA_ATOMIC_ADD_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_ADD_FETCH(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: _HA_ATOMIC_SUB_FETCH
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_SUB_FETCH(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: _HA_ATOMIC_FETCH_AND
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_FETCH_AND(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: _HA_ATOMIC_FETCH_OR
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_FETCH_OR(val, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: _HA_ATOMIC_FETCH_ADD
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_FETCH_ADD(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 340
    functionName: _HA_ATOMIC_FETCH_SUB
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_FETCH_SUB(val, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 366
    functionName: _HA_ATOMIC_BTS
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_BTS(val, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 391
    functionName: _HA_ATOMIC_BTR
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_BTR(val, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 399
    functionName: _HA_ATOMIC_BTS
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_BTS(val, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: _HA_ATOMIC_BTR
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_BTR(val, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - old
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 408
    functionName: _HA_ATOMIC_CAS
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_CAS(val, old, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    functionName: _HA_ATOMIC_DWCAS
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HA_ATOMIC_DWCAS(val, o, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: __ha_barrier_load
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 2
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: __ha_barrier_store
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 16
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_store(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: __ha_barrier_full
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_full(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 442
    functionName: __ha_barrier_atomic_load
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_atomic_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: __ha_barrier_atomic_store
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 15
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_atomic_store(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: __ha_barrier_atomic_full
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_atomic_full(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - target
    - compare
    - set
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 472
    functionName: __ha_cas_dw
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: int
    signature: int __ha_cas_dw(void *target, void *compare, const void *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: __ha_cpu_relax
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_cpu_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: __ha_cpu_relax_for_read
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_cpu_relax_for_read()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: __ha_barrier_load
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 2
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: __ha_barrier_store
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 16
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_store(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: __ha_barrier_full
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_full(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:506,1
    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: __ha_barrier_atomic_load
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_atomic_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: __ha_barrier_atomic_store
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 15
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_atomic_store(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 519
    functionName: __ha_barrier_atomic_full
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_atomic_full(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - target
    - compare
    - set
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 540
    functionName: __ha_cas_dw
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: int
    signature: int __ha_cas_dw(void *target, void *compare, const void *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 544
    functionName: __ha_cpu_relax
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_cpu_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 547
    functionName: __ha_cpu_relax_for_read
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_cpu_relax_for_read()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 554
    functionName: __ha_barrier_load
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 2
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 560
    functionName: __ha_barrier_store
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 16
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_store(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 566
    functionName: __ha_barrier_full
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_full(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 575
    functionName: __ha_barrier_atomic_load
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_atomic_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: __ha_barrier_atomic_store
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 15
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_atomic_store(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: __ha_barrier_atomic_full
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_barrier_atomic_full(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 593
    functionName: __ha_cpu_relax
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_cpu_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 596
    functionName: __ha_cpu_relax_for_read
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_cpu_relax_for_read()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/atomic.h:626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - target
    - compare
    - set
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 635
    functionName: __ha_cas_dw
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: forceinline
    signature: forceinline __ha_cas_dw(void *target, void *compare, const void *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/haproxy/include/haproxy/atomic.h:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - target
    - compare
    - set
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 653
    functionName: __ha_cas_dw
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached:
    - __atomic_compare_exchange_n
    linkageType: ''
    returnType: int
    signature: int __ha_cas_dw(void *target, void *compare, const void *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - target
    - compare
    - set
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 683
    functionName: __ha_cas_dw
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __ha_cas_dw(void *target, void *compare, void *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 689
    functionName: __ha_barrier_atomic_load
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_atomic_load()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 690
    functionName: __ha_barrier_atomic_store
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_atomic_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 691
    functionName: __ha_barrier_atomic_full
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_atomic_full()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 692
    functionName: __ha_barrier_load
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_load()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 693
    functionName: __ha_barrier_store
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 694
    functionName: __ha_barrier_full
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_barrier_full()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 699
    functionName: __ha_cpu_relax
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_cpu_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 702
    functionName: __ha_cpu_relax_for_read
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ha_cpu_relax_for_read()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __volatile
      Src: /src/haproxy/include/haproxy/atomic.h:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 708
    functionName: __ha_compiler_barrier
    functionSourceFile: /src/haproxy/include/haproxy/atomic.h
    functionUses: 1
    functionsReached:
    - __volatile
    linkageType: ''
    returnType: void
    signature: void __ha_compiler_barrier(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:89,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:91,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:91,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:91,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:91,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:92,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:92,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:92,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:93,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:93,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:93,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/http_ana-t.h:95,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/http_ana-t.h:95,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/http_ana-t.h:96,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/http_ana-t.h:96,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/http_ana-t.h:97,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/http_ana-t.h:99,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/http_ana-t.h:99,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/http_ana-t.h:100,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/http_ana-t.h:100,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/http_ana-t.h:101,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/http_ana-t.h:101,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:103,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:103,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 109
    functionName: txn_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/http_ana-t.h
    functionUses: 1
    functionsReached:
    - _
    - _e
    linkageType: ''
    returnType: forceinline
    signature: forceinline *txn_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/http_ana-t.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - e
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: _e
    functionSourceFile: /src/haproxy/include/haproxy/http_ana-t.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _e(m, e, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:143,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:145,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:145,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:145,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:146,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:146,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:146,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:147,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:147,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:147,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/http_ana-t.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: hmsg_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/http_ana-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *hmsg_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/http_ana-t.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: qc_init_fd
    functionSourceFile: /src/haproxy/include/haproxy/quic_sock.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void qc_init_fd(struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/quic_sock.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: qc_test_fd
    functionSourceFile: /src/haproxy/include/haproxy/quic_sock.h
    functionUses: 16
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: char
    signature: char qc_test_fd(struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qc_test_fd
      Src: /src/haproxy/include/haproxy/quic_sock.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: qc_fd
    functionSourceFile: /src/haproxy/include/haproxy/quic_sock.h
    functionUses: 1
    functionsReached:
    - qc_test_fd
    linkageType: ''
    returnType: int
    signature: int qc_fd(struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_listener_max_handshake
      Src: /src/haproxy/include/haproxy/quic_sock.h:94,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/quic_sock.h:106,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/include/haproxy/quic_sock.h:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: quic_increment_curr_handshake
    functionSourceFile: /src/haproxy/include/haproxy/quic_sock.h
    functionUses: 1
    functionsReached:
    - __ha_cpu_relax
    - quic_listener_max_handshake
    - _HA_ATOMIC_CAS
    linkageType: ''
    returnType: int
    signature: int quic_increment_curr_handshake(struct listener *l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/include/haproxy/quic_sock.h:123,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/include/haproxy/quic_sock.h:143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - union sockaddr_in46*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 146
    functionName: in46un_to_addr
    functionSourceFile: /src/haproxy/include/haproxy/quic_sock.h
    functionUses: 2
    functionsReached:
    - ABORT_NOW
    - memset
    linkageType: ''
    returnType: void
    signature: "void in46un_to_addr(const union sockaddr_in46 *src,\n                                  struct
      sockaddr_storage *dst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - struct quic_tx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: quic_tx_packet_dgram_detach
    functionSourceFile: /src/haproxy/include/haproxy/quic_tx.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_tx_packet_dgram_detach(struct quic_tx_packet *pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - struct quic_tx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: quic_tx_packet_refinc
    functionSourceFile: /src/haproxy/include/haproxy/quic_tx.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_tx_packet_refinc(struct quic_tx_packet *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/quic_tx.h:80,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/quic_tx.h:82,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/quic_tx.h:82,1
    - Dst: quic_tx_packet_dgram_detach
      Src: /src/haproxy/include/haproxy/quic_tx.h:86,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tx.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - struct quic_tx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: quic_tx_packet_refdec
    functionSourceFile: /src/haproxy/include/haproxy/quic_tx.h
    functionUses: 7
    functionsReached:
    - LIST_ISEMPTY
    - pool_free
    - quic_tx_packet_dgram_detach
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void quic_tx_packet_refdec(struct quic_tx_packet *pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: quic_may_send_bytes
    functionSourceFile: /src/haproxy/include/haproxy/quic_tx.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t quic_may_send_bytes(struct quic_conn *qc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CIPHER_get_id
      Src: /src/haproxy/include/haproxy/quic_tls.h:145,1
    - Dst: EVP_aead_aes_128_gcm
      Src: /src/haproxy/include/haproxy/quic_tls.h:148,1
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/include/haproxy/quic_tls.h:150,1
    - Dst: EVP_aead_aes_256_gcm
      Src: /src/haproxy/include/haproxy/quic_tls.h:155,1
    - Dst: EVP_aes_256_gcm
      Src: /src/haproxy/include/haproxy/quic_tls.h:157,1
    - Dst: EVP_aead_chacha20_poly1305
      Src: /src/haproxy/include/haproxy/quic_tls.h:171,1
    - Dst: EVP_chacha20_poly1305
      Src: /src/haproxy/include/haproxy/quic_tls.h:173,1
    - Dst: EVP_aes_128_ccm
      Src: /src/haproxy/include/haproxy/quic_tls.h:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 183
    functionName: tls_aead
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 2
    functionsReached:
    - EVP_aead_aes_256_gcm
    - SSL_CIPHER_get_id
    - EVP_aes_128_gcm
    - EVP_chacha20_poly1305
    - EVP_aead_aes_128_gcm
    - EVP_aes_128_ccm
    - EVP_aead_chacha20_poly1305
    - EVP_aes_256_gcm
    linkageType: ''
    returnType: QUIC_AEAD
    signature: QUIC_AEAD *tls_aead(const SSL_CIPHER *cipher)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CIPHER_get_id
      Src: /src/haproxy/include/haproxy/quic_tls.h:187,1
    - Dst: EVP_sha256
      Src: /src/haproxy/include/haproxy/quic_tls.h:191,1
    - Dst: EVP_sha384
      Src: /src/haproxy/include/haproxy/quic_tls.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: tls_md
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 2
    functionsReached:
    - SSL_CIPHER_get_id
    - EVP_sha384
    - EVP_sha256
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *tls_md(const SSL_CIPHER *cipher)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CIPHER_get_id
      Src: /src/haproxy/include/haproxy/quic_tls.h:201,1
    - Dst: EVP_chacha20
      Src: /src/haproxy/include/haproxy/quic_tls.h:206,1
    - Dst: EVP_aes_128_ctr
      Src: /src/haproxy/include/haproxy/quic_tls.h:210,1
    - Dst: EVP_aes_256_ctr
      Src: /src/haproxy/include/haproxy/quic_tls.h:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 217
    functionName: tls_hp
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached:
    - EVP_aes_128_ctr
    - SSL_CIPHER_get_id
    - EVP_chacha20
    - EVP_aes_256_ctr
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *tls_hp(const SSL_CIPHER *cipher)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: ssl_to_quic_pktns
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct quic_pktns
    signature: "struct quic_pktns **ssl_to_quic_pktns(struct quic_conn *qc,\n                                                    enum
      ssl_encryption_level_t level)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 253
    functionName: qel_to_quic_pktns
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct quic_pktns
    signature: "struct quic_pktns **qel_to_quic_pktns(struct quic_conn *qc,\n                                                    enum
      quic_tls_enc_level level)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - level
    argTypes:
    - enum ssl_encryption_level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 272
    functionName: ssl_to_quic_enc_level
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: enum quic_tls_enc_level
    signature: enum quic_tls_enc_level ssl_to_quic_enc_level(enum ssl_encryption_level_t
      level)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 293
    functionName: ssl_to_qel_addr
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct quic_enc_level
    signature: "struct quic_enc_level **ssl_to_qel_addr(struct quic_conn *qc,\n                                                      enum
      ssl_encryption_level_t level)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - qc
    - prot_level
    argTypes:
    - struct quic_conn*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 315
    functionName: ssl_prot_level_to_enc_level
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum ssl_encryption_level_t
    signature: "enum ssl_encryption_level_t ssl_prot_level_to_enc_level(struct quic_conn
      *qc,\n                                                                      uint32_t
      prot_level)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 337
    functionName: qel_to_qel_addr
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct quic_enc_level
    signature: "struct quic_enc_level **qel_to_qel_addr(struct quic_conn *qc,\n                                                      enum
      quic_tls_enc_level level)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - qc
    - level
    argTypes:
    - struct quic_conn*
    - enum quic_tls_enc_level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 357
    functionName: qc_quic_enc_level
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct quic_enc_level
    signature: "struct quic_enc_level *qc_quic_enc_level(const struct quic_conn *qc,\n
      \                                                      enum quic_tls_enc_level
      level)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - level
    argTypes:
    - enum quic_tls_enc_level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 374
    functionName: quic_to_ssl_enc_level
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: enum ssl_encryption_level_t
    signature: enum ssl_encryption_level_t quic_to_ssl_enc_level(enum quic_tls_enc_level
      level)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum quic_handshake_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 401
    functionName: quic_hdshk_state_str
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *quic_hdshk_state_str(const enum quic_handshake_state state)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 438
    functionName: ssl_error_str
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ssl_error_str(int err)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - level
    argTypes:
    - enum quic_tls_enc_level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 460
    functionName: quic_enc_level_char
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char quic_enc_level_char(enum quic_tls_enc_level level)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - qel
    - qc
    argTypes:
    - struct quic_enc_level*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 479
    functionName: quic_enc_level_char_from_qel
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char quic_enc_level_char_from_qel(const struct quic_enc_level *qel,\n
      \                                               const struct quic_conn *qc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - packet_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 500
    functionName: quic_packet_type_enc_level_char
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char quic_packet_type_enc_level_char(int packet_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_tls.h:509,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/quic_tls.h:513,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/include/haproxy/quic_tls.h:532,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/include/haproxy/quic_tls.h:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - qc
    - p
    argTypes:
    - struct quic_conn*
    - struct quic_pktns**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 538
    functionName: quic_pktns_init
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached:
    - LIST_INSERT
    - LIST_INIT
    - pool_alloc
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int quic_pktns_init(struct quic_conn *qc, struct quic_pktns **p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/include/haproxy/quic_tls.h:545,1
    - Dst: eb64_first
      Src: /src/haproxy/include/haproxy/quic_tls.h:547,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_tls.h:552,1
    - Dst: eb64_next
      Src: /src/haproxy/include/haproxy/quic_tls.h:553,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/include/haproxy/quic_tls.h:556,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/include/haproxy/quic_tls.h:557,1
    - Dst: qc_frm_unref
      Src: /src/haproxy/include/haproxy/quic_tls.h:559,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/include/haproxy/quic_tls.h:560,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/include/haproxy/quic_tls.h:561,1
    - Dst: qc_frm_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:563,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/include/haproxy/quic_tls.h:565,1
    - Dst: eb64_delete
      Src: /src/haproxy/include/haproxy/quic_tls.h:568,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/include/haproxy/quic_tls.h:569,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/include/haproxy/quic_tls.h:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - pktns
    - qc
    - resend
    argTypes:
    - struct quic_pktns*
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 573
    functionName: quic_pktns_tx_pkts_release
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached:
    - qc_frm_unref
    - eb64_next
    - eb64_entry
    - TRACE_LEAVE
    - eb64_delete
    - LIST_DEL_INIT
    - list_for_each_entry_safe
    - TRACE_DEVEL
    - TRACE_ENTER
    - eb64_first
    - quic_tx_packet_refdec
    - qc_frm_free
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: "void quic_pktns_tx_pkts_release(struct quic_pktns *pktns,\n                                              struct
      quic_conn *qc, int resend)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/include/haproxy/quic_tls.h:588,1
    - Dst: quic_pktns_tx_pkts_release
      Src: /src/haproxy/include/haproxy/quic_tls.h:602,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/include/haproxy/quic_tls.h:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - pktns
    - qc
    - resend
    argTypes:
    - struct quic_pktns*
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 605
    functionName: quic_pktns_discard
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 4
    functionsReached:
    - quic_pktns_tx_pkts_release
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: "void quic_pktns_discard(struct quic_pktns *pktns,\n                                      struct
      quic_conn *qc, int resend)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/include/haproxy/quic_tls.h:614,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/include/haproxy/quic_tls.h:619,1
    - Dst: qc_frm_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:620,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/include/haproxy/quic_tls.h:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - qc
    - pktns
    argTypes:
    - struct quic_conn*
    - struct quic_pktns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 624
    functionName: qc_release_pktns_frms
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 5
    functionsReached:
    - list_for_each_entry_safe
    - qc_frm_free
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: "void qc_release_pktns_frms(struct quic_conn *qc,\n                                         struct
      quic_pktns *pktns)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pktns
    - qc
    argTypes:
    - struct quic_pktns*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 633
    functionName: quic_application_pktns
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_application_pktns(struct quic_pktns *pktns, struct quic_conn
      *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb64_last
      Src: /src/haproxy/include/haproxy/quic_tls.h:638,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_tls.h:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pktns
    argTypes:
    - struct quic_pktns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 644
    functionName: quic_pktns_get_largest_acked_pn
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached:
    - eb64_last
    - eb64_entry
    linkageType: ''
    returnType: int64_t
    signature: int64_t quic_pktns_get_largest_acked_pn(struct quic_pktns *pktns)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - qc
    - pktns
    argTypes:
    - struct quic_conn*
    - struct quic_pktns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 661
    functionName: quic_pktns_char
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char quic_pktns_char(const struct quic_conn *qc,\n                                   const
      struct quic_pktns *pktns)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - packet_type
    argTypes:
    - enum quic_pkt_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 684
    functionName: quic_packet_type_enc_level
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: enum quic_tls_enc_level
    signature: enum quic_tls_enc_level quic_packet_type_enc_level(enum quic_pkt_type
      packet_type)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - level
    argTypes:
    - enum quic_tls_enc_level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 699
    functionName: quic_tls_pktns
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum quic_tls_pktns
    signature: enum quic_tls_pktns quic_tls_pktns(enum quic_tls_enc_level level)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - qc
    - pktns
    argTypes:
    - struct quic_conn*
    - struct quic_pktns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 714
    functionName: quic_tls_pktns_is_dcd
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_tls_pktns_is_dcd(struct quic_conn *qc, struct quic_pktns *pktns)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - qc
    - type
    argTypes:
    - struct quic_conn*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 726
    functionName: quic_tls_pkt_type_pktns_dcd
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_tls_pkt_type_pktns_dcd(struct quic_conn *qc, unsigned char
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - qc
    - qel
    - type
    - version
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level*
    - unsigned char
    - struct quic_version*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 739
    functionName: qc_select_tls_ctx
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct quic_tls_ctx
    signature: "struct quic_tls_ctx *qc_select_tls_ctx(struct quic_conn *qc,\n                                                     struct
      quic_enc_level *qel,\n                                                     unsigned
      char type,\n                                                     const struct
      quic_version *version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct quic_tls_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 772
    functionName: quic_tls_ctx_reset
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_tls_ctx_reset(struct quic_tls_ctx *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/include/haproxy/quic_tls.h:784,1
    - Dst: memset
      Src: /src/haproxy/include/haproxy/quic_tls.h:788,1
    - Dst: memset
      Src: /src/haproxy/include/haproxy/quic_tls.h:792,1
    - Dst: memset
      Src: /src/haproxy/include/haproxy/quic_tls.h:796,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:803,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:805,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:808,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:809,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:810,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:815,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:817,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:820,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:821,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:822,1
    - Dst: quic_tls_ctx_reset
      Src: /src/haproxy/include/haproxy/quic_tls.h:824,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct quic_tls_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 825
    functionName: quic_tls_ctx_secs_free
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 3
    functionsReached:
    - EVP_CIPHER_CTX_free
    - memset
    - quic_tls_ctx_reset
    - QUIC_AEAD_CTX_free
    - pool_free
    linkageType: ''
    returnType: void
    signature: void quic_tls_ctx_secs_free(struct quic_tls_ctx *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_tls.h:835,1
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_tls.h:836,1
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_tls.h:843,1
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_tls.h:844,1
    - Dst: quic_tls_ctx_secs_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:853,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct quic_tls_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 855
    functionName: quic_tls_ctx_keys_alloc
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 0
    functionsReached:
    - pool_alloc
    - quic_tls_ctx_secs_free
    linkageType: ''
    returnType: int
    signature: int quic_tls_ctx_keys_alloc(struct quic_tls_ctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/include/haproxy/quic_tls.h:861,1
    - Dst: memset
      Src: /src/haproxy/include/haproxy/quic_tls.h:866,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:871,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:873,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:874,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - secs
    argTypes:
    - struct quic_tls_secrets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 878
    functionName: quic_tls_secrets_keys_free
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    - memset
    - QUIC_AEAD_CTX_free
    - pool_free
    linkageType: ''
    returnType: void
    signature: void quic_tls_secrets_keys_free(struct quic_tls_secrets *secs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_tls.h:885,1
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_tls.h:886,1
    - Dst: quic_tls_secrets_keys_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - secs
    argTypes:
    - struct quic_tls_secrets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 897
    functionName: quic_tls_secrets_keys_alloc
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached:
    - quic_tls_secrets_keys_free
    - pool_alloc
    linkageType: ''
    returnType: int
    signature: int quic_tls_secrets_keys_alloc(struct quic_tls_secrets *secs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_tls_ctx_secs_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:904,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 907
    functionName: quic_nictx_free
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached:
    - pool_free
    - quic_tls_ctx_secs_free
    linkageType: ''
    returnType: void
    signature: void quic_nictx_free(struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aead_aes_128_gcm
      Src: /src/haproxy/include/haproxy/quic_tls.h:913,1
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/include/haproxy/quic_tls.h:915,1
    - Dst: EVP_sha256
      Src: /src/haproxy/include/haproxy/quic_tls.h:917,1
    - Dst: EVP_aes_128_ctr
      Src: /src/haproxy/include/haproxy/quic_tls.h:918,1
    - Dst: quic_tls_ctx_keys_alloc
      Src: /src/haproxy/include/haproxy/quic_tls.h:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct quic_tls_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 935
    functionName: quic_initial_tls_ctx_init
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 0
    functionsReached:
    - EVP_aes_128_gcm
    - EVP_aead_aes_128_gcm
    - quic_tls_ctx_keys_alloc
    - EVP_aes_128_ctr
    - EVP_sha256
    linkageType: ''
    returnType: int
    signature: int quic_initial_tls_ctx_init(struct quic_tls_ctx *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - level
    argTypes:
    - enum quic_tls_enc_level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 951
    functionName: quic_tls_level_pkt_type
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_tls_level_pkt_type(enum quic_tls_enc_level level)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - qc
    - qel
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 969
    functionName: quic_enc_level_pkt_type
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum quic_pkt_type
    signature: "enum quic_pkt_type quic_enc_level_pkt_type(struct quic_conn *qc,\n
      \                                                        struct quic_enc_level
      *qel)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/include/haproxy/quic_tls.h:988,1
    - Dst: quic_initial_tls_ctx_init
      Src: /src/haproxy/include/haproxy/quic_tls.h:989,1
    - Dst: quic_derive_initial_secret
      Src: /src/haproxy/include/haproxy/quic_tls.h:992,1
    - Dst: quic_tls_derive_initial_secrets
      Src: /src/haproxy/include/haproxy/quic_tls.h:998,1
    - Dst: quic_tls_derive_keys
      Src: /src/haproxy/include/haproxy/quic_tls.h:1006,1
    - Dst: quic_tls_rx_ctx_init
      Src: /src/haproxy/include/haproxy/quic_tls.h:1013,1
    - Dst: quic_tls_enc_hp_ctx_init
      Src: /src/haproxy/include/haproxy/quic_tls.h:1016,1
    - Dst: quic_tls_derive_keys
      Src: /src/haproxy/include/haproxy/quic_tls.h:1019,1
    - Dst: quic_tls_tx_ctx_init
      Src: /src/haproxy/include/haproxy/quic_tls.h:1026,1
    - Dst: quic_tls_enc_hp_ctx_init
      Src: /src/haproxy/include/haproxy/quic_tls.h:1029,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/include/haproxy/quic_tls.h:1032,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/include/haproxy/quic_tls.h:1037,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 6
    argNames:
    - qc
    - ctx
    - ver
    - cid
    - cidlen
    - server
    argTypes:
    - struct quic_conn*
    - struct quic_tls_ctx*
    - struct quic_version*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 977
    functionDepth: 4
    functionLinenumber: 977
    functionLinenumberEnd: 1039
    functionName: qc_new_isecs
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 3
    functionsReached:
    - quic_initial_tls_ctx_init
    - quic_derive_initial_secret
    - quic_tls_tx_ctx_init
    - TRACE_LEAVE
    - TRACE_DEVEL
    - TRACE_ENTER
    - quic_tls_derive_initial_secrets
    - quic_tls_derive_keys
    - quic_tls_rx_ctx_init
    - quic_tls_enc_hp_ctx_init
    linkageType: ''
    returnType: int
    signature: "int qc_new_isecs(struct quic_conn *qc,\n                               struct
      quic_tls_ctx *ctx, const struct quic_version *ver,\n                               const
      unsigned char *cid, size_t cidlen, int server)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls_kp
    argTypes:
    - struct quic_tls_kp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1048
    functionName: quic_tls_ku_reset
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_tls_ku_reset(struct quic_tls_kp *tls_kp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1056,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1057,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1058,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1059,1
    - Dst: quic_tls_ku_reset
      Src: /src/haproxy/include/haproxy/quic_tls.h:1060,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1061,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1062,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1063,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1064,1
    - Dst: quic_tls_ku_reset
      Src: /src/haproxy/include/haproxy/quic_tls.h:1065,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1066,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1067,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1068,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_tls.h:1069,1
    - Dst: quic_tls_ku_reset
      Src: /src/haproxy/include/haproxy/quic_tls.h:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1071
    functionName: quic_tls_ku_free
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached:
    - quic_tls_ku_reset
    - QUIC_AEAD_CTX_free
    - pool_free
    linkageType: ''
    returnType: void
    signature: void quic_tls_ku_free(struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_tls.h:1083,1
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_tls.h:1085,1
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_tls.h:1087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - kp
    argTypes:
    - struct quic_tls_kp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1091
    functionName: quic_tls_kp_init
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 0
    functionsReached:
    - pool_alloc
    linkageType: ''
    returnType: int
    signature: int quic_tls_kp_init(struct quic_tls_kp *kp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_tls_kp_init
      Src: /src/haproxy/include/haproxy/quic_tls.h:1105,1
    - Dst: quic_tls_kp_init
      Src: /src/haproxy/include/haproxy/quic_tls.h:1106,1
    - Dst: quic_tls_kp_init
      Src: /src/haproxy/include/haproxy/quic_tls.h:1107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1099
    functionDepth: 2
    functionLinenumber: 1099
    functionLinenumberEnd: 1114
    functionName: quic_tls_ku_init
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached:
    - quic_tls_kp_init
    linkageType: ''
    returnType: int
    signature: int quic_tls_ku_init(struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - qel
    argTypes:
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1120
    functionName: quic_tls_has_rx_sec
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_tls_has_rx_sec(const struct quic_enc_level *qel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - qel
    argTypes:
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1126
    functionName: quic_tls_has_tx_sec
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_tls_has_tx_sec(const struct quic_enc_level *qel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/include/haproxy/quic_tls.h:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - qel
    argTypes:
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1136
    functionName: qc_el_rx_pkts
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 0
    functionsReached:
    - eb_is_empty
    linkageType: ''
    returnType: int
    signature: int qc_el_rx_pkts(struct quic_enc_level *qel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_first
      Src: /src/haproxy/include/haproxy/quic_tls.h:1143,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_tls.h:1146,1
    - Dst: eb64_next
      Src: /src/haproxy/include/haproxy/quic_tls.h:1148,1
    - Dst: eb64_delete
      Src: /src/haproxy/include/haproxy/quic_tls.h:1149,1
    - Dst: quic_rx_packet_refdec
      Src: /src/haproxy/include/haproxy/quic_tls.h:1150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - qel
    argTypes:
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1152
    functionName: qc_el_rx_pkts_del
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 4
    functionsReached:
    - eb64_next
    - eb64_entry
    - quic_rx_packet_refdec
    - eb64_delete
    - eb64_first
    linkageType: ''
    returnType: void
    signature: void qc_el_rx_pkts_del(struct quic_enc_level *qel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_first
      Src: /src/haproxy/include/haproxy/quic_tls.h:1158,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_tls.h:1162,1
    - Dst: fprintf
      Src: /src/haproxy/include/haproxy/quic_tls.h:1163,1
    - Dst: eb64_next
      Src: /src/haproxy/include/haproxy/quic_tls.h:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - qel
    argTypes:
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1167
    functionName: qc_list_qel_rx_pkts
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 0
    functionsReached:
    - fprintf
    - eb64_next
    - eb64_entry
    - eb64_first
    linkageType: ''
    returnType: void
    signature: void qc_list_qel_rx_pkts(struct quic_enc_level *qel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/quic_tls.h:1175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - qc
    - qel
    argTypes:
    - struct quic_conn*
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1176
    functionName: qc_need_sending
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached:
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int qc_need_sending(struct quic_conn *qc, struct quic_enc_level *qel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/include/haproxy/quic_tls.h:1184,1
    - Dst: quic_may_send_bytes
      Src: /src/haproxy/include/haproxy/quic_tls.h:1185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1182
    functionDepth: 2
    functionLinenumber: 1182
    functionLinenumberEnd: 1186
    functionName: qc_may_probe_ipktns
    functionSourceFile: /src/haproxy/include/haproxy/quic_tls.h
    functionUses: 1
    functionsReached:
    - quic_peer_validated_addr
    - quic_may_send_bytes
    linkageType: ''
    returnType: int
    signature: int qc_may_probe_ipktns(struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: HLUA_SET_RUN
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_SET_RUN(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: HLUA_CLR_RUN
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_CLR_RUN(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: HLUA_IS_RUNNING
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_IS_RUNNING(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: HLUA_SET_BUSY
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_SET_BUSY(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: HLUA_CLR_BUSY
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_CLR_BUSY(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: HLUA_IS_BUSY
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_IS_BUSY(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: HLUA_SET_CTRLYIELD
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_SET_CTRLYIELD(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: HLUA_CLR_CTRLYIELD
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_CLR_CTRLYIELD(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: HLUA_IS_CTRLYIELDING
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_IS_CTRLYIELDING(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: HLUA_SET_WAKERESWR
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_SET_WAKERESWR(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: HLUA_CLR_WAKERESWR
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_CLR_WAKERESWR(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: HLUA_IS_WAKERESWR
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_IS_WAKERESWR(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: HLUA_SET_WAKEREQWR
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_SET_WAKEREQWR(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: HLUA_CLR_WAKEREQWR
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_CLR_WAKEREQWR(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: HLUA_IS_WAKEREQWR
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_IS_WAKEREQWR(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: HLUA_CLR_NOYIELD
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_CLR_NOYIELD(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: HLUA_SET_NOYIELD
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_SET_NOYIELD(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: HLUA_CANT_YIELD
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_CANT_YIELD(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: HLUA_INIT
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_INIT(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __hlua
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: HLUA_IS_RUNNING
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_IS_RUNNING(__hlua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: hlua_init
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hlua_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: hlua_post_init
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlua_post_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: hlua_ctx_destroy
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hlua_ctx_destroy(struct hlua *lua)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pfx
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: hlua_show_current_location
    functionSourceFile: /src/haproxy/include/haproxy/hlua.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *hlua_show_current_location(const char *pfx)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - msg_state
    argTypes:
    - enum h1_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: h1_msg_state_str
    functionSourceFile: /src/haproxy/include/haproxy/http_ana.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *h1_msg_state_str(enum h1_state msg_state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/include/haproxy/h1_htx.h:50,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/include/haproxy/h1_htx.h:52,1
    - Dst: http_parse_path
      Src: /src/haproxy/include/haproxy/h1_htx.h:53,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/h1_htx.h:54,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h1_htx.h:56,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h1_htx.h:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: h1_get_uri
    functionSourceFile: /src/haproxy/include/haproxy/h1_htx.h
    functionUses: 2
    functionsReached:
    - unlikely
    - ist
    - http_uri_parser_init
    - http_parse_path
    - htx_sl_req_uri
    linkageType: ''
    returnType: struct ist
    signature: struct ist h1_get_uri(const struct htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: IS_HTX_STRM
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_HTX_STRM(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: strm_sess
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: struct session
    signature: struct session *strm_sess(const struct stream *strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: strm_fe
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *strm_fe(const struct stream *strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: strm_li
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: struct listener
    signature: struct listener *strm_li(const struct stream *strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: strm_orig
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: enum obj_type
    signature: enum obj_type *strm_orig(const struct stream *strm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/stream.h:117,1
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stream.h:121,1
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stream.h:125,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stream.h:128,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stream.h:130,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:132,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:133,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stream.h:135,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stream.h:138,1
    - Dst: stkctr_set_entry
      Src: /src/haproxy/include/haproxy/stream.h:140,1
    - Dst: stksess_kill_if_expired
      Src: /src/haproxy/include/haproxy/stream.h:141,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 143
    functionName: stream_store_counters
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 1
    functionsReached:
    - unlikely
    - stkctr_entry
    - stkctr_set_entry
    - HA_RWLOCK_WRUNLOCK
    - stksess_kill_if_expired
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void stream_store_counters(struct stream *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/stream.h:156,1
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stream.h:160,1
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stream.h:164,1
    - Dst: stkctr_flags
      Src: /src/haproxy/include/haproxy/stream.h:167,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stream.h:170,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stream.h:172,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:174,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:175,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stream.h:177,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stream.h:180,1
    - Dst: stkctr_set_entry
      Src: /src/haproxy/include/haproxy/stream.h:182,1
    - Dst: stksess_kill_if_expired
      Src: /src/haproxy/include/haproxy/stream.h:183,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 185
    functionName: stream_stop_content_counters
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 1
    functionsReached:
    - unlikely
    - stkctr_entry
    - stkctr_flags
    - HA_RWLOCK_WRUNLOCK
    - stkctr_set_entry
    - stksess_kill_if_expired
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void stream_stop_content_counters(struct stream *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stream.h:195,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stream.h:197,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:199,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stream.h:201,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:203,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stream.h:205,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/include/haproxy/stream.h:207,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:207,1
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/stream.h:209,1
    - Dst: tick_add
      Src: /src/haproxy/include/haproxy/stream.h:210,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/include/haproxy/stream.h:210,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stream.h:212,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stream.h:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 216
    functionName: stream_start_counters
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 0
    functionsReached:
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - MS_TO_TICKS
    - tick_isset
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - tick_add
    linkageType: ''
    returnType: void
    signature: void stream_start_counters(struct stktable *t, struct stksess *ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stream.h:225,1
    - Dst: stkctr_set_entry
      Src: /src/haproxy/include/haproxy/stream.h:229,1
    - Dst: stream_start_counters
      Src: /src/haproxy/include/haproxy/stream.h:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctr
    - t
    - ts
    argTypes:
    - struct stkctr*
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 231
    functionName: stream_track_stkctr
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 2
    functionsReached:
    - stkctr_entry
    - stkctr_set_entry
    - stream_start_counters
    linkageType: ''
    returnType: void
    signature: void stream_track_stkctr(struct stkctr *ctr, struct stktable *t, struct
      stksess *ts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/stream.h:238,1
    - Dst: stkctr_inc_http_req_ctr
      Src: /src/haproxy/include/haproxy/stream.h:242,1
    - Dst: stkctr_inc_http_req_ctr
      Src: /src/haproxy/include/haproxy/stream.h:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 245
    functionName: stream_inc_http_req_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 1
    functionsReached:
    - unlikely
    - stkctr_inc_http_req_ctr
    linkageType: ''
    returnType: void
    signature: void stream_inc_http_req_ctr(struct stream *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/stream.h:254,1
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stream.h:258,1
    - Dst: stkctr_flags
      Src: /src/haproxy/include/haproxy/stream.h:258,1
    - Dst: stkctr_inc_http_req_ctr
      Src: /src/haproxy/include/haproxy/stream.h:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 263
    functionName: stream_inc_be_http_req_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 1
    functionsReached:
    - unlikely
    - stkctr_entry
    - stkctr_flags
    - stkctr_inc_http_req_ctr
    linkageType: ''
    returnType: void
    signature: void stream_inc_be_http_req_ctr(struct stream *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/stream.h:275,1
    - Dst: stkctr_inc_http_err_ctr
      Src: /src/haproxy/include/haproxy/stream.h:279,1
    - Dst: stkctr_inc_http_err_ctr
      Src: /src/haproxy/include/haproxy/stream.h:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: stream_inc_http_err_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 4
    functionsReached:
    - unlikely
    - stkctr_inc_http_err_ctr
    linkageType: ''
    returnType: void
    signature: void stream_inc_http_err_ctr(struct stream *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/stream.h:293,1
    - Dst: stkctr_inc_http_fail_ctr
      Src: /src/haproxy/include/haproxy/stream.h:297,1
    - Dst: stkctr_inc_http_fail_ctr
      Src: /src/haproxy/include/haproxy/stream.h:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: stream_inc_http_fail_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 4
    functionsReached:
    - unlikely
    - stkctr_inc_http_fail_ctr
    linkageType: ''
    returnType: void
    signature: void stream_inc_http_fail_ctr(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_INSERT
      Src: /src/haproxy/include/haproxy/stream.h:310,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/stream.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - strm
    - srv
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: stream_add_srv_conn
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 2
    functionsReached:
    - MT_LIST_INSERT
    - HA_ATOMIC_STORE
    linkageType: ''
    returnType: void
    signature: void stream_add_srv_conn(struct stream *strm, struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/include/haproxy/stream.h:321,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/stream.h:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 323
    functionName: stream_del_srv_conn
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 2
    functionsReached:
    - MT_LIST_DELETE
    - HA_ATOMIC_STORE
    linkageType: ''
    returnType: void
    signature: void stream_del_srv_conn(struct stream *strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/include/haproxy/stream.h:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: stream_init_srv_conn
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 1
    functionsReached:
    - MT_LIST_INIT
    linkageType: ''
    returnType: void
    signature: void stream_init_srv_conn(struct stream *strm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/stream.h:345,1
    - Dst: __objt_server
      Src: /src/haproxy/include/haproxy/stream.h:347,1
    - Dst: sess_change_server
      Src: /src/haproxy/include/haproxy/stream.h:354,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/include/haproxy/stream.h:355,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/stream.h:355,1
    - Dst: process_srv_queue
      Src: /src/haproxy/include/haproxy/stream.h:356,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/stream.h:356,1
    - Dst: sockaddr_free
      Src: /src/haproxy/include/haproxy/stream.h:358,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/stream.h:363,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/stream.h:365,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 369
    functionName: stream_choose_redispatch
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 2
    functionsReached:
    - __objt_server
    - may_dequeue_tasks
    - _HA_ATOMIC_INC
    - process_srv_queue
    - sockaddr_free
    - objt_server
    - sess_change_server
    linkageType: ''
    returnType: void
    signature: void stream_choose_redispatch(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/include/haproxy/stream.h:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 385
    functionName: stream_check_conn_timeout
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 1
    functionsReached:
    - tick_is_expired
    linkageType: ''
    returnType: int
    signature: int stream_check_conn_timeout(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/include/haproxy/stream.h:399,1
    - Dst: task_wakeup
      Src: /src/haproxy/include/haproxy/stream.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - why
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 404
    functionName: stream_shutdown
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 3
    functionsReached:
    - task_wakeup
    - HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void stream_shutdown(struct stream *s, int why)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 419
    functionName: stream_map_task_state
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int stream_map_task_state(unsigned int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_strm
      Src: /src/haproxy/include/haproxy/stream.h:423,1
    - Dst: tevt_report_event
      Src: /src/haproxy/include/haproxy/stream.h:431,1
    - Dst: tevt_report_event
      Src: /src/haproxy/include/haproxy/stream.h:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sc
    - type
    argTypes:
    - struct stconn*
    - enum strm_term_event_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 433
    functionName: stream_report_term_evt
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 12
    functionsReached:
    - sc_strm
    - tevt_report_event
    linkageType: ''
    returnType: void
    signature: void stream_report_term_evt(struct stconn *sc, enum strm_term_event_type
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - srv
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: stream_set_srv_target
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stream_set_srv_target(struct stream *s, struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: SSL_SOCK_CA_ERROR_TO_ST
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SOCK_CA_ERROR_TO_ST(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: SSL_SOCK_CAEDEPTH_TO_ST
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SOCK_CAEDEPTH_TO_ST(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: SSL_SOCK_CRTERROR_TO_ST
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SOCK_CRTERROR_TO_ST(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: SSL_SOCK_ST_TO_CA_ERROR
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock-t.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SOCK_ST_TO_CA_ERROR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: SSL_SOCK_ST_TO_CAEDEPTH
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SOCK_ST_TO_CAEDEPTH(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: SSL_SOCK_ST_TO_CRTERROR
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock-t.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SOCK_ST_TO_CRTERROR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:109,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:111,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:111,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:111,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:112,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:112,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:112,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:112,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:113,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:115,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:115,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:116,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:116,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:117,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:117,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:118,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:120,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:120,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:121,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:121,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:122,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:122,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:123,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:123,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:124,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:124,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:125,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:125,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:127,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:127,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:127,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:127,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:127,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:129,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:129,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:129,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:131,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:131,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 138
    functionName: strm_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/stream-t.h
    functionUses: 1
    functionsReached:
    - _
    - _e
    linkageType: ''
    returnType: forceinline
    signature: forceinline *strm_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/stream-t.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - e
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: _e
    functionSourceFile: /src/haproxy/include/haproxy/stream-t.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _e(m, e, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:201,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:203,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:203,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:203,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:204,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:204,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:204,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:205,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:205,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:205,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:206,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:206,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: strm_et_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/stream-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *strm_et_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/stream-t.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/log.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: lf_expr_isempty
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 21
    functionsReached:
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int lf_expr_isempty(const struct lf_expr *expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - enum log_orig_id
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: log_orig
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: struct log_orig
    signature: struct log_orig log_orig(enum log_orig_id id, uint16_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/include/haproxy/log.h:107,1
    - Dst: log_orig
      Src: /src/haproxy/include/haproxy/log.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - sess
    - s
    - dst
    - maxsize
    - lf_expr
    argTypes:
    - struct session*
    - struct stream*
    - char*
    - size_t
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 9
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: sess_build_logline
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 9
    functionsReached:
    - log_orig
    - sess_build_logline_orig
    linkageType: ''
    returnType: size_t
    signature: "size_t sess_build_logline(struct session *sess, struct stream *s,
      char *dst, size_t maxsize,\n                                     const struct
      lf_expr *lf_expr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sess_log
      Src: /src/haproxy/include/haproxy/log.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 10
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: sess_log
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 8
    functionsReached:
    - _sess_log
    linkageType: ''
    returnType: void
    signature: void sess_log(struct session *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sess_log
      Src: /src/haproxy/include/haproxy/log.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 10
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: sess_log_embryonic
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 1
    functionsReached:
    - _sess_log
    linkageType: ''
    returnType: void
    signature: void sess_log_embryonic(struct session *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/include/haproxy/log.h:203,1
    - Dst: generate_unique_id
      Src: /src/haproxy/include/haproxy/log.h:204,1
    - Dst: strm_sess
      Src: /src/haproxy/include/haproxy/log.h:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - strm
    - format
    argTypes:
    - struct stream*
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: stream_generate_unique_id
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 5
    functionsReached:
    - generate_unique_id
    - strm_sess
    - isttest
    linkageType: ''
    returnType: struct ist
    signature: struct ist stream_generate_unique_id(struct stream *strm, struct lf_expr
      *format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/include/haproxy/log.h:216,1
    - Dst: strm_sess
      Src: /src/haproxy/include/haproxy/log.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - dst
    - maxsize
    - lf_expr
    - orig
    argTypes:
    - struct stream*
    - char*
    - size_t
    - struct lf_expr*
    - struct log_orig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 9
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: build_logline_orig
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 6
    functionsReached:
    - strm_sess
    - sess_build_logline_orig
    linkageType: ''
    returnType: size_t
    signature: "size_t build_logline_orig(struct stream *s, char *dst, size_t maxsize,\n
      \                                    const struct lf_expr *lf_expr, struct log_orig
      orig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build_logline_orig
      Src: /src/haproxy/include/haproxy/log.h:224,1
    - Dst: log_orig
      Src: /src/haproxy/include/haproxy/log.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - dst
    - maxsize
    - lf_expr
    argTypes:
    - struct stream*
    - char*
    - size_t
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 10
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: build_logline
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 20
    functionsReached:
    - log_orig
    - build_logline_orig
    linkageType: ''
    returnType: size_t
    signature: size_t build_logline(struct stream *s, char *dst, size_t maxsize, const
      struct lf_expr *lf_expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/log.h:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: log_forward_by_name
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *log_forward_by_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: memprof_remove_stale_info
    functionSourceFile: /src/haproxy/include/haproxy/activity.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void memprof_remove_stale_info(const void *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: qpack_alloc
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: qpack_alloc(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: qpack_free
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: qpack_free(pool, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: qpack_alloc
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: qpack_alloc(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: qpack_free
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: qpack_free(pool, ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dht
    - idx
    argTypes:
    - struct qpack_dht*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: qpack_get_dte
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct qpack_dte
    signature: struct qpack_dte *qpack_get_dte(const struct qpack_dht *dht, uint16_t
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dht
    - idx
    argTypes:
    - struct qpack_dht*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: qpack_valid_idx
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qpack_valid_idx(const struct qpack_dht *dht, uint32_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dht
    - dte
    argTypes:
    - struct qpack_dht*
    - struct qpack_dte*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: qpack_get_name
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ist
    signature: struct ist qpack_get_name(const struct qpack_dht *dht, const struct
      qpack_dte *dte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dht
    - dte
    argTypes:
    - struct qpack_dht*
    - struct qpack_dte*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: qpack_get_value
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ist
    signature: struct ist qpack_get_value(const struct qpack_dht *dht, const struct
      qpack_dte *dte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:102,1
    - Dst: qpack_get_dte
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:104,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:106,1
    - Dst: qpack_get_name
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dht
    - idx
    argTypes:
    - struct qpack_dht*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: qpack_idx_to_name
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 1
    functionsReached:
    - qpack_get_dte
    - ist
    - qpack_get_name
    linkageType: ''
    returnType: struct ist
    signature: struct ist qpack_idx_to_name(const struct qpack_dht *dht, uint32_t
      idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:117,1
    - Dst: qpack_get_dte
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:119,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:121,1
    - Dst: qpack_get_value
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dht
    - idx
    argTypes:
    - struct qpack_dht*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: qpack_idx_to_value
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 1
    functionsReached:
    - qpack_get_dte
    - ist
    - qpack_get_value
    linkageType: ''
    returnType: struct ist
    signature: struct ist qpack_idx_to_value(const struct qpack_dht *dht, uint32_t
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dht
    argTypes:
    - struct qpack_dht*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: qpack_dht_get_tail
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int qpack_dht_get_tail(const struct qpack_dht *dht)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __qpack_dht_make_room
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dht
    - needed
    argTypes:
    - struct qpack_dht*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: qpack_dht_make_room
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 2
    functionsReached:
    - __qpack_dht_make_room
    linkageType: ''
    returnType: int
    signature: int qpack_dht_make_room(struct qpack_dht *dht, unsigned int needed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dht
    - size
    argTypes:
    - struct qpack_dht*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: qpack_dht_init
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void qpack_dht_init(struct qpack_dht *dht, uint32_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:161,1
    - Dst: qpack_alloc
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:164,1
    - Dst: qpack_dht_init
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: qpack_dht_alloc
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 1
    functionsReached:
    - unlikely
    - qpack_alloc
    - qpack_dht_init
    linkageType: ''
    returnType: struct qpack_dht
    signature: struct qpack_dht *qpack_dht_alloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qpack_free
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dht
    argTypes:
    - struct qpack_dht*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: qpack_dht_free
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 1
    functionsReached:
    - qpack_free
    linkageType: ''
    returnType: void
    signature: void qpack_dht_free(struct qpack_dht *dht)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sample
    - req_type
    argTypes:
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: sample_convert
    functionSourceFile: /src/haproxy/include/haproxy/sample.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sample_convert(struct sample *sample, int req_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - smp
    - px
    - sess
    - strm
    - opt
    argTypes:
    - struct sample*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: smp_set_owner
    functionSourceFile: /src/haproxy/include/haproxy/sample.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: struct sample
    signature: "struct sample *smp_set_owner(struct sample *smp, struct proxy *px,\n
      \                            struct session *sess, struct stream *strm, int
      opt)"
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 132
    functionName: smp_is_safe
    functionSourceFile: /src/haproxy/include/haproxy/sample.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_is_safe(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_is_safe
      Src: /src/haproxy/include/haproxy/sample.h:141,1
    - Dst: smp_dup
      Src: /src/haproxy/include/haproxy/sample.h:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: smp_make_safe
    functionSourceFile: /src/haproxy/include/haproxy/sample.h
    functionUses: 7
    functionsReached:
    - smp_is_safe
    - smp_dup
    linkageType: ''
    returnType: int
    signature: int smp_make_safe(struct sample *smp)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 181
    functionName: smp_is_rw
    functionSourceFile: /src/haproxy/include/haproxy/sample.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_is_rw(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_is_rw
      Src: /src/haproxy/include/haproxy/sample.h:190,1
    - Dst: smp_dup
      Src: /src/haproxy/include/haproxy/sample.h:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: smp_make_rw
    functionSourceFile: /src/haproxy/include/haproxy/sample.h
    functionUses: 4
    functionsReached:
    - smp_is_rw
    - smp_dup
    linkageType: ''
    returnType: int
    signature: int smp_make_rw(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/haproxy/include/haproxy/http.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - path
    - path_l
    - delim
    argTypes:
    - char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: http_find_param_list
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 1
    functionsReached:
    - memchr
    linkageType: ''
    returnType: char
    signature: char *http_find_param_list(char *path, size_t path_l, char delim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - c
    - delim
    argTypes:
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: http_is_param_delimiter
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int http_is_param_delimiter(char c, char delim)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - range
    - range_len
    - tag
    - tag_len
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: http_language_range_match
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int http_language_range_match(const char *range, int range_len,\n
      \                                           const char *tag, int tag_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: istnmatch
      Src: /src/haproxy/include/haproxy/http.h:140,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/http.h:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - etag
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 144
    functionName: http_get_etag_type
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 2
    functionsReached:
    - ist
    - istnmatch
    linkageType: ''
    returnType: enum http_etag_type
    signature: enum http_etag_type http_get_etag_type(const struct ist etag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/http.h:160,1
    - Dst: istptr
      Src: /src/haproxy/include/haproxy/http.h:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 181
    functionName: http_uri_parser_init
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 24
    functionsReached:
    - istlen
    - istptr
    linkageType: ''
    returnType: struct http_uri_parser
    signature: struct http_uri_parser http_uri_parser_init(const struct ist uri)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: istend
      Src: /src/haproxy/include/haproxy/http.h:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ist
    - start
    argTypes:
    - struct ist
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: http_header_has_forbidden_char
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 6
    functionsReached:
    - istend
    linkageType: ''
    returnType: int
    signature: int http_header_has_forbidden_char(const struct ist ist, const char
      *start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: istptr
      Src: /src/haproxy/include/haproxy/http.h:205,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/include/haproxy/http.h:208,1
    - Dst: istend
      Src: /src/haproxy/include/haproxy/http.h:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 213
    functionName: http_method_has_forbidden_char
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 1
    functionsReached:
    - HTTP_IS_TOKEN
    - istend
    - istptr
    linkageType: ''
    returnType: int
    signature: int http_method_has_forbidden_char(const struct ist ist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istend
      Src: /src/haproxy/include/haproxy/http.h:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ist
    - start
    argTypes:
    - struct ist
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: http_path_has_forbidden_char
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 2
    functionsReached:
    - istend
    linkageType: ''
    returnType: int
    signature: int http_path_has_forbidden_char(const struct ist ist, const char *start)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/http.h:249,1
    - Dst: istptr
      Src: /src/haproxy/include/haproxy/http.h:250,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/http.h:264,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 12
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 285
    functionName: http_authority_has_forbidden_char
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 4
    functionsReached:
    - unlikely
    - istlen
    - istptr
    linkageType: ''
    returnType: int
    signature: int http_authority_has_forbidden_char(const struct ist ist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_bit_test
      Src: /src/haproxy/include/haproxy/http.h:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - array
    - status
    argTypes:
    - long*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: http_status_matches
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 2
    functionsReached:
    - ha_bit_test
    linkageType: ''
    returnType: int
    signature: int http_status_matches(const long *array, uint status)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http.h:307,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/http.h:307,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http.h:309,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/http.h:309,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http.h:310,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/http.h:310,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http.h:312,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/http.h:312,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http.h:313,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/http.h:313,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http.h:315,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/http.h:315,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http.h:317,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/http.h:317,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http.h:319,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/http.h:319,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http.h:321,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/http.h:321,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http.h:323,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/http.h:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 327
    functionName: is_immutable_header
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 2
    functionsReached:
    - isteqi
    - ist
    linkageType: ''
    returnType: int
    signature: int is_immutable_header(struct ist hdr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/include/haproxy/http.h:345,1
    - Dst: http_find_hdr_value_end
      Src: /src/haproxy/include/haproxy/http.h:348,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/include/haproxy/http.h:352,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http.h:355,1
    - Dst: istcat
      Src: /src/haproxy/include/haproxy/http.h:365,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - hv
    - value
    argTypes:
    - struct ist*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 371
    functionName: http_remove_header_value
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 1
    functionsReached:
    - istcat
    - isteqi
    - http_find_hdr_value_end
    - HTTP_IS_LWS
    linkageType: ''
    returnType: void
    signature: void http_remove_header_value(struct ist *hv, struct ist value)
  - 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: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: STRESS_RUN1
    functionSourceFile: /src/haproxy/include/haproxy/stress.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRESS_RUN1(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: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: STRESS_RUN2
    functionSourceFile: /src/haproxy/include/haproxy/stress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRESS_RUN2(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: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: STRESS_RUN3
    functionSourceFile: /src/haproxy/include/haproxy/stress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRESS_RUN3(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: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: STRESS_RUN4
    functionSourceFile: /src/haproxy/include/haproxy/stress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRESS_RUN4(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: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: STRESS_RUN5
    functionSourceFile: /src/haproxy/include/haproxy/stress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRESS_RUN5(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: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: STRESS_RUN6
    functionSourceFile: /src/haproxy/include/haproxy/stress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRESS_RUN6(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: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: STRESS_RUN7
    functionSourceFile: /src/haproxy/include/haproxy/stress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRESS_RUN7(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: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: STRESS_RUN8
    functionSourceFile: /src/haproxy/include/haproxy/stress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRESS_RUN8(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: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: STRESS_RUN9
    functionSourceFile: /src/haproxy/include/haproxy/stress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRESS_RUN9(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:70,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:72,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:72,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:73,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:73,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:74,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:74,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:75,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:75,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:76,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:76,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:77,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:77,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:77,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/applet-t.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 82
    functionName: appctx_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/applet-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *appctx_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/applet-t.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: be_usable_srv
    functionSourceFile: /src/haproxy/include/haproxy/backend.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int be_usable_srv(struct proxy *be)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: be_is_eligible
    functionSourceFile: /src/haproxy/include/haproxy/backend.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int be_is_eligible(const struct proxy *be)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ns_to_sec
      Src: /src/haproxy/include/haproxy/backend.h:106,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/backend.h:109,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/backend.h:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: be_set_sess_last
    functionSourceFile: /src/haproxy/include/haproxy/backend.h
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_STORE
    - ns_to_sec
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void be_set_sess_last(struct proxy *be)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 136
    functionName: srv_willbe_usable
    functionSourceFile: /src/haproxy/include/haproxy/backend.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_willbe_usable(const struct server *srv)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 160
    functionName: srv_currently_usable
    functionSourceFile: /src/haproxy/include/haproxy/backend.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_currently_usable(const struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: srv_lb_commit_status
    functionSourceFile: /src/haproxy/include/haproxy/backend.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void srv_lb_commit_status(struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: srv_lb_status_changed
    functionSourceFile: /src/haproxy/include/haproxy/backend.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_lb_status_changed(const struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: be_supports_conn_reuse
    functionSourceFile: /src/haproxy/include/haproxy/backend.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int be_supports_conn_reuse(const struct proxy *be)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ms
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: MS_TO_TICKS
    functionSourceFile: /src/haproxy/include/haproxy/ticks.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MS_TO_TICKS(ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: TICKS_TO_MS
    functionSourceFile: /src/haproxy/include/haproxy/ticks.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TICKS_TO_MS(tk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expire
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: tick_isset
    functionSourceFile: /src/haproxy/include/haproxy/ticks.h
    functionUses: 71
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tick_isset(int expire)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/ticks.h:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - now
    - timeout
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: tick_add
    functionSourceFile: /src/haproxy/include/haproxy/ticks.h
    functionUses: 85
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: int
    signature: int tick_add(int now, int timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tick_add
      Src: /src/haproxy/include/haproxy/ticks.h:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - now
    - timeout
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: tick_add_ifset
    functionSourceFile: /src/haproxy/include/haproxy/ticks.h
    functionUses: 21
    functionsReached:
    - tick_add
    linkageType: ''
    returnType: int
    signature: int tick_add_ifset(int now, int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: tick_is_lt
    functionSourceFile: /src/haproxy/include/haproxy/ticks.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tick_is_lt(int t1, int t2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: tick_is_le
    functionSourceFile: /src/haproxy/include/haproxy/ticks.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tick_is_le(int t1, int t2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/ticks.h:111,1
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/ticks.h:111,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/ticks.h:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - timer
    - now
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: tick_is_expired
    functionSourceFile: /src/haproxy/include/haproxy/ticks.h
    functionUses: 60
    functionsReached:
    - unlikely
    - tick_isset
    linkageType: ''
    returnType: int
    signature: int tick_is_expired(int timer, int now)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/ticks.h:121,1
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/ticks.h:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: tick_first
    functionSourceFile: /src/haproxy/include/haproxy/ticks.h
    functionUses: 26
    functionsReached:
    - tick_isset
    linkageType: ''
    returnType: int
    signature: int tick_first(int t1, int t2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/ticks.h:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: tick_first_2nz
    functionSourceFile: /src/haproxy/include/haproxy/ticks.h
    functionUses: 0
    functionsReached:
    - tick_isset
    linkageType: ''
    returnType: int
    signature: int tick_first_2nz(int t1, int t2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/include/haproxy/ticks.h:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - now
    - exp
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: tick_remain
    functionSourceFile: /src/haproxy/include/haproxy/ticks.h
    functionUses: 20
    functionsReached:
    - tick_is_expired
    linkageType: ''
    returnType: int
    signature: int tick_remain(int now, int exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/include/haproxy/quic_stream.h:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct qc_stream_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: qc_stream_desc_done
    functionSourceFile: /src/haproxy/include/haproxy/quic_stream.h
    functionUses: 2
    functionsReached:
    - eb_is_empty
    linkageType: ''
    returnType: int
    signature: int qc_stream_desc_done(const struct qc_stream_desc *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct qc_stream_desc*::notify_send
      Src: /src/haproxy/include/haproxy/quic_stream.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - stream
    - offset
    - len
    argTypes:
    - struct qc_stream_desc*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: qc_stream_desc_send
    functionSourceFile: /src/haproxy/include/haproxy/quic_stream.h
    functionUses: 2
    functionsReached:
    - struct qc_stream_desc*::notify_send
    linkageType: ''
    returnType: void
    signature: "void qc_stream_desc_send(struct qc_stream_desc *stream,\n                                       uint64_t
      offset, uint64_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct qc_stream_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: qc_stream_desc_sub_send
    functionSourceFile: /src/haproxy/include/haproxy/quic_stream.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void qc_stream_desc_sub_send(struct qc_stream_desc *stream,\n                                           void
      (*cb)(struct qc_stream_desc *s, uint64_t offset, uint64_t len))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct qc_stream_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: qc_stream_desc_sub_room
    functionSourceFile: /src/haproxy/include/haproxy/quic_stream.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void qc_stream_desc_sub_room(struct qc_stream_desc *stream,\n                                           void
      (*cb)(struct qc_stream_desc *s, uint64_t offset))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: SSL_quic_read_level
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_quic_read_level(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: OpenSSL_version
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenSSL_version(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: SSL_CTX_set_security_level
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_security_level(ctx, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: X509_get_X509_PUBKEY
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_get_X509_PUBKEY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/openssl-compat.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - s
    - sid_ctx
    - sid_ctx_len
    argTypes:
    - SSL_SESSION*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: SSL_SESSION_set1_id_context
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char
      *sid_ctx, unsigned int sid_ctx_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: X509_STORE_get0_objects
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *X509_STORE_get0_objects(X509_STORE *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: X509_OBJECT_get_type
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_OBJECT_get_type(const X509_OBJECT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: X509_OBJECT_get0_X509
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: X509_OBJECT_get0_X509_CRL
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/openssl-compat.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - s
    - sid
    - sid_len
    argTypes:
    - SSL_SESSION*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: SSL_SESSION_set1_id
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid, unsigned
      int sid_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: X509_get0_tbs_sigalg
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: X509_ALGOR
    signature: X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - single
    argTypes:
    - OCSP_SINGLERESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: OCSP_SINGLERESP_get0_id
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OCSP_CERTID
    signature: OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *single)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - dh
    - p
    - q
    - g
    argTypes:
    - DH*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: DH_set0_pqg
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: ASN1_STRING_get0_data
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_add
      Src: /src/haproxy/include/haproxy/openssl-compat.h:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: X509_up_ref
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 5
    functionsReached:
    - CRYPTO_add
    linkageType: ''
    returnType: void
    signature: void X509_up_ref(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_add
      Src: /src/haproxy/include/haproxy/openssl-compat.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: EVP_PKEY_up_ref
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 6
    functionsReached:
    - CRYPTO_add
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_up_ref(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_add
      Src: /src/haproxy/include/haproxy/openssl-compat.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: SSL_CTX_up_ref
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 4
    functionsReached:
    - CRYPTO_add
    linkageType: ''
    returnType: void
    signature: void SSL_CTX_up_ref(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/haproxy/include/haproxy/openssl-compat.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: X509_CRL_get_signature_nid
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int X509_CRL_get_signature_nid(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_get_lastUpdate
      Src: /src/haproxy/include/haproxy/openssl-compat.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: X509_CRL_get0_lastUpdate
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached:
    - X509_CRL_get_lastUpdate
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_get_nextUpdate
      Src: /src/haproxy/include/haproxy/openssl-compat.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: X509_CRL_get0_nextUpdate
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached:
    - X509_CRL_get_nextUpdate
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: X509_REVOKED_get0_serialNumber
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: X509_REVOKED_get0_revocationDate
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: X509_STORE_CTX_get0_cert
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/haproxy/include/haproxy/openssl-compat.h:351,1
    - Dst: BN_clear_free
      Src: /src/haproxy/include/haproxy/openssl-compat.h:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sig
    - r
    - s
    argTypes:
    - ECDSA_SIG*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 357
    functionName: ECDSA_SIG_set0
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_error
      Src: /src/haproxy/include/haproxy/openssl-compat.h:371,1
    - Dst: ERR_func_error_string
      Src: /src/haproxy/include/haproxy/openssl-compat.h:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - func
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 379
    functionName: ERR_peek_error_func
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 2
    functionsReached:
    - ERR_func_error_string
    - ERR_peek_error
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_error_func(const char **func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 385
    functionName: X509_STORE_getX_objects
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_getX_objects(x)
  - 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: 386
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 386
    functionName: sk_X509_OBJECT_popX_free
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sk_X509_OBJECT_popX_free(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: 388
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 388
    functionName: X509_STORE_getX_objects
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_STORE_getX_objects(x)
  - 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: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: sk_X509_OBJECT_popX_free
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sk_X509_OBJECT_popX_free(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: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    functionName: RAND_pseudo_bytes
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAND_pseudo_bytes(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: SSL_renegotiate_pending
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_renegotiate_pending(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - chain
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: SSL_CTX_get_extra_chain_certs
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_extra_chain_certs(ctx, chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: BIO_get_data
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_data(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    functionName: BIO_set_data
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_data(b, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 528
    functionName: BIO_set_init
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_init(b, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 530
    functionName: BIO_meth_free
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_free(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 531
    functionName: BIO_meth_new
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_new(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 532
    functionName: BIO_meth_set_gets
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_gets(m, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 533
    functionName: BIO_meth_set_puts
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_puts(m, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 534
    functionName: BIO_meth_set_read
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_read(m, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 535
    functionName: BIO_meth_set_write
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_write(m, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 536
    functionName: BIO_meth_set_create
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_create(m, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 537
    functionName: BIO_meth_set_ctrl
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_ctrl(m, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 538
    functionName: BIO_meth_set_destroy
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_destroy(m, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dummy
    - ','
    - onoff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 542
    functionName: SSL_CTX_set_ecdh_auto
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_set_ecdh_auto(dummy, onoff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: SSL_CTX_get_tlsext_status_cb
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CTX_get_tlsext_status_cb(ctx, cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/include/haproxy/check.h:87,1
    - Dst: generate_unique_id
      Src: /src/haproxy/include/haproxy/check.h:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - check
    - format
    argTypes:
    - struct check*
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: check_generate_unique_id
    functionSourceFile: /src/haproxy/include/haproxy/check.h
    functionUses: 1
    functionsReached:
    - generate_unique_id
    - isttest
    linkageType: ''
    returnType: struct ist
    signature: struct ist check_generate_unique_id(struct check *check, struct lf_expr
      *format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - srv
    - sk
    argTypes:
    - struct server*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: set_srv_agent_addr
    functionSourceFile: /src/haproxy/include/haproxy/check.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_srv_agent_addr(struct server *srv, struct sockaddr_storage
      *sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - srv
    - port
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: set_srv_agent_port
    functionSourceFile: /src/haproxy/include/haproxy/check.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_srv_agent_port(struct server *srv, int port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __health_adjust
      Src: /src/haproxy/include/haproxy/check.h:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - status
    argTypes:
    - struct server*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 12
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: health_adjust
    functionSourceFile: /src/haproxy/include/haproxy/check.h
    functionUses: 6
    functionsReached:
    - __health_adjust
    linkageType: ''
    returnType: void
    signature: void health_adjust(struct server *s, short status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opt
    - ','
    - qc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: QUIC_TUNE_FB_GET
    functionSourceFile: /src/haproxy/include/haproxy/quic_tune.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUIC_TUNE_FB_GET(opt, qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opt
    - qc
    argTypes:
    - int
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: quic_tune_test
    functionSourceFile: /src/haproxy/include/haproxy/quic_tune.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_tune_test(int opt, const struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opt
    - ','
    - conn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: QUIC_TUNE_FB_CONN_GET
    functionSourceFile: /src/haproxy/include/haproxy/quic_tune.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUIC_TUNE_FB_CONN_GET(opt, conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/quic_tune.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opt
    - conn
    argTypes:
    - int
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: quic_tune_conn_test
    functionSourceFile: /src/haproxy/include/haproxy/quic_tune.h
    functionUses: 1
    functionsReached:
    - conn_is_back
    linkageType: ''
    returnType: int
    signature: int quic_tune_conn_test(int opt, const struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:46,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:48,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:48,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:48,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:49,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:49,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:49,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:50,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:50,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:50,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:51,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:51,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:51,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:52,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:52,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:52,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:53,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:53,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: spop_conn_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/mux_spop-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *spop_conn_show_flags(char *buf, size_t len, const char
      *delim, uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/mux_spop-t.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:79,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:81,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:81,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:81,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:81,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_spop-t.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: spop_strm_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/mux_spop-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *spop_strm_show_flags(char *buf, size_t len, const char
      *delim, uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/mux_spop-t.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum spop_conn_st
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: spop_conn_st_to_str
    functionSourceFile: /src/haproxy/include/haproxy/mux_spop-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *spop_conn_st_to_str(enum spop_conn_st st)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum spop_strm_st
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: spop_strm_st_to_str
    functionSourceFile: /src/haproxy/include/haproxy/mux_spop-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *spop_strm_st_to_str(enum spop_strm_st st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - struct quic_rx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: quic_rx_packet_refinc
    functionSourceFile: /src/haproxy/include/haproxy/quic_rx.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_rx_packet_refinc(struct quic_rx_packet *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - struct quic_rx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: quic_rx_packet_refdec
    functionSourceFile: /src/haproxy/include/haproxy/quic_rx.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_rx_packet_refdec(struct quic_rx_packet *pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - struct quic_rx_packet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: qc_pkt_long
    functionSourceFile: /src/haproxy/include/haproxy/quic_rx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qc_pkt_long(const struct quic_rx_packet *pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/sink.h:57,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/sink.h:59,1
    - Dst: sink_announce_dropped
      Src: /src/haproxy/include/haproxy/sink.h:62,1
    - Dst: __sink_write
      Src: /src/haproxy/include/haproxy/sink.h:72,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/sink.h:75,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/include/haproxy/sink.h:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - sink
    - hdr
    - maxlen
    - msg
    - nmsg
    argTypes:
    - struct sink*
    - struct log_header
    - size_t
    - struct ist[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: sink_write
    functionSourceFile: /src/haproxy/include/haproxy/sink.h
    functionUses: 7
    functionsReached:
    - unlikely
    - sink_announce_dropped
    - HA_ATOMIC_LOAD
    - __sink_write
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t sink_write(struct sink *sink, struct log_header hdr,\n                                 size_t
      maxlen, const struct ist msg[], size_t nmsg)"
  - 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: 5
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 5
    functionName: gettimeofday
    functionSourceFile: /src/haproxy/include/haproxy/timeshift.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gettimeofday(tv, tz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - clk_id
    - ','
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: clock_gettime
    functionSourceFile: /src/haproxy/include/haproxy/timeshift.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clock_gettime(clk_id, tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - epfd
    - ','
    - events
    - ','
    - maxevents
    - ','
    - timeout
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: epoll_wait
    functionSourceFile: /src/haproxy/include/haproxy/timeshift.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: epoll_wait(epfd, events, maxevents, timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - warning
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: already_warned
    functionSourceFile: /src/haproxy/include/haproxy/global.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int already_warned(unsigned int warning)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: REGISTER_BUILD_OPTS
    functionSourceFile: /src/haproxy/include/haproxy/global.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_BUILD_OPTS(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: __decl_spinlock
    functionSourceFile: /src/haproxy/include/haproxy/thread-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __decl_spinlock(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: __decl_aligned_spinlock
    functionSourceFile: /src/haproxy/include/haproxy/thread-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __decl_aligned_spinlock(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: __decl_rwlock
    functionSourceFile: /src/haproxy/include/haproxy/thread-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __decl_rwlock(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: __decl_aligned_rwlock
    functionSourceFile: /src/haproxy/include/haproxy/thread-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __decl_aligned_rwlock(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: __decl_spinlock
    functionSourceFile: /src/haproxy/include/haproxy/thread-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __decl_spinlock(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: __decl_aligned_spinlock
    functionSourceFile: /src/haproxy/include/haproxy/thread-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __decl_aligned_spinlock(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: __decl_rwlock
    functionSourceFile: /src/haproxy/include/haproxy/thread-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __decl_rwlock(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: __decl_aligned_rwlock
    functionSourceFile: /src/haproxy/include/haproxy/thread-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __decl_aligned_rwlock(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: quic_stream_is_uni
    functionSourceFile: /src/haproxy/include/haproxy/quic_utils.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_stream_is_uni(uint64_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/include/haproxy/quic_utils.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: quic_stream_is_bidi
    functionSourceFile: /src/haproxy/include/haproxy/quic_utils.h
    functionUses: 9
    functionsReached:
    - quic_stream_is_uni
    linkageType: ''
    returnType: int
    signature: int quic_stream_is_bidi(uint64_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - struct bdata_ctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: bdata_ctr_init
    functionSourceFile: /src/haproxy/include/haproxy/quic_utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdata_ctr_init(struct bdata_ctr *ctr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/include/haproxy/quic_utils.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - struct bdata_ctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: bdata_ctr_binc
    functionSourceFile: /src/haproxy/include/haproxy/quic_utils.h
    functionUses: 2
    functionsReached:
    - MAX
    linkageType: ''
    returnType: void
    signature: void bdata_ctr_binc(struct bdata_ctr *ctr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - struct bdata_ctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: bdata_ctr_bdec
    functionSourceFile: /src/haproxy/include/haproxy/quic_utils.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdata_ctr_bdec(struct bdata_ctr *ctr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctr
    - data
    argTypes:
    - struct bdata_ctr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: bdata_ctr_add
    functionSourceFile: /src/haproxy/include/haproxy/quic_utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdata_ctr_add(struct bdata_ctr *ctr, size_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctr
    - data
    argTypes:
    - struct bdata_ctr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: bdata_ctr_del
    functionSourceFile: /src/haproxy/include/haproxy/quic_utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bdata_ctr_del(struct bdata_ctr *ctr, size_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_utils.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - chunk
    - ctr
    - prefix
    argTypes:
    - struct buffer*
    - struct bdata_ctr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: bdata_ctr_print
    functionSourceFile: /src/haproxy/include/haproxy/quic_utils.h
    functionUses: 3
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void bdata_ctr_print(struct buffer *chunk,\n                                   const
      struct bdata_ctr *ctr,\n                                   const char *prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ELEM
      Src: /src/haproxy/include/haproxy/channel.h:63,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/include/haproxy/channel.h:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: chn_strm
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 21
    functionsReached:
    - LIST_ELEM
    linkageType: ''
    returnType: struct stream
    signature: struct stream *chn_strm(const struct channel *chn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ELEM
      Src: /src/haproxy/include/haproxy/channel.h:72,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/include/haproxy/channel.h:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: chn_prod
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 12
    functionsReached:
    - LIST_ELEM
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *chn_prod(const struct channel *chn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ELEM
      Src: /src/haproxy/include/haproxy/channel.h:81,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/include/haproxy/channel.h:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: chn_cons
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 9
    functionsReached:
    - LIST_ELEM
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *chn_cons(const struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/channel.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: c_orig
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 2
    functionsReached:
    - b_orig
    linkageType: ''
    returnType: char
    signature: char *c_orig(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/channel.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: c_size
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 8
    functionsReached:
    - b_size
    linkageType: ''
    returnType: size_t
    signature: size_t c_size(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/channel.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: c_wrap
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - b_wrap
    linkageType: ''
    returnType: char
    signature: char *c_wrap(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/channel.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: c_data
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 9
    functionsReached:
    - b_data
    linkageType: ''
    returnType: size_t
    signature: size_t c_data(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/channel.h:113,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/channel.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: c_room
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached:
    - b_data
    - b_size
    linkageType: ''
    returnType: size_t
    signature: size_t c_room(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_data
      Src: /src/haproxy/include/haproxy/channel.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: c_empty
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 5
    functionsReached:
    - c_data
    linkageType: ''
    returnType: size_t
    signature: size_t c_empty(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_room
      Src: /src/haproxy/include/haproxy/channel.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: c_full
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - c_room
    linkageType: ''
    returnType: size_t
    signature: size_t c_full(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_IF_HOT
      Src: /src/haproxy/include/haproxy/channel.h:131,1
    - Dst: c_data
      Src: /src/haproxy/include/haproxy/channel.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: co_data
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 58
    functionsReached:
    - c_data
    - CHECK_IF_HOT
    linkageType: ''
    returnType: size_t
    signature: size_t co_data(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_data
      Src: /src/haproxy/include/haproxy/channel.h:138,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: ci_data
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 35
    functionsReached:
    - c_data
    - co_data
    linkageType: ''
    returnType: size_t
    signature: size_t ci_data(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_next_ofs
      Src: /src/haproxy/include/haproxy/channel.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - o
    argTypes:
    - struct channel*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: ci_next_ofs
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_next_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t ci_next_ofs(const struct channel *c, size_t o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_next
      Src: /src/haproxy/include/haproxy/channel.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - p
    argTypes:
    - struct channel*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: ci_next
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_next
    linkageType: ''
    returnType: char
    signature: char *ci_next(const struct channel *c, const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/channel.h:164,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - ofs
    argTypes:
    - struct channel*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: c_ptr
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached:
    - b_peek
    - co_data
    linkageType: ''
    returnType: char
    signature: char *c_ptr(const struct channel *c, ssize_t ofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/channel.h:175,1
    - Dst: c_data
      Src: /src/haproxy/include/haproxy/channel.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - adv
    argTypes:
    - struct channel*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: c_adv
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 16
    functionsReached:
    - c_data
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void c_adv(struct channel *c, size_t adv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/channel.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - adv
    argTypes:
    - struct channel*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: c_rew
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void c_rew(struct channel *c, size_t adv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_realign_if_empty
      Src: /src/haproxy/include/haproxy/channel.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: c_realign_if_empty
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 4
    functionsReached:
    - b_realign_if_empty
    linkageType: ''
    returnType: void
    signature: void c_realign_if_empty(struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/channel.h:198,1
    - Dst: c_data
      Src: /src/haproxy/include/haproxy/channel.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - output
    argTypes:
    - struct channel*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: co_set_data
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 2
    functionsReached:
    - c_data
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void co_set_data(struct channel *c, size_t output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_peek_ofs
      Src: /src/haproxy/include/haproxy/channel.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: __co_head_ofs
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - __b_peek_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t __co_head_ofs(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_peek
      Src: /src/haproxy/include/haproxy/channel.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: __co_head
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - __b_peek
    linkageType: ''
    returnType: char
    signature: char *__co_head(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek_ofs
      Src: /src/haproxy/include/haproxy/channel.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: co_head_ofs
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_peek_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t co_head_ofs(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/channel.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: co_head
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 4
    functionsReached:
    - b_peek
    linkageType: ''
    returnType: char
    signature: char *co_head(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_peek_ofs
      Src: /src/haproxy/include/haproxy/channel.h:231,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: __co_tail_ofs
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - co_data
    - __b_peek_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t __co_tail_ofs(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_peek
      Src: /src/haproxy/include/haproxy/channel.h:235,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: __co_tail
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - co_data
    - __b_peek
    linkageType: ''
    returnType: char
    signature: char *__co_tail(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek_ofs
      Src: /src/haproxy/include/haproxy/channel.h:239,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: co_tail_ofs
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_peek_ofs
    - co_data
    linkageType: ''
    returnType: size_t
    signature: size_t co_tail_ofs(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/channel.h:243,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: co_tail
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - b_peek
    - co_data
    linkageType: ''
    returnType: char
    signature: char *co_tail(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_peek_ofs
      Src: /src/haproxy/include/haproxy/channel.h:253,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: __ci_head_ofs
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - co_data
    - __b_peek_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t __ci_head_ofs(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_peek
      Src: /src/haproxy/include/haproxy/channel.h:257,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: __ci_head
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - co_data
    - __b_peek
    linkageType: ''
    returnType: char
    signature: char *__ci_head(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek_ofs
      Src: /src/haproxy/include/haproxy/channel.h:261,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: ci_head_ofs
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_peek_ofs
    - co_data
    linkageType: ''
    returnType: size_t
    signature: size_t ci_head_ofs(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/channel.h:265,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: ci_head
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 12
    functionsReached:
    - b_peek
    - co_data
    linkageType: ''
    returnType: char
    signature: char *ci_head(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_peek_ofs
      Src: /src/haproxy/include/haproxy/channel.h:275,1
    - Dst: c_data
      Src: /src/haproxy/include/haproxy/channel.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: __ci_tail_ofs
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - c_data
    - __b_peek_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t __ci_tail_ofs(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_peek
      Src: /src/haproxy/include/haproxy/channel.h:279,1
    - Dst: c_data
      Src: /src/haproxy/include/haproxy/channel.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: __ci_tail
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - c_data
    - __b_peek
    linkageType: ''
    returnType: char
    signature: char *__ci_tail(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek_ofs
      Src: /src/haproxy/include/haproxy/channel.h:283,1
    - Dst: c_data
      Src: /src/haproxy/include/haproxy/channel.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: ci_tail_ofs
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_peek_ofs
    - c_data
    linkageType: ''
    returnType: size_t
    signature: size_t ci_tail_ofs(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/channel.h:287,1
    - Dst: c_data
      Src: /src/haproxy/include/haproxy/channel.h:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: ci_tail
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 2
    functionsReached:
    - b_peek
    - c_data
    linkageType: ''
    returnType: char
    signature: char *ci_tail(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_stop_ofs
      Src: /src/haproxy/include/haproxy/channel.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: __ci_stop_ofs
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - __b_stop_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t __ci_stop_ofs(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_stop
      Src: /src/haproxy/include/haproxy/channel.h:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: __ci_stop
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - __b_stop
    linkageType: ''
    returnType: char
    signature: char *__ci_stop(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_stop_ofs
      Src: /src/haproxy/include/haproxy/channel.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: ci_stop_ofs
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_stop_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t ci_stop_ofs(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_stop
      Src: /src/haproxy/include/haproxy/channel.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: ci_stop
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - b_stop
    linkageType: ''
    returnType: char
    signature: char *ci_stop(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_contig_data
      Src: /src/haproxy/include/haproxy/channel.h:316,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: ci_contig_data
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - co_data
    - b_contig_data
    linkageType: ''
    returnType: size_t
    signature: size_t ci_contig_data(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 329
    functionName: channel_init
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void channel_init(struct channel *chn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/channel.h:348,1
    - Dst: c_adv
      Src: /src/haproxy/include/haproxy/channel.h:350,1
    - Dst: __channel_forward
      Src: /src/haproxy/include/haproxy/channel.h:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - chn
    - bytes
    argTypes:
    - struct channel*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 355
    functionName: channel_forward
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached:
    - c_adv
    - __channel_forward
    - ci_data
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long channel_forward(struct channel *chn, unsigned long
      long bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_adv
      Src: /src/haproxy/include/haproxy/channel.h:360,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/channel.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 4
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: channel_forward_forever
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 2
    functionsReached:
    - c_adv
    - ci_data
    linkageType: ''
    returnType: void
    signature: void channel_forward_forever(struct channel *chn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c_adv
      Src: /src/haproxy/include/haproxy/channel.h:376,1
    - Dst: chn_prod
      Src: /src/haproxy/include/haproxy/channel.h:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - chn
    - len
    argTypes:
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 381
    functionName: channel_add_input
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - c_adv
    - chn_prod
    linkageType: ''
    returnType: void
    signature: void channel_add_input(struct channel *chn, unsigned int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_set_data
      Src: /src/haproxy/include/haproxy/channel.h:388,1
    - Dst: channel_forward
      Src: /src/haproxy/include/haproxy/channel.h:389,1
    - Dst: b_set_data
      Src: /src/haproxy/include/haproxy/channel.h:390,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/channel.h:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - chn
    - htx
    - bytes
    argTypes:
    - struct channel*
    - struct htx*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 5
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: channel_htx_forward
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_set_data
    - b_size
    - channel_forward
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long channel_htx_forward(struct channel *chn, struct
      htx *htx, unsigned long long bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_adv
      Src: /src/haproxy/include/haproxy/channel.h:398,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: channel_htx_forward_forever
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached:
    - co_data
    - c_adv
    linkageType: ''
    returnType: void
    signature: void channel_htx_forward_forever(struct channel *chn, struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/channel.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 417
    functionName: channel_is_rewritable
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_data
    linkageType: ''
    returnType: int
    signature: int channel_is_rewritable(const struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chn_cons
      Src: /src/haproxy/include/haproxy/channel.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: channel_may_send
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - chn_cons
    linkageType: ''
    returnType: int
    signature: int channel_may_send(const struct channel *chn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_data_space
      Src: /src/haproxy/include/haproxy/channel.h:437,1
    - Dst: channel_may_send
      Src: /src/haproxy/include/haproxy/channel.h:444,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 459
    functionName: channel_htx_may_recv
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - htx_free_data_space
    - co_data
    - channel_may_send
    linkageType: ''
    returnType: int
    signature: int channel_htx_may_recv(const struct channel *chn, const struct htx
      *htx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/include/haproxy/channel.h:476,1
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/channel.h:476,1
    - Dst: channel_htx_may_recv
      Src: /src/haproxy/include/haproxy/channel.h:477,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/channel.h:477,1
    - Dst: b_is_null
      Src: /src/haproxy/include/haproxy/channel.h:479,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/channel.h:482,1
    - Dst: channel_may_send
      Src: /src/haproxy/include/haproxy/channel.h:489,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/channel.h:499,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 472
    functionDepth: 4
    functionLinenumber: 472
    functionLinenumberEnd: 501
    functionName: channel_may_recv
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 12
    functionsReached:
    - chn_strm
    - htxbuf
    - b_is_null
    - ci_data
    - channel_may_send
    - b_data
    - IS_HTX_STRM
    - channel_htx_may_recv
    linkageType: ''
    returnType: int
    signature: int channel_may_recv(const struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chn_prod
      Src: /src/haproxy/include/haproxy/channel.h:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: channel_input_closed
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 12
    functionsReached:
    - chn_prod
    linkageType: ''
    returnType: int
    signature: int channel_input_closed(struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chn_cons
      Src: /src/haproxy/include/haproxy/channel.h:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: channel_output_closed
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 4
    functionsReached:
    - chn_cons
    linkageType: ''
    returnType: int
    signature: int channel_output_closed(struct channel *chn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/channel.h:518,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/channel.h:518,1
    - Dst: tick_is_expired
      Src: /src/haproxy/include/haproxy/channel.h:518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 520
    functionName: channel_check_timeout
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - unlikely
    - tick_is_expired
    - likely
    linkageType: ''
    returnType: void
    signature: void channel_check_timeout(struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_reset
      Src: /src/haproxy/include/haproxy/channel.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 532
    functionName: channel_erase
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 4
    functionsReached:
    - b_reset
    linkageType: ''
    returnType: void
    signature: void channel_erase(struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_reset
      Src: /src/haproxy/include/haproxy/channel.h:536,1
    - Dst: channel_erase
      Src: /src/haproxy/include/haproxy/channel.h:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: channel_htx_erase
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 5
    functionsReached:
    - htx_reset
    - channel_erase
    linkageType: ''
    returnType: void
    signature: void channel_htx_erase(struct channel *chn, struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chn_prod
      Src: /src/haproxy/include/haproxy/channel.h:544,1
    - Dst: chn_cons
      Src: /src/haproxy/include/haproxy/channel.h:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 548
    functionName: channel_abort
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 7
    functionsReached:
    - chn_prod
    - chn_cons
    linkageType: ''
    returnType: void
    signature: void channel_abort(struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: channel_auto_connect
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void channel_auto_connect(struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 562
    functionName: channel_dont_connect
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void channel_dont_connect(struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: channel_auto_close
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void channel_auto_close(struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: channel_dont_close
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void channel_dont_close(struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 580
    functionName: channel_auto_read
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void channel_auto_read(struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 586
    functionName: channel_dont_read
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void channel_dont_read(struct channel *chn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_is_null
      Src: /src/haproxy/include/haproxy/channel.h:661,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/channel.h:666,1
    - Dst: channel_may_send
      Src: /src/haproxy/include/haproxy/channel.h:666,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:678,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 685
    functionName: channel_recv_limit
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 4
    functionsReached:
    - unlikely
    - co_data
    - channel_may_send
    - b_is_null
    linkageType: ''
    returnType: int
    signature: int channel_recv_limit(const struct channel *chn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/channel.h:702,1
    - Dst: channel_may_send
      Src: /src/haproxy/include/haproxy/channel.h:702,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 721
    functionName: channel_htx_recv_limit
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - unlikely
    - co_data
    - channel_may_send
    linkageType: ''
    returnType: int
    signature: int channel_htx_recv_limit(const struct channel *chn, const struct
      htx *htx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_data_space
      Src: /src/haproxy/include/haproxy/channel.h:733,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - c
    - htx
    - reserve
    argTypes:
    - struct channel*
    - struct htx*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 734
    functionName: channel_htx_full
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - htx_free_data_space
    - co_data
    linkageType: ''
    returnType: int
    signature: "int channel_htx_full(const struct channel *c, const struct htx *htx,\n\t\t\t\t
      \  unsigned int reserve)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_is_null
      Src: /src/haproxy/include/haproxy/channel.h:747,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/include/haproxy/channel.h:750,1
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/channel.h:750,1
    - Dst: channel_htx_full
      Src: /src/haproxy/include/haproxy/channel.h:751,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/channel.h:751,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/channel.h:753,1
    - Dst: c_size
      Src: /src/haproxy/include/haproxy/channel.h:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - reserve
    argTypes:
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 745
    functionDepth: 4
    functionLinenumber: 745
    functionLinenumberEnd: 754
    functionName: channel_full
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 8
    functionsReached:
    - chn_strm
    - htxbuf
    - b_is_null
    - ci_data
    - c_size
    - IS_HTX_STRM
    - channel_htx_full
    linkageType: ''
    returnType: int
    signature: int channel_full(const struct channel *c, unsigned int reserve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: channel_htx_recv_limit
      Src: /src/haproxy/include/haproxy/channel.h:761,1
    - Dst: htx_used_space
      Src: /src/haproxy/include/haproxy/channel.h:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 757
    functionDepth: 4
    functionLinenumber: 757
    functionLinenumberEnd: 765
    functionName: channel_htx_recv_max
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - htx_used_space
    - channel_htx_recv_limit
    linkageType: ''
    returnType: int
    signature: int channel_htx_recv_max(const struct channel *chn, const struct htx
      *htx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/include/haproxy/channel.h:776,1
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/channel.h:776,1
    - Dst: channel_htx_recv_max
      Src: /src/haproxy/include/haproxy/channel.h:777,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/channel.h:777,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/include/haproxy/channel.h:779,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/channel.h:779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 5
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: channel_recv_max
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 9
    functionsReached:
    - chn_strm
    - htxbuf
    - channel_htx_recv_max
    - channel_recv_limit
    - b_data
    - IS_HTX_STRM
    linkageType: ''
    returnType: int
    signature: int channel_recv_max(const struct channel *chn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c_size
      Src: /src/haproxy/include/haproxy/channel.h:794,1
    - Dst: c_size
      Src: /src/haproxy/include/haproxy/channel.h:796,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/include/haproxy/channel.h:797,1
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/channel.h:797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 800
    functionName: channel_data_limit
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - c_size
    - chn_strm
    - IS_HTX_STRM
    linkageType: ''
    returnType: size_t
    signature: size_t channel_data_limit(const struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/include/haproxy/channel.h:808,1
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/channel.h:808,1
    - Dst: htx_used_space
      Src: /src/haproxy/include/haproxy/channel.h:808,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/channel.h:808,1
    - Dst: c_data
      Src: /src/haproxy/include/haproxy/channel.h:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 809
    functionName: channel_data
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 2
    functionsReached:
    - chn_strm
    - htxbuf
    - IS_HTX_STRM
    - htx_used_space
    - c_data
    linkageType: ''
    returnType: size_t
    signature: size_t channel_data(const struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: channel_data
      Src: /src/haproxy/include/haproxy/channel.h:816,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: channel_input_data
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - channel_data
    - co_data
    linkageType: ''
    returnType: size_t
    signature: size_t channel_input_data(const struct channel *chn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:824,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 822
    functionDepth: 3
    functionLinenumber: 822
    functionLinenumberEnd: 835
    functionName: channel_check_idletimer
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached:
    - co_data
    linkageType: ''
    returnType: void
    signature: void channel_check_idletimer(struct channel *chn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: c_size
      Src: /src/haproxy/include/haproxy/channel.h:847,1
    - Dst: channel_data_limit
      Src: /src/haproxy/include/haproxy/channel.h:865,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - chn
    - xferred
    argTypes:
    - struct channel*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 841
    functionDepth: 3
    functionLinenumber: 841
    functionLinenumberEnd: 881
    functionName: channel_check_xfer
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached:
    - c_size
    - channel_data_limit
    linkageType: ''
    returnType: void
    signature: void channel_check_xfer(struct channel *chn, size_t xferred)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/include/haproxy/channel.h:894,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/channel.h:894,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/channel.h:894,1
    - Dst: b_head
      Src: /src/haproxy/include/haproxy/channel.h:900,1
    - Dst: ci_head
      Src: /src/haproxy/include/haproxy/channel.h:901,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/channel.h:902,1
    - Dst: ci_tail
      Src: /src/haproxy/include/haproxy/channel.h:905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 888
    functionDepth: 4
    functionLinenumber: 888
    functionLinenumberEnd: 906
    functionName: ci_space_for_replace
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_head
    - ci_head
    - ci_tail
    - b_data
    - b_wrap
    linkageType: ''
    returnType: int
    signature: int ci_space_for_replace(const struct channel *chn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chn_prod
      Src: /src/haproxy/include/haproxy/channel.h:921,1
    - Dst: b_alloc
      Src: /src/haproxy/include/haproxy/channel.h:923,1
    - Dst: b_requeue
      Src: /src/haproxy/include/haproxy/channel.h:926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - chn
    - wait
    argTypes:
    - struct channel*
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: channel_alloc_buffer
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_requeue
    - b_alloc
    - chn_prod
    linkageType: ''
    returnType: int
    signature: int channel_alloc_buffer(struct channel *chn, struct buffer_wait *wait)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c_size
      Src: /src/haproxy/include/haproxy/channel.h:935,1
    - Dst: c_empty
      Src: /src/haproxy/include/haproxy/channel.h:935,1
    - Dst: b_free
      Src: /src/haproxy/include/haproxy/channel.h:936,1
    - Dst: offer_buffers
      Src: /src/haproxy/include/haproxy/channel.h:937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - chn
    - wait
    argTypes:
    - struct channel*
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 933
    functionDepth: 3
    functionLinenumber: 933
    functionLinenumberEnd: 939
    functionName: channel_release_buffer
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - c_size
    - c_empty
    - offer_buffers
    - b_free
    linkageType: ''
    returnType: void
    signature: void channel_release_buffer(struct channel *chn, struct buffer_wait
      *wait)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:947,1
    - Dst: channel_erase
      Src: /src/haproxy/include/haproxy/channel.h:948,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/channel.h:951,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 945
    functionDepth: 4
    functionLinenumber: 945
    functionLinenumberEnd: 955
    functionName: channel_truncate
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - co_data
    - channel_erase
    - ci_data
    linkageType: ''
    returnType: void
    signature: void channel_truncate(struct channel *chn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:959,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/include/haproxy/channel.h:960,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:963,1
    - Dst: htx_truncate
      Src: /src/haproxy/include/haproxy/channel.h:965,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 957
    functionDepth: 3
    functionLinenumber: 957
    functionLinenumberEnd: 966
    functionName: channel_htx_truncate
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 9
    functionsReached:
    - channel_htx_erase
    - co_data
    - htx_truncate
    linkageType: ''
    returnType: void
    signature: void channel_htx_truncate(struct channel *chn, struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_slow_realign
      Src: /src/haproxy/include/haproxy/channel.h:976,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chn
    - swap
    argTypes:
    - struct channel*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 974
    functionDepth: 3
    functionLinenumber: 974
    functionLinenumberEnd: 977
    functionName: channel_slow_realign
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - co_data
    - b_slow_realign
    linkageType: ''
    returnType: void
    signature: void channel_slow_realign(struct channel *chn, char *swap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_first
      Src: /src/haproxy/include/haproxy/channel.h:989,1
    - Dst: htx_get_next
      Src: /src/haproxy/include/haproxy/channel.h:989,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/channel.h:990,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/include/haproxy/channel.h:991,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/channel.h:992,1
    - Dst: htx_get_next
      Src: /src/haproxy/include/haproxy/channel.h:993,1
    - Dst: c_adv
      Src: /src/haproxy/include/haproxy/channel.h:997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 984
    functionDepth: 3
    functionLinenumber: 984
    functionLinenumberEnd: 999
    functionName: channel_htx_fwd_headers
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - htx_get_blksz
    - htx_get_blk
    - htx_get_first
    - htx_get_blk_type
    - c_adv
    - htx_get_next
    linkageType: ''
    returnType: int32_t
    signature: int32_t channel_htx_fwd_headers(struct channel *chn, struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/channel.h:1010,1
    - Dst: b_del
      Src: /src/haproxy/include/haproxy/channel.h:1011,1
    - Dst: c_realign_if_empty
      Src: /src/haproxy/include/haproxy/channel.h:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - chn
    - len
    argTypes:
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1014
    functionName: co_skip
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 2
    functionsReached:
    - b_del
    - c_realign_if_empty
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void co_skip(struct channel *chn, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_drain
      Src: /src/haproxy/include/haproxy/channel.h:1024,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/channel.h:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - chn
    - htx
    - len
    argTypes:
    - struct channel*
    - struct htx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1020
    functionDepth: 3
    functionLinenumber: 1020
    functionLinenumberEnd: 1029
    functionName: co_htx_skip
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    - htx_drain
    linkageType: ''
    returnType: void
    signature: void co_htx_skip(struct channel *chn, struct htx *htx, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ci_putblk
      Src: /src/haproxy/include/haproxy/channel.h:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - chn
    - chunk
    argTypes:
    - struct channel*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1047
    functionName: ci_putchk
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - ci_putblk
    linkageType: ''
    returnType: int
    signature: int ci_putchk(struct channel *chn, struct buffer *chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ci_putblk
      Src: /src/haproxy/include/haproxy/channel.h:1059,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/channel.h:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chn
    - str
    argTypes:
    - struct channel*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1060
    functionName: ci_putstr
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - ci_putblk
    - strlen
    linkageType: ''
    returnType: int
    signature: int ci_putstr(struct channel *chn, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/channel.h:1072,1
    - Dst: chn_cons
      Src: /src/haproxy/include/haproxy/channel.h:1072,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:1072,1
    - Dst: chn_cons
      Src: /src/haproxy/include/haproxy/channel.h:1073,1
    - Dst: co_head
      Src: /src/haproxy/include/haproxy/channel.h:1077,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1069
    functionDepth: 3
    functionLinenumber: 1069
    functionLinenumberEnd: 1078
    functionName: co_getchr
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - unlikely
    - co_data
    - chn_cons
    - co_head
    linkageType: ''
    returnType: int
    signature: int co_getchr(struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:73,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:75,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:75,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:76,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:76,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:76,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:77,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:77,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:77,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:78,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:78,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:78,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:79,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:79,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:79,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:80,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:80,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:80,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 85
    functionName: fconn_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/mux_fcgi-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *fconn_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/mux_fcgi-t.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:114,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:116,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:116,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:116,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:116,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:117,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:117,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:118,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:118,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:118,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:119,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:119,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_fcgi-t.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: fstrm_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/mux_fcgi-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *fstrm_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/mux_fcgi-t.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum fcgi_conn_st
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: fconn_st_to_str
    functionSourceFile: /src/haproxy/include/haproxy/mux_fcgi-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fconn_st_to_str(enum fcgi_conn_st st)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum fcgi_strm_st
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 175
    functionName: fstrm_st_to_str
    functionSourceFile: /src/haproxy/include/haproxy/mux_fcgi-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fstrm_st_to_str(enum fcgi_strm_st st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_aligned_zalloc_typed
      Src: /src/haproxy/include/haproxy/server.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: srv_alloc
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 3
    functionsReached:
    - ha_aligned_zalloc_typed
    linkageType: ''
    returnType: struct server
    signature: struct server *srv_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_aligned_free
      Src: /src/haproxy/include/haproxy/server.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - srv_ptr
    argTypes:
    - struct server**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: srv_free
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 6
    functionsReached:
    - ha_aligned_free
    linkageType: ''
    returnType: void
    signature: void srv_free(struct server **srv_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb32_item_insert
      Src: /src/haproxy/include/haproxy/server.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - px
    - srv
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: server_index_id
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 3
    functionsReached:
    - ceb32_item_insert
    linkageType: ''
    returnType: void
    signature: void server_index_id(struct proxy *px, struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/server.h:213,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/server.h:214,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/include/haproxy/server.h:216,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/server.h:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: srv_inc_sess_ctr
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 3
    functionsReached:
    - update_freq_ctr
    - _HA_ATOMIC_INC
    - COUNTERS_UPDATE_MAX
    linkageType: ''
    returnType: void
    signature: void srv_inc_sess_ctr(struct server *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ns_to_sec
      Src: /src/haproxy/include/haproxy/server.h:224,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/server.h:226,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/server.h:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: srv_set_sess_last
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_STORE
    - ns_to_sec
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void srv_set_sess_last(struct server *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 243
    functionName: server_throttle_rate
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int server_throttle_rate(struct server *sv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: server_is_draining
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int server_is_draining(const struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/include/haproxy/server.h:259,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/include/haproxy/server.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: srv_adm_set_maint
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 6
    functionsReached:
    - srv_clr_admin_flag
    - srv_set_admin_flag
    linkageType: ''
    returnType: void
    signature: void srv_adm_set_maint(struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/include/haproxy/server.h:268,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/include/haproxy/server.h:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: srv_adm_set_drain
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 5
    functionsReached:
    - srv_clr_admin_flag
    - srv_set_admin_flag
    linkageType: ''
    returnType: void
    signature: void srv_adm_set_drain(struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/include/haproxy/server.h:277,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/include/haproxy/server.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: srv_adm_set_ready
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 6
    functionsReached:
    - srv_clr_admin_flag
    linkageType: ''
    returnType: void
    signature: void srv_adm_set_ready(struct server *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 308
    functionName: srv_set_init_state
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void srv_set_init_state(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - list
    - addr
    argTypes:
    - unsigned int*
    - enum srv_initaddr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 323
    functionName: srv_append_initaddr
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_append_initaddr(unsigned int *list, enum srv_initaddr addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: srv_get_next_initaddr
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: enum srv_initaddr
    signature: enum srv_initaddr srv_get_next_initaddr(unsigned int *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/include/haproxy/server.h:342,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/server.h:348,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/server.h:350,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/server.h:352,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/server.h:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - srv
    - conn
    argTypes:
    - struct server*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 355
    functionName: srv_use_conn
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_STORE
    - _HA_ATOMIC_ADD_FETCH
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void srv_use_conn(struct server *srv, struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 375
    functionName: srv_minmax_conn_apply
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void srv_minmax_conn_apply(struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_addr
      Src: /src/haproxy/include/haproxy/server.h:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 385
    functionName: srv_is_transparent
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 2
    functionsReached:
    - is_addr
    linkageType: ''
    returnType: int
    signature: int srv_is_transparent(const struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/server.h:402,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/server.h:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 408
    functionName: srv_detach
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 7
    functionsReached:
    - HA_ATOMIC_CAS
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void srv_detach(struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb32_item_lookup
      Src: /src/haproxy/include/haproxy/server.h:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bk
    - id
    argTypes:
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: server_find_by_id
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 5
    functionsReached:
    - ceb32_item_lookup
    linkageType: ''
    returnType: struct server
    signature: struct server *server_find_by_id(struct proxy *bk, int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: srv_is_quic
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int srv_is_quic(const struct server *srv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/include/haproxy/cli.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - appctx
    - severity
    - msg
    argTypes:
    - struct appctx*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: cli_msg
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 26
    functionsReached:
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_msg(struct appctx *appctx, int severity, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/include/haproxy/cli.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - appctx
    - err
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: cli_err
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 118
    functionsReached:
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_err(struct appctx *appctx, const char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/include/haproxy/cli.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - appctx
    - severity
    - msg
    argTypes:
    - struct appctx*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: cli_dynmsg
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 25
    functionsReached:
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_dynmsg(struct appctx *appctx, int severity, char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/include/haproxy/cli.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - appctx
    - err
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: cli_dynerr
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 35
    functionsReached:
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_dynerr(struct appctx *appctx, char *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/include/haproxy/cli.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - appctx
    - severity
    argTypes:
    - struct appctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: cli_umsg
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 5
    functionsReached:
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_umsg(struct appctx *appctx, int severity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: cli_umsgerr
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_umsgerr(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: ncbmb_is_null
    functionSourceFile: /src/haproxy/include/haproxy/ncbmbuf.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncbmb_is_null(const struct ncbmbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ncbmb_orig
    functionSourceFile: /src/haproxy/include/haproxy/ncbmbuf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ncbmb_orig(const struct ncbmbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: ncbmb_head
    functionSourceFile: /src/haproxy/include/haproxy/ncbmbuf.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ncbmb_head(const struct ncbmbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: ncbmb_wrap
    functionSourceFile: /src/haproxy/include/haproxy/ncbmbuf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ncbmb_wrap(const struct ncbmbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncbmb_is_null
      Src: /src/haproxy/include/haproxy/ncbmbuf.h:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: ncbmb_size
    functionSourceFile: /src/haproxy/include/haproxy/ncbmbuf.h
    functionUses: 6
    functionsReached:
    - ncbmb_is_null
    linkageType: ''
    returnType: ncb_sz_t
    signature: ncb_sz_t ncbmb_size(const struct ncbmbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ns_id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 756
    functionName: SERVER_INETADDR_UPDATER_DNS_RESOLVER
    functionSourceFile: /src/haproxy/include/haproxy/server-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SERVER_INETADDR_UPDATER_DNS_RESOLVER(_ns_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: sh_ssl_sess_tree_delete
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sh_ssl_sess_tree_delete(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: sh_ssl_sess_tree_insert
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sh_ssl_sess_tree_insert(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: sh_ssl_sess_tree_lookup
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sh_ssl_sess_tree_lookup(k)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bitfield
    - bit_index
    argTypes:
    - unsigned long long*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: cert_ignerr_bitfield_get
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cert_ignerr_bitfield_get(const unsigned long long *bitfield, int
      bit_index)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - bitfield
    - bit_index
    argTypes:
    - unsigned long long*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: cert_ignerr_bitfield_set
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cert_ignerr_bitfield_set(unsigned long long *bitfield, int bit_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/include/haproxy/ssl_sock.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitfield
    argTypes:
    - unsigned long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: cert_ignerr_bitfield_set_all
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void cert_ignerr_bitfield_set_all(unsigned long long *bitfield)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/include/haproxy/ssl_sock.h:206,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/include/haproxy/ssl_sock.h:208,1
    - Dst: __objt_listener
      Src: /src/haproxy/include/haproxy/ssl_sock.h:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: ssl_sock_get_listener
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 1
    functionsReached:
    - __objt_listener
    - SSL_get_ex_data
    linkageType: ''
    returnType: struct listener
    signature: struct listener *ssl_sock_get_listener(const SSL *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/include/haproxy/ssl_sock.h:229,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/include/haproxy/ssl_sock.h:231,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/include/haproxy/ssl_sock.h:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - ctx
    argTypes:
    - SSL*
    - struct ssl_sock_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 247
    functionName: ssl_sock_get_conn
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 4
    functionsReached:
    - SSL_get_ex_data
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: struct connection
    signature: struct connection *ssl_sock_get_conn(const SSL *s, struct ssl_sock_ctx
      **ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: if
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: else
    signature: else if (qc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/ssl_sock.h:254,1
    - Dst: __objt_listener
      Src: /src/haproxy/include/haproxy/ssl_sock.h:256,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/include/haproxy/ssl_sock.h:257,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/include/haproxy/ssl_sock.h:258,1
    - Dst: __objt_server
      Src: /src/haproxy/include/haproxy/ssl_sock.h:263,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/include/haproxy/ssl_sock.h:264,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/include/haproxy/ssl_sock.h:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - conn
    - counters
    - counters_px
    argTypes:
    - struct connection*
    - struct ssl_counters**
    - struct ssl_counters**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 272
    functionName: ssl_sock_get_stats_counters
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 2
    functionsReached:
    - __objt_server
    - __objt_listener
    - EXTRA_COUNTERS_GET
    - obj_type
    linkageType: ''
    returnType: void
    signature: "void ssl_sock_get_stats_counters(struct connection *conn,\n                                               struct
      ssl_counters **counters,\n                                               struct
      ssl_counters **counters_px)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: UBOUND
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UBOUND(a, max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: LBOUND
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LBOUND(a, min)
  - 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: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: SWAP
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: HA_ANON_STR
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ANON_STR(key, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: HA_ANON_ID
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ANON_ID(key, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: HA_ANON_PATH
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ANON_PATH(key, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: HA_ANON_CLI
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_ANON_CLI(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - maxlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: strnlen2
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strnlen2(const char *s, size_t maxlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ultoa_r
      Src: /src/haproxy/include/haproxy/tools.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: ultoa
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 7
    functionsReached:
    - ultoa_r
    linkageType: ''
    returnType: char
    signature: char *ultoa(unsigned long n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: drop_file_name
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void drop_file_name(const char **name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ultoa_r
      Src: /src/haproxy/include/haproxy/tools.h:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: U2A
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached:
    - ultoa_r
    linkageType: ''
    returnType: char
    signature: char *U2A(unsigned long n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ulltoh_r
      Src: /src/haproxy/include/haproxy/tools.h:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: U2H
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached:
    - ulltoh_r
    linkageType: ''
    returnType: char
    signature: char *U2H(unsigned long long n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ftoa_r
      Src: /src/haproxy/include/haproxy/tools.h:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: F2A
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - ftoa_r
    linkageType: ''
    returnType: char
    signature: char *F2A(double n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ftoa_r
      Src: /src/haproxy/include/haproxy/tools.h:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 231
    functionName: F2H
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached:
    - ftoa_r
    linkageType: ''
    returnType: char
    signature: char *F2H(double n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: limit_r
      Src: /src/haproxy/include/haproxy/tools.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - n
    - alt
    argTypes:
    - unsigned long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: LIM2A
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached:
    - limit_r
    linkageType: ''
    returnType: char
    signature: char *LIM2A(unsigned long n, const char *alt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qstr
      Src: /src/haproxy/include/haproxy/tools.h:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: cstr
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - qstr
    linkageType: ''
    returnType: char
    signature: char *cstr(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/haproxy/include/haproxy/tools.h:301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: is_idchar
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 4
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: int
    signature: int is_idchar(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str2ip2
      Src: /src/haproxy/include/haproxy/tools.h:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - sa
    argTypes:
    - char*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: str2ip
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached:
    - str2ip2
    linkageType: ''
    returnType: struct sockaddr_storage
    signature: struct sockaddr_storage *str2ip(const char *str, struct sockaddr_storage
      *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/include/haproxy/tools.h:537,1
    - Dst: csv_enc_append
      Src: /src/haproxy/include/haproxy/tools.h:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - str
    - quote
    - oneline
    - output
    argTypes:
    - char*
    - int
    - int
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 539
    functionName: csv_enc
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - csv_enc_append
    - chunk_reset
    linkageType: ''
    returnType: char
    signature: "char *csv_enc(const char *str, int quote, int oneline,\n\t\t\t\t  struct
      buffer *output)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 574
    functionName: cut_crlf
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cut_crlf(char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 583
    functionName: ltrim
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ltrim(char *s, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/tools.h:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 596
    functionName: rtrim
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char
    signature: char *rtrim(char *s, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rtrim
      Src: /src/haproxy/include/haproxy/tools.h:600,1
    - Dst: ltrim
      Src: /src/haproxy/include/haproxy/tools.h:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: alltrim
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - rtrim
    - ltrim
    linkageType: ''
    returnType: char
    signature: char *alltrim(char *s, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localtime_r
      Src: /src/haproxy/include/haproxy/tools.h:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - now
    - tm
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: get_localtime
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 12
    functionsReached:
    - localtime_r
    linkageType: ''
    returnType: void
    signature: void get_localtime(const time_t now, struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_r
      Src: /src/haproxy/include/haproxy/tools.h:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - now
    - tm
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 623
    functionName: get_gmtime
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 7
    functionsReached:
    - gmtime_r
    linkageType: ''
    returnType: void
    signature: void get_gmtime(const time_t now, struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - y
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: days_since_zero
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int days_since_zero(unsigned int y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _text
    - ','
    - _ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 674
    functionName: parse_size_err
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: parse_size_err(_text, _ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: clear_addr
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_addr(struct sockaddr_storage *addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 765
    functionName: is_inet_addr
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_inet_addr(const struct sockaddr_storage *addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_inet_addr
      Src: /src/haproxy/include/haproxy/tools.h:779,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 780
    functionName: is_addr
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 11
    functionsReached:
    - is_inet_addr
    linkageType: ''
    returnType: int
    signature: int is_addr(const struct sockaddr_storage *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 792
    functionName: get_net_port
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_net_port(const struct sockaddr_storage *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/haproxy/include/haproxy/tools.h:799,1
    - Dst: ntohs
      Src: /src/haproxy/include/haproxy/tools.h:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 804
    functionName: get_host_port
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 32
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: int
    signature: int get_host_port(const struct sockaddr_storage *addr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strnlen2
      Src: /src/haproxy/include/haproxy/tools.h:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 827
    functionName: get_addr_len
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 18
    functionsReached:
    - strnlen2
    linkageType: ''
    returnType: int
    signature: int get_addr_len(const struct sockaddr_storage *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - addr
    - port
    argTypes:
    - struct sockaddr_storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 841
    functionName: set_net_port
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int set_net_port(struct sockaddr_storage *addr, int port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/haproxy/include/haproxy/tools.h:848,1
    - Dst: htons
      Src: /src/haproxy/include/haproxy/tools.h:851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - addr
    - port
    argTypes:
    - struct sockaddr_storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 855
    functionName: set_host_port
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 14
    functionsReached:
    - htons
    linkageType: ''
    returnType: int
    signature: int set_host_port(struct sockaddr_storage *addr, int port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_host_port
      Src: /src/haproxy/include/haproxy/tools.h:861,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/tools.h:863,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/tools.h:866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - addr
    - proto
    argTypes:
    - struct sockaddr_storage*
    - enum ha_proto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 870
    functionName: port_is_restricted
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached:
    - unlikely
    - BUG_ON_HOT
    - get_host_port
    linkageType: ''
    returnType: int
    signature: "int port_is_restricted(const struct sockaddr_storage *addr,\n                                     enum
      ha_proto proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1055
    functionName: fddebug
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fddebug(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - msg
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1056
    functionName: _fddebug
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _fddebug(fmt, msg...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - msg
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1067
    functionName: __fddebug
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __fddebug(fmt, msg...)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - chunks
    - ptr
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1100
    functionName: fix_pointer_if_wrap
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fix_pointer_if_wrap(const char **chunks, const char **ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1107
    functionName: utf8_return_code
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char utf8_return_code(unsigned int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1112
    functionName: utf8_return_length
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char utf8_return_length(unsigned char code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1123
    functionName: rdtsc
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long rdtsc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/haproxy/include/haproxy/tools.h:1128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1130
    functionName: rdtsc
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 11
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long rdtsc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: backtrace
      Src: /src/haproxy/include/haproxy/tools.h:1166,1
    - Dst: __builtin_frame_address
      Src: /src/haproxy/include/haproxy/tools.h:1174,1
    - Dst: may_access
      Src: /src/haproxy/include/haproxy/tools.h:1175,1
    - Dst: may_access
      Src: /src/haproxy/include/haproxy/tools.h:1175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buffer
    - max
    argTypes:
    - void**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1181
    functionName: my_backtrace
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached:
    - backtrace
    - may_access
    - __builtin_frame_address
    linkageType: ''
    returnType: forceinline
    signature: forceinline my_backtrace(void **buffer, int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/haproxy/include/haproxy/tools.h:1188,1
    - Dst: free
      Src: /src/haproxy/include/haproxy/tools.h:1190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1184
    functionDepth: 3
    functionLinenumber: 1184
    functionLinenumberEnd: 1192
    functionName: my_realloc2
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 16
    functionsReached:
    - realloc
    - free
    linkageType: ''
    returnType: void
    signature: void *my_realloc2(void *ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _aligned_malloc
      Src: /src/haproxy/include/haproxy/tools.h:1213,1
    - Dst: memalign
      Src: /src/haproxy/include/haproxy/tools.h:1216,1
    - Dst: posix_memalign
      Src: /src/haproxy/include/haproxy/tools.h:1221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1202
    functionDepth: 3
    functionLinenumber: 1202
    functionLinenumberEnd: 1226
    functionName: _ha_aligned_alloc
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - memalign
    - posix_memalign
    - _aligned_malloc
    linkageType: ''
    returnType: void
    signature: void *_ha_aligned_alloc(size_t alignment, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ha_aligned_alloc
      Src: /src/haproxy/include/haproxy/tools.h:1231,1
    - Dst: memset
      Src: /src/haproxy/include/haproxy/tools.h:1234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1229
    functionDepth: 4
    functionLinenumber: 1229
    functionLinenumberEnd: 1236
    functionName: _ha_aligned_zalloc
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - _ha_aligned_alloc
    - memset
    linkageType: ''
    returnType: void
    signature: void *_ha_aligned_zalloc(size_t alignment, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/tools.h:1249,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/tools.h:1251,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/tools.h:1259,1
    - Dst: _ha_aligned_alloc
      Src: /src/haproxy/include/haproxy/tools.h:1262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1247
    functionDepth: 4
    functionLinenumber: 1247
    functionLinenumberEnd: 1263
    functionName: _ha_aligned_alloc_safe
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - unlikely
    - _ha_aligned_alloc
    linkageType: ''
    returnType: void
    signature: void *_ha_aligned_alloc_safe(size_t alignment, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ha_aligned_alloc_safe
      Src: /src/haproxy/include/haproxy/tools.h:1268,1
    - Dst: memset
      Src: /src/haproxy/include/haproxy/tools.h:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1266
    functionDepth: 5
    functionLinenumber: 1266
    functionLinenumberEnd: 1273
    functionName: _ha_aligned_zalloc_safe
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - memset
    - _ha_aligned_alloc_safe
    linkageType: ''
    returnType: void
    signature: void *_ha_aligned_zalloc_safe(size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _aligned_free
      Src: /src/haproxy/include/haproxy/tools.h:1282,1
    - Dst: free
      Src: /src/haproxy/include/haproxy/tools.h:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1279
    functionDepth: 3
    functionLinenumber: 1279
    functionLinenumberEnd: 1286
    functionName: _ha_aligned_free
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - _aligned_free
    - free
    linkageType: ''
    returnType: void
    signature: void _ha_aligned_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ha_random64_pair_hashed
      Src: /src/haproxy/include/haproxy/tools.h:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - l
    - h
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1305
    functionDepth: 3
    functionLinenumber: 1305
    functionLinenumberEnd: 1311
    functionName: ha_random64_pair_hashed
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 6
    functionsReached:
    - _ha_random64_pair_hashed
    linkageType: ''
    returnType: void
    signature: void ha_random64_pair_hashed(uint64_t *l, uint64_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_random64
      Src: /src/haproxy/include/haproxy/tools.h:1315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1313
    functionDepth: 3
    functionLinenumber: 1313
    functionLinenumberEnd: 1316
    functionName: ha_random32
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 6
    functionsReached:
    - ha_random64
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ha_random32()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_random32
      Src: /src/haproxy/include/haproxy/tools.h:1320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1318
    functionDepth: 4
    functionLinenumber: 1318
    functionLinenumberEnd: 1321
    functionName: ha_random
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 6
    functionsReached:
    - ha_random32
    linkageType: ''
    returnType: int32_t
    signature: int32_t ha_random()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1336
    functionName: statistical_prng
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int statistical_prng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul32hi
      Src: /src/haproxy/include/haproxy/tools.h:1343,1
    - Dst: statistical_prng
      Src: /src/haproxy/include/haproxy/tools.h:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - range
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1344
    functionName: statistical_prng_range
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 19
    functionsReached:
    - mul32hi
    - statistical_prng
    linkageType: ''
    returnType: uint
    signature: uint statistical_prng_range(uint range)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - x
    - bits
    argTypes:
    - unsigned long long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1368
    functionName: _ptr_hash_reduce
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline _ptr_hash_reduce(unsigned long long x, const int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1377
    functionName: _ptr_hash
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline _ptr_hash(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1388
    functionName: _ptr2_hash
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline _ptr2_hash(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p1
    - p2
    - arg
    argTypes:
    - void*
    - void*
    - ulong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1400
    functionName: _ptr2_hash_arg
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline _ptr2_hash_arg(const void *p1, const void *p2, ulong arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ptr_hash_reduce
      Src: /src/haproxy/include/haproxy/tools.h:1415,1
    - Dst: _ptr_hash
      Src: /src/haproxy/include/haproxy/tools.h:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - bits
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1416
    functionName: ptr_hash
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached:
    - _ptr_hash_reduce
    - _ptr_hash
    linkageType: ''
    returnType: forceinline
    signature: forceinline ptr_hash(const void *p, const int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ptr_hash_reduce
      Src: /src/haproxy/include/haproxy/tools.h:1423,1
    - Dst: _ptr2_hash
      Src: /src/haproxy/include/haproxy/tools.h:1423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p1
    - p2
    - bits
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1424
    functionName: ptr2_hash
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached:
    - _ptr2_hash
    - _ptr_hash_reduce
    linkageType: ''
    returnType: forceinline
    signature: forceinline ptr2_hash(const void *p1, const void *p2, const int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ptr_hash_reduce
      Src: /src/haproxy/include/haproxy/tools.h:1431,1
    - Dst: _ptr2_hash_arg
      Src: /src/haproxy/include/haproxy/tools.h:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p1
    - p2
    - arg
    - bits
    argTypes:
    - void*
    - void*
    - ulong
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1429
    functionDepth: 1
    functionLinenumber: 1429
    functionLinenumberEnd: 1432
    functionName: ptr2_hash_arg
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached:
    - _ptr_hash_reduce
    - _ptr2_hash_arg
    linkageType: ''
    returnType: forceinline
    signature: forceinline ptr2_hash_arg(const void *p1, const void *p2, ulong arg,
      const int bits)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/haproxy/include/haproxy/tools.h:1449,1
    - Dst: tolower
      Src: /src/haproxy/include/haproxy/tools.h:1457,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - fp
    - prev
    - curr
    argTypes:
    - uint8_t*
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1464
    functionName: update_char_fingerprint
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: void
    signature: void update_char_fingerprint(uint8_t *fp, char prev, char curr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/haproxy/include/haproxy/tools.h:1476,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/tools.h:1477,1
    - Dst: atol
      Src: /src/haproxy/include/haproxy/tools.h:1480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - text
    - min
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1482
    functionName: warn_if_lower
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 6
    functionsReached:
    - atol
    - strspn
    - strlen
    linkageType: ''
    returnType: int
    signature: int warn_if_lower(const char *text, long min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1505
    functionDepth: 0
    functionLinenumber: 1505
    functionLinenumberEnd: 1507
    functionName: CASE_ERR
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_ERR(err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1515,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1516,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1517,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1518,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1519,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1520,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1521,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1522,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1523,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1524,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1525,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1526,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1527,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1528,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1529,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1530,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1531,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1532,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1533,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1534,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1535,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1536,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1537,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1538,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1539,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1540,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1541,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1542,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1543,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1544,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1545,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1546,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1547,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1548,1
    - Dst: memprintf
      Src: /src/haproxy/include/haproxy/tools.h:1551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 2
    argNames:
    - err_num
    - out
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1508
    functionDepth: 5
    functionLinenumber: 1508
    functionLinenumberEnd: 1554
    functionName: errname
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached:
    - memprintf
    - CASE_ERR
    linkageType: ''
    returnType: char
    signature: char *errname(int err_num, char **out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - struct net_addr_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1564
    functionDepth: 0
    functionLinenumber: 1564
    functionLinenumberEnd: 1568
    functionName: net_addr_type_is_quic
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int net_addr_type_is_quic(struct net_addr_type *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/istbuf.h:52,1
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/istbuf.h:57,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/istbuf.h:61,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/istbuf.h:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - b
    - o
    - n
    - ist
    argTypes:
    - struct buffer*
    - size_t
    - size_t
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: b_isteq
    functionSourceFile: /src/haproxy/include/haproxy/istbuf.h
    functionUses: 2
    functionsReached:
    - unlikely
    - b_peek
    - b_wrap
    - b_orig
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t b_isteq(const struct buffer *b, size_t o, size_t n, const struct
      ist ist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/istbuf.h:72,1
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/istbuf.h:77,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/istbuf.h:84,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/istbuf.h:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - b
    - o
    - n
    - ist
    argTypes:
    - struct buffer*
    - size_t
    - size_t
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: b_isteqi
    functionSourceFile: /src/haproxy/include/haproxy/istbuf.h
    functionUses: 0
    functionsReached:
    - unlikely
    - b_peek
    - b_wrap
    - b_orig
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t b_isteqi(const struct buffer *b, size_t o, size_t n, const
      struct ist ist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_isteq
      Src: /src/haproxy/include/haproxy/istbuf.h:99,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/istbuf.h:99,1
    - Dst: b_del
      Src: /src/haproxy/include/haproxy/istbuf.h:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - ist
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: b_isteat
    functionSourceFile: /src/haproxy/include/haproxy/istbuf.h
    functionUses: 0
    functionsReached:
    - b_del
    - b_data
    - b_isteq
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t b_isteat(struct buffer *b, const struct ist ist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/istbuf.h:116,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/istbuf.h:120,1
    - Dst: b_tail
      Src: /src/haproxy/include/haproxy/istbuf.h:123,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/istbuf.h:127,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/istbuf.h:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - b
    - ist
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 131
    functionName: b_istput
    functionSourceFile: /src/haproxy/include/haproxy/istbuf.h
    functionUses: 11
    functionsReached:
    - unlikely
    - b_orig
    - b_tail
    - b_room
    - b_wrap
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t b_istput(struct buffer *b, const struct ist ist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_putblk
      Src: /src/haproxy/include/haproxy/istbuf.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - ist
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: b_putist
    functionSourceFile: /src/haproxy/include/haproxy/istbuf.h
    functionUses: 4
    functionsReached:
    - b_putblk
    linkageType: ''
    returnType: size_t
    signature: size_t b_putist(struct buffer *b, const struct ist ist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: ist2buf
    functionSourceFile: /src/haproxy/include/haproxy/istbuf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer ist2buf(const struct ist ist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:126,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:129,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:129,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:129,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:129,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:130,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:130,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:130,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:130,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:131,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:131,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:131,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:131,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:132,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:132,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:132,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/fd-t.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 137
    functionName: fd_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/fd-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *fd_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/fd-t.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - enum h2_ft
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: h2_ft_bit
    functionSourceFile: /src/haproxy/include/haproxy/h2.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int h2_ft_bit(enum h2_ft ft)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 242
    functionName: h2_ft_str
    functionSourceFile: /src/haproxy/include/haproxy/h2.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *h2_ft_str(int type)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - err
    argTypes:
    - enum h2_err
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 264
    functionName: h2_err_str
    functionSourceFile: /src/haproxy/include/haproxy/h2.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *h2_err_str(enum h2_err err)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 5
    argNames:
    - ft
    - dir
    - id
    - len
    - mfs
    argTypes:
    - enum h2_ft
    - int
    - int32_t
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 299
    functionName: h2_frame_check
    functionSourceFile: /src/haproxy/include/haproxy/h2.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h2_frame_check(enum h2_ft ft, int dir, int32_t id, int32_t len,
      int32_t mfs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/h2.h:307,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:307,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/h2.h:308,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:308,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/h2.h:309,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:309,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/h2.h:310,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:310,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/h2.h:311,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:311,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/h2.h:312,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:312,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - str
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 320
    functionName: h2_str_to_phdr
    functionSourceFile: /src/haproxy/include/haproxy/h2.h
    functionUses: 2
    functionsReached:
    - ist
    - isteq
    linkageType: ''
    returnType: int
    signature: int h2_str_to_phdr(const struct ist str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:328,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:329,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:330,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:331,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:332,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:333,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:334,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:335,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - phdr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: h2_phdr_to_ist
    functionSourceFile: /src/haproxy/include/haproxy/h2.h
    functionUses: 1
    functionsReached:
    - ist
    linkageType: ''
    returnType: struct ist
    signature: struct ist h2_phdr_to_ist(int phdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2_phdr_to_ist
      Src: /src/haproxy/include/haproxy/h2.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - phdr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: h2_phdr_to_str
    functionSourceFile: /src/haproxy/include/haproxy/h2.h
    functionUses: 2
    functionsReached:
    - h2_phdr_to_ist
    linkageType: ''
    returnType: char
    signature: char *h2_phdr_to_str(int phdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: ring_area
    functionSourceFile: /src/haproxy/include/haproxy/ring.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ring_area(const struct ring *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: ring_allocated_area
    functionSourceFile: /src/haproxy/include/haproxy/ring.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ring_allocated_area(const struct ring *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/ring.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: ring_data
    functionSourceFile: /src/haproxy/include/haproxy/ring.h
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: size_t
    signature: size_t ring_data(const struct ring *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: ring_size
    functionSourceFile: /src/haproxy/include/haproxy/ring.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ring_size(const struct ring *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: ring_allocated_size
    functionSourceFile: /src/haproxy/include/haproxy/ring.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ring_allocated_size(const struct ring *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: ring_head
    functionSourceFile: /src/haproxy/include/haproxy/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ring_head(const struct ring *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/ring.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: ring_tail
    functionSourceFile: /src/haproxy/include/haproxy/ring.h
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: size_t
    signature: size_t ring_tail(const struct ring *ring)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vp_ring_to_data
      Src: /src/haproxy/include/haproxy/ring.h:110,1
    - Dst: ring_area
      Src: /src/haproxy/include/haproxy/ring.h:110,1
    - Dst: ring_size
      Src: /src/haproxy/include/haproxy/ring.h:110,1
    - Dst: ring_head
      Src: /src/haproxy/include/haproxy/ring.h:110,1
    - Dst: ring_tail
      Src: /src/haproxy/include/haproxy/ring.h:110,1
    - Dst: ring_data
      Src: /src/haproxy/include/haproxy/ring.h:112,1
    - Dst: ring_data
      Src: /src/haproxy/include/haproxy/ring.h:113,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/ring.h:115,1
    - Dst: ring_size
      Src: /src/haproxy/include/haproxy/ring.h:115,1
    - Dst: vp_peek_ofs
      Src: /src/haproxy/include/haproxy/ring.h:117,1
    - Dst: ring_area
      Src: /src/haproxy/include/haproxy/ring.h:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - dst
    - src
    - max
    argTypes:
    - struct ring*
    - struct ring*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: ring_dup
    functionSourceFile: /src/haproxy/include/haproxy/ring.h
    functionUses: 1
    functionsReached:
    - vp_peek_ofs
    - BUG_ON
    - ring_head
    - ring_size
    - vp_ring_to_data
    - ring_data
    - ring_tail
    - ring_area
    linkageType: ''
    returnType: size_t
    signature: size_t ring_dup(struct ring *dst, const struct ring *src, size_t max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: vp_isempty
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vp_isempty(const struct ist v1, const struct ist v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: vp_size
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t vp_size(const struct ist v1, const struct ist v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: _vp_head
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *_vp_head(const struct ist v1, const struct ist v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: vp_head
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *vp_head(const struct ist v1, const struct ist v2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - v1
    - v2
    - ofs
    argTypes:
    - struct ist
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: _vp_addr
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *_vp_addr(const struct ist v1, const struct ist v2, size_t ofs)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - v1
    - v2
    - ofs
    argTypes:
    - struct ist
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: vp_addr
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *vp_addr(const struct ist v1, const struct ist v2, size_t ofs)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - v1
    - v2
    - p
    argTypes:
    - struct ist
    - struct ist
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: vp_ofs
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t vp_ofs(const struct ist v1, const struct ist v2, const char
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vp_ofs
      Src: /src/haproxy/include/haproxy/vecpair.h:143,1
    - Dst: vp_addr
      Src: /src/haproxy/include/haproxy/vecpair.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v1
    - v2
    - p
    argTypes:
    - struct ist
    - struct ist
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: vp_next
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached:
    - vp_ofs
    - vp_addr
    linkageType: ''
    returnType: char
    signature: char *vp_next(const struct ist v1, const struct ist v2, const char
      *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - v1
    - v2
    - seek
    argTypes:
    - struct ist
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: vp_seek_addr
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *vp_seek_addr(struct ist v1, struct ist v2, size_t seek)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - v1
    - v2
    - skip
    argTypes:
    - struct ist*
    - struct ist*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 185
    functionName: vp_skip
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t vp_skip(struct ist *v1, struct ist *v2, size_t skip)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - struct ist*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: vp_getchr
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vp_getchr(struct ist *v1, struct ist *v2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/vecpair.h:223,1
    - Dst: vp_skip
      Src: /src/haproxy/include/haproxy/vecpair.h:225,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/vecpair.h:232,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/vecpair.h:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - v1
    - v2
    - ofs
    - blk
    - len
    argTypes:
    - struct ist*
    - struct ist*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 251
    functionName: vp_getblk_ofs
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached:
    - vp_skip
    - BUG_ON_HOT
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t vp_getblk_ofs(struct ist *v1, struct ist *v2, size_t ofs, char
      *blk, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vp_getblk_ofs
      Src: /src/haproxy/include/haproxy/vecpair.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v1
    - v2
    - blk
    - len
    argTypes:
    - struct ist*
    - struct ist*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: vp_getblk
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached:
    - vp_getblk_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t vp_getblk(struct ist *v1, struct ist *v2, char *blk, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vp_getblk_ofs
      Src: /src/haproxy/include/haproxy/vecpair.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v1
    - v2
    - ofs
    - blk
    - len
    argTypes:
    - struct ist
    - struct ist
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: vp_peek_ofs
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 4
    functionsReached:
    - vp_getblk_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t vp_peek_ofs(struct ist v1, struct ist v2, size_t ofs, char *blk,
      size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - v1
    - v2
    - c
    argTypes:
    - struct ist*
    - struct ist*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: vp_putchr
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vp_putchr(struct ist *v1, struct ist *v2, char c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/vecpair.h:313,1
    - Dst: vp_skip
      Src: /src/haproxy/include/haproxy/vecpair.h:316,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/vecpair.h:323,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/vecpair.h:335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - v1
    - v2
    - ofs
    - blk
    - len
    argTypes:
    - struct ist*
    - struct ist*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 342
    functionName: vp_putblk_ofs
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached:
    - vp_skip
    - BUG_ON_HOT
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t vp_putblk_ofs(struct ist *v1, struct ist *v2, size_t ofs, const
      char *blk, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vp_putblk_ofs
      Src: /src/haproxy/include/haproxy/vecpair.h:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v1
    - v2
    - ofs
    - blk
    - len
    argTypes:
    - struct ist
    - struct ist
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: vp_poke_ofs
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached:
    - vp_putblk_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t vp_poke_ofs(struct ist v1, struct ist v2, size_t ofs, const
      char *blk, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vp_putblk_ofs
      Src: /src/haproxy/include/haproxy/vecpair.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - v1
    - v2
    - blk
    - len
    argTypes:
    - struct ist*
    - struct ist*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: vp_putblk
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 1
    functionsReached:
    - vp_putblk_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t vp_putblk(struct ist *v1, struct ist *v2, const char *blk, size_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/vecpair.h:381,1
    - Dst: vp_skip
      Src: /src/haproxy/include/haproxy/vecpair.h:383,1
    - Dst: vp_putchr
      Src: /src/haproxy/include/haproxy/vecpair.h:389,1
    - Dst: vp_putchr
      Src: /src/haproxy/include/haproxy/vecpair.h:396,1
    - Dst: vp_putchr
      Src: /src/haproxy/include/haproxy/vecpair.h:402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - v1
    - v2
    - ofs
    - v
    argTypes:
    - struct ist*
    - struct ist*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 405
    functionName: vp_put_varint_ofs
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached:
    - vp_skip
    - BUG_ON_HOT
    - vp_putchr
    linkageType: ''
    returnType: size_t
    signature: size_t vp_put_varint_ofs(struct ist *v1, struct ist *v2, size_t ofs,
      uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vp_put_varint_ofs
      Src: /src/haproxy/include/haproxy/vecpair.h:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v1
    - v2
    - v
    argTypes:
    - struct ist*
    - struct ist*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: vp_put_varint
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 1
    functionsReached:
    - vp_put_varint_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t vp_put_varint(struct ist *v1, struct ist *v2, uint64_t v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/vecpair.h:435,1
    - Dst: vp_skip
      Src: /src/haproxy/include/haproxy/vecpair.h:437,1
    - Dst: vp_skip
      Src: /src/haproxy/include/haproxy/vecpair.h:470,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - v1
    - v2
    - ofs
    - vptr
    argTypes:
    - struct ist*
    - struct ist*
    - size_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 472
    functionName: vp_get_varint_ofs
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached:
    - vp_skip
    - BUG_ON_HOT
    linkageType: ''
    returnType: size_t
    signature: size_t vp_get_varint_ofs(struct ist *v1, struct ist *v2, size_t ofs,
      uint64_t *vptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vp_get_varint_ofs
      Src: /src/haproxy/include/haproxy/vecpair.h:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v1
    - v2
    - vptr
    argTypes:
    - struct ist*
    - struct ist*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: vp_get_varint
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached:
    - vp_get_varint_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t vp_get_varint(struct ist *v1, struct ist *v2, uint64_t *vptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vp_get_varint_ofs
      Src: /src/haproxy/include/haproxy/vecpair.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v1
    - v2
    - ofs
    - vptr
    argTypes:
    - struct ist
    - struct ist
    - size_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 493
    functionName: vp_peek_varint_ofs
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 2
    functionsReached:
    - vp_get_varint_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t vp_peek_varint_ofs(struct ist v1, struct ist v2, size_t ofs,
      uint64_t *vptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - v1
    - v2
    - area
    - size
    - head
    - tail
    argTypes:
    - struct ist*
    - struct ist*
    - char*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 512
    functionName: vp_ring_to_data
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vp_ring_to_data(struct ist *v1, struct ist *v2, char *area, size_t
      size, size_t head, size_t tail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - v1
    - v2
    - area
    - size
    - head
    - tail
    argTypes:
    - struct ist*
    - struct ist*
    - char*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: vp_ring_to_room
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vp_ring_to_room(struct ist *v1, struct ist *v2, char *area, size_t
      size, size_t head, size_t tail)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - v1
    - v2
    - area
    - size
    - head
    - tail
    argTypes:
    - struct ist
    - struct ist
    - char*
    - size_t
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 551
    functionName: vp_data_to_ring
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vp_data_to_ring(const struct ist v1, const struct ist v2, char
      *area, size_t size, size_t *head, size_t *tail)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - v1
    - v2
    - area
    - size
    - head
    - tail
    argTypes:
    - struct ist
    - struct ist
    - char*
    - size_t
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 579
    functionName: vp_room_to_ring
    functionSourceFile: /src/haproxy/include/haproxy/vecpair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vp_room_to_ring(const struct ist v1, const struct ist v2, char
      *area, size_t size, size_t *head, size_t *tail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:68,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:70,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:70,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:70,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:71,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:71,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:71,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:71,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:71,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:72,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:72,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:72,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:73,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:73,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:73,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:74,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:74,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:74,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:74,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:75,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:75,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:75,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: h1c_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/mux_h1-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *h1c_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/mux_h1-t.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:123,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:125,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:125,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:125,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:126,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:126,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:126,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:127,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:128,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:129,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:129,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:129,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:130,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:130,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:130,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:130,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h1-t.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 135
    functionName: h1s_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/mux_h1-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *h1s_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/mux_h1-t.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum h1_cs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: h1c_st_to_str
    functionSourceFile: /src/haproxy/include/haproxy/mux_h1-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *h1c_st_to_str(enum h1_cs st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xref_a
    - xref_b
    argTypes:
    - struct xref*
    - struct xref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: xref_create
    functionSourceFile: /src/haproxy/include/haproxy/xref.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xref_create(struct xref *xref_a, struct xref *xref_b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_XCHG
      Src: /src/haproxy/include/haproxy/xref.h:56,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/include/haproxy/xref.h:57,1
    - Dst: _HA_ATOMIC_XCHG
      Src: /src/haproxy/include/haproxy/xref.h:74,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/include/haproxy/xref.h:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - xref
    argTypes:
    - struct xref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 86
    functionName: xref_get_peer_and_lock
    functionSourceFile: /src/haproxy/include/haproxy/xref.h
    functionUses: 12
    functionsReached:
    - _HA_ATOMIC_XCHG
    - __ha_barrier_store
    - __ha_barrier_atomic_store
    linkageType: ''
    returnType: struct xref
    signature: struct xref *xref_get_peer_and_lock(struct xref *xref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ha_barrier_store
      Src: /src/haproxy/include/haproxy/xref.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xref
    - peer
    argTypes:
    - struct xref*
    - struct xref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: xref_unlock
    functionSourceFile: /src/haproxy/include/haproxy/xref.h
    functionUses: 8
    functionsReached:
    - __ha_barrier_store
    linkageType: ''
    returnType: void
    signature: void xref_unlock(struct xref *xref, struct xref *peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ha_barrier_store
      Src: /src/haproxy/include/haproxy/xref.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xref
    - peer
    argTypes:
    - struct xref*
    - struct xref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: xref_disconnect
    functionSourceFile: /src/haproxy/include/haproxy/xref.h
    functionUses: 4
    functionsReached:
    - __ha_barrier_store
    linkageType: ''
    returnType: void
    signature: void xref_disconnect(struct xref *xref, struct xref *peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:79,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:81,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:81,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:81,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:82,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:82,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:82,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:83,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:83,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:83,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:84,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:84,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:84,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:85,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:85,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/task-t.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: task_show_state
    functionSourceFile: /src/haproxy/include/haproxy/task-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *task_show_state(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/task-t.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/sock.h:62,1
    - Dst: IN6_IS_ADDR_V4MAPPED
      Src: /src/haproxy/include/haproxy/sock.h:66,1
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/sock.h:68,1
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/sock.h:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - addr
    - tos
    argTypes:
    - int
    - struct sockaddr_storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: sock_set_tos
    functionSourceFile: /src/haproxy/include/haproxy/sock.h
    functionUses: 1
    functionsReached:
    - IN6_IS_ADDR_V4MAPPED
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void sock_set_tos(int fd, struct sockaddr_storage *addr, int tos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/sock.h:80,1
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/sock.h:83,1
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/sock.h:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - sock_family
    - mark
    argTypes:
    - int
    - sa_family_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: sock_set_mark
    functionSourceFile: /src/haproxy/include/haproxy/sock.h
    functionUses: 1
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void sock_set_mark(int fd, sa_family_t sock_family, int mark)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rlim
    argTypes:
    - rlim_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: normalize_rlim
    functionSourceFile: /src/haproxy/include/haproxy/limits.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ulong
    signature: ulong normalize_rlim(rlim_t rlim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - scounters
    - ','
    - type
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: COUNTERS_SHARED_LAST_OFFSET
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNTERS_SHARED_LAST_OFFSET(scounters, type, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - scounters
    - ','
    - elem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: COUNTERS_SHARED_LAST
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNTERS_SHARED_LAST(scounters, elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - scounters
    - ','
    - type
    - ','
    - offset
    - ','
    - rfunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: COUNTERS_SHARED_TOTAL_OFFSET
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNTERS_SHARED_TOTAL_OFFSET(scounters, type, offset, rfunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - scounters
    - ','
    - elem
    - ','
    - rfunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: COUNTERS_SHARED_TOTAL
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNTERS_SHARED_TOTAL(scounters, elem, rfunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - scounters
    - ','
    - elem
    - ','
    - rfunc
    - ','
    - arg1
    - ','
    - arg2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: COUNTERS_SHARED_TOTAL_ARG2
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNTERS_SHARED_TOTAL_ARG2(scounters, elem, rfunc, arg1, arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - counter
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: COUNTERS_UPDATE_MAX
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNTERS_UPDATE_MAX(counter, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - counters
    - ','
    - mod
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: EXTRA_COUNTERS_BASE
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_BASE(counters, mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - counters
    - ','
    - mod
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: EXTRA_COUNTERS_GET
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_GET(counters, mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - counters
    - ','
    - ctype
    - ','
    - alloc_failed_label
    - ','
    - storage
    - ','
    - step
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: EXTRA_COUNTERS_REGISTER
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_REGISTER(counters, ctype, alloc_failed_label, storage,
      step)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mod
    - ','
    - counters
    - ','
    - new_counters
    - ','
    - csize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: EXTRA_COUNTERS_ADD
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_ADD(mod, counters, new_counters, csize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - counters
    - ','
    - alloc_failed_label
    - ','
    - nbtg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: EXTRA_COUNTERS_ALLOC
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_ALLOC(counters, alloc_failed_label, nbtg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - counters
    - ','
    - mod
    - ','
    - init_counters
    - ','
    - init_counters_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 173
    functionName: EXTRA_COUNTERS_INIT
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_INIT(counters, mod, init_counters, init_counters_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - counters
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 187
    functionName: EXTRA_COUNTERS_FREE
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_FREE(counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - counters
    - ','
    - metricp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: EXTRA_COUNTERS_AGGR
    functionSourceFile: /src/haproxy/include/haproxy/counters.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_AGGR(counters, metricp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_AND_FETCH
      Src: /src/haproxy/include/haproxy/fd.h:139,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/fd.h:140,1
    - Dst: fd_rm_from_fd_list
      Src: /src/haproxy/include/haproxy/fd.h:142,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/fd.h:143,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/fd.h:144,1
    - Dst: fd_add_to_fd_list
      Src: /src/haproxy/include/haproxy/fd.h:148,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/fd.h:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 157
    functionName: done_update_polling
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 5
    functionsReached:
    - fd_add_to_fd_list
    - _HA_ATOMIC_LOAD
    - fd_rm_from_fd_list
    - _HA_ATOMIC_AND_FETCH
    linkageType: ''
    returnType: void
    signature: void done_update_polling(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: fd_recv_active
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fd_recv_active(const int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: fd_recv_ready
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fd_recv_ready(const int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: fd_send_active
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fd_send_active(const int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: fd_send_ready
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fd_send_ready(const int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: fd_active
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fd_active(const int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_BTR
      Src: /src/haproxy/include/haproxy/fd.h:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: fd_stop_recv
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 16
    functionsReached:
    - HA_ATOMIC_BTR
    linkageType: ''
    returnType: void
    signature: void fd_stop_recv(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_BTR
      Src: /src/haproxy/include/haproxy/fd.h:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: fd_stop_send
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 6
    functionsReached:
    - HA_ATOMIC_BTR
    linkageType: ''
    returnType: void
    signature: void fd_stop_send(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: old::old
      Src: /src/haproxy/include/haproxy/fd.h:224,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/fd.h:225,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/fd.h:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: fd_stop_both
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 4
    functionsReached:
    - unlikely
    - old::old
    - _HA_ATOMIC_CAS
    linkageType: ''
    returnType: void
    signature: void fd_stop_both(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_BTR
      Src: /src/haproxy/include/haproxy/fd.h:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: fd_cant_recv
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 17
    functionsReached:
    - HA_ATOMIC_BTR
    linkageType: ''
    returnType: void
    signature: void fd_cant_recv(const int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_BTS
      Src: /src/haproxy/include/haproxy/fd.h:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: fd_may_recv
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_BTS
    linkageType: ''
    returnType: void
    signature: void fd_may_recv(const int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_BTS
      Src: /src/haproxy/include/haproxy/fd.h:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: fd_cond_recv
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_BTS
    linkageType: ''
    returnType: void
    signature: void fd_cond_recv(const int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_BTS
      Src: /src/haproxy/include/haproxy/fd.h:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: fd_cond_send
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_BTS
    linkageType: ''
    returnType: void
    signature: void fd_cond_send(const int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/include/haproxy/fd.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: fd_may_both
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void fd_may_both(const int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_BTR
      Src: /src/haproxy/include/haproxy/fd.h:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 281
    functionName: fd_cant_send
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 8
    functionsReached:
    - HA_ATOMIC_BTR
    linkageType: ''
    returnType: void
    signature: void fd_cant_send(const int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_BTS
      Src: /src/haproxy/include/haproxy/fd.h:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: fd_may_send
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_BTS
    linkageType: ''
    returnType: void
    signature: void fd_may_send(const int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_BTS
      Src: /src/haproxy/include/haproxy/fd.h:296,1
    - Dst: updt_fd_polling
      Src: /src/haproxy/include/haproxy/fd.h:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 299
    functionName: fd_want_recv
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 14
    functionsReached:
    - HA_ATOMIC_BTS
    - updt_fd_polling
    linkageType: ''
    returnType: void
    signature: void fd_want_recv(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_BTS
      Src: /src/haproxy/include/haproxy/fd.h:307,1
    - Dst: updt_fd_polling
      Src: /src/haproxy/include/haproxy/fd.h:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 311
    functionName: fd_want_recv_safe
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 6
    functionsReached:
    - HA_ATOMIC_BTS
    - updt_fd_polling
    linkageType: ''
    returnType: void
    signature: void fd_want_recv_safe(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_BTS
      Src: /src/haproxy/include/haproxy/fd.h:317,1
    - Dst: updt_fd_polling
      Src: /src/haproxy/include/haproxy/fd.h:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: fd_want_send
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 5
    functionsReached:
    - HA_ATOMIC_BTS
    - updt_fd_polling
    linkageType: ''
    returnType: void
    signature: void fd_want_send(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/fd.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: fd_tgid
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 7
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: forceinline
    signature: forceinline fd_tgid(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_SUB
      Src: /src/haproxy/include/haproxy/fd.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: fd_drop_tgid
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 8
    functionsReached:
    - HA_ATOMIC_SUB
    linkageType: ''
    returnType: forceinline
    signature: forceinline fd_drop_tgid(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/include/haproxy/fd.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: fd_unlock_tgid
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_AND
    linkageType: ''
    returnType: forceinline
    signature: forceinline fd_unlock_tgid(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/fd.h:354,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/fd.h:361,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/include/haproxy/fd.h:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - desired_tgid
    argTypes:
    - int
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 365
    functionName: fd_lock_tgid
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 1
    functionsReached:
    - __ha_cpu_relax
    - _HA_ATOMIC_CAS
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void fd_lock_tgid(int fd, uint desired_tgid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/fd.h:373,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/fd.h:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: fd_lock_tgid_cur
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int fd_lock_tgid_cur(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/include/haproxy/fd.h:389,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/fd.h:391,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/include/haproxy/fd.h:392,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/fd.h:394,1
    - Dst: HA_ATOMIC_SUB
      Src: /src/haproxy/include/haproxy/fd.h:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 398
    functionName: fd_take_tgid
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_LOAD
    - HA_ATOMIC_SUB
    - likely
    - __ha_cpu_relax
    - _HA_ATOMIC_FETCH_ADD
    linkageType: ''
    returnType: uint
    signature: uint fd_take_tgid(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/include/haproxy/fd.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: fd_reset_tgid
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_AND
    linkageType: ''
    returnType: forceinline
    signature: forceinline fd_reset_tgid(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/include/haproxy/fd.h:418,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/fd.h:421,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/include/haproxy/fd.h:422,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/fd.h:424,1
    - Dst: HA_ATOMIC_SUB
      Src: /src/haproxy/include/haproxy/fd.h:426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - desired_tgid
    argTypes:
    - int
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 428
    functionName: fd_grab_tgid
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 6
    functionsReached:
    - _HA_ATOMIC_LOAD
    - HA_ATOMIC_SUB
    - likely
    - __ha_cpu_relax
    - _HA_ATOMIC_FETCH_ADD
    linkageType: ''
    returnType: uint
    signature: uint fd_grab_tgid(int fd, uint desired_tgid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/fd.h:439,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/fd.h:444,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/include/haproxy/fd.h:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - desired_tgid
    argTypes:
    - int
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 449
    functionName: fd_claim_tgid
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 0
    functionsReached:
    - __ha_cpu_relax
    - _HA_ATOMIC_CAS
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void fd_claim_tgid(int fd, uint desired_tgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/fd.h:464,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/include/haproxy/fd.h:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - desired_tgid
    argTypes:
    - int
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 465
    functionName: fd_update_tgid
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 1
    functionsReached:
    - __ha_cpu_relax
    - _HA_ATOMIC_CAS
    linkageType: ''
    returnType: void
    signature: void fd_update_tgid(int fd, uint desired_tgid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/include/haproxy/fd.h:481,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/fd.h:482,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/fd.h:483,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/include/haproxy/fd.h:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - desired_tgid
    argTypes:
    - int
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 486
    functionName: fd_get_running
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_SUB
    - _HA_ATOMIC_ADD_FETCH
    - _HA_ATOMIC_LOAD
    - likely
    linkageType: ''
    returnType: ulong
    signature: ulong fd_get_running(int fd, uint desired_tgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_FETCH_AND
      Src: /src/haproxy/include/haproxy/fd.h:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 494
    functionName: fd_clr_running
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 2
    functionsReached:
    - _HA_ATOMIC_FETCH_AND
    linkageType: ''
    returnType: long
    signature: long fd_clr_running(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/fd.h:520,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/fd.h:526,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/fd.h:527,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/fd.h:528,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/fd.h:529,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/fd.h:530,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/fd.h:533,1
    - Dst: fd_claim_tgid
      Src: /src/haproxy/include/haproxy/fd.h:535,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/fd.h:537,1
    - Dst: fd_drop_tgid
      Src: /src/haproxy/include/haproxy/fd.h:547,1
    - Dst: fd_may_both
      Src: /src/haproxy/include/haproxy/fd.h:558,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/fd.h:559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - fd
    - owner
    - tgid
    - thread_mask
    argTypes:
    - int
    - void*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 560
    functionName: fd_insert
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 9
    functionsReached:
    - unlikely
    - _HA_ATOMIC_INC
    - BUG_ON
    - fd_drop_tgid
    - fd_may_both
    - fd_claim_tgid
    linkageType: ''
    returnType: void
    signature: void fd_insert(int fd, void *owner, void (*iocb)(int fd), int tgid,
      unsigned long thread_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/include/haproxy/fd.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - evts
    argTypes:
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: hap_fd_set
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 2
    functionsReached:
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void hap_fd_set(int fd, unsigned int *evts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/include/haproxy/fd.h:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - evts
    argTypes:
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: hap_fd_clr
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 4
    functionsReached:
    - _HA_ATOMIC_AND
    linkageType: ''
    returnType: void
    signature: void hap_fd_clr(int fd, unsigned int *evts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - evts
    argTypes:
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 576
    functionName: hap_fd_isset
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hap_fd_isset(int fd, unsigned int *evts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_FETCH_OR
      Src: /src/haproxy/include/haproxy/fd.h:583,1
    - Dst: DISGUISE
      Src: /src/haproxy/include/haproxy/fd.h:585,1
    - Dst: write
      Src: /src/haproxy/include/haproxy/fd.h:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - thr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 587
    functionName: wake_thread
    functionSourceFile: /src/haproxy/include/haproxy/fd.h
    functionUses: 8
    functionsReached:
    - DISGUISE
    - _HA_ATOMIC_FETCH_OR
    - write
    linkageType: ''
    returnType: void
    signature: void wake_thread(int thr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - parse
    - ','
    - post
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: REGISTER_CONFIG_SECTION
    functionSourceFile: /src/haproxy/include/haproxy/cfgparse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_CONFIG_SECTION(name, parse, post)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - post
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: REGISTER_CONFIG_POST_SECTION
    functionSourceFile: /src/haproxy/include/haproxy/cfgparse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_CONFIG_POST_SECTION(name, post)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - parser
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: REGISTER_CONFIG_POSTPARSER
    functionSourceFile: /src/haproxy/include/haproxy/cfgparse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_CONFIG_POSTPARSER(name, parser)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: ESUB_INDEX
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ESUB_INDEX(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _family
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: EVENT_HDL_SUB_TYPE
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_SUB_TYPE(_family, _type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _family
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: EVENT_HDL_SUB_FAMILY
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_SUB_FAMILY(_family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:214,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:216,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:216,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:216,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:217,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:217,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:217,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:217,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:218,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:218,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:219,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:219,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:219,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:219,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:219,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:220,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:220,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:220,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:220,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:221,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:221,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:221,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:221,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:222,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:222,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:222,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:222,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:223,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:223,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:223,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:223,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:224,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 230
    functionName: conn_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/connection-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *conn_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/connection-t.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 582
    functionName: CONN_HASH_GET_PAYLOAD
    functionSourceFile: /src/haproxy/include/haproxy/connection-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONN_HASH_GET_PAYLOAD(hash)
  - 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: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: _MIN
    functionSourceFile: /src/haproxy/include/haproxy/compat.h
    functionUses: 15
    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: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: _MAX
    functionSourceFile: /src/haproxy/include/haproxy/compat.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MAX(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: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: MIN
    functionSourceFile: /src/haproxy/include/haproxy/compat.h
    functionUses: 87
    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: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: MAX
    functionSourceFile: /src/haproxy/include/haproxy/compat.h
    functionUses: 70
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: IN6_IS_ADDR_V4MAPPED
    functionSourceFile: /src/haproxy/include/haproxy/compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN6_IS_ADDR_V4MAPPED(a)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum quic_cc_algo_state_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: quic_cc_state_str
    functionSourceFile: /src/haproxy/include/haproxy/quic_cc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *quic_cc_state_str(enum quic_cc_algo_state_type state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_cc.h:62,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_cc.h:65,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/include/haproxy/quic_cc.h:66,1
    - Dst: tick_remain
      Src: /src/haproxy/include/haproxy/quic_cc.h:66,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_cc.h:69,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/include/haproxy/quic_cc.h:69,1
    - Dst: tick_remain
      Src: /src/haproxy/include/haproxy/quic_cc.h:69,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_cc.h:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - ev
    argTypes:
    - struct buffer*
    - struct quic_cc_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: quic_cc_event_trace
    functionSourceFile: /src/haproxy/include/haproxy/quic_cc.h
    functionUses: 1
    functionsReached:
    - chunk_appendf
    - TICKS_TO_MS
    - tick_remain
    linkageType: ''
    returnType: void
    signature: void quic_cc_event_trace(struct buffer *buf, const struct quic_cc_event
      *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: quic_cc_priv
    functionSourceFile: /src/haproxy/include/haproxy/quic_cc.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *quic_cc_priv(const struct quic_cc *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_loss_init
      Src: /src/haproxy/include/haproxy/quic_cc.h:92,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/include/haproxy/quic_cc.h:94,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/include/haproxy/quic_cc.h:94,1
    - Dst: cshared_add
      Src: /src/haproxy/include/haproxy/quic_cc.h:96,1
    - Dst: quic_cc_init
      Src: /src/haproxy/include/haproxy/quic_cc.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 5
    argNames:
    - path
    - ipv4
    - max_cwnd
    - algo
    - qc
    argTypes:
    - struct quic_cc_path*
    - int
    - unsigned long
    - struct quic_cc_algo*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: quic_cc_path_init
    functionSourceFile: /src/haproxy/include/haproxy/quic_cc.h
    functionUses: 1
    functionsReached:
    - cshared_add
    - QUIC_MAX
    - quic_loss_init
    - quic_cc_init
    - QUIC_MIN
    linkageType: ''
    returnType: void
    signature: "void quic_cc_path_init(struct quic_cc_path *path, int ipv4, unsigned
      long max_cwnd,\n                                     const struct quic_cc_algo
      *algo,\n                                     struct quic_conn *qc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: quic_cc_path_prep_data
    functionSourceFile: /src/haproxy/include/haproxy/quic_cc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t quic_cc_path_prep_data(struct quic_cc_path *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: HA_SPIN_TRYLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SPIN_TRYLOCK(lbl, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: HA_RWLOCK_TRYWRLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYWRLOCK(lbl, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: HA_RWLOCK_TRYRDLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYRDLOCK(lbl, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: HA_RWLOCK_TRYSKLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYSKLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: HA_RWLOCK_TRYRDTOSK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYRDTOSK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: HA_RWLOCK_TRYRDTOWR
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYRDTOWR(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - how
    - ','
    - set
    - ','
    - oldset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: ha_sigmask
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_sigmask(how, set, oldset)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - thr
    argTypes:
    - struct thread_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: ha_set_thread
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ha_set_thread(const struct thread_info *thr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: thread_idle_now
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_idle_now()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: thread_idle_end
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_idle_end()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: thread_harmless_now
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_harmless_now()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: is_thread_harmless
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_thread_harmless()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: thread_harmless_end
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_harmless_end()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: thread_harmless_end_sig
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_harmless_end_sig()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: thread_isolate
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_isolate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: thread_isolate_full
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_isolate_full()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: thread_release
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_release()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: thread_isolated
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long thread_isolated()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (*handler)(void *)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: setup_extra_threads
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setup_extra_threads(void *(*handler)(void *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: wait_for_threads_completion
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wait_for_threads_completion()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: set_thread_cpu_affinity
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_thread_cpu_affinity()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: ha_get_pthread_id
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long ha_get_pthread_id(unsigned int thr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctr
    - var
    - lim
    argTypes:
    - struct cshared*
    - uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: cshared_init
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cshared_init(struct cshared *ctr, uint64_t *var, int lim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctr
    - diff
    argTypes:
    - struct cshared*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: cshared_add
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cshared_add(struct cshared *ctr, int diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - struct cshared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: cshared_read
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cshared_read(struct cshared *ctr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - how
    - ','
    - set
    - ','
    - oldset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: ha_sigmask
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_sigmask(how, set, oldset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/thread.h:224,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/thread.h:225,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/thread.h:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - thr
    argTypes:
    - struct thread_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 242
    functionName: ha_set_thread
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 5
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void ha_set_thread(const struct thread_info *thr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/include/haproxy/thread.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: thread_idle_now
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 5
    functionsReached:
    - HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void thread_idle_now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/include/haproxy/thread.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: thread_idle_end
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_AND
    linkageType: ''
    returnType: void
    signature: void thread_idle_end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/include/haproxy/thread.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: thread_harmless_now
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 5
    functionsReached:
    - HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void thread_harmless_now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/thread.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: is_thread_harmless
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int is_thread_harmless()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/include/haproxy/thread.h:299,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/thread.h:300,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/thread.h:300,1
    - Dst: thread_harmless_till_end
      Src: /src/haproxy/include/haproxy/thread.h:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: thread_harmless_end
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_AND
    - thread_harmless_till_end
    - _HA_ATOMIC_LOAD
    - likely
    linkageType: ''
    returnType: void
    signature: void thread_harmless_end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/include/haproxy/thread.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: thread_harmless_end_sig
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_AND
    linkageType: ''
    returnType: void
    signature: void thread_harmless_end_sig()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/thread.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: thread_isolated
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 6
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long thread_isolated()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _LK_
    - ','
    - bal
    - ','
    - lbl
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: _lock_wait
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _lock_wait(_LK_, bal, lbl, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _LK_
    - ','
    - bal
    - ','
    - lbl
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: _lock_cond
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _lock_cond(_LK_, bal, lbl, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _LK_
    - ','
    - lbl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: _lock_wait_common
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _lock_wait_common(_LK_, lbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _LK_
    - ','
    - bal
    - ','
    - lbl
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 387
    functionName: _lock_wait
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _lock_wait(_LK_, bal, lbl, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _LK_
    - ','
    - bal
    - ','
    - lbl
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 403
    functionName: _lock_cond
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _lock_cond(_LK_, bal, lbl, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctr
    - var
    - lim
    argTypes:
    - struct cshared*
    - uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 415
    functionName: cshared_init
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cshared_init(struct cshared *ctr, uint64_t *var, int lim)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/include/haproxy/thread.h:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctr
    - diff
    argTypes:
    - struct cshared*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 425
    functionName: cshared_add
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 5
    functionsReached:
    - HA_ATOMIC_ADD
    linkageType: ''
    returnType: void
    signature: void cshared_add(struct cshared *ctr, int diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/thread.h:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - struct cshared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: cshared_read
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cshared_read(struct cshared *ctr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: HA_SPIN_INIT
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SPIN_INIT(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 439
    functionName: HA_SPIN_DESTROY
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SPIN_DESTROY(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 440
    functionName: HA_SPIN_LOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 147
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SPIN_LOCK(lbl, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: HA_SPIN_TRYLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SPIN_TRYLOCK(lbl, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: HA_SPIN_UNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 193
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SPIN_UNLOCK(lbl, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    functionName: HA_RWLOCK_INIT
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_INIT(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: HA_RWLOCK_DESTROY
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_DESTROY(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: HA_RWLOCK_WRLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 126
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_WRLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 447
    functionName: HA_RWLOCK_TRYWRLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYWRLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 448
    functionName: HA_RWLOCK_WRUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 128
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_WRUNLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    functionName: HA_RWLOCK_RDLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 75
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_RDLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 450
    functionName: HA_RWLOCK_TRYRDLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYRDLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    functionName: HA_RWLOCK_RDUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_RDUNLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: HA_RWLOCK_SKLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_SKLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: HA_RWLOCK_SKTOWR
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_SKTOWR(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: HA_RWLOCK_WRTOSK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_WRTOSK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 457
    functionName: HA_RWLOCK_SKTORD
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_SKTORD(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: HA_RWLOCK_WRTORD
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_WRTORD(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 459
    functionName: HA_RWLOCK_SKUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_SKUNLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 460
    functionName: HA_RWLOCK_TRYSKLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYSKLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 461
    functionName: HA_RWLOCK_TRYRDTOSK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYRDTOSK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 462
    functionName: HA_RWLOCK_TRYRDTOWR
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYRDTOWR(lbl, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    functionName: __SPIN_INIT
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __SPIN_INIT(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: __SPIN_DESTROY
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __SPIN_DESTROY(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 470
    functionName: __SPIN_LOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __SPIN_LOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    functionName: __SPIN_TRYLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __SPIN_TRYLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 472
    functionName: __SPIN_UNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __SPIN_UNLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 474
    functionName: __RWLOCK_INIT
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_INIT(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 475
    functionName: __RWLOCK_DESTROY
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_DESTROY(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: __RWLOCK_WRLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_WRLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    functionName: __RWLOCK_TRYWRLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_TRYWRLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 478
    functionName: __RWLOCK_WRUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_WRUNLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: __RWLOCK_RDLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_RDLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 480
    functionName: __RWLOCK_TRYRDLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_TRYRDLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    functionName: __RWLOCK_RDUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_RDUNLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: __RWLOCK_SKLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_SKLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 485
    functionName: __RWLOCK_SKTOWR
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_SKTOWR(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    functionName: __RWLOCK_WRTOSK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_WRTOSK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 487
    functionName: __RWLOCK_SKTORD
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_SKTORD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 488
    functionName: __RWLOCK_WRTORD
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_WRTORD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 489
    functionName: __RWLOCK_SKUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_SKUNLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: __RWLOCK_TRYSKLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_TRYSKLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 491
    functionName: __RWLOCK_TRYRDTOSK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_TRYRDTOSK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 492
    functionName: __RWLOCK_TRYRDTOWR
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RWLOCK_TRYRDTOWR(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 494
    functionName: HA_SPIN_INIT
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SPIN_INIT(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 495
    functionName: HA_SPIN_DESTROY
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SPIN_DESTROY(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 497
    functionName: HA_SPIN_LOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 147
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SPIN_LOCK(lbl, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 498
    functionName: HA_SPIN_TRYLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SPIN_TRYLOCK(lbl, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 499
    functionName: HA_SPIN_UNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 193
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SPIN_UNLOCK(lbl, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 501
    functionName: HA_RWLOCK_INIT
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_INIT(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: HA_RWLOCK_DESTROY
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_DESTROY(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    functionName: HA_RWLOCK_WRLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 126
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_WRLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    functionName: HA_RWLOCK_TRYWRLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYWRLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    functionName: HA_RWLOCK_WRUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 128
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_WRUNLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 506
    functionName: HA_RWLOCK_RDLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 75
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_RDLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: HA_RWLOCK_TRYRDLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYRDLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: HA_RWLOCK_RDUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_RDUNLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: HA_RWLOCK_SKLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_SKLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 511
    functionName: HA_RWLOCK_SKTOWR
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_SKTOWR(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 512
    functionName: HA_RWLOCK_WRTOSK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_WRTOSK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: HA_RWLOCK_SKTORD
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_SKTORD(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    functionName: HA_RWLOCK_WRTORD
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_WRTORD(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    functionName: HA_RWLOCK_SKUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_SKUNLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: HA_RWLOCK_TRYSKLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYSKLOCK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 517
    functionName: HA_RWLOCK_TRYRDTOSK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYRDTOSK(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lbl
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: HA_RWLOCK_TRYRDTOWR
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_RWLOCK_TRYRDTOWR(lbl,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hdr
    - n
    - v
    argTypes:
    - struct http_hdr*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: http_set_hdr
    functionSourceFile: /src/haproxy/include/haproxy/http-hdr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_set_hdr(struct http_hdr *hdr, const struct ist n, const struct
      ist v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/http-hdr.h:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - hdr
    - n
    argTypes:
    - struct http_hdr*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: http_del_hdr
    functionSourceFile: /src/haproxy/include/haproxy/http-hdr.h
    functionUses: 8
    functionsReached:
    - isteqi
    linkageType: ''
    returnType: int
    signature: int http_del_hdr(struct http_hdr *hdr, const struct ist n)
  - 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: POWEROF2
    functionSourceFile: /src/haproxy/include/haproxy/tools-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POWEROF2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: MID_RANGE
    functionSourceFile: /src/haproxy/include/haproxy/tools-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MID_RANGE(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: MAX_RANGE
    functionSourceFile: /src/haproxy/include/haproxy/tools-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_RANGE(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: HAP_STRING
    functionSourceFile: /src/haproxy/include/haproxy/tools-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAP_STRING(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: HAP_XSTRING
    functionSourceFile: /src/haproxy/include/haproxy/tools-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAP_XSTRING(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - len
    - ','
    - seed
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: XXH3
    functionSourceFile: /src/haproxy/include/haproxy/xxhash.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH3(data, len, seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pacer
    - cc
    argTypes:
    - struct quic_pacer*
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: quic_pacing_init
    functionSourceFile: /src/haproxy/include/haproxy/quic_pacing.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void quic_pacing_init(struct quic_pacer *pacer,\n                                    const
      struct quic_cc *cc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iststop
      Src: /src/haproxy/include/haproxy/uri_normalizer.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - dst
    argTypes:
    - struct ist
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: uri_normalizer_fragment_strip
    functionSourceFile: /src/haproxy/include/haproxy/uri_normalizer.h
    functionUses: 1
    functionsReached:
    - iststop
    linkageType: ''
    returnType: enum uri_normalizer_err
    signature: enum uri_normalizer_err uri_normalizer_fragment_strip(const struct
      ist input, struct ist *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - edi
    - payload
    - payload_len
    - aad
    - aad_len
    - pn
    argTypes:
    - struct enc_debug_info*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: enc_debug_info_init
    functionSourceFile: /src/haproxy/include/haproxy/quic_trace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void enc_debug_info_init(struct enc_debug_info *edi,\n                                       unsigned
      char *payload, size_t payload_len,\n                                       unsigned
      char *aad, size_t aad_len, uint64_t pn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _def
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: DEFVAL
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFVAL(_def,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: DEFNULL
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFNULL(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: DEFZERO
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFZERO(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: _FIRST_ARG
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FIRST_ARG(a, b, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: _____equals_1
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _____equals_1(x, y, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: ____equals_1
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ____equals_1(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: ___equals_1
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___equals_1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: __equals_1
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __equals_1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: _____equals_0
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _____equals_0(x, y, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: ____equals_0
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ____equals_0(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: ___equals_0
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___equals_0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: __equals_0
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __equals_0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: _____def_as_empty
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _____def_as_empty(x, y, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: ____def_as_empty
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ____def_as_empty(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: ___def_as_empty
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___def_as_empty(x)
  - 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: __def_as_empty
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __def_as_empty(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: __has_attribute
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_attribute(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: __has_builtin
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __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: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: __attribute__
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __attribute__(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: __attribute__warning
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __attribute__warning(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: __attribute__warning
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __attribute__warning(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: __attribute__warning
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __attribute__warning(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: HA_SECTION
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SECTION(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: HA_SECTION_START
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SECTION_START(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: HA_SECTION_STOP
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SECTION_STOP(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: HA_SECTION
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_SECTION(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: __HA_WEAK
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __HA_WEAK(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: __HA_WEAK
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __HA_WEAK(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: HA_WEAK
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_WEAK(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: __HA_GLOBL
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __HA_GLOBL(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: HA_GLOBL
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_GLOBL(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: my_unreachable
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_unreachable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: my_unreachable
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_unreachable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: my_unreachable
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: my_unreachable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: ASSUME
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSUME(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: ASSUME_NONNULL
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSUME_NONNULL(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: ASSUME
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSUME(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: ASSUME_NONNULL
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSUME_NONNULL(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: ASSUME
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSUME(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: ASSUME_NONNULL
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSUME_NONNULL(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: DO_NOT_FOLD
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_NOT_FOLD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: ALREADY_CHECKED
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALREADY_CHECKED(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: DISGUISE
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISGUISE(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: ONLY_ONCE
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONLY_ONCE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: _TOSTR
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TOSTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: TOSTR
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOSTR(x)
  - 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: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: _CONCAT
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _CONCAT(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: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: CONCAT
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONCAT(a,b)
  - 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: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: __builtin_expect
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __builtin_expect(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: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: likely
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 374
    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: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: unlikely
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 335
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: likely
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 374
    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: 340
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 340
    functionName: unlikely
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 335
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: __builtin_prefetch
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __builtin_prefetch(addr, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ma
    - ','
    - mi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: __GNUC_PREREQ__
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __GNUC_PREREQ__(ma, mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ma
    - ','
    - mi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: __GNUC_PREREQ__
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __GNUC_PREREQ__(ma, mi)
  - 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: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: offsetof
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: offsetof
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offsetof(type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: container_of
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 122
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: container_of_safe
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of_safe(ptr, type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 387
    functionName: ENUM_ATTRIBUTE
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENUM_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: ALIGNED
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGNED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    functionName: MAYBE_ALIGNED
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAYBE_ALIGNED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 460
    functionName: ATOMIC_ALIGNED
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_ALIGNED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    functionName: THREAD_ALIGNED
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_ALIGNED(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: ALWAYS_ALIGN
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS_ALIGN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 487
    functionName: MAYBE_ALIGN
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAYBE_ALIGN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 498
    functionName: ATOMIC_ALIGN
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_ALIGN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 509
    functionName: THREAD_ALIGN
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_ALIGN(...)
  - 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: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: _PAD
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PAD(x,l)
  - 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: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: _THREAD_PAD
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _THREAD_PAD(x,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 525
    functionName: THREAD_PAD
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_PAD(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: 538
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 538
    functionName: _ALWAYS_PAD
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ALWAYS_PAD(x,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 539
    functionName: ALWAYS_PAD
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS_PAD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - decl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 557
    functionName: __decl_thread
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __decl_thread(decl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - decl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 569
    functionName: __decl_thread_var
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __decl_thread_var(decl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - decl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 571
    functionName: __decl_thread_var
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __decl_thread_var(decl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 579
    functionName: __has_feature
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_feature(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/haproxy/include/haproxy/quic_ssl.h:47,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_ssl.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ssl_sock_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: qc_free_ssl_sock_ctx
    functionSourceFile: /src/haproxy/include/haproxy/quic_ssl.h
    functionUses: 2
    functionsReached:
    - SSL_free
    - pool_free
    linkageType: ''
    returnType: void
    signature: void qc_free_ssl_sock_ctx(struct ssl_sock_ctx **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_early_data_accepted
      Src: /src/haproxy/include/haproxy/quic_ssl.h:56,1
    - Dst: SSL_get_early_data_status
      Src: /src/haproxy/include/haproxy/quic_ssl.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: qc_ssl_eary_data_accepted
    functionSourceFile: /src/haproxy/include/haproxy/quic_ssl.h
    functionUses: 2
    functionsReached:
    - SSL_early_data_accepted
    - SSL_get_early_data_status
    linkageType: ''
    returnType: int
    signature: int qc_ssl_eary_data_accepted(const SSL *ssl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_early_data_accepted
      Src: /src/haproxy/include/haproxy/quic_ssl.h:65,1
    - Dst: SSL_get_early_data_status
      Src: /src/haproxy/include/haproxy/quic_ssl.h:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 83
    functionName: quic_ssl_early_data_status_str
    functionSourceFile: /src/haproxy/include/haproxy/quic_ssl.h
    functionUses: 1
    functionsReached:
    - SSL_early_data_accepted
    - SSL_get_early_data_status
    linkageType: ''
    returnType: char
    signature: char *quic_ssl_early_data_status_str(const SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: qc_ssl_eary_data_accepted
    functionSourceFile: /src/haproxy/include/haproxy/quic_ssl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qc_ssl_eary_data_accepted(const SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: quic_ssl_early_data_status_str
    functionSourceFile: /src/haproxy/include/haproxy/quic_ssl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *quic_ssl_early_data_status_str(const SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - x
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: DPRINTF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINTF(x...)
  - 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: DUMP_TRACE
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMP_TRACE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __GNUC_PREREQ__
      Src: /src/haproxy/include/haproxy/bug.h:90,1
    - Dst: __GNUC_PREREQ__
      Src: /src/haproxy/include/haproxy/bug.h:93,1
    - Dst: __GNUC_PREREQ__
      Src: /src/haproxy/include/haproxy/bug.h:98,1
    - Dst: DO_NOT_FOLD
      Src: /src/haproxy/include/haproxy/bug.h:101,1
    - Dst: my_unreachable
      Src: /src/haproxy/include/haproxy/bug.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 103
    functionName: ha_crash_now
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached:
    - my_unreachable
    - DO_NOT_FOLD
    - __GNUC_PREREQ__
    linkageType: ''
    returnType: void
    signature: void ha_crash_now(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: ABORT_NOW
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ABORT_NOW(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - file
    - ','
    - line
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: _ABORT_NOW
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ABORT_NOW(file, line, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DISGUISE
      Src: /src/haproxy/include/haproxy/bug.h:139,1
    - Dst: abort
      Src: /src/haproxy/include/haproxy/bug.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - line
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: abort_with_line
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached:
    - DISGUISE
    - abort
    linkageType: ''
    returnType: void
    signature: void abort_with_line(uint line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - file
    - ','
    - line
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 157
    functionName: __ABORT_NOW
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ABORT_NOW(file, line, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - file
    - ','
    - line
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: __ABORT_NOW
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ABORT_NOW(file, line, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _cond
    - ','
    - _file
    - ','
    - _line
    - ','
    - _type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 243
    functionName: __DBG_COUNT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DBG_COUNT(_cond, _file, _line, _type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - cond
    - ','
    - file
    - ','
    - line
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: _COUNT_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _COUNT_IF(cond, file, line, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - file
    - ','
    - line
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: _COUNT_GLITCH
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _COUNT_GLITCH(file, line, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - file
    - ','
    - line
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: _COUNT_GLITCH
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _COUNT_GLITCH(file, line, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - cond
    - ','
    - file
    - ','
    - line
    - ','
    - type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: __DBG_COUNT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DBG_COUNT(cond, file, line, type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - cond
    - ','
    - file
    - ','
    - line
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: _COUNT_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _COUNT_IF(cond, file, line, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - file
    - ','
    - line
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: _COUNT_GLITCH
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _COUNT_GLITCH(file, line, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: COUNT_GLITCH
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_GLITCH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - cond
    - ','
    - file
    - ','
    - line
    - ','
    - crash
    - ','
    - pfx
    - ','
    - sfx
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 317
    functionName: __BUG_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __BUG_ON(cond, file, line, crash, pfx, sfx, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - cond
    - ','
    - file
    - ','
    - line
    - ','
    - crash
    - ','
    - pfx
    - ','
    - sfx
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 343
    functionName: __BUG_ON_ONCE
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __BUG_ON_ONCE(cond, file, line, crash, pfx, sfx, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 472
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: WARN_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN_ON(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: CHECK_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: COUNT_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_IF(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 472
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    functionName: WARN_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN_ON(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: CHECK_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: COUNT_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_IF(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 472
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: WARN_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN_ON(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: CHECK_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: COUNT_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_IF(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 472
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: WARN_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN_ON(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 381
    functionName: CHECK_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 382
    functionName: COUNT_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_IF(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 391
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 472
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    functionName: WARN_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN_ON(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 393
    functionName: CHECK_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 394
    functionName: COUNT_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_IF(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 404
    functionName: BUG_ON_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 70
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    functionName: CHECK_IF_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 406
    functionName: COUNT_IF_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_IF_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 409
    functionName: BUG_ON_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 70
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    functionName: CHECK_IF_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 411
    functionName: COUNT_IF_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_IF_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: BUG_ON_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 70
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: CHECK_IF_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 416
    functionName: COUNT_IF_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_IF_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 423
    functionName: BUG_ON_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 70
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: CHECK_IF_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 425
    functionName: COUNT_IF_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_IF_HOT(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: BUG_ON_STRESS
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_STRESS(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 440
    functionName: BUG_ON_STRESS
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON_STRESS(cond, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - what
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: HA_LINK_ERROR
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_LINK_ERROR(what)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - what
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: HA_LINK_ERROR
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_LINK_ERROR(what)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 465
    functionName: ha_free
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 274
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_free(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _what
    - ','
    - _arg8
    - ','
    - _arg32
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 483
    functionName: MK_CALLER
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MK_CALLER(_what, _arg8, _arg32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_FETCH_OR
      Src: /src/haproxy/include/haproxy/bug.h:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - enum tainted_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 510
    functionName: mark_tainted
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 25
    functionsReached:
    - HA_ATOMIC_FETCH_OR
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mark_tainted(const enum tainted_flags flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/bug.h:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 515
    functionName: get_tainted
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 6
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_tainted()
  - 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: 558
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 558
    functionName: calloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 240
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: calloc(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: 582
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 582
    functionName: will_free
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: will_free(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: 603
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 603
    functionName: ha_free
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 274
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_free(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 620
    functionName: malloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 114
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: malloc(x)
  - 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: 637
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 637
    functionName: realloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: realloc(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: 654
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 654
    functionName: strdup
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 259
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strdup(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 672
    functionName: ha_aligned_alloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_alloc(a,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 690
    functionName: ha_aligned_zalloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_zalloc(a,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 708
    functionName: ha_aligned_alloc_safe
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_alloc_safe(a,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 726
    functionName: ha_aligned_zalloc_safe
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_zalloc_safe(a,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cnt
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 746
    functionName: ha_aligned_alloc_typed
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_alloc_typed(cnt,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cnt
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 766
    functionName: ha_aligned_zalloc_typed
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_zalloc_typed(cnt,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 786
    functionName: ha_aligned_free
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_free(x)
  - 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: 808
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 808
    functionName: ha_aligned_free_size
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_free_size(p,s)
  - 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: 812
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 812
    functionName: will_free
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: will_free(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 813
    functionName: ha_aligned_alloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_alloc(a,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 814
    functionName: ha_aligned_zalloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_zalloc(a,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 815
    functionName: ha_aligned_alloc_safe
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_alloc_safe(a,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 816
    functionName: ha_aligned_zalloc_safe
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_zalloc_safe(a,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cnt
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 817
    functionName: ha_aligned_alloc_typed
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_alloc_typed(cnt,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cnt
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 818
    functionName: ha_aligned_zalloc_typed
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_zalloc_typed(cnt,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 819
    functionName: ha_aligned_free
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_free(p)
  - 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: 820
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 820
    functionName: ha_aligned_free_size
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_aligned_free_size(p,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - wf
    - v
    - t
    argTypes:
    - struct wf*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: wf_reset
    functionSourceFile: /src/haproxy/include/haproxy/window_filter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t wf_reset(struct wf *wf, uint64_t v, uint32_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wf_reset
      Src: /src/haproxy/include/haproxy/window_filter.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - wf
    - len
    - v
    - t
    argTypes:
    - struct wf*
    - size_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: wf_init
    functionSourceFile: /src/haproxy/include/haproxy/window_filter.h
    functionUses: 1
    functionsReached:
    - wf_reset
    linkageType: ''
    returnType: void
    signature: void wf_init(struct wf *wf, size_t len, uint64_t v, uint32_t t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/window_filter.h:66,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/window_filter.h:66,1
    - Dst: wf_reset
      Src: /src/haproxy/include/haproxy/window_filter.h:67,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/window_filter.h:69,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/window_filter.h:71,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/window_filter.h:76,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/window_filter.h:81,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/window_filter.h:85,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/window_filter.h:88,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - wf
    - v
    - t
    argTypes:
    - struct wf*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 93
    functionName: wf_max_update
    functionSourceFile: /src/haproxy/include/haproxy/window_filter.h
    functionUses: 2
    functionsReached:
    - unlikely
    - wf_reset
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t wf_max_update(struct wf *wf, uint64_t v, uint32_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wf
    argTypes:
    - struct wf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: wf_get_max
    functionSourceFile: /src/haproxy/include/haproxy/window_filter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t wf_get_max(struct wf *wf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/quic_cid.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct quic_cid*
    - struct quic_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: quic_cid_cpy
    functionSourceFile: /src/haproxy/include/haproxy/quic_cid.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void quic_cid_cpy(struct quic_cid *dst, const struct quic_cid *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_cid.h:65,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_cid.h:67,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_cid.h:69,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_cid.h:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - cid
    argTypes:
    - struct buffer*
    - struct quic_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: quic_cid_dump
    functionSourceFile: /src/haproxy/include/haproxy/quic_cid.h
    functionUses: 1
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void quic_cid_dump(struct buffer *buf,\n                                 const
      struct quic_cid *cid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cid
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: _quic_cid_tree_idx
    functionSourceFile: /src/haproxy/include/haproxy/quic_cid.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uchar
    signature: uchar _quic_cid_tree_idx(const unsigned char *cid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _quic_cid_tree_idx
      Src: /src/haproxy/include/haproxy/quic_cid.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cid
    argTypes:
    - struct quic_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: quic_cid_tree_idx
    functionSourceFile: /src/haproxy/include/haproxy/quic_cid.h
    functionUses: 4
    functionsReached:
    - _quic_cid_tree_idx
    linkageType: ''
    returnType: uchar
    signature: uchar quic_cid_tree_idx(const struct quic_cid *cid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cid_tree_idx
      Src: /src/haproxy/include/haproxy/quic_cid.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn_id
    argTypes:
    - struct quic_connection_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: quic_cid_get_tree
    functionSourceFile: /src/haproxy/include/haproxy/quic_cid.h
    functionUses: 1
    functionsReached:
    - quic_cid_tree_idx
    linkageType: ''
    returnType: struct quic_cid_tree
    signature: struct quic_cid_tree *quic_cid_get_tree(const struct quic_connection_id
      *conn_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cid_get_tree
      Src: /src/haproxy/include/haproxy/quic_cid.h:96,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/quic_cid.h:98,1
    - Dst: ebmb_delete
      Src: /src/haproxy/include/haproxy/quic_cid.h:99,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/quic_cid.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - conn_id
    argTypes:
    - struct quic_connection_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: quic_cid_delete
    functionSourceFile: /src/haproxy/include/haproxy/quic_cid.h
    functionUses: 3
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - ebmb_delete
    - quic_cid_get_tree
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void quic_cid_delete(struct quic_connection_id *conn_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct quic_frame*
    - struct quic_connection_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: quic_connection_id_to_frm_cpy
    functionSourceFile: /src/haproxy/include/haproxy/quic_cid.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void quic_connection_id_to_frm_cpy(struct quic_frame *dst,\n                                                 struct
      quic_connection_id *src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/pattern.h:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: pat_find_match_name
    functionSourceFile: /src/haproxy/include/haproxy/pattern.h
    functionUses: 3
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int pat_find_match_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/include/haproxy/pattern.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct pat_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: pat_ref_newgen
    functionSourceFile: /src/haproxy/include/haproxy/pattern.h
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_ADD_FETCH
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pat_ref_newgen(struct pat_ref *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/pattern.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - gen
    argTypes:
    - struct pat_ref*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: pat_ref_giveup
    functionSourceFile: /src/haproxy/include/haproxy/pattern.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_CAS
    linkageType: ''
    returnType: void
    signature: void pat_ref_giveup(struct pat_ref *ref, unsigned int gen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/pattern.h:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ref
    - gen
    argTypes:
    - struct pat_ref*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: pat_ref_may_commit
    functionSourceFile: /src/haproxy/include/haproxy/pattern.h
    functionUses: 6
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int pat_ref_may_commit(struct pat_ref *ref, unsigned int gen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/include/haproxy/pattern.h:268,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/include/haproxy/pattern.h:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ref
    - gen
    argTypes:
    - struct pat_ref*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 273
    functionName: pat_ref_commit
    functionSourceFile: /src/haproxy/include/haproxy/pattern.h
    functionUses: 2
    functionsReached:
    - pat_ref_may_commit
    - event_hdl_publish
    linkageType: ''
    returnType: int
    signature: int pat_ref_commit(struct pat_ref *ref, unsigned int gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_purge_range
      Src: /src/haproxy/include/haproxy/pattern.h:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ref
    - oldest
    - budget
    argTypes:
    - struct pat_ref*
    - uint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: pat_ref_purge_older
    functionSourceFile: /src/haproxy/include/haproxy/pattern.h
    functionUses: 0
    functionsReached:
    - pat_ref_purge_range
    linkageType: ''
    returnType: int
    signature: int pat_ref_purge_older(struct pat_ref *ref, uint oldest, int budget)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:285,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:287,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:288,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:289,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:290,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:291,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:292,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:293,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 298
    functionName: qcc_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *qcc_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic-t.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:323,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:325,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:326,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:327,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:328,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:329,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:330,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:331,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:332,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:333,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:334,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:335,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:336,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:337,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 342
    functionName: qcs_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *qcs_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic-t.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/http_client.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: httpclient_data
    functionSourceFile: /src/haproxy/include/haproxy/http_client.h
    functionUses: 2
    functionsReached:
    - b_data
    linkageType: ''
    returnType: int
    signature: int httpclient_data(struct httpclient *hc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: httpclient_ended
    functionSourceFile: /src/haproxy/include/haproxy/http_client.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int httpclient_ended(struct httpclient *hc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: httpclient_started
    functionSourceFile: /src/haproxy/include/haproxy/http_client.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int httpclient_started(struct httpclient *hc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb32_item_insert
      Src: /src/haproxy/include/haproxy/listener.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - px
    - li
    argTypes:
    - struct proxy*
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: listener_index_id
    functionSourceFile: /src/haproxy/include/haproxy/listener.h
    functionUses: 2
    functionsReached:
    - ceb32_item_insert
    linkageType: ''
    returnType: void
    signature: void listener_index_id(struct proxy *px, struct listener *li)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/listener.h:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct accept_queue_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 259
    functionName: accept_queue_ring_len
    functionSourceFile: /src/haproxy/include/haproxy/listener.h
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint
    signature: uint accept_queue_ring_len(const struct accept_queue_ring *ring)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/action.h:47,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/action.h:53,1
    - Dst: strncmp
      Src: /src/haproxy/include/haproxy/action.h:54,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/action.h:60,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - keywords
    - kw
    argTypes:
    - struct list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 65
    functionName: action_lookup
    functionSourceFile: /src/haproxy/include/haproxy/action.h
    functionUses: 10
    functionsReached:
    - LIST_ISEMPTY
    - strcmp
    - strncmp
    - strlen
    linkageType: ''
    returnType: struct action_kw
    signature: struct action_kw *action_lookup(struct list *keywords, const char *kw)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/action.h:53,1
    - Dst: strncmp
      Src: /src/haproxy/include/haproxy/action.h:54,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/action.h:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/include/haproxy/action.h
    functionUses: 275
    functionsReached:
    - strcmp
    - strncmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(kw_list, keywords, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/include/haproxy/action.h:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - keywords
    - chk
    argTypes:
    - struct list*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 90
    functionName: action_build_list
    functionSourceFile: /src/haproxy/include/haproxy/action.h
    functionUses: 6
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void action_build_list(struct list *keywords,\n\t\t\t\t     struct
      buffer *chk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/include/haproxy/action.h:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/include/haproxy/action.h
    functionUses: 275
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(kw_list, keywords, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_sample_expr
      Src: /src/haproxy/include/haproxy/action.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: release_timeout_action
    functionSourceFile: /src/haproxy/include/haproxy/action.h
    functionUses: 0
    functionsReached:
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void release_timeout_action(struct act_rule *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: release_sample_expr
      Src: /src/haproxy/include/haproxy/action.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: release_expr_int_action
    functionSourceFile: /src/haproxy/include/haproxy/action.h
    functionUses: 0
    functionsReached:
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void release_expr_int_action(struct act_rule *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: ARGM
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGM(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - t1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: ARG1
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG1(m, t1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - t1
    - ','
    - t2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: ARG2
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG2(m, t1, t2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - m
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: ARG3
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG3(m, t1, t2, t3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - m
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - ','
    - t4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: ARG4
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG4(m, t1, t2, t3, t4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - m
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - ','
    - t4
    - ','
    - t5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: ARG5
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG5(m, t1, t2, t3, t4, t5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - m
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - ','
    - t4
    - ','
    - t5
    - ','
    - t6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: ARG6
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG6(m, t1, t2, t3, t4, t5, t6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - m
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - ','
    - t4
    - ','
    - t5
    - ','
    - t6
    - ','
    - t7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: ARG7
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG7(m, t1, t2, t3, t4, t5, t6, t7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - m
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - ','
    - t4
    - ','
    - t5
    - ','
    - t6
    - ','
    - t7
    - ','
    - t8
    - )
    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: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: ARG8
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG8(m, t1, t2, t3, t4, t5, t6, t7, t8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - m
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - ','
    - t4
    - ','
    - t5
    - ','
    - t6
    - ','
    - t7
    - ','
    - t8
    - ','
    - t9
    - )
    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: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: ARG9
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG9(m, t1, t2, t3, t4, t5, t6, t7, t8, t9)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - m
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - ','
    - t4
    - ','
    - t5
    - ','
    - t6
    - ','
    - t7
    - ','
    - t8
    - ','
    - t9
    - ','
    - t10
    - )
    argTypes:
    - auto
    - auto
    - 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: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: ARG10
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG10(m, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - m
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - ','
    - t4
    - ','
    - t5
    - ','
    - t6
    - ','
    - t7
    - ','
    - t8
    - ','
    - t9
    - ','
    - t10
    - ','
    - t11
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - 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: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: ARG11
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG11(m, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - m
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - ','
    - t4
    - ','
    - t5
    - ','
    - t6
    - ','
    - t7
    - ','
    - t8
    - ','
    - t9
    - ','
    - t10
    - ','
    - t11
    - ','
    - t12
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - 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: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: ARG12
    functionSourceFile: /src/haproxy/include/haproxy/arg.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG12(m, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: action_lookup
      Src: /src/haproxy/include/haproxy/tcpcheck.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: action_kw_tcp_check_lookup
    functionSourceFile: /src/haproxy/include/haproxy/tcpcheck.h
    functionUses: 2
    functionsReached:
    - action_lookup
    linkageType: ''
    returnType: struct action_kw
    signature: struct action_kw *action_kw_tcp_check_lookup(const char *kw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: action_build_list
      Src: /src/haproxy/include/haproxy/tcpcheck.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chk
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: action_kw_tcp_check_build_list
    functionSourceFile: /src/haproxy/include/haproxy/tcpcheck.h
    functionUses: 2
    functionsReached:
    - action_build_list
    linkageType: ''
    returnType: void
    signature: void action_kw_tcp_check_build_list(struct buffer *chk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tcpchk_rules_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: tcpchk_rules_type_to_proto_mode
    functionSourceFile: /src/haproxy/include/haproxy/tcpcheck.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tcpchk_rules_type_to_proto_mode(int tcpchk_rules_type)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct tcpcheck_ruleset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: tcpcheck_ruleset_type_to_str
    functionSourceFile: /src/haproxy/include/haproxy/tcpcheck.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *tcpcheck_ruleset_type_to_str(struct tcpcheck_ruleset *rs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: qc_is_back
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qc_is_back(const struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: qc_cid_side
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum quic_cid_side
    signature: enum quic_cid_side qc_cid_side(const struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb64_first
      Src: /src/haproxy/include/haproxy/quic_conn.h:110,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_conn.h:114,1
    - Dst: quic_cid_delete
      Src: /src/haproxy/include/haproxy/quic_conn.h:117,1
    - Dst: eb64_next
      Src: /src/haproxy/include/haproxy/quic_conn.h:120,1
    - Dst: eb64_delete
      Src: /src/haproxy/include/haproxy/quic_conn.h:121,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_conn.h:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 124
    functionName: free_quic_conn_cids
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 2
    functionsReached:
    - eb64_next
    - eb64_entry
    - eb64_delete
    - quic_cid_delete
    - eb64_first
    - pool_free
    linkageType: ''
    returnType: void
    signature: void free_quic_conn_cids(struct quic_conn *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_first
      Src: /src/haproxy/include/haproxy/quic_conn.h:132,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_conn.h:136,1
    - Dst: eb64_next
      Src: /src/haproxy/include/haproxy/quic_conn.h:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cc_conn
    - conn
    argTypes:
    - struct quic_conn_closed*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: quic_conn_mv_cids_to_cc_conn
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 1
    functionsReached:
    - eb64_next
    - eb64_entry
    - eb64_first
    linkageType: ''
    returnType: void
    signature: "void quic_conn_mv_cids_to_cc_conn(struct quic_conn_closed *cc_conn,\n
      \                                               struct quic_conn *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncbmb_is_null
      Src: /src/haproxy/include/haproxy/quic_conn.h:152,1
    - Dst: b_alloc
      Src: /src/haproxy/include/haproxy/quic_conn.h:155,1
    - Dst: ncbmb_make
      Src: /src/haproxy/include/haproxy/quic_conn.h:158,1
    - Dst: ncbmb_init
      Src: /src/haproxy/include/haproxy/quic_conn.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ncbuf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: quic_get_ncbuf
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 1
    functionsReached:
    - ncbmb_make
    - b_alloc
    - ncbmb_is_null
    - ncbmb_init
    linkageType: ''
    returnType: struct ncbmbuf
    signature: struct ncbmbuf *quic_get_ncbuf(struct ncbmbuf *ncbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncbmb_is_null
      Src: /src/haproxy/include/haproxy/quic_conn.h:169,1
    - Dst: b_make
      Src: /src/haproxy/include/haproxy/quic_conn.h:172,1
    - Dst: b_free
      Src: /src/haproxy/include/haproxy/quic_conn.h:173,1
    - Dst: offer_buffers
      Src: /src/haproxy/include/haproxy/quic_conn.h:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ncbuf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: quic_free_ncbuf
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 3
    functionsReached:
    - b_make
    - ncbmb_is_null
    - offer_buffers
    - b_free
    linkageType: ''
    returnType: void
    signature: void quic_free_ncbuf(struct ncbmbuf *ncbuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/include/haproxy/quic_conn.h:192,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/quic_conn.h:193,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/include/haproxy/quic_conn.h:198,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/include/haproxy/quic_conn.h:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - o
    - m
    argTypes:
    - enum obj_type*
    - struct stats_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 202
    functionName: qc_counters
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 2
    functionsReached:
    - objt_server
    - objt_listener
    - EXTRA_COUNTERS_GET
    linkageType: ''
    returnType: void
    signature: void *qc_counters(enum obj_type *o, const struct stats_module *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ql
    argTypes:
    - struct quic_loss*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: quic_loss_init
    functionSourceFile: /src/haproxy/include/haproxy/quic_loss.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_loss_init(struct quic_loss *ql)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QUIC_MAX
      Src: /src/haproxy/include/haproxy/quic_loss.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ql
    - period
    - now_us
    - max_ack_delay
    argTypes:
    - struct quic_loss*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: quic_loss_persistent_congestion
    functionSourceFile: /src/haproxy/include/haproxy/quic_loss.h
    functionUses: 1
    functionsReached:
    - QUIC_MAX
    linkageType: ''
    returnType: int
    signature: "int quic_loss_persistent_congestion(struct quic_loss *ql,\n                                                  unsigned
      int period,\n                                                  unsigned int
      now_us,\n                                                  unsigned int max_ack_delay)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QUIC_MAX
      Src: /src/haproxy/include/haproxy/quic_loss.h:73,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/quic_loss.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: quic_pto
    functionSourceFile: /src/haproxy/include/haproxy/quic_loss.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_LOAD
    - QUIC_MAX
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int quic_pto(struct quic_conn *qc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _line
    - ','
    - _ptr
    - ','
    - _name
    - ','
    - _size
    - ','
    - _type_align
    - ','
    - _align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: __REGISTER_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __REGISTER_POOL(_line, _ptr, _name, _size, _type_align, _align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - line
    - ','
    - ptr
    - ','
    - name
    - ','
    - size
    - ','
    - align
    - ','
    - type_align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: _REGISTER_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _REGISTER_POOL(line, ptr, name, size, align, type_align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - name
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: REGISTER_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_POOL(ptr, name, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - name
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: DECLARE_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_POOL(ptr, name, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - name
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: DECLARE_STATIC_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_STATIC_POOL(ptr, name, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - name
    - ','
    - size
    - ','
    - align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: REGISTER_ALIGNED_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_ALIGNED_POOL(ptr, name, size, align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - name
    - ','
    - size
    - ','
    - align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: DECLARE_ALIGNED_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ALIGNED_POOL(ptr, name, size, align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - name
    - ','
    - size
    - ','
    - align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: DECLARE_STATIC_ALIGNED_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_STATIC_ALIGNED_POOL(ptr, name, size, align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - ptr
    - ','
    - name
    - ','
    - type
    - ','
    - extra
    - ','
    - align
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: _REGISTER_TYPED_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _REGISTER_TYPED_POOL(ptr, name, type, extra, align, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - ptr
    - ','
    - name
    - ','
    - type
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: REGISTER_TYPED_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TYPED_POOL(ptr, name, type, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - ptr
    - ','
    - name
    - ','
    - type
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: DECLARE_TYPED_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_TYPED_POOL(ptr, name, type, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - ptr
    - ','
    - name
    - ','
    - type
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: DECLARE_STATIC_TYPED_POOL
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_STATIC_TYPED_POOL(ptr, name, type, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: POOL_DEBUG_SET_MARK
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POOL_DEBUG_SET_MARK(pool, item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: POOL_DEBUG_RESET_MARK
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POOL_DEBUG_RESET_MARK(pool, item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pool
    - ','
    - item
    - ','
    - caller
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: POOL_DEBUG_CHECK_MARK
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POOL_DEBUG_CHECK_MARK(pool, item, caller)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pool
    - ','
    - item
    - ','
    - caller
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: POOL_DEBUG_TRACE_CALLER
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POOL_DEBUG_TRACE_CALLER(pool, item, caller)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - size
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: create_pool
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: create_pool(name, size, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - size
    - ','
    - align
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: create_aligned_pool
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: create_aligned_pool(name, size, align, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/pool.h:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: pool_allocated
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 5
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint
    signature: uint pool_allocated(const struct pool_head *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/pool.h:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: pool_used
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 5
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint
    signature: uint pool_used(const struct pool_head *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/pool.h:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: pool_needed_avg
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint
    signature: uint pool_needed_avg(const struct pool_head *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/pool.h:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 260
    functionName: pool_failed
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint
    signature: uint pool_failed(const struct pool_head *pool)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/pool.h:277,1
    - Dst: pool_allocated
      Src: /src/haproxy/include/haproxy/pool.h:280,1
    - Dst: pool_used
      Src: /src/haproxy/include/haproxy/pool.h:281,1
    - Dst: pool_needed_avg
      Src: /src/haproxy/include/haproxy/pool.h:285,1
    - Dst: swrate_avg
      Src: /src/haproxy/include/haproxy/pool.h:286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 294
    functionName: pool_releasable
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 1
    functionsReached:
    - unlikely
    - pool_needed_avg
    - pool_used
    - swrate_avg
    - pool_allocated
    linkageType: ''
    returnType: uint
    signature: uint pool_releasable(const struct pool_head *pool)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/pool.h:310,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/pool.h:313,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/pool.h:313,1
    - Dst: pool_refill_local_from_shared
      Src: /src/haproxy/include/haproxy/pool.h:315,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/pool.h:316,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/include/haproxy/pool.h:321,1
    - Dst: typeof
      Src: /src/haproxy/include/haproxy/pool.h:321,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/pool.h:323,1
    - Dst: LIST_PREV
      Src: /src/haproxy/include/haproxy/pool.h:329,1
    - Dst: typeof
      Src: /src/haproxy/include/haproxy/pool.h:329,1
    - Dst: pool_check_pattern
      Src: /src/haproxy/include/haproxy/pool.h:332,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/pool.h:335,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/pool.h:336,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/pool.h:337,1
    - Dst: POOL_DEBUG_SET_MARK
      Src: /src/haproxy/include/haproxy/pool.h:340,1
    - Dst: POOL_DEBUG_TRACE_CALLER
      Src: /src/haproxy/include/haproxy/pool.h:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - pool
    - caller
    argTypes:
    - struct pool_head*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 348
    functionName: pool_get_from_cache
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 1
    functionsReached:
    - unlikely
    - LIST_DELETE
    - typeof
    - LIST_NEXT
    - BUG_ON
    - LIST_PREV
    - pool_check_pattern
    - LIST_ISEMPTY
    - POOL_DEBUG_SET_MARK
    - POOL_DEBUG_TRACE_CALLER
    - pool_refill_local_from_shared
    linkageType: ''
    returnType: void
    signature: void *pool_get_from_cache(struct pool_head *pool, const void *caller)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: pool_alloc_flag
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pool_alloc_flag(pool, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: pool_alloc
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pool_alloc(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: pool_zalloc
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pool_zalloc(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 383
    functionName: pool_free
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 155
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pool_free(pool, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 406
    functionName: pool_free
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 155
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pool_free(pool, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 425
    functionName: pool_alloc_flag
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pool_alloc_flag(pool, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 427
    functionName: pool_alloc
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pool_alloc(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 429
    functionName: pool_zalloc
    functionSourceFile: /src/haproxy/include/haproxy/pool.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pool_zalloc(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: SHM_STATS_FILE_MAPPING_SIZE
    functionSourceFile: /src/haproxy/include/haproxy/stats-file-t.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHM_STATS_FILE_MAPPING_SIZE(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mem
    - ','
    - it
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: SHM_STATS_FILE_OBJECT
    functionSourceFile: /src/haproxy/include/haproxy/stats-file-t.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHM_STATS_FILE_OBJECT(mem, it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: pbuf_le32toh
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pbuf_le32toh(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_le32toh
      Src: /src/haproxy/include/haproxy/protobuf.h:88,1
    - Dst: pbuf_le32toh
      Src: /src/haproxy/include/haproxy/protobuf.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: pbuf_le64toh
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached:
    - pbuf_le32toh
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t pbuf_le64toh(uint64_t v)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:97,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:99,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:101,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:103,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:105,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:107,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:109,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:111,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:115,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:117,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:119,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:123,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:125,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/protobuf.h:127,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 131
    functionName: protobuf_type
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int protobuf_type(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - val
    - pos
    - len
    argTypes:
    - uint64_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 166
    functionName: protobuf_varint
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int protobuf_varint(uint64_t *val, unsigned char *pos, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - val
    - pos
    - len
    argTypes:
    - uint64_t*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 202
    functionName: protobuf_decode_varint
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int protobuf_decode_varint(uint64_t *val, unsigned char **pos, size_t
      *len)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - pos
    - len
    - vlen
    argTypes:
    - unsigned char**
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 235
    functionName: protobuf_skip_varint
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int protobuf_skip_varint(unsigned char **pos, size_t *len, size_t vlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - pos
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 271
    functionName: protobuf_varint_getlen
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int protobuf_varint_getlen(unsigned char *pos, size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: protobuf_varint_getlen
      Src: /src/haproxy/include/haproxy/protobuf.h:287,1
    - Dst: protobuf_varint
      Src: /src/haproxy/include/haproxy/protobuf.h:302,1
    - Dst: protobuf_varint
      Src: /src/haproxy/include/haproxy/protobuf.h:314,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - smp
    - type
    - pos
    - len
    - vlen
    argTypes:
    - struct sample*
    - int
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 329
    functionName: protobuf_smp_store_varint
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached:
    - protobuf_varint_getlen
    - protobuf_varint
    linkageType: ''
    returnType: int
    signature: "int protobuf_smp_store_varint(struct sample *smp, int type,\n                              unsigned
      char *pos, size_t len, size_t vlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pos
    - len
    - vlen
    argTypes:
    - unsigned char**
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: protobuf_skip_64bit
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int protobuf_skip_64bit(unsigned char **pos, size_t *len, size_t vlen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_le64toh
      Src: /src/haproxy/include/haproxy/protobuf.h:368,1
    - Dst: read_u64
      Src: /src/haproxy/include/haproxy/protobuf.h:368,1
    - Dst: pbuf_le64toh
      Src: /src/haproxy/include/haproxy/protobuf.h:374,1
    - Dst: read_dbl
      Src: /src/haproxy/include/haproxy/protobuf.h:374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - smp
    - type
    - pos
    - len
    - vlen
    argTypes:
    - struct sample*
    - int
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 383
    functionName: protobuf_smp_store_64bit
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached:
    - read_dbl
    - pbuf_le64toh
    - read_u64
    linkageType: ''
    returnType: int
    signature: "int protobuf_smp_store_64bit(struct sample *smp, int type,\n                             unsigned
      char *pos, size_t len, size_t vlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pos
    - len
    - vlen
    argTypes:
    - unsigned char**
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 398
    functionName: protobuf_skip_vlen
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int protobuf_skip_vlen(unsigned char **pos, size_t *len, size_t vlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - smp
    - type
    - pos
    - len
    - vlen
    argTypes:
    - struct sample*
    - int
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 420
    functionName: protobuf_smp_store_vlen
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int protobuf_smp_store_vlen(struct sample *smp, int type,\n                            unsigned
      char *pos, size_t len, size_t vlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pos
    - len
    - vlen
    argTypes:
    - unsigned char**
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 434
    functionName: protobuf_skip_32bit
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int protobuf_skip_32bit(unsigned char **pos, size_t *len, size_t vlen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_le32toh
      Src: /src/haproxy/include/haproxy/protobuf.h:458,1
    - Dst: read_u32
      Src: /src/haproxy/include/haproxy/protobuf.h:458,1
    - Dst: pbuf_le32toh
      Src: /src/haproxy/include/haproxy/protobuf.h:464,1
    - Dst: read_u32
      Src: /src/haproxy/include/haproxy/protobuf.h:464,1
    - Dst: pbuf_le32toh
      Src: /src/haproxy/include/haproxy/protobuf.h:470,1
    - Dst: read_flt
      Src: /src/haproxy/include/haproxy/protobuf.h:470,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 5
    argNames:
    - smp
    - type
    - pos
    - len
    - vlen
    argTypes:
    - struct sample*
    - int
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 479
    functionName: protobuf_smp_store_32bit
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 0
    functionsReached:
    - read_flt
    - read_u32
    - pbuf_le32toh
    linkageType: ''
    returnType: int
    signature: "int protobuf_smp_store_32bit(struct sample *smp, int type,\n                             unsigned
      char *pos, size_t len, size_t vlen)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: protobuf_decode_varint
      Src: /src/haproxy/include/haproxy/protobuf.h:517,1
    - Dst: struct protobuf_parser_def*::skip
      Src: /src/haproxy/include/haproxy/protobuf.h:530,1
    - Dst: protobuf_decode_varint
      Src: /src/haproxy/include/haproxy/protobuf.h:536,1
    - Dst: struct protobuf_parser_def*::skip
      Src: /src/haproxy/include/haproxy/protobuf.h:544,1
    - Dst: struct protobuf_parser_def*::smp_store
      Src: /src/haproxy/include/haproxy/protobuf.h:554,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - arg_p
    - smp
    - pos
    - len
    argTypes:
    - struct arg*
    - struct sample*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 568
    functionName: protobuf_field_lookup
    functionSourceFile: /src/haproxy/include/haproxy/protobuf.h
    functionUses: 2
    functionsReached:
    - struct protobuf_parser_def*::smp_store
    - struct protobuf_parser_def*::skip
    - protobuf_decode_varint
    linkageType: ''
    returnType: int
    signature: "int protobuf_field_lookup(const struct arg *arg_p, struct sample *smp,\n
      \                                       unsigned char **pos, size_t *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _buf
    - ','
    - _len
    - ','
    - _del
    - ','
    - _flg
    - ','
    - _val
    - ','
    - _nam
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 76
    functionName: __APPEND_FLAG
    functionSourceFile: /src/haproxy/include/haproxy/show_flags-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __APPEND_FLAG(_buf, _len, _del, _flg, _val, _nam, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - _buf
    - ','
    - _len
    - ','
    - _del
    - ','
    - _flg
    - ','
    - _msk
    - ','
    - _val
    - ','
    - _nam
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: __APPEND_ENUM
    functionSourceFile: /src/haproxy/include/haproxy/show_flags-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __APPEND_ENUM(_buf, _len, _del, _flg, _msk, _val, _nam, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _buf
    - ','
    - _len
    - ','
    - _del
    - ','
    - _flg
    - ','
    - _val
    - ','
    - _nam
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: __APPEND_FLAG
    functionSourceFile: /src/haproxy/include/haproxy/show_flags-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __APPEND_FLAG(_buf, _len, _del, _flg, _val, _nam, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - _buf
    - ','
    - _len
    - ','
    - _del
    - ','
    - _flg
    - ','
    - _msk
    - ','
    - _val
    - ','
    - _nam
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: __APPEND_ENUM
    functionSourceFile: /src/haproxy/include/haproxy/show_flags-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __APPEND_ENUM(_buf, _len, _del, _flg, _msk, _val, _nam, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: read_u16
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t read_u16(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - u16
    argTypes:
    - void*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: write_u16
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_u16(void *p, const uint16_t u16)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: read_u32
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t read_u32(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - u32
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: write_u32
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_u32(void *p, const uint32_t u32)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: read_u64
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t read_u64(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - u64
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: write_u64
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_u64(void *p, const uint64_t u64)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: read_ptr
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *read_ptr(const void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_u32
      Src: /src/haproxy/include/haproxy/net_helper.h:89,1
    - Dst: write_u64
      Src: /src/haproxy/include/haproxy/net_helper.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: write_ptr
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 2
    functionsReached:
    - write_u32
    - write_u64
    linkageType: ''
    returnType: void
    signature: void write_ptr(void *p, const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: read_flt
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float read_flt(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flt
    argTypes:
    - void*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: write_flt
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_flt(void *p, const float flt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: read_dbl
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double read_dbl(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - dbl
    argTypes:
    - void*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: write_dbl
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_dbl(void *p, const double dbl)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - dst
    - bytes
    - p1
    - s1
    - p2
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 146
    functionName: readv_bytes
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void readv_bytes(void *dst, const size_t bytes, const void *p1, size_t
      s1, const void *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - src
    - bytes
    - p1
    - s1
    - p2
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: writev_bytes
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void writev_bytes(const void *src, const size_t bytes, void *p1, size_t
      s1, void *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/net_helper.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - p1
    - s1
    - p2
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 189
    functionName: readv_u16
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t readv_u16(const void *p1, size_t s1, const void *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/net_helper.h:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - p1
    - s1
    - p2
    - u16
    argTypes:
    - void*
    - size_t
    - void*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 208
    functionName: writev_u16
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void writev_u16(void *p1, size_t s1, void *p2, const uint16_t u16)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/net_helper.h:219,1
    - Dst: read_u32
      Src: /src/haproxy/include/haproxy/net_helper.h:220,1
    - Dst: readv_bytes
      Src: /src/haproxy/include/haproxy/net_helper.h:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p1
    - s1
    - p2
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: readv_u32
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - read_u32
    - readv_bytes
    - likely
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t readv_u32(const void *p1, size_t s1, const void *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/net_helper.h:233,1
    - Dst: write_u32
      Src: /src/haproxy/include/haproxy/net_helper.h:234,1
    - Dst: writev_bytes
      Src: /src/haproxy/include/haproxy/net_helper.h:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - p1
    - s1
    - p2
    - u32
    argTypes:
    - void*
    - size_t
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: writev_u32
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - write_u32
    - writev_bytes
    - likely
    linkageType: ''
    returnType: void
    signature: void writev_u32(void *p1, size_t s1, void *p2, const uint32_t u32)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/net_helper.h:248,1
    - Dst: read_u64
      Src: /src/haproxy/include/haproxy/net_helper.h:249,1
    - Dst: readv_bytes
      Src: /src/haproxy/include/haproxy/net_helper.h:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p1
    - s1
    - p2
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: readv_u64
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - read_u64
    - readv_bytes
    - likely
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t readv_u64(const void *p1, size_t s1, const void *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/net_helper.h:262,1
    - Dst: write_u64
      Src: /src/haproxy/include/haproxy/net_helper.h:263,1
    - Dst: writev_bytes
      Src: /src/haproxy/include/haproxy/net_helper.h:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - p1
    - s1
    - p2
    - u64
    argTypes:
    - void*
    - size_t
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: writev_u64
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - write_u64
    - writev_bytes
    - likely
    linkageType: ''
    returnType: void
    signature: void writev_u64(void *p1, size_t s1, void *p2, const uint64_t u64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_u16
      Src: /src/haproxy/include/haproxy/net_helper.h:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: read_i16
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - read_u16
    linkageType: ''
    returnType: int16_t
    signature: int16_t read_i16(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_u32
      Src: /src/haproxy/include/haproxy/net_helper.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: read_i32
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - read_u32
    linkageType: ''
    returnType: int32_t
    signature: int32_t read_i32(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_u64
      Src: /src/haproxy/include/haproxy/net_helper.h:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: read_i64
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - read_u64
    linkageType: ''
    returnType: int64_t
    signature: int64_t read_i64(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readv_u16
      Src: /src/haproxy/include/haproxy/net_helper.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p1
    - s1
    - p2
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: readv_i16
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - readv_u16
    linkageType: ''
    returnType: int16_t
    signature: int16_t readv_i16(const void *p1, size_t s1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readv_u32
      Src: /src/haproxy/include/haproxy/net_helper.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p1
    - s1
    - p2
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: readv_i32
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - readv_u32
    linkageType: ''
    returnType: int32_t
    signature: int32_t readv_i32(const void *p1, size_t s1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readv_u64
      Src: /src/haproxy/include/haproxy/net_helper.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p1
    - s1
    - p2
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: readv_i64
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - readv_u64
    linkageType: ''
    returnType: int64_t
    signature: int64_t readv_i64(const void *p1, size_t s1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/haproxy/include/haproxy/net_helper.h:309,1
    - Dst: read_u16
      Src: /src/haproxy/include/haproxy/net_helper.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: read_n16
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 13
    functionsReached:
    - ntohs
    - read_u16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t read_n16(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_u16
      Src: /src/haproxy/include/haproxy/net_helper.h:315,1
    - Dst: htons
      Src: /src/haproxy/include/haproxy/net_helper.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - u16
    argTypes:
    - void*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: write_n16
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 4
    functionsReached:
    - write_u16
    - htons
    linkageType: ''
    returnType: void
    signature: void write_n16(void *p, const uint16_t u16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/include/haproxy/net_helper.h:321,1
    - Dst: read_u32
      Src: /src/haproxy/include/haproxy/net_helper.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: read_n32
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 11
    functionsReached:
    - ntohl
    - read_u32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t read_n32(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_u32
      Src: /src/haproxy/include/haproxy/net_helper.h:327,1
    - Dst: htonl
      Src: /src/haproxy/include/haproxy/net_helper.h:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - u32
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: write_n32
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 16
    functionsReached:
    - write_u32
    - htonl
    linkageType: ''
    returnType: void
    signature: void write_n32(void *p, const uint32_t u32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: my_ntohll
      Src: /src/haproxy/include/haproxy/net_helper.h:333,1
    - Dst: read_u64
      Src: /src/haproxy/include/haproxy/net_helper.h:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: read_n64
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - read_u64
    - my_ntohll
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t read_n64(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_u64
      Src: /src/haproxy/include/haproxy/net_helper.h:339,1
    - Dst: my_htonll
      Src: /src/haproxy/include/haproxy/net_helper.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - u64
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: write_n64
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - my_htonll
    - write_u64
    linkageType: ''
    returnType: void
    signature: void write_n64(void *p, const uint64_t u64)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/net_helper.h:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - p1
    - s1
    - p2
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 356
    functionName: readv_n16
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 2
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t readv_n16(const void *p1, size_t s1, const void *p2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/net_helper.h:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - p1
    - s1
    - p2
    - u16
    argTypes:
    - void*
    - size_t
    - void*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 373
    functionName: writev_n16
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void writev_n16(void *p1, size_t s1, void *p2, const uint16_t u16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/include/haproxy/net_helper.h:382,1
    - Dst: readv_u32
      Src: /src/haproxy/include/haproxy/net_helper.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p1
    - s1
    - p2
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: readv_n32
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 2
    functionsReached:
    - ntohl
    - readv_u32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t readv_n32(const void *p1, size_t s1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writev_u32
      Src: /src/haproxy/include/haproxy/net_helper.h:392,1
    - Dst: htonl
      Src: /src/haproxy/include/haproxy/net_helper.h:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p1
    - s1
    - p2
    - u32
    argTypes:
    - void*
    - size_t
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: writev_n32
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - writev_u32
    - htonl
    linkageType: ''
    returnType: void
    signature: void writev_n32(void *p1, size_t s1, void *p2, const uint32_t u32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: my_ntohll
      Src: /src/haproxy/include/haproxy/net_helper.h:402,1
    - Dst: readv_u64
      Src: /src/haproxy/include/haproxy/net_helper.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p1
    - s1
    - p2
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: readv_n64
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 2
    functionsReached:
    - readv_u64
    - my_ntohll
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t readv_n64(const void *p1, size_t s1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writev_u64
      Src: /src/haproxy/include/haproxy/net_helper.h:412,1
    - Dst: my_htonll
      Src: /src/haproxy/include/haproxy/net_helper.h:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p1
    - s1
    - p2
    - u64
    argTypes:
    - void*
    - size_t
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: writev_n64
    functionSourceFile: /src/haproxy/include/haproxy/net_helper.h
    functionUses: 0
    functionsReached:
    - my_htonll
    - writev_u64
    linkageType: ''
    returnType: void
    signature: void writev_n64(void *p1, size_t s1, void *p2, const uint64_t u64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_aligned_alloc
      Src: /src/haproxy/include/haproxy/pool-os.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: pool_alloc_area
    functionSourceFile: /src/haproxy/include/haproxy/pool-os.h
    functionUses: 1
    functionsReached:
    - ha_aligned_alloc
    linkageType: ''
    returnType: forceinline
    signature: forceinline *pool_alloc_area(size_t size, size_t align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_aligned_free_size
      Src: /src/haproxy/include/haproxy/pool-os.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - area
    - __maybe_unused
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: pool_free_area
    functionSourceFile: /src/haproxy/include/haproxy/pool-os.h
    functionUses: 1
    functionsReached:
    - ha_aligned_free_size
    linkageType: ''
    returnType: forceinline
    signature: forceinline pool_free_area(void *area, size_t __maybe_unused size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/haproxy/include/haproxy/pool-os.h:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 79
    functionName: pool_alloc_area_uaf
    functionSourceFile: /src/haproxy/include/haproxy/pool-os.h
    functionUses: 1
    functionsReached:
    - mmap
    linkageType: ''
    returnType: void
    signature: void *pool_alloc_area_uaf(size_t size, size_t align)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABORT_NOW
      Src: /src/haproxy/include/haproxy/pool-os.h:98,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/pool-os.h:101,1
    - Dst: munmap
      Src: /src/haproxy/include/haproxy/pool-os.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - area
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 102
    functionName: pool_free_area_uaf
    functionSourceFile: /src/haproxy/include/haproxy/pool-os.h
    functionUses: 1
    functionsReached:
    - ABORT_NOW
    - munmap
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void pool_free_area_uaf(void *area, size_t size)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strl2ui
      Src: /src/haproxy/include/haproxy/mqtt.h:52,1
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/mqtt.h:52,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:56,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:56,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:58,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:58,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:60,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:60,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:62,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:62,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:64,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:64,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:66,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:66,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:68,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:68,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:70,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:70,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:72,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:72,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:74,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:74,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:76,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:76,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:78,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:78,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:80,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:80,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:82,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:82,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:84,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/mqtt.h:84,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 1
    argNames:
    - str
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 88
    functionName: mqtt_typeid
    functionSourceFile: /src/haproxy/include/haproxy/mqtt.h
    functionUses: 1
    functionsReached:
    - isteqi
    - strl2ui
    - istlen
    - ist
    linkageType: ''
    returnType: int
    signature: int mqtt_typeid(struct ist str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/mqtt.h:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - type
    - str
    argTypes:
    - int
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: mqtt_check_type_fieldname
    functionSourceFile: /src/haproxy/include/haproxy/mqtt.h
    functionUses: 1
    functionsReached:
    - isteqi
    linkageType: ''
    returnType: int
    signature: int mqtt_check_type_fieldname(int type, struct ist str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - guid
    argTypes:
    - struct guid_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: guid_get
    functionSourceFile: /src/haproxy/include/haproxy/guid.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *guid_get(const struct guid_node *guid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/signal.h:41,1
    - Dst: __signal_process_queue
      Src: /src/haproxy/include/haproxy/signal.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: signal_process_queue
    functionSourceFile: /src/haproxy/include/haproxy/signal.h
    functionUses: 2
    functionsReached:
    - unlikely
    - __signal_process_queue
    linkageType: ''
    returnType: void
    signature: void signal_process_queue()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/include/haproxy/hpack-enc.h:50,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/haproxy/hpack-enc.h:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: hpack_len_to_bytes
    functionSourceFile: /src/haproxy/include/haproxy/hpack-enc.h
    functionUses: 1
    functionsReached:
    - __builtin_expect
    linkageType: ''
    returnType: int
    signature: int hpack_len_to_bytes(size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - out
    - pos
    - len
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: hpack_encode_len
    functionSourceFile: /src/haproxy/include/haproxy/hpack-enc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hpack_encode_len(char *out, int pos, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ist2bin
      Src: /src/haproxy/include/haproxy/hpack-enc.h:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - out
    - idx
    - val
    argTypes:
    - struct buffer*
    - int
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: hpack_encode_short_idx
    functionSourceFile: /src/haproxy/include/haproxy/hpack-enc.h
    functionUses: 0
    functionsReached:
    - ist2bin
    linkageType: ''
    returnType: int
    signature: int hpack_encode_short_idx(struct buffer *out, int idx, struct ist
      val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hpack_len_to_bytes
      Src: /src/haproxy/include/haproxy/hpack-enc.h:110,1
    - Dst: hpack_len_to_bytes
      Src: /src/haproxy/include/haproxy/hpack-enc.h:111,1
    - Dst: hpack_encode_len
      Src: /src/haproxy/include/haproxy/hpack-enc.h:118,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/hpack-enc.h:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - out
    - idx
    - val
    argTypes:
    - struct buffer*
    - int
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 124
    functionName: hpack_encode_long_idx
    functionSourceFile: /src/haproxy/include/haproxy/hpack-enc.h
    functionUses: 0
    functionsReached:
    - hpack_encode_len
    - hpack_len_to_bytes
    - memcpy
    linkageType: ''
    returnType: int
    signature: int hpack_encode_long_idx(struct buffer *out, int idx, struct ist val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/include/haproxy/hpack-enc.h:140,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/haproxy/hpack-enc.h:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - out
    - status
    argTypes:
    - struct buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 178
    functionName: hpack_encode_int_status
    functionSourceFile: /src/haproxy/include/haproxy/hpack-enc.h
    functionUses: 1
    functionsReached:
    - __builtin_expect
    linkageType: ''
    returnType: int
    signature: int hpack_encode_int_status(struct buffer *out, unsigned int status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hpack_encode_short_idx
      Src: /src/haproxy/include/haproxy/hpack-enc.h:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - out
    - status
    - str
    argTypes:
    - struct buffer*
    - unsigned int
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: hpack_encode_str_status
    functionSourceFile: /src/haproxy/include/haproxy/hpack-enc.h
    functionUses: 0
    functionsReached:
    - hpack_encode_short_idx
    linkageType: ''
    returnType: int
    signature: int hpack_encode_str_status(struct buffer *out, unsigned int status,
      struct ist str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hpack_encode_short_idx
      Src: /src/haproxy/include/haproxy/hpack-enc.h:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - out
    - meth
    - str
    argTypes:
    - struct buffer*
    - enum http_meth_t
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: hpack_encode_method
    functionSourceFile: /src/haproxy/include/haproxy/hpack-enc.h
    functionUses: 1
    functionsReached:
    - hpack_encode_short_idx
    linkageType: ''
    returnType: int
    signature: int hpack_encode_method(struct buffer *out, enum http_meth_t meth,
      struct ist str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/hpack-enc.h:231,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/hpack-enc.h:231,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/hpack-enc.h:233,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/hpack-enc.h:233,1
    - Dst: hpack_encode_short_idx
      Src: /src/haproxy/include/haproxy/hpack-enc.h:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - out
    - scheme
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: hpack_encode_scheme
    functionSourceFile: /src/haproxy/include/haproxy/hpack-enc.h
    functionUses: 1
    functionsReached:
    - hpack_encode_short_idx
    - ist
    - isteq
    linkageType: ''
    returnType: int
    signature: int hpack_encode_scheme(struct buffer *out, struct ist scheme)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/hpack-enc.h:249,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/hpack-enc.h:249,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/hpack-enc.h:251,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/hpack-enc.h:251,1
    - Dst: hpack_encode_short_idx
      Src: /src/haproxy/include/haproxy/hpack-enc.h:254,1
    - Dst: hpack_encode_long_idx
      Src: /src/haproxy/include/haproxy/hpack-enc.h:256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - out
    - path
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: hpack_encode_path
    functionSourceFile: /src/haproxy/include/haproxy/hpack-enc.h
    functionUses: 1
    functionsReached:
    - hpack_encode_short_idx
    - ist
    - isteq
    - hpack_encode_long_idx
    linkageType: ''
    returnType: int
    signature: int hpack_encode_path(struct buffer *out, struct ist path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - res
    argTypes:
    - enum acl_test_res
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: acl_neg
    functionSourceFile: /src/haproxy/include/haproxy/acl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: enum acl_test_res
    signature: enum acl_test_res acl_neg(enum acl_test_res res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - res
    argTypes:
    - enum acl_test_res
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: acl_pass
    functionSourceFile: /src/haproxy/include/haproxy/acl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int acl_pass(enum acl_test_res res)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acl_pass
      Src: /src/haproxy/include/haproxy/acl.h:120,1
    - Dst: acl_exec_cond
      Src: /src/haproxy/include/haproxy/acl.h:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - cond
    - px
    - sess
    - strm
    - opt
    argTypes:
    - struct acl_cond*
    - struct proxy*
    - struct session*
    - struct stream*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: acl_match_cond
    functionSourceFile: /src/haproxy/include/haproxy/acl.h
    functionUses: 15
    functionsReached:
    - acl_pass
    - acl_exec_cond
    linkageType: ''
    returnType: int
    signature: int acl_match_cond(struct acl_cond *cond, struct proxy *px, struct
      session *sess, struct stream *strm, unsigned int opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: stktable_data_size
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: stktable_data_size(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: stktable_data_cast
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: stktable_data_cast(ptr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - caddr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: caddr_to_ptr
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *caddr_to_ptr(unsigned long caddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - caddr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: caddr_to_data
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int caddr_to_data(unsigned long caddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - data
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: caddr_from_ptr
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long caddr_from_ptr(void *ptr, unsigned int data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - caddr
    - data
    argTypes:
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: caddr_set_flags
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long caddr_set_flags(unsigned long caddr, unsigned int data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - caddr
    - data
    argTypes:
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: caddr_clr_flags
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long caddr_clr_flags(unsigned long caddr, unsigned int data)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: stktable_type_size
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int stktable_type_size(int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - ts
    - type
    argTypes:
    - struct stktable*
    - struct stksess*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: __stktable_data_ptr
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *__stktable_data_ptr(struct stktable *t, struct stksess *ts, int
      type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - t
    - ts
    - type
    argTypes:
    - struct stktable*
    - struct stksess*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 169
    functionName: stktable_data_ptr
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 49
    functionsReached:
    - __stktable_data_ptr
    linkageType: ''
    returnType: void
    signature: void *stktable_data_ptr(struct stktable *t, struct stksess *ts, int
      type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:193,1
    - Dst: stktable_type_size
      Src: /src/haproxy/include/haproxy/stick_table.h:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - t
    - ts
    - type
    - idx
    argTypes:
    - struct stktable*
    - struct stksess*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 194
    functionName: stktable_data_ptr_idx
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 25
    functionsReached:
    - stktable_type_size
    - __stktable_data_ptr
    linkageType: ''
    returnType: void
    signature: void *stktable_data_ptr_idx(struct stktable *t, struct stksess *ts,
      int type, unsigned int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH32
      Src: /src/haproxy/include/haproxy/stick_table.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - t
    - key
    - len
    argTypes:
    - struct stktable*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: stktable_calc_bucket_num
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 6
    functionsReached:
    - XXH32
    linkageType: ''
    returnType: uint
    signature: uint stktable_calc_bucket_num(const struct stktable *t, const void
      *key, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/include/haproxy/stick_table.h:212,1
    - Dst: __stksess_kill
      Src: /src/haproxy/include/haproxy/stick_table.h:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: __stksess_kill_if_expired
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 1
    functionsReached:
    - tick_is_expired
    - __stksess_kill
    linkageType: ''
    returnType: int
    signature: int __stksess_kill_if_expired(struct stktable *t, struct stksess *ts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/include/haproxy/stick_table.h:231,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/stick_table.h:233,1
    - Dst: stktable_calc_bucket_num
      Src: /src/haproxy/include/haproxy/stick_table.h:237,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/include/haproxy/stick_table.h:240,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:242,1
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/include/haproxy/stick_table.h:243,1
    - Dst: __stksess_kill_if_expired
      Src: /src/haproxy/include/haproxy/stick_table.h:244,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:245,1
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/include/haproxy/stick_table.h:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 249
    functionName: stksess_kill_if_expired
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 6
    functionsReached:
    - HA_ATOMIC_SUB_FETCH
    - ALREADY_CHECKED
    - HA_RWLOCK_WRUNLOCK
    - stktable_calc_bucket_num
    - __stksess_kill_if_expired
    - tick_is_expired
    - HA_RWLOCK_WRLOCK
    - strlen
    linkageType: ''
    returnType: void
    signature: void stksess_kill_if_expired(struct stktable *t, struct stksess *ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: caddr_from_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stkctr
    - entry
    argTypes:
    - struct stkctr*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: stkctr_set_entry
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 37
    functionsReached:
    - caddr_from_ptr
    linkageType: ''
    returnType: void
    signature: void stkctr_set_entry(struct stkctr *stkctr, struct stksess *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: caddr_to_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stkctr
    argTypes:
    - struct stkctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: stkctr_entry
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 50
    functionsReached:
    - caddr_to_ptr
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *stkctr_entry(struct stkctr *stkctr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: caddr_to_data
      Src: /src/haproxy/include/haproxy/stick_table.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stkctr
    argTypes:
    - struct stkctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: stkctr_flags
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 2
    functionsReached:
    - caddr_to_data
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int stkctr_flags(struct stkctr *stkctr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: caddr_set_flags
      Src: /src/haproxy/include/haproxy/stick_table.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stkctr
    - flags
    argTypes:
    - struct stkctr*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: stkctr_set_flags
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 2
    functionsReached:
    - caddr_set_flags
    linkageType: ''
    returnType: void
    signature: void stkctr_set_flags(struct stkctr *stkctr, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: caddr_clr_flags
      Src: /src/haproxy/include/haproxy/stick_table.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stkctr
    - flags
    argTypes:
    - struct stkctr*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: stkctr_clr_flags
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 0
    functionsReached:
    - caddr_clr_flags
    linkageType: ''
    returnType: void
    signature: void stkctr_clr_flags(struct stkctr *stkctr, unsigned int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stick_table.h:290,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:294,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:296,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:298,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:300,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/include/haproxy/stick_table.h:302,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:302,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:305,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stick_table.h:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - stkctr
    argTypes:
    - struct stkctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 311
    functionName: stkctr_inc_http_req_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 3
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int stkctr_inc_http_req_ctr(struct stkctr *stkctr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stick_table.h:322,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:326,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:328,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:330,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:332,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/include/haproxy/stick_table.h:334,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:334,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:337,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stick_table.h:341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - stkctr
    argTypes:
    - struct stkctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 343
    functionName: stkctr_inc_http_err_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 2
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int stkctr_inc_http_err_ctr(struct stkctr *stkctr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stick_table.h:354,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:358,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:360,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:362,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:364,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/include/haproxy/stick_table.h:366,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:366,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:369,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stick_table.h:373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - stkctr
    argTypes:
    - struct stkctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 375
    functionName: stkctr_inc_http_fail_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 2
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int stkctr_inc_http_fail_ctr(struct stkctr *stkctr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stick_table.h:386,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:390,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:391,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:393,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:395,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/include/haproxy/stick_table.h:397,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:397,1
    - Dst: div64_32
      Src: /src/haproxy/include/haproxy/stick_table.h:399,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:400,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stick_table.h:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - stkctr
    - bytes
    argTypes:
    - struct stkctr*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 407
    functionName: stkctr_inc_bytes_in_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - div64_32
    linkageType: ''
    returnType: int
    signature: int stkctr_inc_bytes_in_ctr(struct stkctr *stkctr, unsigned long long
      bytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stick_table.h:418,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:422,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:423,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:425,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:427,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/include/haproxy/stick_table.h:429,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:429,1
    - Dst: div64_32
      Src: /src/haproxy/include/haproxy/stick_table.h:431,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:432,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stick_table.h:437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - stkctr
    - bytes
    argTypes:
    - struct stkctr*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 413
    functionDepth: 3
    functionLinenumber: 413
    functionLinenumberEnd: 439
    functionName: stkctr_inc_bytes_out_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - div64_32
    linkageType: ''
    returnType: int
    signature: int stkctr_inc_bytes_out_ctr(struct stkctr *stkctr, unsigned long long
      bytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stick_table.h:450,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:454,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:456,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:458,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stick_table.h:460,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/include/haproxy/stick_table.h:462,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stick_table.h:462,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stick_table.h:465,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stick_table.h:469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - stkctr
    - inc
    argTypes:
    - struct stkctr*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 471
    functionName: stkctr_add_glitch_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - update_freq_ctr_period
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: int
    signature: int stkctr_add_glitch_ctr(struct stkctr *stkctr, uint inc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_is_null
      Src: /src/haproxy/include/haproxy/dynbuf.h:52,1
    - Dst: b_almost_full
      Src: /src/haproxy/include/haproxy/dynbuf.h:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: buffer_almost_full
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 3
    functionsReached:
    - b_almost_full
    - b_is_null
    linkageType: ''
    returnType: int
    signature: int buffer_almost_full(const struct buffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: b_is_default_sz
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int b_is_default_sz(size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: b_is_large_sz
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int b_is_large_sz(size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: b_is_small_sz
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int b_is_small_sz(size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_is_default_sz
      Src: /src/haproxy/include/haproxy/dynbuf.h:79,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/dynbuf.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: b_is_default
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 3
    functionsReached:
    - b_size
    - b_is_default_sz
    linkageType: ''
    returnType: int
    signature: int b_is_default(struct buffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_is_large_sz
      Src: /src/haproxy/include/haproxy/dynbuf.h:85,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/dynbuf.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: b_is_large
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 4
    functionsReached:
    - b_is_large_sz
    - b_size
    linkageType: ''
    returnType: int
    signature: int b_is_large(struct buffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_is_small_sz
      Src: /src/haproxy/include/haproxy/dynbuf.h:91,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/dynbuf.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: b_is_small
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 3
    functionsReached:
    - b_size
    - b_is_small_sz
    linkageType: ''
    returnType: int
    signature: int b_is_small(struct buffer *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DB_CRIT_TO_QUEUE
      Src: /src/haproxy/include/haproxy/dynbuf.h:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - crit
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 122
    functionName: b_may_alloc_for_crit
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 0
    functionsReached:
    - DB_CRIT_TO_QUEUE
    linkageType: ''
    returnType: int
    signature: int b_may_alloc_for_crit(uint crit)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: __b_get_emergency_buf
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *__b_get_emergency_buf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _buf
    - ','
    - _crit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: b_alloc
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: b_alloc(_buf, _crit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: __b_free
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __b_free(_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: b_free
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: b_free(_buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/dynbuf.h:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 216
    functionName: b_alloc_small
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 6
    functionsReached:
    - pool_alloc
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *b_alloc_small(struct buffer *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/dynbuf.h:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: b_alloc_large
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 1
    functionsReached:
    - pool_alloc
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *b_alloc_large(struct buffer *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/dynbuf.h:245,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/dynbuf.h:252,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/dynbuf.h:252,1
    - Dst: __offer_buffers
      Src: /src/haproxy/include/haproxy/dynbuf.h:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - from
    - count
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 256
    functionName: offer_buffers
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 41
    functionsReached:
    - __offer_buffers
    - LIST_ISEMPTY
    - BUG_ON_HOT
    - likely
    linkageType: ''
    returnType: void
    signature: void offer_buffers(void *from, unsigned int count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DB_CRIT_TO_QUEUE
      Src: /src/haproxy/include/haproxy/dynbuf.h:267,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/include/haproxy/dynbuf.h:269,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/include/haproxy/dynbuf.h:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - crit
    - bw
    argTypes:
    - enum dynbuf_crit
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 279
    functionName: b_requeue
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 3
    functionsReached:
    - LIST_INLIST
    - DB_CRIT_TO_QUEUE
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int b_requeue(enum dynbuf_crit crit, struct buffer_wait *bw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_requeue
      Src: /src/haproxy/include/haproxy/dynbuf.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - crit
    - bw
    - ctx
    argTypes:
    - enum dynbuf_crit
    - struct buffer_wait*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: b_queue
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 9
    functionsReached:
    - b_requeue
    linkageType: ''
    returnType: int
    signature: int b_queue(enum dynbuf_crit crit, struct buffer_wait *bw, void *ctx,
      int (*cb)(void *))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ATMOST1
      Src: /src/haproxy/include/haproxy/dynbuf.h:308,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/dynbuf.h:311,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/include/haproxy/dynbuf.h:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bw
    - thr
    argTypes:
    - struct buffer_wait*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 315
    functionName: _b_dequeue
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 0
    functionsReached:
    - LIST_DEL_INIT
    - BUG_ON_HOT
    - LIST_ATMOST1
    linkageType: ''
    returnType: void
    signature: void _b_dequeue(struct buffer_wait *bw, int thr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/dynbuf.h:324,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/include/haproxy/dynbuf.h:324,1
    - Dst: _b_dequeue
      Src: /src/haproxy/include/haproxy/dynbuf.h:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - bw
    argTypes:
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: b_dequeue
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 11
    functionsReached:
    - unlikely
    - LIST_INLIST
    - _b_dequeue
    linkageType: ''
    returnType: void
    signature: void b_dequeue(struct buffer_wait *bw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - base
    - ','
    - callback
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: DECLARE_CKCH_CONF_LOAD
    functionSourceFile: /src/haproxy/include/haproxy/ssl_ckch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_CKCH_CONF_LOAD(name, base, callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:137,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:139,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:139,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:139,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:139,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:140,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:140,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:140,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:140,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:140,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:141,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:141,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:141,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:141,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:142,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:142,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:142,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:143,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:143,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:143,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:143,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:144,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:144,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:144,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:145,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:145,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:145,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 150
    functionName: se_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/stconn-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *se_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/stconn-t.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:222,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:224,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:224,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:224,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:224,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:224,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:225,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:225,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:225,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:226,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:226,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:227,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:227,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:227,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:227,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:228,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:228,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:228,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:228,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:229,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:229,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:229,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: sc_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/stconn-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *sc_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/stconn-t.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctr
    - value
    argTypes:
    - struct freq_ctr*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: preload_freq_ctr
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void preload_freq_ctr(struct freq_ctr *ctr, uint value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/freq_ctr.h:61,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/freq_ctr.h:62,1
    - Dst: HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/include/haproxy/freq_ctr.h:63,1
    - Dst: update_freq_ctr_period_slow
      Src: /src/haproxy/include/haproxy/freq_ctr.h:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctr
    - period
    - inc
    argTypes:
    - struct freq_ctr*
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: update_freq_ctr_period
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 18
    functionsReached:
    - HA_ATOMIC_ADD_FETCH
    - update_freq_ctr_period_slow
    - HA_ATOMIC_LOAD
    - likely
    linkageType: ''
    returnType: uint
    signature: uint update_freq_ctr_period(struct freq_ctr *ctr, uint period, uint
      inc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/include/haproxy/freq_ctr.h:74,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/include/haproxy/freq_ctr.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctr
    - inc
    argTypes:
    - struct freq_ctr*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: update_freq_ctr
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 10
    functionsReached:
    - MS_TO_TICKS
    - update_freq_ctr_period
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int update_freq_ctr(struct freq_ctr *ctr, unsigned int inc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freq_ctr_total
      Src: /src/haproxy/include/haproxy/freq_ctr.h:92,1
    - Dst: div64_32
      Src: /src/haproxy/include/haproxy/freq_ctr.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctr
    - period
    argTypes:
    - struct freq_ctr*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: read_freq_ctr_period
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 15
    functionsReached:
    - div64_32
    - freq_ctr_total
    linkageType: ''
    returnType: uint
    signature: uint read_freq_ctr_period(const struct freq_ctr *ctr, uint period)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freq_ctr_total_estimate
      Src: /src/haproxy/include/haproxy/freq_ctr.h:102,1
    - Dst: div64_32
      Src: /src/haproxy/include/haproxy/freq_ctr.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctr
    - period
    argTypes:
    - struct freq_ctr*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: read_freq_ctr_period_estimate
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 2
    functionsReached:
    - freq_ctr_total_estimate
    - div64_32
    linkageType: ''
    returnType: uint
    signature: uint read_freq_ctr_period_estimate(const struct freq_ctr *ctr, uint
      period)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freq_ctr_total
      Src: /src/haproxy/include/haproxy/freq_ctr.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctr
    - period
    argTypes:
    - struct freq_ctr*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: read_freq_ctr_period_flt
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 0
    functionsReached:
    - freq_ctr_total
    linkageType: ''
    returnType: double
    signature: double read_freq_ctr_period_flt(const struct freq_ctr *ctr, uint period)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/include/haproxy/freq_ctr.h:122,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/include/haproxy/freq_ctr.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - struct freq_ctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: read_freq_ctr
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 11
    functionsReached:
    - MS_TO_TICKS
    - read_freq_ctr_period
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int read_freq_ctr(const struct freq_ctr *ctr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_freq_ctr_period_flt
      Src: /src/haproxy/include/haproxy/freq_ctr.h:130,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/include/haproxy/freq_ctr.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - struct freq_ctr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: read_freq_ctr_flt
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 1
    functionsReached:
    - MS_TO_TICKS
    - read_freq_ctr_period_flt
    linkageType: ''
    returnType: double
    signature: double read_freq_ctr_flt(const struct freq_ctr *ctr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freq_ctr_total
      Src: /src/haproxy/include/haproxy/freq_ctr.h:139,1
    - Dst: div64_32
      Src: /src/haproxy/include/haproxy/freq_ctr.h:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctr
    - period
    - freq
    - pend
    argTypes:
    - struct freq_ctr*
    - uint
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: freq_ctr_remain_period
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 1
    functionsReached:
    - div64_32
    - freq_ctr_total
    linkageType: ''
    returnType: uint
    signature: uint freq_ctr_remain_period(const struct freq_ctr *ctr, uint period,
      uint freq, uint pend)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freq_ctr_remain_period
      Src: /src/haproxy/include/haproxy/freq_ctr.h:153,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/include/haproxy/freq_ctr.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctr
    - freq
    - pend
    argTypes:
    - struct freq_ctr*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: freq_ctr_remain
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 1
    functionsReached:
    - freq_ctr_remain_period
    - MS_TO_TICKS
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int freq_ctr_remain(const struct freq_ctr *ctr, unsigned int
      freq, unsigned int pend)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freq_ctr_total
      Src: /src/haproxy/include/haproxy/freq_ctr.h:164,1
    - Dst: div64_32
      Src: /src/haproxy/include/haproxy/freq_ctr.h:177,1
    - Dst: MAX
      Src: /src/haproxy/include/haproxy/freq_ctr.h:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctr
    - period
    - freq
    - pend
    argTypes:
    - struct freq_ctr*
    - uint
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 179
    functionName: next_event_delay_period
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 1
    functionsReached:
    - div64_32
    - freq_ctr_total
    - MAX
    linkageType: ''
    returnType: uint
    signature: uint next_event_delay_period(const struct freq_ctr *ctr, uint period,
      uint freq, uint pend)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next_event_delay_period
      Src: /src/haproxy/include/haproxy/freq_ctr.h:189,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/include/haproxy/freq_ctr.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctr
    - freq
    - pend
    argTypes:
    - struct freq_ctr*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: next_event_delay
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 1
    functionsReached:
    - MS_TO_TICKS
    - next_event_delay_period
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int next_event_delay(const struct freq_ctr *ctr, unsigned
      int freq, unsigned int pend)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/freq_ctr.h:315,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/include/haproxy/freq_ctr.h:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - sum
    - n
    - v
    argTypes:
    - unsigned int*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: swrate_add
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 1
    functionsReached:
    - __ha_cpu_relax
    - HA_ATOMIC_CAS
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int swrate_add(unsigned int *sum, unsigned int n, unsigned
      int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/freq_ctr.h:333,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/include/haproxy/freq_ctr.h:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - sum
    - n
    - v
    argTypes:
    - unsigned int*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 335
    functionName: swrate_add_dynamic
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 1
    functionsReached:
    - __ha_cpu_relax
    - HA_ATOMIC_CAS
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int swrate_add_dynamic(unsigned int *sum, unsigned int n,
      unsigned int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: div64_32
      Src: /src/haproxy/include/haproxy/freq_ctr.h:366,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/freq_ctr.h:367,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/include/haproxy/freq_ctr.h:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - sum
    - n
    - v
    - s
    argTypes:
    - unsigned int*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 369
    functionName: swrate_add_scaled
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 0
    functionsReached:
    - __ha_cpu_relax
    - div64_32
    - HA_ATOMIC_CAS
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int swrate_add_scaled(unsigned int *sum, unsigned int n, unsigned
      int v, unsigned int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/freq_ctr.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sum
    - n
    - v
    argTypes:
    - uint*
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 384
    functionName: swrate_add_opportunistic
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_CAS
    linkageType: ''
    returnType: uint
    signature: uint swrate_add_opportunistic(uint *sum, uint n, uint v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/freq_ctr.h:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sum
    - n
    - v
    argTypes:
    - uint*
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 394
    functionName: swrate_add_dynamic_opportunistic
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_CAS
    linkageType: ''
    returnType: uint
    signature: uint swrate_add_dynamic_opportunistic(uint *sum, uint n, uint v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: div64_32
      Src: /src/haproxy/include/haproxy/freq_ctr.h:401,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/freq_ctr.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - sum
    - n
    - v
    - s
    argTypes:
    - uint*
    - uint
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: swrate_add_scaled_opportunistic
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 1
    functionsReached:
    - div64_32
    - HA_ATOMIC_CAS
    linkageType: ''
    returnType: uint
    signature: uint swrate_add_scaled_opportunistic(uint *sum, uint n, uint v, uint
      s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - sum
    - n
    - v
    argTypes:
    - uint*
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 423
    functionName: swrate_add_peak_local
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint swrate_add_peak_local(uint *sum, uint n, uint v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sum
    - n
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: swrate_avg
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int swrate_avg(unsigned int sum, unsigned int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - crit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: DB_CRIT_TO_QUEUE
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf-t.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DB_CRIT_TO_QUEUE(crit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: REGISTER_UNITTEST
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_UNITTEST(name, fct)
  - 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: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: hap_register_unittest
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hap_register_unittest(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: REGISTER_PRE_CHECK
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_PRE_CHECK(fct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: REGISTER_POST_CHECK
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_POST_CHECK(fct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: REGISTER_POST_PROXY_CHECK
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_POST_PROXY_CHECK(fct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: REGISTER_POST_SERVER_CHECK
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_POST_SERVER_CHECK(fct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: REGISTER_POST_DEINIT
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_POST_DEINIT(fct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: REGISTER_POST_DEINIT_MASTER
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_POST_DEINIT_MASTER(fct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: REGISTER_PROXY_DEINIT
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_PROXY_DEINIT(fct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: REGISTER_SERVER_DEINIT
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_SERVER_DEINIT(fct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: REGISTER_PER_THREAD_ALLOC
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_PER_THREAD_ALLOC(fct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: REGISTER_PER_THREAD_INIT
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_PER_THREAD_INIT(fct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: REGISTER_PER_THREAD_DEINIT
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_PER_THREAD_DEINIT(fct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: REGISTER_PER_THREAD_FREE
    functionSourceFile: /src/haproxy/include/haproxy/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_PER_THREAD_FREE(fct)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: quic_log2
    functionSourceFile: /src/haproxy/include/haproxy/quic_enc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_log2(unsigned int val)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: quic_int_getsize
    functionSourceFile: /src/haproxy/include/haproxy/quic_enc.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t quic_int_getsize(uint64_t val)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: quic_max_int
    functionSourceFile: /src/haproxy/include/haproxy/quic_enc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t quic_max_int(size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - val
    - buf
    - end
    argTypes:
    - uint64_t*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 132
    functionName: quic_dec_int
    functionSourceFile: /src/haproxy/include/haproxy/quic_enc.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int quic_dec_int(uint64_t *val,\n                               const
      unsigned char **buf,\n                               const unsigned char *end)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/include/haproxy/quic_enc.h:146,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/quic_enc.h:147,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/quic_enc.h:148,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/quic_enc.h:149,1
    - Dst: b_del
      Src: /src/haproxy/include/haproxy/quic_enc.h:169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - val
    - b
    - retlen
    argTypes:
    - uint64_t*
    - struct buffer*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 172
    functionName: b_quic_dec_int
    functionSourceFile: /src/haproxy/include/haproxy/quic_enc.h
    functionUses: 7
    functionsReached:
    - b_head
    - b_data
    - b_size
    - b_del
    - b_wrap
    linkageType: ''
    returnType: size_t
    signature: size_t b_quic_dec_int(uint64_t *val, struct buffer *b, size_t *retlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_enc.h:184,1
    - Dst: quic_log2
      Src: /src/haproxy/include/haproxy/quic_enc.h:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - end
    - val
    argTypes:
    - unsigned char**
    - unsigned char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 199
    functionName: quic_enc_int
    functionSourceFile: /src/haproxy/include/haproxy/quic_enc.h
    functionUses: 35
    functionsReached:
    - quic_int_getsize
    - quic_log2
    linkageType: ''
    returnType: int
    signature: int quic_enc_int(unsigned char **buf, const unsigned char *end, uint64_t
      val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/quic_enc.h:213,1
    - Dst: atleast2
      Src: /src/haproxy/include/haproxy/quic_enc.h:213,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_enc.h:215,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/quic_enc.h:220,1
    - Dst: b_tail
      Src: /src/haproxy/include/haproxy/quic_enc.h:227,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/quic_enc.h:232,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/quic_enc.h:233,1
    - Dst: b_tail
      Src: /src/haproxy/include/haproxy/quic_enc.h:237,1
    - Dst: quic_log2
      Src: /src/haproxy/include/haproxy/quic_enc.h:237,1
    - Dst: b_add
      Src: /src/haproxy/include/haproxy/quic_enc.h:238,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - b
    - val
    - width
    argTypes:
    - struct buffer*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 241
    functionName: b_quic_enc_int
    functionSourceFile: /src/haproxy/include/haproxy/quic_enc.h
    functionUses: 11
    functionsReached:
    - b_orig
    - BUG_ON
    - b_tail
    - b_add
    - quic_int_getsize
    - b_room
    - atleast2
    - b_wrap
    - quic_log2
    linkageType: ''
    returnType: int
    signature: int b_quic_enc_int(struct buffer *b, uint64_t val, int width)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 255
    functionName: quic_incint_size_diff
    functionSourceFile: /src/haproxy/include/haproxy/quic_enc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t quic_incint_size_diff(uint64_t val)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 272
    functionName: quic_decint_size_diff
    functionSourceFile: /src/haproxy/include/haproxy/quic_enc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t quic_decint_size_diff(uint64_t val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_enc.h:291,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/quic_enc.h:292,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/quic_enc.h:295,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_enc.h:295,1
    - Dst: MIN
      Src: /src/haproxy/include/haproxy/quic_enc.h:297,1
    - Dst: quic_max_int
      Src: /src/haproxy/include/haproxy/quic_enc.h:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - room
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: quic_int_cap_length
    functionSourceFile: /src/haproxy/include/haproxy/quic_enc.h
    functionUses: 3
    functionsReached:
    - unlikely
    - likely
    - quic_int_getsize
    - MIN
    - quic_max_int
    linkageType: ''
    returnType: size_t
    signature: size_t quic_int_cap_length(size_t room)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pendconn_unlink
      Src: /src/haproxy/include/haproxy/queue.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pendconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: pendconn_cond_unlink
    functionSourceFile: /src/haproxy/include/haproxy/queue.h
    functionUses: 1
    functionsReached:
    - pendconn_unlink
    linkageType: ''
    returnType: void
    signature: void pendconn_cond_unlink(struct pendconn *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pendconn_cond_unlink
      Src: /src/haproxy/include/haproxy/queue.h:73,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/queue.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: pendconn_free
    functionSourceFile: /src/haproxy/include/haproxy/queue.h
    functionUses: 3
    functionsReached:
    - pendconn_cond_unlink
    - pool_free
    linkageType: ''
    returnType: void
    signature: void pendconn_free(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/include/haproxy/queue.h:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: server_has_room
    functionSourceFile: /src/haproxy/include/haproxy/queue.h
    functionUses: 1
    functionsReached:
    - srv_dynamic_maxconn
    linkageType: ''
    returnType: int
    signature: int server_has_room(const struct server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srv_currently_usable
      Src: /src/haproxy/include/haproxy/queue.h:89,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/include/haproxy/queue.h:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - s
    - p
    argTypes:
    - struct server*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: may_dequeue_tasks
    functionSourceFile: /src/haproxy/include/haproxy/queue.h
    functionUses: 10
    functionsReached:
    - srv_currently_usable
    - srv_dynamic_maxconn
    linkageType: ''
    returnType: int
    signature: int may_dequeue_tasks(const struct server *s, const struct proxy *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - class
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: queue_limit_class
    functionSourceFile: /src/haproxy/include/haproxy/queue.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int queue_limit_class(int class)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: queue_limit_offset
    functionSourceFile: /src/haproxy/include/haproxy/queue.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int queue_limit_offset(int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/include/haproxy/queue.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - queue
    - px
    - sv
    argTypes:
    - struct queue*
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: queue_init
    functionSourceFile: /src/haproxy/include/haproxy/queue.h
    functionUses: 6
    functionsReached:
    - HA_SPIN_INIT
    linkageType: ''
    returnType: void
    signature: void queue_init(struct queue *queue, struct proxy *px, struct server
      *sv)
  - 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: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: QUIC_MIN
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn-t.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUIC_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: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: QUIC_MAX
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn-t.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUIC_MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:474,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:476,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:477,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:478,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:479,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:480,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:481,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:482,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:483,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:484,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:485,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:486,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:487,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:488,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:489,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:490,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:491,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:492,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:493,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:494,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:495,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:496,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:497,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:498,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:499,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:500,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:501,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:502,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:503,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 508
    functionName: qc_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *qc_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 473
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn-t.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: proxy_cap_str
      Src: /src/haproxy/include/haproxy/proxy.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: proxy_type_str
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 50
    functionsReached:
    - proxy_cap_str
    linkageType: ''
    returnType: char
    signature: char *proxy_type_str(struct proxy *proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proxy_find_by_name
      Src: /src/haproxy/include/haproxy/proxy.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: proxy_fe_by_name
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 6
    functionsReached:
    - proxy_find_by_name
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *proxy_fe_by_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proxy_find_by_name
      Src: /src/haproxy/include/haproxy/proxy.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: proxy_be_by_name
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 18
    functionsReached:
    - proxy_find_by_name
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *proxy_be_by_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb32_item_insert
      Src: /src/haproxy/include/haproxy/proxy.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: proxy_index_id
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 4
    functionsReached:
    - ceb32_item_insert
    linkageType: ''
    returnType: void
    signature: void proxy_index_id(struct proxy *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: proxy_reset_timeouts
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proxy_reset_timeouts(struct proxy *proxy)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - px
    - def
    argTypes:
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: proxy_abrt_close_def
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int proxy_abrt_close_def(const struct proxy *px, int def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/include/haproxy/proxy.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: proxy_abrt_close
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 5
    functionsReached:
    - proxy_abrt_close_def
    linkageType: ''
    returnType: int
    signature: int proxy_abrt_close(const struct proxy *px)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:180,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:181,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:184,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/include/haproxy/proxy.h:185,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - l
    - fe
    argTypes:
    - struct listener*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: proxy_inc_fe_conn_ctr
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 1
    functionsReached:
    - update_freq_ctr
    - _HA_ATOMIC_INC
    - COUNTERS_UPDATE_MAX
    linkageType: ''
    returnType: void
    signature: void proxy_inc_fe_conn_ctr(struct listener *l, struct proxy *fe)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:193,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:194,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:197,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/include/haproxy/proxy.h:198,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - l
    - fe
    argTypes:
    - struct listener*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 200
    functionName: proxy_inc_fe_sess_ctr
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 1
    functionsReached:
    - update_freq_ctr
    - _HA_ATOMIC_INC
    - COUNTERS_UPDATE_MAX
    linkageType: ''
    returnType: void
    signature: void proxy_inc_fe_sess_ctr(struct listener *l, struct proxy *fe)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:213,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:215,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - l
    - fe
    - http_ver
    argTypes:
    - struct listener*
    - struct proxy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 216
    functionName: proxy_inc_fe_cum_sess_ver_ctr
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 4
    functionsReached:
    - _HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: "void proxy_inc_fe_cum_sess_ver_ctr(struct listener *l, struct proxy
      *fe,\n                                                 unsigned int http_ver)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:222,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:223,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/include/haproxy/proxy.h:225,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: proxy_inc_be_ctr
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 1
    functionsReached:
    - update_freq_ctr
    - _HA_ATOMIC_INC
    - COUNTERS_UPDATE_MAX
    linkageType: ''
    returnType: void
    signature: void proxy_inc_be_ctr(struct proxy *be)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:240,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:241,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:244,1
    - Dst: COUNTERS_UPDATE_MAX
      Src: /src/haproxy/include/haproxy/proxy.h:245,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - l
    - fe
    - http_ver
    argTypes:
    - struct listener*
    - struct proxy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: proxy_inc_fe_req_ctr
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 6
    functionsReached:
    - update_freq_ctr
    - _HA_ATOMIC_INC
    - COUNTERS_UPDATE_MAX
    linkageType: ''
    returnType: void
    signature: "void proxy_inc_fe_req_ctr(struct listener *l, struct proxy *fe,\n
      \                                       unsigned int http_ver)"
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 2
    argNames:
    - p
    - status
    argTypes:
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 285
    functionName: l7_status_match
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int l7_status_match(struct proxy *p, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - list
    - proxy
    argTypes:
    - struct proxy*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: in_proxies_list
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int in_proxies_list(struct proxy *list, struct proxy *proxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/include/haproxy/proxy.h:312,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/include/haproxy/proxy.h:313,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bytes
    - splice
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: increment_send_rate
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 4
    functionsReached:
    - update_freq_ctr
    - _HA_ATOMIC_ADD
    linkageType: ''
    returnType: void
    signature: void increment_send_rate(uint64_t bytes, int splice)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: HA_DIAG_WARNING_COND
    functionSourceFile: /src/haproxy/include/haproxy/errors.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_DIAG_WARNING_COND(cond, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: IS_HTX_SC
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_HTX_SC(sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: se_fl_zero
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline se_fl_zero(struct sedesc *se)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - se
    - all
    argTypes:
    - struct sedesc*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: se_fl_setall
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline se_fl_setall(struct sedesc *se, uint all)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - se
    - 'on'
    argTypes:
    - struct sedesc*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: se_fl_set
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline se_fl_set(struct sedesc *se, uint on)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - se
    - 'off'
    argTypes:
    - struct sedesc*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: se_fl_clr
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline se_fl_clr(struct sedesc *se, uint off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - se
    - test
    argTypes:
    - struct sedesc*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: se_fl_test
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 72
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline se_fl_test(const struct sedesc *se, uint test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: se_fl_get
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline se_fl_get(const struct sedesc *se)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/stconn.h:116,1
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/stconn.h:117,1
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/stconn.h:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: se_fl_set_error
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 22
    functionsReached:
    - se_fl_set
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void se_fl_set_error(struct sedesc *se)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/stconn.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: se_expect_no_data
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 3
    functionsReached:
    - se_fl_set
    linkageType: ''
    returnType: void
    signature: void se_expect_no_data(struct sedesc *se)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_clr
      Src: /src/haproxy/include/haproxy/stconn.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: se_expect_data
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 5
    functionsReached:
    - se_fl_clr
    linkageType: ''
    returnType: void
    signature: void se_expect_data(struct sedesc *se)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: se_have_ff_data
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int se_have_ff_data(struct sedesc *se)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: se_ff_data
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t se_ff_data(struct sedesc *se)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/include/haproxy/stconn.h:145,1
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/stconn.h:149,1
    - Dst: xref_unlock
      Src: /src/haproxy/include/haproxy/stconn.h:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: se_opposite
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 5
    functionsReached:
    - xref_get_peer_and_lock
    - xref_unlock
    - container_of
    linkageType: ''
    returnType: struct sedesc
    signature: struct sedesc *se_opposite(struct sedesc *se)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/stconn.h:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sc_in
    - sc_out
    argTypes:
    - struct stconn*
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: sc_ep_fwd_kip
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 5
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sc_ep_fwd_kip(struct stconn *sc_in, struct stconn *sc_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_zero
      Src: /src/haproxy/include/haproxy/stconn.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: sc_ep_zero
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 0
    functionsReached:
    - se_fl_zero
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_zero(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_setall
      Src: /src/haproxy/include/haproxy/stconn.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - all
    argTypes:
    - struct stconn*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: sc_ep_setall
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 0
    functionsReached:
    - se_fl_setall
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_setall(struct stconn *sc, uint all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/stconn.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - 'on'
    argTypes:
    - struct stconn*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: sc_ep_set
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 18
    functionsReached:
    - se_fl_set
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_set(struct stconn *sc, uint on)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_clr
      Src: /src/haproxy/include/haproxy/stconn.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - 'off'
    argTypes:
    - struct stconn*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: sc_ep_clr
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 18
    functionsReached:
    - se_fl_clr
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_clr(struct stconn *sc, uint off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/stconn.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - test
    argTypes:
    - struct stconn*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: sc_ep_test
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 37
    functionsReached:
    - se_fl_test
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_test(const struct stconn *sc, uint test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_get
      Src: /src/haproxy/include/haproxy/stconn.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: sc_ep_get
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached:
    - se_fl_get
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_get(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: sc_ep_lra
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: forceinline unsigned
    signature: forceinline unsigned sc_ep_lra(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: sc_ep_fsb
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline unsigned
    signature: forceinline unsigned sc_ep_fsb(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: sc_ep_report_read_activity
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_report_read_activity(struct stconn *sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/stconn.h:219,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/include/haproxy/stconn.h:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - sc
    - did_send
    argTypes:
    - struct stconn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: sc_ep_report_blocked_send
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 3
    functionsReached:
    - tick_isset
    - sc_ep_report_read_activity
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_report_blocked_send(struct stconn *sc, int did_send)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/include/haproxy/stconn.h:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: sc_ep_report_send_activity
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 3
    functionsReached:
    - sc_ep_report_read_activity
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_report_send_activity(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_have_ff_data
      Src: /src/haproxy/include/haproxy/stconn.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: sc_ep_have_ff_data
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 11
    functionsReached:
    - se_have_ff_data
    linkageType: ''
    returnType: forceinline unsigned
    signature: forceinline unsigned sc_ep_have_ff_data(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_ff_data
      Src: /src/haproxy/include/haproxy/stconn.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: sc_ep_ff_data
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached:
    - se_ff_data
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_ff_data(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: __sc_endp
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *__sc_endp(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: __sc_conn
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: struct connection
    signature: struct connection *__sc_conn(const struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/stconn.h:262,1
    - Dst: __sc_conn
      Src: /src/haproxy/include/haproxy/stconn.h:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: sc_conn
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 94
    functionsReached:
    - __sc_conn
    - sc_ep_test
    linkageType: ''
    returnType: struct connection
    signature: struct connection *sc_conn(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/include/haproxy/stconn.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: sc_mux_ops
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 5
    functionsReached:
    - sc_conn
    linkageType: ''
    returnType: struct mux_ops
    signature: struct mux_ops *sc_mux_ops(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sc_endp
      Src: /src/haproxy/include/haproxy/stconn.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: __sc_mux_strm
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 38
    functionsReached:
    - __sc_endp
    linkageType: ''
    returnType: void
    signature: void *__sc_mux_strm(const struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/stconn.h:287,1
    - Dst: __sc_mux_strm
      Src: /src/haproxy/include/haproxy/stconn.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: sc_mux_strm
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 39
    functionsReached:
    - __sc_mux_strm
    - sc_ep_test
    linkageType: ''
    returnType: void
    signature: void *sc_mux_strm(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sc_endp
      Src: /src/haproxy/include/haproxy/stconn.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: __sc_appctx
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 30
    functionsReached:
    - __sc_endp
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *__sc_appctx(const struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/stconn.h:302,1
    - Dst: __sc_appctx
      Src: /src/haproxy/include/haproxy/stconn.h:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: sc_appctx
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 39
    functionsReached:
    - __sc_appctx
    - sc_ep_test
    linkageType: ''
    returnType: struct appctx
    signature: struct appctx *sc_appctx(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __objt_stream
      Src: /src/haproxy/include/haproxy/stconn.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: __sc_strm
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 30
    functionsReached:
    - __objt_stream
    linkageType: ''
    returnType: struct stream
    signature: struct stream *__sc_strm(const struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/stconn.h:318,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/stconn.h:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: sc_strm
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 41
    functionsReached:
    - __sc_strm
    - obj_type
    linkageType: ''
    returnType: struct stream
    signature: struct stream *sc_strm(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __objt_check
      Src: /src/haproxy/include/haproxy/stconn.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: __sc_check
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached:
    - __objt_check
    linkageType: ''
    returnType: struct check
    signature: struct check *__sc_check(const struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/stconn.h:333,1
    - Dst: __objt_check
      Src: /src/haproxy/include/haproxy/stconn.h:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: sc_check
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 3
    functionsReached:
    - __objt_check
    - obj_type
    linkageType: ''
    returnType: struct check
    signature: struct check *sc_check(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __objt_hstream
      Src: /src/haproxy/include/haproxy/stconn.h:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: __sc_hstream
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached:
    - __objt_hstream
    linkageType: ''
    returnType: struct hstream
    signature: struct hstream *__sc_hstream(const struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/stconn.h:348,1
    - Dst: __objt_hstream
      Src: /src/haproxy/include/haproxy/stconn.h:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: sc_hstream
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached:
    - __objt_hstream
    - obj_type
    linkageType: ''
    returnType: struct hstream
    signature: struct hstream *sc_hstream(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: sc_waiting_room
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sc_waiting_room(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_clr
      Src: /src/haproxy/include/haproxy/stconn.h:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: se_have_more_data
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 6
    functionsReached:
    - se_fl_clr
    linkageType: ''
    returnType: void
    signature: void se_have_more_data(struct sedesc *se)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/stconn.h:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: se_have_no_more_data
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached:
    - se_fl_set
    linkageType: ''
    returnType: void
    signature: void se_have_no_more_data(struct sedesc *se)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/include/haproxy/stconn.h:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: sc_will_read
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 2
    functionsReached:
    - sc_ep_report_read_activity
    linkageType: ''
    returnType: void
    signature: void sc_will_read(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: sc_wont_read
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sc_wont_read(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/stconn.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: se_need_remote_conn
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 3
    functionsReached:
    - se_fl_set
    linkageType: ''
    returnType: void
    signature: void se_need_remote_conn(struct sedesc *se)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/stconn.h:414,1
    - Dst: se_fl_clr
      Src: /src/haproxy/include/haproxy/stconn.h:415,1
    - Dst: sc_ep_report_send_activity
      Src: /src/haproxy/include/haproxy/stconn.h:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: se_will_consume
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 2
    functionsReached:
    - se_fl_clr
    - sc_ep_report_send_activity
    - se_fl_test
    linkageType: ''
    returnType: void
    signature: void se_will_consume(struct sedesc *se)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/stconn.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: se_wont_consume
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached:
    - se_fl_set
    linkageType: ''
    returnType: void
    signature: void se_wont_consume(struct sedesc *se)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: se_will_consume
      Src: /src/haproxy/include/haproxy/stconn.h:434,1
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/stconn.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: se_need_more_data
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached:
    - se_fl_set
    - se_will_consume
    linkageType: ''
    returnType: void
    signature: void se_need_more_data(struct sedesc *se)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/stconn.h:443,1
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/stconn.h:449,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/include/haproxy/stconn.h:454,1
    - Dst: nego_fastfwd
      Src: /src/haproxy/include/haproxy/stconn.h:454,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/include/haproxy/stconn.h:456,1
    - Dst: struct mux_ops*::subscribe
      Src: /src/haproxy/include/haproxy/stconn.h:462,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - se
    - input
    - count
    - flags
    argTypes:
    - struct sedesc*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 472
    functionName: se_nego_ff
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 4
    functionsReached:
    - nego_fastfwd
    - CALL_MUX_WITH_RET
    - sc_ep_report_blocked_send
    - struct mux_ops*::subscribe
    - se_fl_test
    linkageType: ''
    returnType: size_t
    signature: size_t se_nego_ff(struct sedesc *se, struct buffer *input, size_t count,
      unsigned int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/stconn.h:482,1
    - Dst: se_ff_data
      Src: /src/haproxy/include/haproxy/stconn.h:484,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/stconn.h:486,1
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/include/haproxy/stconn.h:487,1
    - Dst: done_fastfwd
      Src: /src/haproxy/include/haproxy/stconn.h:487,1
    - Dst: sc_ep_report_send_activity
      Src: /src/haproxy/include/haproxy/stconn.h:495,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/include/haproxy/stconn.h:497,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/include/haproxy/stconn.h:506,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/include/haproxy/stconn.h:508,1
    - Dst: struct mux_ops*::subscribe
      Src: /src/haproxy/include/haproxy/stconn.h:514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 521
    functionName: se_done_ff
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 4
    functionsReached:
    - BUG_ON
    - done_fastfwd
    - CALL_MUX_WITH_RET
    - se_ff_data
    - sc_ep_report_send_activity
    - sc_ep_report_blocked_send
    - struct mux_ops*::subscribe
    - se_fl_test
    linkageType: ''
    returnType: size_t
    signature: size_t se_done_ff(struct sedesc *se)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tevt_report_event
      Src: /src/haproxy/include/haproxy/stconn.h:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - se
    - type
    argTypes:
    - struct sedesc*
    - enum se_term_event_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 530
    functionName: se_report_term_evt
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 22
    functionsReached:
    - tevt_report_event
    linkageType: ''
    returnType: void
    signature: void se_report_term_evt(struct sedesc *se, enum se_term_event_type
      type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tevt_report_event
      Src: /src/haproxy/include/haproxy/stconn.h:538,1
    - Dst: sc_strm
      Src: /src/haproxy/include/haproxy/stconn.h:539,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/stconn.h:540,1
    - Dst: tevt_report_event
      Src: /src/haproxy/include/haproxy/stconn.h:540,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/stconn.h:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sc
    - type
    argTypes:
    - struct stconn*
    - enum strm_term_event_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: sc_report_term_evt
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 6
    functionsReached:
    - sc_strm
    - __sc_strm
    - tevt_report_event
    linkageType: ''
    returnType: void
    signature: void sc_report_term_evt(struct stconn *sc, enum strm_term_event_type
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/haproxy/include/haproxy/namespace.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ns
    - domain
    - type
    - protocol
    argTypes:
    - struct netns_entry*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: my_socketat
    functionSourceFile: /src/haproxy/include/haproxy/namespace.h
    functionUses: 4
    functionsReached:
    - socket
    linkageType: ''
    returnType: int
    signature: int my_socketat(const struct netns_entry *ns, int domain, int type,
      int protocol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/vars.h:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vars
    argTypes:
    - struct vars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: vars_wrlock
    functionSourceFile: /src/haproxy/include/haproxy/vars.h
    functionUses: 2
    functionsReached:
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void vars_wrlock(struct vars *vars)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/vars.h:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vars
    argTypes:
    - struct vars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: vars_wrunlock
    functionSourceFile: /src/haproxy/include/haproxy/vars.h
    functionUses: 2
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    linkageType: ''
    returnType: void
    signature: void vars_wrunlock(struct vars *vars)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/include/haproxy/vars.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vars
    argTypes:
    - struct vars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: vars_rdlock
    functionSourceFile: /src/haproxy/include/haproxy/vars.h
    functionUses: 2
    functionsReached:
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void vars_rdlock(struct vars *vars)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/include/haproxy/vars.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vars
    argTypes:
    - struct vars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: vars_rdunlock
    functionSourceFile: /src/haproxy/include/haproxy/vars.h
    functionUses: 2
    functionsReached:
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: void
    signature: void vars_rdunlock(struct vars *vars)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cebu64_item_first
      Src: /src/haproxy/include/haproxy/vars.h:88,1
    - Dst: var_clear
      Src: /src/haproxy/include/haproxy/vars.h:89,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/include/haproxy/vars.h:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - vars
    - sess
    - strm
    argTypes:
    - struct vars*
    - struct session*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 96
    functionName: vars_prune
    functionSourceFile: /src/haproxy/include/haproxy/vars.h
    functionUses: 6
    functionsReached:
    - var_clear
    - var_accounting_diff
    - cebu64_item_first
    linkageType: ''
    returnType: void
    signature: void vars_prune(struct vars *vars, struct session *sess, struct stream
      *strm)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: eb64_last
      Src: /src/haproxy/include/haproxy/quic_frame.h:71,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_frame.h:72,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:73,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:74,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:75,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:76,1
    - Dst: eb64_prev
      Src: /src/haproxy/include/haproxy/quic_frame.h:78,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_frame.h:79,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:80,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:81,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_frame.h:83,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:89,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:90,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:90,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:95,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:95,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:100,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:100,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:105,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:110,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:111,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:112,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:117,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:122,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:122,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:127,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:132,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:137,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:142,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:142,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:147,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:152,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:157,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:157,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:158,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:163,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:178,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:178,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:179,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:184,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:185,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 102
    argCount: 1
    argNames:
    - frm
    argTypes:
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 197
    functionName: qc_frm_len
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 3
    functionsReached:
    - quic_int_getsize
    - eb64_last
    - eb64_entry
    - eb64_prev
    linkageType: ''
    returnType: size_t
    signature: size_t qc_frm_len(struct quic_frame *frm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: quic_err_transport
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: struct quic_err
    signature: struct quic_err quic_err_transport(uint64_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls_alert
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: quic_err_tls
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct quic_err
    signature: struct quic_err quic_err_tls(uint64_t tls_alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: quic_err_app
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct quic_err
    signature: struct quic_err quic_err_app(uint64_t code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_frame.h:224,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/quic_frame.h:230,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/quic_frame.h:231,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/quic_frame.h:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 239
    functionName: qc_frm_alloc
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 11
    functionsReached:
    - LIST_INIT
    - pool_alloc
    linkageType: ''
    returnType: struct quic_frame
    signature: struct quic_frame *qc_frm_alloc(uint64_t type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/quic_frame.h:252,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/quic_frame.h:259,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/quic_frame.h:260,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/include/haproxy/quic_frame.h:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - origin
    argTypes:
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: qc_frm_dup
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 2
    functionsReached:
    - LIST_INIT
    - pool_alloc
    - LIST_APPEND
    linkageType: ''
    returnType: struct quic_frame
    signature: struct quic_frame *qc_frm_dup(struct quic_frame *origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_make
      Src: /src/haproxy/include/haproxy/quic_frame.h:285,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/quic_frame.h:285,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/quic_frame.h:286,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/quic_frame.h:287,1
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/quic_frame.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - frm
    - data
    argTypes:
    - struct quic_frame*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 289
    functionName: qc_stream_frm_mv_fwd
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 1
    functionsReached:
    - b_make
    - b_peek
    - b_size
    - b_orig
    linkageType: ''
    returnType: void
    signature: void qc_stream_frm_mv_fwd(struct quic_frame *frm, uint64_t data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: encode_varint
      Src: /src/haproxy/include/haproxy/spoe.h:56,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/spoe.h:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - str
    - len
    - buf
    - end
    argTypes:
    - char*
    - size_t
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 63
    functionName: spoe_encode_buffer
    functionSourceFile: /src/haproxy/include/haproxy/spoe.h
    functionUses: 3
    functionsReached:
    - encode_varint
    - memcpy
    linkageType: ''
    returnType: int
    signature: int spoe_encode_buffer(const char *str, size_t len, char **buf, char
      *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_varint
      Src: /src/haproxy/include/haproxy/spoe.h:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - buf
    - end
    - str
    - len
    argTypes:
    - char**
    - char*
    - char**
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: spoe_decode_buffer
    functionSourceFile: /src/haproxy/include/haproxy/spoe.h
    functionUses: 5
    functionsReached:
    - decode_varint
    linkageType: ''
    returnType: int
    signature: int spoe_decode_buffer(char **buf, char *end, char **str, uint64_t
      *len)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: encode_varint
      Src: /src/haproxy/include/haproxy/spoe.h:116,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/spoe.h:124,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/spoe.h:132,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/include/haproxy/spoe.h:141,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/include/haproxy/spoe.h:166,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 92
    argCount: 3
    argNames:
    - smp
    - buf
    - end
    argTypes:
    - struct sample*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 180
    functionName: spoe_encode_data
    functionSourceFile: /src/haproxy/include/haproxy/spoe.h
    functionUses: 1
    functionsReached:
    - spoe_encode_buffer
    - encode_varint
    - memcpy
    linkageType: ''
    returnType: int
    signature: int spoe_encode_data(struct sample *smp, char **buf, char *end)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: decode_varint
      Src: /src/haproxy/include/haproxy/spoe.h:209,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/include/haproxy/spoe.h:225,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - buf
    - end
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 233
    functionName: spoe_skip_data
    functionSourceFile: /src/haproxy/include/haproxy/spoe.h
    functionUses: 3
    functionsReached:
    - spoe_decode_buffer
    - decode_varint
    linkageType: ''
    returnType: int
    signature: int spoe_skip_data(char **buf, char *end)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: decode_varint
      Src: /src/haproxy/include/haproxy/spoe.h:257,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/spoe.h:265,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/spoe.h:271,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/include/haproxy/spoe.h:278,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - buf
    - end
    - smp
    argTypes:
    - char**
    - char*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 289
    functionName: spoe_decode_data
    functionSourceFile: /src/haproxy/include/haproxy/spoe.h
    functionUses: 1
    functionsReached:
    - spoe_decode_buffer
    - decode_varint
    - memcpy
    linkageType: ''
    returnType: int
    signature: int spoe_decode_data(char **buf, char *end, struct sample *smp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/haproxy/include/haproxy/spoe.h:306,1
    - Dst: isspace
      Src: /src/haproxy/include/haproxy/spoe.h:340,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 348
    functionName: spoe_str_to_vsn
    functionSourceFile: /src/haproxy/include/haproxy/spoe.h
    functionUses: 2
    functionsReached:
    - isspace
    linkageType: ''
    returnType: int
    signature: int spoe_str_to_vsn(const char *str, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - vsn
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 365
    functionName: spoe_check_vsn
    functionSourceFile: /src/haproxy/include/haproxy/spoe.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int spoe_check_vsn(int vsn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - conn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: IS_HTX_CONN
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_HTX_CONN(conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mux
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: CALL_MUX_WITH_RET
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_MUX_WITH_RET(mux, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mux
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: CALL_MUX_NO_RET
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_MUX_NO_RET(mux, func)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - err_code
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: conn_set_errcode
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void conn_set_errcode(struct connection *conn, int err_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: conn_xprt_ready
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int conn_xprt_ready(const struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: conn_ctrl_ready
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int conn_ctrl_ready(const struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_xprt_ready
      Src: /src/haproxy/include/haproxy/connection.h:154,1
    - Dst: struct connection*::xprt::start
      Src: /src/haproxy/include/haproxy/connection.h:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: conn_xprt_start
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    functionsReached:
    - conn_xprt_ready
    - struct connection*::xprt::start
    linkageType: ''
    returnType: int
    signature: int conn_xprt_start(struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct connection*::xprt::close
      Src: /src/haproxy/include/haproxy/connection.h:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: conn_xprt_close
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    functionsReached:
    - struct connection*::xprt::close
    linkageType: ''
    returnType: void
    signature: void conn_xprt_close(struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/connection.h:187,1
    - Dst: struct connection*::ctrl::ctrl_init
      Src: /src/haproxy/include/haproxy/connection.h:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: conn_ctrl_init
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    functionsReached:
    - struct connection*::ctrl::ctrl_init
    - conn_ctrl_ready
    linkageType: ''
    returnType: void
    signature: void conn_ctrl_init(struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/include/haproxy/connection.h:201,1
    - Dst: struct connection*::ctrl::ctrl_close
      Src: /src/haproxy/include/haproxy/connection.h:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 206
    functionName: conn_ctrl_close
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 3
    functionsReached:
    - conn_ctrl_drain
    - struct connection*::ctrl::ctrl_close
    linkageType: ''
    returnType: void
    signature: void conn_ctrl_close(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_xprt_close
      Src: /src/haproxy/include/haproxy/connection.h:216,1
    - Dst: conn_ctrl_close
      Src: /src/haproxy/include/haproxy/connection.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: conn_full_close
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 9
    functionsReached:
    - conn_ctrl_close
    - conn_xprt_close
    linkageType: ''
    returnType: void
    signature: void conn_full_close(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: conn_stop_tracking
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void conn_stop_tracking(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/connection.h:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: conn_fd
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 6
    functionsReached:
    - conn_ctrl_ready
    linkageType: ''
    returnType: int
    signature: int conn_fd(const struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/connection.h:244,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/connection.h:248,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/include/haproxy/connection.h:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: conn_sock_read0
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_AND
    - BUG_ON
    - conn_ctrl_ready
    linkageType: ''
    returnType: void
    signature: void conn_sock_read0(struct connection *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/connection.h:261,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/connection.h:265,1
    - Dst: shutdown
      Src: /src/haproxy/include/haproxy/connection.h:267,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/include/haproxy/connection.h:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - c
    - clean
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 270
    functionName: conn_sock_shutw
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    functionsReached:
    - conn_report_term_evt
    - shutdown
    - BUG_ON
    - conn_ctrl_ready
    linkageType: ''
    returnType: void
    signature: void conn_sock_shutw(struct connection *c, int clean)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct connection*::xprt::shutw
      Src: /src/haproxy/include/haproxy/connection.h:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: conn_xprt_shutw
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    functionsReached:
    - struct connection*::xprt::shutw
    linkageType: ''
    returnType: void
    signature: void conn_xprt_shutw(struct connection *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct connection*::xprt::shutw
      Src: /src/haproxy/include/haproxy/connection.h:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: conn_xprt_shutw_hard
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 0
    functionsReached:
    - struct connection*::xprt::shutw
    linkageType: ''
    returnType: void
    signature: void conn_xprt_shutw_hard(struct connection *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: conn_xprt_read0_pending
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int conn_xprt_read0_pending(struct connection *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct xprt_ops*::init
      Src: /src/haproxy/include/haproxy/connection.h:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - conn
    - proto
    - xprt
    argTypes:
    - struct connection*
    - struct protocol*
    - struct xprt_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 314
    functionName: conn_prepare
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    functionsReached:
    - struct xprt_ops*::init
    linkageType: ''
    returnType: int
    signature: int conn_prepare(struct connection *conn, const struct protocol *proto,
      const struct xprt_ops *xprt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/include/haproxy/connection.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: conn_is_back
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 40
    functionsReached:
    - objt_listener
    linkageType: ''
    returnType: int
    signature: int conn_is_back(const struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - owner
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: conn_set_owner
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void conn_set_owner(struct connection *conn, void *owner, void (*cb)(struct
      connection *))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/connection.h:339,1
    - Dst: srv_release_conn
      Src: /src/haproxy/include/haproxy/connection.h:340,1
    - Dst: __objt_server
      Src: /src/haproxy/include/haproxy/connection.h:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 342
    functionName: conn_set_private
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    functionsReached:
    - __objt_server
    - srv_release_conn
    - obj_type
    linkageType: ''
    returnType: void
    signature: void conn_set_private(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: conn_force_unsubscribe
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void conn_force_unsubscribe(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: conn_src
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr_storage
    signature: struct sockaddr_storage *conn_src(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: conn_dst
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr_storage
    signature: struct sockaddr_storage *conn_dst(struct connection *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/connection.h:373,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/include/haproxy/connection.h:376,1
    - Dst: struct connection*::ctrl::get_src
      Src: /src/haproxy/include/haproxy/connection.h:381,1
    - Dst: struct connection*::ctrl::fam::get_src
      Src: /src/haproxy/include/haproxy/connection.h:389,1
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/connection.h:391,1
    - Dst: sockaddr_free
      Src: /src/haproxy/include/haproxy/connection.h:396,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 400
    functionName: conn_get_src
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 19
    functionsReached:
    - sockaddr_alloc
    - conn_ctrl_ready
    - sockaddr_free
    - struct connection*::ctrl::fam::get_src
    - obj_type
    - struct connection*::ctrl::get_src
    linkageType: ''
    returnType: int
    signature: int conn_get_src(struct connection *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/connection.h:411,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/include/haproxy/connection.h:414,1
    - Dst: struct connection*::ctrl::get_dst
      Src: /src/haproxy/include/haproxy/connection.h:419,1
    - Dst: struct connection*::ctrl::fam::get_dst
      Src: /src/haproxy/include/haproxy/connection.h:427,1
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/connection.h:429,1
    - Dst: sockaddr_free
      Src: /src/haproxy/include/haproxy/connection.h:434,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 438
    functionName: conn_get_dst
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 16
    functionsReached:
    - sockaddr_alloc
    - conn_ctrl_ready
    - struct connection*::ctrl::get_dst
    - sockaddr_free
    - obj_type
    - struct connection*::ctrl::fam::get_dst
    linkageType: ''
    returnType: int
    signature: int conn_get_dst(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/connection.h:446,1
    - Dst: sock_set_tos
      Src: /src/haproxy/include/haproxy/connection.h:449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - tos
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 450
    functionName: conn_set_tos
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 2
    functionsReached:
    - sock_set_tos
    - conn_ctrl_ready
    linkageType: ''
    returnType: void
    signature: void conn_set_tos(const struct connection *conn, int tos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/connection.h:457,1
    - Dst: sock_set_mark
      Src: /src/haproxy/include/haproxy/connection.h:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - mark
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 461
    functionName: conn_set_mark
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 2
    functionsReached:
    - sock_set_mark
    - conn_ctrl_ready
    linkageType: ''
    returnType: void
    signature: void conn_set_mark(const struct connection *conn, int mark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/connection.h:468,1
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/connection.h:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - value
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 474
    functionName: conn_set_quickack
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 1
    functionsReached:
    - setsockopt
    - conn_ctrl_ready
    linkageType: ''
    returnType: void
    signature: void conn_set_quickack(const struct connection *conn, int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - wl
    - (*cb)(struct task *, void *, unsigned int)
    - ctx
    argTypes:
    - struct wait_event*
    - struct task*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 483
    functionName: wl_set_waitcb
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct wait_event
    signature: struct wait_event *wl_set_waitcb(struct wait_event *wl, struct task
      *(*cb)(struct task *, void *, unsigned int), void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CALL_MUX_WITH_RET
      Src: /src/haproxy/include/haproxy/connection.h:495,1
    - Dst: init
      Src: /src/haproxy/include/haproxy/connection.h:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - conn
    - mux
    - ctx
    - prx
    - sess
    argTypes:
    - struct connection*
    - struct mux_ops*
    - void*
    - struct proxy*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 501
    functionName: conn_install_mux
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    functionsReached:
    - init
    - CALL_MUX_WITH_RET
    linkageType: ''
    returnType: int
    signature: "int conn_install_mux(struct connection *conn, const struct mux_ops
      *mux,\n                                   void *ctx, struct proxy *prx, struct
      session *sess)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/connection.h:530,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/connection.h:539,1
    - Dst: MAX
      Src: /src/haproxy/include/haproxy/connection.h:558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - desired
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 559
    functionName: conn_calc_max_streams
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    functionsReached:
    - MAX
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint
    signature: uint conn_calc_max_streams(uint desired)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/connection.h:572,1
    - Dst: struct connection*::mux::get_first_sc
      Src: /src/haproxy/include/haproxy/connection.h:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 577
    functionName: conn_get_first_sc
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 1
    functionsReached:
    - struct connection*::mux::get_first_sc
    - BUG_ON
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *conn_get_first_sc(const struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/connection.h:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 586
    functionName: conn_get_ctrl_name
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 2
    functionsReached:
    - conn_ctrl_ready
    linkageType: ''
    returnType: char
    signature: char *conn_get_ctrl_name(const struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 593
    functionName: conn_get_xprt_name
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *conn_get_xprt_name(const struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 600
    functionName: conn_get_mux_name
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *conn_get_mux_name(const struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - id
    - xprt
    argTypes:
    - int
    - struct xprt_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 608
    functionName: xprt_register
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xprt_register(int id, struct xprt_ops *xprt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 616
    functionName: xprt_get
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: struct xprt_ops
    signature: struct xprt_ops *xprt_get(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct xprt_ops*::set_idle
      Src: /src/haproxy/include/haproxy/connection.h:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - conn
    - xprt
    - xprt_ctx
    argTypes:
    - struct connection*
    - struct xprt_ops*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 626
    functionName: xprt_set_idle
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 7
    functionsReached:
    - struct xprt_ops*::set_idle
    linkageType: ''
    returnType: void
    signature: void xprt_set_idle(struct connection *conn, const struct xprt_ops *xprt,
      void *xprt_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct xprt_ops*::set_used
      Src: /src/haproxy/include/haproxy/connection.h:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - conn
    - xprt
    - xprt_ctx
    argTypes:
    - struct connection*
    - struct xprt_ops*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: xprt_set_used
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 6
    functionsReached:
    - struct xprt_ops*::set_used
    linkageType: ''
    returnType: void
    signature: void xprt_set_used(struct connection *conn, const struct xprt_ops *xprt,
      void *xprt_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_xprt_ready
      Src: /src/haproxy/include/haproxy/connection.h:639,1
    - Dst: struct connection*::xprt::get_alpn
      Src: /src/haproxy/include/haproxy/connection.h:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - conn
    - str
    - len
    argTypes:
    - struct connection*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 642
    functionName: conn_get_alpn
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 9
    functionsReached:
    - struct connection*::xprt::get_alpn
    - conn_xprt_ready
    linkageType: ''
    returnType: int
    signature: int conn_get_alpn(const struct connection *conn, const char **str,
      int *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/connection.h:647,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/connection.h:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct mux_proto_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 649
    functionName: unregister_mux_proto
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void unregister_mux_proto(struct mux_proto_list *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/include/haproxy/connection.h:655,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/connection.h:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - proto
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 660
    functionName: get_mux_proto
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 9
    functionsReached:
    - isteq
    - list_for_each_entry
    linkageType: ''
    returnType: struct mux_proto_list
    signature: struct mux_proto_list *get_mux_proto(const struct ist proto)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/include/haproxy/connection.h:681,1
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/connection.h:684,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/connection.h:684,1
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/connection.h:687,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/connection.h:688,1
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/connection.h:688,1
    - Dst: memcmp
      Src: /src/haproxy/include/haproxy/connection.h:689,1
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/connection.h:689,1
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/connection.h:691,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 15
    argCount: 5
    argNames:
    - mux_proto
    - alpn
    - proto_side
    - proto_is_quic
    - proto_mode
    argTypes:
    - struct ist
    - struct ist
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 698
    functionName: conn_get_best_mux_entry
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    functionsReached:
    - memcmp
    - list_for_each_entry
    - isteq
    - istlen
    - strlen
    linkageType: ''
    returnType: struct mux_proto_list
    signature: "struct mux_proto_list *conn_get_best_mux_entry(\n        const struct
      ist mux_proto,\n        const struct ist alpn,\n        int proto_side, int
      proto_is_quic, int proto_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/include/haproxy/connection.h:713,1
    - Dst: proto_is_quic
      Src: /src/haproxy/include/haproxy/connection.h:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - conn
    - mux_proto
    - alpn
    - proto_side
    - proto_mode
    argTypes:
    - struct connection*
    - struct ist
    - struct ist
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 716
    functionName: conn_get_best_mux
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    functionsReached:
    - proto_is_quic
    - conn_get_best_mux_entry
    linkageType: ''
    returnType: struct mux_ops
    signature: "struct mux_ops *conn_get_best_mux(struct connection *conn,\n\t\t\t\t\t\t
      \     const struct ist mux_proto,\n\t\t\t\t\t\t      const struct ist alpn,\n\t\t\t\t\t\t
      \     int proto_side, int proto_mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/include/haproxy/connection.h:728,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/connection.h:733,1
    - Dst: objt_proxy
      Src: /src/haproxy/include/haproxy/connection.h:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 738
    functionName: conn_get_proxy
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 1
    functionsReached:
    - objt_server
    - objt_listener
    - objt_proxy
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *conn_get_proxy(const struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct connection*::xprt::get_ssl_sock_ctx
      Src: /src/haproxy/include/haproxy/connection.h:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: __conn_get_ssl_sock_ctx
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    functionsReached:
    - struct connection*::xprt::get_ssl_sock_ctx
    linkageType: ''
    returnType: struct ssl_sock_ctx
    signature: struct ssl_sock_ctx *__conn_get_ssl_sock_ctx(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct connection*::xprt::get_ssl_sock_ctx
      Src: /src/haproxy/include/haproxy/connection.h:754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 755
    functionName: conn_get_ssl_sock_ctx
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 28
    functionsReached:
    - struct connection*::xprt::get_ssl_sock_ctx
    linkageType: ''
    returnType: struct ssl_sock_ctx
    signature: struct ssl_sock_ctx *conn_get_ssl_sock_ctx(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/include/haproxy/connection.h:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: conn_is_ssl
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 7
    functionsReached:
    - conn_get_ssl_sock_ctx
    linkageType: ''
    returnType: int
    signature: int conn_is_ssl(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: conn_is_quic
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int conn_is_quic(const struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 773
    functionName: conn_is_reverse
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int conn_is_reverse(const struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/connection.h:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 3
    functionLinenumber: 776
    functionLinenumberEnd: 780
    functionName: conn_reverse_in_preconnect
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 7
    functionsReached:
    - conn_is_back
    linkageType: ''
    returnType: int
    signature: int conn_reverse_in_preconnect(const struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/connection.h:786,1
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/connection.h:786,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/connection.h:786,1
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/connection.h:787,1
    - Dst: objt_listener
      Src: /src/haproxy/include/haproxy/connection.h:787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - target
    argTypes:
    - struct connection*
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 790
    functionName: conn_set_reverse
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 2
    functionsReached:
    - conn_is_back
    - objt_server
    - objt_listener
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void conn_set_reverse(struct connection *conn, enum obj_type *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/connection.h:795,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/connection.h:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 803
    functionName: conn_idle_ping
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    functionsReached:
    - conn_is_back
    - objt_server
    linkageType: ''
    returnType: int
    signature: int conn_idle_ping(const struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/connection.h:808,1
    - Dst: __objt_listener
      Src: /src/haproxy/include/haproxy/connection.h:808,1
    - Dst: __objt_listener
      Src: /src/haproxy/include/haproxy/connection.h:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 810
    functionName: conn_active_reverse_listener
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 2
    functionsReached:
    - conn_is_back
    - __objt_listener
    linkageType: ''
    returnType: struct listener
    signature: struct listener *conn_active_reverse_listener(const struct connection
      *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tlv_type
    - tlv_arg
    argTypes:
    - int
    - struct arg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 824
    functionName: set_tlv_arg
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_tlv_arg(int tlv_type, struct arg *tlv_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - proxy_mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 838
    functionName: conn_pr_mode_to_proto_mode
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int conn_pr_mode_to_proto_mode(int proxy_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _evts
    - ','
    - loc
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 855
    functionName: tevt_report_event
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tevt_report_event(_evts, loc, type)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 1
    argNames:
    - evts
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 898
    functionName: tevt_evts2str
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *tevt_evts2str(uint32_t evts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/connection.h:903,1
    - Dst: tevt_report_event
      Src: /src/haproxy/include/haproxy/connection.h:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - conn
    - loc
    - type
    argTypes:
    - struct connection*
    - enum term_event_loc
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 901
    functionDepth: 3
    functionLinenumber: 901
    functionLinenumberEnd: 906
    functionName: conn_report_term_evt
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 27
    functionsReached:
    - conn_is_back
    - tevt_report_event
    linkageType: ''
    returnType: void
    signature: void conn_report_term_evt(struct connection *conn, enum term_event_loc
      loc, unsigned char type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: _EVENT_HDL_CALLING_PLACE2
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _EVENT_HDL_CALLING_PLACE2(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: _EVENT_HDL_CALLING_PLACE1
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _EVENT_HDL_CALLING_PLACE1(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _id
    - ','
    - func
    - ','
    - _private
    - ','
    - _private_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: EVENT_HDL_ID_SYNC
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_ID_SYNC(_id, func, _private, _private_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - func
    - ','
    - _private
    - ','
    - _private_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: EVENT_HDL_SYNC
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_SYNC(func, _private, _private_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _id
    - ','
    - func
    - ','
    - _private
    - ','
    - _private_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: EVENT_HDL_ID_ASYNC
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_ID_ASYNC(_id, func, _private, _private_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - func
    - ','
    - _private
    - ','
    - _private_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: EVENT_HDL_ASYNC
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_ASYNC(func, _private, _private_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _id
    - ','
    - equeue
    - ','
    - task
    - ','
    - _private
    - ','
    - _private_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: EVENT_HDL_ID_ASYNC_TASK
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_ID_ASYNC_TASK(_id, equeue, task, _private, _private_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - equeue
    - ','
    - task
    - ','
    - _private
    - ','
    - _private_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: EVENT_HDL_ASYNC_TASK
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_ASYNC_TASK(equeue, task, _private, _private_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: _EVENT_HDL_CB_DATA_ASSERT
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _EVENT_HDL_CB_DATA_ASSERT(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - size
    - ','
    - mfree
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: _EVENT_HDL_CB_DATA
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _EVENT_HDL_CB_DATA(data,size,mfree)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: EVENT_HDL_CB_DATA
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_CB_DATA(data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - mfree
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: EVENT_HDL_CB_DATA_DM
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_CB_DATA_DM(data, mfree)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 421
    functionName: EVENT_HDL_ASSERT_SYNC
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_HDL_ASSERT_SYNC(cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct event_hdl_sub_type
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: event_hdl_sub_family_equal
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_hdl_sub_family_equal(struct event_hdl_sub_type a, struct
      event_hdl_sub_type b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct event_hdl_sub_type
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: event_hdl_sub_type_equal
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_hdl_sub_type_equal(struct event_hdl_sub_type a, struct event_hdl_sub_type
      b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/event_hdl.h:440,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/event_hdl.h:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct event_hdl_sub_type
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: event_hdl_sub_type_del
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: struct event_hdl_sub_type
    signature: struct event_hdl_sub_type event_hdl_sub_type_del(struct event_hdl_sub_type
      a, struct event_hdl_sub_type b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/event_hdl.h:453,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/event_hdl.h:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct event_hdl_sub_type
    - struct event_hdl_sub_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 460
    functionName: event_hdl_sub_type_add
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 2
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: struct event_hdl_sub_type
    signature: struct event_hdl_sub_type event_hdl_sub_type_add(struct event_hdl_sub_type
      a, struct event_hdl_sub_type b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/include/haproxy/event_hdl.h:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - queue
    argTypes:
    - event_hdl_async_equeue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: event_hdl_async_equeue_init
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 3
    functionsReached:
    - MT_LIST_INIT
    linkageType: ''
    returnType: void
    signature: void event_hdl_async_equeue_init(event_hdl_async_equeue *queue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_POP
      Src: /src/haproxy/include/haproxy/event_hdl.h:481,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/include/haproxy/event_hdl.h:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - queue
    argTypes:
    - event_hdl_async_equeue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 485
    functionName: event_hdl_async_equeue_pop
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_DEC
    - MT_LIST_POP
    linkageType: ''
    returnType: struct event_hdl_async_event
    signature: struct event_hdl_async_event *event_hdl_async_equeue_pop(event_hdl_async_equeue
      *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/event_hdl.h:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - event_hdl_async_equeue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: event_hdl_async_equeue_isempty
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 2
    functionsReached:
    - MT_LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int event_hdl_async_equeue_isempty(event_hdl_async_equeue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/event_hdl.h:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - event_hdl_async_equeue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: event_hdl_async_equeue_size
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t event_hdl_async_equeue_size(event_hdl_async_equeue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/event_hdl.h:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sub_list
    argTypes:
    - event_hdl_sub_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: event_hdl_sub_list_empty
    functionSourceFile: /src/haproxy/include/haproxy/event_hdl.h
    functionUses: 0
    functionsReached:
    - MT_LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int event_hdl_sub_list_empty(event_hdl_sub_list *sub_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: TASK_IS_TASKLET
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TASK_IS_TASKLET(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/task.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: total_run_queues
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 2
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int total_run_queues()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/task.h:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: total_allocated_tasks
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 2
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int total_allocated_tasks()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/task.h:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: total_niced_running_tasks
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 2
    functionsReached:
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int total_niced_running_tasks()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: task_in_rq
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int task_in_rq(struct task *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: task_in_wq
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int task_in_wq(struct task *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/include/haproxy/task.h:196,1
    - Dst: eb_is_empty
      Src: /src/haproxy/include/haproxy/task.h:197,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/task.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: thread_has_tasks
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 3
    functionsReached:
    - eb_is_empty
    - MT_LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int thread_has_tasks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: task_mono_time
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t task_mono_time(void)
  - 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: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: task_wakeup
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 112
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: task_wakeup(t, f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR_FETCH
      Src: /src/haproxy/include/haproxy/task.h:221,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/task.h:223,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/task.h:224,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/include/haproxy/task.h:225,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:226,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:228,1
    - Dst: __task_wakeup
      Src: /src/haproxy/include/haproxy/task.h:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - t
    - f
    - caller
    argTypes:
    - struct task*
    - unsigned int
    - struct ha_caller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 235
    functionName: _task_wakeup
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 4
    functionsReached:
    - HA_ATOMIC_STORE
    - BUG_ON
    - _HA_ATOMIC_OR_FETCH
    - likely
    - __task_wakeup
    - _HA_ATOMIC_CAS
    - HA_ATOMIC_XCHG
    linkageType: ''
    returnType: void
    signature: void _task_wakeup(struct task *t, unsigned int f, const struct ha_caller
      *caller)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/task.h:248,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/task.h:255,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/include/haproxy/task.h:257,1
    - Dst: __task_wakeup
      Src: /src/haproxy/include/haproxy/task.h:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - t
    - f
    argTypes:
    - struct task*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 262
    functionName: task_drop_running
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 2
    functionsReached:
    - __ha_cpu_relax
    - __task_wakeup
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void task_drop_running(struct task *t, unsigned int f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_delete
      Src: /src/haproxy/include/haproxy/task.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 274
    functionName: __task_unlink_wq
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 3
    functionsReached:
    - eb32_delete
    linkageType: ''
    returnType: struct task
    signature: struct task *__task_unlink_wq(struct task *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/task.h:284,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:284,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:286,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/task.h:288,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/include/haproxy/task.h:289,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/task.h:291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 294
    functionName: task_unlink_wq
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 7
    functionsReached:
    - BUG_ON
    - HA_RWLOCK_WRUNLOCK
    - likely
    - task_in_wq
    - HA_RWLOCK_WRLOCK
    - __task_unlink_wq
    linkageType: ''
    returnType: struct task
    signature: struct task *task_unlink_wq(struct task *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: task_queue
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: task_queue(t)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/task.h:316,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/task.h:321,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:322,1
    - Dst: tick_is_lt
      Src: /src/haproxy/include/haproxy/task.h:322,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/task.h:323,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/include/haproxy/task.h:324,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:325,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:327,1
    - Dst: __task_queue
      Src: /src/haproxy/include/haproxy/task.h:330,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/task.h:332,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:336,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:337,1
    - Dst: tick_is_lt
      Src: /src/haproxy/include/haproxy/task.h:337,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/task.h:338,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/include/haproxy/task.h:339,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:340,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:342,1
    - Dst: __task_queue
      Src: /src/haproxy/include/haproxy/task.h:345,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - task
    - caller
    argTypes:
    - struct task*
    - struct ha_caller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 348
    functionName: _task_queue
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_STORE
    - BUG_ON
    - tick_is_lt
    - HA_RWLOCK_WRUNLOCK
    - __task_queue
    - likely
    - task_in_wq
    - tick_isset
    - HA_RWLOCK_WRLOCK
    - HA_ATOMIC_XCHG
    linkageType: ''
    returnType: void
    signature: void _task_queue(struct task *task, const struct ha_caller *caller)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/task.h:366,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:366,1
    - Dst: task_unlink_wq
      Src: /src/haproxy/include/haproxy/task.h:367,1
    - Dst: task_queue
      Src: /src/haproxy/include/haproxy/task.h:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - t
    - thr
    argTypes:
    - struct task*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 374
    functionName: task_set_thread
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 5
    functionsReached:
    - unlikely
    - task_queue
    - task_unlink_wq
    - task_in_wq
    linkageType: ''
    returnType: void
    signature: void task_set_thread(struct task *t, int thr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tl
    - ','
    - thr
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: tasklet_wakeup_on
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tasklet_wakeup_on(tl, thr, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR_FETCH
      Src: /src/haproxy/include/haproxy/task.h:393,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/task.h:399,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/task.h:402,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/include/haproxy/task.h:403,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:404,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:406,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/task.h:410,1
    - Dst: now_mono_time
      Src: /src/haproxy/include/haproxy/task.h:411,1
    - Dst: __tasklet_wakeup_on
      Src: /src/haproxy/include/haproxy/task.h:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - tl
    - thr
    - f
    - caller
    argTypes:
    - struct tasklet*
    - int
    - uint
    - struct ha_caller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 413
    functionName: _tasklet_wakeup_on
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_STORE
    - __tasklet_wakeup_on
    - BUG_ON
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_OR_FETCH
    - likely
    - now_mono_time
    - _HA_ATOMIC_CAS
    - HA_ATOMIC_XCHG
    linkageType: ''
    returnType: void
    signature: void _tasklet_wakeup_on(struct tasklet *tl, int thr, uint f, const
      struct ha_caller *caller)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tl
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: tasklet_wakeup
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 91
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tasklet_wakeup(tl, ...)
  - 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: 439
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 439
    functionName: task_instant_wakeup
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: task_instant_wakeup(t, f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR_FETCH
      Src: /src/haproxy/include/haproxy/task.h:449,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/task.h:459,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/task.h:461,1
    - Dst: task_in_rq
      Src: /src/haproxy/include/haproxy/task.h:461,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/task.h:464,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/include/haproxy/task.h:465,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:466,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:468,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/task.h:472,1
    - Dst: now_mono_time
      Src: /src/haproxy/include/haproxy/task.h:473,1
    - Dst: __tasklet_wakeup_on
      Src: /src/haproxy/include/haproxy/task.h:474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - t
    - f
    - caller
    argTypes:
    - struct task*
    - unsigned int
    - struct ha_caller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 475
    functionName: _task_instant_wakeup
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached:
    - task_in_rq
    - HA_ATOMIC_STORE
    - __tasklet_wakeup_on
    - BUG_ON
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_OR_FETCH
    - likely
    - now_mono_time
    - _HA_ATOMIC_CAS
    - HA_ATOMIC_XCHG
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void _task_instant_wakeup(struct task *t, unsigned int f, const struct
      ha_caller *caller)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tl
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: tasklet_wakeup_after
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tasklet_wakeup_after(head, tl, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR_FETCH
      Src: /src/haproxy/include/haproxy/task.h:500,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/task.h:506,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/task.h:509,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/include/haproxy/task.h:510,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:511,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:513,1
    - Dst: now_mono_time
      Src: /src/haproxy/include/haproxy/task.h:518,1
    - Dst: __tasklet_wakeup_after
      Src: /src/haproxy/include/haproxy/task.h:519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - head
    - tl
    - f
    - caller
    argTypes:
    - struct list*
    - struct tasklet*
    - uint
    - struct ha_caller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 520
    functionName: _tasklet_wakeup_after
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_STORE
    - BUG_ON
    - _HA_ATOMIC_OR_FETCH
    - likely
    - now_mono_time
    - _HA_ATOMIC_CAS
    - HA_ATOMIC_XCHG
    - __tasklet_wakeup_after
    linkageType: ''
    returnType: struct list
    signature: "struct list *_tasklet_wakeup_after(struct list *head, struct tasklet
      *tl,\n                                                 uint f, const struct
      ha_caller *caller)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 533
    functionName: DEBUG_TASK_PRINT_CALLER
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_TASK_PRINT_CALLER(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 535
    functionName: DEBUG_TASK_PRINT_CALLER
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_TASK_PRINT_CALLER(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - t
    - tid
    argTypes:
    - struct task*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 559
    functionName: task_init
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct task
    signature: struct task *task_init(struct task *t, int tid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/task.h:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 575
    functionName: tasklet_init
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void tasklet_init(struct tasklet *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/task.h:582,1
    - Dst: tasklet_init
      Src: /src/haproxy/include/haproxy/task.h:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 588
    functionName: tasklet_new
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 29
    functionsReached:
    - pool_alloc
    - tasklet_init
    linkageType: ''
    returnType: struct tasklet
    signature: struct tasklet *tasklet_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/task.h:599,1
    - Dst: task_init
      Src: /src/haproxy/include/haproxy/task.h:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - thr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 605
    functionName: task_new_on
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 11
    functionsReached:
    - task_init
    - pool_alloc
    linkageType: ''
    returnType: struct task
    signature: struct task *task_new_on(int thr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_new_on
      Src: /src/haproxy/include/haproxy/task.h:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 614
    functionName: task_new_here
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 24
    functionsReached:
    - task_new_on
    linkageType: ''
    returnType: struct task
    signature: struct task *task_new_here()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_new_on
      Src: /src/haproxy/include/haproxy/task.h:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 622
    functionName: task_new_anywhere
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 15
    functionsReached:
    - task_new_on
    linkageType: ''
    returnType: struct task
    signature: struct task *task_new_anywhere()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __ha_barrier_store
      Src: /src/haproxy/include/haproxy/task.h:632,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:634,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:634,1
    - Dst: task_in_rq
      Src: /src/haproxy/include/haproxy/task.h:634,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:636,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:638,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/task.h:638,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:640,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:642,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/task.h:644,1
    - Dst: pool_flush
      Src: /src/haproxy/include/haproxy/task.h:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 646
    functionName: __task_free
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 5
    functionsReached:
    - unlikely
    - task_in_rq
    - HA_ATOMIC_STORE
    - BUG_ON
    - HA_ATOMIC_LOAD
    - pool_flush
    - task_in_wq
    - __ha_barrier_store
    - pool_free
    linkageType: ''
    returnType: void
    signature: void __task_free(struct task *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: task_unlink_wq
      Src: /src/haproxy/include/haproxy/task.h:657,1
    - Dst: __task_free
      Src: /src/haproxy/include/haproxy/task.h:668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 652
    functionDepth: 4
    functionLinenumber: 652
    functionLinenumberEnd: 671
    functionName: task_destroy
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 55
    functionsReached:
    - task_unlink_wq
    - __task_free
    linkageType: ''
    returnType: void
    signature: void task_destroy(struct task *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/include/haproxy/task.h:679,1
    - Dst: list_to_mt_list
      Src: /src/haproxy/include/haproxy/task.h:679,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/include/haproxy/task.h:680,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:682,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:684,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/task.h:684,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:686,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:687,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/task.h:688,1
    - Dst: pool_flush
      Src: /src/haproxy/include/haproxy/task.h:689,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tl
    argTypes:
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 690
    functionName: tasklet_free
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 42
    functionsReached:
    - unlikely
    - MT_LIST_DELETE
    - HA_ATOMIC_STORE
    - BUG_ON
    - HA_ATOMIC_LOAD
    - pool_flush
    - _HA_ATOMIC_DEC
    - pool_free
    - list_to_mt_list
    linkageType: ''
    returnType: void
    signature: void tasklet_free(struct tasklet *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tl
    - tid
    argTypes:
    - struct tasklet*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 695
    functionName: tasklet_set_tid
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tasklet_set_tid(struct tasklet *tl, int tid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 707
    functionName: task_schedule
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: task_schedule(t, w)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: task_in_rq
      Src: /src/haproxy/include/haproxy/task.h:711,1
    - Dst: HA_ATOMIC_FETCH_OR
      Src: /src/haproxy/include/haproxy/task.h:728,1
    - Dst: task_wakeup
      Src: /src/haproxy/include/haproxy/task.h:729,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/task.h:734,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:735,1
    - Dst: tick_first
      Src: /src/haproxy/include/haproxy/task.h:736,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:739,1
    - Dst: tick_is_lt
      Src: /src/haproxy/include/haproxy/task.h:739,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/task.h:740,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/include/haproxy/task.h:741,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:742,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:744,1
    - Dst: __task_queue
      Src: /src/haproxy/include/haproxy/task.h:747,1
    - Dst: task_drop_running
      Src: /src/haproxy/include/haproxy/task.h:749,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/task.h:750,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:754,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:755,1
    - Dst: tick_first
      Src: /src/haproxy/include/haproxy/task.h:756,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:759,1
    - Dst: tick_is_lt
      Src: /src/haproxy/include/haproxy/task.h:759,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/task.h:760,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/include/haproxy/task.h:761,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:762,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:764,1
    - Dst: __task_queue
      Src: /src/haproxy/include/haproxy/task.h:767,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - task
    - when
    - caller
    argTypes:
    - struct task*
    - int
    - struct ha_caller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 770
    functionName: _task_schedule
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached:
    - task_in_rq
    - HA_ATOMIC_STORE
    - BUG_ON
    - tick_is_lt
    - HA_RWLOCK_WRUNLOCK
    - task_wakeup
    - __task_queue
    - HA_ATOMIC_FETCH_OR
    - task_in_wq
    - tick_first
    - likely
    - task_drop_running
    - HA_RWLOCK_WRLOCK
    - HA_ATOMIC_XCHG
    linkageType: ''
    returnType: void
    signature: void _task_schedule(struct task *task, int when, const struct ha_caller
      *caller)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - t
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 787
    functionName: task_wakeup_type_str
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *task_wakeup_type_str(uint t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/task.h:791,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/include/haproxy/task.h:794,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/include/haproxy/task.h:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - purge
    - wakeup
    argTypes:
    - struct list*
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 798
    functionName: _notification_new
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached:
    - pool_alloc
    - LIST_APPEND
    - HA_SPIN_INIT
    linkageType: ''
    returnType: struct notification
    signature: struct notification *_notification_new(struct list *purge, struct task
      *wakeup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _notification_new
      Src: /src/haproxy/include/haproxy/task.h:809,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/include/haproxy/task.h:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - purge
    - event
    - wakeup
    argTypes:
    - struct list*
    - struct mt_list*
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 814
    functionName: notification_new
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 7
    functionsReached:
    - _notification_new
    - MT_LIST_APPEND
    linkageType: ''
    returnType: struct notification
    signature: struct notification *notification_new(struct list *purge, struct mt_list
      *event, struct task *wakeup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/include/haproxy/task.h:829,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/task.h:830,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:832,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:833,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - purge
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 839
    functionName: notification_purge
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 2
    functionsReached:
    - LIST_DELETE
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - pool_free
    linkageType: ''
    returnType: void
    signature: void notification_purge(struct list *purge)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/include/haproxy/task.h:829,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/task.h:830,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:832,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:833,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 838
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 116
    functionsReached:
    - LIST_DELETE
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - pool_free
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(com, back, purge, purge_me)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/task.h:856,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - purge
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 859
    functionName: notification_gc
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 2
    functionsReached:
    - LIST_DELETE
    - pool_free
    linkageType: ''
    returnType: void
    signature: void notification_gc(struct list *purge)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/task.h:856,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 858
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 116
    functionsReached:
    - LIST_DELETE
    - pool_free
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe (com, back, purge, purge_me)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/include/haproxy/task.h:863,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:865,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:866,1
    - Dst: task_wakeup
      Src: /src/haproxy/include/haproxy/task.h:869,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - com
    argTypes:
    - struct notification*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 873
    functionName: _notification_wake
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached:
    - task_wakeup
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - pool_free
    linkageType: ''
    returnType: void
    signature: void _notification_wake(struct notification *com)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _notification_wake
      Src: /src/haproxy/include/haproxy/task.h:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - wake
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 888
    functionName: notification_wake
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 4
    functionsReached:
    - _notification_wake
    linkageType: ''
    returnType: void
    signature: void notification_wake(struct mt_list *wake)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _notification_wake
      Src: /src/haproxy/include/haproxy/task.h:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: MT_LIST_FOR_EACH_ENTRY_UNLOCKED
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 2
    functionsReached:
    - _notification_wake
    linkageType: ''
    returnType: void
    signature: void MT_LIST_FOR_EACH_ENTRY_UNLOCKED(com, wake, wake_me, back)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/task.h:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wake
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 895
    functionName: notification_registered
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 1
    functionsReached:
    - MT_LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int notification_registered(struct mt_list *wake)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: my_popcountl
      Src: /src/haproxy/include/haproxy/tinfo.h:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct thread_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: thread_set_count
    functionSourceFile: /src/haproxy/include/haproxy/tinfo.h
    functionUses: 1
    functionsReached:
    - my_popcountl
    linkageType: ''
    returnType: int
    signature: int thread_set_count(const struct thread_set *ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct thread_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: thread_set_is_empty
    functionSourceFile: /src/haproxy/include/haproxy/tinfo.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int thread_set_is_empty(const struct thread_set *ts)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ts
    - n
    argTypes:
    - struct thread_set*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: thread_set_nth_group
    functionSourceFile: /src/haproxy/include/haproxy/tinfo.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int thread_set_nth_group(const struct thread_set *ts, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ts
    - n
    argTypes:
    - struct thread_set*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: thread_set_nth_tmask
    functionSourceFile: /src/haproxy/include/haproxy/tinfo.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ulong
    signature: ulong thread_set_nth_tmask(const struct thread_set *ts, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ts
    - mask
    argTypes:
    - struct thread_set*
    - ulong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: thread_set_pin_grp1
    functionSourceFile: /src/haproxy/include/haproxy/tinfo.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_set_pin_grp1(struct thread_set *ts, ulong mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct thread_exec_ctx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: switch_exec_ctx
    functionSourceFile: /src/haproxy/include/haproxy/tinfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct thread_exec_ctx
    signature: struct thread_exec_ctx switch_exec_ctx(const struct thread_exec_ctx
      ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _pointer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: EXEC_CTX_MAKE
    functionSourceFile: /src/haproxy/include/haproxy/tinfo.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXEC_CTX_MAKE(_type, _pointer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - new_ctx
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: EXEC_CTX_WITH_RET
    functionSourceFile: /src/haproxy/include/haproxy/tinfo.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXEC_CTX_WITH_RET(new_ctx, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - new_ctx
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: EXEC_CTX_NO_RET
    functionSourceFile: /src/haproxy/include/haproxy/tinfo.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXEC_CTX_NO_RET(new_ctx, expr)
  - 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: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: QUIC_CLAMP
    functionSourceFile: /src/haproxy/include/haproxy/quic_cc_hystart.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUIC_CLAMP(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct quic_hystart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: quic_cc_hystart_reset
    functionSourceFile: /src/haproxy/include/haproxy/quic_cc_hystart.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_cc_hystart_reset(struct quic_hystart *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QUIC_MIN
      Src: /src/haproxy/include/haproxy/quic_cc_hystart.h:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cc
    - h
    - latest_rtt
    argTypes:
    - struct quic_cc*
    - struct quic_hystart*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: quic_cc_hystart_track_min_rtt
    functionSourceFile: /src/haproxy/include/haproxy/quic_cc_hystart.h
    functionUses: 2
    functionsReached:
    - QUIC_MIN
    linkageType: ''
    returnType: void
    signature: "void quic_cc_hystart_track_min_rtt(struct quic_cc *cc,\n                                                 struct
      quic_hystart *h,\n                                                 unsigned
      int latest_rtt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - h
    - pn
    argTypes:
    - struct quic_hystart*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: quic_cc_hystart_start_round
    functionSourceFile: /src/haproxy/include/haproxy/quic_cc_hystart.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quic_cc_hystart_start_round(struct quic_hystart *h, uint64_t pn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QUIC_CLAMP
      Src: /src/haproxy/include/haproxy/quic_cc_hystart.h:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct quic_hystart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: quic_cc_hystart_may_enter_cs
    functionSourceFile: /src/haproxy/include/haproxy/quic_cc_hystart.h
    functionUses: 1
    functionsReached:
    - QUIC_CLAMP
    linkageType: ''
    returnType: int
    signature: int quic_cc_hystart_may_enter_cs(struct quic_hystart *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct quic_hystart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 129
    functionName: quic_cc_hystart_may_reenter_ss
    functionSourceFile: /src/haproxy/include/haproxy/quic_cc_hystart.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_cc_hystart_may_reenter_ss(struct quic_hystart *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:85,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:87,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:87,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:87,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:88,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:88,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:88,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:88,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:89,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:89,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:89,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:90,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:90,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:90,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:91,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:91,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:91,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:91,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:92,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:92,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:92,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:93,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:93,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:93,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:94,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:94,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 99
    functionName: h2c_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/mux_h2-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *h2c_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/mux_h2-t.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:148,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:150,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:150,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:150,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:150,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:151,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:151,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:151,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:152,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:152,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:152,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:153,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:153,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:153,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:154,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:154,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:154,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:155,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:155,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:155,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:156,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:156,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:156,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 161
    functionName: h2s_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/mux_h2-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *h2s_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/mux_h2-t.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum h2_cs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 210
    functionName: h2c_st_to_str
    functionSourceFile: /src/haproxy/include/haproxy/mux_h2-t.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *h2c_st_to_str(enum h2_cs st)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum h2_ss
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: h2s_st_to_str
    functionSourceFile: /src/haproxy/include/haproxy/mux_h2-t.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *h2s_st_to_str(enum h2_ss st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: HA_INIT_SECTION
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HA_INIT_SECTION(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - stg
    - ','
    - linenum
    - ','
    - function
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: __DECLARE_INITCALL
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECLARE_INITCALL(stg, linenum, function, a1, a2, a3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - stg
    - ','
    - linenum
    - ','
    - function
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: __DECLARE_INITCALL
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECLARE_INITCALL(stg, linenum, function, a1, a2, a3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: _DECLARE_INITCALL
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _DECLARE_INITCALL(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stage
    - ','
    - function
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: INITCALL0
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITCALL0(stage, function)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stage
    - ','
    - function
    - ','
    - arg1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: INITCALL1
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITCALL1(stage, function, arg1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stage
    - ','
    - function
    - ','
    - arg1
    - ','
    - arg2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: INITCALL2
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITCALL2(stage, function, arg1, arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - stage
    - ','
    - function
    - ','
    - arg1
    - ','
    - arg2
    - ','
    - arg3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: INITCALL3
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITCALL3(stage, function, arg1, arg2, arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - stg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: FOREACH_INITCALL
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_INITCALL(p,stg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - stg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: FOREACH_INITCALL
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_INITCALL(p,stg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: DECLARE_INIT_SECTION
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_INIT_SECTION(stg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: RUN_INITCALLS
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUN_INITCALLS(stg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 269
    functionName: RUN_INITCALLS
    functionSourceFile: /src/haproxy/include/haproxy/initcall.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUN_INITCALLS(stg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: FLT_ID
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_ID(flt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: FLT_CONF
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_CONF(flt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: FLT_OPS
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OPS(flt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - chn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: CHN_IDX
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHN_IDX(chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - chn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: FLT_STRM_OFF
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_STRM_OFF(s, chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flt
    - ','
    - chn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: FLT_OFF
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OFF(flt, chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: HAS_FILTERS
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_FILTERS(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: HAS_REQ_DATA_FILTERS
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_REQ_DATA_FILTERS(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: HAS_RSP_DATA_FILTERS
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_RSP_DATA_FILTERS(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - chn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: HAS_DATA_FILTERS
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_DATA_FILTERS(strm, chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: IS_REQ_DATA_FILTER
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_REQ_DATA_FILTER(flt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: IS_RSP_DATA_FILTER
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_RSP_DATA_FILTER(flt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flt
    - ','
    - chn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: IS_DATA_FILTER
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DATA_FILTER(flt, chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - call
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: FLT_STRM_CB
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_STRM_CB(strm, call)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - strm
    - ','
    - chn
    - ','
    - call
    - ','
    - default_ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: FLT_STRM_DATA_CB_IMPL_1
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_STRM_DATA_CB_IMPL_1(strm, chn, call, default_ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - strm
    - ','
    - chn
    - ','
    - call
    - ','
    - default_ret
    - ','
    - on_error
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: FLT_STRM_DATA_CB_IMPL_2
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_STRM_DATA_CB_IMPL_2(strm, chn, call, default_ret, on_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - strm
    - ','
    - chn
    - ','
    - call
    - ','
    - default_ret
    - ','
    - on_error
    - ','
    - on_wait
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: FLT_STRM_DATA_CB_IMPL_3
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_STRM_DATA_CB_IMPL_3(strm, chn, call, default_ret, on_error, on_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - strm
    - ','
    - chn
    - ','
    - call
    - ','
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - DATA_CB_IMPL
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: FLT_STRM_DATA_CB_IMPL_X
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_STRM_DATA_CB_IMPL_X(strm, chn, call, A, B, C, DATA_CB_IMPL, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - strm
    - ','
    - chn
    - ','
    - call
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: FLT_STRM_DATA_CB
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_STRM_DATA_CB(strm, chn, call, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: strm_flt
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: struct strm_flt
    signature: 'struct strm_flt *

      strm_flt(struct stream *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_DATA_FILTER
      Src: /src/haproxy/include/haproxy/filters.h:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - chn
    - filter
    argTypes:
    - struct stream*
    - struct channel*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: register_data_filter
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 9
    functionsReached:
    - IS_DATA_FILTER
    linkageType: ''
    returnType: void
    signature: void register_data_filter(struct stream *s, struct channel *chn, struct
      filter *filter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_DATA_FILTER
      Src: /src/haproxy/include/haproxy/filters.h:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - chn
    - filter
    argTypes:
    - struct stream*
    - struct channel*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: unregister_data_filter
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 3
    functionsReached:
    - IS_DATA_FILTER
    linkageType: ''
    returnType: void
    signature: void unregister_data_filter(struct stream *s, struct channel *chn,
      struct filter *filter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_NEXT
      Src: /src/haproxy/include/haproxy/filters.h:185,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/include/haproxy/filters.h:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - strm
    - chn
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 196
    functionName: flt_list_start
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 6
    functionsReached:
    - LIST_NEXT
    linkageType: ''
    returnType: struct filter
    signature: struct filter *flt_list_start(struct stream *strm, struct channel *chn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_NEXT
      Src: /src/haproxy/include/haproxy/filters.h:202,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/include/haproxy/filters.h:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - strm
    - chn
    - filter
    argTypes:
    - struct stream*
    - struct channel*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: flt_list_next
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 6
    functionsReached:
    - LIST_NEXT
    linkageType: ''
    returnType: struct filter
    signature: "struct filter *flt_list_next(struct stream *strm, struct channel *chn,\n
      \                                          struct filter *filter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/filters.h:224,1
    - Dst: flt_list_start
      Src: /src/haproxy/include/haproxy/filters.h:227,1
    - Dst: flt_list_next
      Src: /src/haproxy/include/haproxy/filters.h:228,1
    - Dst: FLT_OFF
      Src: /src/haproxy/include/haproxy/filters.h:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - filter
    - chn
    - len
    argTypes:
    - struct filter*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: flt_update_offsets
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 9
    functionsReached:
    - chn_strm
    - FLT_OFF
    - flt_list_next
    - flt_list_start
    linkageType: ''
    returnType: void
    signature: void flt_update_offsets(struct filter *filter, struct channel *chn,
      int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: HTX_SL_LEN
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_LEN(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: HTX_SL_P1_LEN
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_P1_LEN(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: HTX_SL_P2_LEN
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_P2_LEN(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: HTX_SL_P3_LEN
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_P3_LEN(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: HTX_SL_P1_PTR
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_P1_PTR(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: HTX_SL_P2_PTR
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_P2_PTR(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: HTX_SL_P3_PTR
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_P3_PTR(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: HTX_SL_REQ_MLEN
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_REQ_MLEN(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: HTX_SL_REQ_ULEN
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_REQ_ULEN(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: HTX_SL_REQ_VLEN
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_REQ_VLEN(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: HTX_SL_REQ_MPTR
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_REQ_MPTR(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: HTX_SL_REQ_UPTR
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_REQ_UPTR(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: HTX_SL_REQ_VPTR
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_REQ_VPTR(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: HTX_SL_RES_VLEN
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_RES_VLEN(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: HTX_SL_RES_CLEN
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_RES_CLEN(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: HTX_SL_RES_RLEN
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_RES_RLEN(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: HTX_SL_RES_VPTR
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_RES_VPTR(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: HTX_SL_RES_CPTR
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_RES_CPTR(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: HTX_SL_RES_RPTR
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTX_SL_RES_RPTR(sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/include/haproxy/htx.h:101,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/include/haproxy/htx.h:101,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/include/haproxy/htx.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: htx_sl_p1
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - HTX_SL_P1_PTR
    - ist2
    - HTX_SL_P1_LEN
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_sl_p1(const struct htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/include/haproxy/htx.h:106,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/include/haproxy/htx.h:106,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/include/haproxy/htx.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: htx_sl_p2
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - HTX_SL_P2_PTR
    - ist2
    - HTX_SL_P2_LEN
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_sl_p2(const struct htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/include/haproxy/htx.h:111,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/include/haproxy/htx.h:111,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/include/haproxy/htx.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: htx_sl_p3
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - HTX_SL_P3_LEN
    - HTX_SL_P3_PTR
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_sl_p3(const struct htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_sl_p1
      Src: /src/haproxy/include/haproxy/htx.h:116,1
    - Dst: htx_sl_p3
      Src: /src/haproxy/include/haproxy/htx.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: htx_sl_vsn
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - htx_sl_p1
    - htx_sl_p3
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_sl_vsn(const struct htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_sl_p1
      Src: /src/haproxy/include/haproxy/htx.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: htx_sl_req_meth
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 7
    functionsReached:
    - htx_sl_p1
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_sl_req_meth(const struct htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_sl_p2
      Src: /src/haproxy/include/haproxy/htx.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: htx_sl_req_uri
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 24
    functionsReached:
    - htx_sl_p2
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_sl_req_uri(const struct htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_sl_p3
      Src: /src/haproxy/include/haproxy/htx.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: htx_sl_req_vsn
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 3
    functionsReached:
    - htx_sl_p3
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_sl_req_vsn(const struct htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_sl_p1
      Src: /src/haproxy/include/haproxy/htx.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: htx_sl_res_vsn
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    functionsReached:
    - htx_sl_p1
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_sl_res_vsn(const struct htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_sl_p2
      Src: /src/haproxy/include/haproxy/htx.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: htx_sl_res_code
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 0
    functionsReached:
    - htx_sl_p2
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_sl_res_code(const struct htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_sl_p3
      Src: /src/haproxy/include/haproxy/htx.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: htx_sl_res_reason
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 3
    functionsReached:
    - htx_sl_p3
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_sl_res_reason(const struct htx_sl *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - htx
    - pos
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: htx_pos_to_addr
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t htx_pos_to_addr(const struct htx *htx, uint32_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: htx_get_blk_pos
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t htx_get_blk_pos(const struct htx *htx, const struct htx_blk
      *blk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/include/haproxy/htx.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - htx
    - pos
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: htx_get_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 30
    functionsReached:
    - htx_pos_to_addr
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_get_blk(const struct htx *htx, uint32_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: __htx_blkinfo_type
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum htx_blk_type
    signature: enum htx_blk_type __htx_blkinfo_type(uint32_t info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __htx_blkinfo_type
      Src: /src/haproxy/include/haproxy/htx.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - blk
    argTypes:
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: htx_get_blk_type
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 83
    functionsReached:
    - __htx_blkinfo_type
    linkageType: ''
    returnType: enum htx_blk_type
    signature: enum htx_blk_type htx_get_blk_type(const struct htx_blk *blk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __htx_blkinfo_type
      Src: /src/haproxy/include/haproxy/htx.h:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - info
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 194
    functionName: __htx_blkinfo_size
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - __htx_blkinfo_type
    linkageType: ''
    returnType: enum htx_blk_type
    signature: enum htx_blk_type __htx_blkinfo_size(uint32_t info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __htx_blkinfo_size
      Src: /src/haproxy/include/haproxy/htx.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - blk
    argTypes:
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: htx_get_blksz
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 55
    functionsReached:
    - __htx_blkinfo_size
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t htx_get_blksz(const struct htx_blk *blk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: htx_get_head
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t htx_get_head(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_head
      Src: /src/haproxy/include/haproxy/htx.h:215,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: htx_get_head_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 40
    functionsReached:
    - htx_get_head
    - htx_get_blk
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_get_head_blk(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_head
      Src: /src/haproxy/include/haproxy/htx.h:225,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: __htx_get_head_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    functionsReached:
    - htx_get_head
    - htx_get_blk
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *__htx_get_head_blk(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_head_blk
      Src: /src/haproxy/include/haproxy/htx.h:235,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: htx_get_head_type
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    functionsReached:
    - htx_get_blk_type
    - htx_get_head_blk
    linkageType: ''
    returnType: enum htx_blk_type
    signature: enum htx_blk_type htx_get_head_type(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: htx_get_tail
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t htx_get_tail(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_tail
      Src: /src/haproxy/include/haproxy/htx.h:253,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: htx_get_tail_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 15
    functionsReached:
    - htx_get_tail
    - htx_get_blk
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_get_tail_blk(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/include/haproxy/htx.h:263,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: htx_get_tail_type
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 5
    functionsReached:
    - htx_get_blk_type
    - htx_get_tail_blk
    linkageType: ''
    returnType: enum htx_blk_type
    signature: enum htx_blk_type htx_get_tail_type(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: htx_get_first
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t htx_get_first(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_first
      Src: /src/haproxy/include/haproxy/htx.h:283,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: htx_get_first_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 16
    functionsReached:
    - htx_get_blk
    - htx_get_first
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_get_first_blk(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_first_blk
      Src: /src/haproxy/include/haproxy/htx.h:292,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: htx_get_first_type
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 3
    functionsReached:
    - htx_get_blk_type
    - htx_get_first_blk
    linkageType: ''
    returnType: enum htx_blk_type
    signature: enum htx_blk_type htx_get_first_type(const struct htx *htx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - htx
    - pos
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: htx_get_prev
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t htx_get_prev(const struct htx *htx, uint32_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_prev
      Src: /src/haproxy/include/haproxy/htx.h:315,1
    - Dst: htx_get_blk_pos
      Src: /src/haproxy/include/haproxy/htx.h:315,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 317
    functionName: htx_get_prev_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 3
    functionsReached:
    - htx_get_blk
    - htx_get_blk_pos
    - htx_get_prev
    linkageType: ''
    returnType: struct htx_blk
    signature: "struct htx_blk *htx_get_prev_blk(const struct htx *htx,\n\t\t\t\t\t
      \      const struct htx_blk *blk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - htx
    - pos
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: htx_get_next
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t htx_get_next(const struct htx *htx, uint32_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_next
      Src: /src/haproxy/include/haproxy/htx.h:338,1
    - Dst: htx_get_blk_pos
      Src: /src/haproxy/include/haproxy/htx.h:338,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 340
    functionName: htx_get_next_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 29
    functionsReached:
    - htx_get_blk
    - htx_get_blk_pos
    - htx_get_next
    linkageType: ''
    returnType: struct htx_blk
    signature: "struct htx_blk *htx_get_next_blk(const struct htx *htx,\n\t\t\t\t\t
      \      const struct htx_blk *blk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blksz
      Src: /src/haproxy/include/haproxy/htx.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: htx_is_unique_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 5
    functionsReached:
    - htx_get_blksz
    linkageType: ''
    returnType: int
    signature: "int htx_is_unique_blk(const struct htx *htx,\n\t\t\t\t    const struct
      htx_blk *blk)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:358,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/include/haproxy/htx.h:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - htx
    - blk
    - newlen
    argTypes:
    - struct htx*
    - struct htx_blk*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 382
    functionName: htx_change_blk_value_len
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 9
    functionsReached:
    - htx_get_blk_type
    - htx_get_blksz
    linkageType: ''
    returnType: void
    signature: void htx_change_blk_value_len(struct htx *htx, struct htx_blk *blk,
      uint32_t newlen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - blk
    - vlen
    argTypes:
    - struct htx_blk*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 407
    functionName: htx_set_blk_value_len
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - htx_get_blk_type
    linkageType: ''
    returnType: void
    signature: void htx_set_blk_value_len(struct htx_blk *blk, uint32_t vlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: htx_get_blk_ptr
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *htx_get_blk_ptr(const struct htx *htx, const struct htx_blk *blk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:420,1
    - Dst: ist2
      Src: /src/haproxy/include/haproxy/htx.h:426,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:426,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/htx.h:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 434
    functionName: htx_get_blk_name
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 26
    functionsReached:
    - htx_get_blk_ptr
    - htx_get_blk_type
    - ist2
    - ist
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_get_blk_name(const struct htx *htx, const struct htx_blk
      *blk)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:442,1
    - Dst: ist2
      Src: /src/haproxy/include/haproxy/htx.h:448,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:448,1
    - Dst: ist2
      Src: /src/haproxy/include/haproxy/htx.h:455,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:455,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/htx.h:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 463
    functionName: htx_get_blk_value
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 46
    functionsReached:
    - htx_get_blk_ptr
    - htx_get_blk_type
    - ist2
    - ist
    linkageType: ''
    returnType: struct ist
    signature: struct ist htx_get_blk_value(const struct htx *htx, const struct htx_blk
      *blk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htx_add_blk
      Src: /src/haproxy/include/haproxy/htx.h:480,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:485,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/include/haproxy/htx.h:488,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/include/haproxy/htx.h:489,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/include/haproxy/htx.h:490,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:492,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/include/haproxy/htx.h:492,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:493,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/include/haproxy/htx.h:493,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:494,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/include/haproxy/htx.h:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - htx
    - type
    - flags
    - p1
    - p2
    - p3
    argTypes:
    - struct htx*
    - enum htx_blk_type
    - unsigned int
    - struct ist
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 468
    functionDepth: 6
    functionLinenumber: 468
    functionLinenumberEnd: 497
    functionName: htx_add_stline
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 24
    functionsReached:
    - memcpy
    - HTX_SL_P2_PTR
    - HTX_SL_P1_LEN
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - htx_get_blk_ptr
    - HTX_SL_P2_LEN
    - htx_add_blk
    - HTX_SL_P3_LEN
    linkageType: ''
    returnType: struct htx_sl
    signature: "struct htx_sl *htx_add_stline(struct htx *htx, enum htx_blk_type type,
      unsigned int flags,\n\t\t\t\t\t    const struct ist p1, const struct ist p2,
      const struct ist p3)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/include/haproxy/htx.h:510,1
    - Dst: htx_add_blk
      Src: /src/haproxy/include/haproxy/htx.h:511,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/include/haproxy/htx.h:516,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:516,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:517,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:517,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - htx
    - name
    - value
    argTypes:
    - struct htx*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 502
    functionDepth: 6
    functionLinenumber: 502
    functionLinenumberEnd: 521
    functionName: htx_add_header
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 18
    functionsReached:
    - memcpy
    - htx_get_blk_ptr
    - htx_get_blk_type
    - htx_add_blk
    - ist2bin_lc
    - htx_get_tail_blk
    linkageType: ''
    returnType: struct htx_blk
    signature: "struct htx_blk *htx_add_header(struct htx *htx, const struct ist name,\n\t\t\t\t\t
      \    const struct ist value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/include/haproxy/htx.h:534,1
    - Dst: htx_add_blk
      Src: /src/haproxy/include/haproxy/htx.h:535,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/include/haproxy/htx.h:540,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:540,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:541,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:541,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:542,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - htx
    - name
    - value
    argTypes:
    - struct htx*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 526
    functionDepth: 6
    functionLinenumber: 526
    functionLinenumberEnd: 545
    functionName: htx_add_trailer
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    functionsReached:
    - memcpy
    - htx_get_blk_ptr
    - htx_get_blk_type
    - htx_add_blk
    - ist2bin_lc
    - htx_get_tail_blk
    linkageType: ''
    returnType: struct htx_blk
    signature: "struct htx_blk *htx_add_trailer(struct htx *htx, const struct ist
      name,\n\t\t\t\t\t      const struct ist value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_add_blk
      Src: /src/haproxy/include/haproxy/htx.h:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - htx
    - type
    argTypes:
    - struct htx*
    - enum htx_blk_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 550
    functionDepth: 6
    functionLinenumber: 550
    functionLinenumberEnd: 560
    functionName: htx_add_endof
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 26
    functionsReached:
    - htx_add_blk
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_add_endof(struct htx *htx, enum htx_blk_type type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/include/haproxy/htx.h:575,1
    - Dst: htx_add_header
      Src: /src/haproxy/include/haproxy/htx.h:577,1
    - Dst: htx_add_endof
      Src: /src/haproxy/include/haproxy/htx.h:580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - htx
    - hdrs
    argTypes:
    - struct htx*
    - struct http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 569
    functionDepth: 7
    functionLinenumber: 569
    functionLinenumberEnd: 581
    functionName: htx_add_all_headers
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 4
    functionsReached:
    - htx_add_endof
    - htx_add_header
    - isttest
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_add_all_headers(struct htx *htx, const struct http_hdr
      *hdrs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/include/haproxy/htx.h:596,1
    - Dst: htx_add_trailer
      Src: /src/haproxy/include/haproxy/htx.h:598,1
    - Dst: htx_add_endof
      Src: /src/haproxy/include/haproxy/htx.h:601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - htx
    - hdrs
    argTypes:
    - struct htx*
    - struct http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 590
    functionDepth: 7
    functionLinenumber: 590
    functionLinenumberEnd: 602
    functionName: htx_add_all_trailers
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - htx_add_endof
    - htx_add_trailer
    - isttest
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_add_all_trailers(struct htx *htx, const struct
      http_hdr *hdrs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - htx
    - blk
    - n
    argTypes:
    - struct htx*
    - struct htx_blk*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 618
    functionName: htx_cut_data_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void htx_cut_data_blk(struct htx *htx, struct htx_blk *blk, uint32_t
      n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 627
    functionName: htx_meta_space
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t htx_meta_space(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_meta_space
      Src: /src/haproxy/include/haproxy/htx.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 633
    functionName: htx_used_space
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 16
    functionsReached:
    - htx_meta_space
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t htx_used_space(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_used_space
      Src: /src/haproxy/include/haproxy/htx.h:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 639
    functionName: htx_free_space
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 6
    functionsReached:
    - htx_used_space
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t htx_free_space(const struct htx *htx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_space
      Src: /src/haproxy/include/haproxy/htx.h:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 651
    functionName: htx_free_data_space
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 22
    functionsReached:
    - htx_free_space
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t htx_free_data_space(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/include/haproxy/htx.h:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 662
    functionName: htx_space_wraps
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 4
    functionsReached:
    - htx_pos_to_addr
    linkageType: ''
    returnType: int
    signature: int htx_space_wraps(const struct htx *htx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_space
      Src: /src/haproxy/include/haproxy/htx.h:669,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - htx
    - max
    argTypes:
    - struct htx*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 676
    functionName: htx_get_max_blksz
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - htx_free_space
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t htx_get_max_blksz(const struct htx *htx, int32_t max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_space
      Src: /src/haproxy/include/haproxy/htx.h:681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 684
    functionName: htx_almost_full
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - htx_free_space
    linkageType: ''
    returnType: int
    signature: int htx_almost_full(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 693
    functionName: htx_reset
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void htx_reset(struct htx *htx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/htx.h:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 710
    functionName: buf_room_for_htx_data
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 9
    functionsReached:
    - b_room
    linkageType: ''
    returnType: size_t
    signature: size_t buf_room_for_htx_data(const struct buffer *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_is_null
      Src: /src/haproxy/include/haproxy/htx.h:724,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/htx.h:727,1
    - Dst: htx_reset
      Src: /src/haproxy/include/haproxy/htx.h:729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 732
    functionName: htxbuf
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 110
    functionsReached:
    - htx_reset
    - b_data
    - b_is_null
    linkageType: ''
    returnType: struct htx
    signature: struct htx *htxbuf(const struct buffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/htx.h:745,1
    - Dst: b_set_data
      Src: /src/haproxy/include/haproxy/htx.h:747,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/htx.h:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 749
    functionName: htx_from_buf
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 56
    functionsReached:
    - b_set_data
    - htxbuf
    - b_size
    linkageType: ''
    returnType: struct htx
    signature: struct htx *htx_from_buf(struct buffer *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_reset
      Src: /src/haproxy/include/haproxy/htx.h:756,1
    - Dst: b_set_data
      Src: /src/haproxy/include/haproxy/htx.h:757,1
    - Dst: b_set_data
      Src: /src/haproxy/include/haproxy/htx.h:760,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/htx.h:760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - htx
    - buf
    argTypes:
    - struct htx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 761
    functionName: htx_to_buf
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 45
    functionsReached:
    - htx_reset
    - b_set_data
    - b_size
    linkageType: ''
    returnType: void
    signature: void htx_to_buf(struct htx *htx, struct buffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 769
    functionName: htx_is_empty
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int htx_is_empty(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 777
    functionName: htx_is_not_empty
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int htx_is_not_empty(const struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 787
    functionName: htx_expect_more
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int htx_expect_more(const struct htx *htx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htx_is_empty
      Src: /src/haproxy/include/haproxy/htx.h:798,1
    - Dst: htx_add_endof
      Src: /src/haproxy/include/haproxy/htx.h:799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 796
    functionDepth: 7
    functionLinenumber: 796
    functionLinenumberEnd: 805
    functionName: htx_set_eom
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    functionsReached:
    - htx_add_endof
    - htx_is_empty
    linkageType: ''
    returnType: int
    signature: int htx_set_eom(struct htx *htx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_is_empty
      Src: /src/haproxy/include/haproxy/htx.h:814,1
    - Dst: htx_free_space
      Src: /src/haproxy/include/haproxy/htx.h:814,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:815,1
    - Dst: htx_append_msg
      Src: /src/haproxy/include/haproxy/htx.h:820,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/htx.h:820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - htx
    - msg
    argTypes:
    - struct htx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 811
    functionDepth: 7
    functionLinenumber: 811
    functionLinenumberEnd: 821
    functionName: htx_copy_msg
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - htxbuf
    - htx_append_msg
    - memcpy
    - htx_free_space
    - htx_is_empty
    linkageType: ''
    returnType: int
    signature: int htx_copy_msg(struct htx *htx, const struct buffer *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_first_blk
      Src: /src/haproxy/include/haproxy/htx.h:826,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:829,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/include/haproxy/htx.h:832,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/include/haproxy/htx.h:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 835
    functionName: htx_skip_msg_payload
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - htx_get_next_blk
    - htx_get_blk_type
    - htx_get_first_blk
    - htx_remove_blk
    linkageType: ''
    returnType: void
    signature: void htx_skip_msg_payload(struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 844
    functionName: htx_nbblks
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int htx_nbblks(const struct htx *htx)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum htx_blk_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 859
    functionName: htx_blk_type_str
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *htx_blk_type_str(enum htx_blk_type type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/htx.h:866,1
    - Dst: htx_nbblks
      Src: /src/haproxy/include/haproxy/htx.h:868,1
    - Dst: htx_nbblks
      Src: /src/haproxy/include/haproxy/htx.h:872,1
    - Dst: chunk_memcat
      Src: /src/haproxy/include/haproxy/htx.h:874,1
    - Dst: htx_get_head
      Src: /src/haproxy/include/haproxy/htx.h:876,1
    - Dst: htx_get_next
      Src: /src/haproxy/include/haproxy/htx.h:876,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:878,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:879,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/include/haproxy/htx.h:880,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/include/haproxy/htx.h:883,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/include/haproxy/htx.h:884,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:887,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/htx.h:888,1
    - Dst: htx_blk_type_str
      Src: /src/haproxy/include/haproxy/htx.h:889,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/include/haproxy/htx.h:890,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/include/haproxy/htx.h:890,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/include/haproxy/htx.h:891,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/include/haproxy/htx.h:891,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/include/haproxy/htx.h:892,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/include/haproxy/htx.h:892,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/htx.h:895,1
    - Dst: htx_blk_type_str
      Src: /src/haproxy/include/haproxy/htx.h:896,1
    - Dst: MIN
      Src: /src/haproxy/include/haproxy/htx.h:897,1
    - Dst: MIN
      Src: /src/haproxy/include/haproxy/htx.h:898,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/htx.h:900,1
    - Dst: htx_blk_type_str
      Src: /src/haproxy/include/haproxy/htx.h:901,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - chunk
    - htx
    - full
    argTypes:
    - struct buffer*
    - struct htx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 904
    functionName: htx_dump
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 5
    functionsReached:
    - htx_get_blksz
    - chunk_appendf
    - htx_nbblks
    - htx_get_blk_ptr
    - htx_get_head
    - htx_get_blk_name
    - HTX_SL_P1_LEN
    - chunk_memcat
    - htx_get_blk_type
    - HTX_SL_P3_LEN
    - htx_get_blk_value
    - htx_get_next
    - HTX_SL_P2_PTR
    - htx_get_blk
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - HTX_SL_P2_LEN
    - MIN
    - htx_blk_type_str
    linkageType: ''
    returnType: void
    signature: void htx_dump(struct buffer *chunk, const struct htx *htx, int full)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/include/haproxy/shctx.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shctx
    argTypes:
    - struct shared_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: shctx_rdlock
    functionSourceFile: /src/haproxy/include/haproxy/shctx.h
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void shctx_rdlock(struct shared_context *shctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/include/haproxy/shctx.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shctx
    argTypes:
    - struct shared_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: shctx_rdunlock
    functionSourceFile: /src/haproxy/include/haproxy/shctx.h
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_RDUNLOCK
    linkageType: ''
    returnType: void
    signature: void shctx_rdunlock(struct shared_context *shctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/shctx.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shctx
    argTypes:
    - struct shared_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: shctx_wrlock
    functionSourceFile: /src/haproxy/include/haproxy/shctx.h
    functionUses: 10
    functionsReached:
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void shctx_wrlock(struct shared_context *shctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/shctx.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shctx
    argTypes:
    - struct shared_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: shctx_wrunlock
    functionSourceFile: /src/haproxy/include/haproxy/shctx.h
    functionUses: 10
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    linkageType: ''
    returnType: void
    signature: void shctx_wrunlock(struct shared_context *shctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/shctx.h:66,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/include/haproxy/shctx.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - shctx
    - first
    - s
    argTypes:
    - struct shared_context*
    - struct shared_block*
    - struct shared_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: shctx_block_append_hot
    functionSourceFile: /src/haproxy/include/haproxy/shctx.h
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: "void shctx_block_append_hot(struct shared_context *shctx,\n                                          struct
      shared_block *first,\n                                          struct shared_block
      *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/shctx.h:74,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/shctx.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - shctx
    - s
    argTypes:
    - struct shared_context*
    - struct shared_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: shctx_block_detach
    functionSourceFile: /src/haproxy/include/haproxy/shctx.h
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - LIST_INIT
    linkageType: ''
    returnType: struct shared_block
    signature: "struct shared_block *shctx_block_detach(struct shared_context *shctx,\n\t\t\t\t\t\t
      \     struct shared_block *s)"
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: fcgi_rt_str
    functionSourceFile: /src/haproxy/include/haproxy/fcgi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fcgi_rt_str(int type)
  - BBCount: 34
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 69
    argCount: 1
    argNames:
    - msg_state
    argTypes:
    - enum h1m_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 206
    functionName: h1m_state_str
    functionSourceFile: /src/haproxy/include/haproxy/h1.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *h1m_state_str(enum h1m_state msg_state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/h1.h:220,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/h1.h:226,1
    - Dst: __b_peek
      Src: /src/haproxy/include/haproxy/h1.h:227,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/h1.h:235,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:236,1
    - Dst: __b_peek
      Src: /src/haproxy/include/haproxy/h1.h:242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - buf
    - start
    - stop
    argTypes:
    - struct buffer*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 245
    functionName: h1_skip_chunk_crlf
    functionSourceFile: /src/haproxy/include/haproxy/h1.h
    functionUses: 1
    functionsReached:
    - unlikely
    - b_peek
    - b_orig
    - __b_peek
    - b_wrap
    linkageType: ''
    returnType: int
    signature: int h1_skip_chunk_crlf(const struct buffer *buf, int start, int stop)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/h1.h:262,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/h1.h:264,1
    - Dst: hex2i
      Src: /src/haproxy/include/haproxy/h1.h:280,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/h1.h:283,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:284,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/h1.h:286,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/h1.h:296,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/include/haproxy/h1.h:299,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:301,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/h1.h:310,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:313,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:320,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/h1.h:325,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:328,1
    - Dst: HTTP_IS_CTL
      Src: /src/haproxy/include/haproxy/h1.h:343,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/include/haproxy/h1.h:343,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:353,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 75
    argCount: 4
    argNames:
    - buf
    - start
    - stop
    - res
    argTypes:
    - struct buffer*
    - int
    - int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 377
    functionName: h1_parse_chunk_size
    functionSourceFile: /src/haproxy/include/haproxy/h1.h
    functionUses: 1
    functionsReached:
    - unlikely
    - b_peek
    - HTTP_IS_CTL
    - b_orig
    - likely
    - hex2i
    - HTTP_IS_SPHT
    - b_wrap
    linkageType: ''
    returnType: int
    signature: int h1_parse_chunk_size(const struct buffer *buf, int start, int stop,
      uint64_t *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - h1m
    argTypes:
    - struct h1m*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 391
    functionName: h1m_init_req
    functionSourceFile: /src/haproxy/include/haproxy/h1.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: struct h1m
    signature: struct h1m *h1m_init_req(struct h1m *h1m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - h1m
    argTypes:
    - struct h1m*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 405
    functionName: h1m_init_res
    functionSourceFile: /src/haproxy/include/haproxy/h1.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: struct h1m
    signature: struct h1m *h1m_init_res(struct h1m *h1m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - range
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: GET_NEXT_OFF
    functionSourceFile: /src/haproxy/include/haproxy/port_range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_NEXT_OFF(range, off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/port_range.h:38,1
    - Dst: __ha_barrier_atomic_load
      Src: /src/haproxy/include/haproxy/port_range.h:41,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/port_range.h:42,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/port_range.h:43,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/port_range.h:46,1
    - Dst: GET_NEXT_OFF
      Src: /src/haproxy/include/haproxy/port_range.h:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - range
    argTypes:
    - struct port_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: port_range_alloc_port
    functionSourceFile: /src/haproxy/include/haproxy/port_range.h
    functionUses: 2
    functionsReached:
    - unlikely
    - _HA_ATOMIC_LOAD
    - GET_NEXT_OFF
    - _HA_ATOMIC_CAS
    - __ha_barrier_atomic_load
    linkageType: ''
    returnType: int
    signature: int port_range_alloc_port(struct port_range *range)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/port_range.h:69,1
    - Dst: GET_NEXT_OFF
      Src: /src/haproxy/include/haproxy/port_range.h:69,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/port_range.h:70,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/include/haproxy/port_range.h:72,1
    - Dst: __ha_compiler_barrier
      Src: /src/haproxy/include/haproxy/port_range.h:75,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/port_range.h:79,1
    - Dst: GET_NEXT_OFF
      Src: /src/haproxy/include/haproxy/port_range.h:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - range
    - port
    argTypes:
    - struct port_range*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: port_range_release_port
    functionSourceFile: /src/haproxy/include/haproxy/port_range.h
    functionUses: 3
    functionsReached:
    - _HA_ATOMIC_STORE
    - GET_NEXT_OFF
    - _HA_ATOMIC_CAS
    - __ha_barrier_atomic_store
    - __ha_compiler_barrier
    linkageType: ''
    returnType: void
    signature: void port_range_release_port(struct port_range *range, int port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/include/haproxy/port_range.h:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: port_range_alloc_range
    functionSourceFile: /src/haproxy/include/haproxy/port_range.h
    functionUses: 2
    functionsReached:
    - calloc
    linkageType: ''
    returnType: struct port_range
    signature: struct port_range *port_range_alloc_range(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:84,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:86,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:86,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:86,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:87,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:87,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:88,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:88,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:89,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:89,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:90,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:90,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:91,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:91,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: peers_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/peers-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *peers_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/peers-t.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:122,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:124,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:124,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:124,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:125,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:125,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:126,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:126,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:126,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:127,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/peers-t.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 132
    functionName: peer_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/peers-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *peer_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/peers-t.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/haproxy/include/haproxy/time.h:64,1
    - Dst: typeof
      Src: /src/haproxy/include/haproxy/time.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: tv_eternity
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached:
    - typeof
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *tv_eternity(struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: tv_zero
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *tv_zero(struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: tv_iseternity
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tv_iseternity(tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: tv_isset
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tv_isset(tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: tv_iszero
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tv_iszero(tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: __tv_to_ms
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint __tv_to_ms(const struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tv
    - ms
    argTypes:
    - struct timeval*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: __tv_from_ms
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval * __tv_from_ms(struct timeval *tv, unsigned long ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: tv_to_ns
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline tv_to_ns(const struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ns
    argTypes:
    - ullong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: ns_to_sec
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline ns_to_sec(ullong ns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ns
    argTypes:
    - ullong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: ns_to_ms
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline ns_to_ms(ullong ns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sec
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: sec_to_ns
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline sec_to_ns(uint sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ms
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: ms_to_ns
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline ms_to_ns(uint ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - us
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: us_to_ns
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline us_to_ns(uint us)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: NS_TO_TV
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NS_TO_TV(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - usec
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: __usec_to_1024th
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __usec_to_1024th(unsigned int usec)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 190
    functionName: __tv_cmp
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __tv_cmp(const struct timeval *tv1, const struct timeval *tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: __tv_iseq
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __tv_iseq(const struct timeval *tv1, const struct timeval *tv2)
  - 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: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: __tv_isgt
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __tv_isgt(const struct timeval *tv1, const struct timeval *tv2)
  - 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: 219
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: __tv_isge
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __tv_isge(const struct timeval *tv1, const struct timeval *tv2)
  - 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: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: __tv_islt
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __tv_islt(const struct timeval *tv1, const struct timeval *tv2)
  - 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: 240
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: __tv_isle
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __tv_isle(const struct timeval *tv1, const struct timeval *tv2)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 268
    functionName: __tv_ms_cmp
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __tv_ms_cmp(const struct timeval *tv1, const struct timeval *tv2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tv_iseternity
      Src: /src/haproxy/include/haproxy/time.h:278,1
    - Dst: tv_iseternity
      Src: /src/haproxy/include/haproxy/time.h:279,1
    - Dst: tv_iseternity
      Src: /src/haproxy/include/haproxy/time.h:283,1
    - Dst: tv_ms_cmp
      Src: /src/haproxy/include/haproxy/time.h:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 286
    functionName: __tv_ms_cmp2
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached:
    - tv_ms_cmp
    - tv_iseternity
    linkageType: ''
    returnType: int
    signature: int __tv_ms_cmp2(const struct timeval *tv1, const struct timeval *tv2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/time.h:298,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/time.h:301,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/time.h:304,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/time.h:311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 316
    functionName: __tv_ms_le2
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached:
    - unlikely
    - likely
    linkageType: ''
    returnType: int
    signature: int __tv_ms_le2(const struct timeval *tv1, const struct timeval *tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 335
    functionName: __tv_ms_elapsed
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long __tv_ms_elapsed(const struct timeval *tv1, const struct
      timeval *tv2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tv_ms_cmp
      Src: /src/haproxy/include/haproxy/time.h:347,1
    - Dst: __tv_ms_elapsed
      Src: /src/haproxy/include/haproxy/time.h:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 351
    functionName: __tv_ms_remain
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 2
    functionsReached:
    - tv_ms_cmp
    - __tv_ms_elapsed
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long __tv_ms_remain(const struct timeval *tv1, const struct
      timeval *tv2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tv_iseternity
      Src: /src/haproxy/include/haproxy/time.h:362,1
    - Dst: tv_ms_remain
      Src: /src/haproxy/include/haproxy/time.h:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 366
    functionName: __tv_ms_remain2
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached:
    - tv_iseternity
    - tv_ms_remain
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long __tv_ms_remain2(const struct timeval *tv1, const struct
      timeval *tv2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tv
    - from
    - inc
    argTypes:
    - struct timeval*
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 382
    functionName: __tv_add
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *__tv_add(struct timeval *tv, const struct timeval *from,
      const struct timeval *inc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tv_iseternity
      Src: /src/haproxy/include/haproxy/time.h:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - tv
    - from
    - inc
    argTypes:
    - struct timeval*
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 402
    functionName: __tv_add_ifset
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached:
    - tv_iseternity
    linkageType: ''
    returnType: int
    signature: int __tv_add_ifset(struct timeval *tv, const struct timeval *from,
      const struct timeval *inc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tv
    - inc
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 416
    functionName: __tv_add2
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *__tv_add2(struct timeval *tv, const struct timeval
      *inc)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - tv1
    - tv2
    - tv
    argTypes:
    - struct timeval*
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 442
    functionName: __tv_remain
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *__tv_remain(const struct timeval *tv1, const struct
      timeval *tv2, struct timeval *tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tv_iseternity
      Src: /src/haproxy/include/haproxy/time.h:454,1
    - Dst: tv_eternity
      Src: /src/haproxy/include/haproxy/time.h:455,1
    - Dst: __tv_remain
      Src: /src/haproxy/include/haproxy/time.h:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tv1
    - tv2
    - tv
    argTypes:
    - struct timeval*
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 457
    functionName: __tv_remain2
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached:
    - tv_iseternity
    - __tv_remain
    - tv_eternity
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *__tv_remain2(const struct timeval *tv1, const struct
      timeval *tv2, struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tv
    - from
    - ms
    argTypes:
    - struct timeval*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 474
    functionName: __tv_ms_add
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct timeval
    signature: struct timeval *__tv_ms_add(struct timeval *tv, const struct timeval
      *from, int ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tv1
    - ','
    - tv2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 488
    functionName: tv_isbefore
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tv_isbefore(tv1, tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvmin
    - ','
    - tv1
    - ','
    - tv2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 504
    functionName: tv_min
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tv_min(tvmin, tv1, tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tv1
    - ','
    - tv2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: tv_bound
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tv_bound(tv1, tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct tot_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: tot_time_reset
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tot_time_reset(struct tot_time *timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct tot_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: tot_time_start
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tot_time_start(struct tot_time *timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct tot_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 537
    functionName: tot_time_stop
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tot_time_stop(struct tot_time *timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct tot_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 548
    functionName: tot_time_read
    functionSourceFile: /src/haproxy/include/haproxy/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tot_time_read(const struct tot_time *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - qcc
    - ','
    - inc
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: qcc_report_glitch
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: qcc_report_glitch(qcc, inc, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: qcm_stream_rx_bufsz
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qcm_stream_rx_bufsz(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: qcs_id_type
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum qcs_type
    signature: enum qcs_type qcs_id_type(uint64_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/mux_quic.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - qcc
    - id
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: quic_stream_is_local
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic.h
    functionUses: 8
    functionsReached:
    - conn_is_back
    linkageType: ''
    returnType: int
    signature: int quic_stream_is_local(struct qcc *qcc, uint64_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_stream_is_local
      Src: /src/haproxy/include/haproxy/mux_quic.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - qcc
    - id
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: quic_stream_is_remote
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic.h
    functionUses: 6
    functionsReached:
    - quic_stream_is_local
    linkageType: ''
    returnType: int
    signature: int quic_stream_is_remote(struct qcc *qcc, uint64_t id)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum qcs_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: qcs_st_to_str
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *qcs_st_to_str(enum qcs_state st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/mux_quic.h:117,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/mux_quic.h:119,1
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/mux_quic.h:119,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/include/haproxy/mux_quic.h:125,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/mux_quic.h:129,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/mux_quic.h:134,1
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/mux_quic.h:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 135
    functionName: qcs_wait_http_req
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic.h
    functionUses: 2
    functionsReached:
    - conn_is_back
    - BUG_ON
    - LIST_APPEND
    - tick_isset
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void qcs_wait_http_req(struct qcs *qcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/haproxy/include/haproxy/mux_quic.h:143,1
    - Dst: memcmp
      Src: /src/haproxy/include/haproxy/mux_quic.h:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - alpn
    - alpn_len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: quic_alpn_to_app_ops
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic.h
    functionUses: 2
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: struct qcc_app_ops
    signature: struct qcc_app_ops *quic_alpn_to_app_ops(const char *alpn, int alpn_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:93,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:95,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:95,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:96,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:97,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:98,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:98,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:99,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:99,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:99,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:100,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:100,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:101,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:101,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:102,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: chn_show_flags
    functionSourceFile: /src/haproxy/include/haproxy/channel-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *chn_show_flags(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/channel-t.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:174,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:176,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:176,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:176,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:177,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:177,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:177,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:178,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:178,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:178,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:179,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:179,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:179,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:180,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:180,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:181,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:181,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:181,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:182,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:182,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:184,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:184,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:184,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:185,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:185,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:185,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:186,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:186,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:187,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:187,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:187,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:188,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - delim
    - flg
    argTypes:
    - char*
    - size_t
    - char*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 193
    functionName: chn_show_analysers
    functionSourceFile: /src/haproxy/include/haproxy/channel-t.h
    functionUses: 1
    functionsReached:
    - _
    linkageType: ''
    returnType: forceinline
    signature: forceinline *chn_show_analysers(char *buf, size_t len, const char *delim,
      uint flg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: _
    functionSourceFile: /src/haproxy/include/haproxy/channel-t.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(f, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcre_exec
      Src: /src/haproxy/include/haproxy/regex.h:61,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/regex.h:61,1
    - Dst: struct my_regex*::mfn
      Src: /src/haproxy/include/haproxy/regex.h:67,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/regex.h:67,1
    - Dst: regexec
      Src: /src/haproxy/include/haproxy/regex.h:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - preg
    - subject
    argTypes:
    - struct my_regex*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: regex_exec
    functionSourceFile: /src/haproxy/include/haproxy/regex.h
    functionUses: 0
    functionsReached:
    - regexec
    - pcre_exec
    - struct my_regex*::mfn
    - strlen
    linkageType: ''
    returnType: int
    signature: int regex_exec(const struct my_regex *preg, char *subject)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcre_exec
      Src: /src/haproxy/include/haproxy/regex.h:90,1
    - Dst: struct my_regex*::mfn
      Src: /src/haproxy/include/haproxy/regex.h:96,1
    - Dst: regexec
      Src: /src/haproxy/include/haproxy/regex.h:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - preg
    - subject
    - length
    argTypes:
    - struct my_regex*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 111
    functionName: regex_exec2
    functionSourceFile: /src/haproxy/include/haproxy/regex.h
    functionUses: 5
    functionsReached:
    - regexec
    - pcre_exec
    - struct my_regex*::mfn
    linkageType: ''
    returnType: int
    signature: int regex_exec2(const struct my_regex *preg, char *subject, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre_free
      Src: /src/haproxy/include/haproxy/regex.h:118,1
    - Dst: pcre_free_study
      Src: /src/haproxy/include/haproxy/regex.h:123,1
    - Dst: pcre_free
      Src: /src/haproxy/include/haproxy/regex.h:125,1
    - Dst: pcre2_code_free
      Src: /src/haproxy/include/haproxy/regex.h:128,1
    - Dst: regfree
      Src: /src/haproxy/include/haproxy/regex.h:130,1
    - Dst: free
      Src: /src/haproxy/include/haproxy/regex.h:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - preg
    argTypes:
    - struct my_regex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 133
    functionName: regex_free
    functionSourceFile: /src/haproxy/include/haproxy/regex.h
    functionUses: 12
    functionsReached:
    - pcre_free_study
    - regfree
    - free
    - pcre_free
    - pcre2_code_free
    linkageType: ''
    returnType: void
    signature: void regex_free(struct my_regex *preg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_update_local_date
      Src: /src/haproxy/include/haproxy/clock.h:57,1
    - Dst: clock_update_global_date
      Src: /src/haproxy/include/haproxy/clock.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - max_wait
    - interrupted
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: clock_update_date
    functionSourceFile: /src/haproxy/include/haproxy/clock.h
    functionUses: 8
    functionsReached:
    - clock_update_global_date
    - clock_update_local_date
    linkageType: ''
    returnType: void
    signature: void clock_update_date(int max_wait, int interrupted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: EXTRA_COUNTERS
    functionSourceFile: /src/haproxy/include/haproxy/counters-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: ncb_is_null
    functionSourceFile: /src/haproxy/include/haproxy/ncbuf.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncb_is_null(const struct ncbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ncb_orig
    functionSourceFile: /src/haproxy/include/haproxy/ncbuf.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ncb_orig(const struct ncbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: ncb_head
    functionSourceFile: /src/haproxy/include/haproxy/ncbuf.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ncb_head(const struct ncbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: ncb_wrap
    functionSourceFile: /src/haproxy/include/haproxy/ncbuf.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ncb_wrap(const struct ncbuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncb_is_null
      Src: /src/haproxy/include/haproxy/ncbuf.h:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: ncb_size
    functionSourceFile: /src/haproxy/include/haproxy/ncbuf.h
    functionUses: 13
    functionsReached:
    - ncb_is_null
    linkageType: ''
    returnType: ncb_sz_t
    signature: ncb_sz_t ncb_size(const struct ncbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - low
    - ','
    - high
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: CAPS_TO_ULLONG
    functionSourceFile: /src/haproxy/include/haproxy/linuxcap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAPS_TO_ULLONG(low, high)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/haproxy/include/haproxy/linuxcap.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hdrp
    - datap
    argTypes:
    - cap_user_header_t
    - cap_user_data_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: capget
    functionSourceFile: /src/haproxy/include/haproxy/linuxcap.h
    functionUses: 3
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int capget(cap_user_header_t hdrp, const cap_user_data_t datap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - col
    argTypes:
    - struct stat_col*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: stcol_is_generic
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int stcol_is_generic(const struct stat_col *col)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - col
    argTypes:
    - struct stat_col*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: stcol_format
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum field_format
    signature: enum field_format stcol_format(const struct stat_col *col)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - col
    argTypes:
    - struct stat_col*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: stcol_nature
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum field_nature
    signature: enum field_nature stcol_nature(const struct stat_col *col)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - e
    argTypes:
    - struct field*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: field_format
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: enum field_format
    signature: enum field_format field_format(const struct field *f, int e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - e
    argTypes:
    - struct field*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: field_origin
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum field_origin
    signature: enum field_origin field_origin(const struct field *f, int e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - e
    argTypes:
    - struct field*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: field_scope
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum field_scope
    signature: enum field_scope field_scope(const struct field *f, int e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - e
    argTypes:
    - struct field*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: field_nature
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum field_nature
    signature: enum field_nature field_nature(const struct field *f, int e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: field_format
      Src: /src/haproxy/include/haproxy/stats.h:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - f
    - e
    argTypes:
    - struct field*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: field_str
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 5
    functionsReached:
    - field_format
    linkageType: ''
    returnType: char
    signature: char *field_str(const struct field *f, int e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - uint32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: mkf_s32
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct field
    signature: struct field mkf_s32(uint32_t type, int32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: mkf_u32
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: struct field
    signature: struct field mkf_u32(uint32_t type, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - uint32_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: mkf_s64
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct field
    signature: struct field mkf_s64(uint32_t type, int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: mkf_u64
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: struct field
    signature: struct field mkf_u64(uint32_t type, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: mkf_str
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: struct field
    signature: struct field mkf_str(uint32_t type, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - uint32_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: mkf_flt
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct field
    signature: struct field mkf_flt(uint32_t type, double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - px_cap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: MK_STATS_PROXY_DOMAIN
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MK_STATS_PROXY_DOMAIN(px_cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: stats_get_domain
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t stats_get_domain(uint32_t domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: stats_px_get_cap
    functionSourceFile: /src/haproxy/include/haproxy/stats.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: enum stats_domain_px_cap
    signature: enum stats_domain_px_cap stats_px_get_cap(uint32_t domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: _TRC_LOC
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TRC_LOC(f,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: __TRC_LOC
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __TRC_LOC(f,c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: TRC_5ARGS
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRC_5ARGS(a0,a1,a2,a3,a4,a5,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - level
    - ','
    - mask
    - ','
    - src
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: _trace_enabled
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _trace_enabled(level, mask, src, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - level
    - ','
    - mask
    - ','
    - src
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: _trace
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _trace(level, mask, src, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - level
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: TRACE_ENABLED
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_ENABLED(level, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: TRACE
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: TRACE_ERROR
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 198
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_ERROR(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: TRACE_USER
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_USER(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: TRACE_DATA
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_DATA(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: TRACE_PROTO
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 134
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_PROTO(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: TRACE_STATE
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 204
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_STATE(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: TRACE_DEVEL
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 294
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_DEVEL(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: TRACE_ENTER
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 524
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_ENTER(mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: TRACE_LEAVE
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 513
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_LEAVE(mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: TRACE_POINT
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_POINT(mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 18
    argNames:
    - (
    - level
    - ','
    - mask
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: TRACE_PRINTF
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_PRINTF(level, mask, a1, a2, a3, a4, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 22
    argNames:
    - (
    - level
    - ','
    - mask
    - ','
    - trc_loc
    - ','
    - func
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - 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: 144
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 144
    functionName: TRACE_PRINTF_LOC
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_PRINTF_LOC(level, mask, trc_loc, func, a1, a2, a3, a4, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - level
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: TRACE_ENABLED
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_ENABLED(level, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: DBG_TRACE
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: DBG_TRACE_ERROR
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE_ERROR(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: DBG_TRACE_USER
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE_USER(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: DBG_TRACE_DATA
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE_DATA(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: DBG_TRACE_PROTO
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE_PROTO(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: DBG_TRACE_STATE
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE_STATE(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: DBG_TRACE_DEVEL
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE_DEVEL(msg, mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: DBG_TRACE_ENTER
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE_ENTER(mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: DBG_TRACE_LEAVE
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE_LEAVE(mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: DBG_TRACE_POINT
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE_POINT(mask, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - level
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: DBG_TRACE_PRINTF
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE_PRINTF(level, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - level
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: DBG_TRACE_PRINTF_LOC
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG_TRACE_PRINTF_LOC(level, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum trace_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: trace_state_char
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char trace_state_char(enum trace_state st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conf
    - ev
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: trace_event_char
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char trace_event_char(uint64_t conf, uint64_t ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/trace.h:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: trace_disable
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t trace_disable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: trace_resume
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void trace_resume(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: trace_force_resume
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t trace_force_resume(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - disable
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: trace_reset_disable
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void trace_reset_disable(uint8_t disable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: mul32hi
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mul32hi(unsigned int a, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - o1
    - o2
    argTypes:
    - unsigned long long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: div64_32
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int div64_32(unsigned long long o1, unsigned int o2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/haproxy/include/haproxy/intops.h:87,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - res
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: mulul_overflow
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 0
    functionsReached:
    - __builtin_mul_overflow
    linkageType: ''
    returnType: int
    signature: int mulul_overflow(unsigned long a, unsigned long b, unsigned long
      *res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/haproxy/include/haproxy/intops.h:105,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - res
    argTypes:
    - size_t
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 113
    functionName: mulsz_overflow
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 0
    functionsReached:
    - __builtin_mul_overflow
    linkageType: ''
    returnType: int
    signature: int mulsz_overflow(size_t a, size_t b, size_t *res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/intops.h:124,1
    - Dst: mulsz_overflow
      Src: /src/haproxy/include/haproxy/intops.h:124,1
    - Dst: DISGUISE
      Src: /src/haproxy/include/haproxy/intops.h:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - m
    - n
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: array_size_or_fail
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 19
    functionsReached:
    - unlikely
    - mulsz_overflow
    - DISGUISE
    linkageType: ''
    returnType: size_t
    signature: size_t array_size_or_fail(size_t m, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - bits
    argTypes:
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: rotl64
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rotl64(uint64_t v, uint8_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - bits
    argTypes:
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: rotr64
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rotr64(uint64_t v, uint8_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - min8
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: is_char4_below_opt
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t is_char4_below_opt(uint32_t x, uint8_t min8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - max8
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: is_char4_above_opt
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t is_char4_above_opt(uint32_t x, uint8_t max8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - min8
    - max8
    argTypes:
    - uint32_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: is_char4_outside
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t is_char4_outside(uint32_t x, uint8_t min8, uint8_t max8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - min8
    argTypes:
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: is_char8_below_opt
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t is_char8_below_opt(uint64_t x, uint8_t min8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - max8
    argTypes:
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: is_char8_above_opt
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t is_char8_above_opt(uint64_t x, uint8_t max8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_char4_outside
      Src: /src/haproxy/include/haproxy/intops.h:271,1
    - Dst: is_char4_outside
      Src: /src/haproxy/include/haproxy/intops.h:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - x
    - min8
    - max8
    argTypes:
    - uint64_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 273
    functionName: is_char8_outside
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 1
    functionsReached:
    - is_char4_outside
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t is_char8_outside(uint64_t x, uint8_t min8, uint8_t max8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 284
    functionName: my_popcountl
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int my_popcountl(unsigned long a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: atleast2
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long atleast2(unsigned long a)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 333
    functionName: my_ffsl
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int my_ffsl(unsigned long a)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 376
    functionName: my_flsl
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int my_flsl(unsigned long a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: nbits
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long nbits(int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/haproxy/include/haproxy/intops.h:410,1
    - Dst: htonl
      Src: /src/haproxy/include/haproxy/intops.h:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 412
    functionName: my_htonll
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 6
    functionsReached:
    - htonl
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long my_htonll(unsigned long long a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: my_htonll
      Src: /src/haproxy/include/haproxy/intops.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: my_ntohll
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 2
    functionsReached:
    - my_htonll
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long my_ntohll(unsigned long long a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bit
    - map
    argTypes:
    - unsigned long
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: ha_bit_set
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ha_bit_set(unsigned long bit, long *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bit
    - map
    argTypes:
    - unsigned long
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: ha_bit_clr
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ha_bit_clr(unsigned long bit, long *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bit
    - map
    argTypes:
    - unsigned long
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: ha_bit_flip
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ha_bit_flip(unsigned long bit, long *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bit
    - map
    argTypes:
    - unsigned long
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: ha_bit_test
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ha_bit_test(unsigned long bit, const long *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 467
    functionName: __full_hash
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __full_hash(unsigned int a)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 482
    functionName: hex2i
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex2i(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: __str2ui
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __str2ui(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 513
    functionName: __str2uic
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __str2uic(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 527
    functionName: __strl2ui
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __strl2ui(const char *s, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 545
    functionName: __strl2uic
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __strl2uic(const char *s, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 567
    functionName: __read_uint
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __read_uint(const char **s, const char *end)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 587
    functionName: __varint_bytes
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __varint_bytes(uint64_t v)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - i
    - buf
    - end
    argTypes:
    - uint64_t
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 631
    functionName: encode_varint
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int encode_varint(uint64_t i, char **buf, char *end)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - buf
    - end
    - i
    argTypes:
    - char**
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 662
    functionName: decode_varint
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int decode_varint(char **buf, char *end, uint64_t *i)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - family
    - proto_type
    - alt
    argTypes:
    - int
    - enum proto_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: protocol_lookup
    functionSourceFile: /src/haproxy/include/haproxy/protocol.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: struct protocol
    signature: struct protocol *protocol_lookup(int family, enum proto_type proto_type,
      int alt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ss_family
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: proto_fam_lookup
    functionSourceFile: /src/haproxy/include/haproxy/protocol.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct proto_fam
    signature: struct proto_fam *proto_fam_lookup(int ss_family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_fam_lookup
      Src: /src/haproxy/include/haproxy/protocol.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ss_family
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: real_family
    functionSourceFile: /src/haproxy/include/haproxy/protocol.h
    functionUses: 9
    functionsReached:
    - proto_fam_lookup
    linkageType: ''
    returnType: int
    signature: int real_family(int ss_family)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - proto
    argTypes:
    - struct protocol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: proto_is_quic
    functionSourceFile: /src/haproxy/include/haproxy/protocol.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int proto_is_quic(const struct protocol *proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: HTTP_IS_CTL
    functionSourceFile: /src/haproxy/include/haproxy/http-t.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_IS_CTL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: HTTP_IS_SEP
    functionSourceFile: /src/haproxy/include/haproxy/http-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_IS_SEP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: HTTP_IS_LWS
    functionSourceFile: /src/haproxy/include/haproxy/http-t.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_IS_LWS(x)
  - 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: HTTP_IS_SPHT
    functionSourceFile: /src/haproxy/include/haproxy/http-t.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_IS_SPHT(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: HTTP_IS_CRLF
    functionSourceFile: /src/haproxy/include/haproxy/http-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_IS_CRLF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: HTTP_IS_TOKEN
    functionSourceFile: /src/haproxy/include/haproxy/http-t.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_IS_TOKEN(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: HTTP_IS_VER_TOKEN
    functionSourceFile: /src/haproxy/include/haproxy/http-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_IS_VER_TOKEN(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: HTTP_IS_DIGIT
    functionSourceFile: /src/haproxy/include/haproxy/http-t.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_IS_DIGIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - cid
    argTypes:
    - struct buffer*
    - struct tp_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: quic_tp_cid_dump
    functionSourceFile: /src/haproxy/include/haproxy/quic_tp.h
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void quic_tp_cid_dump(struct buffer *buf,\n                                    const
      struct tp_cid *cid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:57,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - b
    - tp
    - local
    argTypes:
    - struct buffer*
    - struct tp_version_information*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: quic_tp_version_info_dump
    functionSourceFile: /src/haproxy/include/haproxy/quic_tp.h
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void quic_tp_version_info_dump(struct buffer *b,\n                                             const
      struct tp_version_information *tp, int local)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:69,1
    - Dst: quic_tp_cid_dump
      Src: /src/haproxy/include/haproxy/quic_tp.h:70,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:72,1
    - Dst: quic_tp_cid_dump
      Src: /src/haproxy/include/haproxy/quic_tp.h:73,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:75,1
    - Dst: quic_tp_cid_dump
      Src: /src/haproxy/include/haproxy/quic_tp.h:76,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:78,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:80,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:81,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:82,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:83,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:84,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:86,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:87,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:89,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:91,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:93,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:94,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:99,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:102,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:104,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:108,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:110,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:112,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:117,1
    - Dst: inet_ntop
      Src: /src/haproxy/include/haproxy/quic_tp.h:118,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:120,1
    - Dst: inet_ntop
      Src: /src/haproxy/include/haproxy/quic_tp.h:122,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:124,1
    - Dst: quic_tp_cid_dump
      Src: /src/haproxy/include/haproxy/quic_tp.h:125,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:126,1
    - Dst: quic_tp_version_info_dump
      Src: /src/haproxy/include/haproxy/quic_tp.h:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 3
    argNames:
    - b
    - qc
    - p
    argTypes:
    - struct buffer*
    - struct quic_conn*
    - struct quic_transport_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 130
    functionName: quic_transport_params_dump
    functionSourceFile: /src/haproxy/include/haproxy/quic_tp.h
    functionUses: 2
    functionsReached:
    - quic_tp_version_info_dump
    - inet_ntop
    - chunk_appendf
    - quic_tp_cid_dump
    linkageType: ''
    returnType: void
    signature: "void quic_transport_params_dump(struct buffer *b,\n                                              const
      struct quic_conn *qc,\n                                              const struct
      quic_transport_params *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:142,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:143,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:145,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:146,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:148,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:150,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:152,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - b
    - qc
    - p
    argTypes:
    - struct buffer*
    - struct quic_conn*
    - struct quic_early_transport_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 154
    functionName: quic_early_transport_params_dump
    functionSourceFile: /src/haproxy/include/haproxy/quic_tp.h
    functionUses: 1
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: "void quic_early_transport_params_dump(struct buffer *b,\n                                                    const
      struct quic_conn *qc,\n                                                    const
      struct quic_early_transport_params *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: sc_ic
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 26
    functionsReached:
    - __sc_strm
    linkageType: ''
    returnType: struct channel
    signature: struct channel *sc_ic(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: sc_oc
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 24
    functionsReached:
    - __sc_strm
    linkageType: ''
    returnType: struct channel
    signature: struct channel *sc_oc(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/sc_strm.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: sc_ib
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 4
    functionsReached:
    - sc_ic
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *sc_ib(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/sc_strm.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: sc_ob
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 5
    functionsReached:
    - sc_oc
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *sc_ob(const struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/include/haproxy/sc_strm.h:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: sc_have_buff
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 2
    functionsReached:
    - sc_ep_report_read_activity
    linkageType: ''
    returnType: void
    signature: void sc_have_buff(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: sc_need_buff
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sc_need_buff(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: sc_used_buff
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sc_used_buff(struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/include/haproxy/sc_strm.h:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: sc_have_room
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 5
    functionsReached:
    - sc_ep_report_read_activity
    linkageType: ''
    returnType: void
    signature: void sc_have_room(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/sc_strm.h:140,1
    - Dst: c_size
      Src: /src/haproxy/include/haproxy/sc_strm.h:140,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/sc_strm.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sc
    - room_needed
    argTypes:
    - struct stconn*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: sc_need_room
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 8
    functionsReached:
    - c_size
    - sc_ic
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void sc_need_room(struct stconn *sc, ssize_t room_needed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: sc_strm_task
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 6
    functionsReached:
    - __sc_strm
    linkageType: ''
    returnType: struct task
    signature: struct task *sc_strm_task(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: sc_opposite
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 20
    functionsReached:
    - __sc_strm
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *sc_opposite(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - state
    argTypes:
    - struct stconn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: sc_set_state
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 3
    functionsReached:
    - __sc_strm
    linkageType: ''
    returnType: void
    signature: void sc_set_state(struct stconn *sc, int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/sc_strm.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum sc_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: sc_state_bit
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: enum sc_state_bit
    signature: enum sc_state_bit sc_state_bit(enum sc_state state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/sc_strm.h:180,1
    - Dst: sc_state_bit
      Src: /src/haproxy/include/haproxy/sc_strm.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state
    - mask
    argTypes:
    - enum sc_state
    - enum sc_state_bit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: sc_state_in
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 16
    functionsReached:
    - sc_state_bit
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int sc_state_in(enum sc_state state, enum sc_state_bit mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/include/haproxy/sc_strm.h:189,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/sc_strm.h:191,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/include/haproxy/sc_strm.h:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: sc_conn_ready
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - conn_xprt_ready
    - sc_conn
    - conn_ctrl_ready
    linkageType: ''
    returnType: int
    signature: int sc_conn_ready(const struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/include/haproxy/sc_strm.h:208,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/sc_strm.h:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: sc_is_conn_error
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 3
    functionsReached:
    - __sc_conn
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int sc_is_conn_error(const struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: channel_alloc_buffer
      Src: /src/haproxy/include/haproxy/sc_strm.h:225,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/sc_strm.h:225,1
    - Dst: sc_used_buff
      Src: /src/haproxy/include/haproxy/sc_strm.h:227,1
    - Dst: sc_need_buff
      Src: /src/haproxy/include/haproxy/sc_strm.h:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sc
    - wait
    argTypes:
    - struct stconn*
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 232
    functionName: sc_alloc_ibuf
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 3
    functionsReached:
    - channel_alloc_buffer
    - sc_need_buff
    - sc_ic
    - sc_used_buff
    linkageType: ''
    returnType: int
    signature: int sc_alloc_ibuf(struct stconn *sc, struct buffer_wait *wait)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sess_src
      Src: /src/haproxy/include/haproxy/sc_strm.h:244,1
    - Dst: strm_sess
      Src: /src/haproxy/include/haproxy/sc_strm.h:244,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:244,1
    - Dst: sc_conn
      Src: /src/haproxy/include/haproxy/sc_strm.h:246,1
    - Dst: conn_src
      Src: /src/haproxy/include/haproxy/sc_strm.h:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 252
    functionName: sc_src
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 15
    functionsReached:
    - sc_conn
    - sess_src
    - strm_sess
    - conn_src
    - __sc_strm
    linkageType: ''
    returnType: struct sockaddr_storage
    signature: struct sockaddr_storage *sc_src(const struct stconn *sc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sess_dst
      Src: /src/haproxy/include/haproxy/sc_strm.h:264,1
    - Dst: strm_sess
      Src: /src/haproxy/include/haproxy/sc_strm.h:264,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:264,1
    - Dst: sc_conn
      Src: /src/haproxy/include/haproxy/sc_strm.h:266,1
    - Dst: conn_dst
      Src: /src/haproxy/include/haproxy/sc_strm.h:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 272
    functionName: sc_dst
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 13
    functionsReached:
    - sc_conn
    - strm_sess
    - __sc_strm
    - sess_dst
    - conn_dst
    linkageType: ''
    returnType: struct sockaddr_storage
    signature: struct sockaddr_storage *sc_dst(const struct stconn *sc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sess_src
      Src: /src/haproxy/include/haproxy/sc_strm.h:288,1
    - Dst: strm_sess
      Src: /src/haproxy/include/haproxy/sc_strm.h:288,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:288,1
    - Dst: sc_conn
      Src: /src/haproxy/include/haproxy/sc_strm.h:290,1
    - Dst: conn_src
      Src: /src/haproxy/include/haproxy/sc_strm.h:293,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/include/haproxy/sc_strm.h:298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 302
    functionName: sc_get_src
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 2
    functionsReached:
    - sockaddr_alloc
    - sc_conn
    - sess_src
    - strm_sess
    - conn_src
    - __sc_strm
    linkageType: ''
    returnType: int
    signature: int sc_get_src(struct stconn *sc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sess_dst
      Src: /src/haproxy/include/haproxy/sc_strm.h:318,1
    - Dst: strm_sess
      Src: /src/haproxy/include/haproxy/sc_strm.h:318,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:318,1
    - Dst: sc_conn
      Src: /src/haproxy/include/haproxy/sc_strm.h:320,1
    - Dst: conn_dst
      Src: /src/haproxy/include/haproxy/sc_strm.h:323,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/include/haproxy/sc_strm.h:328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 332
    functionName: sc_get_dst
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 2
    functionsReached:
    - sockaddr_alloc
    - sc_conn
    - strm_sess
    - __sc_strm
    - sess_dst
    - conn_dst
    linkageType: ''
    returnType: int
    signature: int sc_get_dst(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_set
      Src: /src/haproxy/include/haproxy/sc_strm.h:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: sc_must_kill_conn
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 3
    functionsReached:
    - sc_ep_set
    linkageType: ''
    returnType: void
    signature: void sc_must_kill_conn(struct stconn *sc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:355,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:358,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:361,1
    - Dst: sc_opposite
      Src: /src/haproxy/include/haproxy/sc_strm.h:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 365
    functionName: sc_is_recv_allowed
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 6
    functionsReached:
    - sc_opposite
    - sc_ep_test
    linkageType: ''
    returnType: int
    signature: int sc_is_recv_allowed(const struct stconn *sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:373,1
    - Dst: sc_conn_sync_recv
      Src: /src/haproxy/include/haproxy/sc_strm.h:374,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:375,1
    - Dst: sc_applet_sync_recv
      Src: /src/haproxy/include/haproxy/sc_strm.h:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 7
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: sc_sync_recv
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - sc_ep_test
    - sc_conn_sync_recv
    - sc_applet_sync_recv
    linkageType: ''
    returnType: int
    signature: int sc_sync_recv(struct stconn *sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:385,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/sc_strm.h:387,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/sc_strm.h:387,1
    - Dst: task_wakeup
      Src: /src/haproxy/include/haproxy/sc_strm.h:388,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:388,1
    - Dst: sc_conn_sync_send
      Src: /src/haproxy/include/haproxy/sc_strm.h:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sc
    - cnt
    argTypes:
    - struct stconn*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 392
    functionName: sc_sync_send
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - sc_oc
    - sc_ep_test
    - task_wakeup
    - co_data
    - __sc_strm
    - sc_conn_sync_send
    linkageType: ''
    returnType: int
    signature: int sc_sync_send(struct stconn *sc, unsigned cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_update_rx
      Src: /src/haproxy/include/haproxy/sc_strm.h:397,1
    - Dst: sc_update_tx
      Src: /src/haproxy/include/haproxy/sc_strm.h:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: sc_update
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - sc_update_tx
    - sc_update_rx
    linkageType: ''
    returnType: void
    signature: void sc_update(struct stconn *sc)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 418
    functionName: sc_state_str
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sc_state_str(int state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sc_appctx
      Src: /src/haproxy/include/haproxy/sc_strm.h:430,1
    - Dst: __sc_appctx
      Src: /src/haproxy/include/haproxy/sc_strm.h:430,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:431,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:433,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:436,1
    - Dst: __sc_appctx
      Src: /src/haproxy/include/haproxy/sc_strm.h:437,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/sc_strm.h:439,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/sc_strm.h:439,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 443
    functionName: sc_is_send_allowed
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 4
    functionsReached:
    - sc_oc
    - sc_ep_test
    - co_data
    - __sc_appctx
    - sc_appctx
    linkageType: ''
    returnType: int
    signature: int sc_is_send_allowed(const struct stconn *sc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/sc_strm.h:447,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:451,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:451,1
    - Dst: sc_opposite
      Src: /src/haproxy/include/haproxy/sc_strm.h:451,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 454
    functionName: sc_rcv_may_expire
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 0
    functionsReached:
    - sc_opposite
    - sc_ic
    - sc_ep_test
    linkageType: ''
    returnType: int
    signature: int sc_rcv_may_expire(const struct stconn *sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/sc_strm.h:458,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 463
    functionName: sc_snd_may_expire
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 0
    functionsReached:
    - sc_oc
    - sc_ep_test
    linkageType: ''
    returnType: int
    signature: int sc_snd_may_expire(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/sc_strm.h:467,1
    - Dst: sc_rcv_may_expire
      Src: /src/haproxy/include/haproxy/sc_strm.h:467,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/include/haproxy/sc_strm.h:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 470
    functionName: sc_ep_rcv_ex
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 6
    functionsReached:
    - sc_rcv_may_expire
    - tick_isset
    - tick_add_ifset
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_rcv_ex(const struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/sc_strm.h:474,1
    - Dst: sc_snd_may_expire
      Src: /src/haproxy/include/haproxy/sc_strm.h:474,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/include/haproxy/sc_strm.h:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 472
    functionDepth: 4
    functionLinenumber: 472
    functionLinenumberEnd: 477
    functionName: sc_ep_snd_ex
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 6
    functionsReached:
    - tick_add_ifset
    - tick_isset
    - sc_snd_may_expire
    linkageType: ''
    returnType: forceinline
    signature: forceinline sc_ep_snd_ex(const struct stconn *sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/sc_strm.h:481,1
    - Dst: tick_is_expired
      Src: /src/haproxy/include/haproxy/sc_strm.h:481,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/include/haproxy/sc_strm.h:481,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/sc_strm.h:482,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/sc_strm.h:483,1
    - Dst: tick_is_expired
      Src: /src/haproxy/include/haproxy/sc_strm.h:483,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/include/haproxy/sc_strm.h:483,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/sc_strm.h:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 479
    functionDepth: 5
    functionLinenumber: 479
    functionLinenumberEnd: 485
    functionName: sc_check_timeouts
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - unlikely
    - sc_oc
    - sc_ep_snd_ex
    - sc_ep_rcv_ex
    - sc_ic
    - tick_is_expired
    linkageType: ''
    returnType: void
    signature: void sc_check_timeouts(const struct stconn *sc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:489,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/include/haproxy/sc_strm.h:491,1
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/sc_strm.h:495,1
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/sc_strm.h:499,1
    - Dst: strm_fe
      Src: /src/haproxy/include/haproxy/sc_strm.h:499,1
    - Dst: strm_fe
      Src: /src/haproxy/include/haproxy/sc_strm.h:500,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 503
    functionName: sc_set_hcto
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - tick_isset
    - strm_fe
    - IS_HTX_STRM
    - __sc_strm
    linkageType: ''
    returnType: void
    signature: void sc_set_hcto(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: sc_schedule_abort
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sc_schedule_abort(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 515
    functionName: sc_schedule_shutdown
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sc_schedule_shutdown(struct stconn *sc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/fix.h:41,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/fix.h:44,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/fix.h:46,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/fix.h:48,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/fix.h:50,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/fix.h:52,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/fix.h:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - str
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 58
    functionName: fix_version
    functionSourceFile: /src/haproxy/include/haproxy/fix.h
    functionUses: 1
    functionsReached:
    - isteq
    - istlen
    linkageType: ''
    returnType: struct ist
    signature: struct ist fix_version(const struct ist str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fix_check_id
      Src: /src/haproxy/include/haproxy/fix.h:69,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/fix.h:74,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/fix.h:74,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/fix.h:76,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/fix.h:76,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/fix.h:78,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/fix.h:78,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/fix.h:80,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/fix.h:80,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/fix.h:82,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/fix.h:82,1
    - Dst: isteqi
      Src: /src/haproxy/include/haproxy/fix.h:84,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/fix.h:84,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - tag
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: fix_tagid
    functionSourceFile: /src/haproxy/include/haproxy/fix.h
    functionUses: 1
    functionsReached:
    - isteqi
    - ist
    - fix_check_id
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fix_tagid(const struct ist tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: b_is_null
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int b_is_null(const struct buffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: b_orig
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 134
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *b_orig(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: b_size
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 152
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t b_size(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: b_wrap
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *b_wrap(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: b_data
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 319
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t b_data(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:106,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: b_room
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 64
    functionsReached:
    - b_data
    - BUG_ON_HOT
    linkageType: ''
    returnType: size_t
    signature: size_t b_room(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/buf.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: b_full
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 13
    functionsReached:
    - b_room
    linkageType: ''
    returnType: size_t
    signature: size_t b_full(const struct buffer *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - b
    - ofs
    - count
    argTypes:
    - struct buffer*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: b_add_ofs
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t b_add_ofs(const struct buffer *b, size_t ofs, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - ofs
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: b_rel_ofs
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t b_rel_ofs(const struct buffer *b, size_t ofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: __b_stop_ofs
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t __b_stop_ofs(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/buf.h:149,1
    - Dst: __b_stop_ofs
      Src: /src/haproxy/include/haproxy/buf.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: __b_stop
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 1
    functionsReached:
    - b_orig
    - __b_stop_ofs
    linkageType: ''
    returnType: char
    signature: char *__b_stop(const struct buffer *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __b_stop_ofs
      Src: /src/haproxy/include/haproxy/buf.h:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: b_stop_ofs
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 4
    functionsReached:
    - __b_stop_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t b_stop_ofs(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/buf.h:163,1
    - Dst: b_stop_ofs
      Src: /src/haproxy/include/haproxy/buf.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: b_stop
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 4
    functionsReached:
    - b_stop_ofs
    - b_orig
    linkageType: ''
    returnType: char
    signature: char *b_stop(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - ofs
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: __b_peek_ofs
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t __b_peek_ofs(const struct buffer *b, size_t ofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/buf.h:179,1
    - Dst: __b_peek_ofs
      Src: /src/haproxy/include/haproxy/buf.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - ofs
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: __b_peek
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 5
    functionsReached:
    - __b_peek_ofs
    - b_orig
    linkageType: ''
    returnType: char
    signature: char *__b_peek(const struct buffer *b, size_t ofs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __b_peek_ofs
      Src: /src/haproxy/include/haproxy/buf.h:184,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/buf.h:186,1
    - Dst: __builtin_constant_p
      Src: /src/haproxy/include/haproxy/buf.h:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - b
    - ofs
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: b_peek_ofs
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 24
    functionsReached:
    - __b_peek_ofs
    - __builtin_constant_p
    - likely
    linkageType: ''
    returnType: size_t
    signature: size_t b_peek_ofs(const struct buffer *b, size_t ofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/buf.h:195,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/include/haproxy/buf.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - ofs
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: b_peek
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 74
    functionsReached:
    - b_peek_ofs
    - b_orig
    linkageType: ''
    returnType: char
    signature: char *b_peek(const struct buffer *b, size_t ofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: __b_head_ofs
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t __b_head_ofs(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/buf.h:210,1
    - Dst: __b_head_ofs
      Src: /src/haproxy/include/haproxy/buf.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: __b_head
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 0
    functionsReached:
    - b_orig
    - __b_head_ofs
    linkageType: ''
    returnType: char
    signature: char *__b_head(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_head_ofs
      Src: /src/haproxy/include/haproxy/buf.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: b_head_ofs
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 30
    functionsReached:
    - __b_head_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t b_head_ofs(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_head
      Src: /src/haproxy/include/haproxy/buf.h:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: b_head
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 83
    functionsReached:
    - __b_head
    linkageType: ''
    returnType: char
    signature: char *b_head(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_peek_ofs
      Src: /src/haproxy/include/haproxy/buf.h:231,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: __b_tail_ofs
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 1
    functionsReached:
    - b_data
    - __b_peek_ofs
    linkageType: ''
    returnType: size_t
    signature: size_t __b_tail_ofs(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __b_peek
      Src: /src/haproxy/include/haproxy/buf.h:236,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: __b_tail
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 3
    functionsReached:
    - b_data
    - __b_peek
    linkageType: ''
    returnType: char
    signature: char *__b_tail(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek_ofs
      Src: /src/haproxy/include/haproxy/buf.h:241,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: b_tail_ofs
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 4
    functionsReached:
    - b_peek_ofs
    - b_data
    linkageType: ''
    returnType: size_t
    signature: size_t b_tail_ofs(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/buf.h:246,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: b_tail
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 66
    functionsReached:
    - b_peek
    - b_data
    linkageType: ''
    returnType: char
    signature: char *b_tail(const struct buffer *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - b
    - o
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: b_next_ofs
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 1
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: size_t
    signature: size_t b_next_ofs(const struct buffer *b, size_t o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:267,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/buf.h:267,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/buf.h:268,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/buf.h:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - b
    - p
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: b_next
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 28
    functionsReached:
    - b_wrap
    - BUG_ON_HOT
    - b_orig
    linkageType: ''
    returnType: char
    signature: char *b_next(const struct buffer *b, const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:282,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/buf.h:282,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/buf.h:282,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/buf.h:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - b
    - from
    - to
    argTypes:
    - struct buffer*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 285
    functionName: b_dist
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 0
    functionsReached:
    - b_size
    - BUG_ON_HOT
    linkageType: ''
    returnType: size_t
    signature: size_t b_dist(const struct buffer *b, const char *from, const char
      *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:292,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:293,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/buf.h:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 294
    functionName: b_almost_full
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 1
    functionsReached:
    - b_data
    - b_size
    - BUG_ON_HOT
    linkageType: ''
    returnType: int
    signature: int b_almost_full(const struct buffer *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:311,1
    - Dst: __b_head_ofs
      Src: /src/haproxy/include/haproxy/buf.h:312,1
    - Dst: __b_tail_ofs
      Src: /src/haproxy/include/haproxy/buf.h:314,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/buf.h:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: b_space_wraps
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 25
    functionsReached:
    - b_size
    - BUG_ON_HOT
    - __b_head_ofs
    - __b_tail_ofs
    linkageType: ''
    returnType: int
    signature: int b_space_wraps(const struct buffer *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/buf.h:326,1
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/buf.h:326,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - start
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 332
    functionName: b_contig_data
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 26
    functionsReached:
    - b_peek
    - b_data
    - b_wrap
    linkageType: ''
    returnType: size_t
    signature: size_t b_contig_data(const struct buffer *b, size_t start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:350,1
    - Dst: b_head_ofs
      Src: /src/haproxy/include/haproxy/buf.h:352,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:353,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/buf.h:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 359
    functionName: b_contig_space
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 41
    functionsReached:
    - b_head_ofs
    - b_data
    - b_size
    - BUG_ON_HOT
    linkageType: ''
    returnType: size_t
    signature: size_t b_contig_space(const struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: b_reset
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void b_reset(struct buffer *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - area
    - size
    - head
    - data
    argTypes:
    - char*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 383
    functionName: b_make
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer b_make(char *area, size_t size, size_t head, size_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - count
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 390
    functionName: b_sub
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 13
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void b_sub(struct buffer *b, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - count
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: b_add
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 71
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void b_add(struct buffer *b, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - len
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: b_set_data
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 12
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void b_set_data(struct buffer *b, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - b
    - del
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 417
    functionName: b_del
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 49
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void b_del(struct buffer *b, size_t del)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: b_realign_if_empty
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 5
    functionsReached:
    - b_data
    linkageType: ''
    returnType: void
    signature: void b_realign_if_empty(struct buffer *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_full
      Src: /src/haproxy/include/haproxy/buf.h:431,1
    - Dst: b_tail
      Src: /src/haproxy/include/haproxy/buf.h:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - struct buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 4
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: b_putchr
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 23
    functionsReached:
    - b_tail
    - b_full
    linkageType: ''
    returnType: void
    signature: void b_putchr(struct buffer *b, char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/buf.h:443,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/buf.h:444,1
    - Dst: __b_putblk
      Src: /src/haproxy/include/haproxy/buf.h:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - b
    - blk
    - len
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 448
    functionName: b_putblk
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 23
    functionsReached:
    - b_room
    - __b_putblk
    linkageType: ''
    returnType: size_t
    signature: size_t b_putblk(struct buffer *b, const char *blk, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_ncat
      Src: /src/haproxy/include/haproxy/buf.h:458,1
    - Dst: b_del
      Src: /src/haproxy/include/haproxy/buf.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - count
    argTypes:
    - struct buffer*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 462
    functionName: b_force_xfer
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 4
    functionsReached:
    - b_del
    - b_ncat
    linkageType: ''
    returnType: size_t
    signature: size_t b_force_xfer(struct buffer *dst, struct buffer *src, size_t
      count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:477,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:478,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:479,1
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/buf.h:484,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/buf.h:485,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/buf.h:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - buf
    - blk1
    - len1
    - blk2
    - len2
    - ofs
    - max
    argTypes:
    - struct buffer*
    - char**
    - size_t*
    - char**
    - size_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 494
    functionName: b_getblk_nc
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 3
    functionsReached:
    - b_peek
    - b_wrap
    - BUG_ON_HOT
    - b_orig
    linkageType: ''
    returnType: size_t
    signature: size_t b_getblk_nc(const struct buffer *buf, const char **blk1, size_t
      *len1, const char **blk2, size_t *len2, size_t ofs, size_t max)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/buf.h:505,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/buf.h:506,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:507,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/buf.h:508,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:512,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:512,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - b
    - ofs
    - vptr
    argTypes:
    - struct buffer*
    - size_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 537
    functionName: b_peek_varint
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 6
    functionsReached:
    - b_peek
    - b_data
    - b_size
    - b_wrap
    - BUG_ON_HOT
    linkageType: ''
    returnType: int
    signature: int b_peek_varint(struct buffer *b, size_t ofs, uint64_t *vptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/buf.h:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - r
    - size
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 581
    functionName: br_init
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 3
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void br_init(struct buffer *r, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: br_size
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 6
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int br_size(const struct buffer *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 597
    functionName: br_full
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int br_full(const struct buffer *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 608
    functionName: br_count
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 3
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int br_count(const struct buffer *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 616
    functionName: br_single
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 2
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int br_single(const struct buffer *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 624
    functionName: br_head_idx
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 6
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int br_head_idx(const struct buffer *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 632
    functionName: br_tail_idx
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 6
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int br_tail_idx(const struct buffer *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:637,1
    - Dst: br_head_idx
      Src: /src/haproxy/include/haproxy/buf.h:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: br_head
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 12
    functionsReached:
    - BUG_ON_HOT
    - br_head_idx
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *br_head(struct buffer *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:645,1
    - Dst: br_tail_idx
      Src: /src/haproxy/include/haproxy/buf.h:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 648
    functionName: br_tail
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 33
    functionsReached:
    - BUG_ON_HOT
    - br_tail_idx
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *br_tail(struct buffer *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:653,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/buf.h:655,1
    - Dst: br_head_idx
      Src: /src/haproxy/include/haproxy/buf.h:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 656
    functionName: br_data
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 15
    functionsReached:
    - b_data
    - BUG_ON_HOT
    - br_head_idx
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int br_data(const struct buffer *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:661,1
    - Dst: br_full
      Src: /src/haproxy/include/haproxy/buf.h:663,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/buf.h:665,1
    - Dst: br_tail_idx
      Src: /src/haproxy/include/haproxy/buf.h:665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 666
    functionName: br_has_room
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 0
    functionsReached:
    - br_full
    - BUG_ON_HOT
    - b_room
    - br_tail_idx
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int br_has_room(const struct buffer *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:677,1
    - Dst: br_tail
      Src: /src/haproxy/include/haproxy/buf.h:679,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/buf.h:680,1
    - Dst: br_full
      Src: /src/haproxy/include/haproxy/buf.h:683,1
    - Dst: br_tail
      Src: /src/haproxy/include/haproxy/buf.h:690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 693
    functionName: br_tail_add
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 22
    functionsReached:
    - br_full
    - b_size
    - BUG_ON_HOT
    - br_tail
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *br_tail_add(struct buffer *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:706,1
    - Dst: br_head
      Src: /src/haproxy/include/haproxy/buf.h:708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 715
    functionName: br_head_pick
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 3
    functionsReached:
    - BUG_ON_HOT
    - br_head
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *br_head_pick(struct buffer *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:724,1
    - Dst: br_head
      Src: /src/haproxy/include/haproxy/buf.h:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 732
    functionName: br_del_head
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 6
    functionsReached:
    - BUG_ON_HOT
    - br_head
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *br_del_head(struct buffer *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct bl_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 742
    functionName: bl_users
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bl_users(const struct bl_elem *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct bl_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 748
    functionName: bl_size
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bl_size(const struct bl_elem *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct bl_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 754
    functionName: bl_used
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bl_used(const struct bl_elem *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bl_size
      Src: /src/haproxy/include/haproxy/buf.h:759,1
    - Dst: bl_used
      Src: /src/haproxy/include/haproxy/buf.h:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct bl_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: bl_avail
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 1
    functionsReached:
    - bl_size
    - bl_used
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bl_avail(const struct bl_elem *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:768,1
    - Dst: memset
      Src: /src/haproxy/include/haproxy/buf.h:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - head
    - nbelem
    argTypes:
    - struct bl_elem*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 772
    functionName: bl_init
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 1
    functionsReached:
    - BUG_ON_HOT
    - memset
    linkageType: ''
    returnType: void
    signature: void bl_init(struct bl_elem *head, uint32_t nbelem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:784,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:791,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/buf.h:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - head
    - idx
    argTypes:
    - struct bl_elem*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 805
    functionName: bl_put
    functionSourceFile: /src/haproxy/include/haproxy/buf.h
    functionUses: 2
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bl_put(struct bl_elem *head, uint32_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chk
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: chunk_reset
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void chunk_reset(struct buffer *chk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - chk
    - str
    - size
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: chunk_init
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void chunk_init(struct buffer *chk, char *str, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - chk
    - str
    - size
    - len
    argTypes:
    - struct buffer*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: chunk_initlen
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int chunk_initlen(struct buffer *chk, char *str, size_t size,\n\t\t\t\tint
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/chunk.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - chk
    - str
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: chunk_initstr
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 5
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void chunk_initstr(struct buffer *chk, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/chunk.h:105,1
    - Dst: chunk_init
      Src: /src/haproxy/include/haproxy/chunk.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: alloc_trash_chunk
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 94
    functionsReached:
    - chunk_init
    - pool_alloc
    linkageType: ''
    returnType: forceinline
    signature: forceinline *alloc_trash_chunk(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/chunk.h:128,1
    - Dst: chunk_init
      Src: /src/haproxy/include/haproxy/chunk.h:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: alloc_large_trash_chunk
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 0
    functionsReached:
    - chunk_init
    - pool_alloc
    linkageType: ''
    returnType: forceinline
    signature: forceinline *alloc_large_trash_chunk(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/include/haproxy/chunk.h:151,1
    - Dst: chunk_init
      Src: /src/haproxy/include/haproxy/chunk.h:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: alloc_small_trash_chunk
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 0
    functionsReached:
    - chunk_init
    - pool_alloc
    linkageType: ''
    returnType: forceinline
    signature: forceinline *alloc_small_trash_chunk(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_small_trash_chunk
      Src: /src/haproxy/include/haproxy/chunk.h:169,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/include/haproxy/chunk.h:171,1
    - Dst: alloc_large_trash_chunk
      Src: /src/haproxy/include/haproxy/chunk.h:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: alloc_trash_chunk_sz
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 6
    functionsReached:
    - alloc_trash_chunk
    - alloc_small_trash_chunk
    - alloc_large_trash_chunk
    linkageType: ''
    returnType: forceinline
    signature: forceinline *alloc_trash_chunk_sz(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/chunk.h:184,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/chunk.h:186,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/chunk.h:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: free_trash_chunk
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 100
    functionsReached:
    - pool_free
    linkageType: ''
    returnType: forceinline
    signature: forceinline free_trash_chunk(struct buffer *chunk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/chunk.h:194,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - chk
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: chunk_cpy
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 7
    functionsReached:
    - unlikely
    - memcpy
    linkageType: ''
    returnType: int
    signature: int chunk_cpy(struct buffer *chk, const struct buffer *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/chunk.h:208,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - chk
    - src
    - len
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 215
    functionName: chunk_memcpy
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 10
    functionsReached:
    - unlikely
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int chunk_memcpy(struct buffer *chk, const char *src,\n\t\t\t       size_t
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/chunk.h:223,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - chk
    - src
    - len
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 229
    functionName: chunk_memcat
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 50
    functionsReached:
    - unlikely
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int chunk_memcat(struct buffer *chk, const char *src,\n\t\t\t       size_t
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_memcat
      Src: /src/haproxy/include/haproxy/chunk.h:234,1
    - Dst: istptr
      Src: /src/haproxy/include/haproxy/chunk.h:234,1
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/chunk.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chk
    - src
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: chunk_istcat
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 20
    functionsReached:
    - chunk_memcat
    - istlen
    - istptr
    linkageType: ''
    returnType: int
    signature: int chunk_istcat(struct buffer *chk, const struct ist src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_memcat
      Src: /src/haproxy/include/haproxy/chunk.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chk
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: chunk_cat
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 3
    functionsReached:
    - chunk_memcat
    linkageType: ''
    returnType: int
    signature: int chunk_cat(struct buffer *chk, const struct buffer *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/chunk.h:250,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/chunk.h:252,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - chk
    - str
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 259
    functionName: chunk_strcpy
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 6
    functionsReached:
    - unlikely
    - memcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int chunk_strcpy(struct buffer *chk, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/chunk.h:268,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/chunk.h:272,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - chk
    - str
    - max
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 279
    functionName: chunk_strncpy
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 0
    functionsReached:
    - unlikely
    - memcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int chunk_strncpy(struct buffer *chk, const char *str, size_t max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/chunk.h:288,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/chunk.h:290,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - chk
    - str
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 296
    functionName: chunk_strcat
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 32
    functionsReached:
    - unlikely
    - memcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int chunk_strcat(struct buffer *chk, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - chk
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 317
    functionName: chunk_newstr
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *chunk_newstr(struct buffer *chk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - chk
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 324
    functionName: chunk_drop
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void chunk_drop(struct buffer *chk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/include/haproxy/chunk.h:331,1
    - Dst: chunk_drop
      Src: /src/haproxy/include/haproxy/chunk.h:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - chk
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 333
    functionName: chunk_destroy
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 42
    functionsReached:
    - chunk_drop
    - free
    linkageType: ''
    returnType: void
    signature: void chunk_destroy(struct buffer *chk)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/include/haproxy/chunk.h:348,1
    - Dst: malloc
      Src: /src/haproxy/include/haproxy/chunk.h:355,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:363,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 368
    functionName: chunk_dup
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 11
    functionsReached:
    - malloc
    - memcpy
    - free
    linkageType: ''
    returnType: char
    signature: char *chunk_dup(struct buffer *dst, const struct buffer *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 184
    functionName: __slz_make_crc_table
    functionSourceFile: /src/haproxy/include/import/slz-tables.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __slz_make_crc_table(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 91
    argCount: 1
    argNames:
    - l
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 233
    functionName: dist_to_code
    functionSourceFile: /src/haproxy/include/import/slz-tables.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dist_to_code(uint32_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dist_to_code
      Src: /src/haproxy/include/import/slz-tables.h:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 259
    functionName: __slz_prepare_dist_table
    functionSourceFile: /src/haproxy/include/import/slz-tables.h
    functionUses: 1
    functionsReached:
    - dist_to_code
    linkageType: ''
    returnType: void
    signature: void __slz_prepare_dist_table()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: _____equals_1
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _____equals_1(x, y, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: ____equals_1
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ____equals_1(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: ___equals_1
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___equals_1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: __equals_1
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __equals_1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: __has_attribute
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_attribute(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: __has_builtin
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __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: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: __attribute__
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __attribute__(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: __builtin_prefetch
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __builtin_prefetch(addr, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: __builtin_unreachable
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __builtin_unreachable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: flsnz8
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clz
      Src: /src/haproxy/include/import/cebtree-prv.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: flsnz32
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached:
    - __builtin_clz
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz32(unsigned int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clzll
      Src: /src/haproxy/include/import/cebtree-prv.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: flsnz64
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached:
    - __builtin_clzll
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz64(unsigned long long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: flsnz8
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: flsnz32
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz32(unsigned int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: flsnz64
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz64(unsigned long long x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flsnz32
      Src: /src/haproxy/include/import/cebtree-prv.h:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 207
    functionName: flsnz64
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached:
    - flsnz32
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz64(unsigned long long x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: flsnz8
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz8(unsigned int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ___a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 229
    functionName: flsnz32
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz32(___a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flsnz32
      Src: /src/haproxy/include/import/cebtree-prv.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 241
    functionName: flsnz64
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached:
    - flsnz32
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz64(unsigned long long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: flsnz_long
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz_long(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: flsnz
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flsnz_long
      Src: /src/haproxy/include/import/cebtree-prv.h:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - a
    - b
    - ignore
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 284
    functionName: equal_bits
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 1
    functionsReached:
    - flsnz_long
    linkageType: ''
    returnType: size_t
    signature: "size_t equal_bits(const unsigned char *a,\n                  const
      unsigned char *b,\n                  size_t ignore, size_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/cebtree-prv.h:317,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/cebtree-prv.h:324,1
    - Dst: flsnz
      Src: /src/haproxy/include/import/cebtree-prv.h:338,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - a
    - b
    - ignore
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 341
    functionName: string_equal_bits
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 1
    functionsReached:
    - __builtin_expect
    - flsnz
    linkageType: ''
    returnType: size_t
    signature: "size_t string_equal_bits(const unsigned char *a,\n                         const
      unsigned char *b,\n                         size_t ignore)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - tag
    argTypes:
    - struct ceb_node*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: _ceb_dotag
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct ceb_root
    signature: struct ceb_root *_ceb_dotag(const struct ceb_node *node, const uintptr_t
      tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - tag
    argTypes:
    - struct ceb_root*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: _ceb_untag
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct ceb_node
    signature: struct ceb_node *_ceb_untag(const struct ceb_root *node, const uintptr_t
      tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: _ceb_clrtag
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: struct ceb_node
    signature: struct ceb_node *_ceb_clrtag(const struct ceb_root *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: _ceb_gettag
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _ceb_gettag(const struct ceb_root *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 386
    functionName: _CEB_DEF_BASE
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _CEB_DEF_BASE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    functionName: _CEB_DEF_OFST
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _CEB_DEF_OFST(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - type
    - ','
    - pfx
    - ','
    - sfx
    - ','
    - type1
    - ','
    - arg1
    - ','
    - type2
    - ','
    - arg2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: CEB_FDECL2
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CEB_FDECL2(type, pfx, sfx, type1, arg1, type2, arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - type
    - ','
    - pfx
    - ','
    - sfx
    - ','
    - type1
    - ','
    - arg1
    - ','
    - type2
    - ','
    - arg2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 410
    functionName: _CEB_FDECL2
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _CEB_FDECL2(type, pfx, sfx, type1, arg1, type2, arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - type
    - ','
    - pfx
    - ','
    - sfx
    - ','
    - type1
    - ','
    - arg1
    - ','
    - type2
    - ','
    - arg2
    - ','
    - type3
    - ','
    - arg3
    - )
    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: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: CEB_FDECL3
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CEB_FDECL3(type, pfx, sfx, type1, arg1, type2, arg2, type3, arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - type
    - ','
    - pfx
    - ','
    - sfx
    - ','
    - type1
    - ','
    - arg1
    - ','
    - type2
    - ','
    - arg2
    - ','
    - type3
    - ','
    - arg3
    - )
    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: 426
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 426
    functionName: _CEB_FDECL3
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _CEB_FDECL3(type, pfx, sfx, type1, arg1, type2, arg2, type3, arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - type
    - ','
    - pfx
    - ','
    - sfx
    - ','
    - type1
    - ','
    - arg1
    - ','
    - type2
    - ','
    - arg2
    - ','
    - type3
    - ','
    - arg3
    - ','
    - type4
    - ','
    - arg4
    - )
    argTypes:
    - auto
    - auto
    - 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: 430
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: CEB_FDECL4
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CEB_FDECL4(type, pfx, sfx, type1, arg1, type2, arg2, type3, arg3, type4,
      arg4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - type
    - ','
    - pfx
    - ','
    - sfx
    - ','
    - type1
    - ','
    - arg1
    - ','
    - type2
    - ','
    - arg2
    - ','
    - type3
    - ','
    - arg3
    - ','
    - type4
    - ','
    - arg4
    - )
    argTypes:
    - auto
    - auto
    - 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: 442
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 442
    functionName: _CEB_FDECL4
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _CEB_FDECL4(type, pfx, sfx, type1, arg1, type2, arg2, type3, arg3,
      type4, arg4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - type
    - ','
    - pfx
    - ','
    - sfx
    - ','
    - type1
    - ','
    - arg1
    - ','
    - type2
    - ','
    - arg2
    - ','
    - type3
    - ','
    - arg3
    - ','
    - type4
    - ','
    - arg4
    - ','
    - type5
    - ','
    - arg5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - 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: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: CEB_FDECL5
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CEB_FDECL5(type, pfx, sfx, type1, arg1, type2, arg2, type3, arg3, type4,
      arg4, type5, arg5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - type
    - ','
    - pfx
    - ','
    - sfx
    - ','
    - type1
    - ','
    - arg1
    - ','
    - type2
    - ','
    - arg2
    - ','
    - type3
    - ','
    - arg3
    - ','
    - type4
    - ','
    - arg4
    - ','
    - type5
    - ','
    - arg5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - 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: 458
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 458
    functionName: _CEB_FDECL5
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _CEB_FDECL5(type, pfx, sfx, type1, arg1, type2, arg2, type3, arg3,
      type4, arg4, type5, arg5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 497
    functionName: NODEK
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NODEK(n, o)
  - BBCount: 90
    BranchProfiles: []
    Callsites:
    - Dst: NODEK
      Src: /src/haproxy/include/import/cebtree-prv.h:585,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/include/import/cebtree-prv.h:585,1
    - Dst: memcmp
      Src: /src/haproxy/include/import/cebtree-prv.h:588,1
    - Dst: strcmp
      Src: /src/haproxy/include/import/cebtree-prv.h:590,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/include/import/cebtree-prv.h:601,1
    - Dst: _ceb_gettag
      Src: /src/haproxy/include/import/cebtree-prv.h:602,1
    - Dst: __builtin_prefetch
      Src: /src/haproxy/include/import/cebtree-prv.h:606,1
    - Dst: __builtin_prefetch
      Src: /src/haproxy/include/import/cebtree-prv.h:607,1
    - Dst: _ceb_gettag
      Src: /src/haproxy/include/import/cebtree-prv.h:620,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/include/import/cebtree-prv.h:621,1
    - Dst: _ceb_gettag
      Src: /src/haproxy/include/import/cebtree-prv.h:622,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/include/import/cebtree-prv.h:623,1
    - Dst: NODEK
      Src: /src/haproxy/include/import/cebtree-prv.h:626,1
    - Dst: __builtin_prefetch
      Src: /src/haproxy/include/import/cebtree-prv.h:634,1
    - Dst: __builtin_prefetch
      Src: /src/haproxy/include/import/cebtree-prv.h:635,1
    - Dst: NODEK
      Src: /src/haproxy/include/import/cebtree-prv.h:637,1
    - Dst: NODEK
      Src: /src/haproxy/include/import/cebtree-prv.h:638,1
    - Dst: equal_bits
      Src: /src/haproxy/include/import/cebtree-prv.h:791,1
    - Dst: equal_bits
      Src: /src/haproxy/include/import/cebtree-prv.h:792,1
    - Dst: equal_bits
      Src: /src/haproxy/include/import/cebtree-prv.h:796,1
    - Dst: string_equal_bits
      Src: /src/haproxy/include/import/cebtree-prv.h:839,1
    - Dst: string_equal_bits
      Src: /src/haproxy/include/import/cebtree-prv.h:840,1
    - Dst: __builtin_unreachable
      Src: /src/haproxy/include/import/cebtree-prv.h:868,1
    - Dst: string_equal_bits
      Src: /src/haproxy/include/import/cebtree-prv.h:870,1
    - Dst: __builtin_unreachable
      Src: /src/haproxy/include/import/cebtree-prv.h:915,1
    - Dst: _ceb_gettag
      Src: /src/haproxy/include/import/cebtree-prv.h:922,1
    - Dst: _ceb_gettag
      Src: /src/haproxy/include/import/cebtree-prv.h:922,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/include/import/cebtree-prv.h:923,1
    - Dst: _ceb_clrtag
      Src: /src/haproxy/include/import/cebtree-prv.h:923,1
    - Dst: memcmp
      Src: /src/haproxy/include/import/cebtree-prv.h:954,1
    - Dst: strcmp
      Src: /src/haproxy/include/import/cebtree-prv.h:960,1
    - Dst: __builtin_prefetch
      Src: /src/haproxy/include/import/cebtree-prv.h:968,1
    - Dst: __builtin_prefetch
      Src: /src/haproxy/include/import/cebtree-prv.h:978,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:988,1
    - Dst: memcmp
      Src: /src/haproxy/include/import/cebtree-prv.h:1032,1
    - Dst: strcmp
      Src: /src/haproxy/include/import/cebtree-prv.h:1049,1
    CyclomaticComplexity: 239
    EdgeCount: 239
    ICount: 287
    argCount: 17
    argNames:
    - root
    - meth
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - ret_nside
    - ret_root
    - ret_lparent
    - ret_lpside
    - ret_nparent
    - ret_npside
    - ret_gparent
    - ret_gpside
    - ret_back
    - ret_is_dup
    argTypes:
    - struct ceb_root**
    - enum ceb_walk_meth
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - int*
    - struct ceb_root***
    - struct ceb_node**
    - int*
    - struct ceb_node**
    - int*
    - struct ceb_node**
    - int*
    - struct ceb_root**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 1076
    functionName: _ceb_descend
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 0
    functionsReached:
    - memcmp
    - __builtin_prefetch
    - string_equal_bits
    - __builtin_unreachable
    - equal_bits
    - strcmp
    - _ceb_gettag
    - _ceb_clrtag
    - NODEK
    - _ceb_dotag
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_descend(struct ceb_root **root,\n                              enum
      ceb_walk_meth meth,\n                              ptrdiff_t kofs,\n                              enum
      ceb_key_type key_type,\n                              uint32_t key_u32,\n                              uint64_t
      key_u64,\n                              const void *key_ptr,\n                              int
      *ret_nside,\n                              struct ceb_root ***ret_root,\n                              struct
      ceb_node **ret_lparent,\n                              int *ret_lpside,\n                              struct
      ceb_node **ret_nparent,\n                              int *ret_npside,\n                              struct
      ceb_node **ret_gparent,\n                              int *ret_gpside,\n                              struct
      ceb_root **ret_back,\n                              int *ret_is_dup)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1104,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1105,1
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1109,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1118,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1121,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1124,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1136,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1137,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1137,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1139,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 8
    argNames:
    - root
    - node
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - struct ceb_node*
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1088
    functionDepth: 2
    functionLinenumber: 1088
    functionLinenumberEnd: 1145
    functionName: _ceb_insert
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 7
    functionsReached:
    - _ceb_untag
    - _ceb_dotag
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_insert(struct ceb_root **root,\n                             struct
      ceb_node *node,\n                             ptrdiff_t kofs,\n                             enum
      ceb_key_type key_type,\n                             uint32_t key_u32,\n                             uint64_t
      key_u64,\n                             const void *key_ptr,\n                             int
      *is_dup_ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1163,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1166,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - root
    - kofs
    - key_type
    - key_len
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1169
    functionName: _ceb_first
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 7
    functionsReached:
    - _ceb_untag
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_first(struct ceb_root *const *root,\n                            ptrdiff_t
      kofs,\n                            enum ceb_key_type key_type,\n                            uint64_t
      key_len,\n                            int *is_dup_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - root
    - kofs
    - key_type
    - key_len
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1175
    functionDepth: 2
    functionLinenumber: 1175
    functionLinenumberEnd: 1187
    functionName: _ceb_last
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 7
    functionsReached:
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_last(struct ceb_root *const *root,\n                           ptrdiff_t
      kofs,\n                           enum ceb_key_type key_type,\n                           uint64_t
      key_len,\n                           int *is_dup_ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1210,1
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 7
    argNames:
    - root
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1196
    functionDepth: 2
    functionLinenumber: 1196
    functionLinenumberEnd: 1217
    functionName: _ceb_next_unique
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 7
    functionsReached:
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_next_unique(struct ceb_root *const *root,\n
      \                                 ptrdiff_t kofs,\n                                  enum
      ceb_key_type key_type,\n                                  uint32_t key_u32,\n
      \                                 uint64_t key_u64,\n                                  const
      void *key_ptr,\n                                  int *is_dup_ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1240,1
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 7
    argNames:
    - root
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1226
    functionDepth: 2
    functionLinenumber: 1226
    functionLinenumberEnd: 1247
    functionName: _ceb_prev_unique
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 7
    functionsReached:
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_prev_unique(struct ceb_root *const *root,\n
      \                                 ptrdiff_t kofs,\n                                  enum
      ceb_key_type key_type,\n                                  uint32_t key_u32,\n
      \                                 uint64_t key_u64,\n                                  const
      void *key_ptr,\n                                  int *is_dup_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1268,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1281,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1281,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1282,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 7
    argNames:
    - root
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - from
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1253
    functionDepth: 2
    functionLinenumber: 1253
    functionLinenumberEnd: 1289
    functionName: _ceb_next_dup
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 3
    functionsReached:
    - _ceb_dotag
    - _ceb_untag
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_next_dup(struct ceb_root *const *root,\n                               ptrdiff_t
      kofs,\n                               enum ceb_key_type key_type,\n                               uint32_t
      key_u32,\n                               uint64_t key_u64,\n                               const
      void *key_ptr,\n                               const struct ceb_node *from)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1310,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1322,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1322,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 7
    argNames:
    - root
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - from
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1295
    functionDepth: 2
    functionLinenumber: 1295
    functionLinenumberEnd: 1327
    functionName: _ceb_prev_dup
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 3
    functionsReached:
    - _ceb_dotag
    - _ceb_untag
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_prev_dup(struct ceb_root *const *root,\n                               ptrdiff_t
      kofs,\n                               enum ceb_key_type key_type,\n                               uint32_t
      key_u32,\n                               uint64_t key_u64,\n                               const
      void *key_ptr,\n                               const struct ceb_node *from)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1353,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1366,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1366,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1367,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1369,1
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1381,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1384,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1384,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 8
    argNames:
    - root
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - from
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - struct ceb_node*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1387
    functionName: _ceb_next
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 3
    functionsReached:
    - _ceb_dotag
    - _ceb_untag
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_next(struct ceb_root *const *root,\n                           ptrdiff_t
      kofs,\n                           enum ceb_key_type key_type,\n                           uint32_t
      key_u32,\n                           uint64_t key_u64,\n                           const
      void *key_ptr,\n                           const struct ceb_node *from,\n                           int
      *is_dup_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1414,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1427,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1427,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1428,1
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 8
    argNames:
    - root
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - from
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - struct ceb_node*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1398
    functionDepth: 2
    functionLinenumber: 1398
    functionLinenumberEnd: 1436
    functionName: _ceb_prev
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 3
    functionsReached:
    - _ceb_dotag
    - _ceb_untag
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_prev(struct ceb_root *const *root,\n                           ptrdiff_t
      kofs,\n                           enum ceb_key_type key_type,\n                           uint32_t
      key_u32,\n                           uint64_t key_u64,\n                           const
      void *key_ptr,\n                           const struct ceb_node *from,\n                           int
      *is_dup_ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1455,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1458,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1458,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 7
    argNames:
    - root
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1441
    functionDepth: 2
    functionLinenumber: 1441
    functionLinenumberEnd: 1461
    functionName: _ceb_lookup
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 7
    functionsReached:
    - _ceb_untag
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_lookup(struct ceb_root *const *root,\n                             ptrdiff_t
      kofs,\n                             enum ceb_key_type key_type,\n                             uint32_t
      key_u32,\n                             uint64_t key_u64,\n                             const
      void *key_ptr,\n                             int *is_dup_ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1483,1
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 7
    argNames:
    - root
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1467
    functionDepth: 2
    functionLinenumber: 1467
    functionLinenumberEnd: 1491
    functionName: _ceb_lookup_le
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 7
    functionsReached:
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_lookup_le(struct ceb_root *const *root,\n                                ptrdiff_t
      kofs,\n                                enum ceb_key_type key_type,\n                                uint32_t
      key_u32,\n                                uint64_t key_u64,\n                                const
      void *key_ptr,\n                                int *is_dup_ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1514,1
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 7
    argNames:
    - root
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1498
    functionDepth: 2
    functionLinenumber: 1498
    functionLinenumberEnd: 1522
    functionName: _ceb_lookup_lt
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 7
    functionsReached:
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_lookup_lt(struct ceb_root *const *root,\n                                ptrdiff_t
      kofs,\n                                enum ceb_key_type key_type,\n                                uint32_t
      key_u32,\n                                uint64_t key_u64,\n                                const
      void *key_ptr,\n                                int *is_dup_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1545,1
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1550,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1555,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 7
    argNames:
    - root
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1530
    functionDepth: 2
    functionLinenumber: 1530
    functionLinenumberEnd: 1558
    functionName: _ceb_lookup_ge
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 7
    functionsReached:
    - _ceb_untag
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_lookup_ge(struct ceb_root *const *root,\n                                ptrdiff_t
      kofs,\n                                enum ceb_key_type key_type,\n                                uint32_t
      key_u32,\n                                uint64_t key_u64,\n                                const
      void *key_ptr,\n                                int *is_dup_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1581,1
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1586,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1591,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1591,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 7
    argNames:
    - root
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1566
    functionDepth: 2
    functionLinenumber: 1566
    functionLinenumberEnd: 1594
    functionName: _ceb_lookup_gt
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 7
    functionsReached:
    - _ceb_untag
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_lookup_gt(struct ceb_root *const *root,\n                                ptrdiff_t
      kofs,\n                                enum ceb_key_type key_type,\n                                uint32_t
      key_u32,\n                                uint64_t key_u64,\n                                const
      void *key_ptr,\n                                int *is_dup_ptr)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_descend
      Src: /src/haproxy/include/import/cebtree-prv.h:1630,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1669,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1672,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1676,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1679,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1679,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1685,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1689,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1693,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1693,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1700,1
    - Dst: _ceb_untag
      Src: /src/haproxy/include/import/cebtree-prv.h:1701,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1732,1
    - Dst: _ceb_dotag
      Src: /src/haproxy/include/import/cebtree-prv.h:1742,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 8
    argNames:
    - root
    - node
    - kofs
    - key_type
    - key_u32
    - key_u64
    - key_ptr
    - is_dup_ptr
    argTypes:
    - struct ceb_root**
    - struct ceb_node*
    - ptrdiff_t
    - enum ceb_key_type
    - uint32_t
    - uint64_t
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1606
    functionDepth: 2
    functionLinenumber: 1606
    functionLinenumberEnd: 1750
    functionName: _ceb_delete
    functionSourceFile: /src/haproxy/include/import/cebtree-prv.h
    functionUses: 14
    functionsReached:
    - _ceb_dotag
    - _ceb_untag
    - _ceb_descend
    linkageType: ''
    returnType: struct ceb_node
    signature: "struct ceb_node *_ceb_delete(struct ceb_root **root,\n                             struct
      ceb_node *node,\n                             ptrdiff_t kofs,\n                             enum
      ceb_key_type key_type,\n                             uint32_t key_u32,\n                             uint64_t
      key_u64,\n                             const void *key_ptr,\n                             int
      *is_dup_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: EB_TREE_HEAD
    functionSourceFile: /src/haproxy/include/import/ebtree-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EB_TREE_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: X86_COND_C_TO_REG
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_C_TO_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: X86_COND_Z_TO_REG
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_Z_TO_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: X86_COND_NZ_TO_REG
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_NZ_TO_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: X86_COND_C_RESULT
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_C_RESULT(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: X86_COND_Z_RESULT
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_Z_RESULT(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: X86_COND_NZ_RESULT
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_NZ_RESULT(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: X86_COND_C_TO_REG
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_C_TO_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: X86_COND_Z_TO_REG
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_Z_TO_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: X86_COND_NZ_TO_REG
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_NZ_TO_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: X86_COND_C_RESULT
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_C_RESULT(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: X86_COND_Z_RESULT
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_Z_RESULT(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: X86_COND_NZ_RESULT
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_COND_NZ_RESULT(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: pl_cpu_relax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_cpu_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: _pl_mb
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: _pl_mb
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: _pl_mb
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: _pl_mb_load
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb_load()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: _pl_mb_store
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: _pl_mb_ato
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb_ato()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: _pl_mb_ato_load
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb_ato_load()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: _pl_mb_ato_store
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb_ato_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: _pl_load_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_load_lax(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: _pl_load
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_load(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: _pl_store_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_store_lax(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: _pl_store
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_store(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: _pl_inc_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_inc_lax(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: _pl_inc_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_inc_acq(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: _pl_inc_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_inc_rel(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: _pl_dec_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_dec_lax(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: _pl_dec_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_dec_acq(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: _pl_dec_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_dec_rel(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 173
    functionName: _pl_dec
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_dec(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: pl_inc_noret_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_noret_lax(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: pl_inc_noret_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_noret_acq(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: pl_inc_noret_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_noret_rel(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 239
    functionName: pl_inc_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_noret(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: pl_dec_noret_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_noret_lax(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: pl_dec_noret_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_noret_acq(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: pl_dec_noret_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_noret_rel(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 272
    functionName: pl_dec_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_noret(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: _pl_add_noret_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_add_noret_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: _pl_add_noret_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_add_noret_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: _pl_add_noret_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_add_noret_rel(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 307
    functionName: _pl_add_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_add_noret(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: _pl_sub_noret_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_sub_noret_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: _pl_sub_noret_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_sub_noret_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: _pl_sub_noret_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_sub_noret_rel(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 342
    functionName: _pl_sub_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_sub_noret(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: _pl_and_noret_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_and_noret_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: _pl_and_noret_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_and_noret_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: _pl_and_noret_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_and_noret_rel(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 377
    functionName: _pl_and_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_and_noret(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 382
    functionName: _pl_or_noret_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_or_noret_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: _pl_or_noret_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_or_noret_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 384
    functionName: _pl_or_noret_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_or_noret_rel(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 412
    functionName: _pl_or_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_or_noret(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 417
    functionName: _pl_xor_noret_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_xor_noret_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 418
    functionName: _pl_xor_noret_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_xor_noret_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 419
    functionName: _pl_xor_noret_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_xor_noret_rel(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 447
    functionName: _pl_xor_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_xor_noret(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    functionName: pl_btr_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_btr_lax(ptr, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: pl_btr_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_btr_acq(ptr, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: pl_btr_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_btr_rel(ptr, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: pl_btr
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_btr(ptr, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 494
    functionName: pl_bts_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_bts_lax(ptr, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 495
    functionName: pl_bts_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_bts_acq(ptr, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 496
    functionName: pl_bts_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_bts_rel(ptr, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 504
    functionName: pl_bts
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_bts(ptr, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 546
    functionName: _pl_xadd
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_xadd(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 626
    functionName: _pl_ldsub_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_ldsub_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 627
    functionName: _pl_ldsub_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_ldsub_rel(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: pl_cpu_relax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_cpu_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 764
    functionName: _pl_mb
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: _pl_mb_load
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb_load()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 766
    functionName: _pl_mb_store
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 769
    functionName: _pl_mb_ato
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb_ato()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 770
    functionName: _pl_mb_ato_load
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb_ato_load()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 771
    functionName: _pl_mb_ato_store
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pl_mb_ato_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 790
    functionName: pl_barrier
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 795
    functionName: pl_mb
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 800
    functionName: pl_load_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_load_lax(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 804
    functionName: pl_load
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_load(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 809
    functionName: pl_store_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_store_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 813
    functionName: pl_store
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_store(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 820
    functionName: pl_inc_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_lax(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 824
    functionName: pl_inc_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_acq(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 828
    functionName: pl_inc_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_rel(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 832
    functionName: pl_inc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 839
    functionName: pl_dec_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_lax(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 843
    functionName: pl_dec_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_acq(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 847
    functionName: pl_dec_rel
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_rel(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 851
    functionName: pl_dec
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 856
    functionName: pl_inc_noret_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_noret_lax(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 860
    functionName: pl_inc_noret_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_noret_acq(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 864
    functionName: pl_inc_noret_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_noret_relc(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 868
    functionName: pl_inc_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_noret(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 873
    functionName: pl_dec_noret_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_noret_lax(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 877
    functionName: pl_dec_noret_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_noret_acq(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 881
    functionName: pl_dec_noret_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_noret_relc(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 885
    functionName: pl_dec_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_noret(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 892
    functionName: pl_add_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_add_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 896
    functionName: pl_add_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_add_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 900
    functionName: pl_add_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_add_relc(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 904
    functionName: pl_add
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_add(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 911
    functionName: pl_sub_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_sub_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 915
    functionName: pl_sub_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_sub_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 919
    functionName: pl_sub_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_sub_relc(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 923
    functionName: pl_sub
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_sub(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 930
    functionName: pl_and_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_and_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 934
    functionName: pl_and_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_and_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 938
    functionName: pl_and_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_and_relc(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 942
    functionName: pl_and
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_and(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 949
    functionName: pl_or_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_or_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 953
    functionName: pl_or_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_or_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 957
    functionName: pl_or_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_or_relc(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 961
    functionName: pl_or
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_or(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 968
    functionName: pl_xor_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_xor_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 972
    functionName: pl_xor_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_xor_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 976
    functionName: pl_xor_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_xor_relc(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 980
    functionName: pl_xor
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_xor(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 988
    functionName: pl_xadd
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_xadd(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 995
    functionName: pl_xchg
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_xchg(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - old
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1006
    functionName: pl_cmpxchg
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_cmpxchg(ptr, old, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1013
    functionName: pl_ldadd_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldadd_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1017
    functionName: pl_ldadd_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldadd_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1021
    functionName: pl_ldadd_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldadd_relc(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1025
    functionName: pl_ldadd
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldadd(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1030
    functionName: pl_ldand_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldand_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1034
    functionName: pl_ldand_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldand_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1038
    functionName: pl_ldand_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldand_relc(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1042
    functionName: pl_ldand
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldand(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1047
    functionName: pl_ldor_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldor_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1051
    functionName: pl_ldor_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldor_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1055
    functionName: pl_ldor_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldor_relc(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1059
    functionName: pl_ldor
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldor(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1064
    functionName: pl_ldsub_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldsub_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1068
    functionName: pl_ldsub_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldsub_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1072
    functionName: pl_ldsub_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldsub_relc(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1076
    functionName: pl_ldsub
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldsub(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1081
    functionName: pl_ldxor_lax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldxor_lax(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1085
    functionName: pl_ldxor_acq
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldxor_acq(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1089
    functionName: pl_ldxor_relc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldxor_relc(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1093
    functionName: pl_ldxor
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldxor(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1533
    functionName: pl_cpu_relax
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_cpu_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1540
    functionName: pl_barrier
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1547
    functionName: pl_mb
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1550
    functionDepth: 0
    functionLinenumber: 1550
    functionLinenumberEnd: 1551
    functionName: pl_mb_load
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_mb_load()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1554
    functionDepth: 0
    functionLinenumber: 1554
    functionLinenumberEnd: 1555
    functionName: pl_mb_store
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_mb_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1559
    functionName: pl_mb_ato
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_mb_ato()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1563
    functionName: pl_mb_ato_load
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_mb_ato_load()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1567
    functionName: pl_mb_ato_store
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_mb_ato_store()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1578
    functionName: pl_load
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_load(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1582
    functionDepth: 0
    functionLinenumber: 1582
    functionLinenumberEnd: 1590
    functionName: pl_store
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_store(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1593
    functionDepth: 0
    functionLinenumber: 1593
    functionLinenumberEnd: 1594
    functionName: pl_inc_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_noret(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1598
    functionName: pl_dec_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_noret(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1602
    functionName: pl_inc
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1605
    functionDepth: 0
    functionLinenumber: 1605
    functionLinenumberEnd: 1606
    functionName: pl_dec
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1610
    functionName: pl_add
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_add(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1613
    functionDepth: 0
    functionLinenumber: 1613
    functionLinenumberEnd: 1614
    functionName: pl_and
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_and(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1618
    functionName: pl_or
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_or(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1621
    functionDepth: 0
    functionLinenumber: 1621
    functionLinenumberEnd: 1622
    functionName: pl_xor
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_xor(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1625
    functionDepth: 0
    functionLinenumber: 1625
    functionLinenumberEnd: 1626
    functionName: pl_sub
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_sub(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1629
    functionDepth: 0
    functionLinenumber: 1629
    functionLinenumberEnd: 1632
    functionName: pl_btr
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_btr(ptr, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1638
    functionName: pl_bts
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_bts(ptr, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1641
    functionDepth: 0
    functionLinenumber: 1641
    functionLinenumberEnd: 1642
    functionName: pl_xadd
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_xadd(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1645
    functionDepth: 0
    functionLinenumber: 1645
    functionLinenumberEnd: 1646
    functionName: pl_cmpxchg
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_cmpxchg(ptr, o, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1658
    functionName: pl_xchg
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_xchg(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1662
    functionName: pl_ldadd
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldadd(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1665
    functionDepth: 0
    functionLinenumber: 1665
    functionLinenumberEnd: 1666
    functionName: pl_ldand
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldand(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 1670
    functionName: pl_ldor
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldor(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1673
    functionDepth: 0
    functionLinenumber: 1673
    functionLinenumberEnd: 1674
    functionName: pl_ldxor
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldxor(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1677
    functionDepth: 0
    functionLinenumber: 1677
    functionLinenumberEnd: 1678
    functionName: pl_ldsub
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ldsub(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1682
    functionDepth: 0
    functionLinenumber: 1682
    functionLinenumberEnd: 1683
    functionName: pl_inc_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_inc_noret(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1686
    functionDepth: 0
    functionLinenumber: 1686
    functionLinenumberEnd: 1687
    functionName: pl_dec_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_dec_noret(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1690
    functionDepth: 0
    functionLinenumber: 1690
    functionLinenumberEnd: 1691
    functionName: pl_add_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_add_noret(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1694
    functionDepth: 0
    functionLinenumber: 1694
    functionLinenumberEnd: 1695
    functionName: pl_sub_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_sub_noret(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1699
    functionName: pl_or_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_or_noret(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1703
    functionName: pl_and_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_and_noret(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1706
    functionDepth: 0
    functionLinenumber: 1706
    functionLinenumberEnd: 1707
    functionName: pl_xor_noret
    functionSourceFile: /src/haproxy/include/import/atomic-ops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_xor_noret(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb_key_ptr
      Src: /src/haproxy/include/import/ceb64_tree.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: ceb64_imm_key
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached:
    - ceb_key_ptr
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t *ceb64_imm_key(const struct ceb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb_key_ptr
      Src: /src/haproxy/include/import/ceb64_tree.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - kofs
    argTypes:
    - struct ceb_node*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: ceb64_ofs_key
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached:
    - ceb_key_ptr
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t *ceb64_ofs_key(const struct ceb_node *node, ptrdiff_t kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: ceb64_item_insert
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_insert(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: ceb64_item_first
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_first(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: ceb64_item_last
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_last(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: ceb64_item_lookup
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_lookup(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: ceb64_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_lookup_le(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: ceb64_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_lookup_lt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: ceb64_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_lookup_ge(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: ceb64_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_lookup_gt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: ceb64_item_next_unique
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_next_unique(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: ceb64_item_prev_unique
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_prev_unique(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: ceb64_item_next_dup
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_next_dup(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: ceb64_item_prev_dup
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_prev_dup(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: ceb64_item_next
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_next(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: ceb64_item_prev
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_prev(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: ceb64_item_delete
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_delete(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: ceb64_item_pick
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb64_item_pick(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 304
    functionName: cebu64_item_insert
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_insert(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: cebu64_item_first
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_first(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 324
    functionName: cebu64_item_last
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_last(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: cebu64_item_lookup
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_lookup(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: cebu64_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_lookup_le(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: cebu64_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_lookup_lt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 369
    functionName: cebu64_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_lookup_ge(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: cebu64_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_lookup_gt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: cebu64_item_next
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_next(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 402
    functionName: cebu64_item_prev
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_prev(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 414
    functionName: cebu64_item_delete
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_delete(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 425
    functionName: cebu64_item_pick
    functionSourceFile: /src/haproxy/include/import/ceb64_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu64_item_pick(root, nname, kname, key, type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_lookup
      Src: /src/haproxy/include/import/ebsttree.h:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - root
    - x
    - len
    argTypes:
    - struct eb_root*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: ebst_lookup_len
    functionSourceFile: /src/haproxy/include/import/ebsttree.h
    functionUses: 1
    functionsReached:
    - ebmb_lookup
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      ebst_lookup_len(struct eb_root *root, const char *x, unsigned int len)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebsttree.h:63,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebsttree.h:68,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebsttree.h:69,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebsttree.h:69,1
    - Dst: strcmp
      Src: /src/haproxy/include/import/ebsttree.h:71,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebsttree.h:76,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebsttree.h:76,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/ebsttree.h:79,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/ebsttree.h:80,1
    - Dst: strcmp
      Src: /src/haproxy/include/import/ebsttree.h:89,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebsttree.h:93,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebsttree.h:94,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebsttree.h:95,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebsttree.h:95,1
    - Dst: likely
      Src: /src/haproxy/include/import/ebsttree.h:103,1
    - Dst: string_equal_bits
      Src: /src/haproxy/include/import/ebsttree.h:104,1
    - Dst: likely
      Src: /src/haproxy/include/import/ebsttree.h:105,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebsttree.h:114,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 130
    functionName: __ebst_lookup
    functionSourceFile: /src/haproxy/include/import/ebsttree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - string_equal_bits
    - strcmp
    - container_of
    - likely
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: forceinline
    signature: forceinline *__ebst_lookup(struct eb_root *root, const void *x)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebsttree.h:151,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:153,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:153,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:154,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:154,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:155,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebsttree.h:173,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebsttree.h:173,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebsttree.h:177,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebsttree.h:177,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:180,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:180,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:181,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:181,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:182,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:182,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:183,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:185,1
    - Dst: string_equal_bits
      Src: /src/haproxy/include/import/ebsttree.h:203,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebsttree.h:203,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebsttree.h:211,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:216,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:217,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:218,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:219,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:220,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:220,1
    - Dst: cmp_bits
      Src: /src/haproxy/include/import/ebsttree.h:224,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebsttree.h:224,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:227,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:229,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:230,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:234,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:235,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:236,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebsttree.h:242,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebsttree.h:242,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/ebsttree.h:245,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/ebsttree.h:246,1
    - Dst: string_equal_bits
      Src: /src/haproxy/include/import/ebsttree.h:257,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebsttree.h:257,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebsttree.h:259,1
    - Dst: eb_insert_dup
      Src: /src/haproxy/include/import/ebsttree.h:269,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:269,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebsttree.h:270,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:286,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:286,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:287,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:287,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:288,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:288,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:289,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:291,1
    - Dst: cmp_bits
      Src: /src/haproxy/include/import/ebsttree.h:294,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebsttree.h:294,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:296,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:298,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:299,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:303,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:304,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:305,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebsttree.h:312,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:326,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebsttree.h:327,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebsttree.h:327,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 85
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct ebmb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 329
    functionName: __ebst_insert
    functionSourceFile: /src/haproxy/include/import/ebsttree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - string_equal_bits
    - node::node
    - eb_insert_dup
    - container_of
    - key::key
    - cmp_bits
    - eb_dotag
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      __ebst_insert(struct eb_root *root, struct ebmb_node *new)'
  - 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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: offsetof
    functionSourceFile: /src/haproxy/include/import/cebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: offsetof
    functionSourceFile: /src/haproxy/include/import/cebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offsetof(type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: container_of
    functionSourceFile: /src/haproxy/include/import/cebtree.h
    functionUses: 125
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: container_of_safe
    functionSourceFile: /src/haproxy/include/import/cebtree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of_safe(ptr, type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct ceb_root**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: ceb_init_root
    functionSourceFile: /src/haproxy/include/import/cebtree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ceb_init_root(struct ceb_root **root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: ceb_init_node
    functionSourceFile: /src/haproxy/include/import/cebtree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ceb_init_node(struct ceb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: ceb_intree
    functionSourceFile: /src/haproxy/include/import/cebtree.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ceb_intree(const struct ceb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct ceb_root**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: ceb_isempty
    functionSourceFile: /src/haproxy/include/import/cebtree.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ceb_isempty(struct ceb_root * const*root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - kofs
    argTypes:
    - struct ceb_node*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: _ceb_key_ptr
    functionSourceFile: /src/haproxy/include/import/cebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *_ceb_key_ptr(const struct ceb_node *node, ptrdiff_t kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_key_ptr
      Src: /src/haproxy/include/import/cebtree.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - kofs
    argTypes:
    - struct ceb_node*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: ceb_key_ptr
    functionSourceFile: /src/haproxy/include/import/cebtree.h
    functionUses: 3
    functionsReached:
    - _ceb_key_ptr
    linkageType: ''
    returnType: void
    signature: void *ceb_key_ptr(const struct ceb_node *node, ptrdiff_t kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb_key_ptr
      Src: /src/haproxy/include/import/ceba_tree.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: ceba_imm_key
    functionSourceFile: /src/haproxy/include/import/ceba_tree.h
    functionUses: 0
    functionsReached:
    - ceb_key_ptr
    linkageType: ''
    returnType: void
    signature: void *ceba_imm_key(const struct ceb_node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 264
    functionName: clz8
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int clz8(unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: flsnz32
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz32(unsigned int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: flsnz32
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: flsnz64
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz64(unsigned long long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: flsnz64
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clz
      Src: /src/haproxy/include/import/ebtree.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: flsnz32
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 2
    functionsReached:
    - __builtin_clz
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz32(unsigned int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: flsnz32
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clzl
      Src: /src/haproxy/include/import/ebtree.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: flsnz64
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached:
    - __builtin_clzl
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz64(unsigned long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: flsnz64
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: flsnz8
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz8(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 324
    functionName: flsnz8
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz8(unsigned int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: flsnz8
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ___a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 340
    functionName: flsnz32
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz32(___a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flsnz32
      Src: /src/haproxy/include/import/ebtree.h:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: flsnz64
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached:
    - flsnz32
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flsnz64(unsigned long long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: flsnz64
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: flsnz_long
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz_long(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: flsnz
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsnz(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: fls64
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fls64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    functionName: fls_auto
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fls_auto(x)
  - 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: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: offsetof
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: offsetof
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offsetof(type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: container_of
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 125
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: container_of_safe
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of_safe(ptr, type, name)
  - 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: 397
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 397
    functionName: eb_entry
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eb_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - tag
    argTypes:
    - struct eb_root*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: eb_dotag
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: eb_troot_t
    signature: eb_troot_t *eb_dotag(const struct eb_root *root, const int tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - troot
    - tag
    argTypes:
    - eb_troot_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: eb_untag
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: struct eb_root
    signature: struct eb_root *eb_untag(const eb_troot_t *troot, const int tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - troot
    argTypes:
    - eb_troot_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: eb_gettag
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int eb_gettag(eb_troot_t *troot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - troot
    argTypes:
    - eb_troot_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: eb_clrtag
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: struct eb_root
    signature: struct eb_root *eb_clrtag(const eb_troot_t *troot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/haproxy/include/import/ebtree.h:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: eb_root_to_node
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 7
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct eb_node
    signature: struct eb_node *eb_root_to_node(struct eb_root *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:449,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:450,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:452,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - start
    - side
    argTypes:
    - eb_troot_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 453
    functionName: eb_walk_down
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 4
    functionsReached:
    - eb_gettag
    - eb_root_to_node
    - eb_untag
    linkageType: ''
    returnType: struct eb_node
    signature: struct eb_node *eb_walk_down(eb_troot_t *start, unsigned int side)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:464,1
    - Dst: branches::branches
      Src: /src/haproxy/include/import/ebtree.h:464,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:465,1
    - Dst: branches::branches
      Src: /src/haproxy/include/import/ebtree.h:465,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:466,1
    - Dst: branches::branches
      Src: /src/haproxy/include/import/ebtree.h:466,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:469,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebtree.h:471,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:471,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebtree.h:481,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:481,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:483,1
    - Dst: branches::branches
      Src: /src/haproxy/include/import/ebtree.h:483,1
    - Dst: branches::branches
      Src: /src/haproxy/include/import/ebtree.h:488,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:488,1
    - Dst: branches::branches
      Src: /src/haproxy/include/import/ebtree.h:489,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:499,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebtree.h:500,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:500,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:501,1
    - Dst: branches::branches
      Src: /src/haproxy/include/import/ebtree.h:501,1
    - Dst: branches::branches
      Src: /src/haproxy/include/import/ebtree.h:506,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:506,1
    - Dst: branches::branches
      Src: /src/haproxy/include/import/ebtree.h:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - sub
    - new
    argTypes:
    - struct eb_node*
    - struct eb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 510
    functionName: __eb_insert_dup
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 1
    functionsReached:
    - eb_gettag
    - branches::branches
    - container_of
    - eb_dotag
    - eb_untag
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      __eb_insert_dup(struct eb_node *sub, struct eb_node *new)'
  - 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: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: eb_prefetch
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eb_prefetch(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: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: eb_prefetch
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eb_prefetch(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: eb_is_empty
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int eb_is_empty(const struct eb_root *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct eb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: eb_is_dup
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int eb_is_dup(const struct eb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_walk_down
      Src: /src/haproxy/include/import/ebtree.h:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: eb_first
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 10
    functionsReached:
    - eb_walk_down
    linkageType: ''
    returnType: struct eb_node
    signature: struct eb_node *eb_first(struct eb_root *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_walk_down
      Src: /src/haproxy/include/import/ebtree.h:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: eb_last
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 7
    functionsReached:
    - eb_walk_down
    linkageType: ''
    returnType: struct eb_node
    signature: struct eb_node *eb_last(struct eb_root *root)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:555,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebtree.h:559,1
    - Dst: eb_clrtag
      Src: /src/haproxy/include/import/ebtree.h:559,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:559,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:561,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:561,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:564,1
    - Dst: eb_walk_down
      Src: /src/haproxy/include/import/ebtree.h:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct eb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 566
    functionName: eb_prev
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 3
    functionsReached:
    - eb_gettag
    - unlikely
    - eb_root_to_node
    - eb_walk_down
    - eb_clrtag
    - eb_untag
    linkageType: ''
    returnType: struct eb_node
    signature: struct eb_node *eb_prev(struct eb_node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:573,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:575,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:575,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:578,1
    - Dst: eb_clrtag
      Src: /src/haproxy/include/import/ebtree.h:579,1
    - Dst: eb_walk_down
      Src: /src/haproxy/include/import/ebtree.h:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct eb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 582
    functionName: eb_next
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 6
    functionsReached:
    - eb_gettag
    - eb_root_to_node
    - eb_walk_down
    - eb_clrtag
    - eb_untag
    linkageType: ''
    returnType: struct eb_node
    signature: struct eb_node *eb_next(struct eb_node *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:589,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebtree.h:593,1
    - Dst: eb_clrtag
      Src: /src/haproxy/include/import/ebtree.h:593,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:593,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:596,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:596,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:598,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:598,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:601,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:601,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:603,1
    - Dst: eb_walk_down
      Src: /src/haproxy/include/import/ebtree.h:604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct eb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 605
    functionName: eb_prev_dup
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 3
    functionsReached:
    - eb_gettag
    - unlikely
    - eb_root_to_node
    - eb_walk_down
    - eb_clrtag
    - eb_untag
    linkageType: ''
    returnType: struct eb_node
    signature: struct eb_node *eb_prev_dup(struct eb_node *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:612,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:615,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:615,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:617,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:617,1
    - Dst: eb_clrtag
      Src: /src/haproxy/include/import/ebtree.h:624,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:624,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:627,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:627,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:629,1
    - Dst: eb_walk_down
      Src: /src/haproxy/include/import/ebtree.h:630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct eb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 631
    functionName: eb_next_dup
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 3
    functionsReached:
    - eb_gettag
    - eb_root_to_node
    - eb_walk_down
    - eb_clrtag
    - eb_untag
    linkageType: ''
    returnType: struct eb_node
    signature: struct eb_node *eb_next_dup(struct eb_node *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:640,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:641,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:641,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebtree.h:651,1
    - Dst: eb_clrtag
      Src: /src/haproxy/include/import/ebtree.h:651,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:651,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:653,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:653,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:657,1
    - Dst: eb_walk_down
      Src: /src/haproxy/include/import/ebtree.h:658,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct eb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 659
    functionName: eb_prev_unique
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 7
    functionsReached:
    - eb_gettag
    - unlikely
    - eb_root_to_node
    - eb_walk_down
    - eb_clrtag
    - eb_untag
    linkageType: ''
    returnType: struct eb_node
    signature: struct eb_node *eb_prev_unique(struct eb_node *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:669,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebtree.h:670,1
    - Dst: eb_clrtag
      Src: /src/haproxy/include/import/ebtree.h:670,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:670,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:672,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:672,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:680,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:680,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:685,1
    - Dst: eb_clrtag
      Src: /src/haproxy/include/import/ebtree.h:686,1
    - Dst: eb_walk_down
      Src: /src/haproxy/include/import/ebtree.h:688,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct eb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 689
    functionName: eb_next_unique
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 7
    functionsReached:
    - eb_gettag
    - unlikely
    - eb_root_to_node
    - eb_walk_down
    - eb_clrtag
    - eb_untag
    linkageType: ''
    returnType: struct eb_node
    signature: struct eb_node *eb_next_unique(struct eb_node *node)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:706,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:707,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:707,1
    - Dst: eb_clrtag
      Src: /src/haproxy/include/import/ebtree.h:714,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:725,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:726,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:729,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:732,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:732,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:733,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:735,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:735,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:736,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:765,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:766,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:767,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebtree.h:771,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:772,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:772,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:773,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebtree.h:775,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebtree.h:775,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebtree.h:776,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct eb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 783
    functionName: __eb_delete
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 1
    functionsReached:
    - eb_gettag
    - eb_root_to_node
    - eb_dotag
    - eb_clrtag
    - eb_untag
    linkageType: ''
    returnType: forceinline
    signature: forceinline __eb_delete(struct eb_node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flsnz_long
      Src: /src/haproxy/include/import/ebtree.h:810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - a
    - b
    - ignore
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 815
    functionName: equal_bits
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 4
    functionsReached:
    - flsnz_long
    linkageType: ''
    returnType: forceinline
    signature: "forceinline equal_bits(const unsigned char *a,\n\t\t\t\t     const
      unsigned char *b,\n\t\t\t\t     size_t ignore, size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebtree.h:835,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - a
    - b
    - skip
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 846
    functionName: check_bits
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: forceinline
    signature: "forceinline check_bits(const unsigned char *a,\n\t\t\t\t  const unsigned
      char *b,\n\t\t\t\t  int skip,\n\t\t\t\t  int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flsnz
      Src: /src/haproxy/include/import/ebtree.h:886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - a
    - b
    - ignore
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 887
    functionName: string_equal_bits
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 4
    functionsReached:
    - flsnz
    linkageType: ''
    returnType: forceinline
    signature: "forceinline string_equal_bits(const unsigned char *a,\n\t\t\t\t\t
      \    const unsigned char *b,\n\t\t\t\t\t     size_t ignore)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - pos
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 901
    functionName: cmp_bits
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline cmp_bits(const unsigned char *a, const unsigned char *b,
      unsigned int pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - pos
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 910
    functionName: get_bit
    functionSourceFile: /src/haproxy/include/import/ebtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline get_bit(const unsigned char *a, unsigned int pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - new
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: __atomic_exchange_n
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __atomic_exchange_n(val, new, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: __atomic_thread_fence
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __atomic_thread_fence(order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: MT_LIST_HEAD_INIT
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_HEAD_INIT(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - t
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: MT_LIST_ELEM
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_ELEM(a, t, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - t
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: MT_LIST_NEXT
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_NEXT(a, t, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - t
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: MT_LIST_PREV
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_PREV(a, t, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: MT_ALREADY_CHECKED
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_ALREADY_CHECKED(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lh
    - ','
    - t
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: MT_LIST_POP
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_POP(lh, t, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lh
    - ','
    - t
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: MT_LIST_POP_LOCKED
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_POP_LOCKED(lh, t, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - item
    - ','
    - list_head
    - ','
    - member
    - ','
    - back
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: MT_LIST_FOR_EACH_ENTRY_LOCKED
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_FOR_EACH_ENTRY_LOCKED(item, list_head, member, back)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - item
    - ','
    - list_head
    - ','
    - member
    - ','
    - back
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: MT_LIST_FOR_EACH_ENTRY_UNLOCKED
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_FOR_EACH_ENTRY_UNLOCKED(item, list_head, member, back)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: MT_LIST_INIT
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_INIT(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: MT_LIST_ISEMPTY
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_ISEMPTY(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: MT_LIST_INLIST
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_INLIST(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: MT_LIST_TRY_INSERT
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_TRY_INSERT(l, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: MT_LIST_TRY_APPEND
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_TRY_APPEND(l, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: MT_LIST_BEHEAD
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_BEHEAD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: MT_LIST_INSERT
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_INSERT(l, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: MT_LIST_APPEND
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_APPEND(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: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: MT_LIST_DELETE
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_DELETE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: MT_LIST_LOCK_NEXT
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_LOCK_NEXT(el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: MT_LIST_LOCK_PREV
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_LOCK_PREV(el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - el
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: MT_LIST_LOCK_FULL
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_LOCK_FULL(el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ends
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: MT_LIST_UNLOCK_LINK
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_UNLOCK_LINK(ends)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - el
    - ','
    - ends
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: MT_LIST_UNLOCK_FULL
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MT_LIST_UNLOCK_FULL(el, ends)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 222
    functionName: mt_list_prng
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mt_list_prng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_prng
      Src: /src/haproxy/include/import/mt_list.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - factor
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: mt_list_wait
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - mt_list_prng
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mt_list_wait(unsigned factor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_wait
      Src: /src/haproxy/include/import/mt_list.h:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - loop
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 259
    functionName: mt_list_cpu_relax
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - mt_list_wait
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long mt_list_cpu_relax(unsigned long loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/haproxy/include/import/mt_list.h:267,1
    - Dst: __atomic_store_n
      Src: /src/haproxy/include/import/mt_list.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - el
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: mt_list_init
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: struct mt_list
    signature: struct mt_list *mt_list_init(struct mt_list *el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - el
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: mt_list_isempty
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long mt_list_isempty(const struct mt_list *el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - el
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: mt_list_inlist
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long mt_list_inlist(const struct mt_list *el)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:312,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:313,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:317,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:320,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:324,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:330,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:333,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:340,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:347,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:350,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:359,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:362,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:365,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - lh
    - el
    argTypes:
    - struct mt_list*
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 371
    functionName: mt_list_try_insert
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE long
    signature: MT_INLINE long mt_list_try_insert(struct mt_list *lh, struct mt_list
      *el)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:394,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:395,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:399,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:402,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:406,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:412,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:415,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:422,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:429,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:432,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:441,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:444,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:447,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - lh
    - el
    argTypes:
    - struct mt_list*
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 453
    functionName: mt_list_try_append
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE long
    signature: MT_INLINE long mt_list_try_append(struct mt_list *lh, struct mt_list
      *el)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:469,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:470,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:475,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:480,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:483,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:489,1
    - Dst: __atomic_store_n
      Src: /src/haproxy/include/import/mt_list.h:494,1
    - Dst: __atomic_store_n
      Src: /src/haproxy/include/import/mt_list.h:495,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:496,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:499,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:502,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - lh
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 506
    functionName: mt_list_behead
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    - __atomic_store_n
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE *mt_list_behead(struct mt_list *lh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:521,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:522,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:526,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:529,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:535,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:538,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:541,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - lh
    - el
    argTypes:
    - struct mt_list*
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 544
    functionName: mt_list_insert
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE mt_list_insert(struct mt_list *lh, struct mt_list *el)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:559,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:560,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:564,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:567,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:573,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:576,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - lh
    - el
    argTypes:
    - struct mt_list*
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 553
    functionDepth: 3
    functionLinenumber: 553
    functionLinenumberEnd: 582
    functionName: mt_list_append
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE mt_list_append(struct mt_list *lh, struct mt_list *el)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:601,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:603,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:607,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:610,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:615,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:619,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:625,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:631,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:638,1
    - Dst: __atomic_store_n
      Src: /src/haproxy/include/import/mt_list.h:648,1
    - Dst: __atomic_store_n
      Src: /src/haproxy/include/import/mt_list.h:649,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:650,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 1
    argNames:
    - el
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 594
    functionDepth: 3
    functionLinenumber: 594
    functionLinenumberEnd: 658
    functionName: mt_list_delete
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    - __atomic_store_n
    linkageType: ''
    returnType: MT_INLINE long
    signature: MT_INLINE long mt_list_delete(struct mt_list *el)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:670,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:671,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:678,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:683,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:686,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:690,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:693,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:696,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:700,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:704,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:707,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:713,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - lh
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 719
    functionName: mt_list_pop_locked
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE *mt_list_pop_locked(struct mt_list *lh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_pop_locked
      Src: /src/haproxy/include/import/mt_list.h:726,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lh
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 733
    functionName: mt_list_pop
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - mt_list_pop_locked
    - __atomic_thread_fence
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE *mt_list_pop(struct mt_list *lh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:761,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:762,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:766,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:769,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - lh
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 775
    functionName: mt_list_lock_next
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE mt_list_lock_next(struct mt_list *lh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:803,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:804,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:808,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:811,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - lh
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 798
    functionDepth: 3
    functionLinenumber: 798
    functionLinenumberEnd: 817
    functionName: mt_list_lock_prev
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 1
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE mt_list_lock_prev(struct mt_list *lh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:828,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:832,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - lh
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 839
    functionName: mt_list_try_lock_prev
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 1
    functionsReached:
    - __atomic_thread_fence
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE mt_list_try_lock_prev(struct mt_list *lh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:851,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:852,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:856,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:859,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - el
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 846
    functionDepth: 3
    functionLinenumber: 846
    functionLinenumberEnd: 865
    functionName: mt_list_lock_elem
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 1
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE mt_list_lock_elem(struct mt_list *el)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - el
    - back
    argTypes:
    - struct mt_list*
    - struct mt_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 875
    functionName: mt_list_unlock_elem
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void mt_list_unlock_elem(struct mt_list *el, struct mt_list back)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - el
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 887
    functionName: mt_list_unlock_self
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 3
    functionsReached:
    - __atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void mt_list_unlock_self(struct mt_list *el)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:921,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:923,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:927,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:930,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:935,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:938,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:944,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:949,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - el
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 914
    functionDepth: 3
    functionLinenumber: 914
    functionLinenumberEnd: 956
    functionName: mt_list_lock_full
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 6
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE mt_list_lock_full(struct mt_list *el)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ends
    argTypes:
    - struct mt_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 974
    functionName: mt_list_unlock_link
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 1
    functionsReached:
    - __atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void mt_list_unlock_link(struct mt_list ends)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:991,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/mt_list.h:993,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/mt_list.h:995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - el
    - ends
    argTypes:
    - struct mt_list*
    - struct mt_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 997
    functionName: mt_list_unlock_full
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 7
    functionsReached:
    - __builtin_expect
    - __atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void mt_list_unlock_full(struct mt_list *el, struct mt_list ends)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - el
    - back
    argTypes:
    - struct mt_list*
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1019
    functionName: _mt_list_unlock_next
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void _mt_list_unlock_next(struct mt_list *el, struct mt_list *back)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - el
    - back
    argTypes:
    - struct mt_list*
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1034
    functionName: _mt_list_unlock_prev
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void _mt_list_unlock_prev(struct mt_list *el, struct mt_list *back)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:1047,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:1048,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:1053,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:1056,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - el
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1042
    functionDepth: 3
    functionLinenumber: 1042
    functionLinenumberEnd: 1063
    functionName: _mt_list_lock_next
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE *_mt_list_lock_next(struct mt_list *el)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mt_list_cpu_relax
      Src: /src/haproxy/include/import/mt_list.h:1076,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:1077,1
    - Dst: __atomic_exchange_n
      Src: /src/haproxy/include/import/mt_list.h:1081,1
    - Dst: __atomic_thread_fence
      Src: /src/haproxy/include/import/mt_list.h:1084,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - el
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1071
    functionDepth: 3
    functionLinenumber: 1071
    functionLinenumberEnd: 1090
    functionName: _mt_list_lock_prev
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached:
    - __atomic_thread_fence
    - mt_list_cpu_relax
    - __atomic_exchange_n
    linkageType: ''
    returnType: MT_INLINE
    signature: MT_INLINE *_mt_list_lock_prev(struct mt_list *el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - item
    - ','
    - lh
    - ','
    - lm
    - ','
    - back
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1104
    functionName: _MT_LIST_FOR_EACH_ENTRY_LOCKED_OUTER
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MT_LIST_FOR_EACH_ENTRY_LOCKED_OUTER(item, lh, lm, back)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - item
    - ','
    - lh
    - ','
    - lm
    - ','
    - back
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1150
    functionName: _MT_LIST_FOR_EACH_ENTRY_LOCKED_INNER
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MT_LIST_FOR_EACH_ENTRY_LOCKED_INNER(item, lh, lm, back)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - item
    - ','
    - lh
    - ','
    - lm
    - ','
    - back
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1188
    functionName: _MT_LIST_FOR_EACH_ENTRY_UNLOCKED_OUTER
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MT_LIST_FOR_EACH_ENTRY_UNLOCKED_OUTER(item, lh, lm, back)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - item
    - ','
    - lh
    - ','
    - lm
    - ','
    - back
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1238
    functionName: _MT_LIST_FOR_EACH_ENTRY_UNLOCKED_INNER
    functionSourceFile: /src/haproxy/include/import/mt_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MT_LIST_FOR_EACH_ENTRY_UNLOCKED_INNER(item, lh, lm, back)
  - 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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: eb32sc_entry
    functionSourceFile: /src/haproxy/include/import/eb32sctree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eb32sc_entry(ptr, type, member)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb32sctree.h:56,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32sctree.h:60,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32sctree.h:61,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/eb32sctree.h:62,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32sctree.h:63,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32sctree.h:71,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/eb32sctree.h:72,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32sctree.h:73,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32sctree.h:82,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/eb32sctree.h:84,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32sctree.h:84,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32sctree.h:87,1
    - Dst: eb_clrtag
      Src: /src/haproxy/include/import/eb32sctree.h:89,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - start
    - scope
    argTypes:
    - eb_troot_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 92
    functionName: eb32sc_walk_down_left
    functionSourceFile: /src/haproxy/include/import/eb32sctree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - eb_root_to_node
    - eb_clrtag
    - eb_untag
    linkageType: ''
    returnType: struct eb32sc_node
    signature: struct eb32sc_node *eb32sc_walk_down_left(eb_troot_t *start, unsigned
      long scope)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32sctree.h:97,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/eb32sctree.h:99,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32sctree.h:99,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32sctree.h:102,1
    - Dst: eb_clrtag
      Src: /src/haproxy/include/import/eb32sctree.h:103,1
    - Dst: eb32sc_walk_down_left
      Src: /src/haproxy/include/import/eb32sctree.h:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - start
    - scope
    argTypes:
    - eb_troot_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: eb32sc_next_with_parent
    functionSourceFile: /src/haproxy/include/import/eb32sctree.h
    functionUses: 2
    functionsReached:
    - eb_gettag
    - eb_root_to_node
    - eb32sc_walk_down_left
    - eb_clrtag
    - eb_untag
    linkageType: ''
    returnType: struct eb32sc_node
    signature: struct eb32sc_node *eb32sc_next_with_parent(eb_troot_t *start, unsigned
      long scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32sc_next_with_parent
      Src: /src/haproxy/include/import/eb32sctree.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eb32
    - scope
    argTypes:
    - struct eb32sc_node*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: eb32sc_next
    functionSourceFile: /src/haproxy/include/import/eb32sctree.h
    functionUses: 1
    functionsReached:
    - eb32sc_next_with_parent
    linkageType: ''
    returnType: struct eb32sc_node
    signature: struct eb32sc_node *eb32sc_next(struct eb32sc_node *eb32, unsigned
      long scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32sc_walk_down_left
      Src: /src/haproxy/include/import/eb32sctree.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - scope
    argTypes:
    - struct eb_root*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: eb32sc_first
    functionSourceFile: /src/haproxy/include/import/eb32sctree.h
    functionUses: 1
    functionsReached:
    - eb32sc_walk_down_left
    linkageType: ''
    returnType: struct eb32sc_node
    signature: struct eb32sc_node *eb32sc_first(struct eb_root *root, unsigned long
      scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: pl_deref_long
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_deref_long(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: pl_deref_int
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_deref_int(p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sched_yield
      Src: /src/haproxy/include/import/plock.h:92,1
    - Dst: pl_cpu_relax
      Src: /src/haproxy/include/import/plock.h:97,1
    - Dst: pl_barrier
      Src: /src/haproxy/include/import/plock.h:100,1
    - Dst: pl_load
      Src: /src/haproxy/include/import/plock.h:102,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/plock.h:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - lock
    - mask
    argTypes:
    - unsigned long*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 114
    functionName: __pl_wait_unlock_long
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - sched_yield
    - pl_cpu_relax
    - pl_barrier
    - pl_load
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long __pl_wait_unlock_long(const unsigned long *lock, const
      unsigned long mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __pl_wait_unlock_long
      Src: /src/haproxy/include/import/plock.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lock
    - mask
    argTypes:
    - unsigned long*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: pl_wait_unlock_long
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 1
    functionsReached:
    - __pl_wait_unlock_long
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pl_wait_unlock_long(const unsigned long *lock, const
      unsigned long mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sched_yield
      Src: /src/haproxy/include/import/plock.h:161,1
    - Dst: pl_cpu_relax
      Src: /src/haproxy/include/import/plock.h:166,1
    - Dst: pl_barrier
      Src: /src/haproxy/include/import/plock.h:169,1
    - Dst: pl_deref_int
      Src: /src/haproxy/include/import/plock.h:171,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/plock.h:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - lock
    - mask
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: __pl_wait_unlock_int
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached:
    - pl_deref_int
    - __builtin_expect
    - sched_yield
    - pl_cpu_relax
    - pl_barrier
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __pl_wait_unlock_int(const unsigned int *lock, const unsigned
      int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __pl_wait_unlock_int
      Src: /src/haproxy/include/import/plock.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lock
    - mask
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: pl_wait_unlock_int
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 1
    functionsReached:
    - __pl_wait_unlock_int
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pl_wait_unlock_int(const unsigned int *lock, const unsigned
      int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl_cpu_relax
      Src: /src/haproxy/include/import/plock.h:215,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/plock.h:216,1
    - Dst: pl_deref_long
      Src: /src/haproxy/include/import/plock.h:217,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/plock.h:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - lock
    - prev
    argTypes:
    - unsigned long*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: pl_wait_new_long
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 1
    functionsReached:
    - __builtin_expect
    - pl_deref_long
    - pl_cpu_relax
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pl_wait_new_long(const unsigned long *lock, const unsigned
      long prev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl_cpu_relax
      Src: /src/haproxy/include/import/plock.h:241,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/plock.h:242,1
    - Dst: pl_deref_int
      Src: /src/haproxy/include/import/plock.h:243,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/plock.h:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - lock
    - prev
    argTypes:
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 246
    functionName: pl_wait_new_int
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - pl_cpu_relax
    - pl_deref_int
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pl_wait_new_int(const unsigned int *lock, const unsigned
      int prev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 319
    functionName: pl_take_r
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_take_r(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 334
    functionName: pl_drop_r
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_drop_r(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 401
    functionName: pl_take_s
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_take_s(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 416
    functionName: pl_drop_s
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_drop_s(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 431
    functionName: pl_stor
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_stor(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 450
    functionName: pl_stow
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_stow(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 465
    functionName: pl_wtos
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_wtos(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 480
    functionName: pl_wtor
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_wtor(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 503
    functionName: pl_try_w
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_try_w(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 612
    functionName: pl_drop_w
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_drop_w(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 657
    functionName: pl_try_rtow
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_try_rtow(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 746
    functionName: __pl_r
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __pl_r(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 764
    functionName: pl_take_a
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_take_a(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 810
    functionName: pl_drop_a
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_drop_a(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 837
    functionName: pl_ator
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ator(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 888
    functionName: __pl_r
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __pl_r(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 933
    functionName: pl_rtoj
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_rtoj(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 954
    functionName: pl_jtoc
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_jtoc(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 1001
    functionName: pl_rtoc
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_rtoc(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1024
    functionName: pl_drop_c
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_drop_c(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1059
    functionName: pl_ctoa
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_ctoa(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1074
    functionName: pl_atoj
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_atoj(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1091
    functionName: pl_last_writer
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_last_writer(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1110
    functionName: pl_try_j
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_try_j(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1185
    functionName: pl_take_j
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_take_j(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1255
    functionName: pl_drop_j
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pl_drop_j(lock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pl_cmpxchg
      Src: /src/haproxy/include/import/plock.h:1330,1
    - Dst: __pl_wait_unlock_long
      Src: /src/haproxy/include/import/plock.h:1339,1
    - Dst: pl_wait_unlock_long
      Src: /src/haproxy/include/import/plock.h:1341,1
    - Dst: pl_ldadd_acq
      Src: /src/haproxy/include/import/plock.h:1345,1
    - Dst: __pl_wait_unlock_long
      Src: /src/haproxy/include/import/plock.h:1350,1
    - Dst: pl_wait_unlock_long
      Src: /src/haproxy/include/import/plock.h:1352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - lock
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1321
    functionDepth: 3
    functionLinenumber: 1321
    functionLinenumberEnd: 1354
    functionName: pl_lorw_rdlock
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 1
    functionsReached:
    - pl_cmpxchg
    - __pl_wait_unlock_long
    - pl_ldadd_acq
    - pl_wait_unlock_long
    linkageType: ''
    returnType: void
    signature: void pl_lorw_rdlock(unsigned long *lock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pl_deref_long
      Src: /src/haproxy/include/import/plock.h:1367,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/plock.h:1368,1
    - Dst: __pl_wait_unlock_long
      Src: /src/haproxy/include/import/plock.h:1370,1
    - Dst: pl_wait_unlock_long
      Src: /src/haproxy/include/import/plock.h:1372,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/plock.h:1378,1
    - Dst: pl_or_noret
      Src: /src/haproxy/include/import/plock.h:1385,1
    - Dst: __pl_wait_unlock_long
      Src: /src/haproxy/include/import/plock.h:1387,1
    - Dst: pl_wait_unlock_long
      Src: /src/haproxy/include/import/plock.h:1389,1
    - Dst: __pl_wait_unlock_long
      Src: /src/haproxy/include/import/plock.h:1396,1
    - Dst: pl_wait_unlock_long
      Src: /src/haproxy/include/import/plock.h:1398,1
    - Dst: pl_cmpxchg
      Src: /src/haproxy/include/import/plock.h:1406,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - lock
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1357
    functionDepth: 3
    functionLinenumber: 1357
    functionLinenumberEnd: 1412
    functionName: pl_lorw_wrlock
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 1
    functionsReached:
    - __pl_wait_unlock_long
    - pl_wait_unlock_long
    - __builtin_expect
    - pl_cmpxchg
    - pl_or_noret
    - pl_deref_long
    linkageType: ''
    returnType: void
    signature: void pl_lorw_wrlock(unsigned long *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl_sub_noret_rel
      Src: /src/haproxy/include/import/plock.h:1418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1419
    functionName: pl_lorw_rdunlock
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached:
    - pl_sub_noret_rel
    linkageType: ''
    returnType: void
    signature: void pl_lorw_rdunlock(unsigned long *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl_and_noret_rel
      Src: /src/haproxy/include/import/plock.h:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1421
    functionDepth: 0
    functionLinenumber: 1421
    functionLinenumberEnd: 1425
    functionName: pl_lorw_wrunlock
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 0
    functionsReached:
    - pl_and_noret_rel
    linkageType: ''
    returnType: void
    signature: void pl_lorw_wrunlock(unsigned long *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pl_deref_long
      Src: /src/haproxy/include/import/plock.h:1430,1
    - Dst: pl_lorw_wrunlock
      Src: /src/haproxy/include/import/plock.h:1431,1
    - Dst: pl_lorw_rdunlock
      Src: /src/haproxy/include/import/plock.h:1433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1427
    functionDepth: 1
    functionLinenumber: 1427
    functionLinenumberEnd: 1434
    functionName: pl_lorw_unlock
    functionSourceFile: /src/haproxy/include/import/plock.h
    functionUses: 1
    functionsReached:
    - pl_lorw_rdunlock
    - pl_deref_long
    - pl_lorw_wrunlock
    linkageType: ''
    returnType: void
    signature: void pl_lorw_unlock(unsigned long *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: slz_rfc1952_init
      Src: /src/haproxy/include/import/slz.h:125,1
    - Dst: slz_rfc1950_init
      Src: /src/haproxy/include/import/slz.h:127,1
    - Dst: slz_rfc1951_init
      Src: /src/haproxy/include/import/slz.h:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - strm
    - level
    - format
    argTypes:
    - struct slz_stream*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: slz_init
    functionSourceFile: /src/haproxy/include/import/slz.h
    functionUses: 0
    functionsReached:
    - slz_rfc1952_init
    - slz_rfc1950_init
    - slz_rfc1951_init
    linkageType: ''
    returnType: int
    signature: int slz_init(struct slz_stream *strm, int level, int format)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: slz_rfc1952_encode
      Src: /src/haproxy/include/import/slz.h:145,1
    - Dst: slz_rfc1950_encode
      Src: /src/haproxy/include/import/slz.h:147,1
    - Dst: slz_rfc1951_encode
      Src: /src/haproxy/include/import/slz.h:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - strm
    - out
    - in
    - ilen
    - more
    argTypes:
    - struct slz_stream*
    - void*
    - void*
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: slz_encode
    functionSourceFile: /src/haproxy/include/import/slz.h
    functionUses: 1
    functionsReached:
    - slz_rfc1951_encode
    - slz_rfc1950_encode
    - slz_rfc1952_encode
    linkageType: ''
    returnType: long
    signature: "long slz_encode(struct slz_stream *strm, void *out,\n                              const
      void *in, long ilen, int more)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: slz_rfc1952_finish
      Src: /src/haproxy/include/import/slz.h:169,1
    - Dst: slz_rfc1950_finish
      Src: /src/haproxy/include/import/slz.h:171,1
    - Dst: slz_rfc1951_finish
      Src: /src/haproxy/include/import/slz.h:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: slz_finish
    functionSourceFile: /src/haproxy/include/import/slz.h
    functionUses: 1
    functionsReached:
    - slz_rfc1951_finish
    - slz_rfc1950_finish
    - slz_rfc1952_finish
    linkageType: ''
    returnType: int
    signature: int slz_finish(struct slz_stream *strm, void *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: slz_rfc1952_flush
      Src: /src/haproxy/include/import/slz.h:193,1
    - Dst: slz_rfc1950_flush
      Src: /src/haproxy/include/import/slz.h:195,1
    - Dst: slz_rfc1951_flush
      Src: /src/haproxy/include/import/slz.h:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: slz_flush
    functionSourceFile: /src/haproxy/include/import/slz.h
    functionUses: 1
    functionsReached:
    - slz_rfc1951_flush
    - slz_rfc1952_flush
    - slz_rfc1950_flush
    linkageType: ''
    returnType: int
    signature: int slz_flush(struct slz_stream *strm, void *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: XXH_IPREF
    functionSourceFile: /src/haproxy/include/import/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: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: XXH_CAT
    functionSourceFile: /src/haproxy/include/import/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: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: XXH_NAME2
    functionSourceFile: /src/haproxy/include/import/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:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 743
    functionName: XXH_HAS_ATTRIBUTE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 745
    functionName: XXH_HAS_ATTRIBUTE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: XXH_HAS_C_ATTRIBUTE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_C_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 763
    functionName: XXH_HAS_C_ATTRIBUTE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_C_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 769
    functionName: XXH_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_CPP_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 771
    functionName: XXH_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_CPP_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1478
    functionName: XXH_ALIGN
    functionSourceFile: /src/haproxy/include/import/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: 1481
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1481
    functionName: XXH_ALIGN
    functionSourceFile: /src/haproxy/include/import/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: 1483
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1483
    functionName: XXH_ALIGN
    functionSourceFile: /src/haproxy/include/import/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: 1485
      start: 1484
    functionDepth: 0
    functionLinenumber: 1484
    functionLinenumberEnd: 1485
    functionName: XXH_ALIGN
    functionSourceFile: /src/haproxy/include/import/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: 1494
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1494
    functionName: XXH_ALIGN_MEMBER
    functionSourceFile: /src/haproxy/include/import/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: 1496
      start: 1495
    functionDepth: 0
    functionLinenumber: 1495
    functionLinenumberEnd: 1496
    functionName: XXH_ALIGN_MEMBER
    functionSourceFile: /src/haproxy/include/import/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: 1587
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1587
    functionName: XXH3_INITSTATE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH3_INITSTATE(XXH3_state_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2055
    functionDepth: 0
    functionLinenumber: 2055
    functionLinenumberEnd: 2055
    functionName: XXH_malloc
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_CONSTF
    signature: XXH_CONSTF * XXH_malloc(size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 2056
    functionDepth: 0
    functionLinenumber: 2056
    functionLinenumberEnd: 2056
    functionName: XXH_free
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XXH_free(void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/include/import/xxhash.h:2070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2070
    functionDepth: 0
    functionLinenumber: 2070
    functionLinenumberEnd: 2070
    functionName: XXH_malloc
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: XXH_MALLOCF
    signature: XXH_MALLOCF * XXH_malloc(size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/include/import/xxhash.h:2076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2076
    functionDepth: 3
    functionLinenumber: 2076
    functionLinenumberEnd: 2076
    functionName: XXH_free
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void XXH_free(void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/include/import/xxhash.h:2088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - src
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2089
    functionName: XXH_memcpy
    functionSourceFile: /src/haproxy/include/import/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: 2153
      start: 2152
    functionDepth: 0
    functionLinenumber: 2152
    functionLinenumberEnd: 2153
    functionName: XXH_ASSERT
    functionSourceFile: /src/haproxy/include/import/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: 2156
      start: 2155
    functionDepth: 0
    functionLinenumber: 2155
    functionLinenumberEnd: 2156
    functionName: XXH_ASSERT
    functionSourceFile: /src/haproxy/include/import/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: 2158
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2158
    functionName: XXH_ASSERT
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2164
    functionDepth: 0
    functionLinenumber: 2164
    functionLinenumberEnd: 2165
    functionName: XXH_STATIC_ASSERT_WITH_MESSAGE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_STATIC_ASSERT_WITH_MESSAGE(c,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2166
    functionDepth: 0
    functionLinenumber: 2166
    functionLinenumberEnd: 2167
    functionName: XXH_STATIC_ASSERT_WITH_MESSAGE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_STATIC_ASSERT_WITH_MESSAGE(c,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2168
    functionDepth: 0
    functionLinenumber: 2168
    functionLinenumberEnd: 2169
    functionName: XXH_STATIC_ASSERT_WITH_MESSAGE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_STATIC_ASSERT_WITH_MESSAGE(c,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2170
    functionDepth: 0
    functionLinenumber: 2170
    functionLinenumberEnd: 2171
    functionName: XXH_STATIC_ASSERT
    functionSourceFile: /src/haproxy/include/import/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: 2191
      start: 2190
    functionDepth: 0
    functionLinenumber: 2190
    functionLinenumberEnd: 2191
    functionName: XXH_COMPILER_GUARD
    functionSourceFile: /src/haproxy/include/import/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: 2193
      start: 2192
    functionDepth: 0
    functionLinenumber: 2192
    functionLinenumberEnd: 2193
    functionName: XXH_COMPILER_GUARD
    functionSourceFile: /src/haproxy/include/import/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: 2199
      start: 2198
    functionDepth: 0
    functionLinenumber: 2198
    functionLinenumberEnd: 2199
    functionName: XXH_COMPILER_GUARD_CLANG_NEON
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_COMPILER_GUARD_CLANG_NEON(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2200
    functionDepth: 0
    functionLinenumber: 2200
    functionLinenumberEnd: 2201
    functionName: XXH_COMPILER_GUARD_CLANG_NEON
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_COMPILER_GUARD_CLANG_NEON(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2286
    functionDepth: 0
    functionLinenumber: 2286
    functionLinenumberEnd: 2286
    functionName: XXH_read32
    functionSourceFile: /src/haproxy/include/import/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: 2304
      start: 2300
    functionDepth: 0
    functionLinenumber: 2300
    functionLinenumberEnd: 2304
    functionName: XXH_read32
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH_read32(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:2315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2312
    functionDepth: 1
    functionLinenumber: 2312
    functionLinenumberEnd: 2317
    functionName: XXH_read32
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_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: 2367
      start: 2359
    functionDepth: 0
    functionLinenumber: 2359
    functionLinenumberEnd: 2367
    functionName: XXH_isLittleEndian
    functionSourceFile: /src/haproxy/include/import/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: 2382
      start: 2381
    functionDepth: 0
    functionLinenumber: 2381
    functionLinenumberEnd: 2382
    functionName: XXH_HAS_BUILTIN
    functionSourceFile: /src/haproxy/include/import/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: 2384
      start: 2383
    functionDepth: 0
    functionLinenumber: 2383
    functionLinenumberEnd: 2384
    functionName: XXH_HAS_BUILTIN
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_BUILTIN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2416
    functionDepth: 0
    functionLinenumber: 2416
    functionLinenumberEnd: 2417
    functionName: XXH_UNREACHABLE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2419
    functionDepth: 0
    functionLinenumber: 2419
    functionLinenumberEnd: 2420
    functionName: XXH_UNREACHABLE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2426
    functionDepth: 0
    functionLinenumber: 2426
    functionLinenumberEnd: 2427
    functionName: XXH_ASSUME
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ASSUME(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2428
    functionDepth: 0
    functionLinenumber: 2428
    functionLinenumberEnd: 2429
    functionName: XXH_ASSUME
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ASSUME(c)
  - 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: 2451
      start: 2450
    functionDepth: 0
    functionLinenumber: 2450
    functionLinenumberEnd: 2451
    functionName: XXH_rotl32
    functionSourceFile: /src/haproxy/include/import/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: 2452
      start: 2451
    functionDepth: 0
    functionLinenumber: 2451
    functionLinenumberEnd: 2452
    functionName: XXH_rotl64
    functionSourceFile: /src/haproxy/include/import/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: 2454
      start: 2453
    functionDepth: 0
    functionLinenumber: 2453
    functionLinenumberEnd: 2454
    functionName: XXH_rotl32
    functionSourceFile: /src/haproxy/include/import/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: 2455
      start: 2454
    functionDepth: 0
    functionLinenumber: 2454
    functionLinenumberEnd: 2455
    functionName: XXH_rotl64
    functionSourceFile: /src/haproxy/include/import/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: 2476
      start: 2470
    functionDepth: 0
    functionLinenumber: 2470
    functionLinenumberEnd: 2476
    functionName: XXH_swap32
    functionSourceFile: /src/haproxy/include/import/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: 2507
      start: 2500
    functionDepth: 0
    functionLinenumber: 2500
    functionLinenumberEnd: 2507
    functionName: XXH_readLE32
    functionSourceFile: /src/haproxy/include/import/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: 2516
      start: 2509
    functionDepth: 0
    functionLinenumber: 2509
    functionLinenumberEnd: 2516
    functionName: XXH_readBE32
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:2521,1
    - Dst: XXH_swap32
      Src: /src/haproxy/include/import/xxhash.h:2521,1
    - Dst: XXH_read32
      Src: /src/haproxy/include/import/xxhash.h:2521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2519
    functionDepth: 1
    functionLinenumber: 2519
    functionLinenumberEnd: 2522
    functionName: XXH_readLE32
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:2526,1
    - Dst: XXH_read32
      Src: /src/haproxy/include/import/xxhash.h:2526,1
    - Dst: XXH_read32
      Src: /src/haproxy/include/import/xxhash.h:2526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2524
    functionDepth: 1
    functionLinenumber: 2524
    functionLinenumberEnd: 2527
    functionName: XXH_readBE32
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:2534,1
    - Dst: XXH_swap32
      Src: /src/haproxy/include/import/xxhash.h:2536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - align
    argTypes:
    - void*
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2530
    functionDepth: 1
    functionLinenumber: 2530
    functionLinenumberEnd: 2538
    functionName: XXH_readLE32_align
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_swap32
    - XXH_readLE32
    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: 2545
      start: 2545
    functionDepth: 0
    functionLinenumber: 2545
    functionLinenumberEnd: 2545
    functionName: XXH_versionNumber
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:2588,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/haproxy/include/import/xxhash.h:2627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - acc
    - input
    argTypes:
    - xxh_u32
    - xxh_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2630
      start: 2585
    functionDepth: 1
    functionLinenumber: 2585
    functionLinenumberEnd: 2630
    functionName: XXH32_round
    functionSourceFile: /src/haproxy/include/import/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:
    - hash
    argTypes:
    - xxh_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2642
    functionDepth: 0
    functionLinenumber: 2642
    functionLinenumberEnd: 2650
    functionName: XXH32_avalanche
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH32_avalanche(xxh_u32 hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2652
    functionDepth: 0
    functionLinenumber: 2652
    functionLinenumberEnd: 2653
    functionName: XXH_get32bits
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_get32bits(p)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:2683,1
    - Dst: XXH32_avalanche
      Src: /src/haproxy/include/import/xxhash.h:2696,1
    - Dst: XXH32_avalanche
      Src: /src/haproxy/include/import/xxhash.h:2704,1
    - Dst: XXH32_avalanche
      Src: /src/haproxy/include/import/xxhash.h:2712,1
    - Dst: XXH32_avalanche
      Src: /src/haproxy/include/import/xxhash.h:2721,1
    - Dst: XXH32_avalanche
      Src: /src/haproxy/include/import/xxhash.h:2735,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:2737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 70
    argCount: 4
    argNames:
    - hash
    - ptr
    - len
    - align
    argTypes:
    - xxh_u32
    - xxh_u8*
    - size_t
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2669
    functionDepth: 1
    functionLinenumber: 2669
    functionLinenumberEnd: 2740
    functionName: XXH32_finalize
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    - XXH32_avalanche
    linkageType: ''
    returnType: XXH_PUREF
    signature: XXH_PUREF XXH32_finalize(xxh_u32 hash, const xxh_u8* ptr, size_t len,
      XXH_alignment align)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:2763,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2774,1
    - Dst: XXH_get32bits
      Src: /src/haproxy/include/import/xxhash.h:2774,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2775,1
    - Dst: XXH_get32bits
      Src: /src/haproxy/include/import/xxhash.h:2775,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2776,1
    - Dst: XXH_get32bits
      Src: /src/haproxy/include/import/xxhash.h:2776,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2777,1
    - Dst: XXH_get32bits
      Src: /src/haproxy/include/import/xxhash.h:2777,1
    - Dst: XXH_rotl32
      Src: /src/haproxy/include/import/xxhash.h:2780,1
    - Dst: XXH_rotl32
      Src: /src/haproxy/include/import/xxhash.h:2780,1
    - Dst: XXH_rotl32
      Src: /src/haproxy/include/import/xxhash.h:2781,1
    - Dst: XXH_rotl32
      Src: /src/haproxy/include/import/xxhash.h:2781,1
    - Dst: XXH32_finalize
      Src: /src/haproxy/include/import/xxhash.h:2788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - input
    - len
    - seed
    - align
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u32
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2789
      start: 2758
    functionDepth: 2
    functionLinenumber: 2758
    functionLinenumberEnd: 2789
    functionName: XXH32_endian_align
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_rotl32
    - XXH_ASSERT
    - XXH32_round
    - XXH32_finalize
    - XXH_get32bits
    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/haproxy/include/import/xxhash.h:2797,1
    - Dst: XXH32_update
      Src: /src/haproxy/include/import/xxhash.h:2798,1
    - Dst: XXH32_digest
      Src: /src/haproxy/include/import/xxhash.h:2799,1
    - Dst: XXH32_endian_align
      Src: /src/haproxy/include/import/xxhash.h:2803,1
    - Dst: XXH32_endian_align
      Src: /src/haproxy/include/import/xxhash.h:2806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - void*
    - size_t
    - XXH32_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2792
    functionDepth: 3
    functionLinenumber: 2792
    functionLinenumberEnd: 2808
    functionName: XXH32_hash_t
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH32_reset
    - XXH32_update
    - XXH32_endian_align
    - XXH32_digest
    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/haproxy/include/import/xxhash.h:2817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2818
      start: 2815
    functionDepth: 1
    functionLinenumber: 2815
    functionLinenumberEnd: 2818
    functionName: XXH32_state_t* XXH32_createState(void)
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:2822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - statePtr
    argTypes:
    - XXH32_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2820
    functionDepth: 1
    functionLinenumber: 2820
    functionLinenumberEnd: 2824
    functionName: XXH_errorcode::XXH32_freeState
    functionSourceFile: /src/haproxy/include/import/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: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:2829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstState
    - srcState
    argTypes:
    - XXH32_state_t*
    - XXH32_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2827
    functionDepth: 1
    functionLinenumber: 2827
    functionLinenumberEnd: 2830
    functionName: XXH32_copyState
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_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: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:2835,1
    - Dst: memset
      Src: /src/haproxy/include/import/xxhash.h:2836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - statePtr
    - seed
    argTypes:
    - XXH32_state_t*
    - XXH32_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2833
    functionDepth: 1
    functionLinenumber: 2833
    functionLinenumberEnd: 2842
    functionName: XXH_errorcode::XXH32_reset
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    - memset
    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_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:2850,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:2861,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:2867,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2869,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:2869,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2870,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:2870,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2871,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:2871,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2872,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:2872,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2882,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:2882,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2883,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:2883,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2884,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:2884,1
    - Dst: XXH32_round
      Src: /src/haproxy/include/import/xxhash.h:2885,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:2885,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:2891,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 3
    argNames:
    - state
    - input
    - len
    argTypes:
    - XXH32_state_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2846
    functionDepth: 2
    functionLinenumber: 2846
    functionLinenumberEnd: 2897
    functionName: XXH_errorcode::XXH32_update
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    - 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/haproxy/include/import/xxhash.h:2906,1
    - Dst: XXH_rotl32
      Src: /src/haproxy/include/import/xxhash.h:2907,1
    - Dst: XXH_rotl32
      Src: /src/haproxy/include/import/xxhash.h:2908,1
    - Dst: XXH_rotl32
      Src: /src/haproxy/include/import/xxhash.h:2909,1
    - Dst: XXH32_finalize
      Src: /src/haproxy/include/import/xxhash.h:2916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - XXH32_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2901
    functionDepth: 2
    functionLinenumber: 2901
    functionLinenumberEnd: 2917
    functionName: XXH32_hash_t::XXH32_digest
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_rotl32
    - XXH32_finalize
    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/haproxy/include/import/xxhash.h:2938,1
    - Dst: XXH_swap32
      Src: /src/haproxy/include/import/xxhash.h:2939,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:2940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - hash
    argTypes:
    - XXH32_canonical_t*
    - XXH32_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2936
    functionDepth: 1
    functionLinenumber: 2936
    functionLinenumberEnd: 2941
    functionName: XXH32_canonicalFromHash
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_STATIC_ASSERT
    - XXH_swap32
    - XXH_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/haproxy/include/import/xxhash.h:2945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - XXH32_canonical_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2943
    functionDepth: 1
    functionLinenumber: 2943
    functionLinenumberEnd: 2946
    functionName: XXH32_hash_t::XXH32_hashFromCanonical
    functionSourceFile: /src/haproxy/include/import/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: 2978
      start: 2975
    functionDepth: 0
    functionLinenumber: 2975
    functionLinenumberEnd: 2978
    functionName: XXH_read64
    functionSourceFile: /src/haproxy/include/import/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: 2996
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 2996
    functionName: XXH_read64
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH_read64(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:3007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3009
      start: 3004
    functionDepth: 1
    functionLinenumber: 3004
    functionLinenumberEnd: 3009
    functionName: XXH_read64
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_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: 3028
      start: 3018
    functionDepth: 0
    functionLinenumber: 3018
    functionLinenumberEnd: 3028
    functionName: XXH_swap64
    functionSourceFile: /src/haproxy/include/import/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: 3046
      start: 3035
    functionDepth: 0
    functionLinenumber: 3035
    functionLinenumberEnd: 3046
    functionName: XXH_readLE64
    functionSourceFile: /src/haproxy/include/import/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: 3059
      start: 3048
    functionDepth: 0
    functionLinenumber: 3048
    functionLinenumberEnd: 3059
    functionName: XXH_readBE64
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:3064,1
    - Dst: XXH_swap64
      Src: /src/haproxy/include/import/xxhash.h:3064,1
    - Dst: XXH_read64
      Src: /src/haproxy/include/import/xxhash.h:3064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3065
      start: 3062
    functionDepth: 1
    functionLinenumber: 3062
    functionLinenumberEnd: 3065
    functionName: XXH_readLE64
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:3069,1
    - Dst: XXH_read64
      Src: /src/haproxy/include/import/xxhash.h:3069,1
    - Dst: XXH_read64
      Src: /src/haproxy/include/import/xxhash.h:3069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3067
    functionDepth: 1
    functionLinenumber: 3067
    functionLinenumberEnd: 3070
    functionName: XXH_readBE64
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:3077,1
    - Dst: XXH_swap64
      Src: /src/haproxy/include/import/xxhash.h:3079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - align
    argTypes:
    - void*
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3080
      start: 3073
    functionDepth: 1
    functionLinenumber: 3073
    functionLinenumberEnd: 3080
    functionName: XXH_readLE64_align
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE64
    - XXH_swap64
    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/haproxy/include/import/xxhash.h:3111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - acc
    - input
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3108
    functionDepth: 1
    functionLinenumber: 3108
    functionLinenumberEnd: 3114
    functionName: XXH64_round
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:3118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - acc
    - val
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3122
      start: 3116
    functionDepth: 2
    functionLinenumber: 3116
    functionLinenumberEnd: 3122
    functionName: XXH64_mergeRound
    functionSourceFile: /src/haproxy/include/import/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:
    - hash
    argTypes:
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3133
      start: 3125
    functionDepth: 0
    functionLinenumber: 3125
    functionLinenumberEnd: 3133
    functionName: XXH64_avalanche
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH64_avalanche(xxh_u64 hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3137
      start: 3136
    functionDepth: 0
    functionLinenumber: 3136
    functionLinenumberEnd: 3137
    functionName: XXH_get64bits
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_get64bits(p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:3156,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3159,1
    - Dst: XXH_get64bits
      Src: /src/haproxy/include/import/xxhash.h:3159,1
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:3162,1
    - Dst: XXH_get32bits
      Src: /src/haproxy/include/import/xxhash.h:3166,1
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:3168,1
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:3173,1
    - Dst: XXH64_avalanche
      Src: /src/haproxy/include/import/xxhash.h:3176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - hash
    - ptr
    - len
    - align
    argTypes:
    - xxh_u64
    - xxh_u8*
    - size_t
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3177
      start: 3153
    functionDepth: 2
    functionLinenumber: 3153
    functionLinenumberEnd: 3177
    functionName: XXH64_finalize
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_rotl64
    - XXH64_round
    - XXH_ASSERT
    - XXH64_avalanche
    - XXH_get32bits
    - XXH_get64bits
    linkageType: ''
    returnType: XXH_PUREF
    signature: XXH_PUREF XXH64_finalize(xxh_u64 hash, const xxh_u8* ptr, size_t len,
      XXH_alignment align)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:3201,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3212,1
    - Dst: XXH_get64bits
      Src: /src/haproxy/include/import/xxhash.h:3212,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3213,1
    - Dst: XXH_get64bits
      Src: /src/haproxy/include/import/xxhash.h:3213,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3214,1
    - Dst: XXH_get64bits
      Src: /src/haproxy/include/import/xxhash.h:3214,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3215,1
    - Dst: XXH_get64bits
      Src: /src/haproxy/include/import/xxhash.h:3215,1
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:3218,1
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:3218,1
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:3218,1
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:3218,1
    - Dst: XXH64_mergeRound
      Src: /src/haproxy/include/import/xxhash.h:3219,1
    - Dst: XXH64_mergeRound
      Src: /src/haproxy/include/import/xxhash.h:3220,1
    - Dst: XXH64_mergeRound
      Src: /src/haproxy/include/import/xxhash.h:3221,1
    - Dst: XXH64_mergeRound
      Src: /src/haproxy/include/import/xxhash.h:3222,1
    - Dst: XXH64_finalize
      Src: /src/haproxy/include/import/xxhash.h:3230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - input
    - len
    - seed
    - align
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u64
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3231
      start: 3197
    functionDepth: 3
    functionLinenumber: 3197
    functionLinenumberEnd: 3231
    functionName: XXH64_endian_align
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_rotl64
    - XXH64_round
    - XXH_ASSERT
    - XXH64_mergeRound
    - XXH64_finalize
    - XXH_get64bits
    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/haproxy/include/import/xxhash.h:3240,1
    - Dst: XXH64_update
      Src: /src/haproxy/include/import/xxhash.h:3241,1
    - Dst: XXH64_digest
      Src: /src/haproxy/include/import/xxhash.h:3242,1
    - Dst: XXH64_endian_align
      Src: /src/haproxy/include/import/xxhash.h:3246,1
    - Dst: XXH64_endian_align
      Src: /src/haproxy/include/import/xxhash.h:3249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3235
    functionDepth: 4
    functionLinenumber: 3235
    functionLinenumberEnd: 3252
    functionName: XXH64_hash_t
    functionSourceFile: /src/haproxy/include/import/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 (XXH_NOESCAPE const void* input,
      size_t len, XXH64_hash_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_malloc
      Src: /src/haproxy/include/import/xxhash.h:3259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3260
      start: 3257
    functionDepth: 1
    functionLinenumber: 3257
    functionLinenumberEnd: 3260
    functionName: XXH64_state_t* XXH64_createState(void)
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:3264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - statePtr
    argTypes:
    - XXH64_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3266
      start: 3262
    functionDepth: 1
    functionLinenumber: 3262
    functionLinenumberEnd: 3266
    functionName: XXH_errorcode::XXH64_freeState
    functionSourceFile: /src/haproxy/include/import/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: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:3271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - XXH64_state_t* dstState
    - srcState
    argTypes:
    - XXH_NOESCAPE
    - XXH64_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3272
      start: 3269
    functionDepth: 1
    functionLinenumber: 3269
    functionLinenumberEnd: 3272
    functionName: XXH64_copyState
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_copyState(XXH_NOESCAPE XXH64_state_t* dstState,
      const XXH64_state_t* srcState)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:3277,1
    - Dst: memset
      Src: /src/haproxy/include/import/xxhash.h:3278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - XXH64_state_t* statePtr
    - seed
    argTypes:
    - XXH_NOESCAPE
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3284
      start: 3275
    functionDepth: 1
    functionLinenumber: 3275
    functionLinenumberEnd: 3284
    functionName: XXH_errorcode::XXH64_reset
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    - memset
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH_NOESCAPE XXH64_state_t*
      statePtr, XXH64_hash_t seed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:3291,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:3301,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:3307,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3308,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:3308,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3309,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:3309,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3310,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:3310,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3311,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:3311,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3320,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:3320,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3321,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:3321,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3322,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:3322,1
    - Dst: XXH64_round
      Src: /src/haproxy/include/import/xxhash.h:3323,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:3323,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:3329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 3
    argNames:
    - XXH64_state_t* state
    - input
    - len
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3335
      start: 3287
    functionDepth: 2
    functionLinenumber: 3287
    functionLinenumberEnd: 3335
    functionName: XXH_errorcode::XXH64_update
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    - XXH_readLE64
    - XXH64_round
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH64_update (XXH_NOESCAPE XXH64_state_t* state, XXH_NOESCAPE const void* input,
      size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:3344,1
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:3344,1
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:3344,1
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:3344,1
    - Dst: XXH64_mergeRound
      Src: /src/haproxy/include/import/xxhash.h:3345,1
    - Dst: XXH64_mergeRound
      Src: /src/haproxy/include/import/xxhash.h:3346,1
    - Dst: XXH64_mergeRound
      Src: /src/haproxy/include/import/xxhash.h:3347,1
    - Dst: XXH64_mergeRound
      Src: /src/haproxy/include/import/xxhash.h:3348,1
    - Dst: XXH64_finalize
      Src: /src/haproxy/include/import/xxhash.h:3355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - XXH64_state_t* state
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3356
      start: 3339
    functionDepth: 3
    functionLinenumber: 3339
    functionLinenumberEnd: 3356
    functionName: XXH64_hash_t::XXH64_digest
    functionSourceFile: /src/haproxy/include/import/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(XXH_NOESCAPE const XXH64_state_t*
      state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:3364,1
    - Dst: XXH_swap64
      Src: /src/haproxy/include/import/xxhash.h:3365,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:3366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - XXH64_canonical_t* dst
    - hash
    argTypes:
    - XXH_NOESCAPE
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3367
      start: 3362
    functionDepth: 1
    functionLinenumber: 3362
    functionLinenumberEnd: 3367
    functionName: XXH64_canonicalFromHash
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_STATIC_ASSERT
    - XXH_swap64
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_canonicalFromHash(XXH_NOESCAPE XXH64_canonical_t*
      dst, XXH64_hash_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readBE64
      Src: /src/haproxy/include/import/xxhash.h:3372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - XXH64_canonical_t* src
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3370
    functionDepth: 1
    functionLinenumber: 3370
    functionLinenumberEnd: 3373
    functionName: XXH64_hash_t::XXH64_hashFromCanonical
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readBE64
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(XXH_NOESCAPE 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: 3411
      start: 3410
    functionDepth: 0
    functionLinenumber: 3410
    functionLinenumberEnd: 3411
    functionName: XXH_likely
    functionSourceFile: /src/haproxy/include/import/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: 3412
      start: 3411
    functionDepth: 0
    functionLinenumber: 3411
    functionLinenumberEnd: 3412
    functionName: XXH_unlikely
    functionSourceFile: /src/haproxy/include/import/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: 3414
      start: 3413
    functionDepth: 0
    functionLinenumber: 3413
    functionLinenumberEnd: 3414
    functionName: XXH_likely
    functionSourceFile: /src/haproxy/include/import/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: 3415
      start: 3414
    functionDepth: 0
    functionLinenumber: 3414
    functionLinenumberEnd: 3415
    functionName: XXH_unlikely
    functionSourceFile: /src/haproxy/include/import/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: 3420
      start: 3419
    functionDepth: 0
    functionLinenumber: 3419
    functionLinenumberEnd: 3420
    functionName: XXH_HAS_INCLUDE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_INCLUDE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3421
    functionDepth: 0
    functionLinenumber: 3421
    functionLinenumberEnd: 3422
    functionName: XXH_HAS_INCLUDE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_INCLUDE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3719
      start: 3716
    functionDepth: 0
    functionLinenumber: 3716
    functionLinenumberEnd: 3719
    functionName: XXH_vld1q_u64
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vld1q_u64(void const* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreinterpretq_u64_u8
      Src: /src/haproxy/include/import/xxhash.h:3723,1
    - Dst: vld1q_u8
      Src: /src/haproxy/include/import/xxhash.h:3723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3721
    functionDepth: 0
    functionLinenumber: 3721
    functionLinenumberEnd: 3724
    functionName: XXH_vld1q_u64
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - vreinterpretq_u64_u8
    - vld1q_u8
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vld1q_u64(void const* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - acc
    - lhs
    - rhs
    argTypes:
    - uint64x2_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3742
      start: 3736
    functionDepth: 0
    functionLinenumber: 3736
    functionLinenumberEnd: 3742
    functionName: XXH_vmlal_low_u32
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vmlal_low_u32(uint64x2_t acc, uint32x4_t lhs,
      uint32x4_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmlal_high_u32
      Src: /src/haproxy/include/import/xxhash.h:3747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - acc
    - lhs
    - rhs
    argTypes:
    - uint64x2_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3748
      start: 3743
    functionDepth: 0
    functionLinenumber: 3743
    functionLinenumberEnd: 3748
    functionName: XXH_vmlal_high_u32
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - vmlal_high_u32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vmlal_high_u32(uint64x2_t acc, uint32x4_t lhs,
      uint32x4_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmlal_u32
      Src: /src/haproxy/include/import/xxhash.h:3754,1
    - Dst: vget_low_u32
      Src: /src/haproxy/include/import/xxhash.h:3754,1
    - Dst: vget_low_u32
      Src: /src/haproxy/include/import/xxhash.h:3754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - acc
    - lhs
    - rhs
    argTypes:
    - uint64x2_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3755
      start: 3751
    functionDepth: 0
    functionLinenumber: 3751
    functionLinenumberEnd: 3755
    functionName: XXH_vmlal_low_u32
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - vget_low_u32
    - vmlal_u32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vmlal_low_u32(uint64x2_t acc, uint32x4_t lhs,
      uint32x4_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmlal_u32
      Src: /src/haproxy/include/import/xxhash.h:3761,1
    - Dst: vget_high_u32
      Src: /src/haproxy/include/import/xxhash.h:3761,1
    - Dst: vget_high_u32
      Src: /src/haproxy/include/import/xxhash.h:3761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - acc
    - lhs
    - rhs
    argTypes:
    - uint64x2_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3762
      start: 3758
    functionDepth: 0
    functionLinenumber: 3758
    functionLinenumberEnd: 3762
    functionName: XXH_vmlal_high_u32
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - vmlal_u32
    - vget_high_u32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vmlal_high_u32(uint64x2_t acc, uint32x4_t lhs,
      uint32x4_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_perm
      Src: /src/haproxy/include/import/xxhash.h:3881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - xxh_u64x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3882
      start: 3877
    functionDepth: 0
    functionLinenumber: 3877
    functionLinenumberEnd: 3882
    functionName: XXH_vec_revb
    functionSourceFile: /src/haproxy/include/import/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: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:3892,1
    - Dst: XXH_vec_revb
      Src: /src/haproxy/include/import/xxhash.h:3894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3889
    functionDepth: 1
    functionLinenumber: 3889
    functionLinenumberEnd: 3897
    functionName: XXH_vec_loadu
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_vec_revb
    - XXH_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: 3922
      start: 3917
    functionDepth: 0
    functionLinenumber: 3917
    functionLinenumberEnd: 3922
    functionName: XXH_vec_mulo
    functionSourceFile: /src/haproxy/include/import/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: 3928
      start: 3923
    functionDepth: 0
    functionLinenumber: 3923
    functionLinenumberEnd: 3928
    functionName: XXH_vec_mule
    functionSourceFile: /src/haproxy/include/import/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: 5
    argNames:
    - (
    - acc
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3933
    functionDepth: 0
    functionLinenumber: 3933
    functionLinenumberEnd: 3944
    functionName: ACCRND
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACCRND(acc, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3950
      start: 3949
    functionDepth: 0
    functionLinenumber: 3949
    functionLinenumberEnd: 3950
    functionName: XXH_PREFETCH
    functionSourceFile: /src/haproxy/include/import/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: 3953
      start: 3952
    functionDepth: 0
    functionLinenumber: 3952
    functionLinenumberEnd: 3953
    functionName: XXH_PREFETCH
    functionSourceFile: /src/haproxy/include/import/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: 3956
      start: 3955
    functionDepth: 0
    functionLinenumber: 3955
    functionLinenumberEnd: 3956
    functionName: XXH_PREFETCH
    functionSourceFile: /src/haproxy/include/import/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: 3960
      start: 3959
    functionDepth: 0
    functionLinenumber: 3959
    functionLinenumberEnd: 3960
    functionName: XXH_PREFETCH
    functionSourceFile: /src/haproxy/include/import/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: 4018
      start: 4014
    functionDepth: 0
    functionLinenumber: 4014
    functionLinenumberEnd: 4018
    functionName: XXH_mult32to64
    functionSourceFile: /src/haproxy/include/import/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: 4021
      start: 4020
    functionDepth: 0
    functionLinenumber: 4020
    functionLinenumberEnd: 4021
    functionName: XXH_mult32to64
    functionSourceFile: /src/haproxy/include/import/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: 4030
      start: 4029
    functionDepth: 0
    functionLinenumber: 4029
    functionLinenumberEnd: 4030
    functionName: XXH_mult32to64
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_mult32to64(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _umul128
      Src: /src/haproxy/include/import/xxhash.h:4082,1
    - Dst: __umulh
      Src: /src/haproxy/include/import/xxhash.h:4100,1
    - Dst: XXH_mult32to64
      Src: /src/haproxy/include/import/xxhash.h:4148,1
    - Dst: XXH_mult32to64
      Src: /src/haproxy/include/import/xxhash.h:4149,1
    - Dst: XXH_mult32to64
      Src: /src/haproxy/include/import/xxhash.h:4150,1
    - Dst: XXH_mult32to64
      Src: /src/haproxy/include/import/xxhash.h:4151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4163
      start: 4041
    functionDepth: 1
    functionLinenumber: 4041
    functionLinenumberEnd: 4163
    functionName: XXH_mult64to128
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_mult32to64
    - __umulh
    - _umul128
    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/haproxy/include/import/xxhash.h:4178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4180
      start: 4175
    functionDepth: 2
    functionLinenumber: 4175
    functionLinenumberEnd: 4180
    functionName: XXH3_mul128_fold64
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:4185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v64
    - shift
    argTypes:
    - xxh_u64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4187
      start: 4183
    functionDepth: 1
    functionLinenumber: 4183
    functionLinenumberEnd: 4187
    functionName: XXH_xorshift64
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:4195,1
    - Dst: XXH_xorshift64
      Src: /src/haproxy/include/import/xxhash.h:4197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h64
    argTypes:
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4199
      start: 4193
    functionDepth: 2
    functionLinenumber: 4193
    functionLinenumberEnd: 4199
    functionName: XXH3_avalanche
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:4209,1
    - Dst: XXH_rotl64
      Src: /src/haproxy/include/import/xxhash.h:4209,1
    - Dst: XXH_xorshift64
      Src: /src/haproxy/include/import/xxhash.h:4213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - h64
    - len
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4214
      start: 4206
    functionDepth: 2
    functionLinenumber: 4206
    functionLinenumberEnd: 4214
    functionName: XXH3_rrmxmx
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_xorshift64
    - XXH_rotl64
    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/haproxy/include/import/xxhash.h:4253,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4254,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4255,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:4266,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:4266,1
    - Dst: XXH64_avalanche
      Src: /src/haproxy/include/import/xxhash.h:4268,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: 4270
      start: 4250
    functionDepth: 1
    functionLinenumber: 4250
    functionLinenumberEnd: 4270
    functionName: XXH3_len_1to3_64b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_avalanche
    - XXH_ASSERT
    - XXH_readLE32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE 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/haproxy/include/import/xxhash.h:4275,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4276,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4277,1
    - Dst: XXH_swap32
      Src: /src/haproxy/include/import/xxhash.h:4278,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:4279,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:4280,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4281,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4281,1
    - Dst: XXH3_rrmxmx
      Src: /src/haproxy/include/import/xxhash.h:4284,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: 4286
      start: 4272
    functionDepth: 3
    functionLinenumber: 4272
    functionLinenumberEnd: 4286
    functionName: XXH3_len_4to8_64b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_rrmxmx
    - XXH_readLE64
    - XXH_readLE32
    - XXH_ASSERT
    - XXH_swap32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE 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/haproxy/include/import/xxhash.h:4291,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4292,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4293,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4294,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4294,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4295,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4295,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4296,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4297,1
    - Dst: XXH_swap64
      Src: /src/haproxy/include/import/xxhash.h:4299,1
    - Dst: XXH3_mul128_fold64
      Src: /src/haproxy/include/import/xxhash.h:4300,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:4301,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: 4303
      start: 4288
    functionDepth: 3
    functionLinenumber: 4288
    functionLinenumberEnd: 4303
    functionName: XXH3_len_9to16_64b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE64
    - XXH3_mul128_fold64
    - XXH_ASSERT
    - XXH_swap64
    - XXH3_avalanche
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE 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/haproxy/include/import/xxhash.h:4308,1
    - Dst: XXH_likely
      Src: /src/haproxy/include/import/xxhash.h:4309,1
    - Dst: XXH3_len_9to16_64b
      Src: /src/haproxy/include/import/xxhash.h:4309,1
    - Dst: XXH_likely
      Src: /src/haproxy/include/import/xxhash.h:4310,1
    - Dst: XXH3_len_4to8_64b
      Src: /src/haproxy/include/import/xxhash.h:4310,1
    - Dst: XXH3_len_1to3_64b
      Src: /src/haproxy/include/import/xxhash.h:4311,1
    - Dst: XXH64_avalanche
      Src: /src/haproxy/include/import/xxhash.h:4312,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4312,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4312,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: 4314
      start: 4305
    functionDepth: 4
    functionLinenumber: 4305
    functionLinenumberEnd: 4314
    functionName: XXH3_len_0to16_64b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_likely
    - XXH_readLE64
    - XXH3_len_9to16_64b
    - XXH_ASSERT
    - XXH64_avalanche
    - XXH3_len_1to3_64b
    - XXH3_len_4to8_64b
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE 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/haproxy/include/import/xxhash.h:4363,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4365,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4366,1
    - Dst: XXH3_mul128_fold64
      Src: /src/haproxy/include/import/xxhash.h:4367,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4368,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:4369,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: 4372
      start: 4342
    functionDepth: 3
    functionLinenumber: 4342
    functionLinenumberEnd: 4372
    functionName: XXH3_mix16B
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_mul128_fold64
    - XXH_COMPILER_GUARD
    - 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/haproxy/include/import/xxhash.h:4380,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4381,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4388,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4389,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4395,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4396,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4398,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4399,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4401,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4402,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4404,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4405,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:4407,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    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: 4409
      start: 4375
    functionDepth: 4
    functionLinenumber: 4375
    functionLinenumberEnd: 4409
    functionName: XXH3_len_17to128_64b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_mix16B
    - XXH_ASSERT
    - XXH3_avalanche
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_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/haproxy/include/import/xxhash.h:4418,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4419,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4428,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4430,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4433,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4434,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:4435,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/haproxy/include/import/xxhash.h:4465,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:4466,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:4468,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    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: 4470
      start: 4413
    functionDepth: 4
    functionLinenumber: 4413
    functionLinenumberEnd: 4470
    functionName: XXH3_len_129to240_64b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_mix16B
    - XXH_COMPILER_GUARD
    - XXH_ASSERT
    - XXH3_avalanche
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH3_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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4523
      start: 4506
    functionDepth: 0
    functionLinenumber: 4506
    functionLinenumberEnd: 4523
    functionName: XXH3_ACCUMULATE_TEMPLATE
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH3_ACCUMULATE_TEMPLATE(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_swap64
      Src: /src/haproxy/include/import/xxhash.h:4527,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:4528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - v64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4529
      start: 4525
    functionDepth: 1
    functionLinenumber: 4525
    functionLinenumberEnd: 4529
    functionName: XXH_writeLE64
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_swap64
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_writeLE64(void* dst, xxh_u64 v64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4582,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4583,1
    - Dst: _mm512_loadu_si512
      Src: /src/haproxy/include/import/xxhash.h:4587,1
    - Dst: _mm512_loadu_si512
      Src: /src/haproxy/include/import/xxhash.h:4589,1
    - Dst: _mm512_xor_si512
      Src: /src/haproxy/include/import/xxhash.h:4591,1
    - Dst: _mm512_srli_epi64
      Src: /src/haproxy/include/import/xxhash.h:4593,1
    - Dst: _mm512_mul_epu32
      Src: /src/haproxy/include/import/xxhash.h:4595,1
    - Dst: _mm512_shuffle_epi32
      Src: /src/haproxy/include/import/xxhash.h:4597,1
    - Dst: _MM_SHUFFLE
      Src: /src/haproxy/include/import/xxhash.h:4597,1
    - Dst: _mm512_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4598,1
    - Dst: _mm512_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4602
      start: 4576
    functionDepth: 1
    functionLinenumber: 4576
    functionLinenumberEnd: 4602
    functionName: XXH3_accumulate_512_avx512
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm512_srli_epi64
    - _mm512_loadu_si512
    - XXH_STATIC_ASSERT
    - _mm512_xor_si512
    - _mm512_mul_epu32
    - _MM_SHUFFLE
    - XXH_ASSERT
    - _mm512_shuffle_epi32
    - _mm512_add_epi64
    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/haproxy/include/import/xxhash.h:4629,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4630,1
    - Dst: _mm512_set1_epi32
      Src: /src/haproxy/include/import/xxhash.h:4632,1
    - Dst: _mm512_srli_epi64
      Src: /src/haproxy/include/import/xxhash.h:4636,1
    - Dst: _mm512_loadu_si512
      Src: /src/haproxy/include/import/xxhash.h:4638,1
    - Dst: _mm512_ternarylogic_epi32
      Src: /src/haproxy/include/import/xxhash.h:4639,1
    - Dst: _mm512_srli_epi64
      Src: /src/haproxy/include/import/xxhash.h:4642,1
    - Dst: _mm512_mul_epu32
      Src: /src/haproxy/include/import/xxhash.h:4643,1
    - Dst: _mm512_mul_epu32
      Src: /src/haproxy/include/import/xxhash.h:4644,1
    - Dst: _mm512_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4645,1
    - Dst: _mm512_slli_epi64
      Src: /src/haproxy/include/import/xxhash.h:4645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4647
      start: 4626
    functionDepth: 1
    functionLinenumber: 4626
    functionLinenumberEnd: 4647
    functionName: XXH3_scrambleAcc_avx512
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm512_srli_epi64
    - _mm512_loadu_si512
    - _mm512_slli_epi64
    - XXH_STATIC_ASSERT
    - _mm512_set1_epi32
    - _mm512_mul_epu32
    - _mm512_ternarylogic_epi32
    - XXH_ASSERT
    - _mm512_add_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/haproxy/include/import/xxhash.h:4652,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4653,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4654,1
    - Dst: _mm512_set1_epi64
      Src: /src/haproxy/include/import/xxhash.h:4657,1
    - Dst: _mm512_mask_sub_epi64
      Src: /src/haproxy/include/import/xxhash.h:4658,1
    - Dst: _mm512_set1_epi8
      Src: /src/haproxy/include/import/xxhash.h:4658,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4663,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4664,1
    - Dst: _mm512_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4666,1
    - Dst: _mm512_load_si512
      Src: /src/haproxy/include/import/xxhash.h:4666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4668
      start: 4649
    functionDepth: 1
    functionLinenumber: 4649
    functionLinenumberEnd: 4668
    functionName: XXH3_initCustomSecret_avx512
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm512_load_si512
    - _mm512_add_epi64
    - _mm512_mask_sub_epi64
    - XXH_STATIC_ASSERT
    - XXH_ASSERT
    - _mm512_set1_epi64
    - _mm512_set1_epi8
    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/haproxy/include/import/xxhash.h:4684,1
    - Dst: _mm256_loadu_si256
      Src: /src/haproxy/include/import/xxhash.h:4696,1
    - Dst: _mm256_loadu_si256
      Src: /src/haproxy/include/import/xxhash.h:4698,1
    - Dst: _mm256_xor_si256
      Src: /src/haproxy/include/import/xxhash.h:4700,1
    - Dst: _mm256_srli_epi64
      Src: /src/haproxy/include/import/xxhash.h:4702,1
    - Dst: _mm256_mul_epu32
      Src: /src/haproxy/include/import/xxhash.h:4704,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/haproxy/include/import/xxhash.h:4706,1
    - Dst: _MM_SHUFFLE
      Src: /src/haproxy/include/import/xxhash.h:4706,1
    - Dst: _mm256_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4707,1
    - Dst: _mm256_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4709,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: 4711
      start: 4679
    functionDepth: 1
    functionLinenumber: 4679
    functionLinenumberEnd: 4711
    functionName: XXH3_accumulate_512_avx2
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm256_loadu_si256
    - _MM_SHUFFLE
    - _mm256_mul_epu32
    - _mm256_xor_si256
    - _mm256_add_epi64
    - XXH_ASSERT
    - _mm256_shuffle_epi32
    - _mm256_srli_epi64
    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/haproxy/include/import/xxhash.h:4717,1
    - Dst: _mm256_set1_epi32
      Src: /src/haproxy/include/import/xxhash.h:4722,1
    - Dst: _mm256_srli_epi64
      Src: /src/haproxy/include/import/xxhash.h:4728,1
    - Dst: _mm256_xor_si256
      Src: /src/haproxy/include/import/xxhash.h:4729,1
    - Dst: _mm256_loadu_si256
      Src: /src/haproxy/include/import/xxhash.h:4731,1
    - Dst: _mm256_xor_si256
      Src: /src/haproxy/include/import/xxhash.h:4732,1
    - Dst: _mm256_srli_epi64
      Src: /src/haproxy/include/import/xxhash.h:4735,1
    - Dst: _mm256_mul_epu32
      Src: /src/haproxy/include/import/xxhash.h:4736,1
    - Dst: _mm256_mul_epu32
      Src: /src/haproxy/include/import/xxhash.h:4737,1
    - Dst: _mm256_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4738,1
    - Dst: _mm256_slli_epi64
      Src: /src/haproxy/include/import/xxhash.h:4738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4741
      start: 4714
    functionDepth: 1
    functionLinenumber: 4714
    functionLinenumberEnd: 4741
    functionName: XXH3_scrambleAcc_avx2
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm256_set1_epi32
    - _mm256_loadu_si256
    - _mm256_mul_epu32
    - _mm256_xor_si256
    - _mm256_add_epi64
    - XXH_ASSERT
    - _mm256_slli_epi64
    - _mm256_srli_epi64
    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/haproxy/include/import/xxhash.h:4745,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4746,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4747,1
    - Dst: XXH_PREFETCH
      Src: /src/haproxy/include/import/xxhash.h:4749,1
    - Dst: _mm256_set_epi64x
      Src: /src/haproxy/include/import/xxhash.h:4750,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/haproxy/include/import/xxhash.h:4761,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4763,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4764,1
    - Dst: _mm256_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4767,1
    - Dst: _mm256_load_si256
      Src: /src/haproxy/include/import/xxhash.h:4767,1
    - Dst: _mm256_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4768,1
    - Dst: _mm256_load_si256
      Src: /src/haproxy/include/import/xxhash.h:4768,1
    - Dst: _mm256_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4769,1
    - Dst: _mm256_load_si256
      Src: /src/haproxy/include/import/xxhash.h:4769,1
    - Dst: _mm256_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4770,1
    - Dst: _mm256_load_si256
      Src: /src/haproxy/include/import/xxhash.h:4770,1
    - Dst: _mm256_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4771,1
    - Dst: _mm256_load_si256
      Src: /src/haproxy/include/import/xxhash.h:4771,1
    - Dst: _mm256_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4772,1
    - Dst: _mm256_load_si256
      Src: /src/haproxy/include/import/xxhash.h:4772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4774
      start: 4743
    functionDepth: 1
    functionLinenumber: 4743
    functionLinenumberEnd: 4774
    functionName: XXH3_initCustomSecret_avx2
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_COMPILER_GUARD
    - _mm256_load_si256
    - XXH_STATIC_ASSERT
    - _mm256_add_epi64
    - _mm256_set_epi64x
    - XXH_ASSERT
    - XXH_PREFETCH
    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/haproxy/include/import/xxhash.h:4791,1
    - Dst: _mm_loadu_si128
      Src: /src/haproxy/include/import/xxhash.h:4803,1
    - Dst: _mm_loadu_si128
      Src: /src/haproxy/include/import/xxhash.h:4805,1
    - Dst: _mm_xor_si128
      Src: /src/haproxy/include/import/xxhash.h:4807,1
    - Dst: _mm_shuffle_epi32
      Src: /src/haproxy/include/import/xxhash.h:4809,1
    - Dst: _MM_SHUFFLE
      Src: /src/haproxy/include/import/xxhash.h:4809,1
    - Dst: _mm_mul_epu32
      Src: /src/haproxy/include/import/xxhash.h:4811,1
    - Dst: _mm_shuffle_epi32
      Src: /src/haproxy/include/import/xxhash.h:4813,1
    - Dst: _MM_SHUFFLE
      Src: /src/haproxy/include/import/xxhash.h:4813,1
    - Dst: _mm_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4814,1
    - Dst: _mm_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4816,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: 4818
      start: 4785
    functionDepth: 1
    functionLinenumber: 4785
    functionLinenumberEnd: 4818
    functionName: XXH3_accumulate_512_sse2
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm_add_epi64
    - _mm_shuffle_epi32
    - _MM_SHUFFLE
    - _mm_mul_epu32
    - _mm_xor_si128
    - XXH_ASSERT
    - _mm_loadu_si128
    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/haproxy/include/import/xxhash.h:4824,1
    - Dst: _mm_set1_epi32
      Src: /src/haproxy/include/import/xxhash.h:4829,1
    - Dst: _mm_srli_epi64
      Src: /src/haproxy/include/import/xxhash.h:4835,1
    - Dst: _mm_xor_si128
      Src: /src/haproxy/include/import/xxhash.h:4836,1
    - Dst: _mm_loadu_si128
      Src: /src/haproxy/include/import/xxhash.h:4838,1
    - Dst: _mm_xor_si128
      Src: /src/haproxy/include/import/xxhash.h:4839,1
    - Dst: _mm_shuffle_epi32
      Src: /src/haproxy/include/import/xxhash.h:4842,1
    - Dst: _MM_SHUFFLE
      Src: /src/haproxy/include/import/xxhash.h:4842,1
    - Dst: _mm_mul_epu32
      Src: /src/haproxy/include/import/xxhash.h:4843,1
    - Dst: _mm_mul_epu32
      Src: /src/haproxy/include/import/xxhash.h:4844,1
    - Dst: _mm_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4845,1
    - Dst: _mm_slli_epi64
      Src: /src/haproxy/include/import/xxhash.h:4845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4848
      start: 4821
    functionDepth: 1
    functionLinenumber: 4821
    functionLinenumberEnd: 4848
    functionName: XXH3_scrambleAcc_sse2
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - _mm_slli_epi64
    - _mm_add_epi64
    - _mm_shuffle_epi32
    - _MM_SHUFFLE
    - _mm_set1_epi32
    - _mm_srli_epi64
    - _mm_xor_si128
    - XXH_ASSERT
    - _mm_mul_epu32
    - _mm_loadu_si128
    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/haproxy/include/import/xxhash.h:4852,1
    - Dst: XXH_ALIGN
      Src: /src/haproxy/include/import/xxhash.h:4858,1
    - Dst: _mm_load_si128
      Src: /src/haproxy/include/import/xxhash.h:4859,1
    - Dst: _mm_set_epi64x
      Src: /src/haproxy/include/import/xxhash.h:4861,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/haproxy/include/import/xxhash.h:4873,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4875,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4876,1
    - Dst: _mm_add_epi64
      Src: /src/haproxy/include/import/xxhash.h:4879,1
    - Dst: _mm_load_si128
      Src: /src/haproxy/include/import/xxhash.h:4879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4881
      start: 4850
    functionDepth: 1
    functionLinenumber: 4850
    functionLinenumberEnd: 4881
    functionName: XXH3_initCustomSecret_sse2
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_COMPILER_GUARD
    - XXH_STATIC_ASSERT
    - _mm_add_epi64
    - XXH_ALIGN
    - _mm_set_epi64x
    - _mm_load_si128
    - XXH_ASSERT
    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/haproxy/include/import/xxhash.h:4925,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:4926,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/haproxy/include/import/xxhash.h:4952,1
    - Dst: XXH3_scalarRound
      Src: /src/haproxy/include/import/xxhash.h:4956,1
    - Dst: XXH_vld1q_u64
      Src: /src/haproxy/include/import/xxhash.h:4962,1
    - Dst: XXH_vld1q_u64
      Src: /src/haproxy/include/import/xxhash.h:4963,1
    - Dst: XXH_vld1q_u64
      Src: /src/haproxy/include/import/xxhash.h:4965,1
    - Dst: XXH_vld1q_u64
      Src: /src/haproxy/include/import/xxhash.h:4966,1
    - Dst: vextq_u64
      Src: /src/haproxy/include/import/xxhash.h:4968,1
    - Dst: vextq_u64
      Src: /src/haproxy/include/import/xxhash.h:4969,1
    - Dst: veorq_u64
      Src: /src/haproxy/include/import/xxhash.h:4971,1
    - Dst: veorq_u64
      Src: /src/haproxy/include/import/xxhash.h:4972,1
    - Dst: vuzpq_u32
      Src: /src/haproxy/include/import/xxhash.h:4987,1
    - Dst: vreinterpretq_u32_u64
      Src: /src/haproxy/include/import/xxhash.h:4988,1
    - Dst: vreinterpretq_u32_u64
      Src: /src/haproxy/include/import/xxhash.h:4989,1
    - Dst: XXH_vmlal_low_u32
      Src: /src/haproxy/include/import/xxhash.h:5002,1
    - Dst: XXH_vmlal_high_u32
      Src: /src/haproxy/include/import/xxhash.h:5003,1
    - Dst: XXH_COMPILER_GUARD_CLANG_NEON
      Src: /src/haproxy/include/import/xxhash.h:5016,1
    - Dst: XXH_COMPILER_GUARD_CLANG_NEON
      Src: /src/haproxy/include/import/xxhash.h:5017,1
    - Dst: vaddq_u64
      Src: /src/haproxy/include/import/xxhash.h:5019,1
    - Dst: vaddq_u64
      Src: /src/haproxy/include/import/xxhash.h:5020,1
    - Dst: XXH_vld1q_u64
      Src: /src/haproxy/include/import/xxhash.h:5025,1
    - Dst: XXH_vld1q_u64
      Src: /src/haproxy/include/import/xxhash.h:5027,1
    - Dst: vextq_u64
      Src: /src/haproxy/include/import/xxhash.h:5029,1
    - Dst: veorq_u64
      Src: /src/haproxy/include/import/xxhash.h:5031,1
    - Dst: vmovn_u64
      Src: /src/haproxy/include/import/xxhash.h:5034,1
    - Dst: vshrn_n_u64
      Src: /src/haproxy/include/import/xxhash.h:5036,1
    - Dst: vmlal_u32
      Src: /src/haproxy/include/import/xxhash.h:5038,1
    - Dst: XXH_COMPILER_GUARD_CLANG_NEON
      Src: /src/haproxy/include/import/xxhash.h:5040,1
    - Dst: vaddq_u64
      Src: /src/haproxy/include/import/xxhash.h:5042,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5045
      start: 4920
    functionDepth: 1
    functionLinenumber: 4920
    functionLinenumberEnd: 5045
    functionName: XXH3_accumulate_512_neon
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_COMPILER_GUARD
    - vmlal_u32
    - vshrn_n_u64
    - XXH_STATIC_ASSERT
    - XXH_vmlal_low_u32
    - XXH3_scalarRound
    - vreinterpretq_u32_u64
    - veorq_u64
    - XXH_ASSERT
    - vextq_u64
    - vuzpq_u32
    - XXH_vmlal_high_u32
    - vaddq_u64
    - vmovn_u64
    - XXH_vld1q_u64
    - XXH_COMPILER_GUARD_CLANG_NEON
    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/haproxy/include/import/xxhash.h:5051,1
    - Dst: vdup_n_u32
      Src: /src/haproxy/include/import/xxhash.h:5060,1
    - Dst: vreinterpretq_u32_u64
      Src: /src/haproxy/include/import/xxhash.h:5062,1
    - Dst: vdupq_n_u64
      Src: /src/haproxy/include/import/xxhash.h:5062,1
    - Dst: XXH3_scalarScrambleRound
      Src: /src/haproxy/include/import/xxhash.h:5067,1
    - Dst: vshrq_n_u64
      Src: /src/haproxy/include/import/xxhash.h:5072,1
    - Dst: veorq_u64
      Src: /src/haproxy/include/import/xxhash.h:5073,1
    - Dst: XXH_vld1q_u64
      Src: /src/haproxy/include/import/xxhash.h:5076,1
    - Dst: veorq_u64
      Src: /src/haproxy/include/import/xxhash.h:5077,1
    - Dst: vmulq_u32
      Src: /src/haproxy/include/import/xxhash.h:5094,1
    - Dst: vreinterpretq_u32_u64
      Src: /src/haproxy/include/import/xxhash.h:5094,1
    - Dst: vmovn_u64
      Src: /src/haproxy/include/import/xxhash.h:5096,1
    - Dst: vmlal_u32
      Src: /src/haproxy/include/import/xxhash.h:5098,1
    - Dst: vreinterpretq_u64_u32
      Src: /src/haproxy/include/import/xxhash.h:5098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5102
      start: 5048
    functionDepth: 1
    functionLinenumber: 5048
    functionLinenumberEnd: 5102
    functionName: XXH3_scrambleAcc_neon
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - vmulq_u32
    - XXH3_scalarScrambleRound
    - vmlal_u32
    - vreinterpretq_u64_u32
    - vdup_n_u32
    - vreinterpretq_u32_u64
    - vshrq_n_u64
    - vdupq_n_u64
    - veorq_u64
    - XXH_ASSERT
    - vmovn_u64
    - XXH_vld1q_u64
    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/haproxy/include/import/xxhash.h:5120,1
    - Dst: XXH_vec_loadu
      Src: /src/haproxy/include/import/xxhash.h:5122,1
    - Dst: vec_rl
      Src: /src/haproxy/include/import/xxhash.h:5125,1
    - Dst: XXH_vec_mulo
      Src: /src/haproxy/include/import/xxhash.h:5127,1
    - Dst: vec_permi
      Src: /src/haproxy/include/import/xxhash.h:5134,1
    - Dst: vec_xxpermdi
      Src: /src/haproxy/include/import/xxhash.h:5136,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: 5140
      start: 5107
    functionDepth: 2
    functionLinenumber: 5107
    functionLinenumberEnd: 5140
    functionName: XXH3_accumulate_512_vsx
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - vec_permi
    - XXH_vec_mulo
    - vec_xxpermdi
    - vec_rl
    - XXH_vec_loadu
    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/haproxy/include/import/xxhash.h:5146,1
    - Dst: XXH_vec_loadu
      Src: /src/haproxy/include/import/xxhash.h:5161,1
    - Dst: XXH_vec_mule
      Src: /src/haproxy/include/import/xxhash.h:5166,1
    - Dst: XXH_vec_mulo
      Src: /src/haproxy/include/import/xxhash.h:5168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5171
      start: 5143
    functionDepth: 2
    functionLinenumber: 5143
    functionLinenumberEnd: 5171
    functionName: XXH3_scrambleAcc_vsx
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_vec_mule
    - XXH_ASSERT
    - XXH_vec_loadu
    - XXH_vec_mulo
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_vsx(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sveor_n_u64_z
      Src: /src/haproxy/include/import/xxhash.h:5185,1
    - Dst: svptrue_b64
      Src: /src/haproxy/include/import/xxhash.h:5185,1
    - Dst: svindex_u64
      Src: /src/haproxy/include/import/xxhash.h:5185,1
    - Dst: svcntd
      Src: /src/haproxy/include/import/xxhash.h:5186,1
    - Dst: svptrue_pat_b64
      Src: /src/haproxy/include/import/xxhash.h:5188,1
    - Dst: svld1_u64
      Src: /src/haproxy/include/import/xxhash.h:5189,1
    - Dst: ACCRND
      Src: /src/haproxy/include/import/xxhash.h:5190,1
    - Dst: svst1_u64
      Src: /src/haproxy/include/import/xxhash.h:5191,1
    - Dst: svptrue_pat_b64
      Src: /src/haproxy/include/import/xxhash.h:5193,1
    - Dst: svld1_u64
      Src: /src/haproxy/include/import/xxhash.h:5194,1
    - Dst: svld1_u64
      Src: /src/haproxy/include/import/xxhash.h:5195,1
    - Dst: svld1_u64
      Src: /src/haproxy/include/import/xxhash.h:5196,1
    - Dst: svld1_u64
      Src: /src/haproxy/include/import/xxhash.h:5197,1
    - Dst: ACCRND
      Src: /src/haproxy/include/import/xxhash.h:5198,1
    - Dst: ACCRND
      Src: /src/haproxy/include/import/xxhash.h:5199,1
    - Dst: ACCRND
      Src: /src/haproxy/include/import/xxhash.h:5200,1
    - Dst: ACCRND
      Src: /src/haproxy/include/import/xxhash.h:5201,1
    - Dst: svst1_u64
      Src: /src/haproxy/include/import/xxhash.h:5202,1
    - Dst: svst1_u64
      Src: /src/haproxy/include/import/xxhash.h:5203,1
    - Dst: svst1_u64
      Src: /src/haproxy/include/import/xxhash.h:5204,1
    - Dst: svst1_u64
      Src: /src/haproxy/include/import/xxhash.h:5205,1
    - Dst: svptrue_pat_b64
      Src: /src/haproxy/include/import/xxhash.h:5207,1
    - Dst: svld1_u64
      Src: /src/haproxy/include/import/xxhash.h:5208,1
    - Dst: svld1_u64
      Src: /src/haproxy/include/import/xxhash.h:5209,1
    - Dst: ACCRND
      Src: /src/haproxy/include/import/xxhash.h:5210,1
    - Dst: ACCRND
      Src: /src/haproxy/include/import/xxhash.h:5211,1
    - Dst: svst1_u64
      Src: /src/haproxy/include/import/xxhash.h:5212,1
    - Dst: svst1_u64
      Src: /src/haproxy/include/import/xxhash.h:5213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5215
      start: 5177
    functionDepth: 1
    functionLinenumber: 5177
    functionLinenumberEnd: 5215
    functionName: XXH3_accumulate_512_sve
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - svld1_u64
    - sveor_n_u64_z
    - svptrue_pat_b64
    - svindex_u64
    - svst1_u64
    - svcntd
    - ACCRND
    - svptrue_b64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_sve( void* XXH_RESTRICT acc,\n
      \                  const void* XXH_RESTRICT input,\n                   const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - lhs
    - rhs
    - acc
    argTypes:
    - xxh_u64
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5308
      start: 5301
    functionDepth: 0
    functionLinenumber: 5301
    functionLinenumberEnd: 5308
    functionName: XXH_mult32to64_add64
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_mult32to64_add64(xxh_u64 lhs, xxh_u64 rhs, xxh_u64
      acc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_mult32to64
      Src: /src/haproxy/include/import/xxhash.h:5313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - acc
    argTypes:
    - xxh_u64
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5314
      start: 5310
    functionDepth: 1
    functionLinenumber: 5310
    functionLinenumberEnd: 5314
    functionName: XXH_mult32to64_add64
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_mult32to64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_mult32to64_add64(xxh_u64 lhs, xxh_u64 rhs, xxh_u64
      acc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5333,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5334,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:5336,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:5337,1
    - Dst: XXH_mult32to64_add64
      Src: /src/haproxy/include/import/xxhash.h:5339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    - lane
    argTypes:
    - void*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5341
      start: 5324
    functionDepth: 1
    functionLinenumber: 5324
    functionLinenumberEnd: 5341
    functionName: XXH3_scalarRound
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 1
    functionsReached:
    - XXH_ASSERT
    - XXH_readLE64
    - XXH_mult32to64_add64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_scalarRound(void* XXH_RESTRICT acc,\n                 void
      const* XXH_RESTRICT input,\n                 void const* XXH_RESTRICT secret,\n
      \                size_t lane)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_scalarRound
      Src: /src/haproxy/include/import/xxhash.h:5361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5363
      start: 5347
    functionDepth: 2
    functionLinenumber: 5347
    functionLinenumberEnd: 5363
    functionName: XXH3_accumulate_512_scalar
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_scalarRound
    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_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5380,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5381,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:5383,1
    - Dst: XXH_xorshift64
      Src: /src/haproxy/include/import/xxhash.h:5385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - lane
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5390
      start: 5373
    functionDepth: 2
    functionLinenumber: 5373
    functionLinenumberEnd: 5390
    functionName: XXH3_scalarScrambleRound
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 1
    functionsReached:
    - XXH_ASSERT
    - XXH_readLE64
    - XXH_xorshift64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_scalarScrambleRound(void* XXH_RESTRICT acc,\n
      \                        void const* XXH_RESTRICT secret,\n                         size_t
      lane)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_scalarScrambleRound
      Src: /src/haproxy/include/import/xxhash.h:5401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5403
      start: 5396
    functionDepth: 3
    functionLinenumber: 5396
    functionLinenumberEnd: 5403
    functionName: XXH3_scrambleAcc_scalar
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_scalarScrambleRound
    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/haproxy/include/import/xxhash.h:5414,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/haproxy/include/import/xxhash.h:5449,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:5460,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:5461,1
    - Dst: XXH_writeLE64
      Src: /src/haproxy/include/import/xxhash.h:5462,1
    - Dst: XXH_writeLE64
      Src: /src/haproxy/include/import/xxhash.h:5463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5465
      start: 5405
    functionDepth: 2
    functionLinenumber: 5405
    functionLinenumberEnd: 5465
    functionName: XXH3_initCustomSecret_scalar
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_STATIC_ASSERT
    - XXH_COMPILER_GUARD
    - XXH_readLE64
    - XXH_writeLE64
    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/haproxy/include/import/xxhash.h:5564,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:5565,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:5566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - xxh_u64*
    - xxh_u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5567
      start: 5561
    functionDepth: 3
    functionLinenumber: 5561
    functionLinenumberEnd: 5567
    functionName: XXH3_mix2Accs
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE64
    - XXH3_mul128_fold64
    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/haproxy/include/import/xxhash.h:5576,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/haproxy/include/import/xxhash.h:5589,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:5593,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: 5594
      start: 5569
    functionDepth: 4
    functionLinenumber: 5569
    functionLinenumberEnd: 5594
    functionName: XXH3_mergeAccs
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:5605,1
    - Dst: XXH3_hashLong_internal_loop
      Src: /src/haproxy/include/import/xxhash.h:5607,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5610,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5613,1
    - Dst: XXH3_mergeAccs
      Src: /src/haproxy/include/import/xxhash.h:5614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - f_acc
    - f_scramble
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - XXH3_f_accumulate
    - XXH3_f_scrambleAcc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5615
      start: 5599
    functionDepth: 5
    functionLinenumber: 5599
    functionLinenumberEnd: 5615
    functionName: XXH64_hash_t::XXH3_hashLong_64b_internal
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_STATIC_ASSERT
    - XXH_ALIGN
    - XXH3_hashLong_internal_loop
    - XXH_ASSERT
    - XXH3_mergeAccs
    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 f_acc,\n
      \                          XXH3_f_scrambleAcc f_scramble)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_internal
      Src: /src/haproxy/include/import/xxhash.h:5629,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: 5630
      start: 5624
    functionDepth: 6
    functionLinenumber: 5624
    functionLinenumberEnd: 5630
    functionName: XXH64_hash_t::XXH3_hashLong_64b_withSecret
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_hashLong_64b_internal
    linkageType: ''
    returnType: XXH3_WITH_SECRET_INLINE
    signature: "XXH3_WITH_SECRET_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: XXH3_hashLong_64b_internal
      Src: /src/haproxy/include/import/xxhash.h:5643,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: 5644
      start: 5638
    functionDepth: 0
    functionLinenumber: 5638
    functionLinenumberEnd: 5644
    functionName: XXH3_hashLong_64b_default
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_hashLong_64b_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH3_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/haproxy/include/import/xxhash.h:5666,1
    - Dst: XXH_ALIGN
      Src: /src/haproxy/include/import/xxhash.h:5670,1
    - Dst: f_initSec
      Src: /src/haproxy/include/import/xxhash.h:5671,1
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_internal
      Src: /src/haproxy/include/import/xxhash.h:5672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - input
    - len
    - seed
    - f_acc
    - f_scramble
    - f_initSec
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - XXH3_f_accumulate
    - XXH3_f_scrambleAcc
    - XXH3_f_initCustomSecret
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5675
      start: 5657
    functionDepth: 6
    functionLinenumber: 5657
    functionLinenumberEnd: 5675
    functionName: XXH64_hash_t::XXH3_hashLong_64b_withSeed_internal
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - f_initSec
    - XXH_ALIGN
    - 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 f_acc,\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/haproxy/include/import/xxhash.h:5685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - seed
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - xxh_u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5687
      start: 5680
    functionDepth: 7
    functionLinenumber: 5680
    functionLinenumberEnd: 5687
    functionName: XXH64_hash_t::XXH3_hashLong_64b_withSeed
    functionSourceFile: /src/haproxy/include/import/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*
      XXH_RESTRICT input, size_t len,\n                           XXH64_hash_t seed,
      const xxh_u8* XXH_RESTRICT secret, size_t secretLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5698,1
    - Dst: XXH3_len_0to16_64b
      Src: /src/haproxy/include/import/xxhash.h:5707,1
    - Dst: XXH3_len_17to128_64b
      Src: /src/haproxy/include/import/xxhash.h:5709,1
    - Dst: XXH3_len_129to240_64b
      Src: /src/haproxy/include/import/xxhash.h:5711,1
    - Dst: f_hashLong
      Src: /src/haproxy/include/import/xxhash.h:5712,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: 5713
      start: 5693
    functionDepth: 5
    functionLinenumber: 5693
    functionLinenumberEnd: 5713
    functionName: XXH64_hash_t::XXH3_64bits_internal
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_len_0to16_64b
    - XXH3_len_17to128_64b
    - XXH3_len_129to240_64b
    - XXH_ASSERT
    - f_hashLong
    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/haproxy/include/import/xxhash.h:5721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - length
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5722
      start: 5719
    functionDepth: 6
    functionLinenumber: 5719
    functionLinenumberEnd: 5722
    functionName: XXH64_hash_t::XXH3_64bits
    functionSourceFile: /src/haproxy/include/import/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(XXH_NOESCAPE const void* input,
      size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_64bits_internal
      Src: /src/haproxy/include/import/xxhash.h:5728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - length
    - secret
    - secretSize
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5729
      start: 5725
    functionDepth: 6
    functionLinenumber: 5725
    functionLinenumberEnd: 5729
    functionName: XXH64_hash_t::XXH3_64bits_withSecret
    functionSourceFile: /src/haproxy/include/import/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(XXH_NOESCAPE const void* input, size_t length, XXH_NOESCAPE
      const void* secret, size_t secretSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_64bits_internal
      Src: /src/haproxy/include/import/xxhash.h:5735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - length
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5736
      start: 5732
    functionDepth: 6
    functionLinenumber: 5732
    functionLinenumberEnd: 5736
    functionName: XXH64_hash_t::XXH3_64bits_withSeed
    functionSourceFile: /src/haproxy/include/import/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(XXH_NOESCAPE const void* input, size_t length, XXH64_hash_t
      seed)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_64bits_internal
      Src: /src/haproxy/include/import/xxhash.h:5742,1
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_withSecret
      Src: /src/haproxy/include/import/xxhash.h:5743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - input
    - length
    - secret
    - secretSize
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5744
      start: 5738
    functionDepth: 7
    functionLinenumber: 5738
    functionLinenumberEnd: 5744
    functionName: XXH64_hash_t::XXH3_64bits_withSecretandSeed
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_hashLong_64b_withSecret
    - XXH64_hash_t::XXH3_64bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH64_hash_t

      XXH3_64bits_withSecretandSeed(XXH_NOESCAPE const void* input, size_t length,
      XXH_NOESCAPE const void* secret, size_t secretSize, XXH64_hash_t seed)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5774,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5775,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5776,1
    - Dst: XXH_malloc
      Src: /src/haproxy/include/import/xxhash.h:5778,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - align
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5798
      start: 5772
    functionDepth: 1
    functionLinenumber: 5772
    functionLinenumberEnd: 5798
    functionName: XXH_alignedMalloc
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    - XXH_malloc
    linkageType: ''
    returnType: XXH_MALLOCF
    signature: XXH_MALLOCF * XXH_alignedMalloc(size_t s, size_t align)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_free
      Src: /src/haproxy/include/import/xxhash.h:5811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5813
      start: 5803
    functionDepth: 1
    functionLinenumber: 5803
    functionLinenumberEnd: 5813
    functionName: XXH_alignedFree
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:5823,1
    - Dst: XXH3_INITSTATE
      Src: /src/haproxy/include/import/xxhash.h:5825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5827
      start: 5821
    functionDepth: 2
    functionLinenumber: 5821
    functionLinenumberEnd: 5827
    functionName: XXH3_state_t* XXH3_createState(void)
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_alignedMalloc
    - XXH3_INITSTATE
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH3_state_t* XXH3_createState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_alignedFree
      Src: /src/haproxy/include/import/xxhash.h:5839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - statePtr
    argTypes:
    - XXH3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5841
      start: 5837
    functionDepth: 2
    functionLinenumber: 5837
    functionLinenumberEnd: 5841
    functionName: XXH_errorcode::XXH3_freeState
    functionSourceFile: /src/haproxy/include/import/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: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:5847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - XXH3_state_t* dst_state
    - XXH3_state_t* src_state
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5848
      start: 5844
    functionDepth: 1
    functionLinenumber: 5844
    functionLinenumberEnd: 5848
    functionName: XXH3_copyState
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH3_copyState(XXH_NOESCAPE XXH3_state_t* dst_state,
      XXH_NOESCAPE const XXH3_state_t* src_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5857,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5858,1
    - Dst: memset
      Src: /src/haproxy/include/import/xxhash.h:5860,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:5872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 4
    argNames:
    - statePtr
    - seed
    - secret
    - secretSize
    argTypes:
    - XXH3_state_t*
    - XXH64_hash_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5875
      start: 5850
    functionDepth: 1
    functionLinenumber: 5850
    functionLinenumberEnd: 5875
    functionName: XXH3_reset_internal
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    - memset
    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/haproxy/include/import/xxhash.h:5882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - XXH3_state_t* statePtr
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5884
      start: 5878
    functionDepth: 2
    functionLinenumber: 5878
    functionLinenumberEnd: 5884
    functionName: XXH_errorcode::XXH3_64bits_reset
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_reset_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

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

      XXH3_64bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE
      const void* secret, size_t secretSize)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_reset
      Src: /src/haproxy/include/import/xxhash.h:5902,1
    - Dst: XXH3_initCustomSecret
      Src: /src/haproxy/include/import/xxhash.h:5904,1
    - Dst: XXH3_reset_internal
      Src: /src/haproxy/include/import/xxhash.h:5905,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - XXH3_state_t* statePtr
    - seed
    argTypes:
    - XXH_NOESCAPE
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5907
      start: 5898
    functionDepth: 3
    functionLinenumber: 5898
    functionLinenumberEnd: 5907
    functionName: XXH_errorcode::XXH3_64bits_reset_withSeed
    functionSourceFile: /src/haproxy/include/import/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(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t
      seed)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_reset_internal
      Src: /src/haproxy/include/import/xxhash.h:5916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - XXH3_state_t* statePtr
    - secret
    - secretSize
    - seed64
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5919
      start: 5910
    functionDepth: 2
    functionLinenumber: 5910
    functionLinenumberEnd: 5919
    functionName: XXH_errorcode::XXH3_64bits_reset_withSecretandSeed
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_reset_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_64bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE
      const void* secret, size_t secretSize, XXH64_hash_t seed64)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: f_acc
      Src: /src/haproxy/include/import/xxhash.h:5954,1
    - Dst: f_scramble
      Src: /src/haproxy/include/import/xxhash.h:5955,1
    - Dst: f_acc
      Src: /src/haproxy/include/import/xxhash.h:5966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 9
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT nbStripesSoFarPtr
    - nbStripesPerBlock
    - XXH_RESTRICT
    - nbStripes
    - XXH_RESTRICT
    - secretLimit
    - f_acc
    - f_scramble
    argTypes:
    - xxh_u64*
    - size_t*
    - size_t
    - xxh_u8*
    - size_t
    - xxh_u8*
    - size_t
    - XXH3_f_accumulate
    - XXH3_f_scrambleAcc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5972
      start: 5938
    functionDepth: 0
    functionLinenumber: 5938
    functionLinenumberEnd: 5972
    functionName: XXH3_consumeStripes
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - f_acc
    - f_scramble
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE *\nXXH3_consumeStripes(xxh_u64* XXH_RESTRICT acc,\n
      \                   size_t* XXH_RESTRICT nbStripesSoFarPtr, size_t nbStripesPerBlock,\n
      \                   const xxh_u8* XXH_RESTRICT input, size_t nbStripes,\n                    const
      xxh_u8* XXH_RESTRICT secret, size_t secretLimit,\n                    XXH3_f_accumulate
      f_acc,\n                    XXH3_f_scrambleAcc f_scramble)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_update
      Src: /src/haproxy/include/import/xxhash.h:6065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - XXH3_state_t* state
    - input
    - len
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6067
      start: 6062
    functionDepth: 0
    functionLinenumber: 6062
    functionLinenumberEnd: 6067
    functionName: XXH_errorcode::XXH3_64bits_update
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_update
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_64bits_update(XXH_NOESCAPE XXH3_state_t* state, XXH_NOESCAPE const void*
      input, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:6082,1
    - Dst: XXH3_consumeStripes
      Src: /src/haproxy/include/import/xxhash.h:6087,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6096,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:6097,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:6098,1
    - Dst: XXH3_accumulate_512
      Src: /src/haproxy/include/import/xxhash.h:6102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - acc
    - state
    - secret
    argTypes:
    - XXH64_hash_t*
    - XXH3_state_t*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6105
      start: 6070
    functionDepth: 1
    functionLinenumber: 6070
    functionLinenumberEnd: 6105
    functionName: XXH3_digest_long
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_accumulate_512
    - XXH3_consumeStripes
    - XXH_ASSERT
    - XXH_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/haproxy/include/import/xxhash.h:6112,1
    - Dst: XXH3_digest_long
      Src: /src/haproxy/include/import/xxhash.h:6113,1
    - Dst: XXH3_mergeAccs
      Src: /src/haproxy/include/import/xxhash.h:6114,1
    - Dst: XXH64_hash_t::XXH3_64bits_withSeed
      Src: /src/haproxy/include/import/xxhash.h:6120,1
    - Dst: XXH64_hash_t::XXH3_64bits_withSecret
      Src: /src/haproxy/include/import/xxhash.h:6121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - XXH3_state_t* state
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6123
      start: 6108
    functionDepth: 7
    functionLinenumber: 6108
    functionLinenumberEnd: 6123
    functionName: XXH64_hash_t::XXH3_64bits_digest
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_64bits_withSeed
    - XXH3_digest_long
    - XXH_ALIGN
    - XXH3_mergeAccs
    - XXH64_hash_t::XXH3_64bits_withSecret
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_digest (XXH_NOESCAPE const
      XXH3_state_t* state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6148,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6149,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6150,1
    - Dst: XXH_rotl32
      Src: /src/haproxy/include/import/xxhash.h:6161,1
    - Dst: XXH_swap32
      Src: /src/haproxy/include/import/xxhash.h:6161,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:6162,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:6162,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:6163,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:6163,1
    - Dst: XXH64_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6167,1
    - Dst: XXH64_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6168,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: 6171
      start: 6144
    functionDepth: 1
    functionLinenumber: 6144
    functionLinenumberEnd: 6171
    functionName: XXH3_len_1to3_128b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_rotl32
    - XXH_readLE32
    - XXH64_avalanche
    - XXH_swap32
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE 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/haproxy/include/import/xxhash.h:6176,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6177,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6178,1
    - Dst: XXH_swap32
      Src: /src/haproxy/include/import/xxhash.h:6179,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:6180,1
    - Dst: XXH_readLE32
      Src: /src/haproxy/include/import/xxhash.h:6181,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6183,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6183,1
    - Dst: XXH_mult64to128
      Src: /src/haproxy/include/import/xxhash.h:6187,1
    - Dst: XXH_xorshift64
      Src: /src/haproxy/include/import/xxhash.h:6192,1
    - Dst: XXH_xorshift64
      Src: /src/haproxy/include/import/xxhash.h:6194,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6195,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: 6198
      start: 6173
    functionDepth: 3
    functionLinenumber: 6173
    functionLinenumberEnd: 6198
    functionName: XXH3_len_4to8_128b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE64
    - XXH_readLE32
    - XXH_ASSERT
    - XXH_swap32
    - XXH_xorshift64
    - XXH3_avalanche
    - XXH_mult64to128
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE 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/haproxy/include/import/xxhash.h:6203,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6204,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6205,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6206,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6206,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6207,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6207,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6208,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6209,1
    - Dst: XXH_mult64to128
      Src: /src/haproxy/include/import/xxhash.h:6210,1
    - Dst: XXH_mult32to64
      Src: /src/haproxy/include/import/xxhash.h:6231,1
    - Dst: XXH_mult32to64
      Src: /src/haproxy/include/import/xxhash.h:6257,1
    - Dst: XXH_swap64
      Src: /src/haproxy/include/import/xxhash.h:6260,1
    - Dst: XXH_mult64to128
      Src: /src/haproxy/include/import/xxhash.h:6263,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6266,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6267,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: 6270
      start: 6200
    functionDepth: 3
    functionLinenumber: 6200
    functionLinenumberEnd: 6270
    functionName: XXH3_len_9to16_128b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE64
    - XXH_mult32to64
    - XXH_ASSERT
    - XXH_swap64
    - XXH3_avalanche
    - XXH_mult64to128
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE 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/haproxy/include/import/xxhash.h:6278,1
    - Dst: XXH3_len_9to16_128b
      Src: /src/haproxy/include/import/xxhash.h:6279,1
    - Dst: XXH3_len_4to8_128b
      Src: /src/haproxy/include/import/xxhash.h:6280,1
    - Dst: XXH3_len_1to3_128b
      Src: /src/haproxy/include/import/xxhash.h:6281,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6283,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6283,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6284,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6284,1
    - Dst: XXH64_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6285,1
    - Dst: XXH64_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6286,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: 6289
      start: 6275
    functionDepth: 4
    functionLinenumber: 6275
    functionLinenumberEnd: 6289
    functionName: XXH3_len_0to16_128b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_len_1to3_128b
    - XXH_readLE64
    - XXH3_len_9to16_128b
    - XXH3_len_4to8_128b
    - XXH_ASSERT
    - XXH64_avalanche
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE 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/haproxy/include/import/xxhash.h:6298,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6299,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6299,1
    - Dst: XXH3_mix16B
      Src: /src/haproxy/include/import/xxhash.h:6300,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6301,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6301,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: 6303
      start: 6294
    functionDepth: 4
    functionLinenumber: 6294
    functionLinenumberEnd: 6303
    functionName: XXH128_hash_t::XXH128_mix32B
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:6311,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6312,1
    - Dst: XXH128_mix32B
      Src: /src/haproxy/include/import/xxhash.h:6323,1
    - Dst: XXH128_mix32B
      Src: /src/haproxy/include/import/xxhash.h:6330,1
    - Dst: XXH128_mix32B
      Src: /src/haproxy/include/import/xxhash.h:6332,1
    - Dst: XXH128_mix32B
      Src: /src/haproxy/include/import/xxhash.h:6334,1
    - Dst: XXH128_mix32B
      Src: /src/haproxy/include/import/xxhash.h:6336,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6343,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    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: 6348
      start: 6306
    functionDepth: 3
    functionLinenumber: 6306
    functionLinenumberEnd: 6348
    functionName: XXH3_len_17to128_128b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_mix32B
    - XXH_ASSERT
    - XXH3_avalanche
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_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/haproxy/include/import/xxhash.h:6355,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6356,1
    - Dst: XXH128_mix32B
      Src: /src/haproxy/include/import/xxhash.h:6369,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6375,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6376,1
    - Dst: XXH128_mix32B
      Src: /src/haproxy/include/import/xxhash.h:6383,1
    - Dst: XXH128_mix32B
      Src: /src/haproxy/include/import/xxhash.h:6390,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6401,1
    - Dst: XXH3_avalanche
      Src: /src/haproxy/include/import/xxhash.h:6402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    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: 6406
      start: 6350
    functionDepth: 3
    functionLinenumber: 6350
    functionLinenumberEnd: 6406
    functionName: XXH3_len_129to240_128b
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_mix32B
    - XXH_ASSERT
    - XXH3_avalanche
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH3_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/haproxy/include/import/xxhash.h:6414,1
    - Dst: XXH3_hashLong_internal_loop
      Src: /src/haproxy/include/import/xxhash.h:6416,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6419,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6420,1
    - Dst: XXH3_mergeAccs
      Src: /src/haproxy/include/import/xxhash.h:6422,1
    - Dst: XXH3_mergeAccs
      Src: /src/haproxy/include/import/xxhash.h:6425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - f_acc
    - f_scramble
    argTypes:
    - void*
    - size_t
    - xxh_u8*
    - size_t
    - XXH3_f_accumulate
    - XXH3_f_scrambleAcc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6431
      start: 6408
    functionDepth: 5
    functionLinenumber: 6408
    functionLinenumberEnd: 6431
    functionName: XXH128_hash_t::XXH3_hashLong_128b_internal
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_STATIC_ASSERT
    - XXH_ALIGN
    - XXH3_hashLong_internal_loop
    - XXH_ASSERT
    - XXH3_mergeAccs
    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
      f_acc,\n                            XXH3_f_scrambleAcc f_scramble)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_hashLong_128b_internal
      Src: /src/haproxy/include/import/xxhash.h:6442,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: 6444
      start: 6436
    functionDepth: 0
    functionLinenumber: 6436
    functionLinenumberEnd: 6444
    functionName: XXH3_hashLong_128b_default
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_hashLong_128b_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH3_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/haproxy/include/import/xxhash.h:6459,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: 6461
      start: 6453
    functionDepth: 6
    functionLinenumber: 6453
    functionLinenumberEnd: 6461
    functionName: XXH128_hash_t::XXH3_hashLong_128b_withSecret
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_hashLong_128b_internal
    linkageType: ''
    returnType: XXH3_WITH_SECRET_INLINE
    signature: "XXH3_WITH_SECRET_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/haproxy/include/import/xxhash.h:6471,1
    - Dst: XXH_ALIGN
      Src: /src/haproxy/include/import/xxhash.h:6474,1
    - Dst: f_initSec
      Src: /src/haproxy/include/import/xxhash.h:6475,1
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_internal
      Src: /src/haproxy/include/import/xxhash.h:6476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - f_acc
    - f_scramble
    - f_initSec
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - XXH3_f_accumulate
    - XXH3_f_scrambleAcc
    - XXH3_f_initCustomSecret
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6479
      start: 6463
    functionDepth: 6
    functionLinenumber: 6463
    functionLinenumberEnd: 6479
    functionName: XXH128_hash_t::XXH3_hashLong_128b_withSeed_internal
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - f_initSec
    - XXH128_hash_t::XXH3_hashLong_128b_internal
    - XXH_ALIGN
    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 f_acc,\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/haproxy/include/import/xxhash.h:6489,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: 6491
      start: 6484
    functionDepth: 7
    functionLinenumber: 6484
    functionLinenumberEnd: 6491
    functionName: XXH128_hash_t::XXH3_hashLong_128b_withSeed
    functionSourceFile: /src/haproxy/include/import/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/haproxy/include/import/xxhash.h:6501,1
    - Dst: XXH3_len_0to16_128b
      Src: /src/haproxy/include/import/xxhash.h:6509,1
    - Dst: XXH3_len_17to128_128b
      Src: /src/haproxy/include/import/xxhash.h:6511,1
    - Dst: XXH3_len_129to240_128b
      Src: /src/haproxy/include/import/xxhash.h:6513,1
    - Dst: f_hl128
      Src: /src/haproxy/include/import/xxhash.h:6514,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: 6515
      start: 6496
    functionDepth: 5
    functionLinenumber: 6496
    functionLinenumberEnd: 6515
    functionName: XXH128_hash_t::XXH3_128bits_internal
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - f_hl128
    - XXH3_len_0to16_128b
    - XXH3_len_129to240_128b
    - XXH_ASSERT
    - XXH3_len_17to128_128b
    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/haproxy/include/import/xxhash.h:6523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6526
      start: 6521
    functionDepth: 6
    functionLinenumber: 6521
    functionLinenumberEnd: 6526
    functionName: XXH128_hash_t::XXH3_128bits
    functionSourceFile: /src/haproxy/include/import/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(XXH_NOESCAPE const void*
      input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_internal
      Src: /src/haproxy/include/import/xxhash.h:6532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - secretSize
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6535
      start: 6529
    functionDepth: 6
    functionLinenumber: 6529
    functionLinenumberEnd: 6535
    functionName: XXH128_hash_t::XXH3_128bits_withSecret
    functionSourceFile: /src/haproxy/include/import/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(XXH_NOESCAPE const void* input, size_t len, XXH_NOESCAPE
      const void* secret, size_t secretSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_internal
      Src: /src/haproxy/include/import/xxhash.h:6541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6544
      start: 6538
    functionDepth: 6
    functionLinenumber: 6538
    functionLinenumberEnd: 6544
    functionName: XXH128_hash_t::XXH3_128bits_withSeed
    functionSourceFile: /src/haproxy/include/import/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(XXH_NOESCAPE const void* input, size_t len, XXH64_hash_t
      seed)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_internal
      Src: /src/haproxy/include/import/xxhash.h:6551,1
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_withSecret
      Src: /src/haproxy/include/import/xxhash.h:6552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - input
    - len
    - secret
    - secretSize
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6553
      start: 6547
    functionDepth: 7
    functionLinenumber: 6547
    functionLinenumberEnd: 6553
    functionName: XXH128_hash_t::XXH3_128bits_withSecretandSeed
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_hashLong_128b_withSecret
    - XXH128_hash_t::XXH3_128bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH3_128bits_withSecretandSeed(XXH_NOESCAPE const void* input, size_t len, XXH_NOESCAPE
      const void* secret, size_t secretSize, XXH64_hash_t seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_withSeed
      Src: /src/haproxy/include/import/xxhash.h:6559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6560
      start: 6556
    functionDepth: 7
    functionLinenumber: 6556
    functionLinenumberEnd: 6560
    functionName: XXH128_hash_t::XXH128
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_128bits_withSeed
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH128(XXH_NOESCAPE const void* input, size_t len, XXH64_hash_t seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_reset
      Src: /src/haproxy/include/import/xxhash.h:6574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - XXH3_state_t* statePtr
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6575
      start: 6571
    functionDepth: 3
    functionLinenumber: 6571
    functionLinenumberEnd: 6575
    functionName: XXH_errorcode::XXH3_128bits_reset
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_64bits_reset
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_reset(XXH_NOESCAPE XXH3_state_t* statePtr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_reset_withSecret
      Src: /src/haproxy/include/import/xxhash.h:6581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - XXH3_state_t* statePtr
    - secret
    - secretSize
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6582
      start: 6578
    functionDepth: 3
    functionLinenumber: 6578
    functionLinenumberEnd: 6582
    functionName: XXH_errorcode::XXH3_128bits_reset_withSecret
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_64bits_reset_withSecret
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE
      const void* secret, size_t secretSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_reset_withSeed
      Src: /src/haproxy/include/import/xxhash.h:6588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - XXH3_state_t* statePtr
    - seed
    argTypes:
    - XXH_NOESCAPE
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6589
      start: 6585
    functionDepth: 4
    functionLinenumber: 6585
    functionLinenumberEnd: 6589
    functionName: XXH_errorcode::XXH3_128bits_reset_withSeed
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_64bits_reset_withSeed
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_reset_withSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t
      seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_reset_withSecretandSeed
      Src: /src/haproxy/include/import/xxhash.h:6595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - XXH3_state_t* statePtr
    - secret
    - secretSize
    - seed
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6596
      start: 6592
    functionDepth: 3
    functionLinenumber: 6592
    functionLinenumberEnd: 6596
    functionName: XXH_errorcode::XXH3_128bits_reset_withSecretandSeed
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_64bits_reset_withSecretandSeed
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE
      const void* secret, size_t secretSize, XXH64_hash_t seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_update
      Src: /src/haproxy/include/import/xxhash.h:6602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - XXH3_state_t* state
    - input
    - len
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6603
      start: 6599
    functionDepth: 1
    functionLinenumber: 6599
    functionLinenumberEnd: 6603
    functionName: XXH_errorcode::XXH3_128bits_update
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_64bits_update
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_update(XXH_NOESCAPE XXH3_state_t* state, XXH_NOESCAPE const void*
      input, size_t len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/haproxy/include/import/xxhash.h:6610,1
    - Dst: XXH3_digest_long
      Src: /src/haproxy/include/import/xxhash.h:6611,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6612,1
    - Dst: XXH3_mergeAccs
      Src: /src/haproxy/include/import/xxhash.h:6614,1
    - Dst: XXH3_mergeAccs
      Src: /src/haproxy/include/import/xxhash.h:6617,1
    - Dst: XXH128_hash_t::XXH3_128bits_withSeed
      Src: /src/haproxy/include/import/xxhash.h:6626,1
    - Dst: XXH128_hash_t::XXH3_128bits_withSecret
      Src: /src/haproxy/include/import/xxhash.h:6627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - XXH3_state_t* state
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6629
      start: 6606
    functionDepth: 7
    functionLinenumber: 6606
    functionLinenumberEnd: 6629
    functionName: XXH128_hash_t::XXH3_128bits_digest
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_digest_long
    - XXH128_hash_t::XXH3_128bits_withSeed
    - XXH_ALIGN
    - XXH128_hash_t::XXH3_128bits_withSecret
    - XXH_ASSERT
    - XXH3_mergeAccs
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_hash_t XXH3_128bits_digest (XXH_NOESCAPE const
      XXH3_state_t* state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/haproxy/include/import/xxhash.h:6640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - XXH128_hash_t
    - XXH128_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6641
      start: 6637
    functionDepth: 0
    functionLinenumber: 6637
    functionLinenumberEnd: 6641
    functionName: XXH128_isEqual
    functionSourceFile: /src/haproxy/include/import/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:
    - XXH_NOESCAPE*
    - XXH_NOESCAPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6656
      start: 6648
    functionDepth: 0
    functionLinenumber: 6648
    functionLinenumberEnd: 6656
    functionName: XXH128_cmp
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_cmp(XXH_NOESCAPE const void* h128_1, XXH_NOESCAPE
      const void* h128_2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6664,1
    - Dst: XXH_swap64
      Src: /src/haproxy/include/import/xxhash.h:6666,1
    - Dst: XXH_swap64
      Src: /src/haproxy/include/import/xxhash.h:6667,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:6669,1
    - Dst: XXH_memcpy
      Src: /src/haproxy/include/import/xxhash.h:6670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - XXH128_canonical_t* dst
    - hash
    argTypes:
    - XXH_NOESCAPE
    - XXH128_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6671
      start: 6661
    functionDepth: 1
    functionLinenumber: 6661
    functionLinenumberEnd: 6671
    functionName: XXH128_canonicalFromHash
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_STATIC_ASSERT
    - XXH_swap64
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_canonicalFromHash(XXH_NOESCAPE XXH128_canonical_t*
      dst, XXH128_hash_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readBE64
      Src: /src/haproxy/include/import/xxhash.h:6678,1
    - Dst: XXH_readBE64
      Src: /src/haproxy/include/import/xxhash.h:6679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - XXH128_canonical_t* src
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6681
      start: 6674
    functionDepth: 1
    functionLinenumber: 6674
    functionLinenumberEnd: 6681
    functionName: XXH128_hash_t::XXH128_hashFromCanonical
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readBE64
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH128_hashFromCanonical(XXH_NOESCAPE const XXH128_canonical_t* src)'
  - 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: 6690
      start: 6689
    functionDepth: 0
    functionLinenumber: 6689
    functionLinenumberEnd: 6690
    functionName: XXH_MIN
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_MIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_writeLE64
      Src: /src/haproxy/include/import/xxhash.h:6693,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6693,1
    - Dst: XXH_writeLE64
      Src: /src/haproxy/include/import/xxhash.h:6694,1
    - Dst: XXH_readLE64
      Src: /src/haproxy/include/import/xxhash.h:6694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - h128
    argTypes:
    - void*
    - XXH128_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6695
      start: 6691
    functionDepth: 2
    functionLinenumber: 6691
    functionLinenumberEnd: 6695
    functionName: XXH3_combine16
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH_readLE64
    - XXH_writeLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_combine16(void* dst, XXH128_hash_t h128)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6702,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6703,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6715,1
    - Dst: XXH_MIN
      Src: /src/haproxy/include/import/xxhash.h:6723,1
    - Dst: memcpy
      Src: /src/haproxy/include/import/xxhash.h:6724,1
    - Dst: XXH128_canonicalFromHash
      Src: /src/haproxy/include/import/xxhash.h:6731,1
    - Dst: XXH128
      Src: /src/haproxy/include/import/xxhash.h:6731,1
    - Dst: XXH128
      Src: /src/haproxy/include/import/xxhash.h:6733,1
    - Dst: XXH3_combine16
      Src: /src/haproxy/include/import/xxhash.h:6734,1
    - Dst: XXH3_combine16
      Src: /src/haproxy/include/import/xxhash.h:6737,1
    - Dst: XXH128_hashFromCanonical
      Src: /src/haproxy/include/import/xxhash.h:6737,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - secretBuffer
    - secretSize
    - customSeed
    - customSeedSize
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6740
      start: 6698
    functionDepth: 3
    functionLinenumber: 6698
    functionLinenumberEnd: 6740
    functionName: XXH_errorcode::XXH3_generateSecret
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_combine16
    - memcpy
    - XXH128_hashFromCanonical
    - XXH128
    - XXH128_canonicalFromHash
    - XXH_ASSERT
    - XXH_MIN
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_generateSecret(XXH_NOESCAPE void* secretBuffer, size_t secretSize, XXH_NOESCAPE
      const void* customSeed, size_t customSeedSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/haproxy/include/import/xxhash.h:6746,1
    - Dst: XXH3_initCustomSecret
      Src: /src/haproxy/include/import/xxhash.h:6747,1
    - Dst: XXH_ASSERT
      Src: /src/haproxy/include/import/xxhash.h:6748,1
    - Dst: memcpy
      Src: /src/haproxy/include/import/xxhash.h:6749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - secretBuffer
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6750
      start: 6743
    functionDepth: 1
    functionLinenumber: 6743
    functionLinenumberEnd: 6750
    functionName: XXH3_generateSecret_fromSeed
    functionSourceFile: /src/haproxy/include/import/xxhash.h
    functionUses: 0
    functionsReached:
    - XXH3_initCustomSecret
    - XXH_ASSERT
    - XXH_ALIGN
    - memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH3_generateSecret_fromSeed(XXH_NOESCAPE void* secretBuffer,
      XXH64_hash_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb_key_ptr
      Src: /src/haproxy/include/import/cebb_tree.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: cebb_imm_key
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached:
    - ceb_key_ptr
    linkageType: ''
    returnType: void
    signature: void *cebb_imm_key(const struct ceb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb_key_ptr
      Src: /src/haproxy/include/import/cebb_tree.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - kofs
    argTypes:
    - struct ceb_node*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: cebb_ofs_key
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached:
    - ceb_key_ptr
    linkageType: ''
    returnType: void
    signature: void *cebb_ofs_key(const struct ceb_node *node, ptrdiff_t kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: cebb_item_insert
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_insert(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: cebb_item_first
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_first(root, nname, kname, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: cebb_item_last
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_last(root, nname, kname, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: cebb_item_lookup
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_lookup(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: cebb_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_lookup_le(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: cebb_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_lookup_lt(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: cebb_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_lookup_ge(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: cebb_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_lookup_gt(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: cebb_item_next_unique
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_next_unique(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: cebb_item_prev_unique
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_prev_unique(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: cebb_item_next_dup
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_next_dup(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: cebb_item_prev_dup
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_prev_dup(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: cebb_item_next
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_next(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: cebb_item_prev
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_prev(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 273
    functionName: cebb_item_delete
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_delete(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 284
    functionName: cebb_item_pick
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebb_item_pick(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: cebub_item_insert
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_insert(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: cebub_item_first
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_first(root, nname, kname, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: cebub_item_last
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_last(root, nname, kname, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: cebub_item_lookup
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_lookup(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: cebub_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_lookup_le(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: cebub_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_lookup_lt(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: cebub_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_lookup_ge(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: cebub_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_lookup_gt(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: cebub_item_next
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_next(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 395
    functionName: cebub_item_prev
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_prev(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 407
    functionName: cebub_item_delete
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_delete(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: cebub_item_pick
    functionSourceFile: /src/haproxy/include/import/cebb_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebub_item_pick(root, nname, kname, key, len, type)
  - 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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: ebmb_entry
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ebmb_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_entry
      Src: /src/haproxy/include/import/ebmbtree.h:39,1
    - Dst: eb_first
      Src: /src/haproxy/include/import/ebmbtree.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: ebmb_first
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 19
    functionsReached:
    - eb_first
    - ebmb_entry
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebmb_first(struct eb_root *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_entry
      Src: /src/haproxy/include/import/ebmbtree.h:45,1
    - Dst: eb_last
      Src: /src/haproxy/include/import/ebmbtree.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: ebmb_last
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 0
    functionsReached:
    - eb_last
    - ebmb_entry
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebmb_last(struct eb_root *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_entry
      Src: /src/haproxy/include/import/ebmbtree.h:51,1
    - Dst: eb_next
      Src: /src/haproxy/include/import/ebmbtree.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebmb
    argTypes:
    - struct ebmb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: ebmb_next
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 17
    functionsReached:
    - eb_next
    - ebmb_entry
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebmb_next(struct ebmb_node *ebmb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_entry
      Src: /src/haproxy/include/import/ebmbtree.h:57,1
    - Dst: eb_prev
      Src: /src/haproxy/include/import/ebmbtree.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebmb
    argTypes:
    - struct ebmb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: ebmb_prev
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 0
    functionsReached:
    - eb_prev
    - ebmb_entry
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebmb_prev(struct ebmb_node *ebmb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_entry
      Src: /src/haproxy/include/import/ebmbtree.h:63,1
    - Dst: eb_next_dup
      Src: /src/haproxy/include/import/ebmbtree.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebmb
    argTypes:
    - struct ebmb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: ebmb_next_dup
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 7
    functionsReached:
    - eb_next_dup
    - ebmb_entry
    linkageType: ''
    returnType: struct ebmb_node
    signature: struct ebmb_node *ebmb_next_dup(struct ebmb_node *ebmb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_entry
      Src: /src/haproxy/include/import/ebmbtree.h:69,1
    - Dst: eb_prev_dup
      Src: /src/haproxy/include/import/ebmbtree.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebmb
    argTypes:
    - struct ebmb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: ebmb_prev_dup
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 0
    functionsReached:
    - eb_prev_dup
    - ebmb_entry
    linkageType: ''
    returnType: struct ebmb_node
    signature: struct ebmb_node *ebmb_prev_dup(struct ebmb_node *ebmb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_entry
      Src: /src/haproxy/include/import/ebmbtree.h:75,1
    - Dst: eb_next_unique
      Src: /src/haproxy/include/import/ebmbtree.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebmb
    argTypes:
    - struct ebmb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: ebmb_next_unique
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 0
    functionsReached:
    - eb_next_unique
    - ebmb_entry
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebmb_next_unique(struct ebmb_node *ebmb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_entry
      Src: /src/haproxy/include/import/ebmbtree.h:81,1
    - Dst: eb_prev_unique
      Src: /src/haproxy/include/import/ebmbtree.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebmb
    argTypes:
    - struct ebmb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: ebmb_prev_unique
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 0
    functionsReached:
    - eb_prev_unique
    - ebmb_entry
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebmb_prev_unique(struct ebmb_node *ebmb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_delete
      Src: /src/haproxy/include/import/ebmbtree.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebmb
    argTypes:
    - struct ebmb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: ebmb_delete
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 23
    functionsReached:
    - eb_delete
    linkageType: ''
    returnType: forceinline
    signature: forceinline ebmb_delete(struct ebmb_node *ebmb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ebmb_next_dup
      Src: /src/haproxy/include/import/ebmbtree.h:115,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:120,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:124,1
    - Dst: eb_clrtag
      Src: /src/haproxy/include/import/ebmbtree.h:124,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:124,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:126,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebmbtree.h:126,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:126,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:134,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/include/import/ebmbtree.h:134,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:134,1
    - Dst: ebmb_entry
      Src: /src/haproxy/include/import/ebmbtree.h:136,1
    - Dst: eb_walk_down
      Src: /src/haproxy/include/import/ebmbtree.h:136,1
    - Dst: check_bits
      Src: /src/haproxy/include/import/ebmbtree.h:148,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - start
    argTypes:
    - struct ebmb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 152
    functionName: ebmb_lookup_shorter
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 3
    functionsReached:
    - eb_gettag
    - unlikely
    - container_of
    - ebmb_entry
    - ebmb_next_dup
    - check_bits
    - eb_root_to_node
    - eb_walk_down
    - eb_clrtag
    - eb_untag
    linkageType: ''
    returnType: struct ebmb_node
    signature: struct ebmb_node *ebmb_lookup_shorter(struct ebmb_node *start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb_delete
      Src: /src/haproxy/include/import/ebmbtree.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebmb
    argTypes:
    - struct ebmb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: __ebmb_delete
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 0
    functionsReached:
    - __eb_delete
    linkageType: ''
    returnType: forceinline
    signature: forceinline __ebmb_delete(struct ebmb_node *ebmb)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:179,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:182,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:190,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:191,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:191,1
    - Dst: eb_memcmp
      Src: /src/haproxy/include/import/ebmbtree.h:193,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:198,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:198,1
    - Dst: eb_memcmp
      Src: /src/haproxy/include/import/ebmbtree.h:207,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/ebmbtree.h:243,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/ebmbtree.h:244,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:257,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:258,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:259,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:259,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 3
    argNames:
    - root
    - x
    - len
    argTypes:
    - struct eb_root*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 265
    functionName: __ebmb_lookup
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - eb_untag
    - eb_memcmp
    - eb_prefetch
    linkageType: ''
    returnType: forceinline
    signature: forceinline *__ebmb_lookup(struct eb_root *root, const void *x, unsigned
      int len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:290,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:292,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:292,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:293,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:293,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:294,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:312,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:312,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:314,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:314,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:316,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:322,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:322,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:326,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:328,1
    - Dst: equal_bits
      Src: /src/haproxy/include/import/ebmbtree.h:331,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebmbtree.h:331,1
    - Dst: equal_bits
      Src: /src/haproxy/include/import/ebmbtree.h:342,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebmbtree.h:342,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:343,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:348,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebmbtree.h:362,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:366,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:366,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:367,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:367,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:368,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:368,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:370,1
    - Dst: cmp_bits
      Src: /src/haproxy/include/import/ebmbtree.h:378,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebmbtree.h:378,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:381,1
    - Dst: likely
      Src: /src/haproxy/include/import/ebmbtree.h:383,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:383,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:390,1
    - Dst: eb_insert_dup
      Src: /src/haproxy/include/import/ebmbtree.h:393,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:393,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:394,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:400,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:401,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:402,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:406,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:407,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:408,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:418,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:418,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 72
    argCount: 3
    argNames:
    - root
    - new
    - len
    argTypes:
    - struct eb_root*
    - struct ebmb_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 420
    functionName: __ebmb_insert
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - node::node
    - eb_insert_dup
    - equal_bits
    - container_of
    - likely
    - key::key
    - cmp_bits
    - eb_dotag
    - eb_untag
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      __ebmb_insert(struct eb_root *root, struct ebmb_node *new, unsigned int len)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:437,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:443,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:444,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:444,1
    - Dst: check_bits
      Src: /src/haproxy/include/import/ebmbtree.h:446,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:451,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:451,1
    - Dst: check_bits
      Src: /src/haproxy/include/import/ebmbtree.h:460,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:464,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:465,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:466,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:466,1
    - Dst: ebmb_entry
      Src: /src/haproxy/include/import/ebmbtree.h:513,1
    - Dst: eb_walk_down
      Src: /src/haproxy/include/import/ebmbtree.h:513,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 514
    functionName: __ebmb_lookup_longest
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - ebmb_entry
    - check_bits
    - eb_walk_down
    - eb_untag
    linkageType: ''
    returnType: forceinline
    signature: forceinline *__ebmb_lookup_longest(struct eb_root *root, const void
      *x)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:531,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:536,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:537,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:537,1
    - Dst: check_bits
      Src: /src/haproxy/include/import/ebmbtree.h:541,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:545,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:545,1
    - Dst: check_bits
      Src: /src/haproxy/include/import/ebmbtree.h:556,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:560,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:561,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:562,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:562,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 3
    argNames:
    - root
    - x
    - pfx
    argTypes:
    - struct eb_root*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 608
    functionName: __ebmb_lookup_prefix
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - check_bits
    - eb_untag
    linkageType: ''
    returnType: forceinline
    signature: forceinline *__ebmb_lookup_prefix(struct eb_root *root, const void
      *x, unsigned int pfx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:632,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebmbtree.h:634,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:639,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:641,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:641,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:642,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:642,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:643,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:665,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:665,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:669,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:669,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:671,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:677,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebmbtree.h:677,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:686,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:688,1
    - Dst: equal_bits
      Src: /src/haproxy/include/import/ebmbtree.h:694,1
    - Dst: equal_bits
      Src: /src/haproxy/include/import/ebmbtree.h:700,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:709,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:711,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:716,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:722,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:724,1
    - Dst: cmp_bits
      Src: /src/haproxy/include/import/ebmbtree.h:725,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:796,1
    - Dst: cmp_bits
      Src: /src/haproxy/include/import/ebmbtree.h:804,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:812,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:814,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebmbtree.h:816,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:816,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebmbtree.h:823,1
    - Dst: eb_insert_dup
      Src: /src/haproxy/include/import/ebmbtree.h:826,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:826,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebmbtree.h:827,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:837,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:837,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:838,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:838,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:839,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:839,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:842,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:843,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:844,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:848,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:849,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:850,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebmbtree.h:854,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebmbtree.h:854,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 114
    argCount: 3
    argNames:
    - root
    - new
    - len
    argTypes:
    - struct eb_root*
    - struct ebmb_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 856
    functionName: __ebmb_insert_prefix
    functionSourceFile: /src/haproxy/include/import/ebmbtree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - node::node
    - eb_insert_dup
    - equal_bits
    - container_of
    - key::key
    - cmp_bits
    - eb_dotag
    - eb_untag
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      __ebmb_insert_prefix(struct eb_root *root, struct ebmb_node *new, unsigned int
      len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb_key_ptr
      Src: /src/haproxy/include/import/ceb32_tree.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: ceb32_imm_key
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached:
    - ceb_key_ptr
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t *ceb32_imm_key(const struct ceb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb_key_ptr
      Src: /src/haproxy/include/import/ceb32_tree.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - kofs
    argTypes:
    - struct ceb_node*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: ceb32_ofs_key
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached:
    - ceb_key_ptr
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t *ceb32_ofs_key(const struct ceb_node *node, ptrdiff_t kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: ceb32_item_insert
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_insert(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: ceb32_item_first
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_first(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: ceb32_item_last
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_last(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: ceb32_item_lookup
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_lookup(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: ceb32_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_lookup_le(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: ceb32_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_lookup_lt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: ceb32_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_lookup_ge(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: ceb32_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_lookup_gt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: ceb32_item_next_unique
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_next_unique(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: ceb32_item_prev_unique
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_prev_unique(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: ceb32_item_next_dup
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_next_dup(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: ceb32_item_prev_dup
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_prev_dup(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: ceb32_item_next
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_next(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: ceb32_item_prev
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_prev(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: ceb32_item_delete
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_delete(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: ceb32_item_pick
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceb32_item_pick(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 304
    functionName: cebu32_item_insert
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_insert(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: cebu32_item_first
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_first(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 324
    functionName: cebu32_item_last
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_last(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: cebu32_item_lookup
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_lookup(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: cebu32_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_lookup_le(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: cebu32_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_lookup_lt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 369
    functionName: cebu32_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_lookup_ge(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: cebu32_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_lookup_gt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: cebu32_item_next
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_next(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 402
    functionName: cebu32_item_prev
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_prev(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 414
    functionName: cebu32_item_delete
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_delete(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 425
    functionName: cebu32_item_pick
    functionSourceFile: /src/haproxy/include/import/ceb32_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebu32_item_pick(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: IST
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IST(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: ist
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 346
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ist(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 185
    functionName: ist
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 346
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ist(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: ist2
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 194
    functionsReached: []
    linkageType: ''
    returnType: struct ist
    signature: struct ist ist2(const void *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: isttest
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 104
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isttest(const struct ist ist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: ist0
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ist0(struct ist ist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: istptr
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 100
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *istptr(const struct ist ist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: istlen
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 132
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t istlen(const struct ist ist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: istend
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *istend(const struct ist ist)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: istnext
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: struct ist
    signature: struct ist istnext(const struct ist ist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: istnext
      Src: /src/haproxy/include/import/ist.h:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: istshift
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 4
    functionsReached:
    - istnext
    linkageType: ''
    returnType: char
    signature: char istshift(struct ist *ist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - ist
    argTypes:
    - void*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: istpad
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: struct ist
    signature: struct ist istpad(void *buf, const struct ist ist)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ist
    - size
    argTypes:
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 283
    functionName: isttrim
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: struct ist
    signature: struct ist isttrim(const struct ist ist, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: istclear
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t istclear(struct ist* ist)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ist
    - size
    argTypes:
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 332
    functionName: istzero
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct ist
    signature: struct ist istzero(const struct ist ist, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 351
    functionName: iststrip
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: struct ist
    signature: struct ist iststrip(const struct ist ist)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ist1
    - ist2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 371
    functionName: istdiff
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int istdiff(const struct ist ist1, const struct ist ist2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ist1
    - ist2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 387
    functionName: istmatch
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int istmatch(const struct ist ist1, const struct ist ist2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ist1
    - ist2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 407
    functionName: istmatchi
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int istmatchi(const struct ist ist1, const struct ist ist2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: istmatch
      Src: /src/haproxy/include/import/ist.h:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ist1
    - ist2
    - count
    argTypes:
    - struct ist
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 422
    functionName: istnmatch
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 6
    functionsReached:
    - istmatch
    linkageType: ''
    returnType: int
    signature: int istnmatch(const struct ist ist1, const struct ist ist2, size_t
      count)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ist1
    - ist2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 438
    functionName: isteq
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isteq(const struct ist ist1, const struct ist ist2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ist1
    - ist2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 458
    functionName: isteqi
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isteqi(const struct ist ist1, const struct ist ist2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isteq
      Src: /src/haproxy/include/import/ist.h:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ist1
    - ist2
    - count
    argTypes:
    - struct ist
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 473
    functionName: istneq
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 3
    functionsReached:
    - isteq
    linkageType: ''
    returnType: int
    signature: int istneq(const struct ist ist1, const struct ist ist2, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct ist
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 483
    functionName: __istappend
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: struct ist
    signature: struct ist __istappend(struct ist dst, const char src)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - dst
    - src
    - count
    argTypes:
    - struct ist*
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 506
    functionName: istcpy
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t istcpy(struct ist *dst, const struct ist src, size_t count)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - dst
    - src
    - count
    argTypes:
    - struct ist*
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 534
    functionName: istscpy
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t istscpy(struct ist *dst, const struct ist src, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - src
    - count
    argTypes:
    - struct ist*
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 553
    functionName: istcat
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t istcat(struct ist *dst, const struct ist src, size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - dst
    - src
    - count
    argTypes:
    - struct ist*
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 577
    functionName: istscat
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t istscat(struct ist *dst, const struct ist src, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:592,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:596,1
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 599
    functionName: ist2bin
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 5
    functionsReached:
    - __builtin_expect
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist ist2bin(char *dst, const struct ist src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:614,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:618,1
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 622
    functionName: ist2str
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 2
    functionsReached:
    - __builtin_expect
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist ist2str(char *dst, const struct ist src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:637,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:641,1
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 644
    functionName: ist2bin_lc
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 6
    functionsReached:
    - __builtin_expect
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist ist2bin_lc(char *dst, const struct ist src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:659,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:663,1
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 667
    functionName: ist2str_lc
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist ist2str_lc(char *dst, const struct ist src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:682,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:686,1
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 689
    functionName: ist2bin_uc
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist ist2bin_uc(char *dst, const struct ist src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:704,1
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:708,1
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 712
    functionName: ist2str_uc
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist ist2str_uc(char *dst, const struct ist src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ist
    - chr
    argTypes:
    - struct ist
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 726
    functionName: istchr
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *istchr(const struct ist ist, char chr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 767
    functionName: ist_find_ctl
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 6
    functionsReached:
    - __builtin_expect
    linkageType: ''
    returnType: char
    signature: char *ist_find_ctl(const struct ist ist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/haproxy/include/import/ist.h:806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ist
    - min
    - max
    argTypes:
    - struct ist
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 814
    functionName: ist_find_range
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 2
    functionsReached:
    - __builtin_expect
    linkageType: ''
    returnType: char
    signature: char *ist_find_range(const struct ist ist, unsigned char min, unsigned
      char max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:826,1
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ist
    - chr
    argTypes:
    - struct ist
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 829
    functionName: istfind
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 11
    functionsReached:
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist istfind(const struct ist ist, char chr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:841,1
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ist
    - chr
    argTypes:
    - struct ist
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 844
    functionName: istskip
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 4
    functionsReached:
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist istskip(const struct ist ist, char chr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istfind
      Src: /src/haproxy/include/import/ist.h:860,1
    - Dst: istnext
      Src: /src/haproxy/include/import/ist.h:866,1
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:872,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ist
    - pat
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 875
    functionName: istist
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 11
    functionsReached:
    - ist2
    - istnext
    - istfind
    linkageType: ''
    returnType: struct ist
    signature: struct ist istist(const struct ist ist, const struct ist pat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ist
    - chr
    argTypes:
    - struct ist
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 888
    functionName: iststop
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 11
    functionsReached:
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist iststop(const struct ist ist, char chr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:897,1
    - Dst: ist2
      Src: /src/haproxy/include/import/ist.h:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ist
    - nb
    argTypes:
    - struct ist
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: istadv
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 26
    functionsReached:
    - ist2
    linkageType: ''
    returnType: struct ist
    signature: struct ist istadv(const struct ist ist, const size_t nb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iststop
      Src: /src/haproxy/include/import/ist.h:908,1
    - Dst: istadv
      Src: /src/haproxy/include/import/ist.h:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ist
    - delim
    argTypes:
    - struct ist*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 913
    functionName: istsplit
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 17
    functionsReached:
    - istadv
    - iststop
    linkageType: ''
    returnType: struct ist
    signature: struct ist istsplit(struct ist *ist, char delim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ist1
    - ist2
    argTypes:
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 921
    functionName: istissame
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int istissame(const struct ist ist1, const struct ist ist2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/include/import/ist.h:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 941
    functionName: istalloc
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 1
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct ist
    signature: struct ist istalloc(const size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/include/import/ist.h:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 948
    functionDepth: 3
    functionLinenumber: 948
    functionLinenumberEnd: 952
    functionName: istfree
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 38
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void istfree(struct ist *ist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: istalloc
      Src: /src/haproxy/include/import/ist.h:962,1
    - Dst: isttest
      Src: /src/haproxy/include/import/ist.h:964,1
    - Dst: istcpy
      Src: /src/haproxy/include/import/ist.h:965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 970
    functionName: istdup
    functionSourceFile: /src/haproxy/include/import/ist.h
    functionUses: 25
    functionsReached:
    - istcpy
    - isttest
    - istalloc
    linkageType: ''
    returnType: struct ist
    signature: struct ist istdup(const struct ist src)
  - 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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: ebpt_entry
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ebpt_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_entry
      Src: /src/haproxy/include/import/ebpttree.h:41,1
    - Dst: eb_first
      Src: /src/haproxy/include/import/ebpttree.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: ebpt_first
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 7
    functionsReached:
    - ebpt_entry
    - eb_first
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebpt_first(struct eb_root *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_entry
      Src: /src/haproxy/include/import/ebpttree.h:47,1
    - Dst: eb_last
      Src: /src/haproxy/include/import/ebpttree.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: ebpt_last
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 0
    functionsReached:
    - eb_last
    - ebpt_entry
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebpt_last(struct eb_root *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_entry
      Src: /src/haproxy/include/import/ebpttree.h:53,1
    - Dst: eb_next
      Src: /src/haproxy/include/import/ebpttree.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebpt
    argTypes:
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: ebpt_next
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 6
    functionsReached:
    - ebpt_entry
    - eb_next
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebpt_next(struct ebpt_node *ebpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_entry
      Src: /src/haproxy/include/import/ebpttree.h:59,1
    - Dst: eb_prev
      Src: /src/haproxy/include/import/ebpttree.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebpt
    argTypes:
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: ebpt_prev
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 0
    functionsReached:
    - ebpt_entry
    - eb_prev
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebpt_prev(struct ebpt_node *ebpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_entry
      Src: /src/haproxy/include/import/ebpttree.h:65,1
    - Dst: eb_next_dup
      Src: /src/haproxy/include/import/ebpttree.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebpt
    argTypes:
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: ebpt_next_dup
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 1
    functionsReached:
    - ebpt_entry
    - eb_next_dup
    linkageType: ''
    returnType: struct ebpt_node
    signature: struct ebpt_node *ebpt_next_dup(struct ebpt_node *ebpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_entry
      Src: /src/haproxy/include/import/ebpttree.h:71,1
    - Dst: eb_prev_dup
      Src: /src/haproxy/include/import/ebpttree.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebpt
    argTypes:
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: ebpt_prev_dup
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 0
    functionsReached:
    - ebpt_entry
    - eb_prev_dup
    linkageType: ''
    returnType: struct ebpt_node
    signature: struct ebpt_node *ebpt_prev_dup(struct ebpt_node *ebpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_entry
      Src: /src/haproxy/include/import/ebpttree.h:77,1
    - Dst: eb_next_unique
      Src: /src/haproxy/include/import/ebpttree.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebpt
    argTypes:
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: ebpt_next_unique
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 0
    functionsReached:
    - eb_next_unique
    - ebpt_entry
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebpt_next_unique(struct ebpt_node *ebpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_entry
      Src: /src/haproxy/include/import/ebpttree.h:83,1
    - Dst: eb_prev_unique
      Src: /src/haproxy/include/import/ebpttree.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebpt
    argTypes:
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: ebpt_prev_unique
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 0
    functionsReached:
    - ebpt_entry
    - eb_prev_unique
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebpt_prev_unique(struct ebpt_node *ebpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_delete
      Src: /src/haproxy/include/import/ebpttree.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebpt
    argTypes:
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: ebpt_delete
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 13
    functionsReached:
    - eb_delete
    linkageType: ''
    returnType: forceinline
    signature: forceinline ebpt_delete(struct ebpt_node *ebpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup
      Src: /src/haproxy/include/import/ebpttree.h:100,1
    - Dst: eb64_lookup
      Src: /src/haproxy/include/import/ebpttree.h:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: ebpt_lookup
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 2
    functionsReached:
    - eb64_lookup
    - eb32_lookup
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebpt_lookup(struct eb_root *root, void *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup_le
      Src: /src/haproxy/include/import/ebpttree.h:108,1
    - Dst: eb64_lookup_le
      Src: /src/haproxy/include/import/ebpttree.h:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: ebpt_lookup_le
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 0
    functionsReached:
    - eb64_lookup_le
    - eb32_lookup_le
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebpt_lookup_le(struct eb_root *root, void *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/include/import/ebpttree.h:116,1
    - Dst: eb64_lookup_ge
      Src: /src/haproxy/include/import/ebpttree.h:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: ebpt_lookup_ge
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 0
    functionsReached:
    - eb32_lookup_ge
    - eb64_lookup_ge
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebpt_lookup_ge(struct eb_root *root, void *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb32_insert
      Src: /src/haproxy/include/import/ebpttree.h:124,1
    - Dst: eb64_insert
      Src: /src/haproxy/include/import/ebpttree.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: ebpt_insert
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 5
    functionsReached:
    - eb32_insert
    - eb64_insert
    linkageType: ''
    returnType: forceinline
    signature: forceinline *ebpt_insert(struct eb_root *root, struct ebpt_node *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb_delete
      Src: /src/haproxy/include/import/ebpttree.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ebpt
    argTypes:
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: __ebpt_delete
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 0
    functionsReached:
    - __eb_delete
    linkageType: ''
    returnType: forceinline
    signature: forceinline __ebpt_delete(struct ebpt_node *ebpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __eb32_lookup
      Src: /src/haproxy/include/import/ebpttree.h:143,1
    - Dst: __eb64_lookup
      Src: /src/haproxy/include/import/ebpttree.h:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: __ebpt_lookup
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 0
    functionsReached:
    - __eb64_lookup
    - __eb32_lookup
    linkageType: ''
    returnType: forceinline
    signature: forceinline *__ebpt_lookup(struct eb_root *root, void *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __eb32_insert
      Src: /src/haproxy/include/import/ebpttree.h:151,1
    - Dst: __eb64_insert
      Src: /src/haproxy/include/import/ebpttree.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: __ebpt_insert
    functionSourceFile: /src/haproxy/include/import/ebpttree.h
    functionUses: 0
    functionsReached:
    - __eb64_insert
    - __eb32_insert
    linkageType: ''
    returnType: forceinline
    signature: forceinline *__ebpt_insert(struct eb_root *root, struct ebpt_node *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb_key_ptr
      Src: /src/haproxy/include/import/cebl_tree.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: cebl_imm_key
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached:
    - ceb_key_ptr
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long *cebl_imm_key(const struct ceb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb_key_ptr
      Src: /src/haproxy/include/import/cebl_tree.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - kofs
    argTypes:
    - struct ceb_node*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: cebl_ofs_key
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached:
    - ceb_key_ptr
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long *cebl_ofs_key(const struct ceb_node *node, ptrdiff_t
      kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: cebl_item_insert
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_insert(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: cebl_item_first
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_first(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: cebl_item_last
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_last(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: cebl_item_lookup
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_lookup(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: cebl_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_lookup_le(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: cebl_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_lookup_lt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: cebl_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_lookup_ge(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: cebl_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_lookup_gt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: cebl_item_next_unique
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_next_unique(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: cebl_item_prev_unique
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_prev_unique(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: cebl_item_next_dup
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_next_dup(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: cebl_item_prev_dup
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_prev_dup(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: cebl_item_next
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_next(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: cebl_item_prev
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_prev(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: cebl_item_delete
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_delete(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: cebl_item_pick
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebl_item_pick(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: cebul_item_insert
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_insert(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: cebul_item_first
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_first(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: cebul_item_last
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_last(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: cebul_item_lookup
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_lookup(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: cebul_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_lookup_le(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: cebul_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_lookup_lt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: cebul_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_lookup_ge(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: cebul_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_lookup_gt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: cebul_item_next
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_next(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 401
    functionName: cebul_item_prev
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_prev(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: cebul_item_delete
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_delete(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: cebul_item_pick
    functionSourceFile: /src/haproxy/include/import/cebl_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebul_item_pick(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_key_ptr
      Src: /src/haproxy/include/import/cebis_tree.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: cebis_imm_key
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached:
    - _ceb_key_ptr
    linkageType: ''
    returnType: char
    signature: char *cebis_imm_key(const struct ceb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_key_ptr
      Src: /src/haproxy/include/import/cebis_tree.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - kofs
    argTypes:
    - struct ceb_node*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: cebis_ofs_key
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached:
    - _ceb_key_ptr
    linkageType: ''
    returnType: char
    signature: char *cebis_ofs_key(const struct ceb_node *node, ptrdiff_t kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: cebis_item_insert
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_insert(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: cebis_item_first
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_first(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: cebis_item_last
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_last(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: cebis_item_lookup
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_lookup(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: cebis_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_lookup_le(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: cebis_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_lookup_lt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: cebis_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_lookup_ge(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: cebis_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_lookup_gt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: cebis_item_next_unique
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_next_unique(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: cebis_item_prev_unique
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_prev_unique(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: cebis_item_next_dup
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_next_dup(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 251
    functionName: cebis_item_prev_dup
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_prev_dup(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: cebis_item_next
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_next(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: cebis_item_prev
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_prev(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 285
    functionName: cebis_item_delete
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_delete(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 296
    functionName: cebis_item_pick
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebis_item_pick(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: cebuis_item_insert
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_insert(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: cebuis_item_first
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_first(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: cebuis_item_last
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_last(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: cebuis_item_lookup
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_lookup(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 351
    functionName: cebuis_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_lookup_le(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: cebuis_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_lookup_lt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: cebuis_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_lookup_ge(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: cebuis_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_lookup_gt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 396
    functionName: cebuis_item_next
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_next(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 407
    functionName: cebuis_item_prev
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_prev(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 419
    functionName: cebuis_item_delete
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_delete(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 430
    functionName: cebuis_item_pick
    functionSourceFile: /src/haproxy/include/import/cebis_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuis_item_pick(root, nname, kname, key, type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebim_lookup
      Src: /src/haproxy/include/import/ebistree.h:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - root
    - x
    - len
    argTypes:
    - struct eb_root*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: ebis_lookup_len
    functionSourceFile: /src/haproxy/include/import/ebistree.h
    functionUses: 6
    functionsReached:
    - ebim_lookup
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      ebis_lookup_len(struct eb_root *root, const char *x, unsigned int len)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebistree.h:69,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebistree.h:74,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebistree.h:75,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebistree.h:75,1
    - Dst: strcmp
      Src: /src/haproxy/include/import/ebistree.h:77,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebistree.h:82,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebistree.h:82,1
    - Dst: strcmp
      Src: /src/haproxy/include/import/ebistree.h:91,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebistree.h:95,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebistree.h:96,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebistree.h:97,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebistree.h:97,1
    - Dst: likely
      Src: /src/haproxy/include/import/ebistree.h:105,1
    - Dst: string_equal_bits
      Src: /src/haproxy/include/import/ebistree.h:106,1
    - Dst: likely
      Src: /src/haproxy/include/import/ebistree.h:107,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebistree.h:116,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 132
    functionName: __ebis_lookup
    functionSourceFile: /src/haproxy/include/import/ebistree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - string_equal_bits
    - strcmp
    - container_of
    - likely
    - eb_untag
    linkageType: ''
    returnType: forceinline
    signature: forceinline *__ebis_lookup(struct eb_root *root, const void *x)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebistree.h:153,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:155,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:155,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:156,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:156,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:157,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebistree.h:175,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebistree.h:175,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebistree.h:179,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebistree.h:179,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:182,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:182,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:183,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:183,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:184,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:184,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:185,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:187,1
    - Dst: string_equal_bits
      Src: /src/haproxy/include/import/ebistree.h:205,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebistree.h:205,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebistree.h:213,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:218,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:219,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:220,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:221,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:222,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:222,1
    - Dst: cmp_bits
      Src: /src/haproxy/include/import/ebistree.h:226,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebistree.h:226,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:229,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:231,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:232,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:236,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:237,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:238,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebistree.h:244,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebistree.h:244,1
    - Dst: string_equal_bits
      Src: /src/haproxy/include/import/ebistree.h:255,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebistree.h:255,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebistree.h:257,1
    - Dst: eb_insert_dup
      Src: /src/haproxy/include/import/ebistree.h:267,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:267,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebistree.h:268,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:284,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:284,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:285,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:285,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:286,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:286,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:287,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:289,1
    - Dst: cmp_bits
      Src: /src/haproxy/include/import/ebistree.h:292,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebistree.h:292,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:294,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:296,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:297,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:301,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:302,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:303,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebistree.h:310,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:324,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebistree.h:325,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebistree.h:325,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 83
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct ebpt_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 327
    functionName: __ebis_insert
    functionSourceFile: /src/haproxy/include/import/ebistree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - string_equal_bits
    - node::node
    - eb_insert_dup
    - container_of
    - key::key
    - cmp_bits
    - eb_dotag
    - eb_untag
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      __ebis_insert(struct eb_root *root, struct ebpt_node *new)'
  - 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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: eb32_entry
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eb32_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_entry
      Src: /src/haproxy/include/import/eb32tree.h:39,1
    - Dst: eb_first
      Src: /src/haproxy/include/import/eb32tree.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: eb32_first
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 36
    functionsReached:
    - eb32_entry
    - eb_first
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_first(struct eb_root *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_entry
      Src: /src/haproxy/include/import/eb32tree.h:45,1
    - Dst: eb_last
      Src: /src/haproxy/include/import/eb32tree.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: eb32_last
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 2
    functionsReached:
    - eb_last
    - eb32_entry
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_last(struct eb_root *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_entry
      Src: /src/haproxy/include/import/eb32tree.h:51,1
    - Dst: eb_next
      Src: /src/haproxy/include/import/eb32tree.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb32
    argTypes:
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: eb32_next
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 36
    functionsReached:
    - eb32_entry
    - eb_next
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_next(struct eb32_node *eb32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_entry
      Src: /src/haproxy/include/import/eb32tree.h:57,1
    - Dst: eb_prev
      Src: /src/haproxy/include/import/eb32tree.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb32
    argTypes:
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: eb32_prev
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 1
    functionsReached:
    - eb32_entry
    - eb_prev
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_prev(struct eb32_node *eb32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_entry
      Src: /src/haproxy/include/import/eb32tree.h:63,1
    - Dst: eb_next_dup
      Src: /src/haproxy/include/import/eb32tree.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb32
    argTypes:
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: eb32_next_dup
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 2
    functionsReached:
    - eb32_entry
    - eb_next_dup
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_next_dup(struct eb32_node *eb32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_entry
      Src: /src/haproxy/include/import/eb32tree.h:69,1
    - Dst: eb_prev_dup
      Src: /src/haproxy/include/import/eb32tree.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb32
    argTypes:
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: eb32_prev_dup
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 3
    functionsReached:
    - eb32_entry
    - eb_prev_dup
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_prev_dup(struct eb32_node *eb32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_entry
      Src: /src/haproxy/include/import/eb32tree.h:75,1
    - Dst: eb_next_unique
      Src: /src/haproxy/include/import/eb32tree.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb32
    argTypes:
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: eb32_next_unique
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 0
    functionsReached:
    - eb_next_unique
    - eb32_entry
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_next_unique(struct eb32_node *eb32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_entry
      Src: /src/haproxy/include/import/eb32tree.h:81,1
    - Dst: eb_prev_unique
      Src: /src/haproxy/include/import/eb32tree.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb32
    argTypes:
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: eb32_prev_unique
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 0
    functionsReached:
    - eb32_entry
    - eb_prev_unique
    linkageType: ''
    returnType: struct eb32_node
    signature: struct eb32_node *eb32_prev_unique(struct eb32_node *eb32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_delete
      Src: /src/haproxy/include/import/eb32tree.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb32
    argTypes:
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: eb32_delete
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 35
    functionsReached:
    - eb_delete
    linkageType: ''
    returnType: void
    signature: void eb32_delete(struct eb32_node *eb32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb_delete
      Src: /src/haproxy/include/import/eb32tree.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb32
    argTypes:
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: __eb32_delete
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 0
    functionsReached:
    - __eb_delete
    linkageType: ''
    returnType: forceinline
    signature: forceinline __eb32_delete(struct eb32_node *eb32)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb32tree.h:125,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb32tree.h:129,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32tree.h:129,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:130,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:130,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:137,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:137,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb32tree.h:140,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb32tree.h:141,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32tree.h:154,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:155,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:156,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:156,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 165
    functionName: __eb32_lookup
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 2
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: forceinline
    signature: forceinline *__eb32_lookup(struct eb_root *root, u32 x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb32tree.h:179,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb32tree.h:183,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32tree.h:183,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:184,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:184,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:191,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:191,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb32tree.h:194,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb32tree.h:195,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32tree.h:208,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:209,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:210,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 219
    functionName: __eb32i_lookup
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: forceinline
    signature: forceinline *__eb32i_lookup(struct eb_root *root, s32 x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb32tree.h:239,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:241,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:241,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:242,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:242,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:243,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb32tree.h:258,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32tree.h:261,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:263,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:263,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:265,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:271,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:271,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb32tree.h:274,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb32tree.h:275,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb32tree.h:285,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:290,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:301,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:301,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:302,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:302,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:303,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:303,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb32tree.h:312,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:313,1
    - Dst: likely
      Src: /src/haproxy/include/import/eb32tree.h:315,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32tree.h:315,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32tree.h:322,1
    - Dst: eb_insert_dup
      Src: /src/haproxy/include/import/eb32tree.h:325,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:325,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:326,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:332,1
    - Dst: flsnz
      Src: /src/haproxy/include/import/eb32tree.h:332,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb32tree.h:332,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb32tree.h:335,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:336,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:337,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:338,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:342,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:343,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:344,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:354,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:354,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 356
    functionName: __eb32_insert
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 2
    functionsReached:
    - unlikely
    - eb_gettag
    - node::node
    - eb_insert_dup
    - container_of
    - likely
    - key::key
    - eb_dotag
    - flsnz
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      __eb32_insert(struct eb_root *root, struct eb32_node *new)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb32tree.h:376,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:378,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:378,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:379,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:379,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:380,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb32tree.h:397,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32tree.h:400,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:401,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:401,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:403,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:409,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb32tree.h:409,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb32tree.h:412,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb32tree.h:413,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb32tree.h:423,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:428,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:439,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:439,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:440,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:440,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:441,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:441,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb32tree.h:450,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:451,1
    - Dst: likely
      Src: /src/haproxy/include/import/eb32tree.h:453,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32tree.h:453,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb32tree.h:460,1
    - Dst: eb_insert_dup
      Src: /src/haproxy/include/import/eb32tree.h:463,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:463,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb32tree.h:464,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:470,1
    - Dst: flsnz
      Src: /src/haproxy/include/import/eb32tree.h:470,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb32tree.h:470,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb32tree.h:473,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:474,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:475,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:476,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:480,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:481,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:482,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb32tree.h:492,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb32tree.h:492,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 494
    functionName: __eb32i_insert
    functionSourceFile: /src/haproxy/include/import/eb32tree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - node::node
    - eb_insert_dup
    - container_of
    - likely
    - key::key
    - eb_dotag
    - flsnz
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      __eb32i_insert(struct eb_root *root, struct eb32_node *new)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_key_ptr
      Src: /src/haproxy/include/import/cebib_tree.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: cebib_imm_key
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached:
    - _ceb_key_ptr
    linkageType: ''
    returnType: void
    signature: void *cebib_imm_key(const struct ceb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ceb_key_ptr
      Src: /src/haproxy/include/import/cebib_tree.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - kofs
    argTypes:
    - struct ceb_node*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: cebib_ofs_key
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached:
    - _ceb_key_ptr
    linkageType: ''
    returnType: void
    signature: void *cebib_ofs_key(const struct ceb_node *node, ptrdiff_t kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: cebib_item_insert
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_insert(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: cebib_item_first
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_first(root, nname, kname, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: cebib_item_last
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_last(root, nname, kname, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: cebib_item_lookup
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_lookup(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: cebib_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_lookup_le(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: cebib_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_lookup_lt(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: cebib_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_lookup_ge(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: cebib_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_lookup_gt(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: cebib_item_next_unique
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_next_unique(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: cebib_item_prev_unique
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_prev_unique(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: cebib_item_next_dup
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_next_dup(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: cebib_item_prev_dup
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_prev_dup(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: cebib_item_next
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_next(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: cebib_item_prev
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_prev(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: cebib_item_delete
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_delete(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: cebib_item_pick
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebib_item_pick(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: cebuib_item_insert
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_insert(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: cebuib_item_first
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_first(root, nname, kname, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: cebuib_item_last
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_last(root, nname, kname, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: cebuib_item_lookup
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_lookup(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: cebuib_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_lookup_le(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: cebuib_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_lookup_lt(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: cebuib_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_lookup_ge(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: cebuib_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_lookup_gt(root, nname, kname, key, len, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: cebuib_item_next
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_next(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 401
    functionName: cebuib_item_prev
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_prev(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - len
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: cebuib_item_delete
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_delete(root, nname, kname, len, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - len
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: cebuib_item_pick
    functionSourceFile: /src/haproxy/include/import/cebib_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebuib_item_pick(root, nname, kname, key, len, type)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebimtree.h:54,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebimtree.h:57,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebimtree.h:62,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebimtree.h:63,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebimtree.h:63,1
    - Dst: eb_memcmp
      Src: /src/haproxy/include/import/ebimtree.h:65,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebimtree.h:70,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebimtree.h:70,1
    - Dst: eb_memcmp
      Src: /src/haproxy/include/import/ebimtree.h:79,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebimtree.h:121,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebimtree.h:122,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebimtree.h:123,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebimtree.h:123,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 3
    argNames:
    - root
    - x
    - len
    argTypes:
    - struct eb_root*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 129
    functionName: __ebim_lookup
    functionSourceFile: /src/haproxy/include/import/ebimtree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - eb_untag
    - eb_memcmp
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      __ebim_lookup(struct eb_root *root, const void *x, unsigned int len)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebimtree.h:150,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:152,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:152,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:153,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:153,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:154,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/ebimtree.h:174,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebimtree.h:174,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebimtree.h:178,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebimtree.h:178,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:181,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:181,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:182,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:182,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:183,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:183,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:184,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:186,1
    - Dst: equal_bits
      Src: /src/haproxy/include/import/ebimtree.h:203,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebimtree.h:203,1
    - Dst: cmp_bits
      Src: /src/haproxy/include/import/ebimtree.h:211,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebimtree.h:211,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:214,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:216,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:217,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/ebimtree.h:222,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:227,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:228,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:229,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:232,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:233,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:233,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebimtree.h:241,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/ebimtree.h:241,1
    - Dst: equal_bits
      Src: /src/haproxy/include/import/ebimtree.h:253,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebimtree.h:253,1
    - Dst: equal_bits
      Src: /src/haproxy/include/import/ebimtree.h:257,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebimtree.h:257,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:269,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:269,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:270,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:270,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:271,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:271,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:272,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:274,1
    - Dst: cmp_bits
      Src: /src/haproxy/include/import/ebimtree.h:282,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebimtree.h:282,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:285,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:287,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:288,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:292,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:293,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:294,1
    - Dst: eb_insert_dup
      Src: /src/haproxy/include/import/ebimtree.h:298,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:298,1
    - Dst: container_of
      Src: /src/haproxy/include/import/ebimtree.h:299,1
    - Dst: key::key
      Src: /src/haproxy/include/import/ebimtree.h:306,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:319,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/ebimtree.h:320,1
    - Dst: node::node
      Src: /src/haproxy/include/import/ebimtree.h:320,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 89
    argCount: 3
    argNames:
    - root
    - new
    - len
    argTypes:
    - struct eb_root*
    - struct ebpt_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 322
    functionName: __ebim_insert
    functionSourceFile: /src/haproxy/include/import/ebimtree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - node::node
    - eb_insert_dup
    - equal_bits
    - container_of
    - key::key
    - cmp_bits
    - eb_dotag
    - eb_untag
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      __ebim_insert(struct eb_root *root, struct ebpt_node *new, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: MJSON_TOK_IS_VALUE
    functionSourceFile: /src/haproxy/include/import/mjson.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MJSON_TOK_IS_VALUE(t)
  - 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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: eb64_entry
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eb64_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_entry
      Src: /src/haproxy/include/import/eb64tree.h:39,1
    - Dst: eb_first
      Src: /src/haproxy/include/import/eb64tree.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: eb64_first
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 33
    functionsReached:
    - eb64_entry
    - eb_first
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_first(struct eb_root *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_entry
      Src: /src/haproxy/include/import/eb64tree.h:45,1
    - Dst: eb_last
      Src: /src/haproxy/include/import/eb64tree.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: eb64_last
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 4
    functionsReached:
    - eb_last
    - eb64_entry
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_last(struct eb_root *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_entry
      Src: /src/haproxy/include/import/eb64tree.h:51,1
    - Dst: eb_next
      Src: /src/haproxy/include/import/eb64tree.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb64
    argTypes:
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: eb64_next
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 30
    functionsReached:
    - eb64_entry
    - eb_next
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_next(struct eb64_node *eb64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_entry
      Src: /src/haproxy/include/import/eb64tree.h:57,1
    - Dst: eb_prev
      Src: /src/haproxy/include/import/eb64tree.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb64
    argTypes:
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: eb64_prev
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 3
    functionsReached:
    - eb_prev
    - eb64_entry
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_prev(struct eb64_node *eb64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_entry
      Src: /src/haproxy/include/import/eb64tree.h:63,1
    - Dst: eb_next_dup
      Src: /src/haproxy/include/import/eb64tree.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb64
    argTypes:
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: eb64_next_dup
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 0
    functionsReached:
    - eb_next_dup
    - eb64_entry
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_next_dup(struct eb64_node *eb64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_entry
      Src: /src/haproxy/include/import/eb64tree.h:69,1
    - Dst: eb_prev_dup
      Src: /src/haproxy/include/import/eb64tree.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb64
    argTypes:
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: eb64_prev_dup
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 0
    functionsReached:
    - eb64_entry
    - eb_prev_dup
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_prev_dup(struct eb64_node *eb64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_entry
      Src: /src/haproxy/include/import/eb64tree.h:75,1
    - Dst: eb_next_unique
      Src: /src/haproxy/include/import/eb64tree.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb64
    argTypes:
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: eb64_next_unique
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 0
    functionsReached:
    - eb_next_unique
    - eb64_entry
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_next_unique(struct eb64_node *eb64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb64_entry
      Src: /src/haproxy/include/import/eb64tree.h:81,1
    - Dst: eb_prev_unique
      Src: /src/haproxy/include/import/eb64tree.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb64
    argTypes:
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: eb64_prev_unique
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 0
    functionsReached:
    - eb64_entry
    - eb_prev_unique
    linkageType: ''
    returnType: struct eb64_node
    signature: struct eb64_node *eb64_prev_unique(struct eb64_node *eb64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb_delete
      Src: /src/haproxy/include/import/eb64tree.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb64
    argTypes:
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: eb64_delete
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 35
    functionsReached:
    - eb_delete
    linkageType: ''
    returnType: void
    signature: void eb64_delete(struct eb64_node *eb64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __eb_delete
      Src: /src/haproxy/include/import/eb64tree.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eb64
    argTypes:
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: __eb64_delete
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 1
    functionsReached:
    - __eb_delete
    linkageType: ''
    returnType: forceinline
    signature: forceinline __eb64_delete(struct eb64_node *eb64)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb64tree.h:125,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb64tree.h:129,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb64tree.h:129,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:130,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:130,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:137,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:137,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb64tree.h:140,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb64tree.h:141,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb64tree.h:154,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:155,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:156,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:156,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 165
    functionName: __eb64_lookup
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 3
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: forceinline
    signature: forceinline *__eb64_lookup(struct eb_root *root, u64 x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb64tree.h:179,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb64tree.h:183,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb64tree.h:183,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:184,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:184,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:191,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:191,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb64tree.h:194,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb64tree.h:195,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb64tree.h:208,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:209,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:210,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - root
    - x
    argTypes:
    - struct eb_root*
    - s64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 219
    functionName: __eb64i_lookup
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - container_of
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: forceinline
    signature: forceinline *__eb64i_lookup(struct eb_root *root, s64 x)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb64tree.h:237,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:239,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:239,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:240,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:240,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:241,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:256,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb64tree.h:259,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb64tree.h:259,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:263,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:263,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:266,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:266,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:267,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:267,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:268,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:268,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:269,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:271,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:290,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:292,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:293,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:298,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb64tree.h:298,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:303,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:304,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:305,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:307,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:308,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:309,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:309,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:317,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:317,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb64tree.h:320,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb64tree.h:321,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:331,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:339,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:339,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:340,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:340,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:341,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:341,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:342,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:344,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:347,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:349,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:350,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:352,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:354,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:355,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:356,1
    - Dst: eb_insert_dup
      Src: /src/haproxy/include/import/eb64tree.h:360,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:360,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:361,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:399,1
    - Dst: fls64
      Src: /src/haproxy/include/import/eb64tree.h:399,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:399,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:400,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:400,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 83
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 403
    functionName: __eb64_insert
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 3
    functionsReached:
    - unlikely
    - eb_gettag
    - node::node
    - eb_insert_dup
    - fls64
    - container_of
    - key::key
    - eb_dotag
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      __eb64_insert(struct eb_root *root, struct eb64_node *new)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb64tree.h:421,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:423,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:423,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:424,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:424,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:425,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:442,1
    - Dst: unlikely
      Src: /src/haproxy/include/import/eb64tree.h:445,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb64tree.h:445,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:449,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:449,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:452,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:452,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:453,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:453,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:454,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:454,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:455,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:457,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:476,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:478,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:479,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:484,1
    - Dst: eb_gettag
      Src: /src/haproxy/include/import/eb64tree.h:484,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:489,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:490,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:491,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:493,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:494,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:495,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:495,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:503,1
    - Dst: eb_untag
      Src: /src/haproxy/include/import/eb64tree.h:503,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb64tree.h:506,1
    - Dst: eb_prefetch
      Src: /src/haproxy/include/import/eb64tree.h:507,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:517,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:525,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:525,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:526,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:526,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:527,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:527,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:528,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:530,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:533,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:535,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:536,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:538,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:540,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:541,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:542,1
    - Dst: eb_insert_dup
      Src: /src/haproxy/include/import/eb64tree.h:546,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:546,1
    - Dst: container_of
      Src: /src/haproxy/include/import/eb64tree.h:547,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:585,1
    - Dst: fls64
      Src: /src/haproxy/include/import/eb64tree.h:585,1
    - Dst: key::key
      Src: /src/haproxy/include/import/eb64tree.h:585,1
    - Dst: eb_dotag
      Src: /src/haproxy/include/import/eb64tree.h:586,1
    - Dst: node::node
      Src: /src/haproxy/include/import/eb64tree.h:586,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 83
    argCount: 2
    argNames:
    - root
    - new
    argTypes:
    - struct eb_root*
    - struct eb64_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 589
    functionName: __eb64i_insert
    functionSourceFile: /src/haproxy/include/import/eb64tree.h
    functionUses: 1
    functionsReached:
    - unlikely
    - eb_gettag
    - node::node
    - eb_insert_dup
    - fls64
    - container_of
    - key::key
    - eb_dotag
    - eb_untag
    - eb_prefetch
    linkageType: ''
    returnType: forceinline
    signature: 'forceinline *

      __eb64i_insert(struct eb_root *root, struct eb64_node *new)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb_key_ptr
      Src: /src/haproxy/include/import/cebs_tree.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ceb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: cebs_imm_key
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached:
    - ceb_key_ptr
    linkageType: ''
    returnType: char
    signature: char *cebs_imm_key(const struct ceb_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceb_key_ptr
      Src: /src/haproxy/include/import/cebs_tree.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - kofs
    argTypes:
    - struct ceb_node*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: cebs_ofs_key
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached:
    - ceb_key_ptr
    linkageType: ''
    returnType: char
    signature: char *cebs_ofs_key(const struct ceb_node *node, ptrdiff_t kofs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: cebs_item_insert
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_insert(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: cebs_item_first
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_first(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: cebs_item_last
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_last(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: cebs_item_lookup
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_lookup(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: cebs_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_lookup_le(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: cebs_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_lookup_lt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: cebs_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_lookup_ge(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: cebs_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_lookup_gt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: cebs_item_next_unique
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_next_unique(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: cebs_item_prev_unique
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_prev_unique(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: cebs_item_next_dup
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_next_dup(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: cebs_item_prev_dup
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_prev_dup(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: cebs_item_next
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_next(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: cebs_item_prev
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_prev(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: cebs_item_delete
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_delete(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: cebs_item_pick
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebs_item_pick(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: cebus_item_insert
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_insert(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: cebus_item_first
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_first(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: cebus_item_last
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_last(root, nname, kname, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: cebus_item_lookup
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_lookup(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: cebus_item_lookup_le
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_lookup_le(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 356
    functionName: cebus_item_lookup_lt
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_lookup_lt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: cebus_item_lookup_ge
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_lookup_ge(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: cebus_item_lookup_gt
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_lookup_gt(root, nname, kname, key, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: cebus_item_next
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_next(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 401
    functionName: cebus_item_prev
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_prev(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - item_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: cebus_item_delete
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_delete(root, nname, kname, item_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - root
    - ','
    - nname
    - ','
    - kname
    - ','
    - key
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: cebus_item_pick
    functionSourceFile: /src/haproxy/include/import/cebs_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cebus_item_pick(root, nname, kname, key, type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:58,1
    - Dst: strdup
      Src: /src/haproxy/addons/deviceatlas/da.c:61,1
    - Dst: unlikely
      Src: /src/haproxy/addons/deviceatlas/da.c:62,1
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: da_json_file
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: "int da_json_file(char **args, int section_type, struct proxy *curpx,\n
      \                       const struct proxy *defpx, const char *file, int line,\n
      \                       char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:75,1
    - Dst: atol
      Src: /src/haproxy/addons/deviceatlas/da.c:79,1
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 5
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: da_log_level
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int da_log_level(char **args, int section_type, struct proxy *curpx,\n
      \                       const struct proxy *defpx, const char *file, int line,\n
      \                       char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: da_property_separator
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int da_property_separator(char **args, int section_type, struct proxy
      *curpx,\n                                 const struct proxy *defpx, const char
      *file, int line,\n                                 char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:107,1
    - Dst: strdup
      Src: /src/haproxy/addons/deviceatlas/da.c:110,1
    - Dst: unlikely
      Src: /src/haproxy/addons/deviceatlas/da.c:111,1
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:112,1
    - Dst: strlen
      Src: /src/haproxy/addons/deviceatlas/da.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 118
    functionName: da_properties_cookie
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memprintf
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: "int da_properties_cookie(char **args, int section_type, struct proxy
      *curpx,\n                          const struct proxy *defpx, const char *file,
      int line,\n                          char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:126,1
    - Dst: atol
      Src: /src/haproxy/addons/deviceatlas/da.c:130,1
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:132,1
    - Dst: fprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 142
    functionName: da_cache_size
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - fprintf
    - atol
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int da_cache_size(char **args, int section_type, struct proxy *curpx,\n
      \       const struct proxy *defpx, const char *file, int line,\n        char
      **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/haproxy/addons/deviceatlas/da.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - len
    - buf
    argTypes:
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: da_haproxy_read
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - fread
    linkageType: ''
    returnType: size_t
    signature: size_t da_haproxy_read(void *ctx, size_t len, char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fseek
      Src: /src/haproxy/addons/deviceatlas/da.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - 'off'
    argTypes:
    - void*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: da_haproxy_seek
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - fseek
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_haproxy_seek(void *ctx, off_t off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:159,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/deviceatlas/da.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - severity
    - status
    - fmt
    - args
    argTypes:
    - da_severity_t
    - da_status_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 9
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: da_haproxy_log
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - vsnprintf
    - ha_warning
    linkageType: ''
    returnType: void
    signature: "void da_haproxy_log(da_severity_t severity, da_status_t status,\n\tconst
      char *fmt, va_list args)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/haproxy/addons/deviceatlas/da.c:179,1
    - Dst: unlikely
      Src: /src/haproxy/addons/deviceatlas/da.c:180,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/deviceatlas/da.c:181,1
    - Dst: da_init
      Src: /src/haproxy/addons/deviceatlas/da.c:187,1
    - Dst: da_seterrorfunc
      Src: /src/haproxy/addons/deviceatlas/da.c:188,1
    - Dst: da_atlas_compile
      Src: /src/haproxy/addons/deviceatlas/da.c:189,1
    - Dst: fclose
      Src: /src/haproxy/addons/deviceatlas/da.c:191,1
    - Dst: unlikely
      Src: /src/haproxy/addons/deviceatlas/da.c:192,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/deviceatlas/da.c:193,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:195,1
    - Dst: da_fini
      Src: /src/haproxy/addons/deviceatlas/da.c:196,1
    - Dst: da_atlas_open
      Src: /src/haproxy/addons/deviceatlas/da.c:201,1
    - Dst: unlikely
      Src: /src/haproxy/addons/deviceatlas/da.c:204,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/deviceatlas/da.c:205,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:206,1
    - Dst: da_fini
      Src: /src/haproxy/addons/deviceatlas/da.c:207,1
    - Dst: strdup
      Src: /src/haproxy/addons/deviceatlas/da.c:215,1
    - Dst: unlikely
      Src: /src/haproxy/addons/deviceatlas/da.c:216,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/deviceatlas/da.c:217,1
    - Dst: da_atlas_close
      Src: /src/haproxy/addons/deviceatlas/da.c:218,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:219,1
    - Dst: da_fini
      Src: /src/haproxy/addons/deviceatlas/da.c:220,1
    - Dst: strlen
      Src: /src/haproxy/addons/deviceatlas/da.c:224,1
    - Dst: da_atlas_header_evidence_id
      Src: /src/haproxy/addons/deviceatlas/da.c:227,1
    - Dst: strlen
      Src: /src/haproxy/addons/deviceatlas/da.c:233,1
    - Dst: shm_open
      Src: /src/haproxy/addons/deviceatlas/da.c:238,1
    - Dst: mmap
      Src: /src/haproxy/addons/deviceatlas/da.c:239,1
    - Dst: close
      Src: /src/haproxy/addons/deviceatlas/da.c:241,1
    - Dst: fprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:245,1
    - Dst: fprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:250,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 169
    functionDepth: 9
    functionLinenumber: 169
    functionLinenumberEnd: 255
    functionName: init_deviceatlas
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fclose
    - mmap
    - da_init
    - da_atlas_close
    - close
    - shm_open
    - free
    - da_fini
    - da_atlas_header_evidence_id
    - da_atlas_compile
    - strlen
    - fprintf
    - ha_alert
    - da_seterrorfunc
    - fopen
    - da_atlas_open
    - strdup
    linkageType: ''
    returnType: int
    signature: int init_deviceatlas(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:260,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:264,1
    - Dst: da_atlas_close
      Src: /src/haproxy/addons/deviceatlas/da.c:265,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:266,1
    - Dst: da_fini
      Src: /src/haproxy/addons/deviceatlas/da.c:267,1
    - Dst: munmap
      Src: /src/haproxy/addons/deviceatlas/da.c:271,1
    - Dst: close
      Src: /src/haproxy/addons/deviceatlas/da.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: deinit_deviceatlas
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - munmap
    - da_atlas_close
    - free
    - da_fini
    - close
    linkageType: ''
    returnType: void
    signature: void deinit_deviceatlas(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/addons/deviceatlas/da.c:291,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/deviceatlas/da.c:293,1
    - Dst: strlcpy2
      Src: /src/haproxy/addons/deviceatlas/da.c:297,1
    - Dst: fopen
      Src: /src/haproxy/addons/deviceatlas/da.c:298,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/deviceatlas/da.c:300,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/deviceatlas/da.c:303,1
    - Dst: da_atlas_compile
      Src: /src/haproxy/addons/deviceatlas/da.c:308,1
    - Dst: fclose
      Src: /src/haproxy/addons/deviceatlas/da.c:310,1
    - Dst: da_atlas_open
      Src: /src/haproxy/addons/deviceatlas/da.c:312,1
    - Dst: da_atlas_close
      Src: /src/haproxy/addons/deviceatlas/da.c:314,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:315,1
    - Dst: strlen
      Src: /src/haproxy/addons/deviceatlas/da.c:322,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/deviceatlas/da.c:328,1
    - Dst: da_getdatacreationiso8601
      Src: /src/haproxy/addons/deviceatlas/da.c:329,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/deviceatlas/da.c:331,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:332,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:335,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/deviceatlas/da.c:338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 276
    functionDepth: 9
    functionLinenumber: 276
    functionLinenumberEnd: 342
    functionName: da_haproxy_checkinst
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - fclose
    - da_getdatacreationiso8601
    - da_atlas_close
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - free
    - strlcpy2
    - da_atlas_compile
    - ha_alert
    - fopen
    - da_atlas_open
    - strlen
    linkageType: ''
    returnType: void
    signature: void da_haproxy_checkinst(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/addons/deviceatlas/da.c:353,1
    - Dst: chunk_reset
      Src: /src/haproxy/addons/deviceatlas/da.c:354,1
    - Dst: da_atlas_getpropid
      Src: /src/haproxy/addons/deviceatlas/da.c:361,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/deviceatlas/da.c:364,1
    - Dst: unlikely
      Src: /src/haproxy/addons/deviceatlas/da.c:367,1
    - Dst: da_atlas_getproptype
      Src: /src/haproxy/addons/deviceatlas/da.c:367,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/deviceatlas/da.c:368,1
    - Dst: da_getpropboolean
      Src: /src/haproxy/addons/deviceatlas/da.c:375,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/deviceatlas/da.c:377,1
    - Dst: da_getpropinteger
      Src: /src/haproxy/addons/deviceatlas/da.c:384,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/deviceatlas/da.c:386,1
    - Dst: da_getpropstring
      Src: /src/haproxy/addons/deviceatlas/da.c:392,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/deviceatlas/da.c:394,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/deviceatlas/da.c:402,1
    - Dst: da_close
      Src: /src/haproxy/addons/deviceatlas/da.c:405,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 3
    argNames:
    - args
    - smp
    - devinfo
    argTypes:
    - struct arg*
    - struct sample*
    - da_deviceinfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 417
    functionName: da_haproxy
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - unlikely
    - da_close
    - chunk_appendf
    - get_trash_chunk
    - da_getpropstring
    - da_getpropboolean
    - da_atlas_getpropid
    - da_atlas_getproptype
    - chunk_reset
    - da_getpropinteger
    linkageType: ''
    returnType: int
    signature: int da_haproxy(const struct arg *args, struct sample *smp, da_deviceinfo_t
      *devinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/addons/deviceatlas/da.c:426,1
    - Dst: da_haproxy_checkinst
      Src: /src/haproxy/addons/deviceatlas/da.c:430,1
    - Dst: memcpy
      Src: /src/haproxy/addons/deviceatlas/da.c:433,1
    - Dst: da_search
      Src: /src/haproxy/addons/deviceatlas/da.c:436,1
    - Dst: da_haproxy
      Src: /src/haproxy/addons/deviceatlas/da.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 419
    functionDepth: 10
    functionLinenumber: 419
    functionLinenumberEnd: 440
    functionName: da_haproxy_conv
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - unlikely
    - da_haproxy_checkinst
    - memcpy
    - da_haproxy
    - da_search
    linkageType: ''
    returnType: int
    signature: int da_haproxy_conv(const struct arg *args, struct sample *smp, void
      *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/addons/deviceatlas/da.c:455,1
    - Dst: da_haproxy_checkinst
      Src: /src/haproxy/addons/deviceatlas/da.c:459,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/addons/deviceatlas/da.c:462,1
    - Dst: unlikely
      Src: /src/haproxy/addons/deviceatlas/da.c:463,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/addons/deviceatlas/da.c:466,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/addons/deviceatlas/da.c:466,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/addons/deviceatlas/da.c:475,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/addons/deviceatlas/da.c:478,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/addons/deviceatlas/da.c:479,1
    - Dst: memcpy
      Src: /src/haproxy/addons/deviceatlas/da.c:490,1
    - Dst: memcpy
      Src: /src/haproxy/addons/deviceatlas/da.c:494,1
    - Dst: strcasecmp
      Src: /src/haproxy/addons/deviceatlas/da.c:499,1
    - Dst: da_atlas_accept_language_evidence_id
      Src: /src/haproxy/addons/deviceatlas/da.c:500,1
    - Dst: strcasecmp
      Src: /src/haproxy/addons/deviceatlas/da.c:501,1
    - Dst: http_extract_cookie_value
      Src: /src/haproxy/addons/deviceatlas/da.c:510,1
    - Dst: da_atlas_clientprop_evidence_id
      Src: /src/haproxy/addons/deviceatlas/da.c:517,1
    - Dst: da_atlas_header_evidence_id
      Src: /src/haproxy/addons/deviceatlas/da.c:519,1
    - Dst: memcpy
      Src: /src/haproxy/addons/deviceatlas/da.c:527,1
    - Dst: da_searchv
      Src: /src/haproxy/addons/deviceatlas/da.c:534,1
    - Dst: da_haproxy
      Src: /src/haproxy/addons/deviceatlas/da.c:537,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 444
    functionDepth: 10
    functionLinenumber: 444
    functionLinenumberEnd: 538
    functionName: da_haproxy_fetch
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - unlikely
    - htx_get_next_blk
    - da_atlas_clientprop_evidence_id
    - da_haproxy_checkinst
    - memcpy
    - da_haproxy
    - htx_get_first_blk
    - strcasecmp
    - htx_get_blk_type
    - da_atlas_header_evidence_id
    - da_searchv
    - da_atlas_accept_language_evidence_id
    - http_extract_cookie_value
    - smp_prefetch_htx
    - htx_get_blk_name
    - htx_get_blk_value
    linkageType: ''
    returnType: int
    signature: int da_haproxy_fetch(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:570,1
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:572,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/addons/deviceatlas/da.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 565
    functionDepth: 5
    functionLinenumber: 565
    functionLinenumberEnd: 575
    functionName: da_haproxy_register_build_options
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - memprintf
    - hap_register_build_opts
    linkageType: ''
    returnType: void
    signature: void da_haproxy_register_build_options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atlas
    argTypes:
    - da_atlas_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 6
    functionName: da_atlas_cache_init
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dacache.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void da_atlas_cache_init(const da_atlas_t *atlas)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - atlas
    - h
    - info
    argTypes:
    - da_atlas_t*
    - unsigned long long
    - da_deviceinfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 13
    functionName: da_atlas_cache_insert
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dacache.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_atlas_cache_insert(const da_atlas_t *atlas, unsigned
      long long h, da_deviceinfo_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - atlas
    - h
    - info
    argTypes:
    - da_atlas_t*
    - unsigned long long
    - da_deviceinfo_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: da_atlas_cache_search
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dacache.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_atlas_cache_search(const da_atlas_t *atlas, unsigned
      long long h, da_deviceinfo_t **info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atlas
    argTypes:
    - da_atlas_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: da_atlas_cache_close
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dacache.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void da_atlas_cache_close(da_atlas_t *atlas)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: da_init
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void da_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: da_fini
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void da_fini()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - callback
    argTypes:
    - da_errorfunc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: da_seterrorfunc
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void da_seterrorfunc(da_errorfunc_t callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fieldtype
    argTypes:
    - da_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: da_typename
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      da_typename(da_type_t fieldtype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atlas
    argTypes:
    - da_atlas_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: da_getdataversion
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      da_getdataversion(const da_atlas_t *atlas)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/haproxy/addons/deviceatlas/dummy/dac.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atlas
    argTypes:
    - da_atlas_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: da_getdatacreation
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 0
    functionsReached:
    - time
    linkageType: ''
    returnType: time_t
    signature: time_t da_getdatacreation(const da_atlas_t *atlas)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atlas
    argTypes:
    - da_atlas_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: da_getdatacreationiso8601
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      da_getdatacreationiso8601(const da_atlas_t *atlas)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - readfn
    - rewind
    - ptr
    - size
    argTypes:
    - void*
    - da_read_fn
    - da_setpos_fn
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: da_atlas_compile
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_atlas_compile(void *ctx, da_read_fn readfn, da_setpos_fn
      rewind, void **ptr, size_t *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/addons/deviceatlas/dummy/dac.c:66,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/dummy/dac.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - atlas
    - extraprops
    - ptr
    - len
    argTypes:
    - da_atlas_t*
    - da_property_decl_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: da_atlas_open
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 2
    functionsReached:
    - malloc
    - free
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_atlas_open(da_atlas_t *atlas, da_property_decl_t *extraprops,
      const void *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - atlas
    argTypes:
    - da_atlas_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: da_atlas_close
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void da_atlas_close(da_atlas_t *atlas)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atlas
    argTypes:
    - da_atlas_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: da_atlas_clientprop_evidence_id
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: da_evidence_id_t
    signature: da_evidence_id_t da_atlas_clientprop_evidence_id(const da_atlas_t *atlas)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atlas
    argTypes:
    - da_atlas_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: da_atlas_accept_language_evidence_id
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: da_evidence_id_t
    signature: da_evidence_id_t da_atlas_accept_language_evidence_id(const da_atlas_t
      *atlas)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - atlas
    - evidence_name
    argTypes:
    - da_atlas_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: da_atlas_header_evidence_id
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: da_evidence_id_t
    signature: da_evidence_id_t da_atlas_header_evidence_id(const da_atlas_t *atlas,
      const char *evidence_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - atlas
    - propid
    - type
    argTypes:
    - da_atlas_t*
    - da_propid_t
    - da_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: da_atlas_getproptype
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_atlas_getproptype(const da_atlas_t *atlas, da_propid_t
      propid, da_type_t *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - atlas
    - propid
    - name
    argTypes:
    - da_atlas_t*
    - da_propid_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: da_atlas_getpropname
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_atlas_getpropname(const da_atlas_t *atlas, da_propid_t
      propid, const char **name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - atlas
    - propname
    - property
    argTypes:
    - da_atlas_t*
    - char*
    - da_propid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: da_atlas_getpropid
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_atlas_getpropid(const da_atlas_t *atlas, const char
      *propname, da_propid_t *property)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atlas
    argTypes:
    - da_atlas_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: da_atlas_getpropcount
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t da_atlas_getpropcount(const da_atlas_t *atlas)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/addons/deviceatlas/dummy/dac.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - atlas
    - result
    - evidence
    - count
    argTypes:
    - da_atlas_t*
    - da_deviceinfo_t*
    - da_evidence_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: da_searchv
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_searchv(const da_atlas_t *atlas, da_deviceinfo_t *result,
      da_evidence_t *evidence, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/addons/deviceatlas/dummy/dac.c:135,1
    - Dst: va_arg
      Src: /src/haproxy/addons/deviceatlas/dummy/dac.c:137,1
    - Dst: va_arg
      Src: /src/haproxy/addons/deviceatlas/dummy/dac.c:140,1
    - Dst: va_end
      Src: /src/haproxy/addons/deviceatlas/dummy/dac.c:142,1
    - Dst: da_searchv
      Src: /src/haproxy/addons/deviceatlas/dummy/dac.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - atlas
    - result
    argTypes:
    - da_atlas_t*
    - da_deviceinfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 144
    functionName: da_search
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - da_searchv
    - va_arg
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_search(const da_atlas_t *atlas, da_deviceinfo_t *result,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - da_deviceinfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: da_getpropcount
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t da_getpropcount(const da_deviceinfo_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - info
    - propid
    argTypes:
    - da_deviceinfo_t*
    - da_propid_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: da_getfirstprop
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_getfirstprop(const da_deviceinfo_t *info, da_propid_t
      **propid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - info
    - propid
    argTypes:
    - da_deviceinfo_t*
    - da_propid_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: da_getnextprop
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_getnextprop(const da_deviceinfo_t *info, da_propid_t
      **propid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sr
    argTypes:
    - da_deviceinfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: da_close
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void da_close(da_deviceinfo_t *sr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - info
    - propid
    - name
    argTypes:
    - da_deviceinfo_t*
    - da_propid_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: da_getpropname
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_getpropname(const da_deviceinfo_t *info, da_propid_t
      propid, const char **name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - info
    - propid
    - type
    argTypes:
    - da_deviceinfo_t*
    - da_propid_t
    - da_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: da_getproptype
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_getproptype(const da_deviceinfo_t *info, da_propid_t
      propid, da_type_t *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - info
    - property
    - vp
    argTypes:
    - da_deviceinfo_t*
    - da_propid_t
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: da_getpropinteger
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_getpropinteger(const da_deviceinfo_t *info, da_propid_t
      property, long *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - info
    - property
    - vp
    argTypes:
    - da_deviceinfo_t*
    - da_propid_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: da_getpropstring
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_getpropstring(const da_deviceinfo_t *info, da_propid_t
      property, const char **vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - info
    - property
    - vp
    argTypes:
    - da_deviceinfo_t*
    - da_propid_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: da_getpropboolean
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_getpropboolean(const da_deviceinfo_t *info, da_propid_t
      property, bool *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - atlas
    - property
    argTypes:
    - da_atlas_t*
    - da_propid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: da_get_property_name
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/dac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      da_get_property_name(const da_atlas_t *atlas, da_propid_t property)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - path
    - m
    - p
    - l
    argTypes:
    - char*
    - void*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: da_atlas_read_mapped
    functionSourceFile: /src/haproxy/addons/deviceatlas/dummy/Os/daunix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: da_status_t
    signature: da_status_t da_atlas_read_mapped(const char *path, void *m, void **p,
      size_t *l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/http.c:43,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/http.c:46,1
    - Dst: htxbuf
      Src: /src/haproxy/addons/ot/src/http.c:48,1
    - Dst: htx_is_empty
      Src: /src/haproxy/addons/ot/src/http.c:50,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/http.c:51,1
    - Dst: htx_get_first
      Src: /src/haproxy/addons/ot/src/http.c:53,1
    - Dst: htx_get_next
      Src: /src/haproxy/addons/ot/src/http.c:53,1
    - Dst: htx_get_blk
      Src: /src/haproxy/addons/ot/src/http.c:54,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/addons/ot/src/http.c:55,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/addons/ot/src/http.c:58,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/addons/ot/src/http.c:59,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/http.c:61,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/http.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 68
    functionName: flt_ot_http_headers_dump
    functionSourceFile: /src/haproxy/addons/ot/src/http.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - htx_get_blk_name
    - htx_get_blk
    - htx_get_blk_value
    - FLT_OT_FUNC
    - htx_get_first
    - FLT_OT_RETURN
    - htx_get_blk_type
    - FLT_OT_DBG
    - htx_is_empty
    - htx_get_next
    linkageType: ''
    returnType: void
    signature: void flt_ot_http_headers_dump(const struct channel *chn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_STR_ISVALID
      Src: /src/haproxy/addons/ot/src/http.c:93,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/http.c:97,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/http.c:97,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/http.c:100,1
    - Dst: FLT_OT_STR_ISVALID
      Src: /src/haproxy/addons/ot/src/http.c:112,1
    - Dst: htxbuf
      Src: /src/haproxy/addons/ot/src/http.c:115,1
    - Dst: htx_get_first
      Src: /src/haproxy/addons/ot/src/http.c:117,1
    - Dst: htx_get_next
      Src: /src/haproxy/addons/ot/src/http.c:117,1
    - Dst: htx_get_blk
      Src: /src/haproxy/addons/ot/src/http.c:118,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/addons/ot/src/http.c:119,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/addons/ot/src/http.c:122,1
    - Dst: strncasecmp
      Src: /src/haproxy/addons/ot/src/http.c:124,1
    - Dst: otc_text_map_new
      Src: /src/haproxy/addons/ot/src/http.c:126,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/http.c:128,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/addons/ot/src/http.c:134,1
    - Dst: ist
      Src: /src/haproxy/addons/ot/src/http.c:145,1
    - Dst: otc_text_map_add
      Src: /src/haproxy/addons/ot/src/http.c:154,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/http.c:155,1
    - Dst: otc_text_map_destroy
      Src: /src/haproxy/addons/ot/src/http.c:157,1
    - Dst: ot_text_map_show
      Src: /src/haproxy/addons/ot/src/http.c:167,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/http.c:170,1
    - Dst: otc_text_map_destroy
      Src: /src/haproxy/addons/ot/src/http.c:172,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/http.c:175,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 4
    argNames:
    - chn
    - prefix
    - len
    - err
    argTypes:
    - struct channel*
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 176
    functionName: flt_ot_http_headers_get
    functionSourceFile: /src/haproxy/addons/ot/src/http.c
    functionUses: 0
    functionsReached:
    - otc_text_map_add
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - otc_text_map_destroy
    - ot_text_map_show
    - htx_get_blk_name
    - ist
    - FLT_OT_RETURN_PTR
    - htx_get_blk_type
    - htxbuf
    - htx_get_first
    - FLT_OT_DBG
    - otc_text_map_new
    - htx_get_blk_value
    - htx_get_next
    - FLT_OT_STR_ISVALID
    - htx_get_blk
    - FLT_OT_DPTR_ARGS
    - strncasecmp
    linkageType: ''
    returnType: struct otc_text_map
    signature: struct otc_text_map *flt_ot_http_headers_get(struct channel *chn, const
      char *prefix, size_t len, char **err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/http.c:205,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/http.c:205,1
    - Dst: FLT_OT_STR_ISVALID
      Src: /src/haproxy/addons/ot/src/http.c:207,1
    - Dst: FLT_OT_STR_ISVALID
      Src: /src/haproxy/addons/ot/src/http.c:207,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/http.c:208,1
    - Dst: htxbuf
      Src: /src/haproxy/addons/ot/src/http.c:210,1
    - Dst: htx_is_empty
      Src: /src/haproxy/addons/ot/src/http.c:216,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/http.c:217,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/http.c:219,1
    - Dst: FLT_OT_STR_ISVALID
      Src: /src/haproxy/addons/ot/src/http.c:222,1
    - Dst: ist2
      Src: /src/haproxy/addons/ot/src/http.c:223,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/http.c:223,1
    - Dst: FLT_OT_STR_ISVALID
      Src: /src/haproxy/addons/ot/src/http.c:225,1
    - Dst: ist2
      Src: /src/haproxy/addons/ot/src/http.c:226,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/http.c:226,1
    - Dst: flt_ot_trash_alloc
      Src: /src/haproxy/addons/ot/src/http.c:229,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/http.c:231,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/ot/src/http.c:233,1
    - Dst: ist2
      Src: /src/haproxy/addons/ot/src/http.c:235,1
    - Dst: http_find_header
      Src: /src/haproxy/addons/ot/src/http.c:239,1
    - Dst: ist
      Src: /src/haproxy/addons/ot/src/http.c:239,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/addons/ot/src/http.c:240,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/addons/ot/src/http.c:242,1
    - Dst: FLT_OT_STR_ISVALID
      Src: /src/haproxy/addons/ot/src/http.c:249,1
    - Dst: isteqi
      Src: /src/haproxy/addons/ot/src/http.c:252,1
    - Dst: http_remove_header
      Src: /src/haproxy/addons/ot/src/http.c:253,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/http.c:254,1
    - Dst: http_add_header
      Src: /src/haproxy/addons/ot/src/http.c:264,1
    - Dst: ist
      Src: /src/haproxy/addons/ot/src/http.c:264,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/http.c:267,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/http.c:270,1
    - Dst: flt_ot_trash_free
      Src: /src/haproxy/addons/ot/src/http.c:273,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/http.c:275,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 5
    argNames:
    - chn
    - prefix
    - name
    - value
    - err
    argTypes:
    - struct channel*
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 276
    functionName: flt_ot_http_header_set
    functionSourceFile: /src/haproxy/addons/ot/src/http.c
    functionUses: 0
    functionsReached:
    - FLT_OT_ERR
    - http_find_header
    - FLT_OT_FUNC
    - http_remove_header
    - htx_get_blk_name
    - htx_is_empty
    - http_add_header
    - ist2
    - ist
    - chunk_printf
    - isteqi
    - htxbuf
    - flt_ot_trash_alloc
    - FLT_OT_DBG
    - htx_get_blk_value
    - FLT_OT_STR_ISVALID
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    - flt_ot_trash_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int flt_ot_http_header_set(struct channel *chn, const char *prefix,
      const char *name, const char *value, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/http.c:298,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/http.c:298,1
    - Dst: flt_ot_http_header_set
      Src: /src/haproxy/addons/ot/src/http.c:300,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/http.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - chn
    - prefix
    - err
    argTypes:
    - struct channel*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: flt_ot_http_headers_remove
    functionSourceFile: /src/haproxy/addons/ot/src/http.c
    functionUses: 0
    functionsReached:
    - flt_ot_http_header_set
    - FLT_OT_RETURN_INT
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    linkageType: ''
    returnType: int
    signature: int flt_ot_http_headers_remove(struct channel *chn, const char *prefix,
      char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vars_rdlock
      Src: /src/haproxy/addons/ot/src/vars.c:47,1
    - Dst: cebu64_imm_first
      Src: /src/haproxy/addons/ot/src/vars.c:49,1
    - Dst: cebu64_imm_next
      Src: /src/haproxy/addons/ot/src/vars.c:51,1
    - Dst: container_of
      Src: /src/haproxy/addons/ot/src/vars.c:52,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:54,1
    - Dst: b_data
      Src: /src/haproxy/addons/ot/src/vars.c:54,1
    - Dst: b_orig
      Src: /src/haproxy/addons/ot/src/vars.c:54,1
    - Dst: vars_rdunlock
      Src: /src/haproxy/addons/ot/src/vars.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - vars
    - scope
    argTypes:
    - struct vars*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: flt_ot_vars_scope_dump
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_rdlock
    - b_orig
    - cebu64_imm_next
    - vars_rdunlock
    - cebu64_imm_first
    - container_of
    - FLT_OT_DBG
    - b_data
    linkageType: ''
    returnType: void
    signature: void flt_ot_vars_scope_dump(struct vars *vars, const char *scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:77,1
    - Dst: flt_ot_vars_scope_dump
      Src: /src/haproxy/addons/ot/src/vars.c:84,1
    - Dst: flt_ot_vars_scope_dump
      Src: /src/haproxy/addons/ot/src/vars.c:85,1
    - Dst: flt_ot_vars_scope_dump
      Src: /src/haproxy/addons/ot/src/vars.c:86,1
    - Dst: flt_ot_vars_scope_dump
      Src: /src/haproxy/addons/ot/src/vars.c:87,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/vars.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: flt_ot_vars_dump
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - flt_ot_vars_scope_dump
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    linkageType: ''
    returnType: void
    signature: void flt_ot_vars_dump(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/vars.c:116,1
    - Dst: smp_set_owner
      Src: /src/haproxy/addons/ot/src/vars.c:117,1
    - Dst: chunk_initstr
      Src: /src/haproxy/addons/ot/src/vars.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - s
    - smp
    - opt
    - type
    - data
    argTypes:
    - struct stream*
    - struct sample*
    - uint
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: flt_ot_smp_init
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - chunk_initstr
    - smp_set_owner
    - memset
    linkageType: ''
    returnType: void
    signature: void flt_ot_smp_init(struct stream *s, struct sample *smp, uint opt,
      int type, const char *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:148,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:148,1
    - Dst: FLT_OT_DBG_BUF
      Src: /src/haproxy/addons/ot/src/vars.c:150,1
    - Dst: b_orig
      Src: /src/haproxy/addons/ot/src/vars.c:152,1
    - Dst: chunk_init
      Src: /src/haproxy/addons/ot/src/vars.c:154,1
    - Dst: FLT_OT_MALLOC
      Src: /src/haproxy/addons/ot/src/vars.c:154,1
    - Dst: b_orig
      Src: /src/haproxy/addons/ot/src/vars.c:156,1
    - Dst: b_orig
      Src: /src/haproxy/addons/ot/src/vars.c:159,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:160,1
    - Dst: UINT64_C
      Src: /src/haproxy/addons/ot/src/vars.c:162,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:163,1
    - Dst: b_room
      Src: /src/haproxy/addons/ot/src/vars.c:165,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:166,1
    - Dst: b_data
      Src: /src/haproxy/addons/ot/src/vars.c:169,1
    - Dst: b_putchr
      Src: /src/haproxy/addons/ot/src/vars.c:171,1
    - Dst: __b_putblk
      Src: /src/haproxy/addons/ot/src/vars.c:172,1
    - Dst: FLT_OT_DBG_BUF
      Src: /src/haproxy/addons/ot/src/vars.c:174,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/vars.c:178,1
    - Dst: b_orig
      Src: /src/haproxy/addons/ot/src/vars.c:178,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - data
    - name
    - len
    - err
    argTypes:
    - struct sample_data*
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 181
    functionName: flt_ot_smp_add
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - __b_putblk
    - b_orig
    - UINT64_C
    - FLT_OT_ERR
    - FLT_OT_DBG_BUF
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - b_room
    - chunk_init
    - FLT_OT_MALLOC
    - b_data
    - b_putchr
    - FLT_OT_RETURN_INT
    linkageType: ''
    returnType: int
    signature: int flt_ot_smp_add(struct sample_data *data, const char *name, size_t
      len, char **err)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:206,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:206,1
    - Dst: FLT_OT_STR_ISVALID
      Src: /src/haproxy/addons/ot/src/vars.c:208,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:209,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:220,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/vars.c:227,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:229,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/vars.c:233,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:245,1
    - Dst: isupper
      Src: /src/haproxy/addons/ot/src/vars.c:257,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:267,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:272,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 6
    argNames:
    - var_name
    - size
    - len
    - name
    - flag_cpy
    - err
    argTypes:
    - char*
    - size_t
    - int*
    - char*
    - bool
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 273
    functionName: flt_ot_normalize_name
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - FLT_OT_STR_ISVALID
    - FLT_OT_ERR
    - memcpy
    - isupper
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - strlen
    linkageType: ''
    returnType: int
    signature: int flt_ot_normalize_name(char *var_name, size_t size, int *len, const
      char *name, bool flag_cpy, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:301,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:301,1
    - Dst: flt_ot_normalize_name
      Src: /src/haproxy/addons/ot/src/vars.c:303,1
    - Dst: flt_ot_normalize_name
      Src: /src/haproxy/addons/ot/src/vars.c:304,1
    - Dst: flt_ot_normalize_name
      Src: /src/haproxy/addons/ot/src/vars.c:305,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:308,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 7
    argNames:
    - scope
    - prefix
    - name
    - flag_cpy
    - var_name
    - size
    - err
    argTypes:
    - char*
    - char*
    - char*
    - bool
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 311
    functionName: flt_ot_var_name
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    - flt_ot_normalize_name
    linkageType: ''
    returnType: int
    signature: int flt_ot_var_name(const char *scope, const char *prefix, const char
      *name, bool flag_cpy, char *var_name, size_t size, char **err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:338,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:338,1
    - Dst: flt_ot_var_name
      Src: /src/haproxy/addons/ot/src/vars.c:344,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:346,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/addons/ot/src/vars.c:355,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:356,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:359,1
    - Dst: FLT_OT_DBG_BUF
      Src: /src/haproxy/addons/ot/src/vars.c:364,1
    - Dst: b_data
      Src: /src/haproxy/addons/ot/src/vars.c:366,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/vars.c:367,1
    - Dst: b_orig
      Src: /src/haproxy/addons/ot/src/vars.c:367,1
    - Dst: abs
      Src: /src/haproxy/addons/ot/src/vars.c:368,1
    - Dst: b_data
      Src: /src/haproxy/addons/ot/src/vars.c:370,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:371,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/vars.c:378,1
    - Dst: b_orig
      Src: /src/haproxy/addons/ot/src/vars.c:378,1
    - Dst: func
      Src: /src/haproxy/addons/ot/src/vars.c:381,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:395,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 6
    argNames:
    - smp
    - scope
    - prefix
    - err
    - func
    - ptr
    argTypes:
    - struct sample*
    - char*
    - char*
    - char**
    - flt_ot_ctx_loop_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 396
    functionName: flt_ot_ctx_loop
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - typeof
    - b_orig
    - memcpy
    - FLT_OT_ERR
    - FLT_OT_DBG_BUF
    - FLT_OT_FUNC
    - abs
    - FLT_OT_DPTR_ARGS
    - flt_ot_var_name
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - b_data
    - func
    - vars_get_by_name
    linkageType: ''
    returnType: int
    signature: int flt_ot_ctx_loop(struct sample *smp, const char *scope, const char
      *prefix, char **err, flt_ot_ctx_loop_cb func, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:424,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:424,1
    - Dst: strncmp
      Src: /src/haproxy/addons/ot/src/vars.c:426,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:427,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 8
    argNames:
    - smp
    - idx
    - scope
    - prefix
    - name
    - name_len
    - err
    - ptr
    argTypes:
    - struct sample*
    - size_t
    - char*
    - char*
    - char*
    - FLT_OT_VAR_CTX_SIZE
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 433
    functionName: flt_ot_ctx_set_cb
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - strncmp
    - FLT_OT_DBG
    - FLT_OT_RETURN_INT
    linkageType: ''
    returnType: int
    signature: int flt_ot_ctx_set_cb(struct sample *smp, size_t idx, const char *scope,
      const char *prefix, const char *name, FLT_OT_VAR_CTX_SIZE name_len, char **err,
      void *ptr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:462,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:462,1
    - Dst: flt_ot_var_name
      Src: /src/haproxy/addons/ot/src/vars.c:468,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:470,1
    - Dst: flt_ot_var_name
      Src: /src/haproxy/addons/ot/src/vars.c:473,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:475,1
    - Dst: flt_ot_smp_init
      Src: /src/haproxy/addons/ot/src/vars.c:477,1
    - Dst: flt_ot_ctx_loop
      Src: /src/haproxy/addons/ot/src/vars.c:479,1
    - Dst: flt_ot_smp_add
      Src: /src/haproxy/addons/ot/src/vars.c:481,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:492,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/addons/ot/src/vars.c:494,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:495,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:500,1
    - Dst: b_data
      Src: /src/haproxy/addons/ot/src/vars.c:500,1
    - Dst: b_orig
      Src: /src/haproxy/addons/ot/src/vars.c:500,1
    - Dst: b_data
      Src: /src/haproxy/addons/ot/src/vars.c:502,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/vars.c:506,1
    - Dst: b_orig
      Src: /src/haproxy/addons/ot/src/vars.c:506,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:508,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 6
    argNames:
    - s
    - scope
    - prefix
    - name
    - opt
    - err
    argTypes:
    - struct stream*
    - char*
    - char*
    - char*
    - uint
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 454
    functionDepth: 6
    functionLinenumber: 454
    functionLinenumberEnd: 509
    functionName: flt_ot_ctx_set
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - flt_ot_ctx_loop
    - b_orig
    - FLT_OT_ERR
    - flt_ot_smp_add
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - flt_ot_var_name
    - flt_ot_smp_init
    - FLT_OT_FREE
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - b_data
    - vars_set_by_name_ifexist
    linkageType: ''
    returnType: int
    signature: int flt_ot_ctx_set(struct stream *s, const char *scope, const char
      *prefix, const char *name, uint opt, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:534,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:534,1
    - Dst: flt_ot_var_name
      Src: /src/haproxy/addons/ot/src/vars.c:536,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:538,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/vars.c:541,1
    - Dst: vars_check_arg
      Src: /src/haproxy/addons/ot/src/vars.c:546,1
    - Dst: FLT_OT_ERR_APPEND
      Src: /src/haproxy/addons/ot/src/vars.c:547,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:549,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - scope
    - prefix
    - name
    - err
    argTypes:
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 528
    functionDepth: 5
    functionLinenumber: 528
    functionLinenumberEnd: 555
    functionName: flt_ot_var_register
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - memset
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - flt_ot_var_name
    - FLT_OT_RETURN_INT
    - FLT_OT_ERR_APPEND
    - FLT_OT_DBG
    - vars_check_arg
    linkageType: ''
    returnType: int
    signature: int flt_ot_var_register(const char *scope, const char *prefix, const
      char *name, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:583,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:583,1
    - Dst: flt_ot_var_name
      Src: /src/haproxy/addons/ot/src/vars.c:585,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:587,1
    - Dst: flt_ot_smp_init
      Src: /src/haproxy/addons/ot/src/vars.c:589,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/addons/ot/src/vars.c:591,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:592,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:594,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/vars.c:598,1
    - Dst: flt_ot_ctx_set
      Src: /src/haproxy/addons/ot/src/vars.c:599,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - s
    - scope
    - prefix
    - name
    - value
    - opt
    - err
    argTypes:
    - struct stream*
    - char*
    - char*
    - char*
    - char*
    - uint
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 577
    functionDepth: 7
    functionLinenumber: 577
    functionLinenumberEnd: 603
    functionName: flt_ot_var_set
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - strcmp
    - FLT_OT_DPTR_ARGS
    - flt_ot_var_name
    - flt_ot_smp_init
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - vars_set_by_name_ifexist
    - flt_ot_ctx_set
    linkageType: ''
    returnType: int
    signature: int flt_ot_var_set(struct stream *s, const char *scope, const char
      *prefix, const char *name, const char *value, uint opt, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:632,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:632,1
    - Dst: flt_ot_var_name
      Src: /src/haproxy/addons/ot/src/vars.c:634,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:636,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:638,1
    - Dst: flt_ot_smp_init
      Src: /src/haproxy/addons/ot/src/vars.c:641,1
    - Dst: vars_unset_by_name_ifexist
      Src: /src/haproxy/addons/ot/src/vars.c:643,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:644,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:646,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 8
    argNames:
    - smp
    - idx
    - scope
    - prefix
    - name
    - name_len
    - err
    - ptr
    argTypes:
    - struct sample*
    - size_t
    - char*
    - char*
    - char*
    - FLT_OT_VAR_CTX_SIZE
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 626
    functionDepth: 4
    functionLinenumber: 626
    functionLinenumberEnd: 652
    functionName: flt_ot_vars_unset_cb
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - flt_ot_var_name
    - flt_ot_smp_init
    - vars_unset_by_name_ifexist
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    linkageType: ''
    returnType: int
    signature: int flt_ot_vars_unset_cb(struct sample *smp, size_t idx, const char
      *scope, const char *prefix, const char *name, FLT_OT_VAR_CTX_SIZE name_len,
      char **err, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:678,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:678,1
    - Dst: flt_ot_smp_init
      Src: /src/haproxy/addons/ot/src/vars.c:680,1
    - Dst: flt_ot_ctx_loop
      Src: /src/haproxy/addons/ot/src/vars.c:682,1
    - Dst: flt_ot_var_name
      Src: /src/haproxy/addons/ot/src/vars.c:688,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:690,1
    - Dst: flt_ot_smp_init
      Src: /src/haproxy/addons/ot/src/vars.c:692,1
    - Dst: vars_unset_by_name_ifexist
      Src: /src/haproxy/addons/ot/src/vars.c:694,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:695,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:697,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:703,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - s
    - scope
    - prefix
    - opt
    - err
    argTypes:
    - struct stream*
    - char*
    - char*
    - uint
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 672
    functionDepth: 5
    functionLinenumber: 672
    functionLinenumberEnd: 704
    functionName: flt_ot_vars_unset
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - flt_ot_ctx_loop
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - flt_ot_var_name
    - flt_ot_smp_init
    - vars_unset_by_name_ifexist
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    linkageType: ''
    returnType: int
    signature: int flt_ot_vars_unset(struct stream *s, const char *scope, const char
      *prefix, uint opt, char **err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:734,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:734,1
    - Dst: flt_ot_var_name
      Src: /src/haproxy/addons/ot/src/vars.c:736,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:738,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:740,1
    - Dst: flt_ot_smp_init
      Src: /src/haproxy/addons/ot/src/vars.c:743,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/addons/ot/src/vars.c:745,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:746,1
    - Dst: b_data
      Src: /src/haproxy/addons/ot/src/vars.c:746,1
    - Dst: b_orig
      Src: /src/haproxy/addons/ot/src/vars.c:746,1
    - Dst: otc_text_map_new
      Src: /src/haproxy/addons/ot/src/vars.c:749,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:751,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:753,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/vars.c:763,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:764,1
    - Dst: otc_text_map_destroy
      Src: /src/haproxy/addons/ot/src/vars.c:766,1
    - Dst: otc_text_map_add
      Src: /src/haproxy/addons/ot/src/vars.c:777,1
    - Dst: b_orig
      Src: /src/haproxy/addons/ot/src/vars.c:777,1
    - Dst: b_data
      Src: /src/haproxy/addons/ot/src/vars.c:777,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/vars.c:778,1
    - Dst: otc_text_map_destroy
      Src: /src/haproxy/addons/ot/src/vars.c:780,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:788,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/vars.c:791,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 8
    argNames:
    - smp
    - idx
    - scope
    - prefix
    - name
    - name_len
    - err
    - ptr
    argTypes:
    - struct sample*
    - size_t
    - char*
    - char*
    - char*
    - FLT_OT_VAR_CTX_SIZE
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 792
    functionName: flt_ot_vars_get_cb
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - otc_text_map_add
    - b_orig
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - flt_ot_var_name
    - flt_ot_smp_init
    - FLT_OT_TABLESIZE
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - b_data
    - otc_text_map_destroy
    - otc_text_map_new
    - vars_get_by_name
    linkageType: ''
    returnType: int
    signature: int flt_ot_vars_get_cb(struct sample *smp, size_t idx, const char *scope,
      const char *prefix, const char *name, FLT_OT_VAR_CTX_SIZE name_len, char **err,
      void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/vars.c:817,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/vars.c:817,1
    - Dst: flt_ot_smp_init
      Src: /src/haproxy/addons/ot/src/vars.c:819,1
    - Dst: flt_ot_ctx_loop
      Src: /src/haproxy/addons/ot/src/vars.c:821,1
    - Dst: ot_text_map_show
      Src: /src/haproxy/addons/ot/src/vars.c:823,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/vars.c:826,1
    - Dst: otc_text_map_destroy
      Src: /src/haproxy/addons/ot/src/vars.c:828,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/vars.c:831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - s
    - scope
    - prefix
    - opt
    - err
    argTypes:
    - struct stream*
    - char*
    - char*
    - uint
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 812
    functionDepth: 5
    functionLinenumber: 812
    functionLinenumberEnd: 832
    functionName: flt_ot_vars_get
    functionSourceFile: /src/haproxy/addons/ot/src/vars.c
    functionUses: 0
    functionsReached:
    - flt_ot_ctx_loop
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - flt_ot_smp_init
    - FLT_OT_DBG
    - otc_text_map_destroy
    - ot_text_map_show
    linkageType: ''
    returnType: struct otc_text_map
    signature: struct otc_text_map *flt_ot_vars_get(struct stream *s, const char *scope,
      const char *prefix, uint opt, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/addons/ot/src/cli.c:41,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/cli.c:43,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/cli.c:46,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/cli.c:51,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/cli.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - appctx
    - err
    - msg
    - cli_state
    argTypes:
    - struct appctx*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 54
    functionName: cmn_cli_set_msg
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - FLT_OT_RETURN
    - FLT_OT_FUNC
    - FLT_OT_DBG
    - applet_reserve_svcctx
    linkageType: ''
    returnType: void
    signature: void cmn_cli_set_msg(struct appctx *appctx, char *err, char *msg, int
      cli_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/cli.c:81,1
    - Dst: FLT_OT_ARGS_DUMP
      Src: /src/haproxy/addons/ot/src/cli.c:83,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/cli.c:85,1
    - Dst: flt_ot_strtoll
      Src: /src/haproxy/addons/ot/src/cli.c:86,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/addons/ot/src/cli.c:88,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:90,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/addons/ot/src/cli.c:95,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:97,1
    - Dst: cmn_cli_set_msg
      Src: /src/haproxy/addons/ot/src/cli.c:100,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/cli.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 103
    functionName: flt_ot_cli_parse_debug
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - _HA_ATOMIC_LOAD
    - flt_ot_strtoll
    - FLT_OT_FUNC
    - FLT_OT_ARG_ISVALID
    - _HA_ATOMIC_STORE
    - cmn_cli_set_msg
    - FLT_OT_RETURN_INT
    - FLT_OT_ARGS_DUMP
    linkageType: ''
    returnType: int
    signature: int flt_ot_cli_parse_debug(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/cli.c:130,1
    - Dst: FLT_OT_ARGS_DUMP
      Src: /src/haproxy/addons/ot/src/cli.c:132,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/addons/ot/src/cli.c:135,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:137,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:137,1
    - Dst: FLT_OT_PROXIES_LIST_END
      Src: /src/haproxy/addons/ot/src/cli.c:138,1
    - Dst: cmn_cli_set_msg
      Src: /src/haproxy/addons/ot/src/cli.c:140,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/cli.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 143
    functionName: flt_ot_cli_parse_disabled
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - FLT_OT_PROXIES_LIST_END
    - FLT_OT_CLI_MSG_CAT
    - FLT_OT_FUNC
    - _HA_ATOMIC_STORE
    - cmn_cli_set_msg
    - FLT_OT_RETURN_INT
    - FLT_OT_ARGS_DUMP
    linkageType: ''
    returnType: int
    signature: int flt_ot_cli_parse_disabled(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/addons/ot/src/cli.c:135,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:137,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: FLT_OT_PROXIES_LIST_START
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - FLT_OT_CLI_MSG_CAT
    - memprintf
    - _HA_ATOMIC_STORE
    linkageType: ''
    returnType: void
    signature: void FLT_OT_PROXIES_LIST_START()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/cli.c:168,1
    - Dst: FLT_OT_ARGS_DUMP
      Src: /src/haproxy/addons/ot/src/cli.c:170,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/addons/ot/src/cli.c:173,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:175,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:175,1
    - Dst: FLT_OT_PROXIES_LIST_END
      Src: /src/haproxy/addons/ot/src/cli.c:176,1
    - Dst: cmn_cli_set_msg
      Src: /src/haproxy/addons/ot/src/cli.c:178,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/cli.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 162
    functionDepth: 5
    functionLinenumber: 162
    functionLinenumberEnd: 181
    functionName: flt_ot_cli_parse_option
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - FLT_OT_PROXIES_LIST_END
    - FLT_OT_CLI_MSG_CAT
    - FLT_OT_FUNC
    - _HA_ATOMIC_STORE
    - cmn_cli_set_msg
    - FLT_OT_RETURN_INT
    - FLT_OT_ARGS_DUMP
    linkageType: ''
    returnType: int
    signature: int flt_ot_cli_parse_option(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/addons/ot/src/cli.c:173,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:175,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: FLT_OT_PROXIES_LIST_START
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - FLT_OT_CLI_MSG_CAT
    - memprintf
    - _HA_ATOMIC_STORE
    linkageType: ''
    returnType: void
    signature: void FLT_OT_PROXIES_LIST_START()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/cli.c:206,1
    - Dst: FLT_OT_ARGS_DUMP
      Src: /src/haproxy/addons/ot/src/cli.c:208,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/cli.c:210,1
    - Dst: strcasecmp
      Src: /src/haproxy/addons/ot/src/cli.c:211,1
    - Dst: strcasecmp
      Src: /src/haproxy/addons/ot/src/cli.c:214,1
    - Dst: strcasecmp
      Src: /src/haproxy/addons/ot/src/cli.c:217,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:221,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/addons/ot/src/cli.c:228,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:230,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:230,1
    - Dst: FLT_OT_CLI_LOGGING_STATE
      Src: /src/haproxy/addons/ot/src/cli.c:230,1
    - Dst: FLT_OT_PROXIES_LIST_END
      Src: /src/haproxy/addons/ot/src/cli.c:231,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/addons/ot/src/cli.c:235,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:237,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:237,1
    - Dst: FLT_OT_CLI_LOGGING_STATE
      Src: /src/haproxy/addons/ot/src/cli.c:237,1
    - Dst: FLT_OT_PROXIES_LIST_END
      Src: /src/haproxy/addons/ot/src/cli.c:238,1
    - Dst: cmn_cli_set_msg
      Src: /src/haproxy/addons/ot/src/cli.c:241,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/cli.c:243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 200
    functionDepth: 5
    functionLinenumber: 200
    functionLinenumberEnd: 244
    functionName: flt_ot_cli_parse_logging
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - _HA_ATOMIC_LOAD
    - FLT_OT_PROXIES_LIST_END
    - FLT_OT_CLI_MSG_CAT
    - FLT_OT_FUNC
    - FLT_OT_ARG_ISVALID
    - _HA_ATOMIC_STORE
    - FLT_OT_CLI_LOGGING_STATE
    - cmn_cli_set_msg
    - FLT_OT_RETURN_INT
    - FLT_OT_ARGS_DUMP
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int flt_ot_cli_parse_logging(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/addons/ot/src/cli.c:228,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:230,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:230,1
    - Dst: FLT_OT_CLI_LOGGING_STATE
      Src: /src/haproxy/addons/ot/src/cli.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 5
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: FLT_OT_PROXIES_LIST_START
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - FLT_OT_CLI_MSG_CAT
    - FLT_OT_CLI_LOGGING_STATE
    - memprintf
    - _HA_ATOMIC_STORE
    linkageType: ''
    returnType: void
    signature: void FLT_OT_PROXIES_LIST_START()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/addons/ot/src/cli.c:235,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:237,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:237,1
    - Dst: FLT_OT_CLI_LOGGING_STATE
      Src: /src/haproxy/addons/ot/src/cli.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: FLT_OT_PROXIES_LIST_START
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - FLT_OT_CLI_MSG_CAT
    - FLT_OT_CLI_LOGGING_STATE
    - memprintf
    - _HA_ATOMIC_LOAD
    linkageType: ''
    returnType: void
    signature: void FLT_OT_PROXIES_LIST_START()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/cli.c:269,1
    - Dst: FLT_OT_ARGS_DUMP
      Src: /src/haproxy/addons/ot/src/cli.c:271,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/cli.c:273,1
    - Dst: FLT_OT_FLOAT_U32
      Src: /src/haproxy/addons/ot/src/cli.c:274,1
    - Dst: flt_ot_strtod
      Src: /src/haproxy/addons/ot/src/cli.c:274,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/addons/ot/src/cli.c:277,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:279,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:279,1
    - Dst: FLT_OT_U32_FLOAT
      Src: /src/haproxy/addons/ot/src/cli.c:279,1
    - Dst: FLT_OT_PROXIES_LIST_END
      Src: /src/haproxy/addons/ot/src/cli.c:280,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/addons/ot/src/cli.c:286,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:288,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:288,1
    - Dst: FLT_OT_U32_FLOAT
      Src: /src/haproxy/addons/ot/src/cli.c:288,1
    - Dst: FLT_OT_PROXIES_LIST_END
      Src: /src/haproxy/addons/ot/src/cli.c:289,1
    - Dst: cmn_cli_set_msg
      Src: /src/haproxy/addons/ot/src/cli.c:292,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/cli.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 295
    functionName: flt_ot_cli_parse_rate
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - FLT_OT_U32_FLOAT
    - _HA_ATOMIC_LOAD
    - FLT_OT_PROXIES_LIST_END
    - FLT_OT_CLI_MSG_CAT
    - FLT_OT_FUNC
    - FLT_OT_ARG_ISVALID
    - _HA_ATOMIC_STORE
    - flt_ot_strtod
    - cmn_cli_set_msg
    - FLT_OT_RETURN_INT
    - FLT_OT_ARGS_DUMP
    - FLT_OT_FLOAT_U32
    linkageType: ''
    returnType: int
    signature: int flt_ot_cli_parse_rate(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/addons/ot/src/cli.c:277,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:279,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:279,1
    - Dst: FLT_OT_U32_FLOAT
      Src: /src/haproxy/addons/ot/src/cli.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 5
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: FLT_OT_PROXIES_LIST_START
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - FLT_OT_CLI_MSG_CAT
    - memprintf
    - _HA_ATOMIC_STORE
    - FLT_OT_U32_FLOAT
    linkageType: ''
    returnType: void
    signature: void FLT_OT_PROXIES_LIST_START()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/addons/ot/src/cli.c:286,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:288,1
    - Dst: FLT_OT_CLI_MSG_CAT
      Src: /src/haproxy/addons/ot/src/cli.c:288,1
    - Dst: FLT_OT_U32_FLOAT
      Src: /src/haproxy/addons/ot/src/cli.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: FLT_OT_PROXIES_LIST_START
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - FLT_OT_CLI_MSG_CAT
    - memprintf
    - _HA_ATOMIC_LOAD
    - FLT_OT_U32_FLOAT
    linkageType: ''
    returnType: void
    signature: void FLT_OT_PROXIES_LIST_START()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/cli.c:320,1
    - Dst: FLT_OT_ARGS_DUMP
      Src: /src/haproxy/addons/ot/src/cli.c:322,1
    - Dst: flt_ot_filters_dump
      Src: /src/haproxy/addons/ot/src/cli.c:323,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:325,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:327,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:331,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:332,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:333,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:334,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:335,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:336,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:337,1
    - Dst: FLT_OT_U32_FLOAT
      Src: /src/haproxy/addons/ot/src/cli.c:337,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:338,1
    - Dst: FLT_OT_STR_FLAG_YN
      Src: /src/haproxy/addons/ot/src/cli.c:338,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:339,1
    - Dst: FLT_OT_STR_FLAG_YN
      Src: /src/haproxy/addons/ot/src/cli.c:339,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:340,1
    - Dst: FLT_OT_CLI_LOGGING_STATE
      Src: /src/haproxy/addons/ot/src/cli.c:340,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:341,1
    - Dst: FLT_OT_PROXIES_LIST_END
      Src: /src/haproxy/addons/ot/src/cli.c:344,1
    - Dst: cmn_cli_set_msg
      Src: /src/haproxy/addons/ot/src/cli.c:346,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/cli.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 349
    functionName: flt_ot_cli_parse_status
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - FLT_OT_U32_FLOAT
    - memprintf
    - FLT_OT_PROXIES_LIST_END
    - FLT_OT_FUNC
    - FLT_OT_CLI_LOGGING_STATE
    - cmn_cli_set_msg
    - FLT_OT_RETURN_INT
    - FLT_OT_STR_FLAG_YN
    - FLT_OT_ARGS_DUMP
    - flt_ot_filters_dump
    linkageType: ''
    returnType: int
    signature: int flt_ot_cli_parse_status(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:331,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:332,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:333,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:334,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:335,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:336,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:337,1
    - Dst: FLT_OT_U32_FLOAT
      Src: /src/haproxy/addons/ot/src/cli.c:337,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:338,1
    - Dst: FLT_OT_STR_FLAG_YN
      Src: /src/haproxy/addons/ot/src/cli.c:338,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:339,1
    - Dst: FLT_OT_STR_FLAG_YN
      Src: /src/haproxy/addons/ot/src/cli.c:339,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:340,1
    - Dst: FLT_OT_CLI_LOGGING_STATE
      Src: /src/haproxy/addons/ot/src/cli.c:340,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/cli.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 344
    functionName: FLT_OT_PROXIES_LIST_START
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - FLT_OT_U32_FLOAT
    - FLT_OT_CLI_LOGGING_STATE
    - memprintf
    - FLT_OT_STR_FLAG_YN
    linkageType: ''
    returnType: void
    signature: void FLT_OT_PROXIES_LIST_START()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/cli.c:382,1
    - Dst: cli_register_kw
      Src: /src/haproxy/addons/ot/src/cli.c:385,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/cli.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 388
    functionName: flt_ot_cli_init
    functionSourceFile: /src/haproxy/addons/ot/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_register_kw
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    linkageType: ''
    returnType: void
    signature: void flt_ot_cli_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:47,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/opentracing.c:50,1
    - Dst: FLT_OT_DBG_TEXT_MAP
      Src: /src/haproxy/addons/ot/src/opentracing.c:52,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/opentracing.c:58,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/opentracing.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - text_map
    argTypes:
    - struct otc_text_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 62
    functionName: ot_text_map_show
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 2
    functionsReached:
    - FLT_OT_DBG_TEXT_MAP
    - FLT_OT_DBG
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    linkageType: ''
    returnType: void
    signature: void ot_text_map_show(const struct otc_text_map *text_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:82,1
    - Dst: otc_statistics
      Src: /src/haproxy/addons/ot/src/opentracing.c:84,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/opentracing.c:85,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/opentracing.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: ot_debug
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - FLT_OT_DBG
    - FLT_OT_FUNC
    - otc_statistics
    - FLT_OT_RETURN
    linkageType: ''
    returnType: void
    signature: void ot_debug(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flt_ot_pool_alloc
      Src: /src/haproxy/addons/ot/src/opentracing.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: ot_mem_malloc
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - flt_ot_pool_alloc
    linkageType: ''
    returnType: void
    signature: void *ot_mem_malloc(FLT_OT_DBG_ARGS(const char *func, int line, ) size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flt_ot_pool_free
      Src: /src/haproxy/addons/ot/src/opentracing.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: ot_mem_free
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - flt_ot_pool_free
    linkageType: ''
    returnType: void
    signature: void ot_mem_free(FLT_OT_DBG_ARGS(const char *func, int line, ) void
      *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:155,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/opentracing.c:155,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/opentracing.c:155,1
    - Dst: flt_ot_pools_info
      Src: /src/haproxy/addons/ot/src/opentracing.c:157,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/opentracing.c:159,1
    - Dst: getcwd
      Src: /src/haproxy/addons/ot/src/opentracing.c:162,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/opentracing.c:163,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:165,1
    - Dst: snprintf
      Src: /src/haproxy/addons/ot/src/opentracing.c:167,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/opentracing.c:169,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:171,1
    - Dst: otc_tracer_load
      Src: /src/haproxy/addons/ot/src/opentracing.c:174,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/opentracing.c:176,1
    - Dst: otc_ext_init
      Src: /src/haproxy/addons/ot/src/opentracing.c:178,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - tracer
    - plugin
    - err
    argTypes:
    - struct otc_tracer**
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 184
    functionName: ot_init
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - getcwd
    - flt_ot_pools_info
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - otc_tracer_load
    - FLT_OT_DPTR_ARGS
    - FLT_OT_DBG
    - FLT_OT_RETURN_INT
    - otc_ext_init
    - snprintf
    linkageType: ''
    returnType: int
    signature: int ot_init(struct otc_tracer **tracer, const char *plugin, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:207,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/opentracing.c:207,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:210,1
    - Dst: otc_tracer_start
      Src: /src/haproxy/addons/ot/src/opentracing.c:212,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/opentracing.c:214,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - tracer
    - cfgbuf
    - err
    argTypes:
    - struct otc_tracer*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: ot_start
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - otc_tracer_start
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    linkageType: ''
    returnType: int
    signature: int ot_start(struct otc_tracer *tracer, const char *cfgbuf, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:235,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/opentracing.c:235,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/opentracing.c:238,1
    - Dst: close
      Src: /src/haproxy/addons/ot/src/opentracing.c:240,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/opentracing.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tracer
    argTypes:
    - struct otc_tracer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 245
    functionName: ot_close
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - close
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN
    linkageType: ''
    returnType: void
    signature: void ot_close(struct otc_tracer **tracer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:277,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/opentracing.c:277,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:280,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:282,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/opentracing.c:284,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/opentracing.c:287,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/opentracing.c:290,1
    - Dst: FLT_OT_IN_RANGE
      Src: /src/haproxy/addons/ot/src/opentracing.c:292,1
    - Dst: struct otc_tracer*::start_span_with_options
      Src: /src/haproxy/addons/ot/src/opentracing.c:300,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/opentracing.c:302,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/opentracing.c:304,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 10
    argNames:
    - tracer
    - operation_name
    - ts_steady
    - ts_system
    - ref_type
    - ref_ctx_idx
    - ref_span
    - tags
    - num_tags
    - err
    argTypes:
    - struct otc_tracer*
    - char*
    - struct timespec*
    - struct timespec*
    - int
    - int
    - struct otc_span*
    - struct otc_tag*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 307
    functionName: ot_span_init
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - struct otc_tracer*::start_span_with_options
    - FLT_OT_IN_RANGE
    linkageType: ''
    returnType: struct otc_span
    signature: struct otc_span *ot_span_init(struct otc_tracer *tracer, const char
      *operation_name, const struct timespec *ts_steady, const struct timespec *ts_system,
      int ref_type, int ref_ctx_idx, const struct otc_span *ref_span, const struct
      otc_tag *tags, int num_tags, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:338,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/opentracing.c:338,1
    - Dst: va_start
      Src: /src/haproxy/addons/ot/src/opentracing.c:343,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/opentracing.c:344,1
    - Dst: FLT_OT_VSET
      Src: /src/haproxy/addons/ot/src/opentracing.c:346,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:348,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:348,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:350,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:350,1
    - Dst: va_end
      Src: /src/haproxy/addons/ot/src/opentracing.c:352,1
    - Dst: ot_span_init
      Src: /src/haproxy/addons/ot/src/opentracing.c:355,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 10
    argNames:
    - tracer
    - operation_name
    - ts_steady
    - ts_system
    - ref_type
    - ref_ctx_idx
    - ref_span
    - err
    - tag_key
    - tag_value
    argTypes:
    - struct otc_tracer*
    - char*
    - struct timespec*
    - struct timespec*
    - int
    - int
    - struct otc_span*
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 358
    functionName: ot_span_init_va
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - va_end
    - FLT_OT_VSET
    - typeof
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_TABLESIZE
    - ot_span_init
    - va_arg
    linkageType: ''
    returnType: struct otc_span
    signature: struct otc_span *ot_span_init_va(struct otc_tracer *tracer, const char
      *operation_name, const struct timespec *ts_steady, const struct timespec *ts_system,
      int ref_type, int ref_ctx_idx, const struct otc_span *ref_span, char **err,
      const char *tag_key, const char *tag_value, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:380,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:383,1
    - Dst: struct otc_span*::set_tag
      Src: /src/haproxy/addons/ot/src/opentracing.c:386,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - span
    - tags
    - num_tags
    argTypes:
    - struct otc_span*
    - struct otc_tag*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 389
    functionName: ot_span_tag
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - FLT_OT_RETURN_INT
    - FLT_OT_FUNC
    - struct otc_span*::set_tag
    linkageType: ''
    returnType: int
    signature: int ot_span_tag(struct otc_span *span, const struct otc_tag *tags,
      int num_tags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:414,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:417,1
    - Dst: va_start
      Src: /src/haproxy/addons/ot/src/opentracing.c:419,1
    - Dst: FLT_OT_IN_RANGE
      Src: /src/haproxy/addons/ot/src/opentracing.c:420,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:423,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:423,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:425,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:425,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:427,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:427,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:429,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:429,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:431,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:431,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:433,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:433,1
    - Dst: struct otc_span*::set_tag
      Src: /src/haproxy/addons/ot/src/opentracing.c:434,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:436,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:436,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:438,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:438,1
    - Dst: va_end
      Src: /src/haproxy/addons/ot/src/opentracing.c:440,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:442,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - span
    - key
    - type
    argTypes:
    - struct otc_span*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 443
    functionName: ot_span_tag_va
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - va_end
    - typeof
    - struct otc_span*::set_tag
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_IN_RANGE
    - va_arg
    linkageType: ''
    returnType: int
    signature: int ot_span_tag_va(struct otc_span *span, const char *key, int type,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:465,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:468,1
    - Dst: MIN
      Src: /src/haproxy/addons/ot/src/opentracing.c:470,1
    - Dst: struct otc_span*::log_fields
      Src: /src/haproxy/addons/ot/src/opentracing.c:472,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - span
    - log_fields
    - num_fields
    argTypes:
    - struct otc_span*
    - struct otc_log_field*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 475
    functionName: ot_span_log
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - FLT_OT_RETURN_INT
    - FLT_OT_FUNC
    - MIN
    - struct otc_span*::log_fields
    linkageType: ''
    returnType: int
    signature: int ot_span_log(struct otc_span *span, const struct otc_log_field *log_fields,
      int num_fields)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:499,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:502,1
    - Dst: va_start
      Src: /src/haproxy/addons/ot/src/opentracing.c:504,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/opentracing.c:505,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:510,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:510,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:512,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:512,1
    - Dst: va_end
      Src: /src/haproxy/addons/ot/src/opentracing.c:514,1
    - Dst: struct otc_span*::log_fields
      Src: /src/haproxy/addons/ot/src/opentracing.c:516,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - span
    - key
    - value
    argTypes:
    - struct otc_span*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 519
    functionName: ot_span_log_va
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - va_end
    - typeof
    - struct otc_span*::log_fields
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_TABLESIZE
    - FLT_OT_RETURN_INT
    - va_arg
    linkageType: ''
    returnType: int
    signature: int ot_span_log_va(struct otc_span *span, const char *key, const char
      *value, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:543,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:546,1
    - Dst: va_start
      Src: /src/haproxy/addons/ot/src/opentracing.c:548,1
    - Dst: vsnprintf
      Src: /src/haproxy/addons/ot/src/opentracing.c:549,1
    - Dst: FLT_OT_IN_RANGE
      Src: /src/haproxy/addons/ot/src/opentracing.c:550,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/opentracing.c:551,1
    - Dst: FLT_OT_STR_ELLIPSIS
      Src: /src/haproxy/addons/ot/src/opentracing.c:553,1
    - Dst: va_end
      Src: /src/haproxy/addons/ot/src/opentracing.c:555,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:557,1
    - Dst: ot_span_log_va
      Src: /src/haproxy/addons/ot/src/opentracing.c:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - span
    - key
    - format
    argTypes:
    - struct otc_span*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 558
    functionName: ot_span_log_fmt
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - va_end
    - FLT_OT_STR_ELLIPSIS
    - vsnprintf
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - ot_span_log_va
    - FLT_OT_IN_RANGE
    linkageType: ''
    returnType: int
    signature: int ot_span_log_fmt(struct otc_span *span, const char *key, const char
      *format, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:580,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:583,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:586,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/opentracing.c:589,1
    - Dst: struct otc_span*::set_baggage_item
      Src: /src/haproxy/addons/ot/src/opentracing.c:592,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:598,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - span
    - baggage
    argTypes:
    - struct otc_span*
    - struct otc_text_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 599
    functionName: ot_span_set_baggage
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - FLT_OT_RETURN_INT
    - FLT_OT_FUNC
    - struct otc_span*::set_baggage_item
    - FLT_OT_DBG
    linkageType: ''
    returnType: int
    signature: int ot_span_set_baggage(struct otc_span *span, const struct otc_text_map
      *baggage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:622,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:625,1
    - Dst: va_start
      Src: /src/haproxy/addons/ot/src/opentracing.c:627,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/opentracing.c:629,1
    - Dst: struct otc_span*::set_baggage_item
      Src: /src/haproxy/addons/ot/src/opentracing.c:631,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:633,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:633,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:635,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:635,1
    - Dst: va_end
      Src: /src/haproxy/addons/ot/src/opentracing.c:637,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/opentracing.c:639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - span
    - key
    - value
    argTypes:
    - struct otc_span*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 640
    functionName: ot_span_set_baggage_va
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - va_end
    - typeof
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - struct otc_span*::set_baggage_item
    - va_arg
    linkageType: ''
    returnType: int
    signature: int ot_span_set_baggage_va(struct otc_span *span, const char *key,
      const char *value, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:663,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:666,1
    - Dst: va_start
      Src: /src/haproxy/addons/ot/src/opentracing.c:668,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:669,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:669,1
    - Dst: va_end
      Src: /src/haproxy/addons/ot/src/opentracing.c:670,1
    - Dst: otc_text_map_new
      Src: /src/haproxy/addons/ot/src/opentracing.c:672,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:674,1
    - Dst: va_start
      Src: /src/haproxy/addons/ot/src/opentracing.c:676,1
    - Dst: struct otc_span*::baggage_item
      Src: /src/haproxy/addons/ot/src/opentracing.c:678,1
    - Dst: otc_text_map_add
      Src: /src/haproxy/addons/ot/src/opentracing.c:681,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/opentracing.c:683,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/opentracing.c:685,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:688,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:688,1
    - Dst: va_end
      Src: /src/haproxy/addons/ot/src/opentracing.c:690,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:692,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - span
    - key
    argTypes:
    - struct otc_span*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 693
    functionName: ot_span_baggage_va
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - otc_text_map_add
    - va_end
    - typeof
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - otc_text_map_new
    - struct otc_span*::baggage_item
    - va_arg
    linkageType: ''
    returnType: struct otc_text_map
    signature: struct otc_text_map *ot_span_baggage_va(const struct otc_span *span,
      const char *key, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:716,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:719,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:721,1
    - Dst: struct otc_span*::span_context
      Src: /src/haproxy/addons/ot/src/opentracing.c:723,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:725,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/opentracing.c:727,1
    - Dst: struct otc_tracer*::inject_text_map
      Src: /src/haproxy/addons/ot/src/opentracing.c:729,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/opentracing.c:731,1
    - Dst: FLT_OT_DBG_TEXT_CARRIER
      Src: /src/haproxy/addons/ot/src/opentracing.c:734,1
    - Dst: ot_text_map_show
      Src: /src/haproxy/addons/ot/src/opentracing.c:735,1
    - Dst: FLT_OT_DBG_SPAN_CONTEXT
      Src: /src/haproxy/addons/ot/src/opentracing.c:736,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - tracer
    - span
    - carrier
    argTypes:
    - struct otc_tracer*
    - struct otc_span*
    - struct otc_text_map_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 741
    functionName: ot_inject_text_map
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - FLT_OT_DBG_TEXT_CARRIER
    - memset
    - FLT_OT_FUNC
    - FLT_OT_RETURN_PTR
    - struct otc_span*::span_context
    - FLT_OT_FREE_CLEAR
    - struct otc_tracer*::inject_text_map
    - ot_text_map_show
    - FLT_OT_DBG_SPAN_CONTEXT
    linkageType: ''
    returnType: struct otc_span_context
    signature: struct otc_span_context *ot_inject_text_map(struct otc_tracer *tracer,
      const struct otc_span *span, struct otc_text_map_writer *carrier)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:765,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/opentracing.c:765,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:768,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:770,1
    - Dst: struct otc_span*::span_context
      Src: /src/haproxy/addons/ot/src/opentracing.c:772,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/opentracing.c:774,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:776,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/opentracing.c:779,1
    - Dst: struct otc_tracer*::inject_http_headers
      Src: /src/haproxy/addons/ot/src/opentracing.c:781,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/opentracing.c:783,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/opentracing.c:785,1
    - Dst: FLT_OT_DBG_TEXT_CARRIER
      Src: /src/haproxy/addons/ot/src/opentracing.c:788,1
    - Dst: ot_text_map_show
      Src: /src/haproxy/addons/ot/src/opentracing.c:789,1
    - Dst: FLT_OT_DBG_SPAN_CONTEXT
      Src: /src/haproxy/addons/ot/src/opentracing.c:790,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:794,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - tracer
    - span
    - carrier
    - err
    argTypes:
    - struct otc_tracer*
    - struct otc_span*
    - struct otc_http_headers_writer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 795
    functionName: ot_inject_http_headers
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - FLT_OT_DBG_TEXT_CARRIER
    - memset
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - struct otc_tracer*::inject_http_headers
    - struct otc_span*::span_context
    - FLT_OT_FREE_CLEAR
    - ot_text_map_show
    - FLT_OT_DBG_SPAN_CONTEXT
    linkageType: ''
    returnType: struct otc_span_context
    signature: struct otc_span_context *ot_inject_http_headers(struct otc_tracer *tracer,
      const struct otc_span *span, struct otc_http_headers_writer *carrier, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:818,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:821,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:823,1
    - Dst: struct otc_span*::span_context
      Src: /src/haproxy/addons/ot/src/opentracing.c:825,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:827,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/opentracing.c:829,1
    - Dst: struct otc_tracer*::inject_binary
      Src: /src/haproxy/addons/ot/src/opentracing.c:831,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/opentracing.c:833,1
    - Dst: FLT_OT_DBG_CUSTOM_CARRIER
      Src: /src/haproxy/addons/ot/src/opentracing.c:838,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/opentracing.c:839,1
    - Dst: flt_ot_str_hex
      Src: /src/haproxy/addons/ot/src/opentracing.c:841,1
    - Dst: flt_ot_str_ctrl
      Src: /src/haproxy/addons/ot/src/opentracing.c:842,1
    - Dst: FLT_OT_DBG_SPAN_CONTEXT
      Src: /src/haproxy/addons/ot/src/opentracing.c:843,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:847,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - tracer
    - span
    - carrier
    argTypes:
    - struct otc_tracer*
    - struct otc_span*
    - struct otc_custom_carrier_writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 848
    functionName: ot_inject_binary
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - memset
    - FLT_OT_DBG_CUSTOM_CARRIER
    - FLT_OT_FUNC
    - FLT_OT_RETURN_PTR
    - struct otc_span*::span_context
    - FLT_OT_DBG
    - FLT_OT_FREE_CLEAR
    - struct otc_tracer*::inject_binary
    - flt_ot_str_ctrl
    - FLT_OT_DBG_SPAN_CONTEXT
    - flt_ot_str_hex
    linkageType: ''
    returnType: struct otc_span_context
    signature: struct otc_span_context *ot_inject_binary(struct otc_tracer *tracer,
      const struct otc_span *span, struct otc_custom_carrier_writer *carrier)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:871,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:874,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:876,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/opentracing.c:879,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/opentracing.c:880,1
    - Dst: FLT_OT_DBG_TEXT_CARRIER
      Src: /src/haproxy/addons/ot/src/opentracing.c:882,1
    - Dst: struct otc_tracer*::extract_text_map
      Src: /src/haproxy/addons/ot/src/opentracing.c:885,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/opentracing.c:887,1
    - Dst: FLT_OT_DBG_SPAN_CONTEXT
      Src: /src/haproxy/addons/ot/src/opentracing.c:889,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - tracer
    - carrier
    - text_map
    argTypes:
    - struct otc_tracer*
    - struct otc_text_map_reader*
    - struct otc_text_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 892
    functionName: ot_extract_text_map
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - FLT_OT_DBG_TEXT_CARRIER
    - memset
    - memcpy
    - FLT_OT_FUNC
    - FLT_OT_RETURN_PTR
    - FLT_OT_FREE_CLEAR
    - struct otc_tracer*::extract_text_map
    - FLT_OT_DBG_SPAN_CONTEXT
    linkageType: ''
    returnType: struct otc_span_context
    signature: struct otc_span_context *ot_extract_text_map(struct otc_tracer *tracer,
      struct otc_text_map_reader *carrier, const struct otc_text_map *text_map)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:916,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/opentracing.c:916,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:919,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:921,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/opentracing.c:924,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/opentracing.c:925,1
    - Dst: FLT_OT_DBG_TEXT_CARRIER
      Src: /src/haproxy/addons/ot/src/opentracing.c:927,1
    - Dst: struct otc_tracer*::extract_http_headers
      Src: /src/haproxy/addons/ot/src/opentracing.c:930,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/opentracing.c:932,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/opentracing.c:934,1
    - Dst: FLT_OT_DBG_SPAN_CONTEXT
      Src: /src/haproxy/addons/ot/src/opentracing.c:937,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - tracer
    - carrier
    - text_map
    - err
    argTypes:
    - struct otc_tracer*
    - struct otc_http_headers_reader*
    - struct otc_text_map*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 940
    functionName: ot_extract_http_headers
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - FLT_OT_DBG_TEXT_CARRIER
    - memset
    - memcpy
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_FREE_CLEAR
    - struct otc_tracer*::extract_http_headers
    - FLT_OT_DBG_SPAN_CONTEXT
    linkageType: ''
    returnType: struct otc_span_context
    signature: struct otc_span_context *ot_extract_http_headers(struct otc_tracer
      *tracer, struct otc_http_headers_reader *carrier, const struct otc_text_map
      *text_map, char **err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:963,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:966,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:968,1
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/opentracing.c:970,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/opentracing.c:971,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/opentracing.c:972,1
    - Dst: FLT_OT_DBG_CUSTOM_CARRIER
      Src: /src/haproxy/addons/ot/src/opentracing.c:974,1
    - Dst: struct otc_tracer*::extract_binary
      Src: /src/haproxy/addons/ot/src/opentracing.c:977,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/opentracing.c:979,1
    - Dst: FLT_OT_DBG_SPAN_CONTEXT
      Src: /src/haproxy/addons/ot/src/opentracing.c:981,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/opentracing.c:983,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - tracer
    - carrier
    - binary_data
    argTypes:
    - struct otc_tracer*
    - struct otc_custom_carrier_reader*
    - struct otc_binary_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 984
    functionName: ot_extract_binary
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - memset
    - FLT_OT_DBG_CUSTOM_CARRIER
    - memcpy
    - FLT_OT_FUNC
    - FLT_OT_RETURN_PTR
    - FLT_OT_DEREF
    - FLT_OT_FREE_CLEAR
    - struct otc_tracer*::extract_binary
    - FLT_OT_DBG_SPAN_CONTEXT
    linkageType: ''
    returnType: struct otc_span_context
    signature: struct otc_span_context *ot_extract_binary(struct otc_tracer *tracer,
      struct otc_custom_carrier_reader *carrier, const struct otc_binary_data *binary_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:1010,1
    - Dst: FLT_OT_DDEREF
      Src: /src/haproxy/addons/ot/src/opentracing.c:1010,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/opentracing.c:1013,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/opentracing.c:1013,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/opentracing.c:1016,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/opentracing.c:1018,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/opentracing.c:1021,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/opentracing.c:1028,1
    - Dst: va_start
      Src: /src/haproxy/addons/ot/src/opentracing.c:1030,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/opentracing.c:1031,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:1036,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:1036,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/opentracing.c:1038,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/opentracing.c:1038,1
    - Dst: va_end
      Src: /src/haproxy/addons/ot/src/opentracing.c:1040,1
    - Dst: finish_with_options
      Src: /src/haproxy/addons/ot/src/opentracing.c:1051,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/opentracing.c:1053,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/opentracing.c:1057,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - span
    - ts_finish
    - log_ts
    - log_key
    - log_value
    argTypes:
    - struct otc_span**
    - struct timespec*
    - struct timespec*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1058
    functionName: ot_span_finish
    functionSourceFile: /src/haproxy/addons/ot/src/opentracing.c
    functionUses: 0
    functionsReached:
    - va_end
    - typeof
    - memset
    - memcpy
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_DDEREF
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN
    - FLT_OT_TABLESIZE
    - FLT_OT_DBG
    - finish_with_options
    - va_arg
    linkageType: ''
    returnType: void
    signature: void ot_span_finish(struct otc_span **span, const struct timespec *ts_finish,
      const struct timespec *log_ts, const char *log_key, const char *log_value, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:61,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:61,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:61,1
    - Dst: FLT_OT_STRDUP
      Src: /src/haproxy/addons/ot/src/parser.c:63,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:65,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ptr
    - str
    - err
    - err_msg
    argTypes:
    - char**
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: flt_ot_parse_strdup
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_STRDUP
    - FLT_OT_PARSE_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_strdup(char **ptr, const char *str, char **err, const
      char *err_msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:97,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:97,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:97,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:101,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:103,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:105,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:107,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:109,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:112,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - ptr
    - args
    - cur_arg
    - pos
    - err
    - err_msg
    argTypes:
    - char**
    - char**
    - int
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: flt_ot_parse_keyword
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_PARSE_ERR
    - FLT_OT_ARG_ISVALID
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    - flt_ot_parse_strdup
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_keyword(char **ptr, char **args, int cur_arg, int
      pos, char **err, const char *err_msg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:137,1
    - Dst: FLT_OT_STR_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:139,1
    - Dst: FLT_OT_RETURN_EX
      Src: /src/haproxy/addons/ot/src/parser.c:140,1
    - Dst: invalid_char
      Src: /src/haproxy/addons/ot/src/parser.c:143,1
    - Dst: invalid_domainchar
      Src: /src/haproxy/addons/ot/src/parser.c:146,1
    - Dst: invalid_prefix_char
      Src: /src/haproxy/addons/ot/src/parser.c:149,1
    - Dst: isdigit
      Src: /src/haproxy/addons/ot/src/parser.c:158,1
    - Dst: isalnum
      Src: /src/haproxy/addons/ot/src/parser.c:159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 166
    functionName: flt_ot_parse_invalid_char
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - invalid_char
    - FLT_OT_STR_ISVALID
    - FLT_OT_FUNC
    - invalid_domainchar
    - isdigit
    - FLT_OT_RETURN_EX
    - invalid_prefix_char
    - isalnum
    linkageType: ''
    returnType: char
    signature: char *flt_ot_parse_invalid_char(const char *name, int type)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:194,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:194,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:194,1
    - Dst: FLT_OT_ARGS_DUMP
      Src: /src/haproxy/addons/ot/src/parser.c:196,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:202,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:206,1
    - Dst: flt_ot_args_count
      Src: /src/haproxy/addons/ot/src/parser.c:208,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:213,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:221,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:229,1
    - Dst: flt_ot_parse_invalid_char
      Src: /src/haproxy/addons/ot/src/parser.c:235,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:237,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:242,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:244,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 28
    argCount: 8
    argNames:
    - file
    - linenum
    - args
    - id
    - parse_data
    - parse_data_size
    - pdata
    - err
    argTypes:
    - char*
    - int
    - char**
    - void*
    - struct flt_ot_parse_data*
    - size_t
    - struct flt_ot_parse_data**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 245
    functionName: flt_ot_parse_cfg_check
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - flt_ot_parse_invalid_char
    - FLT_OT_PARSE_ERR
    - FLT_OT_FUNC
    - strcmp
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    - FLT_OT_ARGS_DUMP
    - flt_ot_args_count
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_cfg_check(const char *file, int linenum, char **args,
      const void *id, const struct flt_ot_parse_data *parse_data, size_t parse_data_size,
      const struct flt_ot_parse_data **pdata, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:272,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:272,1
    - Dst: flt_ot_conf_sample_expr_init
      Src: /src/haproxy/addons/ot/src/parser.c:274,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/addons/ot/src/parser.c:276,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:278,1
    - Dst: flt_ot_conf_sample_expr_free
      Src: /src/haproxy/addons/ot/src/parser.c:286,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - file
    - linenum
    - args
    - idx
    - head
    - err
    argTypes:
    - char*
    - int
    - char**
    - int*
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 267
    functionDepth: 7
    functionLinenumber: 267
    functionLinenumberEnd: 289
    functionName: flt_ot_parse_cfg_sample_expr
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - flt_ot_conf_sample_expr_init
    - FLT_OT_DBG
    - FLT_OT_RETURN_INT
    - sample_parse_expr
    - flt_ot_conf_sample_expr_free
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_cfg_sample_expr(const char *file, int linenum, char
      **args, int *idx, struct list *head, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:315,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:315,1
    - Dst: flt_ot_conf_sample_init
      Src: /src/haproxy/addons/ot/src/parser.c:317,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:319,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:326,1
    - Dst: flt_ot_parse_cfg_sample_expr
      Src: /src/haproxy/addons/ot/src/parser.c:327,1
    - Dst: flt_ot_conf_sample_free
      Src: /src/haproxy/addons/ot/src/parser.c:334,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:336,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:338,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - file
    - linenum
    - args
    - head
    - err
    argTypes:
    - char*
    - int
    - char**
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 310
    functionDepth: 8
    functionLinenumber: 310
    functionLinenumberEnd: 339
    functionName: flt_ot_parse_cfg_sample
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - flt_ot_conf_sample_free
    - FLT_OT_PARSE_ERR
    - FLT_OT_ARG_ISVALID
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_DBG
    - FLT_OT_RETURN_INT
    - flt_ot_parse_cfg_sample_expr
    - flt_ot_conf_sample_init
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_cfg_sample(const char *file, int linenum, char **args,
      struct list *head, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:364,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:364,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:366,1
    - Dst: flt_ot_conf_str_init
      Src: /src/haproxy/addons/ot/src/parser.c:367,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - file
    - linenum
    - args
    - head
    - err
    argTypes:
    - char*
    - int
    - char**
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 371
    functionName: flt_ot_parse_cfg_str
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_ARG_ISVALID
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    - flt_ot_conf_str_init
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_cfg_str(const char *file, int linenum, char **args,
      struct list *head, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:397,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:397,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:397,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:399,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:400,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/addons/ot/src/parser.c:401,1
    - Dst: access
      Src: /src/haproxy/addons/ot/src/parser.c:403,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:404,1
    - Dst: strerror
      Src: /src/haproxy/addons/ot/src/parser.c:404,1
    - Dst: flt_ot_parse_keyword
      Src: /src/haproxy/addons/ot/src/parser.c:406,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - ptr
    - file
    - linenum
    - args
    - err
    - err_msg
    argTypes:
    - char**
    - char*
    - int
    - char**
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 393
    functionDepth: 7
    functionLinenumber: 393
    functionLinenumberEnd: 409
    functionName: flt_ot_parse_cfg_file
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_PARSE_ERR
    - access
    - alertif_too_many_args
    - strerror
    - FLT_OT_FUNC
    - FLT_OT_ARG_ISVALID
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    - flt_ot_parse_keyword
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_cfg_file(char **ptr, const char *file, int linenum,
      char **args, char **err, const char *err_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:430,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 437
    functionName: flt_ot_parse_check_scope
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_DBG
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool flt_ot_parse_check_scope(void)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:466,1
    - Dst: flt_ot_parse_check_scope
      Src: /src/haproxy/addons/ot/src/parser.c:468,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:469,1
    - Dst: flt_ot_parse_cfg_check
      Src: /src/haproxy/addons/ot/src/parser.c:471,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/parser.c:471,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:473,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:475,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:480,1
    - Dst: flt_ot_conf_tracer_init
      Src: /src/haproxy/addons/ot/src/parser.c:482,1
    - Dst: parse_logger
      Src: /src/haproxy/addons/ot/src/parser.c:488,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:489,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/parser.c:490,1
    - Dst: flt_ot_parse_cfg_file
      Src: /src/haproxy/addons/ot/src/parser.c:498,1
    - Dst: flt_ot_parse_cfg_file
      Src: /src/haproxy/addons/ot/src/parser.c:501,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:504,1
    - Dst: flt_ot_conf_ph_init
      Src: /src/haproxy/addons/ot/src/parser.c:505,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:509,1
    - Dst: flt_ot_conf_ph_init
      Src: /src/haproxy/addons/ot/src/parser.c:510,1
    - Dst: strcasecmp
      Src: /src/haproxy/addons/ot/src/parser.c:514,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:515,1
    - Dst: parse_acl
      Src: /src/haproxy/addons/ot/src/parser.c:516,1
    - Dst: FLT_OT_FLOAT_U32
      Src: /src/haproxy/addons/ot/src/parser.c:520,1
    - Dst: flt_ot_strtod
      Src: /src/haproxy/addons/ot/src/parser.c:520,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:523,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:526,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:529,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:536,1
    - Dst: flt_ot_strtoll
      Src: /src/haproxy/addons/ot/src/parser.c:540,1
    - Dst: FLT_OT_PARSE_WARNING
      Src: /src/haproxy/addons/ot/src/parser.c:544,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:548,1
    - Dst: flt_ot_conf_tracer_free
      Src: /src/haproxy/addons/ot/src/parser.c:551,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:553,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 73
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kw_mod
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 457
    functionDepth: 8
    functionLinenumber: 457
    functionLinenumberEnd: 554
    functionName: flt_ot_parse_cfg_tracer
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - parse_logger
    - FLT_OT_FUNC
    - FLT_OT_ARG_ISVALID
    - FLT_OT_TABLESIZE
    - flt_ot_conf_tracer_init
    - FLT_OT_PARSE_ERR
    - strcmp
    - flt_ot_parse_cfg_file
    - flt_ot_conf_ph_init
    - FLT_OT_PARSE_IFERR_ALERT
    - flt_ot_conf_tracer_free
    - flt_ot_strtod
    - FLT_OT_FREE_CLEAR
    - flt_ot_parse_check_scope
    - FLT_OT_FLOAT_U32
    - strcasecmp
    - flt_ot_strtoll
    - parse_acl
    - FLT_OT_RETURN_INT
    - FLT_OT_PARSE_WARNING
    - flt_ot_parse_cfg_check
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_cfg_tracer(const char *file, int linenum, char **args,
      int kw_mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 460
    functionName: FLT_OT_PARSE_TRACER_DEF
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_PARSE_TRACER_DEF(a,b,c,d,e,f,g)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:576,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:579,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:584,1
    - Dst: FLT_OT_POST_PARSE_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:587,1
    - Dst: otc_file_read
      Src: /src/haproxy/addons/ot/src/parser.c:589,1
    - Dst: FLT_OT_POST_PARSE_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:591,1
    - Dst: FLT_OT_POST_PARSE_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:595,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 600
    functionName: flt_ot_post_parse_cfg_tracer
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - otc_file_read
    - FLT_OT_RETURN_INT
    - FLT_OT_FUNC
    - FLT_OT_POST_PARSE_ALERT
    linkageType: ''
    returnType: int
    signature: int flt_ot_post_parse_cfg_tracer(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:629,1
    - Dst: flt_ot_parse_check_scope
      Src: /src/haproxy/addons/ot/src/parser.c:631,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:632,1
    - Dst: flt_ot_parse_cfg_check
      Src: /src/haproxy/addons/ot/src/parser.c:634,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/parser.c:634,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:636,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:638,1
    - Dst: flt_ot_conf_group_init
      Src: /src/haproxy/addons/ot/src/parser.c:642,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:647,1
    - Dst: flt_ot_conf_ph_init
      Src: /src/haproxy/addons/ot/src/parser.c:648,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:652,1
    - Dst: flt_ot_conf_group_free
      Src: /src/haproxy/addons/ot/src/parser.c:655,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:657,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kw_mod
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 620
    functionDepth: 4
    functionLinenumber: 620
    functionLinenumberEnd: 658
    functionName: flt_ot_parse_cfg_group
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_PARSE_IFERR_ALERT
    - FLT_OT_FUNC
    - FLT_OT_ARG_ISVALID
    - FLT_OT_TABLESIZE
    - flt_ot_conf_group_free
    - FLT_OT_RETURN_INT
    - flt_ot_conf_ph_init
    - flt_ot_conf_group_init
    - flt_ot_parse_cfg_check
    - flt_ot_parse_check_scope
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_cfg_group(const char *file, int linenum, char **args,
      int kw_mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 623
    functionName: FLT_OT_PARSE_GROUP_DEF
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_PARSE_GROUP_DEF(a,b,c,d,e,f,g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:679,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:682,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/ot/src/parser.c:685,1
    - Dst: FLT_OT_POST_PARSE_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:686,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 691
    functionName: flt_ot_post_parse_cfg_group
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_RETURN_INT
    - FLT_OT_FUNC
    - LIST_ISEMPTY
    - FLT_OT_POST_PARSE_ALERT
    linkageType: ''
    returnType: int
    signature: int flt_ot_post_parse_cfg_group(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:715,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:715,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:717,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:720,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:729,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:733,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - args
    - cur_arg
    - err
    argTypes:
    - char**
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 736
    functionName: flt_ot_parse_cfg_scope_ctx
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_PARSE_ERR
    - FLT_OT_FUNC
    - strcmp
    - FLT_OT_DPTR_ARGS
    - FLT_OT_DBG
    - FLT_OT_RETURN_INT
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_cfg_scope_ctx(char **args, int cur_arg, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:763,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:763,1
    - Dst: va_start
      Src: /src/haproxy/addons/ot/src/parser.c:765,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/parser.c:765,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/parser.c:765,1
    - Dst: build_acl_cond
      Src: /src/haproxy/addons/ot/src/parser.c:766,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:768,1
    - Dst: va_end
      Src: /src/haproxy/addons/ot/src/parser.c:770,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/parser.c:773,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/parser.c:775,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 6
    argNames:
    - file
    - linenum
    - px
    - args
    - err
    - head
    argTypes:
    - char*
    - int
    - struct proxy*
    - char**
    - char**
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 757
    functionDepth: 6
    functionLinenumber: 757
    functionLinenumberEnd: 776
    functionName: flt_ot_parse_acl
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - va_end
    - typeof
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - FLT_OT_FREE_CLEAR
    - build_acl_cond
    - va_arg
    linkageType: ''
    returnType: struct acl_cond
    signature: struct acl_cond *flt_ot_parse_acl(const char *file, int linenum, struct
      proxy *px, const char **args, char **err, struct list *head, ...)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:805,1
    - Dst: flt_ot_parse_check_scope
      Src: /src/haproxy/addons/ot/src/parser.c:807,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:808,1
    - Dst: flt_ot_parse_cfg_check
      Src: /src/haproxy/addons/ot/src/parser.c:810,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/parser.c:810,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:812,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:814,1
    - Dst: flt_ot_conf_scope_init
      Src: /src/haproxy/addons/ot/src/parser.c:819,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:829,1
    - Dst: flt_ot_conf_span_init
      Src: /src/haproxy/addons/ot/src/parser.c:835,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:844,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:845,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:846,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:848,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:852,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:852,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:853,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:854,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:856,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/parser.c:858,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:860,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/parser.c:864,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:866,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:870,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:878,1
    - Dst: flt_ot_parse_cfg_sample
      Src: /src/haproxy/addons/ot/src/parser.c:882,1
    - Dst: flt_ot_parse_cfg_sample
      Src: /src/haproxy/addons/ot/src/parser.c:885,1
    - Dst: flt_ot_parse_cfg_sample
      Src: /src/haproxy/addons/ot/src/parser.c:888,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:899,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:900,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:901,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:903,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:905,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/parser.c:908,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:917,1
    - Dst: flt_ot_parse_cfg_scope_ctx
      Src: /src/haproxy/addons/ot/src/parser.c:918,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:919,1
    - Dst: flt_ot_parse_cfg_scope_ctx
      Src: /src/haproxy/addons/ot/src/parser.c:920,1
    - Dst: flt_ot_conf_context_init
      Src: /src/haproxy/addons/ot/src/parser.c:933,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:936,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:938,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:941,1
    - Dst: flt_ot_parse_cfg_str
      Src: /src/haproxy/addons/ot/src/parser.c:948,1
    - Dst: strcasecmp
      Src: /src/haproxy/addons/ot/src/parser.c:951,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:952,1
    - Dst: parse_acl
      Src: /src/haproxy/addons/ot/src/parser.c:953,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:959,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/parser.c:962,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:963,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:974,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:976,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:979,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:979,1
    - Dst: flt_ot_parse_acl
      Src: /src/haproxy/addons/ot/src/parser.c:987,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:992,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:996,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:1000,1
    - Dst: flt_ot_conf_scope_free
      Src: /src/haproxy/addons/ot/src/parser.c:1003,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1008,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 128
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kw_mod
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 796
    functionDepth: 9
    functionLinenumber: 796
    functionLinenumberEnd: 1009
    functionName: flt_ot_parse_cfg_scope
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_ARG_ISVALID
    - FLT_OT_TABLESIZE
    - flt_ot_parse_cfg_sample
    - flt_ot_conf_scope_free
    - FLT_OT_PARSE_ERR
    - strcmp
    - flt_ot_parse_strdup
    - flt_ot_parse_acl
    - flt_ot_conf_span_init
    - FLT_OT_PARSE_IFERR_ALERT
    - flt_ot_parse_cfg_str
    - flt_ot_conf_scope_init
    - FLT_OT_DBG
    - flt_ot_parse_check_scope
    - strcasecmp
    - flt_ot_conf_context_init
    - parse_acl
    - FLT_OT_RETURN_INT
    - flt_ot_parse_cfg_scope_ctx
    - flt_ot_parse_cfg_check
    - strlen
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_cfg_scope(const char *file, int linenum, char **args,
      int kw_mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 799
    functionName: FLT_OT_PARSE_SCOPE_DEF
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_PARSE_SCOPE_DEF(a,b,c,d,e,f,g)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:1034,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1037,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/parser.c:1040,1
    - Dst: FLT_OT_POST_PARSE_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:1043,1
    - Dst: flt_ot_conf_scope_free
      Src: /src/haproxy/addons/ot/src/parser.c:1046,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1051,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1052
    functionName: flt_ot_post_parse_cfg_scope
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - FLT_OT_FUNC
    - FLT_OT_POST_PARSE_ALERT
    - FLT_OT_RETURN_INT
    - flt_ot_conf_scope_free
    linkageType: ''
    returnType: int
    signature: int flt_ot_post_parse_cfg_scope(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:1077,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:1077,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/parser.c:1082,1
    - Dst: cfg_backup_sections
      Src: /src/haproxy/addons/ot/src/parser.c:1083,1
    - Dst: cfg_register_section
      Src: /src/haproxy/addons/ot/src/parser.c:1086,1
    - Dst: cfg_register_section
      Src: /src/haproxy/addons/ot/src/parser.c:1088,1
    - Dst: cfg_register_section
      Src: /src/haproxy/addons/ot/src/parser.c:1090,1
    - Dst: access
      Src: /src/haproxy/addons/ot/src/parser.c:1092,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:1093,1
    - Dst: strerror
      Src: /src/haproxy/addons/ot/src/parser.c:1093,1
    - Dst: load_cfg_in_mem
      Src: /src/haproxy/addons/ot/src/parser.c:1096,1
    - Dst: ha_free
      Src: /src/haproxy/addons/ot/src/parser.c:1098,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1099,1
    - Dst: parse_cfg
      Src: /src/haproxy/addons/ot/src/parser.c:1101,1
    - Dst: ha_free
      Src: /src/haproxy/addons/ot/src/parser.c:1102,1
    - Dst: cfg_unregister_sections
      Src: /src/haproxy/addons/ot/src/parser.c:1106,1
    - Dst: cfg_restore_sections
      Src: /src/haproxy/addons/ot/src/parser.c:1107,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - conf
    - flt_name
    - err
    argTypes:
    - struct flt_ot_conf*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1071
    functionDepth: 7
    functionLinenumber: 1071
    functionLinenumberEnd: 1112
    functionName: flt_ot_parse_cfg
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - FLT_OT_PARSE_ERR
    - access
    - parse_cfg
    - strerror
    - ha_free
    - cfg_restore_sections
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - load_cfg_in_mem
    - FLT_OT_RETURN_INT
    - cfg_backup_sections
    - cfg_register_section
    - cfg_unregister_sections
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_cfg(struct flt_ot_conf *conf, const char *flt_name,
      char **err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/parser.c:1142,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:1149,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:1149,1
    - Dst: FLT_OT_RUN_ONCE
      Src: /src/haproxy/addons/ot/src/parser.c:1152,1
    - Dst: if
      Src: /src/haproxy/addons/ot/src/parser.c:1153,1
    - Dst: otc_dbg_mem_init
      Src: /src/haproxy/addons/ot/src/parser.c:1153,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/parser.c:1153,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:1154,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1156,1
    - Dst: FLT_OT_ARGS_DUMP
      Src: /src/haproxy/addons/ot/src/parser.c:1161,1
    - Dst: flt_ot_conf_init
      Src: /src/haproxy/addons/ot/src/parser.c:1163,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:1165,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1167,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:1170,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:1171,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:1173,1
    - Dst: flt_ot_parse_keyword
      Src: /src/haproxy/addons/ot/src/parser.c:1174,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:1177,1
    - Dst: flt_ot_parse_keyword
      Src: /src/haproxy/addons/ot/src/parser.c:1178,1
    - Dst: flt_ot_parse_cfg
      Src: /src/haproxy/addons/ot/src/parser.c:1180,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:1184,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/ot/src/parser.c:1190,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:1192,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:1196,1
    - Dst: flt_ot_conf_free
      Src: /src/haproxy/addons/ot/src/parser.c:1199,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:1207,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1210,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 6
    argNames:
    - args
    - cur_arg
    - px
    - fconf
    - err
    - private
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct flt_conf*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1134
    functionDepth: 9
    functionLinenumber: 1134
    functionLinenumberEnd: 1211
    functionName: flt_ot_parse
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_ARG_ISVALID
    - FLT_OT_TABLESIZE
    - FLT_OT_ARGS_DUMP
    - FLT_OT_PARSE_ERR
    - strcmp
    - flt_ot_conf_free
    - flt_ot_conf_init
    - flt_ot_parse_strdup
    - FLT_OT_RUN_ONCE
    - otc_dbg_mem_init
    - memcpy
    - FLT_OT_DBG
    - flt_ot_parse_keyword
    - if
    - FLT_OT_DPTR_ARGS
    - flt_ot_parse_cfg
    - FLT_OT_RETURN_INT
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse(char **args, int *cur_arg, struct proxy *px, struct
      flt_conf *fconf, char **err, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flt_ot_args_count
      Src: /src/haproxy/addons/ot/src/util.c:42,1
    - Dst: fprintf
      Src: /src/haproxy/addons/ot/src/util.c:44,1
    - Dst: FLT_OT_DBG_FMT
      Src: /src/haproxy/addons/ot/src/util.c:44,1
    - Dst: fprintf
      Src: /src/haproxy/addons/ot/src/util.c:47,1
    - Dst: fprintf
      Src: /src/haproxy/addons/ot/src/util.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: flt_ot_args_dump
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached:
    - fprintf
    - FLT_OT_DBG_FMT
    - flt_ot_args_count
    linkageType: ''
    returnType: void
    signature: void flt_ot_args_dump(char **args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/util.c:71,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/util.c:74,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/util.c:76,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/util.c:80,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/util.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: flt_ot_filters_dump
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 1
    functionsReached:
    - FLT_OT_RETURN
    - FLT_OT_DBG
    - FLT_OT_FUNC
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void flt_ot_filters_dump(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: flt_ot_chn_label
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *flt_ot_chn_label(const struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/addons/ot/src/util.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: flt_ot_pr_mode
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached:
    - strm_fe
    linkageType: ''
    returnType: char
    signature: char *flt_ot_pr_mode(const struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: flt_ot_stream_pos
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *flt_ot_stream_pos(const struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: flt_ot_type
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *flt_ot_type(const struct filter *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/util.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - an_bit
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 198
    functionName: flt_ot_analyzer
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached:
    - FLT_OT_TABLESIZE
    linkageType: ''
    returnType: char
    signature: char *flt_ot_analyzer(uint an_bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: FLT_OT_AN_DEF
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_AN_DEF(a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_NIBBLE_TO_HEX
      Src: /src/haproxy/addons/ot/src/util.c:227,1
    - Dst: FLT_OT_NIBBLE_TO_HEX
      Src: /src/haproxy/addons/ot/src/util.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 234
    functionName: flt_ot_str_hex
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 1
    functionsReached:
    - FLT_OT_NIBBLE_TO_HEX
    linkageType: ''
    returnType: char
    signature: char *flt_ot_str_hex(const void *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 268
    functionName: flt_ot_str_ctrl
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *flt_ot_str_ctrl(const void *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_BUFFER_THR
      Src: /src/haproxy/addons/ot/src/util.c:286,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/ot/src/util.c:288,1
    - Dst: strncpy
      Src: /src/haproxy/addons/ot/src/util.c:289,1
    - Dst: snprintf
      Src: /src/haproxy/addons/ot/src/util.c:292,1
    - Dst: snprintf
      Src: /src/haproxy/addons/ot/src/util.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 304
    functionName: flt_ot_list_debug
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached:
    - strncpy
    - LIST_ISEMPTY
    - FLT_OT_BUFFER_THR
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *flt_ot_list_debug(const struct list *head)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/util.c:327,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/util.c:327,1
    - Dst: FLT_OT_RETURN_EX
      Src: /src/haproxy/addons/ot/src/util.c:330,1
    - Dst: chunk_init
      Src: /src/haproxy/addons/ot/src/util.c:333,1
    - Dst: FLT_OT_CALLOC
      Src: /src/haproxy/addons/ot/src/util.c:333,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:336,1
    - Dst: FLT_OT_RETURN_EX
      Src: /src/haproxy/addons/ot/src/util.c:338,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:341,1
    - Dst: FLT_OT_RETURN_EX
      Src: /src/haproxy/addons/ot/src/util.c:343,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:346,1
    - Dst: FLT_OT_RETURN_EX
      Src: /src/haproxy/addons/ot/src/util.c:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - chk
    - src
    - n
    - err
    argTypes:
    - struct buffer*
    - void*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 350
    functionName: flt_ot_chunk_add
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached:
    - memcpy
    - FLT_OT_ERR
    - FLT_OT_CALLOC
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - chunk_init
    - FLT_OT_RETURN_EX
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t flt_ot_chunk_add(struct buffer *chk, const void *src, size_t
      n, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/util.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - args
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 394
    functionName: flt_ot_args_count
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 2
    functionsReached:
    - FLT_OT_ARG_ISVALID
    linkageType: ''
    returnType: int
    signature: int flt_ot_args_count(char **args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flt_ot_args_count
      Src: /src/haproxy/addons/ot/src/util.c:419,1
    - Dst: memprintf
      Src: /src/haproxy/addons/ot/src/util.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - args
    - idx
    - str
    argTypes:
    - char**
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 412
    functionDepth: 5
    functionLinenumber: 412
    functionLinenumberEnd: 423
    functionName: flt_ot_args_to_str
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached:
    - memprintf
    - flt_ot_args_count
    linkageType: ''
    returnType: void
    signature: void flt_ot_args_to_str(char **args, int idx, char **str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtod
      Src: /src/haproxy/addons/ot/src/util.c:449,1
    - Dst: FLT_OT_STR_ISVALID
      Src: /src/haproxy/addons/ot/src/util.c:450,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:451,1
    - Dst: FLT_OT_IN_RANGE
      Src: /src/haproxy/addons/ot/src/util.c:452,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - nptr
    - limit_min
    - limit_max
    - err
    argTypes:
    - char*
    - double
    - double
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 456
    functionName: flt_ot_strtod
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 2
    functionsReached:
    - FLT_OT_IN_RANGE
    - strtod
    - FLT_OT_STR_ISVALID
    - FLT_OT_ERR
    linkageType: ''
    returnType: double
    signature: double flt_ot_strtod(const char *nptr, double limit_min, double limit_max,
      char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/haproxy/addons/ot/src/util.c:482,1
    - Dst: FLT_OT_STR_ISVALID
      Src: /src/haproxy/addons/ot/src/util.c:483,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:484,1
    - Dst: FLT_OT_IN_RANGE
      Src: /src/haproxy/addons/ot/src/util.c:485,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - nptr
    - limit_min
    - limit_max
    - err
    argTypes:
    - char*
    - int64_t
    - int64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 489
    functionName: flt_ot_strtoll
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 2
    functionsReached:
    - strtoll
    - FLT_OT_IN_RANGE
    - FLT_OT_STR_ISVALID
    - FLT_OT_ERR
    linkageType: ''
    returnType: int64_t
    signature: int64_t flt_ot_strtoll(const char *nptr, int64_t limit_min, int64_t
      limit_max, char **err)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/util.c:512,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/util.c:512,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/util.c:515,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:520,1
    - Dst: snprintf
      Src: /src/haproxy/addons/ot/src/util.c:529,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:536,1
    - Dst: inet_ntop
      Src: /src/haproxy/addons/ot/src/util.c:537,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:538,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/util.c:540,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:544,1
    - Dst: inet_ntop
      Src: /src/haproxy/addons/ot/src/util.c:545,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:546,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/util.c:548,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:552,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:556,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:568,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:571,1
    - Dst: FLT_OT_STR_SIZE
      Src: /src/haproxy/addons/ot/src/util.c:574,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:576,1
    - Dst: FLT_OT_STR_SIZE
      Src: /src/haproxy/addons/ot/src/util.c:579,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:581,1
    - Dst: FLT_OT_STR_SIZE
      Src: /src/haproxy/addons/ot/src/util.c:584,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:586,1
    - Dst: FLT_OT_STR_SIZE
      Src: /src/haproxy/addons/ot/src/util.c:589,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:591,1
    - Dst: FLT_OT_STR_SIZE
      Src: /src/haproxy/addons/ot/src/util.c:594,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:596,1
    - Dst: FLT_OT_STR_SIZE
      Src: /src/haproxy/addons/ot/src/util.c:599,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:601,1
    - Dst: FLT_OT_STR_SIZE
      Src: /src/haproxy/addons/ot/src/util.c:604,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:606,1
    - Dst: FLT_OT_STR_SIZE
      Src: /src/haproxy/addons/ot/src/util.c:609,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:611,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:615,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:618,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:623,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/util.c:626,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 94
    argCount: 4
    argNames:
    - data
    - value
    - size
    - err
    argTypes:
    - struct sample_data*
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 627
    functionName: flt_ot_sample_to_str
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached:
    - FLT_OT_STR_SIZE
    - memcpy
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    - inet_ntop
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int flt_ot_sample_to_str(const struct sample_data *data, char *value,
      size_t size, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/util.c:650,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/util.c:650,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/util.c:653,1
    - Dst: FLT_OT_MALLOC
      Src: /src/haproxy/addons/ot/src/util.c:669,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:672,1
    - Dst: flt_ot_sample_to_str
      Src: /src/haproxy/addons/ot/src/util.c:674,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/util.c:677,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - key
    - data
    - value
    - err
    argTypes:
    - char*
    - struct sample_data*
    - struct otc_value*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 678
    functionName: flt_ot_sample_to_value
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached:
    - flt_ot_sample_to_str
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    - FLT_OT_MALLOC
    linkageType: ''
    returnType: int
    signature: int flt_ot_sample_to_value(const char *key, const struct sample_data
      *data, struct otc_value *value, char **err)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/util.c:708,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/util.c:708,1
    - Dst: FLT_OT_DBG_CONF_SAMPLE
      Src: /src/haproxy/addons/ot/src/util.c:710,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/util.c:712,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/util.c:714,1
    - Dst: FLT_OT_DBG_CONF_SAMPLE_EXPR
      Src: /src/haproxy/addons/ot/src/util.c:715,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/util.c:717,1
    - Dst: sample_process
      Src: /src/haproxy/addons/ot/src/util.c:729,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/util.c:730,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/util.c:732,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/util.c:738,1
    - Dst: flt_ot_sample_to_value
      Src: /src/haproxy/addons/ot/src/util.c:744,1
    - Dst: chunk_init
      Src: /src/haproxy/addons/ot/src/util.c:748,1
    - Dst: FLT_OT_CALLOC
      Src: /src/haproxy/addons/ot/src/util.c:748,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:750,1
    - Dst: flt_ot_sample_to_str
      Src: /src/haproxy/addons/ot/src/util.c:758,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:779,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/util.c:785,1
    - Dst: otc_text_map_new
      Src: /src/haproxy/addons/ot/src/util.c:789,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:792,1
    - Dst: otc_text_map_add
      Src: /src/haproxy/addons/ot/src/util.c:796,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/util.c:797,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/util.c:802,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/util.c:805,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 6
    argNames:
    - s
    - dir
    - sample
    - data
    - type
    - err
    argTypes:
    - struct stream*
    - uint
    - struct flt_ot_conf_sample*
    - struct flt_ot_scope_data*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 700
    functionDepth: 3
    functionLinenumber: 700
    functionLinenumberEnd: 806
    functionName: flt_ot_sample_add
    functionSourceFile: /src/haproxy/addons/ot/src/util.c
    functionUses: 0
    functionsReached:
    - sample_process
    - otc_text_map_add
    - memset
    - flt_ot_sample_to_str
    - memcpy
    - list_for_each_entry
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_CALLOC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_DBG_CONF_SAMPLE_EXPR
    - FLT_OT_DBG
    - chunk_init
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_CONF_SAMPLE
    - otc_text_map_new
    - flt_ot_sample_to_value
    linkageType: ''
    returnType: int
    signature: int flt_ot_sample_add(struct stream *s, uint dir, struct flt_ot_conf_sample
      *sample, struct flt_ot_scope_data *data, int type, char **err)
  - 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: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: FLT_OT_GROUP_DEF
    functionSourceFile: /src/haproxy/addons/ot/src/group.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_GROUP_DEF(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: FLT_OT_RETURN_EX
    functionSourceFile: /src/haproxy/addons/ot/src/group.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FLT_OT_RETURN_EX(ACT_RET_CONT, enum act_return, \"%d\");\n\t}\n\n\t/*
      Find the OpenTracing filter instance from the current stream. */\n\tlist_for_each_entry(filter,
      &(s->strm_flt.filters), list)\n\t\tif (filter->config == fconf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flt_ot_scope_run
      Src: /src/haproxy/addons/ot/src/group.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: FLT_OT_RETURN_EX
    functionSourceFile: /src/haproxy/addons/ot/src/group.c
    functionUses: 2
    functionsReached:
    - flt_ot_scope_run
    linkageType: ''
    returnType: void
    signature: "void FLT_OT_RETURN_EX(ACT_RET_CONT, enum act_return, \"%d\");\n\t}\n\n\tlist_for_each_entry(ph_scope,
      &(conf_group->ph_scopes), list)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/group.c:151,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/group.c:151,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/group.c:156,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/group.c:162,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/group.c:166,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/group.c:167,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/group.c:169,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/group.c:176,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/group.c:183,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/group.c:192,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/group.c:194,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/group.c:201,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/group.c:202,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/group.c:209,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/group.c:211,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/group.c:214,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/group.c:215,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/group.c:221,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - rule
    - px
    - err
    argTypes:
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 222
    functionName: flt_ot_group_check
    functionSourceFile: /src/haproxy/addons/ot/src/group.c
    functionUses: 0
    functionsReached:
    - FLT_OT_ERR
    - list_for_each_entry
    - FLT_OT_FUNC
    - strcmp
    - FLT_OT_DPTR_ARGS
    - FLT_OT_TABLESIZE
    - FLT_OT_DBG
    - FLT_OT_RETURN_INT
    - FLT_OT_FREE_CLEAR
    linkageType: ''
    returnType: int
    signature: int flt_ot_group_check(struct act_rule *rule, struct proxy *px, char
      **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/group.c:241,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/group.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: flt_ot_group_release
    functionSourceFile: /src/haproxy/addons/ot/src/group.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    linkageType: ''
    returnType: void
    signature: void flt_ot_group_release(struct act_rule *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/filter.c:48,1
    - Dst: FLT_OT_RT_CTX
      Src: /src/haproxy/addons/ot/src/filter.c:53,1
    - Dst: FLT_OT_IN_RANGE
      Src: /src/haproxy/addons/ot/src/filter.c:58,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:59,1
    - Dst: flt_ot_type
      Src: /src/haproxy/addons/ot/src/filter.c:59,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:61,1
    - Dst: flt_ot_type
      Src: /src/haproxy/addons/ot/src/filter.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - FLT_OT_DBG_ARGS(, int event)
    argTypes:
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 65
    functionName: flt_ot_is_disabled
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_type
    - FLT_OT_DBG
    - FLT_OT_RT_CTX
    - FLT_OT_CONF
    - FLT_OT_IN_RANGE
    linkageType: ''
    returnType: bool
    signature: bool flt_ot_is_disabled(const struct filter *f FLT_OT_DBG_ARGS(, int
      event))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:89,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/addons/ot/src/filter.c:93,1
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/filter.c:93,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:95,1
    - Dst: FLT_OT_ERR_FREE
      Src: /src/haproxy/addons/ot/src/filter.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - f
    - err
    - retval
    argTypes:
    - struct filter*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 104
    functionName: flt_ot_return_int
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_CONF
    - FLT_OT_DBG
    - _HA_ATOMIC_ADD
    - FLT_OT_ERR_FREE
    linkageType: ''
    returnType: int
    signature: int flt_ot_return_int(const struct filter *f, char **err, int retval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:127,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/addons/ot/src/filter.c:131,1
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/filter.c:131,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:133,1
    - Dst: FLT_OT_ERR_FREE
      Src: /src/haproxy/addons/ot/src/filter.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - f
    - err
    argTypes:
    - struct filter*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: flt_ot_return_void
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_CONF
    - FLT_OT_DBG
    - _HA_ATOMIC_ADD
    - FLT_OT_ERR_FREE
    linkageType: ''
    returnType: void
    signature: void flt_ot_return_void(const struct filter *f, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/filter.c:159,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:163,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/ot/src/filter.c:167,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:171,1
    - Dst: flt_ot_cli_init
      Src: /src/haproxy/addons/ot/src/filter.c:173,1
    - Dst: ot_init
      Src: /src/haproxy/addons/ot/src/filter.c:178,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:182,1
    - Dst: FLT_OT_ERR_FREE
      Src: /src/haproxy/addons/ot/src/filter.c:184,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 156
    functionDepth: 9
    functionLinenumber: 156
    functionLinenumberEnd: 188
    functionName: flt_ot_init
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_ERR_FREE
    - FLT_OT_FUNC
    - FLT_OT_DEREF
    - FLT_OT_RETURN_INT
    - ot_init
    - ha_warning
    - FLT_OT_ALERT
    - flt_ot_cli_init
    linkageType: ''
    returnType: int
    signature: int flt_ot_init(struct proxy *p, struct flt_conf *fconf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/filter.c:209,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:214,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:217,1
    - Dst: ot_debug
      Src: /src/haproxy/addons/ot/src/filter.c:219,1
    - Dst: ot_close
      Src: /src/haproxy/addons/ot/src/filter.c:220,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:223,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/filter.c:224,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:226,1
    - Dst: flt_ot_conf_free
      Src: /src/haproxy/addons/ot/src/filter.c:229,1
    - Dst: FLT_OT_MEMINFO
      Src: /src/haproxy/addons/ot/src/filter.c:231,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 234
    functionName: flt_ot_deinit
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - typeof
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - FLT_OT_TABLESIZE
    - flt_ot_conf_free
    - FLT_OT_DBG
    - ot_debug
    - FLT_OT_MEMINFO
    - ot_close
    linkageType: ''
    returnType: void
    signature: void flt_ot_deinit(struct proxy *p, struct flt_conf *fconf)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/filter.c:256,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:262,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:265,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:275,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:281,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:285,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/filter.c:287,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:288,1
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/filter.c:295,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:296,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:306,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:307,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:310,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/filter.c:311,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:320,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:331,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:334,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/filter.c:335,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:344,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:354,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:357,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/filter.c:358,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:367,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:374,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:375,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:377,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:385,1
    - Dst: FLT_OT_DBG_CONF_SPAN
      Src: /src/haproxy/addons/ot/src/filter.c:386,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:398,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:410,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/ot/src/filter.c:412,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:415,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:417,1
    - Dst: FLT_OT_DBG_LIST
      Src: /src/haproxy/addons/ot/src/filter.c:419,1
    - Dst: FLT_OT_DBG_CONF_GROUP
      Src: /src/haproxy/addons/ot/src/filter.c:420,1
    - Dst: FLT_OT_DBG_LIST
      Src: /src/haproxy/addons/ot/src/filter.c:421,1
    - Dst: FLT_OT_DBG_CONF_PH
      Src: /src/haproxy/addons/ot/src/filter.c:421,1
    - Dst: FLT_OT_DBG_LIST
      Src: /src/haproxy/addons/ot/src/filter.c:422,1
    - Dst: FLT_OT_DBG_CONF_SCOPE
      Src: /src/haproxy/addons/ot/src/filter.c:422,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:425,1
    - Dst: FLT_OT_DBG_LIST
      Src: /src/haproxy/addons/ot/src/filter.c:426,1
    - Dst: FLT_OT_DBG_CONF_PH
      Src: /src/haproxy/addons/ot/src/filter.c:426,1
    - Dst: FLT_OT_DBG_LIST
      Src: /src/haproxy/addons/ot/src/filter.c:427,1
    - Dst: FLT_OT_DBG_CONF_PH
      Src: /src/haproxy/addons/ot/src/filter.c:427,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:430,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 93
    argCount: 2
    argNames:
    - p
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 431
    functionName: flt_ot_check
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_DBG_LIST
    - list_for_each_entry
    - FLT_OT_FUNC
    - strcmp
    - FLT_OT_DBG_CONF_PH
    - FLT_OT_DEREF
    - FLT_OT_DBG_CONF_SPAN
    - FLT_OT_DBG_CONF_SCOPE
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - LIST_ISEMPTY
    - FLT_OT_ALERT
    - FLT_OT_DBG_CONF_GROUP
    linkageType: ''
    returnType: int
    signature: int flt_ot_check(struct proxy *p, struct flt_conf *fconf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/filter.c:452,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:456,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:459,1
    - Dst: ot_start
      Src: /src/haproxy/addons/ot/src/filter.c:466,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:470,1
    - Dst: FLT_OT_ERR_FREE
      Src: /src/haproxy/addons/ot/src/filter.c:472,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - p
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 479
    functionName: flt_ot_init_per_thread
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DEREF
    - FLT_OT_RETURN_INT
    - FLT_OT_ALERT
    - FLT_OT_ERR_FREE
    - ot_start
    linkageType: ''
    returnType: int
    signature: int flt_ot_init_per_thread(struct proxy *p, struct flt_conf *fconf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:501,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 504
    functionName: flt_ot_deinit_per_thread
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    linkageType: ''
    returnType: void
    signature: void flt_ot_deinit_per_thread(struct proxy *p, struct flt_conf *fconf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/filter.c:530,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:533,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:536,1
    - Dst: flt_ot_type
      Src: /src/haproxy/addons/ot/src/filter.c:536,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:538,1
    - Dst: FLT_OT_FLOAT_U32
      Src: /src/haproxy/addons/ot/src/filter.c:540,1
    - Dst: ha_random32
      Src: /src/haproxy/addons/ot/src/filter.c:541,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:544,1
    - Dst: flt_ot_type
      Src: /src/haproxy/addons/ot/src/filter.c:544,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:546,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:550,1
    - Dst: flt_ot_type
      Src: /src/haproxy/addons/ot/src/filter.c:550,1
    - Dst: flt_ot_runtime_context_init
      Src: /src/haproxy/addons/ot/src/filter.c:552,1
    - Dst: FLT_OT_ERR_FREE
      Src: /src/haproxy/addons/ot/src/filter.c:553,1
    - Dst: FLT_OT_LOG
      Src: /src/haproxy/addons/ot/src/filter.c:555,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:557,1
    - Dst: FLT_OT_LOG
      Src: /src/haproxy/addons/ot/src/filter.c:567,1
    - Dst: flt_ot_vars_dump
      Src: /src/haproxy/addons/ot/src/filter.c:570,1
    - Dst: flt_ot_http_headers_dump
      Src: /src/haproxy/addons/ot/src/filter.c:572,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 575
    functionName: flt_ot_attach
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_type
    - flt_ot_http_headers_dump
    - FLT_OT_FUNC
    - flt_ot_runtime_context_init
    - FLT_OT_DBG
    - FLT_OT_RETURN_INT
    - FLT_OT_LOG
    - flt_ot_vars_dump
    - ha_random32
    - FLT_OT_CONF
    - FLT_OT_ERR_FREE
    - FLT_OT_FLOAT_U32
    linkageType: ''
    returnType: int
    signature: int flt_ot_attach(struct stream *s, struct filter *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:601,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:603,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:603,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:604,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:606,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 607
    functionName: flt_ot_stream_start
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - flt_ot_return_int
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: int
    signature: int flt_ot_stream_start(struct stream *s, struct filter *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:632,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:634,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:634,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:635,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:637,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:639,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - f
    - be
    argTypes:
    - struct stream*
    - struct filter*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 640
    functionName: flt_ot_stream_set_backend
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - flt_ot_return_int
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: int
    signature: int flt_ot_stream_set_backend(struct stream *s, struct filter *f, struct
      proxy *be)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:662,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:664,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:664,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:665,1
    - Dst: flt_ot_return_void
      Src: /src/haproxy/addons/ot/src/filter.c:667,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 670
    functionName: flt_ot_stream_stop
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_return_void
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: void
    signature: void flt_ot_stream_stop(struct stream *s, struct filter *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:694,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:696,1
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/filter.c:696,1
    - Dst: flt_ot_type
      Src: /src/haproxy/addons/ot/src/filter.c:696,1
    - Dst: flt_ot_runtime_context_free
      Src: /src/haproxy/addons/ot/src/filter.c:698,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 701
    functionName: flt_ot_detach
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_type
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - FLT_OT_DBG
    - flt_ot_runtime_context_free
    - FLT_OT_CONF
    linkageType: ''
    returnType: void
    signature: void flt_ot_detach(struct stream *s, struct filter *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:722,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:724,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:724,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:725,1
    - Dst: flt_ot_return_void
      Src: /src/haproxy/addons/ot/src/filter.c:729,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 732
    functionName: flt_ot_check_timeouts
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_return_void
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: void
    signature: void flt_ot_check_timeouts(struct stream *s, struct filter *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:756,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:758,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:758,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:759,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:761,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:761,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:761,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:761,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:768,1
    - Dst: channel_dont_read
      Src: /src/haproxy/addons/ot/src/filter.c:770,1
    - Dst: channel_dont_close
      Src: /src/haproxy/addons/ot/src/filter.c:771,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:778,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:783,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - s
    - f
    - chn
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 784
    functionName: flt_ot_channel_start_analyze
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_chn_label
    - channel_dont_close
    - channel_dont_read
    - FLT_OT_FUNC
    - flt_ot_event_run
    - flt_ot_pr_mode
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - flt_ot_stream_pos
    - flt_ot_return_int
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: int
    signature: int flt_ot_channel_start_analyze(struct stream *s, struct filter *f,
      struct channel *chn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:809,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/filter.c:811,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:818,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:818,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:819,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:821,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:821,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:821,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:821,1
    - Dst: flt_ot_analyzer
      Src: /src/haproxy/addons/ot/src/filter.c:821,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:823,1
    - Dst: channel_dont_read
      Src: /src/haproxy/addons/ot/src/filter.c:826,1
    - Dst: channel_dont_close
      Src: /src/haproxy/addons/ot/src/filter.c:827,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:830,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:830,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - s
    - f
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 831
    functionName: flt_ot_channel_pre_analyze
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_chn_label
    - flt_ot_analyzer
    - channel_dont_close
    - channel_dont_read
    - FLT_OT_FUNC
    - flt_ot_event_run
    - FLT_OT_TABLESIZE
    - flt_ot_pr_mode
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - flt_ot_stream_pos
    - flt_ot_return_int
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: int
    signature: int flt_ot_channel_pre_analyze(struct stream *s, struct filter *f,
      struct channel *chn, uint an_bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:858,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/filter.c:860,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:867,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:867,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:868,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:870,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:870,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:870,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:870,1
    - Dst: flt_ot_analyzer
      Src: /src/haproxy/addons/ot/src/filter.c:870,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:872,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:874,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - s
    - f
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 875
    functionName: flt_ot_channel_post_analyze
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_chn_label
    - flt_ot_analyzer
    - FLT_OT_FUNC
    - flt_ot_event_run
    - FLT_OT_TABLESIZE
    - flt_ot_pr_mode
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - flt_ot_stream_pos
    - flt_ot_return_int
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: int
    signature: int flt_ot_channel_post_analyze(struct stream *s, struct filter *f,
      struct channel *chn, uint an_bit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:899,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:901,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:901,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:902,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:904,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:904,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:904,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:904,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:908,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:911,1
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/filter.c:917,1
    - Dst: FLT_OT_RT_CTX
      Src: /src/haproxy/addons/ot/src/filter.c:917,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:918,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:924,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:924,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - s
    - f
    - chn
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 925
    functionName: flt_ot_channel_end_analyze
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_chn_label
    - FLT_OT_FUNC
    - flt_ot_event_run
    - flt_ot_pr_mode
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - flt_ot_stream_pos
    - flt_ot_return_int
    - FLT_OT_CONF
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    - FLT_OT_RT_CTX
    linkageType: ''
    returnType: int
    signature: int flt_ot_channel_end_analyze(struct stream *s, struct filter *f,
      struct channel *chn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/addons/ot/src/filter.c:949,1
    - Dst: http_get_stline
      Src: /src/haproxy/addons/ot/src/filter.c:950,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:953,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:955,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:955,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:956,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:958,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:958,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:958,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:958,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/addons/ot/src/filter.c:958,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/addons/ot/src/filter.c:958,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/addons/ot/src/filter.c:958,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/addons/ot/src/filter.c:958,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/addons/ot/src/filter.c:958,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/addons/ot/src/filter.c:958,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:960,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - f
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 961
    functionName: flt_ot_http_headers
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - flt_ot_chn_label
    - HTX_SL_P2_PTR
    - http_get_stline
    - HTX_SL_P1_LEN
    - FLT_OT_FUNC
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - flt_ot_pr_mode
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - flt_ot_stream_pos
    - HTX_SL_P2_LEN
    - flt_ot_return_int
    - FLT_OT_DBG_ARGS
    - HTX_SL_P3_LEN
    - flt_ot_is_disabled
    linkageType: ''
    returnType: int
    signature: int flt_ot_http_headers(struct stream *s, struct filter *f, struct
      http_msg *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:986,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:988,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:988,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:989,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:991,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:991,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:991,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:991,1
    - Dst: task_wakeup
      Src: /src/haproxy/addons/ot/src/filter.c:994,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:996,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:996,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - s
    - f
    - msg
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 981
    functionDepth: 2
    functionLinenumber: 981
    functionLinenumberEnd: 997
    functionName: flt_ot_http_payload
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_chn_label
    - task_wakeup
    - FLT_OT_FUNC
    - flt_ot_pr_mode
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - flt_ot_stream_pos
    - flt_ot_return_int
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: int
    signature: int flt_ot_http_payload(struct stream *s, struct filter *f, struct
      http_msg *msg, uint offset, uint len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:1021,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:1023,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:1023,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:1024,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:1026,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:1026,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:1026,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:1026,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:1028,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:1028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - f
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1029
    functionName: flt_ot_http_end
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_chn_label
    - FLT_OT_FUNC
    - flt_ot_pr_mode
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - flt_ot_stream_pos
    - flt_ot_return_int
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: int
    signature: int flt_ot_http_end(struct stream *s, struct filter *f, struct http_msg
      *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:1051,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:1053,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:1053,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:1054,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:1056,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:1056,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:1056,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:1056,1
    - Dst: flt_ot_return_void
      Src: /src/haproxy/addons/ot/src/filter.c:1058,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - f
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1047
    functionDepth: 2
    functionLinenumber: 1047
    functionLinenumberEnd: 1061
    functionName: flt_ot_http_reset
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_chn_label
    - flt_ot_return_void
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - flt_ot_pr_mode
    - FLT_OT_DBG
    - flt_ot_stream_pos
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: void
    signature: void flt_ot_http_reset(struct stream *s, struct filter *f, struct http_msg
      *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:1084,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:1086,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:1086,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:1087,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:1089,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:1089,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:1089,1
    - Dst: flt_ot_return_void
      Src: /src/haproxy/addons/ot/src/filter.c:1091,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:1093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - s
    - f
    - status
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - short
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1094
    functionName: flt_ot_http_reply
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_return_void
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - flt_ot_pr_mode
    - FLT_OT_DBG
    - flt_ot_stream_pos
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: void
    signature: void flt_ot_http_reply(struct stream *s, struct filter *f, short status,
      const struct buffer *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:1119,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:1121,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:1121,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:1122,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:1124,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:1124,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:1124,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:1124,1
    - Dst: task_wakeup
      Src: /src/haproxy/addons/ot/src/filter.c:1131,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:1133,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:1133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - s
    - f
    - chn
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1134
    functionName: flt_ot_tcp_payload
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_chn_label
    - task_wakeup
    - FLT_OT_FUNC
    - flt_ot_pr_mode
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG
    - flt_ot_stream_pos
    - flt_ot_return_int
    - FLT_OT_DBG_ARGS
    - flt_ot_is_disabled
    linkageType: ''
    returnType: int
    signature: int flt_ot_tcp_payload(struct stream *s, struct filter *f, struct channel
      *chn, uint offset, uint len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:44,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:44,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/conf.c:47,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/conf.c:48,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/conf.c:49,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:51,1
    - Dst: FLT_OT_CALLOC
      Src: /src/haproxy/addons/ot/src/conf.c:54,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/conf.c:56,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/conf.c:58,1
    - Dst: FLT_OT_STRDUP
      Src: /src/haproxy/addons/ot/src/conf.c:60,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:63,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/addons/ot/src/conf.c:70,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/conf.c:72,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - size
    - id
    - linenum
    - head
    - err
    argTypes:
    - size_t
    - char*
    - int
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 76
    functionName: flt_ot_conf_hdr_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 0
    functionsReached:
    - FLT_OT_STRDUP
    - FLT_OT_ERR
    - list_for_each_entry
    - FLT_OT_FUNC
    - strcmp
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_CALLOC
    - LIST_APPEND
    - FLT_OT_FREE_CLEAR
    - strlen
    linkageType: ''
    returnType: void
    signature: void *flt_ot_conf_hdr_init(size_t size, const char *id, int linenum,
      struct list *head, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:99,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:99,1
    - Dst: flt_ot_conf_hdr_init
      Src: /src/haproxy/addons/ot/src/conf.c:101,1
    - Dst: FLT_OT_DBG_CONF_PH
      Src: /src/haproxy/addons/ot/src/conf.c:103,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - id
    - linenum
    - head
    - err
    argTypes:
    - char*
    - int
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: flt_ot_conf_ph_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 2
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DBG_CONF_PH
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - flt_ot_conf_hdr_init
    linkageType: ''
    returnType: struct flt_ot_conf_ph
    signature: struct flt_ot_conf_ph *flt_ot_conf_ph_init(const char *id, int linenum,
      struct list *head, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:124,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:124,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:127,1
    - Dst: FLT_OT_DBG_CONF_PH
      Src: /src/haproxy/addons/ot/src/conf.c:129,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:131,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/conf.c:132,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:133,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_conf_ph**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: flt_ot_conf_ph_free
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DBG_CONF_PH
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - FLT_OT_RETURN
    - FLT_OT_LIST_DEL
    - FLT_OT_FREE_CLEAR
    linkageType: ''
    returnType: void
    signature: void flt_ot_conf_ph_free(struct flt_ot_conf_ph **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:159,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:159,1
    - Dst: flt_ot_conf_hdr_init
      Src: /src/haproxy/addons/ot/src/conf.c:161,1
    - Dst: FLT_OT_DBG_CONF_SAMPLE_EXPR
      Src: /src/haproxy/addons/ot/src/conf.c:163,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - id
    - linenum
    - head
    - err
    argTypes:
    - char*
    - int
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: flt_ot_conf_sample_expr_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DBG_CONF_SAMPLE_EXPR
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - flt_ot_conf_hdr_init
    linkageType: ''
    returnType: struct flt_ot_conf_sample_expr
    signature: struct flt_ot_conf_sample_expr *flt_ot_conf_sample_expr_init(const
      char *id, int linenum, struct list *head, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:184,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:184,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:187,1
    - Dst: FLT_OT_DBG_CONF_SAMPLE_EXPR
      Src: /src/haproxy/addons/ot/src/conf.c:189,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:191,1
    - Dst: release_sample_expr
      Src: /src/haproxy/addons/ot/src/conf.c:192,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/conf.c:193,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:194,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_conf_sample_expr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 197
    functionName: flt_ot_conf_sample_expr_free
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DBG_CONF_SAMPLE_EXPR
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - FLT_OT_RETURN
    - FLT_OT_LIST_DEL
    - FLT_OT_FREE_CLEAR
    - release_sample_expr
    linkageType: ''
    returnType: void
    signature: void flt_ot_conf_sample_expr_free(struct flt_ot_conf_sample_expr **ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:220,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:220,1
    - Dst: flt_ot_conf_hdr_init
      Src: /src/haproxy/addons/ot/src/conf.c:222,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:224,1
    - Dst: flt_ot_args_to_str
      Src: /src/haproxy/addons/ot/src/conf.c:226,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:228,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:230,1
    - Dst: flt_ot_args_count
      Src: /src/haproxy/addons/ot/src/conf.c:233,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:234,1
    - Dst: FLT_OT_DBG_CONF_SAMPLE
      Src: /src/haproxy/addons/ot/src/conf.c:236,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - args
    - linenum
    - head
    - err
    argTypes:
    - char**
    - int
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 239
    functionName: flt_ot_conf_sample_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - flt_ot_args_to_str
    - FLT_OT_FREE_CLEAR
    - flt_ot_args_count
    - FLT_OT_DBG_CONF_SAMPLE
    - flt_ot_conf_hdr_init
    - LIST_INIT
    linkageType: ''
    returnType: struct flt_ot_conf_sample
    signature: struct flt_ot_conf_sample *flt_ot_conf_sample_init(char **args, int
      linenum, struct list *head, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:257,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:257,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:260,1
    - Dst: FLT_OT_DBG_CONF_SAMPLE
      Src: /src/haproxy/addons/ot/src/conf.c:262,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:264,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:265,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:266,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/conf.c:267,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:268,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_conf_sample**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 271
    functionName: flt_ot_conf_sample_free
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - FLT_OT_RETURN
    - FLT_OT_LIST_DESTROY
    - FLT_OT_LIST_DEL
    - FLT_OT_FREE_CLEAR
    - FLT_OT_DBG_CONF_SAMPLE
    linkageType: ''
    returnType: void
    signature: void flt_ot_conf_sample_free(struct flt_ot_conf_sample **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:294,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:294,1
    - Dst: flt_ot_conf_hdr_init
      Src: /src/haproxy/addons/ot/src/conf.c:296,1
    - Dst: FLT_OT_DBG_CONF_STR
      Src: /src/haproxy/addons/ot/src/conf.c:298,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - id
    - linenum
    - head
    - err
    argTypes:
    - char*
    - int
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 301
    functionName: flt_ot_conf_str_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG_CONF_STR
    - flt_ot_conf_hdr_init
    linkageType: ''
    returnType: struct flt_ot_conf_str
    signature: struct flt_ot_conf_str *flt_ot_conf_str_init(const char *id, int linenum,
      struct list *head, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:319,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:319,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:322,1
    - Dst: FLT_OT_DBG_CONF_STR
      Src: /src/haproxy/addons/ot/src/conf.c:324,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:326,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/conf.c:327,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:328,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_conf_str**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 331
    functionName: flt_ot_conf_str_free
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - FLT_OT_RETURN
    - FLT_OT_LIST_DEL
    - FLT_OT_FREE_CLEAR
    - FLT_OT_DBG_CONF_STR
    linkageType: ''
    returnType: void
    signature: void flt_ot_conf_str_free(struct flt_ot_conf_str **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:354,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:354,1
    - Dst: flt_ot_conf_hdr_init
      Src: /src/haproxy/addons/ot/src/conf.c:356,1
    - Dst: FLT_OT_DBG_CONF_CONTEXT
      Src: /src/haproxy/addons/ot/src/conf.c:358,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - id
    - linenum
    - head
    - err
    argTypes:
    - char*
    - int
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 361
    functionName: flt_ot_conf_context_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DBG_CONF_CONTEXT
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - flt_ot_conf_hdr_init
    linkageType: ''
    returnType: struct flt_ot_conf_context
    signature: struct flt_ot_conf_context *flt_ot_conf_context_init(const char *id,
      int linenum, struct list *head, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:379,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:379,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:382,1
    - Dst: FLT_OT_DBG_CONF_CONTEXT
      Src: /src/haproxy/addons/ot/src/conf.c:384,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:386,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/conf.c:387,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:388,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_conf_context**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 391
    functionName: flt_ot_conf_context_free
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 0
    functionsReached:
    - FLT_OT_DBG_CONF_CONTEXT
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - FLT_OT_RETURN
    - FLT_OT_LIST_DEL
    - FLT_OT_FREE_CLEAR
    linkageType: ''
    returnType: void
    signature: void flt_ot_conf_context_free(struct flt_ot_conf_context **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:414,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:414,1
    - Dst: flt_ot_conf_hdr_init
      Src: /src/haproxy/addons/ot/src/conf.c:416,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:418,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:420,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:421,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:422,1
    - Dst: FLT_OT_DBG_CONF_SPAN
      Src: /src/haproxy/addons/ot/src/conf.c:424,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - id
    - linenum
    - head
    - err
    argTypes:
    - char*
    - int
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: flt_ot_conf_span_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG_CONF_SPAN
    - flt_ot_conf_hdr_init
    - LIST_INIT
    linkageType: ''
    returnType: struct flt_ot_conf_span
    signature: struct flt_ot_conf_span *flt_ot_conf_span_init(const char *id, int
      linenum, struct list *head, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:445,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:445,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:448,1
    - Dst: FLT_OT_DBG_CONF_SPAN
      Src: /src/haproxy/addons/ot/src/conf.c:450,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:452,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:453,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:454,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:455,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:456,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:457,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/conf.c:458,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:459,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_conf_span**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 462
    functionName: flt_ot_conf_span_free
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - FLT_OT_DBG_CONF_SPAN
    - FLT_OT_RETURN
    - FLT_OT_LIST_DESTROY
    - FLT_OT_LIST_DEL
    - FLT_OT_FREE_CLEAR
    linkageType: ''
    returnType: void
    signature: void flt_ot_conf_span_free(struct flt_ot_conf_span **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:485,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:485,1
    - Dst: flt_ot_conf_hdr_init
      Src: /src/haproxy/addons/ot/src/conf.c:487,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:489,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:491,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:492,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:493,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:494,1
    - Dst: FLT_OT_DBG_CONF_SCOPE
      Src: /src/haproxy/addons/ot/src/conf.c:496,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - id
    - linenum
    - head
    - err
    argTypes:
    - char*
    - int
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 499
    functionName: flt_ot_conf_scope_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG_CONF_SCOPE
    - flt_ot_conf_hdr_init
    - LIST_INIT
    linkageType: ''
    returnType: struct flt_ot_conf_scope
    signature: struct flt_ot_conf_scope *flt_ot_conf_scope_init(const char *id, int
      linenum, struct list *head, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:518,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:518,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:521,1
    - Dst: FLT_OT_DBG_CONF_SCOPE
      Src: /src/haproxy/addons/ot/src/conf.c:523,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:525,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/ot/src/conf.c:526,1
    - Dst: prune_acl
      Src: /src/haproxy/addons/ot/src/conf.c:527,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/conf.c:528,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:529,1
    - Dst: free_acl_cond
      Src: /src/haproxy/addons/ot/src/conf.c:531,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:532,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:533,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:534,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/conf.c:535,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:536,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_conf_scope**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 539
    functionName: flt_ot_conf_scope_free
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 2
    functionsReached:
    - list_for_each_entry_safe
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - FLT_OT_DBG_CONF_SCOPE
    - FLT_OT_RETURN
    - FLT_OT_LIST_DEL
    - prune_acl
    - free_acl_cond
    - FLT_OT_LIST_DESTROY
    - FLT_OT_FREE_CLEAR
    linkageType: ''
    returnType: void
    signature: void flt_ot_conf_scope_free(struct flt_ot_conf_scope **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:562,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:562,1
    - Dst: flt_ot_conf_hdr_init
      Src: /src/haproxy/addons/ot/src/conf.c:564,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:566,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:568,1
    - Dst: FLT_OT_DBG_CONF_GROUP
      Src: /src/haproxy/addons/ot/src/conf.c:570,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - id
    - linenum
    - head
    - err
    argTypes:
    - char*
    - int
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 573
    functionName: flt_ot_conf_group_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - flt_ot_conf_hdr_init
    - LIST_INIT
    - FLT_OT_DBG_CONF_GROUP
    linkageType: ''
    returnType: struct flt_ot_conf_group
    signature: struct flt_ot_conf_group *flt_ot_conf_group_init(const char *id, int
      linenum, struct list *head, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:591,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:591,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:594,1
    - Dst: FLT_OT_DBG_CONF_GROUP
      Src: /src/haproxy/addons/ot/src/conf.c:596,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:598,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:599,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/conf.c:600,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:601,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_conf_group**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 604
    functionName: flt_ot_conf_group_free
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - FLT_OT_RETURN
    - FLT_OT_LIST_DESTROY
    - FLT_OT_LIST_DEL
    - FLT_OT_FREE_CLEAR
    - FLT_OT_DBG_CONF_GROUP
    linkageType: ''
    returnType: void
    signature: void flt_ot_conf_group_free(struct flt_ot_conf_group **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:626,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:626,1
    - Dst: flt_ot_conf_hdr_init
      Src: /src/haproxy/addons/ot/src/conf.c:628,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:630,1
    - Dst: FLT_OT_FLOAT_U32
      Src: /src/haproxy/addons/ot/src/conf.c:632,1
    - Dst: init_new_proxy
      Src: /src/haproxy/addons/ot/src/conf.c:633,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:634,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:635,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:636,1
    - Dst: FLT_OT_DBG_CONF_TRACER
      Src: /src/haproxy/addons/ot/src/conf.c:638,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - id
    - linenum
    - err
    argTypes:
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 641
    functionName: flt_ot_conf_tracer_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - LIST_INIT
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG_CONF_TRACER
    - flt_ot_conf_hdr_init
    - FLT_OT_FLOAT_U32
    - init_new_proxy
    linkageType: ''
    returnType: struct flt_ot_conf_tracer
    signature: struct flt_ot_conf_tracer *flt_ot_conf_tracer_init(const char *id,
      int linenum, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:662,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:662,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:665,1
    - Dst: FLT_OT_DBG_CONF_TRACER
      Src: /src/haproxy/addons/ot/src/conf.c:667,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:669,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:670,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:671,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:672,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/conf.c:673,1
    - Dst: flt_ot_list_debug
      Src: /src/haproxy/addons/ot/src/conf.c:673,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/ot/src/conf.c:674,1
    - Dst: prune_acl
      Src: /src/haproxy/addons/ot/src/conf.c:675,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/conf.c:676,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:677,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/conf.c:679,1
    - Dst: flt_ot_list_debug
      Src: /src/haproxy/addons/ot/src/conf.c:679,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/ot/src/conf.c:680,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/addons/ot/src/conf.c:681,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:682,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:684,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:685,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:686,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_conf_tracer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 657
    functionDepth: 3
    functionLinenumber: 657
    functionLinenumberEnd: 689
    functionName: flt_ot_conf_tracer_free
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - flt_ot_list_debug
    - list_for_each_entry_safe
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - FLT_OT_RETURN
    - FLT_OT_LIST_DESTROY
    - FLT_OT_DBG
    - prune_acl
    - FLT_OT_LIST_DEL
    - FLT_OT_FREE_CLEAR
    - FLT_OT_DBG_CONF_TRACER
    linkageType: ''
    returnType: void
    signature: void flt_ot_conf_tracer_free(struct flt_ot_conf_tracer **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:709,1
    - Dst: FLT_OT_CALLOC
      Src: /src/haproxy/addons/ot/src/conf.c:711,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:713,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:716,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/conf.c:717,1
    - Dst: FLT_OT_DBG_CONF
      Src: /src/haproxy/addons/ot/src/conf.c:719,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/conf.c:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 722
    functionName: flt_ot_conf_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - FLT_OT_CALLOC
    - FLT_OT_FUNC
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG_CONF
    - LIST_INIT
    linkageType: ''
    returnType: struct flt_ot_conf
    signature: struct flt_ot_conf *flt_ot_conf_init(struct proxy *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/conf.c:740,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/conf.c:740,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:743,1
    - Dst: FLT_OT_DBG_CONF
      Src: /src/haproxy/addons/ot/src/conf.c:745,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:747,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/conf.c:748,1
    - Dst: flt_ot_conf_tracer_free
      Src: /src/haproxy/addons/ot/src/conf.c:749,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:750,1
    - Dst: FLT_OT_LIST_DESTROY
      Src: /src/haproxy/addons/ot/src/conf.c:751,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/conf.c:752,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/conf.c:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_conf**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 738
    functionDepth: 4
    functionLinenumber: 738
    functionLinenumberEnd: 755
    functionName: flt_ot_conf_free
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 2
    functionsReached:
    - flt_ot_conf_tracer_free
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - FLT_OT_RETURN
    - FLT_OT_LIST_DESTROY
    - FLT_OT_FREE_CLEAR
    - FLT_OT_DBG_CONF
    linkageType: ''
    returnType: void
    signature: void flt_ot_conf_free(struct flt_ot_conf **ptr)
  - 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: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: FLT_OT_EVENT_DEF
    functionSourceFile: /src/haproxy/addons/ot/src/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_EVENT_DEF(a,b,c,d,e,f)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/event.c:52,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/event.c:55,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/event.c:55,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/event.c:58,1
    - Dst: ot_span_init
      Src: /src/haproxy/addons/ot/src/event.c:61,1
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/event.c:61,1
    - Dst: ot_span_tag
      Src: /src/haproxy/addons/ot/src/event.c:66,1
    - Dst: ot_span_set_baggage
      Src: /src/haproxy/addons/ot/src/event.c:70,1
    - Dst: ot_span_log
      Src: /src/haproxy/addons/ot/src/event.c:74,1
    - Dst: ot_inject_http_headers
      Src: /src/haproxy/addons/ot/src/event.c:82,1
    - Dst: flt_ot_var_register
      Src: /src/haproxy/addons/ot/src/event.c:91,1
    - Dst: flt_ot_var_set
      Src: /src/haproxy/addons/ot/src/event.c:93,1
    - Dst: flt_ot_http_header_set
      Src: /src/haproxy/addons/ot/src/event.c:99,1
    - Dst: struct otc_span_context*::destroy
      Src: /src/haproxy/addons/ot/src/event.c:104,1
    - Dst: otc_text_map_destroy
      Src: /src/haproxy/addons/ot/src/event.c:105,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/event.c:109,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 9
    argNames:
    - s
    - f
    - chn
    - dir
    - span
    - data
    - conf_span
    - ts
    - err
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - uint
    - struct flt_ot_scope_span*
    - struct flt_ot_scope_data*
    - struct flt_ot_conf_span*
    - struct timespec*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 50
    functionDepth: 8
    functionLinenumber: 50
    functionLinenumberEnd: 110
    functionName: flt_ot_scope_run_span
    functionSourceFile: /src/haproxy/addons/ot/src/event.c
    functionUses: 0
    functionsReached:
    - ot_span_log
    - struct otc_span_context*::destroy
    - ot_span_set_baggage
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_DEREF
    - FLT_OT_RETURN_INT
    - ot_span_tag
    - flt_ot_var_set
    - flt_ot_http_header_set
    - flt_ot_var_register
    - otc_text_map_destroy
    - ot_inject_http_headers
    - FLT_OT_CONF
    - ot_span_init
    linkageType: ''
    returnType: int
    signature: int flt_ot_scope_run_span(struct stream *s, struct filter *f, struct
      channel *chn, uint dir, struct flt_ot_scope_span *span, struct flt_ot_scope_data
      *data, const struct flt_ot_conf_span *conf_span, const struct timespec *ts,
      char **err)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/event.c:135,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/event.c:142,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/event.c:142,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:144,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/event.c:144,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/event.c:144,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/event.c:144,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:145,1
    - Dst: FLT_OT_DBG_CONF_SCOPE
      Src: /src/haproxy/addons/ot/src/event.c:146,1
    - Dst: clock_gettime
      Src: /src/haproxy/addons/ot/src/event.c:149,1
    - Dst: acl_exec_cond
      Src: /src/haproxy/addons/ot/src/event.c:158,1
    - Dst: acl_pass
      Src: /src/haproxy/addons/ot/src/event.c:159,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:163,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/event.c:173,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:175,1
    - Dst: FLT_OT_RT_CTX
      Src: /src/haproxy/addons/ot/src/event.c:177,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/addons/ot/src/event.c:179,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/event.c:184,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/event.c:188,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:191,1
    - Dst: FLT_OT_DBG_CONF_CONTEXT
      Src: /src/haproxy/addons/ot/src/event.c:192,1
    - Dst: flt_ot_http_headers_get
      Src: /src/haproxy/addons/ot/src/event.c:199,1
    - Dst: flt_ot_vars_get
      Src: /src/haproxy/addons/ot/src/event.c:202,1
    - Dst: flt_ot_scope_context_init
      Src: /src/haproxy/addons/ot/src/event.c:206,1
    - Dst: otc_text_map_destroy
      Src: /src/haproxy/addons/ot/src/event.c:209,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/event.c:215,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:220,1
    - Dst: FLT_OT_DBG_CONF_SPAN
      Src: /src/haproxy/addons/ot/src/event.c:221,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/event.c:223,1
    - Dst: flt_ot_scope_span_init
      Src: /src/haproxy/addons/ot/src/event.c:225,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/event.c:229,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:230,1
    - Dst: flt_ot_sample_add
      Src: /src/haproxy/addons/ot/src/event.c:232,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/event.c:236,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:237,1
    - Dst: flt_ot_sample_add
      Src: /src/haproxy/addons/ot/src/event.c:239,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/event.c:243,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:244,1
    - Dst: flt_ot_sample_add
      Src: /src/haproxy/addons/ot/src/event.c:246,1
    - Dst: flt_ot_scope_run_span
      Src: /src/haproxy/addons/ot/src/event.c:251,1
    - Dst: flt_ot_scope_data_free
      Src: /src/haproxy/addons/ot/src/event.c:254,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/event.c:257,1
    - Dst: flt_ot_scope_finish_mark
      Src: /src/haproxy/addons/ot/src/event.c:258,1
    - Dst: flt_ot_scope_finish_marked
      Src: /src/haproxy/addons/ot/src/event.c:261,1
    - Dst: flt_ot_scope_free_unused
      Src: /src/haproxy/addons/ot/src/event.c:262,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/event.c:264,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 7
    argNames:
    - s
    - f
    - chn
    - conf_scope
    - ts
    - dir
    - err
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - struct flt_ot_conf_scope*
    - struct timespec*
    - uint
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 133
    functionDepth: 9
    functionLinenumber: 133
    functionLinenumberEnd: 265
    functionName: flt_ot_scope_run
    functionSourceFile: /src/haproxy/addons/ot/src/event.c
    functionUses: 1
    functionsReached:
    - flt_ot_sample_add
    - flt_ot_chn_label
    - flt_ot_scope_span_init
    - flt_ot_scope_finish_marked
    - FLT_OT_FUNC
    - _HA_ATOMIC_ADD
    - flt_ot_scope_finish_mark
    - FLT_OT_DBG_CONF_SPAN
    - clock_gettime
    - otc_text_map_destroy
    - flt_ot_scope_data_free
    - flt_ot_scope_free_unused
    - FLT_OT_DBG_CONF_CONTEXT
    - flt_ot_pr_mode
    - flt_ot_stream_pos
    - FLT_OT_CONF
    - flt_ot_http_headers_get
    - flt_ot_scope_run_span
    - FLT_OT_DBG_CONF_SCOPE
    - FLT_OT_DBG
    - memset
    - acl_exec_cond
    - list_for_each_entry
    - flt_ot_scope_context_init
    - flt_ot_vars_get
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_INT
    - acl_pass
    - FLT_OT_RT_CTX
    linkageType: ''
    returnType: int
    signature: int flt_ot_scope_run(struct stream *s, struct filter *f, struct channel
      *chn, struct flt_ot_conf_scope *conf_scope, const struct timespec *ts, uint
      dir, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/event.c:288,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/event.c:293,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/event.c:293,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:295,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/event.c:295,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/event.c:295,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/event.c:295,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:296,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/addons/ot/src/event.c:299,1
    - Dst: htx_is_empty
      Src: /src/haproxy/addons/ot/src/event.c:299,1
    - Dst: htxbuf
      Src: /src/haproxy/addons/ot/src/event.c:299,1
    - Dst: FLT_OT_RT_CTX
      Src: /src/haproxy/addons/ot/src/event.c:302,1
    - Dst: clock_gettime
      Src: /src/haproxy/addons/ot/src/event.c:305,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/event.c:312,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:316,1
    - Dst: flt_ot_scope_run
      Src: /src/haproxy/addons/ot/src/event.c:317,1
    - Dst: flt_ot_vars_dump
      Src: /src/haproxy/addons/ot/src/event.c:322,1
    - Dst: flt_ot_http_headers_dump
      Src: /src/haproxy/addons/ot/src/event.c:324,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/event.c:326,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/event.c:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - s
    - f
    - chn
    - event
    - err
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 286
    functionDepth: 10
    functionLinenumber: 286
    functionLinenumberEnd: 329
    functionName: flt_ot_event_run
    functionSourceFile: /src/haproxy/addons/ot/src/event.c
    functionUses: 4
    functionsReached:
    - flt_ot_chn_label
    - htxbuf
    - flt_ot_http_headers_dump
    - list_for_each_entry
    - FLT_OT_FUNC
    - _HA_ATOMIC_ADD
    - FLT_OT_DPTR_ARGS
    - flt_ot_pr_mode
    - FLT_OT_DBG
    - flt_ot_stream_pos
    - flt_ot_vars_dump
    - clock_gettime
    - FLT_OT_RETURN_INT
    - FLT_OT_RT_CTX
    - FLT_OT_CONF
    - flt_ot_scope_run
    - htx_is_empty
    linkageType: ''
    returnType: int
    signature: int flt_ot_event_run(struct stream *s, struct filter *f, struct channel
      *chn, int event, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/pool.c:43,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/pool.c:43,1
    - Dst: pool_alloc
      Src: /src/haproxy/addons/ot/src/pool.c:46,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/pool.c:48,1
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/pool.c:48,1
    - Dst: FLT_OT_MALLOC
      Src: /src/haproxy/addons/ot/src/pool.c:50,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/pool.c:54,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/pool.c:56,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/pool.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - pool
    - size
    - flag_clear
    - err
    argTypes:
    - struct pool_head*
    - size_t
    - bool
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: flt_ot_pool_alloc
    functionSourceFile: /src/haproxy/addons/ot/src/pool.c
    functionUses: 1
    functionsReached:
    - memset
    - pool_alloc
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_DEREF
    - FLT_OT_DBG
    - FLT_OT_MALLOC
    linkageType: ''
    returnType: void
    signature: void *flt_ot_pool_alloc(struct pool_head *pool, size_t size, bool flag_clear,
      char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/pool.c:82,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/pool.c:82,1
    - Dst: pool_alloc
      Src: /src/haproxy/addons/ot/src/pool.c:85,1
    - Dst: memcpy
      Src: /src/haproxy/addons/ot/src/pool.c:87,1
    - Dst: MIN
      Src: /src/haproxy/addons/ot/src/pool.c:87,1
    - Dst: MIN
      Src: /src/haproxy/addons/ot/src/pool.c:89,1
    - Dst: FLT_OT_STRNDUP
      Src: /src/haproxy/addons/ot/src/pool.c:92,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/pool.c:96,1
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/pool.c:96,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/pool.c:98,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/pool.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - pool
    - s
    - size
    - err
    argTypes:
    - struct pool_head*
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 101
    functionName: flt_ot_pool_strndup
    functionSourceFile: /src/haproxy/addons/ot/src/pool.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - memcpy
    - FLT_OT_STRNDUP
    - FLT_OT_ERR
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_DEREF
    - FLT_OT_DBG
    - MIN
    linkageType: ''
    returnType: void
    signature: void *flt_ot_pool_strndup(struct pool_head *pool, const char *s, size_t
      size, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/pool.c:120,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/pool.c:120,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/pool.c:123,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/pool.c:125,1
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/pool.c:125,1
    - Dst: pool_free
      Src: /src/haproxy/addons/ot/src/pool.c:128,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/pool.c:130,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/pool.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pool
    - ptr
    argTypes:
    - struct pool_head*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 135
    functionName: flt_ot_pool_free
    functionSourceFile: /src/haproxy/addons/ot/src/pool.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_DEREF
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DBG
    - pool_free
    linkageType: ''
    returnType: void
    signature: void flt_ot_pool_free(struct pool_head *pool, void **ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/pool.c:156,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/pool.c:156,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/addons/ot/src/pool.c:159,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/pool.c:161,1
    - Dst: FLT_OT_MALLOC
      Src: /src/haproxy/addons/ot/src/pool.c:163,1
    - Dst: chunk_init
      Src: /src/haproxy/addons/ot/src/pool.c:165,1
    - Dst: FLT_OT_MALLOC
      Src: /src/haproxy/addons/ot/src/pool.c:165,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/pool.c:167,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/pool.c:174,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/pool.c:176,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/pool.c:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - flag_clear
    - err
    argTypes:
    - bool
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 179
    functionName: flt_ot_trash_alloc
    functionSourceFile: /src/haproxy/addons/ot/src/pool.c
    functionUses: 1
    functionsReached:
    - memset
    - FLT_OT_ERR
    - alloc_trash_chunk
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - FLT_OT_MALLOC
    - chunk_init
    - FLT_OT_FREE_CLEAR
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *flt_ot_trash_alloc(bool flag_clear, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/pool.c:197,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/pool.c:197,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/pool.c:200,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/pool.c:202,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/addons/ot/src/pool.c:205,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/pool.c:207,1
    - Dst: FLT_OT_FREE
      Src: /src/haproxy/addons/ot/src/pool.c:208,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/pool.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct buffer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 214
    functionName: flt_ot_trash_free
    functionSourceFile: /src/haproxy/addons/ot/src/pool.c
    functionUses: 1
    functionsReached:
    - free_trash_chunk
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DBG
    linkageType: ''
    returnType: void
    signature: void flt_ot_trash_free(struct buffer **ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:60,1
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/scope.c:60,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:63,1
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/scope.c:63,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:67,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:70,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 75
    functionName: flt_ot_pools_info
    functionSourceFile: /src/haproxy/addons/ot/src/scope.c
    functionUses: 1
    functionsReached:
    - FLT_OT_DBG
    - FLT_OT_DEREF
    linkageType: ''
    returnType: void
    signature: void flt_ot_pools_info(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/scope.c:97,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/scope.c:101,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/scope.c:101,1
    - Dst: flt_ot_pool_alloc
      Src: /src/haproxy/addons/ot/src/scope.c:103,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:105,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/scope.c:112,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/scope.c:113,1
    - Dst: b_make
      Src: /src/haproxy/addons/ot/src/scope.c:115,1
    - Dst: ha_generate_uuid_v4
      Src: /src/haproxy/addons/ot/src/scope.c:116,1
    - Dst: flt_ot_var_register
      Src: /src/haproxy/addons/ot/src/scope.c:123,1
    - Dst: flt_ot_var_set
      Src: /src/haproxy/addons/ot/src/scope.c:124,1
    - Dst: FLT_OT_DBG_RUNTIME_CONTEXT
      Src: /src/haproxy/addons/ot/src/scope.c:127,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - s
    - f
    - err
    argTypes:
    - struct stream*
    - struct filter*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 95
    functionDepth: 8
    functionLinenumber: 95
    functionLinenumberEnd: 130
    functionName: flt_ot_runtime_context_init
    functionSourceFile: /src/haproxy/addons/ot/src/scope.c
    functionUses: 1
    functionsReached:
    - ha_generate_uuid_v4
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - flt_ot_pool_alloc
    - flt_ot_var_set
    - flt_ot_var_register
    - b_make
    - FLT_OT_CONF
    - FLT_OT_DBG_RUNTIME_CONTEXT
    - LIST_INIT
    linkageType: ''
    returnType: struct flt_ot_runtime_context
    signature: struct flt_ot_runtime_context *flt_ot_runtime_context_init(struct stream
      *s, struct filter *f, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/scope.c:150,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:153,1
    - Dst: FLT_OT_DBG_RUNTIME_CONTEXT
      Src: /src/haproxy/addons/ot/src/scope.c:155,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/ot/src/scope.c:157,1
    - Dst: clock_gettime
      Src: /src/haproxy/addons/ot/src/scope.c:162,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/ot/src/scope.c:164,1
    - Dst: ot_span_finish
      Src: /src/haproxy/addons/ot/src/scope.c:165,1
    - Dst: flt_ot_scope_span_free
      Src: /src/haproxy/addons/ot/src/scope.c:166,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/ot/src/scope.c:170,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/ot/src/scope.c:173,1
    - Dst: flt_ot_scope_context_free
      Src: /src/haproxy/addons/ot/src/scope.c:174,1
    - Dst: flt_ot_pool_free
      Src: /src/haproxy/addons/ot/src/scope.c:177,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 180
    functionName: flt_ot_runtime_context_free
    functionSourceFile: /src/haproxy/addons/ot/src/scope.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry_safe
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - LIST_ISEMPTY
    - clock_gettime
    - flt_ot_scope_span_free
    - ot_span_finish
    - FLT_OT_DBG_RUNTIME_CONTEXT
    - flt_ot_scope_context_free
    - flt_ot_pool_free
    linkageType: ''
    returnType: void
    signature: void flt_ot_runtime_context_free(struct filter *f)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/scope.c:210,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/scope.c:210,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:213,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:215,1
    - Dst: memcmp
      Src: /src/haproxy/addons/ot/src/scope.c:216,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:217,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:219,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:223,1
    - Dst: memcmp
      Src: /src/haproxy/addons/ot/src/scope.c:224,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:231,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:233,1
    - Dst: memcmp
      Src: /src/haproxy/addons/ot/src/scope.c:234,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:241,1
    - Dst: FLT_OT_ERR
      Src: /src/haproxy/addons/ot/src/scope.c:243,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:245,1
    - Dst: flt_ot_pool_alloc
      Src: /src/haproxy/addons/ot/src/scope.c:250,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:252,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/addons/ot/src/scope.c:260,1
    - Dst: FLT_OT_DBG_SCOPE_SPAN
      Src: /src/haproxy/addons/ot/src/scope.c:262,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:264,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 8
    argNames:
    - rt_ctx
    - id
    - id_len
    - ref_type
    - ref_id
    - ref_id_len
    - dir
    - err
    argTypes:
    - struct flt_ot_runtime_context*
    - char*
    - size_t
    - otc_span_reference_type_t
    - char*
    - size_t
    - uint
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 265
    functionName: flt_ot_scope_span_init
    functionSourceFile: /src/haproxy/addons/ot/src/scope.c
    functionUses: 1
    functionsReached:
    - memcmp
    - list_for_each_entry
    - FLT_OT_ERR
    - FLT_OT_DBG_SCOPE_SPAN
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - flt_ot_pool_alloc
    - LIST_INSERT
    linkageType: ''
    returnType: struct flt_ot_scope_span
    signature: struct flt_ot_scope_span *flt_ot_scope_span_init(struct flt_ot_runtime_context
      *rt_ctx, const char *id, size_t id_len, otc_span_reference_type_t ref_type,
      const char *ref_id, size_t ref_id_len, uint dir, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/scope.c:283,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/scope.c:283,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:286,1
    - Dst: FLT_OT_DBG_SCOPE_SPAN
      Src: /src/haproxy/addons/ot/src/scope.c:288,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:292,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:294,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/scope.c:297,1
    - Dst: flt_ot_pool_free
      Src: /src/haproxy/addons/ot/src/scope.c:298,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_scope_span**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 301
    functionName: flt_ot_scope_span_free
    functionSourceFile: /src/haproxy/addons/ot/src/scope.c
    functionUses: 1
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN
    - FLT_OT_DBG
    - FLT_OT_LIST_DEL
    - FLT_OT_DBG_SCOPE_SPAN
    - flt_ot_pool_free
    linkageType: ''
    returnType: void
    signature: void flt_ot_scope_span_free(struct flt_ot_scope_span **ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/scope.c:329,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/scope.c:329,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:332,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:334,1
    - Dst: memcmp
      Src: /src/haproxy/addons/ot/src/scope.c:335,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:336,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:338,1
    - Dst: flt_ot_pool_alloc
      Src: /src/haproxy/addons/ot/src/scope.c:341,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:343,1
    - Dst: ot_extract_http_headers
      Src: /src/haproxy/addons/ot/src/scope.c:345,1
    - Dst: flt_ot_scope_context_free
      Src: /src/haproxy/addons/ot/src/scope.c:347,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:349,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/addons/ot/src/scope.c:356,1
    - Dst: FLT_OT_DBG_SCOPE_CONTEXT
      Src: /src/haproxy/addons/ot/src/scope.c:358,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/scope.c:360,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 7
    argNames:
    - rt_ctx
    - tracer
    - id
    - id_len
    - text_map
    - dir
    - err
    argTypes:
    - struct flt_ot_runtime_context*
    - struct otc_tracer*
    - char*
    - size_t
    - struct otc_text_map*
    - uint
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 361
    functionName: flt_ot_scope_context_init
    functionSourceFile: /src/haproxy/addons/ot/src/scope.c
    functionUses: 1
    functionsReached:
    - memcmp
    - ot_extract_http_headers
    - list_for_each_entry
    - FLT_OT_DBG_SCOPE_CONTEXT
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - flt_ot_pool_alloc
    - LIST_INSERT
    - flt_ot_scope_context_free
    linkageType: ''
    returnType: struct flt_ot_scope_context
    signature: struct flt_ot_scope_context *flt_ot_scope_context_init(struct flt_ot_runtime_context
      *rt_ctx, struct otc_tracer *tracer, const char *id, size_t id_len, const struct
      otc_text_map *text_map, uint dir, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/scope.c:379,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/scope.c:379,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:382,1
    - Dst: FLT_OT_DBG_SCOPE_CONTEXT
      Src: /src/haproxy/addons/ot/src/scope.c:384,1
    - Dst: context::destroy
      Src: /src/haproxy/addons/ot/src/scope.c:387,1
    - Dst: FLT_OT_LIST_DEL
      Src: /src/haproxy/addons/ot/src/scope.c:389,1
    - Dst: flt_ot_pool_free
      Src: /src/haproxy/addons/ot/src/scope.c:390,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_scope_context**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 393
    functionName: flt_ot_scope_context_free
    functionSourceFile: /src/haproxy/addons/ot/src/scope.c
    functionUses: 2
    functionsReached:
    - context::destroy
    - FLT_OT_DBG_SCOPE_CONTEXT
    - FLT_OT_FUNC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_RETURN
    - FLT_OT_LIST_DEL
    - flt_ot_pool_free
    linkageType: ''
    returnType: void
    signature: void flt_ot_scope_context_free(struct flt_ot_scope_context **ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/scope.c:413,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:416,1
    - Dst: FLT_OT_DBG_SCOPE_DATA
      Src: /src/haproxy/addons/ot/src/scope.c:418,1
    - Dst: FLT_OT_FREE_VOID
      Src: /src/haproxy/addons/ot/src/scope.c:422,1
    - Dst: otc_text_map_destroy
      Src: /src/haproxy/addons/ot/src/scope.c:423,1
    - Dst: FLT_OT_FREE_VOID
      Src: /src/haproxy/addons/ot/src/scope.c:426,1
    - Dst: memset
      Src: /src/haproxy/addons/ot/src/scope.c:428,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:430,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct flt_ot_scope_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 431
    functionName: flt_ot_scope_data_free
    functionSourceFile: /src/haproxy/addons/ot/src/scope.c
    functionUses: 1
    functionsReached:
    - memset
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - FLT_OT_DBG_SCOPE_DATA
    - otc_text_map_destroy
    - FLT_OT_FREE_VOID
    linkageType: ''
    returnType: void
    signature: void flt_ot_scope_data_free(struct flt_ot_scope_data *ptr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/scope.c:455,1
    - Dst: FLT_OT_STR_CMP
      Src: /src/haproxy/addons/ot/src/scope.c:457,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:458,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:463,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:468,1
    - Dst: FLT_OT_STR_CMP
      Src: /src/haproxy/addons/ot/src/scope.c:470,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:471,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:477,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:483,1
    - Dst: FLT_OT_STR_CMP
      Src: /src/haproxy/addons/ot/src/scope.c:485,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:486,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:492,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:498,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:501,1
    - Dst: memcmp
      Src: /src/haproxy/addons/ot/src/scope.c:502,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:509,1
    - Dst: memcmp
      Src: /src/haproxy/addons/ot/src/scope.c:510,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:518,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:520,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/scope.c:522,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/scope.c:527,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 3
    argNames:
    - rt_ctx
    - id
    - id_len
    argTypes:
    - struct flt_ot_runtime_context*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 528
    functionName: flt_ot_scope_finish_mark
    functionSourceFile: /src/haproxy/addons/ot/src/scope.c
    functionUses: 1
    functionsReached:
    - memcmp
    - list_for_each_entry
    - FLT_OT_FUNC
    - FLT_OT_DBG
    - FLT_OT_RETURN_INT
    - FLT_OT_STR_CMP
    linkageType: ''
    returnType: int
    signature: int flt_ot_scope_finish_mark(const struct flt_ot_runtime_context *rt_ctx,
      const char *id, size_t id_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/scope.c:550,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:552,1
    - Dst: FLT_OT_DBG_SCOPE_SPAN
      Src: /src/haproxy/addons/ot/src/scope.c:554,1
    - Dst: ot_span_finish
      Src: /src/haproxy/addons/ot/src/scope.c:556,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/scope.c:561,1
    - Dst: FLT_OT_DBG_SCOPE_CONTEXT
      Src: /src/haproxy/addons/ot/src/scope.c:563,1
    - Dst: struct flt_ot_scope_context*::context::destroy
      Src: /src/haproxy/addons/ot/src/scope.c:566,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - rt_ctx
    - ts_finish
    argTypes:
    - struct flt_ot_runtime_context*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 572
    functionName: flt_ot_scope_finish_marked
    functionSourceFile: /src/haproxy/addons/ot/src/scope.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - FLT_OT_DBG_SCOPE_CONTEXT
    - FLT_OT_FUNC
    - struct flt_ot_scope_context*::context::destroy
    - FLT_OT_RETURN
    - ot_span_finish
    - FLT_OT_DBG_SCOPE_SPAN
    linkageType: ''
    returnType: void
    signature: void flt_ot_scope_finish_marked(const struct flt_ot_runtime_context
      *rt_ctx, const struct timespec *ts_finish)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/scope.c:591,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:594,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/ot/src/scope.c:596,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/ot/src/scope.c:599,1
    - Dst: flt_ot_scope_span_free
      Src: /src/haproxy/addons/ot/src/scope.c:601,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/ot/src/scope.c:604,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/ot/src/scope.c:607,1
    - Dst: flt_ot_http_headers_remove
      Src: /src/haproxy/addons/ot/src/scope.c:613,1
    - Dst: flt_ot_vars_unset
      Src: /src/haproxy/addons/ot/src/scope.c:615,1
    - Dst: flt_ot_scope_context_free
      Src: /src/haproxy/addons/ot/src/scope.c:618,1
    - Dst: FLT_OT_DBG_RUNTIME_CONTEXT
      Src: /src/haproxy/addons/ot/src/scope.c:622,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/scope.c:624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - rt_ctx
    - chn
    argTypes:
    - struct flt_ot_runtime_context*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 589
    functionDepth: 6
    functionLinenumber: 589
    functionLinenumberEnd: 625
    functionName: flt_ot_scope_free_unused
    functionSourceFile: /src/haproxy/addons/ot/src/scope.c
    functionUses: 1
    functionsReached:
    - flt_ot_vars_unset
    - list_for_each_entry_safe
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - LIST_ISEMPTY
    - flt_ot_http_headers_remove
    - flt_ot_scope_span_free
    - FLT_OT_DBG_RUNTIME_CONTEXT
    - flt_ot_scope_context_free
    linkageType: ''
    returnType: void
    signature: void flt_ot_scope_free_unused(struct flt_ot_runtime_context *rt_ctx,
      struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: flt_ot_http_headers_dump
    functionSourceFile: /src/haproxy/addons/ot/include/http.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flt_ot_http_headers_dump(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: FLT_OT_RT_CTX
    functionSourceFile: /src/haproxy/addons/ot/include/scope.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_RT_CTX(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: FLT_OT_DBG_SCOPE_SPAN
    functionSourceFile: /src/haproxy/addons/ot/include/scope.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_SCOPE_SPAN(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: FLT_OT_DBG_SCOPE_CONTEXT
    functionSourceFile: /src/haproxy/addons/ot/include/scope.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_SCOPE_CONTEXT(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: FLT_OT_DBG_SCOPE_DATA
    functionSourceFile: /src/haproxy/addons/ot/include/scope.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_SCOPE_DATA(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: FLT_OT_DBG_RUNTIME_CONTEXT
    functionSourceFile: /src/haproxy/addons/ot/include/scope.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_RUNTIME_CONTEXT(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: FLT_OT_CONST_STR_HDR
    functionSourceFile: /src/haproxy/addons/ot/include/scope.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_CONST_STR_HDR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: flt_ot_pools_info
    functionSourceFile: /src/haproxy/addons/ot/include/scope.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flt_ot_pools_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: FLT_OT_PARSE_WARNING
    functionSourceFile: /src/haproxy/addons/ot/include/parser.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_PARSE_WARNING(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: FLT_OT_PARSE_ALERT
    functionSourceFile: /src/haproxy/addons/ot/include/parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_PARSE_ALERT(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: FLT_OT_POST_PARSE_ALERT
    functionSourceFile: /src/haproxy/addons/ot/include/parser.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_POST_PARSE_ALERT(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - e
    - ','
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: FLT_OT_PARSE_ERR
    functionSourceFile: /src/haproxy/addons/ot/include/parser.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_PARSE_ERR(e,f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: FLT_OT_PARSE_IFERR_ALERT
    functionSourceFile: /src/haproxy/addons/ot/include/parser.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_PARSE_IFERR_ALERT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: FLT_OT_CLI_LOGGING_STATE
    functionSourceFile: /src/haproxy/addons/ot/include/cli.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_CLI_LOGGING_STATE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: FLT_OT_CLI_MSG_CAT
    functionSourceFile: /src/haproxy/addons/ot/include/cli.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_CLI_MSG_CAT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - t
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: FLT_OT_VSET
    functionSourceFile: /src/haproxy/addons/ot/include/opentracing.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_VSET(p,t,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: FLT_OT_DBG_TEXT_MAP
    functionSourceFile: /src/haproxy/addons/ot/include/opentracing.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_TEXT_MAP(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: FLT_OT_DBG_TEXT_CARRIER
    functionSourceFile: /src/haproxy/addons/ot/include/opentracing.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_TEXT_CARRIER(a,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: FLT_OT_DBG_CUSTOM_CARRIER
    functionSourceFile: /src/haproxy/addons/ot/include/opentracing.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_CUSTOM_CARRIER(a,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: FLT_OT_DBG_SPAN_CONTEXT
    functionSourceFile: /src/haproxy/addons/ot/include/opentracing.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_SPAN_CONTEXT(a)
  - 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: ot_debug
    functionSourceFile: /src/haproxy/addons/ot/include/opentracing.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ot_debug()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: ot_text_map_show
    functionSourceFile: /src/haproxy/addons/ot/include/opentracing.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ot_text_map_show(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: FLT_OT_PROXIES_LIST_START
    functionSourceFile: /src/haproxy/addons/ot/include/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_PROXIES_LIST_START()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: FLT_OT_PROXIES_LIST_END
    functionSourceFile: /src/haproxy/addons/ot/include/util.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_PROXIES_LIST_END()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: FLT_OT_ARGS_DUMP
    functionSourceFile: /src/haproxy/addons/ot/include/util.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_ARGS_DUMP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: FLT_OT_ARGS_DUMP
    functionSourceFile: /src/haproxy/addons/ot/include/util.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_ARGS_DUMP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: flt_ot_filters_dump
    functionSourceFile: /src/haproxy/addons/ot/include/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flt_ot_filters_dump()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: FLT_OT_DBG_FMT
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_FMT(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: FLT_OT_DBG_FMT
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_FMT(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: FLT_OT_DBG
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG(l,f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: FLT_OT_FUNC
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 132
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_FUNC(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: FLT_OT_RETURN
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_RETURN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - t
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: FLT_OT_RETURN_EX
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_RETURN_EX(a,t,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: FLT_OT_RETURN_INT
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_RETURN_INT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: FLT_OT_RETURN_PTR
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_RETURN_PTR(a)
  - 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: FLT_OT_DBG_IFDEF
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_IFDEF(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: FLT_OT_DBG_ARGS
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_ARGS(a, ...)
  - 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: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: FLT_OT_DBG_BUF
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_BUF(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: FLT_OT_DBG
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: FLT_OT_FUNC
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 132
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_FUNC(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: FLT_OT_RETURN
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_RETURN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - t
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: FLT_OT_RETURN_EX
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_RETURN_EX(a,t,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: FLT_OT_RETURN_INT
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_RETURN_INT(a)
  - 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: FLT_OT_RETURN_PTR
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_RETURN_PTR(a)
  - 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: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: FLT_OT_DBG_IFDEF
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_IFDEF(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: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: FLT_OT_DBG_BUF
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_BUF(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 94
    functionName: FLT_OT_LOG
    functionSourceFile: /src/haproxy/addons/ot/include/debug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_LOG(l,f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - m
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: FLT_OT_DEREF
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DEREF(a,m,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - m
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: FLT_OT_DDEREF
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DDEREF(a,m,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: FLT_OT_TABLESIZE
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_TABLESIZE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: FLT_OT_IN_RANGE
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_IN_RANGE(v,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: FLT_OT_DPTR_ARGS
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 72
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DPTR_ARGS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: FLT_OT_ARG_ISVALID
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_ARG_ISVALID(n)
  - 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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: FLT_OT_TV_UDIFF
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_TV_UDIFF(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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: FLT_OT_U32_FLOAT
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_U32_FLOAT(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: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: FLT_OT_FLOAT_U32
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_FLOAT_U32(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: FLT_OT_STR_FLAG_YN
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_STR_FLAG_YN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: FLT_OT_STR_SIZE
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_STR_SIZE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: FLT_OT_STR_ADDRSIZE
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_STR_ADDRSIZE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: FLT_OT_STR_ISVALID
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_STR_ISVALID(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - S
    - ','
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: FLT_OT_STR_CMP
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_STR_CMP(S,s,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: FLT_OT_STR_ELLIPSIS
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_STR_ELLIPSIS(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: FLT_OT_NIBBLE_TO_HEX
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_NIBBLE_TO_HEX(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: FLT_OT_FREE
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: FLT_OT_FREE_VOID
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_FREE_VOID(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: FLT_OT_FREE_CLEAR
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_FREE_CLEAR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: FLT_OT_STRDUP
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_STRDUP(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: FLT_OT_STRNDUP
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_STRNDUP(s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: FLT_OT_CALLOC
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_CALLOC(n,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: FLT_OT_MALLOC
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_MALLOC(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: FLT_OT_MEMINFO
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_MEMINFO()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: FLT_OT_RUN_ONCE
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_RUN_ONCE(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: FLT_OT_LIST_ISVALID
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_LIST_ISVALID(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: FLT_OT_LIST_DEL
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_LIST_DEL(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: FLT_OT_LIST_DESTROY
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_LIST_DESTROY(t,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - b
    - ','
    - m
    - ','
    - n
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: FLT_OT_BUFFER_THR
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_BUFFER_THR(b,m,n,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: FLT_OT_ERR
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_ERR(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: FLT_OT_ERR_APPEND
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_ERR_APPEND(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: FLT_OT_ERR_FREE
    functionSourceFile: /src/haproxy/addons/ot/include/define.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_ERR_FREE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: flt_ot_vars_dump
    functionSourceFile: /src/haproxy/addons/ot/include/vars.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flt_ot_vars_dump(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: FLT_OT_ALERT
    functionSourceFile: /src/haproxy/addons/ot/include/filter.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_ALERT(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - d
    - ','
    - m
    - ','
    - p
    - ','
    - t
    - ','
    - v
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: FLT_OT_DBG_LIST
    functionSourceFile: /src/haproxy/addons/ot/include/filter.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_LIST(d,m,p,t,v,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: FLT_OT_CONF
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_CONF(f)
  - 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: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: FLT_OT_CONF_HDR_ARGS
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_CONF_HDR_ARGS(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: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: FLT_OT_STR_HDR_ARGS
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_STR_HDR_ARGS(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: FLT_OT_DBG_CONF_SAMPLE_EXPR
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_CONF_SAMPLE_EXPR(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: FLT_OT_DBG_CONF_SAMPLE
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_CONF_SAMPLE(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: FLT_OT_DBG_CONF_STR
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_CONF_STR(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: FLT_OT_DBG_CONF_CONTEXT
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_CONF_CONTEXT(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: FLT_OT_DBG_CONF_SPAN
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_CONF_SPAN(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: FLT_OT_DBG_CONF_SCOPE
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_CONF_SCOPE(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: FLT_OT_DBG_CONF_GROUP
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_CONF_GROUP(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: FLT_OT_DBG_CONF_PH
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_CONF_PH(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: FLT_OT_DBG_CONF_TRACER
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_CONF_TRACER(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: FLT_OT_DBG_CONF
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_DBG_CONF(f,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: FLT_OT_STR_HDR
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_STR_HDR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: FLT_OT_CONF_HDR
    functionSourceFile: /src/haproxy/addons/ot/include/conf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLT_OT_CONF_HDR(a)
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - index
    - nature
    argTypes:
    - int
    - enum field_nature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 138
    functionName: promex_global_gettype
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum promex_mt_type
    signature: enum promex_mt_type promex_global_gettype(int index, enum field_nature
      nature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - nature
    argTypes:
    - int
    - enum field_nature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: promex_st_gettype
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum promex_mt_type
    signature: enum promex_mt_type promex_st_gettype(int index, enum field_nature
      nature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/addons/promex/service-prometheus.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct promex_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: promex_register_module
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void promex_register_module(struct promex_module *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - sv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 268
    functionName: promex_srv_status
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum promex_srv_state
    signature: enum promex_srv_state promex_srv_status(struct server *sv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: field_format
      Src: /src/haproxy/addons/promex/service-prometheus.c:280,1
    - Dst: chunk_strcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:281,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/promex/service-prometheus.c:282,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/promex/service-prometheus.c:283,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/promex/service-prometheus.c:284,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/promex/service-prometheus.c:285,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/promex/service-prometheus.c:286,1
    - Dst: chunk_strcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:287,1
    - Dst: chunk_strcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:288,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - out
    - f
    - max
    argTypes:
    - struct buffer*
    - struct field*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 293
    functionName: promex_ts_val_to_str
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - chunk_strcat
    - field_format
    - chunk_appendf
    linkageType: ''
    returnType: int
    signature: int promex_ts_val_to_str(struct buffer *out, struct field *f, size_t
      max)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:306,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:309,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:312,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:312,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:313,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:314,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:314,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:315,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:318,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:318,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:319,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:320,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:320,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:321,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:322,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:322,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 5
    argNames:
    - name
    - desc
    - type
    - out
    - max
    argTypes:
    - struct ist
    - struct ist
    - enum promex_mt_type
    - struct ist*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 329
    functionName: promex_dump_ts_header
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - ist
    - istcat
    linkageType: ''
    returnType: int
    signature: "int promex_dump_ts_header(const struct ist name, const struct ist
      desc, enum promex_mt_type type,\n\t\t\t\t struct ist *out, size_t max)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:349,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:350,1
    - Dst: STRESS_RUN1
      Src: /src/haproxy/addons/promex/service-prometheus.c:353,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:353,1
    - Dst: promex_dump_ts_header
      Src: /src/haproxy/addons/promex/service-prometheus.c:357,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:360,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:363,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:366,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:366,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:369,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:370,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:373,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:373,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:374,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:375,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:375,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:376,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:377,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:377,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:381,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:381,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:386,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:386,1
    - Dst: promex_ts_val_to_str
      Src: /src/haproxy/addons/promex/service-prometheus.c:390,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 43
    argCount: 9
    argNames:
    - appctx
    - prefix
    - name
    - desc
    - type
    - val
    - labels
    - out
    - max
    argTypes:
    - struct appctx*
    - struct ist
    - struct ist
    - struct ist
    - enum promex_mt_type
    - struct field*
    - struct promex_label*
    - struct ist*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 401
    functionName: promex_dump_ts
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - STRESS_RUN1
    - ist
    - istcat
    - promex_ts_val_to_str
    - promex_dump_ts_header
    - istlen
    - isttest
    linkageType: ''
    returnType: int
    signature: "int promex_dump_ts(struct appctx *appctx, struct ist prefix,\n\t\t\t
      \ const struct ist name, const  struct ist desc, enum promex_mt_type type,\n\t\t\t
      \ struct field *val, struct promex_label *labels, struct ist *out, size_t max)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/addons/promex/service-prometheus.c:411,1
    - Dst: XXH32_reset
      Src: /src/haproxy/addons/promex/service-prometheus.c:412,1
    - Dst: XXH32_update
      Src: /src/haproxy/addons/promex/service-prometheus.c:413,1
    - Dst: istptr
      Src: /src/haproxy/addons/promex/service-prometheus.c:413,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:413,1
    - Dst: XXH32_update
      Src: /src/haproxy/addons/promex/service-prometheus.c:414,1
    - Dst: istptr
      Src: /src/haproxy/addons/promex/service-prometheus.c:414,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:414,1
    - Dst: XXH32_digest
      Src: /src/haproxy/addons/promex/service-prometheus.c:415,1
    - Dst: eb32_lookup
      Src: /src/haproxy/addons/promex/service-prometheus.c:417,1
    - Dst: container_of
      Src: /src/haproxy/addons/promex/service-prometheus.c:419,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - appctx
    - prefix
    - name
    argTypes:
    - struct appctx*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 428
    functionName: promex_filter_metric
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - typeof
    - eb_is_empty
    - eb32_lookup
    - XXH32_digest
    - container_of
    - XXH32_reset
    - XXH32_update
    - istptr
    - istlen
    linkageType: ''
    returnType: int
    signature: int promex_filter_metric(struct appctx *appctx, struct ist prefix,
      struct ist name)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/addons/promex/service-prometheus.c:434,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:437,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:438,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:438,1
    - Dst: stats_fill_info
      Src: /src/haproxy/addons/promex/service-prometheus.c:441,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:452,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:453,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:455,1
    - Dst: promex_global_gettype
      Src: /src/haproxy/addons/promex/service-prometheus.c:459,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:463,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:464,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:466,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:472,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:476,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:477,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:479,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:487,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:488,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:492,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:502,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 432
    functionDepth: 7
    functionLinenumber: 432
    functionLinenumberEnd: 509
    functionName: promex_dump_global_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - ist2
    - IST
    - ist
    - htx_get_max_blksz
    - stats_fill_info
    - promex_filter_metric
    - htx_add_data_atonce
    - promex_global_gettype
    - promex_dump_ts
    - applet_htx_output_room
    - mkf_u32
    linkageType: ''
    returnType: int
    signature: int promex_dump_global_metrics(struct appctx *appctx, struct htx *htx)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/addons/promex/service-prometheus.c:515,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:520,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:521,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:521,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:534,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:535,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:536,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:537,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:539,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:550,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:551,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:551,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:555,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:556,1
    - Dst: stats_fill_fe_line
      Src: /src/haproxy/addons/promex/service-prometheus.c:564,1
    - Dst: promex_st_gettype
      Src: /src/haproxy/addons/promex/service-prometheus.c:568,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:574,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:576,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:578,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:607,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:615,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:630,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:630,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:634,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/addons/promex/service-prometheus.c:635,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:639,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:639,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:640,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:640,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:642,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:653,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:654,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:654,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:657,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:658,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:658,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:662,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:663,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/addons/promex/service-prometheus.c:671,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:677,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:696,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 147
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 513
    functionDepth: 7
    functionLinenumber: 513
    functionLinenumberEnd: 707
    functionName: promex_dump_front_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - ist2
    - IST
    - ist
    - LIST_NEXT
    - typeof
    - list_for_each_entry_from
    - htx_get_max_blksz
    - promex_filter_metric
    - htx_add_data_atonce
    - strlen
    - promex_st_gettype
    - promex_dump_ts
    - struct stats_module*::fill_stats
    - applet_htx_output_room
    - stats_px_get_cap
    - stats_fill_fe_line
    - mkf_u32
    - isttest
    linkageType: ''
    returnType: int
    signature: int promex_dump_front_metrics(struct appctx *appctx, struct htx *htx)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/addons/promex/service-prometheus.c:713,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:719,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:720,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:720,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:733,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:734,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:735,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:736,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:738,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:748,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:749,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:749,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:754,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:755,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:764,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:766,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:772,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:773,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:773,1
    - Dst: stats_fill_li_line
      Src: /src/haproxy/addons/promex/service-prometheus.c:775,1
    - Dst: promex_st_gettype
      Src: /src/haproxy/addons/promex/service-prometheus.c:780,1
    - Dst: get_li_status
      Src: /src/haproxy/addons/promex/service-prometheus.c:784,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:786,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:787,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:788,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:789,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:800,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:818,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:818,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:822,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/addons/promex/service-prometheus.c:823,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:827,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:827,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:828,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:828,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:830,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:841,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:842,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:842,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:846,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:847,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:856,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:858,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:862,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:863,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:863,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:865,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:866,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:866,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/addons/promex/service-prometheus.c:868,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:874,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:896,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 138
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 711
    functionDepth: 7
    functionLinenumber: 711
    functionLinenumberEnd: 907
    functionName: promex_dump_listener_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - isttest
    - LIST_NEXT
    - htx_get_max_blksz
    - htx_add_data_atonce
    - promex_st_gettype
    - promex_dump_ts
    - mkf_u32
    - ist2
    - ist
    - get_li_status
    - stats_px_get_cap
    - IST
    - typeof
    - applet_htx_output_room
    - list_for_each_entry_from
    - promex_filter_metric
    - stats_fill_li_line
    - struct stats_module*::fill_stats
    - strlen
    linkageType: ''
    returnType: int
    signature: int promex_dump_listener_metrics(struct appctx *appctx, struct htx
      *htx)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/addons/promex/service-prometheus.c:913,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:919,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:920,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:920,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:936,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:937,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:938,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:939,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:941,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:952,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:953,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:953,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:957,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:958,1
    - Dst: stats_fill_be_line
      Src: /src/haproxy/addons/promex/service-prometheus.c:967,1
    - Dst: promex_st_gettype
      Src: /src/haproxy/addons/promex/service-prometheus.c:971,1
    - Dst: promex_srv_status
      Src: /src/haproxy/addons/promex/service-prometheus.c:980,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:985,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:986,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:988,1
    - Dst: get_check_status_result
      Src: /src/haproxy/addons/promex/service-prometheus.c:1007,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1009,1
    - Dst: get_check_status_info
      Src: /src/haproxy/addons/promex/service-prometheus.c:1010,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1011,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1012,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1013,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1023,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1025,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1026,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1034,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1035,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1038,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1039,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1042,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1043,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1046,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1047,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1051,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1055,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1059,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1063,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1085,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1093,1
    - Dst: watcher_next
      Src: /src/haproxy/addons/promex/service-prometheus.c:1098,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1100,1
    - Dst: watcher_attach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1106,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:1115,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:1115,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:1119,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/addons/promex/service-prometheus.c:1120,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1124,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1124,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1125,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1125,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:1127,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1135,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1136,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1136,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1139,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1140,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1140,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1144,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1145,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/addons/promex/service-prometheus.c:1153,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1159,1
    - Dst: watcher_next
      Src: /src/haproxy/addons/promex/service-prometheus.c:1164,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1166,1
    - Dst: watcher_attach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1172,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1182,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:1187,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1188,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 230
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 911
    functionDepth: 7
    functionLinenumber: 911
    functionLinenumberEnd: 1202
    functionName: promex_dump_back_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - isttest
    - LIST_NEXT
    - htx_get_max_blksz
    - watcher_detach
    - htx_add_data_atonce
    - promex_st_gettype
    - promex_dump_ts
    - swrate_avg
    - mkf_u32
    - ist2
    - ist
    - get_check_status_info
    - stats_fill_be_line
    - stats_px_get_cap
    - IST
    - typeof
    - watcher_attach
    - get_check_status_result
    - applet_htx_output_room
    - watcher_next
    - mkf_flt
    - list_for_each_entry_from
    - promex_filter_metric
    - promex_srv_status
    - struct stats_module*::fill_stats
    - strlen
    linkageType: ''
    returnType: int
    signature: int promex_dump_back_metrics(struct appctx *appctx, struct htx *htx)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/addons/promex/service-prometheus.c:1208,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1214,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:1215,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:1215,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:1230,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1231,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:1232,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1233,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:1235,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1243,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1244,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1244,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1248,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1249,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1258,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1259,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1259,1
    - Dst: stats_fill_sv_line
      Src: /src/haproxy/addons/promex/service-prometheus.c:1261,1
    - Dst: promex_st_gettype
      Src: /src/haproxy/addons/promex/service-prometheus.c:1268,1
    - Dst: promex_srv_status
      Src: /src/haproxy/addons/promex/service-prometheus.c:1272,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1274,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1275,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1277,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1285,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1286,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1289,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1290,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1293,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1294,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1297,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1298,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1302,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1306,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1310,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1314,1
    - Dst: get_check_status_result
      Src: /src/haproxy/addons/promex/service-prometheus.c:1321,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1323,1
    - Dst: get_check_status_info
      Src: /src/haproxy/addons/promex/service-prometheus.c:1324,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1325,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1326,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1327,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1337,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1343,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1364,1
    - Dst: get_check_status_result
      Src: /src/haproxy/addons/promex/service-prometheus.c:1373,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1375,1
    - Dst: get_check_status_info
      Src: /src/haproxy/addons/promex/service-prometheus.c:1376,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1377,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1378,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1379,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1389,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1395,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1402,1
    - Dst: watcher_next
      Src: /src/haproxy/addons/promex/service-prometheus.c:1407,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1411,1
    - Dst: watcher_next
      Src: /src/haproxy/addons/promex/service-prometheus.c:1412,1
    - Dst: watcher_attach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1415,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1419,1
    - Dst: watcher_attach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1425,1
    - Dst: likely
      Src: /src/haproxy/addons/promex/service-prometheus.c:1427,1
    - Dst: watcher_attach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1428,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:1438,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:1438,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:1442,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/addons/promex/service-prometheus.c:1443,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1447,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1447,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1448,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1448,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:1450,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1458,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1459,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1459,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1463,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1464,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1474,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1475,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1475,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1477,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1478,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1478,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/addons/promex/service-prometheus.c:1484,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1490,1
    - Dst: watcher_next
      Src: /src/haproxy/addons/promex/service-prometheus.c:1495,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1499,1
    - Dst: watcher_next
      Src: /src/haproxy/addons/promex/service-prometheus.c:1500,1
    - Dst: watcher_attach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1503,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1507,1
    - Dst: watcher_attach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1513,1
    - Dst: likely
      Src: /src/haproxy/addons/promex/service-prometheus.c:1515,1
    - Dst: watcher_attach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1516,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1527,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1528,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:1533,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1548,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1549,1
    CyclomaticComplexity: 103
    EdgeCount: 103
    ICount: 285
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1206
    functionDepth: 7
    functionLinenumber: 1206
    functionLinenumberEnd: 1551
    functionName: promex_dump_srv_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - isttest
    - LIST_NEXT
    - htx_get_max_blksz
    - watcher_detach
    - likely
    - htx_add_data_atonce
    - promex_st_gettype
    - promex_dump_ts
    - swrate_avg
    - mkf_u32
    - ist2
    - ist
    - get_check_status_info
    - stats_fill_sv_line
    - stats_px_get_cap
    - IST
    - typeof
    - watcher_attach
    - get_check_status_result
    - applet_htx_output_room
    - watcher_next
    - mkf_flt
    - list_for_each_entry_from
    - promex_filter_metric
    - promex_srv_status
    - struct stats_module*::fill_stats
    - strlen
    linkageType: ''
    returnType: int
    signature: int promex_dump_srv_metrics(struct appctx *appctx, struct htx *htx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:1562,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1562,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:1563,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:1564,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1564,1
    - Dst: struct promex_module*::start_metrics_dump
      Src: /src/haproxy/addons/promex/service-prometheus.c:1567,1
    - Dst: struct promex_module*::metric_info
      Src: /src/haproxy/addons/promex/service-prometheus.c:1577,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:1583,1
    - Dst: struct promex_module*::start_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1587,1
    - Dst: struct promex_module*::fill_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1593,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1599,1
    - Dst: struct promex_module*::next_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1604,1
    - Dst: struct promex_module*::stop_metrics_dump
      Src: /src/haproxy/addons/promex/service-prometheus.c:1612,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 4
    argNames:
    - appctx
    - mod
    - out
    - max
    argTypes:
    - struct appctx*
    - struct promex_module*
    - struct ist*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1555
    functionDepth: 4
    functionLinenumber: 1555
    functionLinenumberEnd: 1623
    functionName: promex_dump_module_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - struct promex_module*::start_ts
    - ist
    - struct promex_module*::stop_metrics_dump
    - struct promex_module*::start_metrics_dump
    - promex_filter_metric
    - istcat
    - struct promex_module*::fill_ts
    - struct promex_module*::next_ts
    - promex_dump_ts
    - struct promex_module*::metric_info
    linkageType: ''
    returnType: int
    signature: "int promex_dump_module_metrics(struct appctx *appctx, struct promex_module
      *mod,\n\t\t\t\t      struct ist *out, size_t max)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1631,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:1632,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:1632,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:1636,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:1636,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:1640,1
    - Dst: promex_dump_module_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1641,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:1654,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1627
    functionDepth: 7
    functionLinenumber: 1627
    functionLinenumberEnd: 1662
    functionName: promex_dump_ref_modules_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - ist2
    - typeof
    - LIST_NEXT
    - list_for_each_entry_from
    - htx_get_max_blksz
    - htx_add_data_atonce
    - applet_htx_output_room
    - promex_dump_module_metrics
    linkageType: ''
    returnType: int
    signature: int promex_dump_ref_modules_metrics(struct appctx *appctx, struct htx
      *htx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1670,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:1671,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:1671,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:1675,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:1675,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:1679,1
    - Dst: promex_dump_module_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1680,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:1693,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1666
    functionDepth: 7
    functionLinenumber: 1666
    functionLinenumberEnd: 1701
    functionName: promex_dump_all_modules_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - ist2
    - typeof
    - LIST_NEXT
    - list_for_each_entry_from
    - htx_get_max_blksz
    - htx_add_data_atonce
    - applet_htx_output_room
    - promex_dump_module_metrics
    linkageType: ''
    returnType: int
    signature: int promex_dump_all_modules_metrics(struct appctx *appctx, struct htx
      *htx)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: promex_dump_global_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1724,1
    - Dst: promex_dump_front_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1741,1
    - Dst: promex_dump_listener_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1758,1
    - Dst: watcher_attach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1774,1
    - Dst: promex_dump_back_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1780,1
    - Dst: watcher_attach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1796,1
    - Dst: likely
      Src: /src/haproxy/addons/promex/service-prometheus.c:1797,1
    - Dst: watcher_attach
      Src: /src/haproxy/addons/promex/service-prometheus.c:1799,1
    - Dst: promex_dump_srv_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1806,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/promex/service-prometheus.c:1822,1
    - Dst: promex_dump_all_modules_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1823,1
    - Dst: promex_dump_ref_modules_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1825,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:1847,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 135
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1709
    functionDepth: 8
    functionLinenumber: 1709
    functionLinenumberEnd: 1856
    functionName: promex_dump_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - promex_dump_ref_modules_metrics
    - promex_dump_back_metrics
    - watcher_attach
    - promex_dump_all_modules_metrics
    - applet_have_more_data
    - promex_dump_front_metrics
    - promex_dump_listener_metrics
    - likely
    - LIST_ISEMPTY
    - promex_dump_srv_metrics
    - promex_dump_global_metrics
    linkageType: ''
    returnType: int
    signature: int promex_dump_metrics(struct appctx *appctx, struct htx *htx)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/addons/promex/service-prometheus.c:1874,1
    - Dst: DISGUISE
      Src: /src/haproxy/addons/promex/service-prometheus.c:1874,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/addons/promex/service-prometheus.c:1874,1
    - Dst: http_get_stline
      Src: /src/haproxy/addons/promex/service-prometheus.c:1875,1
    - Dst: http_find_param_list
      Src: /src/haproxy/addons/promex/service-prometheus.c:1881,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/addons/promex/service-prometheus.c:1881,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/addons/promex/service-prometheus.c:1881,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/addons/promex/service-prometheus.c:1884,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/addons/promex/service-prometheus.c:1884,1
    - Dst: chunk_reset
      Src: /src/haproxy/addons/promex/service-prometheus.c:1888,1
    - Dst: memcpy
      Src: /src/haproxy/addons/promex/service-prometheus.c:1889,1
    - Dst: url_decode
      Src: /src/haproxy/addons/promex/service-prometheus.c:1911,1
    - Dst: url_decode
      Src: /src/haproxy/addons/promex/service-prometheus.c:1925,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1930,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1938,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1940,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1942,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1944,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1946,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/promex/service-prometheus.c:1952,1
    - Dst: strncmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1953,1
    - Dst: istptr
      Src: /src/haproxy/addons/promex/service-prometheus.c:1953,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1953,1
    - Dst: pool_alloc
      Src: /src/haproxy/addons/promex/service-prometheus.c:1954,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/addons/promex/service-prometheus.c:1959,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1967,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1973,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1973,1
    - Dst: istadv
      Src: /src/haproxy/addons/promex/service-prometheus.c:1973,1
    - Dst: istfind
      Src: /src/haproxy/addons/promex/service-prometheus.c:1973,1
    - Dst: iststop
      Src: /src/haproxy/addons/promex/service-prometheus.c:1976,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1980,1
    - Dst: istptr
      Src: /src/haproxy/addons/promex/service-prometheus.c:1983,1
    - Dst: istnext
      Src: /src/haproxy/addons/promex/service-prometheus.c:1984,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1985,1
    - Dst: XXH32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1993,1
    - Dst: istptr
      Src: /src/haproxy/addons/promex/service-prometheus.c:1993,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1993,1
    - Dst: eb32_lookup
      Src: /src/haproxy/addons/promex/service-prometheus.c:1994,1
    - Dst: container_of
      Src: /src/haproxy/addons/promex/service-prometheus.c:1996,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:1996,1
    - Dst: pool_alloc
      Src: /src/haproxy/addons/promex/service-prometheus.c:2001,1
    - Dst: eb32_insert
      Src: /src/haproxy/addons/promex/service-prometheus.c:2006,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:2009,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:2012,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:2014,1
    - Dst: DISGUISE
      Src: /src/haproxy/addons/promex/service-prometheus.c:2031,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/addons/promex/service-prometheus.c:2031,1
    - Dst: b_reset
      Src: /src/haproxy/addons/promex/service-prometheus.c:2032,1
    - Dst: b_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2033,1
    - Dst: memcpy
      Src: /src/haproxy/addons/promex/service-prometheus.c:2034,1
    - Dst: b_head
      Src: /src/haproxy/addons/promex/service-prometheus.c:2034,1
    - Dst: b_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2034,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/addons/promex/service-prometheus.c:2035,1
    - Dst: applet_set_eos
      Src: /src/haproxy/addons/promex/service-prometheus.c:2036,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 148
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 1860
    functionDepth: 3
    functionLinenumber: 1860
    functionLinenumberEnd: 2038
    functionName: promex_parse_uri
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - DISGUISE
    - istadv
    - LIST_APPEND
    - http_find_param_list
    - istlen
    - ist
    - eb32_insert
    - pool_alloc
    - XXH32
    - HTX_SL_REQ_UPTR
    - strcmp
    - eb32_lookup
    - container_of
    - istptr
    - istfind
    - applet_set_eos
    - htxbuf
    - typeof
    - b_head
    - memcpy
    - http_get_stline
    - url_decode
    - b_data
    - istnext
    - chunk_reset
    - iststop
    - HTX_SL_REQ_ULEN
    - list_for_each_entry
    - strncmp
    - applet_set_eoi
    - applet_get_outbuf
    - applet_get_inbuf
    - b_reset
    linkageType: ''
    returnType: int
    signature: int promex_parse_uri(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htx_add_stline
      Src: /src/haproxy/addons/promex/service-prometheus.c:2048,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2048,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2048,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2048,1
    - Dst: htx_add_header
      Src: /src/haproxy/addons/promex/service-prometheus.c:2052,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2052,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2052,1
    - Dst: htx_add_header
      Src: /src/haproxy/addons/promex/service-prometheus.c:2053,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2053,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2053,1
    - Dst: htx_add_header
      Src: /src/haproxy/addons/promex/service-prometheus.c:2054,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2054,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2054,1
    - Dst: htx_add_endof
      Src: /src/haproxy/addons/promex/service-prometheus.c:2055,1
    - Dst: htx_reset
      Src: /src/haproxy/addons/promex/service-prometheus.c:2060,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2061,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2042
    functionDepth: 7
    functionLinenumber: 2042
    functionLinenumberEnd: 2063
    functionName: promex_send_headers
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - ist
    - applet_have_more_data
    - htx_add_header
    - htx_add_stline
    - htx_reset
    - htx_add_endof
    linkageType: ''
    returnType: int
    signature: int promex_send_headers(struct appctx *appctx, struct htx *htx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/addons/promex/service-prometheus.c:2073,1
    - Dst: memset
      Src: /src/haproxy/addons/promex/service-prometheus.c:2075,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/promex/service-prometheus.c:2076,1
    - Dst: watcher_init
      Src: /src/haproxy/addons/promex/service-prometheus.c:2079,1
    - Dst: watcher_init
      Src: /src/haproxy/addons/promex/service-prometheus.c:2080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2069
    functionDepth: 2
    functionLinenumber: 2069
    functionLinenumberEnd: 2082
    functionName: promex_appctx_init
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - memset
    - watcher_init
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int promex_appctx_init(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:2096,1
    - Dst: watcher_detach
      Src: /src/haproxy/addons/promex/service-prometheus.c:2100,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/promex/service-prometheus.c:2102,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/addons/promex/service-prometheus.c:2103,1
    - Dst: pool_free
      Src: /src/haproxy/addons/promex/service-prometheus.c:2104,1
    - Dst: eb32_first
      Src: /src/haproxy/addons/promex/service-prometheus.c:2107,1
    - Dst: eb32_next
      Src: /src/haproxy/addons/promex/service-prometheus.c:2109,1
    - Dst: eb32_delete
      Src: /src/haproxy/addons/promex/service-prometheus.c:2110,1
    - Dst: container_of
      Src: /src/haproxy/addons/promex/service-prometheus.c:2111,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:2111,1
    - Dst: pool_free
      Src: /src/haproxy/addons/promex/service-prometheus.c:2112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2087
    functionDepth: 4
    functionLinenumber: 2087
    functionLinenumberEnd: 2115
    functionName: promex_appctx_release
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - typeof
    - watcher_detach
    - list_for_each_entry_safe
    - eb32_delete
    - eb32_next
    - container_of
    - eb32_first
    - pool_free
    linkageType: ''
    returnType: void
    signature: void promex_appctx_release(struct appctx *appctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/addons/promex/service-prometheus.c:2125,1
    - Dst: applet_fl_test
      Src: /src/haproxy/addons/promex/service-prometheus.c:2125,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/addons/promex/service-prometheus.c:2129,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2131,1
    - Dst: htx_from_buf
      Src: /src/haproxy/addons/promex/service-prometheus.c:2134,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/addons/promex/service-prometheus.c:2138,1
    - Dst: applet_htx_input_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2138,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2139,1
    - Dst: promex_parse_uri
      Src: /src/haproxy/addons/promex/service-prometheus.c:2143,1
    - Dst: applet_set_error
      Src: /src/haproxy/addons/promex/service-prometheus.c:2146,1
    - Dst: promex_send_headers
      Src: /src/haproxy/addons/promex/service-prometheus.c:2154,1
    - Dst: promex_dump_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:2160,1
    - Dst: applet_set_error
      Src: /src/haproxy/addons/promex/service-prometheus.c:2163,1
    - Dst: htx_is_empty
      Src: /src/haproxy/addons/promex/service-prometheus.c:2176,1
    - Dst: htx_add_endof
      Src: /src/haproxy/addons/promex/service-prometheus.c:2177,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2178,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/addons/promex/service-prometheus.c:2183,1
    - Dst: applet_set_eos
      Src: /src/haproxy/addons/promex/service-prometheus.c:2188,1
    - Dst: htx_to_buf
      Src: /src/haproxy/addons/promex/service-prometheus.c:2191,1
    - Dst: applet_reset_input
      Src: /src/haproxy/addons/promex/service-prometheus.c:2195,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2118
    functionDepth: 9
    functionLinenumber: 2118
    functionLinenumberEnd: 2197
    functionName: promex_appctx_handle_io
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - unlikely
    - applet_set_error
    - promex_send_headers
    - applet_need_more_data
    - promex_dump_metrics
    - htx_to_buf
    - applet_have_more_data
    - applet_fl_test
    - applet_htx_input_data
    - applet_set_eoi
    - applet_get_outbuf
    - applet_get_inbuf
    - promex_parse_uri
    - applet_reset_input
    - applet_set_eos
    - htx_add_endof
    - htx_is_empty
    - htx_from_buf
    linkageType: ''
    returnType: void
    signature: void promex_appctx_handle_io(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/promex/service-prometheus.c:2215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2210
    functionDepth: 5
    functionLinenumber: 2210
    functionLinenumberEnd: 2223
    functionName: service_parse_prometheus_exporter
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: enum act_parse_ret
    signature: "enum act_parse_ret service_parse_prometheus_exporter(const char **args,
      int *cur_arg, struct proxy *px,\n\t\t\t\t\t\t\t    struct act_rule *rule, char
      **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/promex/service-prometheus.c:2228,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/addons/promex/service-prometheus.c:2229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2224
    functionDepth: 5
    functionLinenumber: 2224
    functionLinenumberEnd: 2230
    functionName: promex_register_build_options
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - memprintf
    - hap_register_build_opts
    linkageType: ''
    returnType: void
    signature: void promex_register_build_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/addons/wurfl/wurfl.c:46,1
    - Dst: vsnprintf
      Src: /src/haproxy/addons/wurfl/wurfl.c:47,1
    - Dst: va_end
      Src: /src/haproxy/addons/wurfl/wurfl.c:48,1
    - Dst: send_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 10
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: ha_wurfl_log
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - send_log
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void ha_wurfl_log(char * message, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: ha_wurfl_log
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ha_wurfl_log(char * message, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/wurfl/wurfl.c:139,1
    - Dst: strdup
      Src: /src/haproxy/addons/wurfl/wurfl.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: ha_wurfl_cfg_data_file
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ha_wurfl_cfg_data_file(char **args, int section_type, struct proxy
      *curpx,\n                                  const struct proxy *defpx, const
      char *file, int line,\n                                  char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/wurfl/wurfl.c:152,1
    - Dst: strdup
      Src: /src/haproxy/addons/wurfl/wurfl.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 5
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: ha_wurfl_cfg_cache
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ha_wurfl_cfg_cache(char **args, int section_type, struct proxy
      *curpx,\n                              const struct proxy *defpx, const char
      *file, int line,\n                              char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: ha_wurfl_cfg_engine_mode
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ha_wurfl_cfg_engine_mode(char **args, int section_type, struct
      proxy *curpx,\n                                    const struct proxy *defpx,
      const char *file, int line,\n                                    char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/wurfl/wurfl.c:173,1
    - Dst: strlen
      Src: /src/haproxy/addons/wurfl/wurfl.c:177,1
    - Dst: memprintf
      Src: /src/haproxy/addons/wurfl/wurfl.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 184
    functionName: ha_wurfl_cfg_information_list_separator
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ha_wurfl_cfg_information_list_separator(char **args, int section_type,
      struct proxy *curpx,\n                                                   const
      struct proxy *defpx, const char *file, int line,\n                                                   char
      **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/wurfl/wurfl.c:194,1
    - Dst: calloc
      Src: /src/haproxy/addons/wurfl/wurfl.c:199,1
    - Dst: memprintf
      Src: /src/haproxy/addons/wurfl/wurfl.c:202,1
    - Dst: strdup
      Src: /src/haproxy/addons/wurfl/wurfl.c:206,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/addons/wurfl/wurfl.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 186
    functionDepth: 5
    functionLinenumber: 186
    functionLinenumberEnd: 214
    functionName: ha_wurfl_cfg_information_list
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - calloc
    - memprintf
    - LIST_APPEND
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ha_wurfl_cfg_information_list(char **args, int section_type, struct
      proxy *curpx,\n                                         const struct proxy *defpx,
      const char *file, int line,\n                                         char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/wurfl/wurfl.c:224,1
    - Dst: calloc
      Src: /src/haproxy/addons/wurfl/wurfl.c:229,1
    - Dst: memprintf
      Src: /src/haproxy/addons/wurfl/wurfl.c:232,1
    - Dst: strdup
      Src: /src/haproxy/addons/wurfl/wurfl.c:236,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/addons/wurfl/wurfl.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 216
    functionDepth: 5
    functionLinenumber: 216
    functionLinenumberEnd: 242
    functionName: ha_wurfl_cfg_patch_file_list
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - calloc
    - memprintf
    - LIST_APPEND
    - strdup
    linkageType: ''
    returnType: int
    signature: "int ha_wurfl_cfg_patch_file_list(char **args, int section_type, struct
      proxy *curpx,\n                                        const struct proxy *defpx,
      const char *file, int line,\n                                        char **err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: ha_wurfl_cfg_useragent_priority
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ha_wurfl_cfg_useragent_priority(char **args, int section_type,
      struct proxy *curpx,\n                                           const struct
      proxy *defpx, const char *file, int line,\n                                           char
      **err)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:270,1
    - Dst: wurfl_create
      Src: /src/haproxy/addons/wurfl/wurfl.c:272,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/wurfl/wurfl.c:275,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:279,1
    - Dst: wurfl_get_api_version
      Src: /src/haproxy/addons/wurfl/wurfl.c:279,1
    - Dst: wurfl_set_root
      Src: /src/haproxy/addons/wurfl/wurfl.c:282,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/wurfl/wurfl.c:283,1
    - Dst: wurfl_get_error_message
      Src: /src/haproxy/addons/wurfl/wurfl.c:283,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:287,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:289,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/wurfl/wurfl.c:292,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/wurfl/wurfl.c:293,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/wurfl/wurfl.c:300,1
    - Dst: ebst_lookup
      Src: /src/haproxy/addons/wurfl/wurfl.c:302,1
    - Dst: ha_wurfl_get_property_callback
      Src: /src/haproxy/addons/wurfl/wurfl.c:303,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:306,1
    - Dst: wurfl_has_virtual_capability
      Src: /src/haproxy/addons/wurfl/wurfl.c:308,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:311,1
    - Dst: wurfl_add_requested_capability
      Src: /src/haproxy/addons/wurfl/wurfl.c:317,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/wurfl/wurfl.c:318,1
    - Dst: wurfl_get_error_message
      Src: /src/haproxy/addons/wurfl/wurfl.c:318,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:322,1
    - Dst: strlen
      Src: /src/haproxy/addons/wurfl/wurfl.c:326,1
    - Dst: malloc
      Src: /src/haproxy/addons/wurfl/wurfl.c:328,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/wurfl/wurfl.c:331,1
    - Dst: memcpy
      Src: /src/haproxy/addons/wurfl/wurfl.c:338,1
    - Dst: ebst_insert
      Src: /src/haproxy/addons/wurfl/wurfl.c:341,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/wurfl/wurfl.c:342,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:348,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/wurfl/wurfl.c:358,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/wurfl/wurfl.c:360,1
    - Dst: wurfl_add_patch
      Src: /src/haproxy/addons/wurfl/wurfl.c:361,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/wurfl/wurfl.c:362,1
    - Dst: wurfl_get_error_message
      Src: /src/haproxy/addons/wurfl/wurfl.c:362,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:365,1
    - Dst: strpbrk
      Src: /src/haproxy/addons/wurfl/wurfl.c:373,1
    - Dst: wurfl_set_cache_provider
      Src: /src/haproxy/addons/wurfl/wurfl.c:374,1
    - Dst: strcmp
      Src: /src/haproxy/addons/wurfl/wurfl.c:376,1
    - Dst: wurfl_set_cache_provider
      Src: /src/haproxy/addons/wurfl/wurfl.c:377,1
    - Dst: wurfl_set_cache_provider
      Src: /src/haproxy/addons/wurfl/wurfl.c:379,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/wurfl/wurfl.c:385,1
    - Dst: wurfl_get_error_message
      Src: /src/haproxy/addons/wurfl/wurfl.c:385,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:389,1
    - Dst: wurfl_load
      Src: /src/haproxy/addons/wurfl/wurfl.c:393,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/wurfl/wurfl.c:394,1
    - Dst: wurfl_get_error_message
      Src: /src/haproxy/addons/wurfl/wurfl.c:394,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:398,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/wurfl/wurfl.c:399,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 257
    functionDepth: 9
    functionLinenumber: 257
    functionLinenumberEnd: 401
    functionName: ha_wurfl_init
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - wurfl_load
    - ha_notice
    - strpbrk
    - ha_wurfl_get_property_callback
    - wurfl_add_patch
    - ebst_lookup
    - wurfl_has_virtual_capability
    - strcmp
    - wurfl_add_requested_capability
    - wurfl_set_root
    - wurfl_create
    - malloc
    - wurfl_get_error_message
    - wurfl_set_cache_provider
    - memcpy
    - wurfl_get_api_version
    - list_for_each_entry
    - ebst_insert
    - LIST_ISEMPTY
    - ha_warning
    - strlen
    linkageType: ''
    returnType: int
    signature: int ha_wurfl_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:408,1
    - Dst: wurfl_destroy
      Src: /src/haproxy/addons/wurfl/wurfl.c:409,1
    - Dst: ha_free
      Src: /src/haproxy/addons/wurfl/wurfl.c:411,1
    - Dst: ha_free
      Src: /src/haproxy/addons/wurfl/wurfl.c:412,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/wurfl/wurfl.c:414,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/addons/wurfl/wurfl.c:415,1
    - Dst: free
      Src: /src/haproxy/addons/wurfl/wurfl.c:416,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/wurfl/wurfl.c:419,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/addons/wurfl/wurfl.c:420,1
    - Dst: free
      Src: /src/haproxy/addons/wurfl/wurfl.c:421,1
    - Dst: send_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 403
    functionDepth: 10
    functionLinenumber: 403
    functionLinenumberEnd: 425
    functionName: ha_wurfl_deinit
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - wurfl_destroy
    - ha_free
    - list_for_each_entry_safe
    - free
    - send_log
    linkageType: ''
    returnType: void
    signature: void ha_wurfl_deinit(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:436,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/addons/wurfl/wurfl.c:439,1
    - Dst: wurfl_lookup
      Src: /src/haproxy/addons/wurfl/wurfl.c:445,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/addons/wurfl/wurfl.c:447,1
    - Dst: chunk_reset
      Src: /src/haproxy/addons/wurfl/wurfl.c:448,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:451,1
    - Dst: wurfl_get_error_message
      Src: /src/haproxy/addons/wurfl/wurfl.c:451,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/wurfl/wurfl.c:455,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:459,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:462,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:466,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:469,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:471,1
    - Dst: wurfl_device_get_capability
      Src: /src/haproxy/addons/wurfl/wurfl.c:471,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:474,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:477,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:479,1
    - Dst: wurfl_device_get_virtual_capability
      Src: /src/haproxy/addons/wurfl/wurfl.c:479,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:482,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:485,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:487,1
    - Dst: wurfl_information_t*::data::func_callback
      Src: /src/haproxy/addons/wurfl/wurfl.c:487,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:492,1
    - Dst: wurfl_device_destroy
      Src: /src/haproxy/addons/wurfl/wurfl.c:497,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 427
    functionDepth: 11
    functionLinenumber: 427
    functionLinenumberEnd: 509
    functionName: ha_wurfl_get_all
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - wurfl_get_error_message
    - wurfl_device_get_virtual_capability
    - wurfl_lookup
    - list_for_each_entry
    - wurfl_device_get_capability
    - wurfl_information_t*::data::func_callback
    - ha_wurfl_log
    - chunk_appendf
    - get_trash_chunk
    - chunk_reset
    - wurfl_device_destroy
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int ha_wurfl_get_all(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:522,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/addons/wurfl/wurfl.c:525,1
    - Dst: wurfl_lookup
      Src: /src/haproxy/addons/wurfl/wurfl.c:531,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/addons/wurfl/wurfl.c:533,1
    - Dst: chunk_reset
      Src: /src/haproxy/addons/wurfl/wurfl.c:534,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:537,1
    - Dst: wurfl_get_error_message
      Src: /src/haproxy/addons/wurfl/wurfl.c:537,1
    - Dst: ebst_lookup
      Src: /src/haproxy/addons/wurfl/wurfl.c:542,1
    - Dst: container_of
      Src: /src/haproxy/addons/wurfl/wurfl.c:546,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:550,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:553,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:557,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:560,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:562,1
    - Dst: wurfl_device_get_capability
      Src: /src/haproxy/addons/wurfl/wurfl.c:562,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:565,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:568,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:570,1
    - Dst: wurfl_device_get_virtual_capability
      Src: /src/haproxy/addons/wurfl/wurfl.c:570,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:573,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:576,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:578,1
    - Dst: wurfl_data_t*::func_callback
      Src: /src/haproxy/addons/wurfl/wurfl.c:578,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/wurfl/wurfl.c:583,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:586,1
    - Dst: wurfl_device_destroy
      Src: /src/haproxy/addons/wurfl/wurfl.c:595,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 511
    functionDepth: 11
    functionLinenumber: 511
    functionLinenumberEnd: 607
    functionName: ha_wurfl_get
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - wurfl_get_error_message
    - wurfl_device_get_virtual_capability
    - wurfl_lookup
    - wurfl_device_get_capability
    - wurfl_data_t*::func_callback
    - ebst_lookup
    - ha_wurfl_log
    - chunk_appendf
    - get_trash_chunk
    - container_of
    - chunk_reset
    - wurfl_device_destroy
    - smp_prefetch_htx
    linkageType: ''
    returnType: int
    signature: int ha_wurfl_get(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wurfl_device_get_root_id
      Src: /src/haproxy/addons/wurfl/wurfl.c:644,1
    - Dst: wurfl_device_get_root_id
      Src: /src/haproxy/addons/wurfl/wurfl.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - wHandle
    - dHandle
    argTypes:
    - wurfl_handle
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 648
    functionName: ha_wurfl_get_wurfl_root_id
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - wurfl_device_get_root_id
    linkageType: ''
    returnType: char
    signature: char *ha_wurfl_get_wurfl_root_id (wurfl_handle wHandle, wurfl_device_handle
      dHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wurfl_device_get_id
      Src: /src/haproxy/addons/wurfl/wurfl.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wHandle
    - dHandle
    argTypes:
    - wurfl_handle
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 653
    functionName: ha_wurfl_get_wurfl_id
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - wurfl_device_get_id
    linkageType: ''
    returnType: char
    signature: char *ha_wurfl_get_wurfl_id (wurfl_handle wHandle, wurfl_device_handle
      dHandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wurfl_device_is_actual_device_root
      Src: /src/haproxy/addons/wurfl/wurfl.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - wHandle
    - dHandle
    argTypes:
    - wurfl_handle
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 661
    functionName: ha_wurfl_get_wurfl_isdevroot
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - wurfl_device_is_actual_device_root
    linkageType: ''
    returnType: char
    signature: char *ha_wurfl_get_wurfl_isdevroot (wurfl_handle wHandle, wurfl_device_handle
      dHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wurfl_device_get_original_useragent
      Src: /src/haproxy/addons/wurfl/wurfl.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wHandle
    - dHandle
    argTypes:
    - wurfl_handle
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 666
    functionName: ha_wurfl_get_wurfl_useragent
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - wurfl_device_get_original_useragent
    linkageType: ''
    returnType: char
    signature: char *ha_wurfl_get_wurfl_useragent (wurfl_handle wHandle, wurfl_device_handle
      dHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wurfl_get_api_version
      Src: /src/haproxy/addons/wurfl/wurfl.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wHandle
    - dHandle
    argTypes:
    - wurfl_handle
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 671
    functionName: ha_wurfl_get_wurfl_api_version
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - wurfl_get_api_version
    linkageType: ''
    returnType: char
    signature: char *ha_wurfl_get_wurfl_api_version (wurfl_handle wHandle, wurfl_device_handle
      dHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wHandle
    - dHandle
    argTypes:
    - wurfl_handle
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 676
    functionName: ha_wurfl_get_wurfl_engine_target
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ha_wurfl_get_wurfl_engine_target (wurfl_handle wHandle, wurfl_device_handle
      dHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wurfl_get_wurfl_info
      Src: /src/haproxy/addons/wurfl/wurfl.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wHandle
    - dHandle
    argTypes:
    - wurfl_handle
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: ha_wurfl_get_wurfl_info
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - wurfl_get_wurfl_info
    linkageType: ''
    returnType: char
    signature: char *ha_wurfl_get_wurfl_info (wurfl_handle wHandle, wurfl_device_handle
      dHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wurfl_get_last_load_time_as_string
      Src: /src/haproxy/addons/wurfl/wurfl.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wHandle
    - dHandle
    argTypes:
    - wurfl_handle
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 686
    functionName: ha_wurfl_get_wurfl_last_load_time
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - wurfl_get_last_load_time_as_string
    linkageType: ''
    returnType: char
    signature: char *ha_wurfl_get_wurfl_last_load_time (wurfl_handle wHandle, wurfl_device_handle
      dHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wurfl_device_get_normalized_useragent
      Src: /src/haproxy/addons/wurfl/wurfl.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wHandle
    - dHandle
    argTypes:
    - wurfl_handle
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 691
    functionName: ha_wurfl_get_wurfl_normalized_useragent
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - wurfl_device_get_normalized_useragent
    linkageType: ''
    returnType: char
    signature: char *ha_wurfl_get_wurfl_normalized_useragent (wurfl_handle wHandle,
      wurfl_device_handle dHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wHandle
    - dHandle
    argTypes:
    - wurfl_handle
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: ha_wurfl_get_wurfl_useragent_priority
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ha_wurfl_get_wurfl_useragent_priority (wurfl_handle wHandle,
      wurfl_device_handle dHandle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/addons/wurfl/wurfl.c:709,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - wHandle
    - dHandle
    argTypes:
    - wurfl_handle
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 699
    functionDepth: 11
    functionLinenumber: 699
    functionLinenumberEnd: 720
    functionName: '*(*ha_wurfl_get_property_callback(char *name)) (wurfl_handle wHandle,
      wurfl_device_handle dHandle)'
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ha_wurfl_log
    linkageType: ''
    returnType: char
    signature: char *(*ha_wurfl_get_property_callback(char *name)) (wurfl_handle wHandle,
      wurfl_device_handle dHandle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:734,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/addons/wurfl/wurfl.c:742,1
    - Dst: ist2
      Src: /src/haproxy/addons/wurfl/wurfl.c:747,1
    - Dst: strlen
      Src: /src/haproxy/addons/wurfl/wurfl.c:747,1
    - Dst: http_find_header
      Src: /src/haproxy/addons/wurfl/wurfl.c:751,1
    - Dst: strncpy
      Src: /src/haproxy/addons/wurfl/wurfl.c:758,1
    - Dst: ha_wurfl_log
      Src: /src/haproxy/addons/wurfl/wurfl.c:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - header_name
    - wh
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 722
    functionDepth: 11
    functionLinenumber: 722
    functionLinenumberEnd: 764
    functionName: ha_wurfl_retrieve_header
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - strncpy
    - ist2
    - http_find_header
    - ha_wurfl_log
    - smp_prefetch_htx
    - strlen
    linkageType: ''
    returnType: char
    signature: char *ha_wurfl_retrieve_header(const char *header_name, const void
      *wh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wurfl_get_api_version
      Src: /src/haproxy/addons/wurfl/wurfl.c:768,1
    - Dst: memprintf
      Src: /src/haproxy/addons/wurfl/wurfl.c:771,1
    - Dst: strcmp
      Src: /src/haproxy/addons/wurfl/wurfl.c:772,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/addons/wurfl/wurfl.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 766
    functionDepth: 5
    functionLinenumber: 766
    functionLinenumberEnd: 775
    functionName: ha_wurfl_register_build_options
    functionSourceFile: /src/haproxy/addons/wurfl/wurfl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    - hap_register_build_opts
    - wurfl_get_api_version
    linkageType: ''
    returnType: void
    signature: void ha_wurfl_register_build_options()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: wurfl_get_api_version
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wurfl_get_api_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: wurfl_create
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: wurfl_handle
    signature: wurfl_handle wurfl_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - wurfl_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: wurfl_destroy
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wurfl_destroy(wurfl_handle handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hwurfl
    - root
    argTypes:
    - wurfl_handle
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: wurfl_set_root
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: wurfl_error
    signature: wurfl_error wurfl_set_root(wurfl_handle hwurfl, const char* root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hwurfl
    - patch
    argTypes:
    - wurfl_handle
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: wurfl_add_patch
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: wurfl_error
    signature: wurfl_error wurfl_add_patch(wurfl_handle hwurfl, const char *patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hwurfl
    - requested_capability
    argTypes:
    - wurfl_handle
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: wurfl_add_requested_capability
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: wurfl_error
    signature: wurfl_error wurfl_add_requested_capability(wurfl_handle hwurfl, const
      char *requested_capability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hwurfl
    argTypes:
    - wurfl_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: wurfl_get_error_message
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wurfl_get_error_message(wurfl_handle hwurfl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hwurfl
    - virtual_capability
    argTypes:
    - wurfl_handle
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: wurfl_has_virtual_capability
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int wurfl_has_virtual_capability(wurfl_handle hwurfl, const char *virtual_capability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hwurfl
    - cache_provider
    - config
    argTypes:
    - wurfl_handle
    - wurfl_cache_provider
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: wurfl_set_cache_provider
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: wurfl_error
    signature: wurfl_error wurfl_set_cache_provider(wurfl_handle hwurfl, wurfl_cache_provider
      cache_provider, const char *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hwurfl
    argTypes:
    - wurfl_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: wurfl_load
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: wurfl_error
    signature: wurfl_error wurfl_load(wurfl_handle hwurfl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: header_retrieve_callback
      Src: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c:71,1
    - Dst: header_retrieve_callback
      Src: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hwurfl
    - header_retrieve_callback
    - header_retrieve_callback_data
    argTypes:
    - wurfl_handle
    - wurfl_header_retrieve_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: wurfl_lookup
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 2
    functionsReached:
    - header_retrieve_callback
    linkageType: ''
    returnType: wurfl_device_handle
    signature: wurfl_device_handle wurfl_lookup(wurfl_handle hwurfl, wurfl_header_retrieve_callback
      header_retrieve_callback, const void *header_retrieve_callback_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hwurfldevice
    - capability
    argTypes:
    - wurfl_device_handle
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: wurfl_device_get_capability
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wurfl_device_get_capability(wurfl_device_handle hwurfldevice,
      const char *capability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hwurfldevice
    - capability
    argTypes:
    - wurfl_device_handle
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: wurfl_device_get_virtual_capability
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wurfl_device_get_virtual_capability(wurfl_device_handle hwurfldevice,
      const char *capability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: wurfl_device_destroy
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wurfl_device_destroy(wurfl_device_handle handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hwurfldevice
    argTypes:
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: wurfl_device_get_id
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wurfl_device_get_id(wurfl_device_handle hwurfldevice)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hwurfldevice
    argTypes:
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: wurfl_device_get_root_id
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wurfl_device_get_root_id(wurfl_device_handle hwurfldevice)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hwurfldevice
    argTypes:
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: wurfl_device_get_original_useragent
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wurfl_device_get_original_useragent(wurfl_device_handle hwurfldevice)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hwurfldevice
    argTypes:
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: wurfl_device_get_normalized_useragent
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wurfl_device_get_normalized_useragent(wurfl_device_handle hwurfldevice)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hwurfldevice
    argTypes:
    - wurfl_device_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: wurfl_device_is_actual_device_root
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int wurfl_device_is_actual_device_root(wurfl_device_handle hwurfldevice)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hwurfl
    argTypes:
    - wurfl_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: wurfl_get_wurfl_info
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wurfl_get_wurfl_info(wurfl_handle hwurfl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hwurfl
    argTypes:
    - wurfl_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: wurfl_get_last_load_time_as_string
    functionSourceFile: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wurfl_get_last_load_time_as_string(wurfl_handle hwurfl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: struct
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: THREAD_LOCAL
    signature: THREAD_LOCAL struct
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:101,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:108,1
    - Dst: strdup
      Src: /src/haproxy/addons/51degrees/51d.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: _51d_data_file
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - memprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int _51d_data_file(char **args, int section_type, struct proxy *curpx,\n
      \                         const struct proxy *defpx, const char *file, int line,\n
      \                         char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:122,1
    - Dst: calloc
      Src: /src/haproxy/addons/51degrees/51d.c:129,1
    - Dst: strdup
      Src: /src/haproxy/addons/51degrees/51d.c:130,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/addons/51degrees/51d.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 136
    functionName: _51d_property_name_list
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - calloc
    - memprintf
    - LIST_APPEND
    - strdup
    linkageType: ''
    returnType: int
    signature: "int _51d_property_name_list(char **args, int section_type, struct
      proxy *curpx,\n                                   const struct proxy *defpx,
      const char *file, int line,\n                                   char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:143,1
    - Dst: strlen
      Src: /src/haproxy/addons/51degrees/51d.c:148,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 138
    functionDepth: 5
    functionLinenumber: 138
    functionLinenumberEnd: 158
    functionName: _51d_property_separator
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int _51d_property_separator(char **args, int section_type, struct
      proxy *curpx,\n                                   const struct proxy *defpx,
      const char *file, int line,\n                                   char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:165,1
    - Dst: atoi
      Src: /src/haproxy/addons/51degrees/51d.c:171,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 180
    functionName: _51d_cache_size
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int _51d_cache_size(char **args, int section_type, struct proxy *curpx,\n
      \                          const struct proxy *defpx, const char *file, int
      line,\n                           char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: _51d_fetch_check
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: int _51d_fetch_check(struct arg *arg, char **err_msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - arg
    - conv
    - file
    - line
    - err_msg
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 191
    functionDepth: 5
    functionLinenumber: 191
    functionLinenumberEnd: 199
    functionName: _51d_conv_check
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int _51d_conv_check(struct arg *arg, struct sample_conv *conv,\n                           const
      char *file, int line, char **err_msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:209,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cache_entry
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: _51d_lru_free
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void _51d_lru_free(void *cache_entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/addons/51degrees/51d.c:217,1
    - Dst: lru64_kill_oldest
      Src: /src/haproxy/addons/51degrees/51d.c:222,1
    - Dst: malloc
      Src: /src/haproxy/addons/51degrees/51d.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: _51d_malloc
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - malloc
    - lru64_kill_oldest
    linkageType: ''
    returnType: void
    signature: void *_51d_malloc(int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _51d_malloc
      Src: /src/haproxy/addons/51degrees/51d.c:233,1
    - Dst: _51d_malloc
      Src: /src/haproxy/addons/51degrees/51d.c:238,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:240,1
    - Dst: memcpy
      Src: /src/haproxy/addons/51degrees/51d.c:244,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/addons/51degrees/51d.c:247,1
    - Dst: lru64_commit
      Src: /src/haproxy/addons/51degrees/51d.c:248,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/51degrees/51d.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - smp
    - lru
    - domain
    argTypes:
    - struct sample*
    - struct lru64*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 250
    functionName: _51d_insert_cache_entry
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - lru64_commit
    - memcpy
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - free
    - _51d_malloc
    linkageType: ''
    returnType: void
    signature: void _51d_insert_cache_entry(struct sample *smp, struct lru64 *lru,
      void* domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - smp
    - lru
    argTypes:
    - struct sample*
    - struct lru64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: _51d_retrieve_cache_entry
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _51d_retrieve_cache_entry(struct sample *smp, struct lru64 *lru)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/addons/51degrees/51d.c:278,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/addons/51degrees/51d.c:279,1
    - Dst: ist2
      Src: /src/haproxy/addons/51degrees/51d.c:282,1
    - Dst: http_find_header
      Src: /src/haproxy/addons/51degrees/51d.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - smp
    - ws
    argTypes:
    - struct sample*
    - fiftyoneDegreesWorkset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 293
    functionName: _51d_set_headers
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - ist2
    - http_find_header
    - smp_prefetch_htx
    - ALREADY_CHECKED
    linkageType: ''
    returnType: void
    signature: void _51d_set_headers(struct sample *smp, fiftyoneDegreesWorkset *ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - offsets
    argTypes:
    - fiftyoneDegreesDeviceOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: _51d_init_device_offsets
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _51d_init_device_offsets(fiftyoneDegreesDeviceOffsets *offsets)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/addons/51degrees/51d.c:306,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/addons/51degrees/51d.c:318,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/addons/51degrees/51d.c:319,1
    - Dst: ist2
      Src: /src/haproxy/addons/51degrees/51d.c:322,1
    - Dst: http_find_header
      Src: /src/haproxy/addons/51degrees/51d.c:326,1
    - Dst: memcpy
      Src: /src/haproxy/addons/51degrees/51d.c:333,1
    - Dst: fiftyoneDegreesGetDeviceOffset
      Src: /src/haproxy/addons/51degrees/51d.c:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - smp
    - offsets
    argTypes:
    - struct sample*
    - fiftyoneDegreesDeviceOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 341
    functionName: _51d_set_device_offsets
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - ist2
    - ALREADY_CHECKED
    - memcpy
    - http_find_header
    - get_trash_chunk
    - fiftyoneDegreesGetDeviceOffset
    - smp_prefetch_htx
    linkageType: ''
    returnType: void
    signature: void _51d_set_device_offsets(struct sample *smp, fiftyoneDegreesDeviceOffsets
      *offsets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3
      Src: /src/haproxy/addons/51degrees/51d.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - args
    - ws
    argTypes:
    - struct arg*
    - fiftyoneDegreesWorkset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 359
    functionName: _51d_req_hash
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - XXH3
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long _51d_req_hash(const struct arg *args, fiftyoneDegreesWorkset*
      ws)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/addons/51degrees/51d.c:367,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:370,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:372,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 363
    functionDepth: 7
    functionLinenumber: 363
    functionLinenumberEnd: 380
    functionName: _51d_use_perf_graph
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int _51d_use_perf_graph(char **args, int section_type, struct proxy
      *curpx,\n                               const struct proxy *defpx, const char
      *file, int line,\n                               char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/addons/51degrees/51d.c:386,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:389,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:391,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 382
    functionDepth: 7
    functionLinenumber: 382
    functionLinenumberEnd: 399
    functionName: _51d_use_pred_graph
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int _51d_use_pred_graph(char **args, int section_type, struct proxy
      *curpx,\n                               const struct proxy *defpx, const char
      *file, int line,\n                               char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:406,1
    - Dst: atoi
      Src: /src/haproxy/addons/51degrees/51d.c:410,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 401
    functionDepth: 5
    functionLinenumber: 401
    functionLinenumberEnd: 418
    functionName: _51d_drift
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int _51d_drift(char **args, int section_type, struct proxy *curpx,\n
      \                     const struct proxy *defpx, const char *file, int line,\n
      \                     char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:425,1
    - Dst: atoi
      Src: /src/haproxy/addons/51degrees/51d.c:429,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 420
    functionDepth: 5
    functionLinenumber: 420
    functionLinenumberEnd: 437
    functionName: _51d_difference
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - atoi
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int _51d_difference(char **args, int section_type, struct proxy *curpx,\n
      \                          const struct proxy *defpx, const char *file, int
      line,\n                           char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/addons/51degrees/51d.c:443,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:446,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:448,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - args
    - section_type
    - curpx
    - defpx
    - file
    - line
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 439
    functionDepth: 7
    functionLinenumber: 439
    functionLinenumberEnd: 456
    functionName: _51d_allow_unmatched
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int _51d_allow_unmatched(char **args, int section_type, struct proxy
      *curpx,\n                                const struct proxy *defpx, const char
      *file, int line,\n                                char **err)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fiftyoneDegreesDataSetGet
      Src: /src/haproxy/addons/51degrees/51d.c:464,1
    - Dst: fiftyoneDegreesResultsHashCreate
      Src: /src/haproxy/addons/51degrees/51d.c:470,1
    - Dst: malloc
      Src: /src/haproxy/addons/51degrees/51d.c:475,1
    - Dst: fiftyoneDegreesDataSetRelease
      Src: /src/haproxy/addons/51degrees/51d.c:485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 487
    functionName: _51d_init_internal
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - malloc
    - fiftyoneDegreesResultsHashCreate
    - fiftyoneDegreesDataSetGet
    - fiftyoneDegreesDataSetRelease
    linkageType: ''
    returnType: int
    signature: int _51d_init_internal()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/addons/51degrees/51d.c:504,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/addons/51degrees/51d.c:505,1
    - Dst: fiftyoneDegreesEvidenceCreate
      Src: /src/haproxy/addons/51degrees/51d.c:510,1
    - Dst: ist2
      Src: /src/haproxy/addons/51degrees/51d.c:516,1
    - Dst: http_find_header
      Src: /src/haproxy/addons/51degrees/51d.c:519,1
    - Dst: unlikely
      Src: /src/haproxy/addons/51degrees/51d.c:522,1
    - Dst: memcpy
      Src: /src/haproxy/addons/51degrees/51d.c:525,1
    - Dst: fiftyoneDegreesEvidenceAddString
      Src: /src/haproxy/addons/51degrees/51d.c:528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 537
    functionName: _51d_get_evidence
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ist2
    - ALREADY_CHECKED
    - memcpy
    - http_find_header
    - fiftyoneDegreesEvidenceCreate
    - fiftyoneDegreesEvidenceAddString
    - smp_prefetch_htx
    linkageType: ''
    returnType: fiftyoneDegreesEvidenceKeyValuePairArray
    signature: fiftyoneDegreesEvidenceKeyValuePairArray * _51d_get_evidence(struct
      sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 665
    functionName: _51d_set_smp
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _51d_set_smp(struct sample *smp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/addons/51degrees/51d.c:684,1
    - Dst: fiftyoneDegreesWorksetPoolGet
      Src: /src/haproxy/addons/51degrees/51d.c:697,1
    - Dst: _51d_set_headers
      Src: /src/haproxy/addons/51degrees/51d.c:702,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/addons/51degrees/51d.c:706,1
    - Dst: lru64_get
      Src: /src/haproxy/addons/51degrees/51d.c:708,1
    - Dst: _51d_req_hash
      Src: /src/haproxy/addons/51degrees/51d.c:708,1
    - Dst: fiftyoneDegreesWorksetPoolRelease
      Src: /src/haproxy/addons/51degrees/51d.c:712,1
    - Dst: _51d_retrieve_cache_entry
      Src: /src/haproxy/addons/51degrees/51d.c:713,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/51degrees/51d.c:714,1
    - Dst: _51d_set_smp
      Src: /src/haproxy/addons/51degrees/51d.c:716,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/51degrees/51d.c:719,1
    - Dst: fiftyoneDegreesMatchForHttpHeaders
      Src: /src/haproxy/addons/51degrees/51d.c:722,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:724,1
    - Dst: fiftyoneDegreesCreateDeviceOffsets
      Src: /src/haproxy/addons/51degrees/51d.c:730,1
    - Dst: _51d_init_device_offsets
      Src: /src/haproxy/addons/51degrees/51d.c:731,1
    - Dst: _51d_set_device_offsets
      Src: /src/haproxy/addons/51degrees/51d.c:739,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:740,1
    - Dst: fiftyoneDegreesFreeDeviceOffsets
      Src: /src/haproxy/addons/51degrees/51d.c:743,1
    - Dst: fiftyoneDegreesWorksetPoolRelease
      Src: /src/haproxy/addons/51degrees/51d.c:749,1
    - Dst: _51d_insert_cache_entry
      Src: /src/haproxy/addons/51degrees/51d.c:751,1
    - Dst: _51d_get_evidence
      Src: /src/haproxy/addons/51degrees/51d.c:755,1
    - Dst: fiftyoneDegreesResultsHashFromEvidence
      Src: /src/haproxy/addons/51degrees/51d.c:759,1
    - Dst: fiftyoneDegreesEvidenceFree
      Src: /src/haproxy/addons/51degrees/51d.c:761,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:766,1
    - Dst: _51d_set_smp
      Src: /src/haproxy/addons/51degrees/51d.c:769,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 667
    functionDepth: 6
    functionLinenumber: 667
    functionLinenumberEnd: 771
    functionName: _51d_fetch
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - _51d_process_match
    - fiftyoneDegreesFreeDeviceOffsets
    - HA_SPIN_LOCK
    - _51d_init_device_offsets
    - fiftyoneDegreesEvidenceFree
    - _51d_set_device_offsets
    - fiftyoneDegreesCreateDeviceOffsets
    - smp_prefetch_htx
    - _51d_set_headers
    - lru64_get
    - _51d_set_smp
    - _51d_get_evidence
    - _51d_retrieve_cache_entry
    - fiftyoneDegreesResultsHashFromEvidence
    - _51d_req_hash
    - _51d_insert_cache_entry
    - fiftyoneDegreesMatchForHttpHeaders
    - HA_SPIN_UNLOCK
    - fiftyoneDegreesWorksetPoolGet
    - fiftyoneDegreesWorksetPoolRelease
    linkageType: ''
    returnType: int
    signature: int _51d_fetch(const struct arg *args, struct sample *smp, const char
      *kw, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/addons/51degrees/51d.c:792,1
    - Dst: lru64_get
      Src: /src/haproxy/addons/51degrees/51d.c:793,1
    - Dst: XXH3
      Src: /src/haproxy/addons/51degrees/51d.c:793,1
    - Dst: _51d_retrieve_cache_entry
      Src: /src/haproxy/addons/51degrees/51d.c:796,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/51degrees/51d.c:797,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/51degrees/51d.c:800,1
    - Dst: fiftyoneDegreesWorksetPoolGet
      Src: /src/haproxy/addons/51degrees/51d.c:804,1
    - Dst: smp_dup
      Src: /src/haproxy/addons/51degrees/51d.c:810,1
    - Dst: fiftyoneDegreesMatch
      Src: /src/haproxy/addons/51degrees/51d.c:818,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:819,1
    - Dst: fiftyoneDegreesCreateDeviceOffsets
      Src: /src/haproxy/addons/51degrees/51d.c:823,1
    - Dst: _51d_init_device_offsets
      Src: /src/haproxy/addons/51degrees/51d.c:824,1
    - Dst: fiftyoneDegreesGetDeviceOffset
      Src: /src/haproxy/addons/51degrees/51d.c:829,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:832,1
    - Dst: fiftyoneDegreesWorksetPoolRelease
      Src: /src/haproxy/addons/51degrees/51d.c:836,1
    - Dst: _51d_insert_cache_entry
      Src: /src/haproxy/addons/51degrees/51d.c:838,1
    - Dst: fiftyoneDegreesFreeDeviceOffsets
      Src: /src/haproxy/addons/51degrees/51d.c:843,1
    - Dst: fiftyoneDegreesResultsHashFromUserAgent
      Src: /src/haproxy/addons/51degrees/51d.c:848,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:853,1
    - Dst: _51d_set_smp
      Src: /src/haproxy/addons/51degrees/51d.c:856,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 773
    functionDepth: 6
    functionLinenumber: 773
    functionLinenumberEnd: 858
    functionName: _51d_conv
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - _51d_insert_cache_entry
    - lru64_get
    - _51d_set_smp
    - _51d_process_match
    - fiftyoneDegreesFreeDeviceOffsets
    - XXH3
    - HA_SPIN_UNLOCK
    - fiftyoneDegreesCreateDeviceOffsets
    - HA_SPIN_LOCK
    - fiftyoneDegreesMatch
    - fiftyoneDegreesResultsHashFromUserAgent
    - _51d_retrieve_cache_entry
    - smp_dup
    - _51d_init_device_offsets
    - fiftyoneDegreesGetDeviceOffset
    - fiftyoneDegreesWorksetPoolGet
    - fiftyoneDegreesWorksetPoolRelease
    linkageType: ''
    returnType: int
    signature: int _51d_conv(const struct arg *args, struct sample *smp, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/addons/51degrees/51d.c:867,1
    - Dst: fiftyoneDegreesGetString
      Src: /src/haproxy/addons/51degrees/51d.c:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 874
    functionName: _51d_init_http_headers
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - malloc
    - fiftyoneDegreesGetString
    linkageType: ''
    returnType: void
    signature: void _51d_init_http_headers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fiftyoneDegreesGetHttpHeaderCount
      Src: /src/haproxy/addons/51degrees/51d.c:882,1
    - Dst: malloc
      Src: /src/haproxy/addons/51degrees/51d.c:884,1
    - Dst: _51d_init_device_offsets
      Src: /src/haproxy/addons/51degrees/51d.c:886,1
    - Dst: malloc
      Src: /src/haproxy/addons/51degrees/51d.c:888,1
    - Dst: malloc
      Src: /src/haproxy/addons/51degrees/51d.c:889,1
    - Dst: fiftyoneDegreesGetHttpHeaderNameOffset
      Src: /src/haproxy/addons/51degrees/51d.c:891,1
    - Dst: fiftyoneDegreesGetHttpHeaderNamePointer
      Src: /src/haproxy/addons/51degrees/51d.c:892,1
    - Dst: strlen
      Src: /src/haproxy/addons/51degrees/51d.c:893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 896
    functionName: _51d_init_http_headers
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - malloc
    - fiftyoneDegreesGetHttpHeaderNamePointer
    - fiftyoneDegreesGetHttpHeaderNameOffset
    - _51d_init_device_offsets
    - fiftyoneDegreesGetHttpHeaderCount
    - strlen
    linkageType: ''
    returnType: void
    signature: void _51d_init_http_headers()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/addons/51degrees/51d.c:922,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/51degrees/51d.c:926,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/51degrees/51d.c:928,1
    - Dst: calloc
      Src: /src/haproxy/addons/51degrees/51d.c:930,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/51degrees/51d.c:933,1
    - Dst: fiftyoneDegreesInitWithPropertyArray
      Src: /src/haproxy/addons/51degrees/51d.c:938,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/addons/51degrees/51d.c:940,1
    - Dst: chunk_reset
      Src: /src/haproxy/addons/51degrees/51d.c:941,1
    - Dst: fiftyoneDegreesWorksetPoolCreate
      Src: /src/haproxy/addons/51degrees/51d.c:946,1
    - Dst: _51d_init_http_headers
      Src: /src/haproxy/addons/51degrees/51d.c:948,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:951,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:955,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:958,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:963,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:966,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:970,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:973,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:976,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:980,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:983,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/51degrees/51d.c:988,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/51degrees/51d.c:991,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:994,1
    - Dst: ha_random
      Src: /src/haproxy/addons/51degrees/51d.c:997,1
    - Dst: lru64_new
      Src: /src/haproxy/addons/51degrees/51d.c:999,1
    - Dst: fiftyoneDegreesFileReadToByteArray
      Src: /src/haproxy/addons/51degrees/51d.c:1032,1
    - Dst: fiftyoneDegreesHashInitManagerFromMemory
      Src: /src/haproxy/addons/51degrees/51d.c:1036,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1045,1
    - Dst: fiftyoneDegreesStatusGetMessage
      Src: /src/haproxy/addons/51degrees/51d.c:1050,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/51degrees/51d.c:1052,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/51degrees/51d.c:1055,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 902
    functionDepth: 9
    functionLinenumber: 902
    functionLinenumberEnd: 1061
    functionName: init_51degrees
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - fiftyoneDegreesHashInitManagerFromMemory
    - fiftyoneDegreesInitWithPropertyArray
    - list_for_each_entry
    - lru64_new
    - calloc
    - chunk_printf
    - get_trash_chunk
    - free
    - LIST_ISEMPTY
    - _51d_init_http_headers
    - ha_alert
    - fiftyoneDegreesWorksetPoolCreate
    - chunk_reset
    - ha_random
    - fiftyoneDegreesFileReadToByteArray
    - fiftyoneDegreesStatusGetMessage
    linkageType: ''
    returnType: int
    signature: int init_51degrees(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1068,1
    - Dst: fiftyoneDegreesWorksetPoolFree
      Src: /src/haproxy/addons/51degrees/51d.c:1071,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1075,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1077,1
    - Dst: fiftyoneDegreesDataSetFree
      Src: /src/haproxy/addons/51degrees/51d.c:1079,1
    - Dst: ha_free
      Src: /src/haproxy/addons/51degrees/51d.c:1082,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/51degrees/51d.c:1083,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/addons/51degrees/51d.c:1084,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1085,1
    - Dst: lru64_destroy
      Src: /src/haproxy/addons/51degrees/51d.c:1089,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1063
    functionDepth: 4
    functionLinenumber: 1063
    functionLinenumberEnd: 1091
    functionName: deinit_51degrees
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - fiftyoneDegreesWorksetPoolFree
    - LIST_DELETE
    - lru64_destroy
    - fiftyoneDegreesDataSetFree
    - ha_free
    - list_for_each_entry_safe
    - free
    linkageType: ''
    returnType: void
    signature: void deinit_51degrees(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/addons/51degrees/51d.c:1102,1
    - Dst: _51d_init_internal
      Src: /src/haproxy/addons/51degrees/51d.c:1108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1094
    functionDepth: 2
    functionLinenumber: 1094
    functionLinenumberEnd: 1112
    functionName: init_51degrees_per_thread
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - calloc
    - _51d_init_internal
    linkageType: ''
    returnType: int
    signature: int init_51degrees_per_thread()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fiftyoneDegreesResultsHashFree
      Src: /src/haproxy/addons/51degrees/51d.c:1119,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1125,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1114
    functionDepth: 3
    functionLinenumber: 1114
    functionLinenumberEnd: 1132
    functionName: deinit_51degrees_per_thread
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - fiftyoneDegreesResultsHashFree
    - free
    linkageType: ''
    returnType: void
    signature: void deinit_51degrees_per_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: FIFTYONE_DEGREES_ARRAY_TYPE
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIFTYONE_DEGREES_ARRAY_TYPE(t, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - manager
    argTypes:
    - fiftyoneDegreesResourceManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: fiftyoneDegreesDataSetGet
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesDataSetBase
    signature: "fiftyoneDegreesDataSetBase * fiftyoneDegreesDataSetGet(\n\tfiftyoneDegreesResourceManager
      *manager)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - results
    argTypes:
    - fiftyoneDegreesResultsHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: fiftyoneDegreesResultsHashFree
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fiftyoneDegreesResultsHashFree(\n\tfiftyoneDegreesResultsHash*
      results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - manager
    - userAgentCapacity
    - overridesCapacity
    argTypes:
    - fiftyoneDegreesResourceManager*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: fiftyoneDegreesResultsHashCreate
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesResultsHash
    signature: "fiftyoneDegreesResultsHash * fiftyoneDegreesResultsHashCreate(\n\tfiftyoneDegreesResourceManager
      *manager,\n\tuint32_t userAgentCapacity,\n\tuint32_t overridesCapacity)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dataSet
    argTypes:
    - fiftyoneDegreesDataSetBase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: fiftyoneDegreesDataSetRelease
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fiftyoneDegreesDataSetRelease(fiftyoneDegreesDataSetBase *dataSet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: fiftyoneDegreesEvidenceCreate
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesEvidenceKeyValuePairArray
    signature: 'fiftyoneDegreesEvidenceKeyValuePairArray *

      fiftyoneDegreesEvidenceCreate(uint32_t capacity)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - evidence
    - prefix
    - field
    - originalValue
    argTypes:
    - fiftyoneDegreesEvidenceKeyValuePairArray*
    - fiftyoneDegreesEvidencePrefix
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: fiftyoneDegreesEvidenceAddString
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesEvidenceKeyValuePair
    signature: "fiftyoneDegreesEvidenceKeyValuePair * fiftyoneDegreesEvidenceAddString(\n\tfiftyoneDegreesEvidenceKeyValuePairArray
      *evidence,\n\tfiftyoneDegreesEvidencePrefix prefix,\n\tconst char *field,\n\tconst
      char *originalValue)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - results
    - propertyName
    - buffer
    - bufferLength
    - separator
    - exception
    argTypes:
    - fiftyoneDegreesResultsHash*
    - char*
    - char*
    - size_t
    - char*
    - fiftyoneDegreesException*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: fiftyoneDegreesResultsHashGetValuesString
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t fiftyoneDegreesResultsHashGetValuesString(\n\tfiftyoneDegreesResultsHash*
      results,\n\tconst char *propertyName,\n\tchar *buffer,\n\tsize_t bufferLength,\n\tconst
      char *separator,\n\tfiftyoneDegreesException *exception)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - results
    - evidence
    - exception
    argTypes:
    - fiftyoneDegreesResultsHash*
    - fiftyoneDegreesEvidenceKeyValuePairArray*
    - fiftyoneDegreesException*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: fiftyoneDegreesResultsHashFromEvidence
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fiftyoneDegreesResultsHashFromEvidence(\n\tfiftyoneDegreesResultsHash
      *results,\n\tfiftyoneDegreesEvidenceKeyValuePairArray *evidence,\n\tfiftyoneDegreesException
      *exception)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evidence
    argTypes:
    - fiftyoneDegreesEvidenceKeyValuePairArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: fiftyoneDegreesEvidenceFree
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fiftyoneDegreesEvidenceFree(fiftyoneDegreesEvidenceKeyValuePairArray
      *evidence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - results
    - userAgent
    - userAgentLength
    - exception
    argTypes:
    - fiftyoneDegreesResultsHash*
    - char*
    - size_t
    - fiftyoneDegreesException*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: fiftyoneDegreesResultsHashFromUserAgent
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fiftyoneDegreesResultsHashFromUserAgent(\n\tfiftyoneDegreesResultsHash
      *results,\n\tconst char* userAgent,\n\tsize_t userAgentLength,\n\tfiftyoneDegreesException
      *exception)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fileName
    - reader
    argTypes:
    - char*
    - fiftyoneDegreesMemoryReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: fiftyoneDegreesFileReadToByteArray
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesStatusCode
    signature: "fiftyoneDegreesStatusCode fiftyoneDegreesFileReadToByteArray(\n\tconst
      char *fileName,\n\tfiftyoneDegreesMemoryReader *reader)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - manager
    - config
    - properties
    - memory
    - size
    - exception
    argTypes:
    - fiftyoneDegreesResourceManager*
    - fiftyoneDegreesConfigHash*
    - fiftyoneDegreesPropertiesRequired*
    - void*
    - long
    - fiftyoneDegreesException*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: fiftyoneDegreesHashInitManagerFromMemory
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesStatusCode
    signature: "fiftyoneDegreesStatusCode fiftyoneDegreesHashInitManagerFromMemory(\n\tfiftyoneDegreesResourceManager
      *manager,\n\tfiftyoneDegreesConfigHash *config,\n\tfiftyoneDegreesPropertiesRequired
      *properties,\n\tvoid *memory,\n\tlong size,\n\tfiftyoneDegreesException *exception)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - status
    - fileName
    argTypes:
    - fiftyoneDegreesStatusCode
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: fiftyoneDegreesStatusGetMessage
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char * fiftyoneDegreesStatusGetMessage(\n\tfiftyoneDegreesStatusCode
      status,\n\tconst char *fileName)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dataSet
    - userAgent
    argTypes:
    - fiftyoneDegreesDataSet*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: fiftyoneDegreesGetDeviceOffset
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fiftyoneDegreesGetDeviceOffset(\n\tfiftyoneDegreesDataSet *dataSet,\n\tconst
      char *userAgent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: fiftyoneDegreesGetRequiredPropertiesNames
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char ** fiftyoneDegreesGetRequiredPropertiesNames(\n\tfiftyoneDegreesDataSet
      *dataSet)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dataSet
    argTypes:
    - fiftyoneDegreesDataSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: fiftyoneDegreesGetRequiredPropertiesCount
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fiftyoneDegreesGetRequiredPropertiesCount(\n\tfiftyoneDegreesDataSet
      *dataSet)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dataSet
    - deviceOffsets
    - requiredPropertyIndex
    - values
    - size
    argTypes:
    - fiftyoneDegreesDataSet*
    - fiftyoneDegreesDeviceOffsets*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: fiftyoneDegreesGetValueFromOffsets
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fiftyoneDegreesGetValueFromOffsets(\n\tfiftyoneDegreesDataSet
      *dataSet,\n\tfiftyoneDegreesDeviceOffsets* deviceOffsets,\n\tint requiredPropertyIndex,\n\tchar*
      values,\n\tint size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dataSet
    argTypes:
    - fiftyoneDegreesDataSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: fiftyoneDegreesCreateDeviceOffsets
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesDeviceOffsets
    signature: "fiftyoneDegreesDeviceOffsets * fiftyoneDegreesCreateDeviceOffsets(\n\tfiftyoneDegreesDataSet
      *dataSet)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offsets
    argTypes:
    - fiftyoneDegreesDeviceOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: fiftyoneDegreesFreeDeviceOffsets
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fiftyoneDegreesFreeDeviceOffsets(\n\tfiftyoneDegreesDeviceOffsets*
      offsets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dataSet
    argTypes:
    - fiftyoneDegreesDataSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: fiftyoneDegreesGetHttpHeaderCount
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fiftyoneDegreesGetHttpHeaderCount(\n\tfiftyoneDegreesDataSet *dataSet)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dataSet
    - httpHeaderIndex
    argTypes:
    - fiftyoneDegreesDataSet*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: fiftyoneDegreesGetHttpHeaderNameOffset
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fiftyoneDegreesGetHttpHeaderNameOffset(\n\tfiftyoneDegreesDataSet
      *dataSet,\n\tint httpHeaderIndex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dataSet
    - httpHeaderIndex
    argTypes:
    - fiftyoneDegreesDataSet*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: fiftyoneDegreesGetHttpHeaderNamePointer
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char * fiftyoneDegreesGetHttpHeaderNamePointer(\n\tfiftyoneDegreesDataSet
      *dataSet,\n\tint httpHeaderIndex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fileName
    - dataSet
    - properties
    - propertyCount
    argTypes:
    - char*
    - fiftyoneDegreesDataSet*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: fiftyoneDegreesInitWithPropertyArray
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesDataSetInitStatus
    signature: "fiftyoneDegreesDataSetInitStatus fiftyoneDegreesInitWithPropertyArray(\n\tconst
      char* fileName,\n\tfiftyoneDegreesDataSet *dataSet,\n\tconst char** properties,\n\tint
      propertyCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dataSet
    argTypes:
    - fiftyoneDegreesDataSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: fiftyoneDegreesDataSetFree
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fiftyoneDegreesDataSetFree(fiftyoneDegreesDataSet *dataSet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ws
    argTypes:
    - fiftyoneDegreesWorkset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: fiftyoneDegreesGetSignatureRank
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t fiftyoneDegreesGetSignatureRank(fiftyoneDegreesWorkset *ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dataSet
    - property
    argTypes:
    - fiftyoneDegreesDataSet*
    - fiftyoneDegreesProperty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: fiftyoneDegreesGetPropertyName
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char * fiftyoneDegreesGetPropertyName(\n\tconst fiftyoneDegreesDataSet
      *dataSet,\n\tconst fiftyoneDegreesProperty *property)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ws
    - requiredPropertyIndex
    argTypes:
    - fiftyoneDegreesWorkset*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: fiftyoneDegreesSetValues
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t fiftyoneDegreesSetValues(\n\tfiftyoneDegreesWorkset *ws,\n\tint32_t
      requiredPropertyIndex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dataSet
    - value
    argTypes:
    - fiftyoneDegreesDataSet*
    - fiftyoneDegreesValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: fiftyoneDegreesGetValueName
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char * fiftyoneDegreesGetValueName(\n\tconst fiftyoneDegreesDataSet
      *dataSet,\n\tconst fiftyoneDegreesValue *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - fiftyoneDegreesWorksetPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: fiftyoneDegreesWorksetPoolGet
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesWorkset
    signature: "fiftyoneDegreesWorkset *fiftyoneDegreesWorksetPoolGet(\n\tfiftyoneDegreesWorksetPool
      *pool)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - ws
    argTypes:
    - fiftyoneDegreesWorksetPool*
    - fiftyoneDegreesWorkset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: fiftyoneDegreesWorksetPoolRelease
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fiftyoneDegreesWorksetPoolRelease(\n    fiftyoneDegreesWorksetPool
      *pool,\n    fiftyoneDegreesWorkset *ws)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ws
    argTypes:
    - fiftyoneDegreesWorkset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: fiftyoneDegreesMatchForHttpHeaders
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fiftyoneDegreesMatchForHttpHeaders(fiftyoneDegreesWorkset *ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ws
    - userAgent
    argTypes:
    - fiftyoneDegreesWorkset*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: fiftyoneDegreesMatch
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fiftyoneDegreesMatch(\n\tfiftyoneDegreesWorkset *ws,\n\tconst
      char* userAgent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fileName
    - dataSet
    - properties
    - count
    argTypes:
    - char*
    - fiftyoneDegreesDataSet*
    - char**
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: fiftyoneDegreesInitWithPropertyArray
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesDataSetInitStatus
    signature: "fiftyoneDegreesDataSetInitStatus fiftyoneDegreesInitWithPropertyArray(\n\tconst
      char *fileName,\n\tfiftyoneDegreesDataSet *dataSet,\n\tconst char** properties,\n\tint32_t
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dataSet
    - cache
    - size
    argTypes:
    - fiftyoneDegreesDataSet*
    - fiftyoneDegreesResultsetCache*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: fiftyoneDegreesWorksetPoolCreate
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesWorksetPool
    signature: "fiftyoneDegreesWorksetPool *fiftyoneDegreesWorksetPoolCreate(\n\tfiftyoneDegreesDataSet
      *dataSet,\n\tfiftyoneDegreesResultsetCache *cache,\n\tint32_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - fiftyoneDegreesWorksetPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: fiftyoneDegreesWorksetPoolFree
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fiftyoneDegreesWorksetPoolFree(\n\tconst fiftyoneDegreesWorksetPool
      *pool)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dataSet
    argTypes:
    - fiftyoneDegreesDataSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: fiftyoneDegreesDataSetFree
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fiftyoneDegreesDataSetFree(const fiftyoneDegreesDataSet *dataSet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dataSet
    - offset
    argTypes:
    - fiftyoneDegreesDataSet*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: fiftyoneDegreesGetString
    functionSourceFile: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fiftyoneDegreesAsciiString
    signature: "fiftyoneDegreesAsciiString * fiftyoneDegreesGetString(\n\tconst fiftyoneDegreesDataSet
      *dataSet,\n\tint32_t offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/admin/iprange/ip6range.c:31,1
    - Dst: ntohl
      Src: /src/haproxy/admin/iprange/ip6range.c:32,1
    - Dst: ntohl
      Src: /src/haproxy/admin/iprange/ip6range.c:33,1
    - Dst: ntohl
      Src: /src/haproxy/admin/iprange/ip6range.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: in6_bswap
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: void
    signature: void in6_bswap(struct in6_addr *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/admin/iprange/ip6range.c:43,1
    - Dst: in6_bswap
      Src: /src/haproxy/admin/iprange/ip6range.c:44,1
    - Dst: inet_ntop
      Src: /src/haproxy/admin/iprange/ip6range.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: get_ipv6_addr
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached:
    - in6_bswap
    - inet_ntop
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *get_ipv6_addr(struct in6_addr *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/admin/iprange/ip6range.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: get_addr
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *get_addr(struct in6_addr *addr)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct in6_addr*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: a_le_b
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int a_le_b(struct in6_addr *a, struct in6_addr *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct in6_addr*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: a_eq_b
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int a_eq_b(struct in6_addr *a, struct in6_addr *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct in6_addr*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: a_gt_b
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int a_gt_b(struct in6_addr *a, struct in6_addr *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - b
    - r
    argTypes:
    - unsigned int
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 132
    functionName: hmask
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct in6_addr
    signature: struct in6_addr *hmask(unsigned int b, struct in6_addr *r)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - b
    - r
    argTypes:
    - unsigned int
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 168
    functionName: one_ls_b
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct in6_addr
    signature: struct in6_addr *one_ls_b(unsigned int b, struct in6_addr *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - a
    - b
    - r
    argTypes:
    - struct in6_addr*
    - struct in6_addr*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: a_plus_b
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct in6_addr
    signature: struct in6_addr *a_plus_b(struct in6_addr *a, struct in6_addr *b, struct
      in6_addr *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: a_gt_b
      Src: /src/haproxy/admin/iprange/ip6range.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - a
    - b
    - r
    argTypes:
    - struct in6_addr*
    - struct in6_addr*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 213
    functionName: a_minus_b
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached:
    - a_gt_b
    linkageType: ''
    returnType: struct in6_addr
    signature: struct in6_addr *a_minus_b(struct in6_addr *a, struct in6_addr *b,
      struct in6_addr *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - r
    argTypes:
    - struct in6_addr*
    - struct in6_addr*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: a_and_b
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct in6_addr
    signature: struct in6_addr *a_and_b(struct in6_addr *a, struct in6_addr *b, struct
      in6_addr *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: is_set
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_set(struct in6_addr *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: a_eq_b
      Src: /src/haproxy/admin/iprange/ip6range.c:246,1
    - Dst: printf
      Src: /src/haproxy/admin/iprange/ip6range.c:248,1
    - Dst: get_ipv6_addr
      Src: /src/haproxy/admin/iprange/ip6range.c:248,1
    - Dst: a_gt_b
      Src: /src/haproxy/admin/iprange/ip6range.c:251,1
    - Dst: a_eq_b
      Src: /src/haproxy/admin/iprange/ip6range.c:257,1
    - Dst: a_plus_b
      Src: /src/haproxy/admin/iprange/ip6range.c:257,1
    - Dst: printf
      Src: /src/haproxy/admin/iprange/ip6range.c:259,1
    - Dst: a_le_b
      Src: /src/haproxy/admin/iprange/ip6range.c:265,1
    - Dst: a_plus_b
      Src: /src/haproxy/admin/iprange/ip6range.c:265,1
    - Dst: hmask
      Src: /src/haproxy/admin/iprange/ip6range.c:265,1
    - Dst: is_set
      Src: /src/haproxy/admin/iprange/ip6range.c:268,1
    - Dst: a_and_b
      Src: /src/haproxy/admin/iprange/ip6range.c:268,1
    - Dst: one_ls_b
      Src: /src/haproxy/admin/iprange/ip6range.c:268,1
    - Dst: printf
      Src: /src/haproxy/admin/iprange/ip6range.c:270,1
    - Dst: get_ipv6_addr
      Src: /src/haproxy/admin/iprange/ip6range.c:270,1
    - Dst: a_plus_b
      Src: /src/haproxy/admin/iprange/ip6range.c:271,1
    - Dst: one_ls_b
      Src: /src/haproxy/admin/iprange/ip6range.c:271,1
    - Dst: is_set
      Src: /src/haproxy/admin/iprange/ip6range.c:282,1
    - Dst: a_plus_b
      Src: /src/haproxy/admin/iprange/ip6range.c:282,1
    - Dst: a_minus_b
      Src: /src/haproxy/admin/iprange/ip6range.c:282,1
    - Dst: is_set
      Src: /src/haproxy/admin/iprange/ip6range.c:285,1
    - Dst: a_and_b
      Src: /src/haproxy/admin/iprange/ip6range.c:285,1
    - Dst: a_plus_b
      Src: /src/haproxy/admin/iprange/ip6range.c:285,1
    - Dst: a_minus_b
      Src: /src/haproxy/admin/iprange/ip6range.c:285,1
    - Dst: one_ls_b
      Src: /src/haproxy/admin/iprange/ip6range.c:285,1
    - Dst: printf
      Src: /src/haproxy/admin/iprange/ip6range.c:288,1
    - Dst: get_ipv6_addr
      Src: /src/haproxy/admin/iprange/ip6range.c:288,1
    - Dst: a_plus_b
      Src: /src/haproxy/admin/iprange/ip6range.c:289,1
    - Dst: one_ls_b
      Src: /src/haproxy/admin/iprange/ip6range.c:289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - low
    - high
    - eol
    - pfx
    argTypes:
    - struct in6_addr*
    - struct in6_addr*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 297
    functionName: convert_range
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 0
    functionsReached:
    - a_le_b
    - get_ipv6_addr
    - a_gt_b
    - a_plus_b
    - is_set
    - a_and_b
    - printf
    - hmask
    - a_minus_b
    - a_eq_b
    - one_ls_b
    linkageType: ''
    returnType: void
    signature: void convert_range(struct in6_addr *low, struct in6_addr *high, const
      char *eol, const char *pfx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/admin/iprange/ip6range.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: usage
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 14
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *argv0)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/haproxy/admin/iprange/ip6range.c:325,1
    - Dst: exit
      Src: /src/haproxy/admin/iprange/ip6range.c:326,1
    - Dst: fgets
      Src: /src/haproxy/admin/iprange/ip6range.c:330,1
    - Dst: strlen
      Src: /src/haproxy/admin/iprange/ip6range.c:331,1
    - Dst: inet_pton
      Src: /src/haproxy/admin/iprange/ip6range.c:370,1
    - Dst: fprintf
      Src: /src/haproxy/admin/iprange/ip6range.c:371,1
    - Dst: inet_pton
      Src: /src/haproxy/admin/iprange/ip6range.c:375,1
    - Dst: fprintf
      Src: /src/haproxy/admin/iprange/ip6range.c:376,1
    - Dst: in6_bswap
      Src: /src/haproxy/admin/iprange/ip6range.c:380,1
    - Dst: in6_bswap
      Src: /src/haproxy/admin/iprange/ip6range.c:381,1
    - Dst: inet_pton
      Src: /src/haproxy/admin/iprange/ip6range.c:385,1
    - Dst: in6_bswap
      Src: /src/haproxy/admin/iprange/ip6range.c:387,1
    - Dst: a_le_b
      Src: /src/haproxy/admin/iprange/ip6range.c:388,1
    - Dst: a_le_b
      Src: /src/haproxy/admin/iprange/ip6range.c:388,1
    - Dst: a_le_b
      Src: /src/haproxy/admin/iprange/ip6range.c:388,1
    - Dst: a_le_b
      Src: /src/haproxy/admin/iprange/ip6range.c:388,1
    - Dst: convert_range
      Src: /src/haproxy/admin/iprange/ip6range.c:389,1
    - Dst: convert_range
      Src: /src/haproxy/admin/iprange/ip6range.c:393,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 397
    functionName: main
    functionSourceFile: /src/haproxy/admin/iprange/ip6range.c
    functionUses: 33
    functionsReached:
    - a_le_b
    - in6_bswap
    - exit
    - strlen
    - fprintf
    - convert_range
    - fgets
    - usage
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/haproxy/admin/iprange/iprange.c:34,1
    - Dst: inet_ntoa
      Src: /src/haproxy/admin/iprange/iprange.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: get_ipv4_addr
    functionSourceFile: /src/haproxy/admin/iprange/iprange.c
    functionUses: 0
    functionsReached:
    - inet_ntoa
    - ntohl
    linkageType: ''
    returnType: char
    signature: char *get_ipv4_addr(unsigned int addr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/admin/iprange/iprange.c:47,1
    - Dst: get_ipv4_addr
      Src: /src/haproxy/admin/iprange/iprange.c:47,1
    - Dst: printf
      Src: /src/haproxy/admin/iprange/iprange.c:58,1
    - Dst: printf
      Src: /src/haproxy/admin/iprange/iprange.c:68,1
    - Dst: get_ipv4_addr
      Src: /src/haproxy/admin/iprange/iprange.c:68,1
    - Dst: printf
      Src: /src/haproxy/admin/iprange/iprange.c:85,1
    - Dst: get_ipv4_addr
      Src: /src/haproxy/admin/iprange/iprange.c:85,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - low
    - high
    - eol
    - pfx
    argTypes:
    - unsigned int
    - unsigned int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 94
    functionName: convert_range
    functionSourceFile: /src/haproxy/admin/iprange/iprange.c
    functionUses: 1
    functionsReached:
    - printf
    - get_ipv4_addr
    linkageType: ''
    returnType: void
    signature: void convert_range(unsigned int low, unsigned int high, const char
      *eol, const char *pfx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/admin/iprange/iprange.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: usage
    functionSourceFile: /src/haproxy/admin/iprange/iprange.c
    functionUses: 15
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *argv0)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/haproxy/admin/iprange/iprange.c:123,1
    - Dst: exit
      Src: /src/haproxy/admin/iprange/iprange.c:124,1
    - Dst: fgets
      Src: /src/haproxy/admin/iprange/iprange.c:128,1
    - Dst: strlen
      Src: /src/haproxy/admin/iprange/iprange.c:129,1
    - Dst: inet_pton
      Src: /src/haproxy/admin/iprange/iprange.c:168,1
    - Dst: ntohl
      Src: /src/haproxy/admin/iprange/iprange.c:170,1
    - Dst: strtoul
      Src: /src/haproxy/admin/iprange/iprange.c:170,1
    - Dst: fprintf
      Src: /src/haproxy/admin/iprange/iprange.c:172,1
    - Dst: inet_pton
      Src: /src/haproxy/admin/iprange/iprange.c:177,1
    - Dst: ntohl
      Src: /src/haproxy/admin/iprange/iprange.c:179,1
    - Dst: strtoul
      Src: /src/haproxy/admin/iprange/iprange.c:179,1
    - Dst: fprintf
      Src: /src/haproxy/admin/iprange/iprange.c:181,1
    - Dst: htonl
      Src: /src/haproxy/admin/iprange/iprange.c:186,1
    - Dst: htonl
      Src: /src/haproxy/admin/iprange/iprange.c:187,1
    - Dst: inet_pton
      Src: /src/haproxy/admin/iprange/iprange.c:190,1
    - Dst: htonl
      Src: /src/haproxy/admin/iprange/iprange.c:192,1
    - Dst: convert_range
      Src: /src/haproxy/admin/iprange/iprange.c:194,1
    - Dst: convert_range
      Src: /src/haproxy/admin/iprange/iprange.c:198,1
    - Dst: exit
      Src: /src/haproxy/admin/iprange/iprange.c:201,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 64
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 202
    functionName: main
    functionSourceFile: /src/haproxy/admin/iprange/iprange.c
    functionUses: 33
    functionsReached:
    - exit
    - strtoul
    - strlen
    - fprintf
    - convert_range
    - htonl
    - ntohl
    - fgets
    - usage
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: HAPP_STR
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAPP_STR(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: HAPP_XSTR
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAPP_XSTR(str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:82,1
    - Dst: va_start
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:90,1
    - Dst: vfprintf
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:91,1
    - Dst: va_end
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:92,1
    - Dst: fprintf
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:100,1
    - Dst: fprintf
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:101,1
    - Dst: isalnum
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:102,1
    - Dst: fprintf
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:110,1
    - Dst: fprintf
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - buf
    - buflen
    - title_fmt
    argTypes:
    - unsigned char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 117
    functionName: hexdump
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 14
    functionsReached:
    - va_end
    - va_start
    - vfprintf
    - fprintf
    - isalnum
    - format
    linkageType: ''
    returnType: void
    signature: void hexdump(const unsigned char *buf, size_t buflen, const char *title_fmt,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tvb_memcpy
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:122,1
    - Dst: hexdump
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:123,1
    - Dst: fprintf
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tvb
    - offset
    - len
    argTypes:
    - tvbuff_t*
    - gint
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: hexdump_tvb
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - fprintf
    - tvb_memcpy
    - hexdump
    linkageType: ''
    returnType: void
    signature: void hexdump_tvb(tvbuff_t *tvb, const gint offset, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 513
    functionName: control_class_index_from_byte
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int control_class_index_from_byte(guint8 c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: control_class_index_from_byte
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 524
    functionName: class_str_from_byte
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - control_class_index_from_byte
    linkageType: ''
    returnType: char
    signature: char *class_str_from_byte(guint8 c)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 542
    functionName: control_msg_type_str_from_byte
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *control_msg_type_str_from_byte(guint8 c)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 564
    functionName: stkt_msg_type_str_from_byte
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *stkt_msg_type_str_from_byte(guint8 c)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - guint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 576
    functionName: error_msg_type_str_from_byte
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *error_msg_type_str_from_byte(guint8 c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - unsigned char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 601
    functionName: intdecode
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t intdecode(unsigned char **str, size_t len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tvb_find_line_end
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:611,1
    - Dst: strlen
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:616,1
    - Dst: tvb_get_ptr
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:618,1
    - Dst: tvb_strncaseeql
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:624,1
    - Dst: col_set_str
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:626,1
    - Dst: get_token_len
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:628,1
    - Dst: proto_tree_add_item
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:629,1
    - Dst: tvb_find_line_end
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:634,1
    - Dst: tvb_get_ptr
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:639,1
    - Dst: get_token_len
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:642,1
    - Dst: proto_tree_add_item
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:646,1
    - Dst: tvb_find_line_end
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:651,1
    - Dst: tvb_get_ptr
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:656,1
    - Dst: get_token_len
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:659,1
    - Dst: proto_tree_add_item
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:663,1
    - Dst: get_token_len
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:669,1
    - Dst: proto_tree_add_item
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:673,1
    - Dst: get_token_len
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:679,1
    - Dst: proto_tree_add_item
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:683,1
    - Dst: col_set_str
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:690,1
    - Dst: get_token_len
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:691,1
    - Dst: proto_tree_add_item
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:695,1
    - Dst: tvb_captured_length
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:699,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 3
    argNames:
    - tvb
    - pinfo
    - happp_tree
    argTypes:
    - tvbuff_t*
    - packet_info*
    - proto_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 700
    functionName: dissect_happp_handshake_pdu
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - tvb_captured_length
    - tvb_find_line_end
    - col_set_str
    - get_token_len
    - tvb_strncaseeql
    - proto_tree_add_item
    - tvb_get_ptr
    - strlen
    linkageType: ''
    returnType: int
    signature: "int dissect_happp_handshake_pdu(tvbuff_t *tvb, packet_info *pinfo,\n
      \                                      proto_tree *happp_tree)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - class_def_array
    - size
    argTypes:
    - struct class_def_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 709
    functionName: init_class_def_tab
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_class_def_tab(struct class_def_t *class_def_array, size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: col_append_fstr
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pinfo
    - class_index
    - first_class
    argTypes:
    - packet_info*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 726
    functionName: col_info_append_class
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - col_append_fstr
    linkageType: ''
    returnType: void
    signature: "void col_info_append_class(packet_info *pinfo, int class_index,\n
      \                                        int *first_class)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tvb_memcpy
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:737,1
    - Dst: intdecode
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - tvb
    - dec_val
    - offset
    - total
    argTypes:
    - tvbuff_t*
    - uint64_t*
    - guint*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 748
    functionName: intdecode_from_tvbuff
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - tvb_memcpy
    - intdecode
    linkageType: ''
    returnType: int
    signature: "int intdecode_from_tvbuff(tvbuff_t *tvb, uint64_t *dec_val,\n                                 guint
      *offset, guint total)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: intdecode_from_tvbuff
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:758,1
    - Dst: proto_tree_add_uint64_format_value
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - field_id
    - tree
    - tvb
    - offset
    - total
    - val
    argTypes:
    - int
    - proto_tree*
    - tvbuff_t*
    - guint*
    - guint
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 769
    functionName: add_enc_field_to_happp_tree
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - intdecode_from_tvbuff
    - proto_tree_add_uint64_format_value
    linkageType: ''
    returnType: int
    signature: "int add_enc_field_to_happp_tree(int field_id, proto_tree *tree, tvbuff_t
      *tvb,\n                                       guint *offset, guint total, uint64_t
      *val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tvb_memcpy
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:777,1
    - Dst: ntohl
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:780,1
    - Dst: proto_tree_add_int_format_value
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - field_id
    - tvb
    - tree
    - offset
    - total
    argTypes:
    - int
    - tvbuff_t*
    - proto_tree*
    - guint*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 786
    functionName: add_int_field_to_happp_tree
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - proto_tree_add_int_format_value
    - tvb_memcpy
    - ntohl
    linkageType: ''
    returnType: int
    signature: "int add_int_field_to_happp_tree(int field_id,\n                                       tvbuff_t
      *tvb, proto_tree *tree,\n                                       guint *offset,
      guint total _U_)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: add_enc_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:798,1
    - Dst: add_enc_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:800,1
    - Dst: proto_tree_add_item
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:805,1
    - Dst: add_enc_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:809,1
    - Dst: add_enc_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:811,1
    - Dst: add_enc_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:813,1
    - Dst: find_conversation
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:817,1
    - Dst: wmem_alloc
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:826,1
    - Dst: wmem_file_scope
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:826,1
    - Dst: conversation_add_proto_data
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:835,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - tvb
    - pinfo
    - tree
    - offset
    - total
    argTypes:
    - tvbuff_t*
    - packet_info*
    - proto_tree*
    - guint
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 836
    functionName: dissect_happp_stkt_define_msg
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - wmem_alloc
    - conversation_add_proto_data
    - proto_tree_add_item
    - find_conversation
    - wmem_file_scope
    - add_enc_field_to_happp_tree
    linkageType: ''
    returnType: void
    signature: "void dissect_happp_stkt_define_msg(tvbuff_t *tvb, packet_info *pinfo
      _U_,\n                                          proto_tree *tree, guint offset,
      guint total)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: find_conversation
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:849,1
    - Dst: conversation_get_proto_data
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:854,1
    - Dst: add_int_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:864,1
    - Dst: add_int_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:869,1
    - Dst: add_enc_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:879,1
    - Dst: proto_tree_add_item
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:883,1
    - Dst: add_int_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:888,1
    - Dst: proto_tree_add_ipv4
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:894,1
    - Dst: tvb_get_ipv4
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:895,1
    - Dst: proto_tree_add_item
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:899,1
    - Dst: add_enc_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:918,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 6
    argNames:
    - tvb
    - pinfo
    - tree
    - offset
    - total
    - msg_type_byte
    argTypes:
    - tvbuff_t*
    - packet_info*
    - proto_tree*
    - guint
    - guint
    - unsigned  char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 922
    functionName: dissect_happp_stkt_update_msg
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - tvb_get_ipv4
    - add_int_field_to_happp_tree
    - proto_tree_add_item
    - conversation_get_proto_data
    - find_conversation
    - proto_tree_add_ipv4
    - add_enc_field_to_happp_tree
    linkageType: ''
    returnType: void
    signature: "void dissect_happp_stkt_update_msg(tvbuff_t *tvb, packet_info *pinfo
      _U_,\n                                          proto_tree *tree, guint offset,
      guint total,\n                                          unsigned  char msg_type_byte)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_enc_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:927,1
    - Dst: add_int_field_to_happp_tree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - tvb
    - pinfo
    - tree
    - offset
    - total
    argTypes:
    - tvbuff_t*
    - packet_info*
    - proto_tree*
    - guint
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 924
    functionDepth: 2
    functionLinenumber: 924
    functionLinenumberEnd: 934
    functionName: dissect_happp_stkt_ack_msg
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - add_enc_field_to_happp_tree
    - add_int_field_to_happp_tree
    linkageType: ''
    returnType: void
    signature: "void dissect_happp_stkt_ack_msg(tvbuff_t *tvb, packet_info *pinfo
      _U_,\n                                          proto_tree *tree, guint offset,
      guint total)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dissect_happp_stkt_define_msg
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:942,1
    - Dst: dissect_happp_stkt_update_msg
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:948,1
    - Dst: dissect_happp_stkt_ack_msg
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:951,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - tvb
    - _U_
    - tree
    - msg_type_byte
    - offset
    - total
    argTypes:
    - tvbuff_t*
    - packet_info*
    - proto_tree*
    - guint8
    - guint
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 955
    functionName: dissect_happp_stk_msg
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - dissect_happp_stkt_ack_msg
    - dissect_happp_stkt_define_msg
    - dissect_happp_stkt_update_msg
    linkageType: ''
    returnType: void
    signature: "void dissect_happp_stk_msg(tvbuff_t *tvb, packet_info *pinfo _U_,\n
      \                                 proto_tree *tree, guint8 msg_type_byte,\n
      \                                 guint offset, guint total)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tvb_memcpy
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:968,1
    - Dst: intdecode
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:972,1
    - Dst: proto_tree_add_uint64_format_value
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:977,1
    - Dst: dissect_happp_stk_msg
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:984,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 7
    argNames:
    - tvb
    - pinfo
    - tree
    - msg_class_byte
    - msg_type_byte
    - offset
    - total
    argTypes:
    - tvbuff_t*
    - packet_info*
    - proto_tree*
    - guint8
    - guint8
    - guint*
    - guint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 957
    functionDepth: 4
    functionLinenumber: 957
    functionLinenumberEnd: 989
    functionName: dissect_happp_msg
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - tvb_memcpy
    - intdecode
    - proto_tree_add_uint64_format_value
    - dissect_happp_stk_msg
    linkageType: ''
    returnType: void
    signature: "void dissect_happp_msg(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
      *tree,\n                  guint8 msg_class_byte, guint8 msg_type_byte,\n                  guint
      *offset, guint total)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tvb_reported_length
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1006,1
    - Dst: proto_tree_add_item
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1009,1
    - Dst: proto_item_add_subtree
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1010,1
    - Dst: col_set_str
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1013,1
    - Dst: tvb_get_guint8
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1015,1
    - Dst: dissect_happp_handshake_pdu
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1020,1
    - Dst: init_class_def_tab
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1024,1
    - Dst: col_set_str
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1027,1
    - Dst: tvb_get_guint8
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1037,1
    - Dst: control_class_index_from_byte
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1039,1
    - Dst: proto_tree_add_item
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1053,1
    - Dst: proto_tree_add_uint_format_value
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1056,1
    - Dst: class_str_from_byte
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1059,1
    - Dst: tvb_get_guint8
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1060,1
    - Dst: proto_tree_add_uint_format_value
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1068,1
    - Dst: msg_type_str_func
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1071,1
    - Dst: col_append_str
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1074,1
    - Dst: dissect_happp_msg
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1078,1
    - Dst: col_info_append_class
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1088,1
    - Dst: col_info_append_class
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1089,1
    - Dst: col_info_append_class
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1094,1
    - Dst: col_append_str
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1097,1
    - Dst: tvb_captured_length
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1099,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 4
    argNames:
    - tvb
    - pinfo
    - tree
    - data
    argTypes:
    - tvbuff_t*
    - packet_info*
    - proto_tree*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 992
    functionDepth: 5
    functionLinenumber: 992
    functionLinenumberEnd: 1100
    functionName: dissect_happp_pdu
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - class_str_from_byte
    - tvb_captured_length
    - msg_type_str_func
    - col_set_str
    - col_info_append_class
    - dissect_happp_handshake_pdu
    - proto_item_add_subtree
    - tvb_get_guint8
    - dissect_happp_msg
    - proto_tree_add_item
    - col_append_str
    - proto_tree_add_uint_format_value
    - control_class_index_from_byte
    - init_class_def_tab
    - tvb_reported_length
    linkageType: ''
    returnType: int
    signature: int dissect_happp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree
      *tree, void *data _U_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcp_dissect_pdus
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1158,1
    - Dst: tvb_captured_length
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - tvb
    - pinfo
    - tree
    - data
    argTypes:
    - tvbuff_t*
    - packet_info*
    - proto_tree*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1162
    functionName: dissect_happp_tcp
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - tvb_captured_length
    - tcp_dissect_pdus
    linkageType: ''
    returnType: int
    signature: int dissect_happp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree
      *tree, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_register_protocol
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1612,1
    - Dst: proto_register_field_array
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1615,1
    - Dst: array_length
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1615,1
    - Dst: proto_register_subtree_array
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1616,1
    - Dst: array_length
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1617
    functionName: proto_register_happp
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - proto_register_field_array
    - proto_register_subtree_array
    - array_length
    - proto_register_protocol
    linkageType: ''
    returnType: void
    signature: void proto_register_happp(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1625,1
    - Dst: tvb_captured_length
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1627,1
    - Dst: tvb_get_guint8
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1630,1
    - Dst: tvb_get_guint8
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1631,1
    - Dst: tvb_get_guint8
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1632,1
    - Dst: tvb_captured_length
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1635,1
    - Dst: tvb_strneql
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1641,1
    - Dst: tvb_get_guint8
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1642,1
    - Dst: find_or_create_conversation
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1646,1
    - Dst: conversation_set_dissector
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1650,1
    - Dst: dissect_happp_tcp
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1651,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - tvb
    - pinfo
    - tree
    - data
    argTypes:
    - tvbuff_t*
    - packet_info*
    - proto_tree*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1654
    functionName: dissect_happp_heur_tcp
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - tvb_captured_length
    - dissect_happp_tcp
    - tvb_get_guint8
    - conversation_set_dissector
    - find_or_create_conversation
    - tvb_strneql
    - strlen
    linkageType: ''
    returnType: gboolean
    signature: gboolean dissect_happp_heur_tcp(tvbuff_t *tvb, packet_info *pinfo,
      proto_tree *tree, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_dissector_handle
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1665,1
    - Dst: heur_dissector_add
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1658
    functionDepth: 0
    functionLinenumber: 1658
    functionLinenumberEnd: 1668
    functionName: proto_reg_handoff_happp
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - create_dissector_handle
    - heur_dissector_add
    linkageType: ''
    returnType: void
    signature: void proto_reg_handoff_happp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto_register_plugin
      Src: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c:1678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1671
    functionDepth: 0
    functionLinenumber: 1671
    functionLinenumberEnd: 1679
    functionName: plugin_register
    functionSourceFile: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    functionUses: 0
    functionsReached:
    - proto_register_plugin
    linkageType: ''
    returnType: void
    signature: void plugin_register(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 77
    functionName: has_zero32
    functionSourceFile: /src/haproxy/admin/halog/fgets2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int has_zero32(unsigned int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: has_zero64
    functionSourceFile: /src/haproxy/admin/halog/fgets2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long has_zero64(unsigned long long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_zero64
      Src: /src/haproxy/admin/halog/fgets2.c:91,1
    - Dst: has_zero32
      Src: /src/haproxy/admin/halog/fgets2.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: has_zero
    functionSourceFile: /src/haproxy/admin/halog/fgets2.c
    functionUses: 0
    functionsReached:
    - has_zero64
    - has_zero32
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long has_zero(unsigned long x)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/haproxy/admin/halog/fgets2.c:103,1
    - Dst: has_zero32
      Src: /src/haproxy/admin/halog/fgets2.c:119,1
    - Dst: has_zero32
      Src: /src/haproxy/admin/halog/fgets2.c:122,1
    - Dst: has_zero32
      Src: /src/haproxy/admin/halog/fgets2.c:125,1
    - Dst: has_zero32
      Src: /src/haproxy/admin/halog/fgets2.c:128,1
    - Dst: has_zero32
      Src: /src/haproxy/admin/halog/fgets2.c:131,1
    - Dst: has_zero32
      Src: /src/haproxy/admin/halog/fgets2.c:134,1
    - Dst: has_zero32
      Src: /src/haproxy/admin/halog/fgets2.c:137,1
    - Dst: has_zero32
      Src: /src/haproxy/admin/halog/fgets2.c:140,1
    - Dst: has_zero32
      Src: /src/haproxy/admin/halog/fgets2.c:156,1
    - Dst: has_zero64
      Src: /src/haproxy/admin/halog/fgets2.c:162,1
    - Dst: has_zero64
      Src: /src/haproxy/admin/halog/fgets2.c:165,1
    - Dst: has_zero64
      Src: /src/haproxy/admin/halog/fgets2.c:168,1
    - Dst: has_zero64
      Src: /src/haproxy/admin/halog/fgets2.c:171,1
    - Dst: has_zero64
      Src: /src/haproxy/admin/halog/fgets2.c:174,1
    - Dst: has_zero64
      Src: /src/haproxy/admin/halog/fgets2.c:177,1
    - Dst: has_zero64
      Src: /src/haproxy/admin/halog/fgets2.c:180,1
    - Dst: has_zero64
      Src: /src/haproxy/admin/halog/fgets2.c:183,1
    - Dst: has_zero32
      Src: /src/haproxy/admin/halog/fgets2.c:189,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 75
    argCount: 2
    argNames:
    - next
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 203
    functionName: find_lf
    functionSourceFile: /src/haproxy/admin/halog/fgets2.c
    functionUses: 0
    functionsReached:
    - memchr
    - has_zero32
    - has_zero64
    linkageType: ''
    returnType: char
    signature: char *find_lf(char *next, char *end)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_lf
      Src: /src/haproxy/admin/halog/fgets2.c:216,1
    - Dst: memmove
      Src: /src/haproxy/admin/halog/fgets2.c:231,1
    - Dst: read
      Src: /src/haproxy/admin/halog/fgets2.c:240,1
    - Dst: fileno
      Src: /src/haproxy/admin/halog/fgets2.c:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - stream
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 255
    functionName: fgets2
    functionSourceFile: /src/haproxy/admin/halog/fgets2.c
    functionUses: 0
    functionsReached:
    - memmove
    - read
    - fileno
    - find_lf
    linkageType: ''
    returnType: char
    signature: char *fgets2(FILE *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fgets2
      Src: /src/haproxy/admin/halog/fgets2.c:262,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/fgets2.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 266
    functionName: main
    functionSourceFile: /src/haproxy/admin/halog/fgets2.c
    functionUses: 33
    functionsReached:
    - fgets2
    - printf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: SEP
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEP(c)
  - 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: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: SKIP_CHAR
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_CHAR(p,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/admin/halog/halog.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - output
    - msg
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 179
    functionName: usage
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 16
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(FILE *output, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/haproxy/admin/halog/halog.c:183,1
    - Dst: exit
      Src: /src/haproxy/admin/halog/halog.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: die
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 10
    functionsReached:
    - exit
    - usage
    linkageType: ''
    returnType: void
    signature: void die(const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/haproxy/admin/halog/halog.c:189,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:190,1
    - Dst: exit
      Src: /src/haproxy/admin/halog/halog.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 234
    functionName: help
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    - usage
    linkageType: ''
    returnType: void
    signature: void help()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 262
    functionName: field_stop
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *field_stop(const char *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: field_stop
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *field_stop(const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: has_zero64
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long has_zero64(unsigned long long x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: has_zero64
      Src: /src/haproxy/admin/halog/halog.c:318,1
    - Dst: has_zero64
      Src: /src/haproxy/admin/halog/halog.c:320,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 2
    argNames:
    - p
    - field
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 386
    functionName: field_start
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - has_zero64
    linkageType: ''
    returnType: char
    signature: char *field_start(const char *p, int field)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fls_auto
      Src: /src/haproxy/admin/halog/halog.c:397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - i
    - bits
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 405
    functionName: quantify_u32
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - fls_auto
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int quantify_u32(unsigned int i, int bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quantify_u32
      Src: /src/haproxy/admin/halog/halog.c:412,1
    - Dst: quantify_u32
      Src: /src/haproxy/admin/halog/halog.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - i
    - bits
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: quantify
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - quantify_u32
    linkageType: ''
    returnType: int
    signature: int quantify(int i, int bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/admin/halog/halog.c:429,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:430,1
    - Dst: fprintf
      Src: /src/haproxy/admin/halog/halog.c:431,1
    - Dst: exit
      Src: /src/haproxy/admin/halog/halog.c:432,1
    - Dst: quantify
      Src: /src/haproxy/admin/halog/halog.c:435,1
    - Dst: eb32i_insert
      Src: /src/haproxy/admin/halog/halog.c:437,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - r
    - alloc
    - v
    argTypes:
    - struct eb_root*
    - struct timer**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 443
    functionName: insert_timer
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - unlikely
    - exit
    - calloc
    - eb32i_insert
    - container_of
    - quantify
    - fprintf
    linkageType: ''
    returnType: struct timer
    signature: struct timer *insert_timer(struct eb_root *r, struct timer **alloc,
      int v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/admin/halog/halog.c:457,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:458,1
    - Dst: fprintf
      Src: /src/haproxy/admin/halog/halog.c:459,1
    - Dst: exit
      Src: /src/haproxy/admin/halog/halog.c:460,1
    - Dst: eb32i_insert
      Src: /src/haproxy/admin/halog/halog.c:465,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - r
    - alloc
    - v
    argTypes:
    - struct eb_root*
    - struct timer**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 471
    functionName: insert_value
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - unlikely
    - exit
    - calloc
    - eb32i_insert
    - container_of
    - fprintf
    linkageType: ''
    returnType: struct timer
    signature: struct timer *insert_value(struct eb_root *r, struct timer **alloc,
      int v)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 500
    functionName: str2ic
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int str2ic(const char *s)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 53
    argCount: 1
    argNames:
    - field
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 570
    functionName: convert_date
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int convert_date(const char *field)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/admin/halog/halog.c:695,1
    - Dst: time
      Src: /src/haproxy/admin/halog/halog.c:704,1
    - Dst: localtime
      Src: /src/haproxy/admin/halog/halog.c:705,1
    - Dst: mktime
      Src: /src/haproxy/admin/halog/halog.c:714,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 134
    argCount: 1
    argNames:
    - field
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 719
    functionName: convert_date_to_timestamp
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - time
    - mktime
    - localtime
    - likely
    linkageType: ''
    returnType: int
    signature: int convert_date_to_timestamp(const char *field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/admin/halog/halog.c:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - linenum
    - line
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 725
    functionName: truncated_line
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void truncated_line(int linenum, const char *line)
  - BBCount: 138
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:752,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:753,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:756,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:758,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:759,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:762,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:764,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:765,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:768,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:770,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:771,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:774,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:776,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:777,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:779,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:781,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:782,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:784,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:786,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:788,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:790,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:792,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:794,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:796,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:798,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:800,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:802,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:804,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:806,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:808,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:810,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:812,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:814,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:815,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:820,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:821,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:826,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:826,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:829,1
    - Dst: strchr
      Src: /src/haproxy/admin/halog/halog.c:836,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:841,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:842,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:844,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:847,1
    - Dst: strchr
      Src: /src/haproxy/admin/halog/halog.c:852,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:853,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:857,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:859,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:861,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:863,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:865,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:867,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:869,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:871,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:873,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:875,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:877,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:879,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:881,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:884,1
    - Dst: strchr
      Src: /src/haproxy/admin/halog/halog.c:889,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:891,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:895,1
    - Dst: atol
      Src: /src/haproxy/admin/halog/halog.c:896,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:899,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:901,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:903,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:905,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:908,1
    - Dst: strcmp
      Src: /src/haproxy/admin/halog/halog.c:908,1
    - Dst: help
      Src: /src/haproxy/admin/halog/halog.c:909,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:915,1
    - Dst: die
      Src: /src/haproxy/admin/halog/halog.c:918,1
    - Dst: posix_fadvise
      Src: /src/haproxy/admin/halog/halog.c:952,1
    - Dst: fgets2
      Src: /src/haproxy/admin/halog/halog.c:960,1
    - Dst: fgets2
      Src: /src/haproxy/admin/halog/halog.c:966,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:978,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:979,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:982,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:984,1
    - Dst: convert_date_to_timestamp
      Src: /src/haproxy/admin/halog/halog.c:996,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1003,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1004,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1005,1
    - Dst: field_stop
      Src: /src/haproxy/admin/halog/halog.c:1010,1
    - Dst: SEP
      Src: /src/haproxy/admin/halog/halog.c:1014,1
    - Dst: SKIP_CHAR
      Src: /src/haproxy/admin/halog/halog.c:1017,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1027,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1028,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1029,1
    - Dst: field_stop
      Src: /src/haproxy/admin/halog/halog.c:1034,1
    - Dst: SEP
      Src: /src/haproxy/admin/halog/halog.c:1039,1
    - Dst: str2ic
      Src: /src/haproxy/admin/halog/halog.c:1040,1
    - Dst: SKIP_CHAR
      Src: /src/haproxy/admin/halog/halog.c:1046,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1049,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1060,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1062,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1064,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1065,1
    - Dst: str2ic
      Src: /src/haproxy/admin/halog/halog.c:1069,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1080,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1082,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1084,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1085,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1109,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1111,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1113,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1114,1
    - Dst: filter_count_ip
      Src: /src/haproxy/admin/halog/halog.c:1130,1
    - Dst: filter_extract_capture
      Src: /src/haproxy/admin/halog/halog.c:1132,1
    - Dst: line_filter
      Src: /src/haproxy/admin/halog/halog.c:1134,1
    - Dst: free
      Src: /src/haproxy/admin/halog/halog.c:1150,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1153,1
    - Dst: exit
      Src: /src/haproxy/admin/halog/halog.c:1154,1
    - Dst: eb32_first
      Src: /src/haproxy/admin/halog/halog.c:1161,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1168,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1177,1
    - Dst: eb32_next
      Src: /src/haproxy/admin/halog/halog.c:1182,1
    - Dst: eb32_first
      Src: /src/haproxy/admin/halog/halog.c:1190,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1196,1
    - Dst: fls_auto
      Src: /src/haproxy/admin/halog/halog.c:1201,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1209,1
    - Dst: eb32_next
      Src: /src/haproxy/admin/halog/halog.c:1211,1
    - Dst: eb32_first
      Src: /src/haproxy/admin/halog/halog.c:1228,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1229,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1235,1
    - Dst: eb32_next
      Src: /src/haproxy/admin/halog/halog.c:1240,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1244,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1248,1
    - Dst: putchar
      Src: /src/haproxy/admin/halog/halog.c:1250,1
    - Dst: eb32_first
      Src: /src/haproxy/admin/halog/halog.c:1261,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1263,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1264,1
    - Dst: eb32_next
      Src: /src/haproxy/admin/halog/halog.c:1268,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1275,1
    - Dst: ebmb_first
      Src: /src/haproxy/admin/halog/halog.c:1277,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1281,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1287,1
    - Dst: ebmb_next
      Src: /src/haproxy/admin/halog/halog.c:1293,1
    - Dst: eb32_first
      Src: /src/haproxy/admin/halog/halog.c:1301,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1303,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1304,1
    - Dst: eb32_next
      Src: /src/haproxy/admin/halog/halog.c:1308,1
    - Dst: eb_first
      Src: /src/haproxy/admin/halog/halog.c:1320,1
    - Dst: eb_next
      Src: /src/haproxy/admin/halog/halog.c:1321,1
    - Dst: eb_delete
      Src: /src/haproxy/admin/halog/halog.c:1322,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1324,1
    - Dst: eb64_insert
      Src: /src/haproxy/admin/halog/halog.c:1345,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1352,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1354,1
    - Dst: eb_last
      Src: /src/haproxy/admin/halog/halog.c:1357,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1359,1
    - Dst: printf
      Src: /src/haproxy/admin/halog/halog.c:1360,1
    - Dst: eb_prev
      Src: /src/haproxy/admin/halog/halog.c:1371,1
    - Dst: fprintf
      Src: /src/haproxy/admin/halog/halog.c:1380,1
    - Dst: exit
      Src: /src/haproxy/admin/halog/halog.c:1382,1
    CyclomaticComplexity: 203
    EdgeCount: 203
    ICount: 497
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 1383
    functionName: main
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 33
    functionsReached:
    - unlikely
    - eb_delete
    - filter_count_ip
    - eb_prev
    - exit
    - printf
    - free
    - eb32_next
    - eb_next
    - fls_auto
    - field_stop
    - help
    - atol
    - strcmp
    - strchr
    - container_of
    - ebmb_next
    - line_filter
    - eb64_insert
    - putchar
    - truncated_line
    - str2ic
    - posix_fadvise
    - die
    - SKIP_CHAR
    - ebmb_first
    - convert_date_to_timestamp
    - field_start
    - fgets2
    - SEP
    - eb_first
    - eb_last
    - fprintf
    - eb32_first
    - filter_extract_capture
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/haproxy/admin/halog/halog.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - accept_field
    - time_field
    - tptr
    argTypes:
    - char*
    - char*
    - struct timer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1385
    functionDepth: 0
    functionLinenumber: 1385
    functionLinenumberEnd: 1389
    functionName: filter_output_line
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - puts
    linkageType: ''
    returnType: void
    signature: void filter_output_line(const char *accept_field, const char *time_field,
      struct timer **tptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1396,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1398,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1407,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1410,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1411,1
    - Dst: puts
      Src: /src/haproxy/admin/halog/halog.c:1417,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1433,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1434,1
    - Dst: puts
      Src: /src/haproxy/admin/halog/halog.c:1439,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1454,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1455,1
    - Dst: fwrite
      Src: /src/haproxy/admin/halog/halog.c:1459,1
    - Dst: putchar
      Src: /src/haproxy/admin/halog/halog.c:1460,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 4
    argNames:
    - accept_field
    - time_field
    - block
    - field
    argTypes:
    - char*
    - char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1462
    functionName: filter_extract_capture
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 1
    functionsReached:
    - unlikely
    - putchar
    - truncated_line
    - puts
    - fwrite
    - field_start
    linkageType: ''
    returnType: void
    signature: void filter_extract_capture(const char *accept_field, const char *time_field,
      unsigned int block, unsigned int field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: convert_date
      Src: /src/haproxy/admin/halog/halog.c:1469,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1470,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1471,1
    - Dst: insert_value
      Src: /src/haproxy/admin/halog/halog.c:1475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - accept_field
    - time_field
    - tptr
    argTypes:
    - char*
    - char*
    - struct timer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1464
    functionDepth: 3
    functionLinenumber: 1464
    functionLinenumberEnd: 1478
    functionName: filter_accept_holes
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - unlikely
    - insert_value
    - convert_date
    - truncated_line
    linkageType: ''
    returnType: void
    signature: void filter_accept_holes(const char *accept_field, const char *time_field,
      struct timer **tptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1487,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1489,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1491,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1492,1
    - Dst: str2ic
      Src: /src/haproxy/admin/halog/halog.c:1496,1
    - Dst: insert_value
      Src: /src/haproxy/admin/halog/halog.c:1498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - accept_field
    - time_field
    - tptr
    argTypes:
    - char*
    - char*
    - struct timer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1480
    functionDepth: 3
    functionLinenumber: 1480
    functionLinenumberEnd: 1500
    functionName: filter_count_status
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - unlikely
    - insert_value
    - str2ic
    - truncated_line
    - field_start
    linkageType: ''
    returnType: void
    signature: void filter_count_status(const char *accept_field, const char *time_field,
      struct timer **tptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1509,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1511,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1513,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1514,1
    - Dst: insert_value
      Src: /src/haproxy/admin/halog/halog.c:1520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - accept_field
    - time_field
    - tptr
    argTypes:
    - char*
    - char*
    - struct timer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1502
    functionDepth: 3
    functionLinenumber: 1502
    functionLinenumberEnd: 1522
    functionName: filter_count_cook_codes
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - unlikely
    - insert_value
    - field_start
    - truncated_line
    linkageType: ''
    returnType: void
    signature: void filter_count_cook_codes(const char *accept_field, const char *time_field,
      struct timer **tptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1531,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1533,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1535,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1536,1
    - Dst: insert_value
      Src: /src/haproxy/admin/halog/halog.c:1542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - accept_field
    - time_field
    - tptr
    argTypes:
    - char*
    - char*
    - struct timer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1524
    functionDepth: 3
    functionLinenumber: 1524
    functionLinenumberEnd: 1544
    functionName: filter_count_term_codes
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - unlikely
    - insert_value
    - field_start
    - truncated_line
    linkageType: ''
    returnType: void
    signature: void filter_count_term_codes(const char *accept_field, const char *time_field,
      struct timer **tptr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1557,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1558,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1559,1
    - Dst: field_stop
      Src: /src/haproxy/admin/halog/halog.c:1563,1
    - Dst: ebst_lookup_len
      Src: /src/haproxy/admin/halog/halog.c:1568,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1569,1
    - Dst: calloc
      Src: /src/haproxy/admin/halog/halog.c:1573,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1574,1
    - Dst: fprintf
      Src: /src/haproxy/admin/halog/halog.c:1575,1
    - Dst: exit
      Src: /src/haproxy/admin/halog/halog.c:1576,1
    - Dst: memcpy
      Src: /src/haproxy/admin/halog/halog.c:1579,1
    - Dst: ebst_insert
      Src: /src/haproxy/admin/halog/halog.c:1581,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1586,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1587,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1588,1
    - Dst: field_stop
      Src: /src/haproxy/admin/halog/halog.c:1593,1
    - Dst: SEP
      Src: /src/haproxy/admin/halog/halog.c:1599,1
    - Dst: str2ic
      Src: /src/haproxy/admin/halog/halog.c:1600,1
    - Dst: SKIP_CHAR
      Src: /src/haproxy/admin/halog/halog.c:1607,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1610,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1632,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1633,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1634,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 3
    argNames:
    - accept_field
    - time_field
    - tptr
    argTypes:
    - char*
    - char*
    - struct timer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1546
    functionDepth: 3
    functionLinenumber: 1546
    functionLinenumberEnd: 1643
    functionName: filter_count_srv_status
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - unlikely
    - field_stop
    - SEP
    - exit
    - memcpy
    - calloc
    - container_of
    - truncated_line
    - ebst_insert
    - str2ic
    - SKIP_CHAR
    - fprintf
    - ebst_lookup_len
    - field_start
    linkageType: ''
    returnType: void
    signature: void filter_count_srv_status(const char *accept_field, const char *time_field,
      struct timer **tptr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1655,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1656,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1657,1
    - Dst: SEP
      Src: /src/haproxy/admin/halog/halog.c:1666,1
    - Dst: str2ic
      Src: /src/haproxy/admin/halog/halog.c:1667,1
    - Dst: SKIP_CHAR
      Src: /src/haproxy/admin/halog/halog.c:1674,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1685,1
    - Dst: calloc
      Src: /src/haproxy/admin/halog/halog.c:1686,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1687,1
    - Dst: fprintf
      Src: /src/haproxy/admin/halog/halog.c:1688,1
    - Dst: exit
      Src: /src/haproxy/admin/halog/halog.c:1689,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1699,1
    - Dst: str2ic
      Src: /src/haproxy/admin/halog/halog.c:1700,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1708,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1713,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1716,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1717,1
    - Dst: free
      Src: /src/haproxy/admin/halog/halog.c:1718,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1722,1
    - Dst: ebis_insert
      Src: /src/haproxy/admin/halog/halog.c:1743,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1748,1
    - Dst: strdup
      Src: /src/haproxy/admin/halog/halog.c:1755,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 3
    argNames:
    - accept_field
    - time_field
    - tptr
    argTypes:
    - char*
    - char*
    - struct timer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1645
    functionDepth: 3
    functionLinenumber: 1645
    functionLinenumberEnd: 1758
    functionName: filter_count_url
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - unlikely
    - SEP
    - exit
    - ebis_insert
    - calloc
    - free
    - str2ic
    - truncated_line
    - container_of
    - SKIP_CHAR
    - fprintf
    - field_start
    - strdup
    linkageType: ''
    returnType: void
    signature: void filter_count_url(const char *accept_field, const char *time_field,
      struct timer **tptr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1770,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1771,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1772,1
    - Dst: SEP
      Src: /src/haproxy/admin/halog/halog.c:1781,1
    - Dst: str2ic
      Src: /src/haproxy/admin/halog/halog.c:1783,1
    - Dst: SKIP_CHAR
      Src: /src/haproxy/admin/halog/halog.c:1791,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1802,1
    - Dst: calloc
      Src: /src/haproxy/admin/halog/halog.c:1803,1
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1812,1
    - Dst: str2ic
      Src: /src/haproxy/admin/halog/halog.c:1813,1
    - Dst: field_stop
      Src: /src/haproxy/admin/halog/halog.c:1820,1
    - Dst: ebis_insert
      Src: /src/haproxy/admin/halog/halog.c:1832,1
    - Dst: container_of
      Src: /src/haproxy/admin/halog/halog.c:1837,1
    - Dst: strdup
      Src: /src/haproxy/admin/halog/halog.c:1844,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 4
    argNames:
    - source_field
    - accept_field
    - time_field
    - tptr
    argTypes:
    - char*
    - char*
    - char*
    - struct timer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1760
    functionDepth: 2
    functionLinenumber: 1760
    functionLinenumberEnd: 1847
    functionName: filter_count_ip
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 1
    functionsReached:
    - unlikely
    - field_stop
    - SEP
    - ebis_insert
    - calloc
    - container_of
    - str2ic
    - truncated_line
    - SKIP_CHAR
    - field_start
    - strdup
    linkageType: ''
    returnType: void
    signature: void filter_count_ip(const char *source_field, const char *accept_field,
      const char *time_field, struct timer **tptr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: field_start
      Src: /src/haproxy/admin/halog/halog.c:1856,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1857,1
    - Dst: truncated_line
      Src: /src/haproxy/admin/halog/halog.c:1858,1
    - Dst: field_stop
      Src: /src/haproxy/admin/halog/halog.c:1863,1
    - Dst: SEP
      Src: /src/haproxy/admin/halog/halog.c:1869,1
    - Dst: str2ic
      Src: /src/haproxy/admin/halog/halog.c:1870,1
    - Dst: SKIP_CHAR
      Src: /src/haproxy/admin/halog/halog.c:1877,1
    - Dst: unlikely
      Src: /src/haproxy/admin/halog/halog.c:1880,1
    - Dst: insert_timer
      Src: /src/haproxy/admin/halog/halog.c:1897,1
    - Dst: insert_timer
      Src: /src/haproxy/admin/halog/halog.c:1902,1
    - Dst: insert_timer
      Src: /src/haproxy/admin/halog/halog.c:1903,1
    - Dst: insert_timer
      Src: /src/haproxy/admin/halog/halog.c:1904,1
    - Dst: fprintf
      Src: /src/haproxy/admin/halog/halog.c:1908,1
    - Dst: insert_timer
      Src: /src/haproxy/admin/halog/halog.c:1910,1
    - Dst: insert_value
      Src: /src/haproxy/admin/halog/halog.c:1917,1
    - Dst: insert_value
      Src: /src/haproxy/admin/halog/halog.c:1922,1
    - Dst: insert_value
      Src: /src/haproxy/admin/halog/halog.c:1923,1
    - Dst: insert_value
      Src: /src/haproxy/admin/halog/halog.c:1924,1
    - Dst: fprintf
      Src: /src/haproxy/admin/halog/halog.c:1928,1
    - Dst: insert_value
      Src: /src/haproxy/admin/halog/halog.c:1930,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 3
    argNames:
    - accept_field
    - time_field
    - tptr
    argTypes:
    - char*
    - char*
    - struct timer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1849
    functionDepth: 4
    functionLinenumber: 1849
    functionLinenumberEnd: 1934
    functionName: filter_graphs
    functionSourceFile: /src/haproxy/admin/halog/halog.c
    functionUses: 0
    functionsReached:
    - unlikely
    - field_stop
    - insert_value
    - SEP
    - truncated_line
    - str2ic
    - SKIP_CHAR
    - fprintf
    - insert_timer
    - field_start
    linkageType: ''
    returnType: void
    signature: void filter_graphs(const char *accept_field, const char *time_field,
      struct timer **tptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:24,1
    - Dst: vfprintf
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:25,1
    - Dst: va_end
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:26,1
    - Dst: exit
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - code
    - format
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: die
    functionSourceFile: /src/haproxy/admin/dyncookie/dyncookie.c
    functionUses: 11
    functionsReached:
    - va_end
    - va_start
    - vfprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void die(int code, const char *format, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:38,1
    - Dst: strlen
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:40,1
    - Dst: realloc
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:41,1
    - Dst: strdup
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:41,1
    - Dst: die
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:43,1
    - Dst: inet_pton
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:45,1
    - Dst: inet_pton
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:47,1
    - Dst: die
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:50,1
    - Dst: htonl
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:52,1
    - Dst: atoi
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:52,1
    - Dst: memcpy
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:53,1
    - Dst: printf
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:54,1
    - Dst: XXH64
      Src: /src/haproxy/admin/dyncookie/dyncookie.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 56
    functionName: main
    functionSourceFile: /src/haproxy/admin/dyncookie/dyncookie.c
    functionUses: 33
    functionsReached:
    - memcpy
    - printf
    - strlen
    - realloc
    - die
    - atoi
    - htonl
    - strdup
    - XXH64
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
Fuzzer filename: /src/fuzz_h1_parse.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- getopt.h
- haproxy/sock.h
- haproxy/connection.h
- haproxy/quic_ack-t.h
- haproxy/extcheck.h
- haproxy/ring.h
- vsub.h
- pcre2posix.h
- haproxy/cfgdiag.h
- haproxy/spoe-t.h
- haproxy/h3_stats.h
- stddef.h
- haproxy/quic_pacing.h
- haproxy/quic_retry.h
- filter.h
- promex/promex.h
- sys/event.h
- haproxy/mworker-t.h
- altivec.h
- haproxy/time.h
- cebs_tree.h
- haproxy/time-t.h
- haproxy/proto_uxst.h
- haproxy/cfgcond-t.h
- pcreposix.h
- haproxy/sock-t.h
- haproxy/quic_retransmit.h
- haproxy/session.h
- import/ebpttree.h
- _ceb_blk.c
- haproxy/qpack-enc.h
- event.h
- grp.h
- haproxy/mux_fcgi-t.h
- hash/hash.h
- haproxy/net_helper.h
- haproxy/cfgcond.h
- math.h
- haproxy/pool-os.h
- haproxy/map.h
- haproxy/api-t.h
- haproxy/http-hdr.h
- teken_state.h
- haproxy/arg-t.h
- haproxy/quic_frame.h
- mach/mach_types.h
- cebtree-prv.h
- haproxy/obj_type.h
- openssl/param_build.h
- haproxy/resolvers-t.h
- haproxy/mux_quic_priv.h
- haproxy/proto_sockpair.h
- import/mjson.h
- linux/types.h
- haproxy/qpack-dec.h
- cebis_tree.h
- openssl/evp.h
- ../src/hpack-huff.c
- import/cebs_tree.h
- tbl/h2_error.h
- haproxy/pool-t.h
- haproxy/shctx-t.h
- pcre.h
- haproxy/hpack-dec.h
- execinfo.h
- haproxy/ticks.h
- openssl/base.h
- sys/ioctl.h
- netinet/in_systm.h
- haproxy/obj_type-t.h
- haproxy/sock_inet.h
- netlink/cache.h
- import/eb64tree.h
- netinet/udp.h
- haproxy/sample.h
- errno.h
- vsb.h
- haproxy/check.h
- haproxy/compiler.h
- haproxy/ssl_ckch-t.h
- haproxy/http_client-t.h
- epan/strutil.h
- http.h
- ebimtree.h
- haproxy/htx-t.h
- haproxy/xxhash.h
- haproxy/intops.h
- haproxy/applet.h
- haproxy/namespace.h
- eb64tree.h
- malloc.h
- haproxy/thread-t.h
- pcre2.h
- haproxy/task.h
- sys/epoll.h
- haproxy/quic_tx.h
- parser.h
- vcli.h
- haproxy/acl-t.h
- haproxy/hpack-enc.h
- ceba_tree.h
- haproxy/protocol-t.h
- haproxy/ssl_crtlist.h
- haproxy/chunk.h
- haproxy/ech.h
- haproxy/tinfo-t.h
- ctype.h
- haproxy/istbuf.h
- haproxy/freq_ctr-t.h
- haproxy/lb_ss-t.h
- pool.h
- strings.h
- haproxy/proto_udp.h
- haproxy/fix-t.h
- haproxy/hstream-t.h
- vqueue.h
- epan/prefs.h
- ../../src/hpack-tbl.c
- haproxy/quic_ssl.h
- haproxy/quic_frame-t.h
- haproxy/fcgi-app.h
- haproxy/stconn.h
- haproxy/hpack-huff.h
- _ceb_addr.c
- port.h
- vct.h
- vtc_h2_dectbl.h
- netlink/route/qdisc/plug.h
- lua.h
- vas.h
- openssl/bn.h
- mt_list.h
- haproxy/tcpcheck-t.h
- mach/thread_act.h
- unistd.h
- mmintrin.h
- haproxy/quic_token.h
- haproxy/quic_openssl_compat.h
- stdbool.h
- haproxy/auth.h
- haproxy/event_hdl-t.h
- haproxy/tinfo.h
- config.h
- vrnd.h
- haproxy/dgram-t.h
- haproxy/backend-t.h
- haproxy/channel-t.h
- haproxy/cpu_topo.h
- openssl/hmac.h
- haproxy/check-t.h
- linux/netfilter_ipv4.h
- debug.h
- haproxy/action.h
- libunwind.h
- vtc_http.h
- import/mt_list.h
- haproxy/quic_ack.h
- openssl/ech.h
- vapi/vsc.h
- haproxy/cfgparse.h
- netlink/cli/tc.h
- inttypes.h
- haproxy/sc_strm.h
- haproxy/queue-t.h
- haproxy/mqtt.h
- haproxy/jws.h
- haproxy/trace-t.h
- haproxy/quic_rx.h
- locale.h
- haproxy/systemd.h
- poll.h
- haproxy/quic_utils-t.h
- fnmatch.h
- openssl/err.h
- haproxy/quic_sock-t.h
- haproxy/stats-t.h
- haproxy/stress.h
- vtc_h2_priv.h
- opentracing-c-wrapper/include.h
- ceb32_tree.h
- define.h
- haproxy/proxy-t.h
- haproxy/clock.h
- haproxy/qcm_http.h
- haproxy/capture.h
- haproxy/lb_chash-t.h
- haproxy/cpuset-t.h
- util.h
- vdef.h
- s390intrin.h
- haproxy/hpack-tbl.h
- haproxy/lb_map-t.h
- haproxy/quic_tune.h
- haproxy/ncbuf-t.h
- haproxy/jwt-t.h
- haproxy/acme_resolvers-t.h
- 51Degrees.h
- intrin.h
- haproxy/xref.h
- miniobj.h
- haproxy/api.h
- group.h
- haproxy/stream.h
- haproxy/hlua_fcn.h
- sys/_cpuset.h
- vtcp.h
- haproxy/action-t.h
- import/eb32sctree.h
- haproxy/dns.h
- import/xxhash.h
- vfl.h
- haproxy/compat.h
- haproxy/quic_fctl-t.h
- vapi/vsm.h
- haproxy/pattern-t.h
- vss.h
- openssl/decoder.h
- immintrin.h
- haproxy/channel.h
- haproxy/quic_cid.h
- vnum.h
- net/if.h
- conf.h
- openssl/rsa.h
- import/slz-tables.h
- haproxy/http_ext.h
- haproxy/init.h
- haproxy/pipe-t.h
- haproxy/port_range-t.h
- haproxy/buf.h
- haproxy/stats-html.h
- setjmp.h
- haproxy/http.h
- haproxy/ncbuf.h
- haproxy/hlua-t.h
- sched.h
- openssl/crypto.h
- ../src/hpack-dec.c
- haproxy/quic_loss.h
- sys/resource.h
- haproxy/dns_ring-t.h
- haproxy/linuxcap.h
- haproxy/uri_auth-t.h
- haproxy/lb_fas.h
- openssl/core_names.h
- haproxy/lb_fas-t.h
- teken_scs.h
- haproxy/connection-t.h
- wurfl/wurfl.h
- haproxy/vars-t.h
- haproxy/http_rules.h
- haproxy/pattern.h
- haproxy/qcm_trace.h
- haproxy/quic_rules.h
- epan/conversation.h
- haproxy/vars.h
- haproxy/ssl_ckch.h
- haproxy/mpring.h
- haproxy/quic_stream.h
- haproxy/cpu_topo-t.h
- haproxy/stick_table-t.h
- zlib.h
- netlink/cli/utils.h
- haproxy/qcm_qmux.h
- haproxy/pipe.h
- sys/select.h
- haproxy/acme-t.h
- haproxy/compression-t.h
- haproxy/auth-t.h
- haproxy/bug.h
- haproxy/proto_rhttp.h
- lualib.h
- _ceb_str.c
- _ceb_int.c
- haproxy/show_flags-t.h
- haproxy/h2.h
- ../src/hpack-tbl.c
- haproxy/signal.h
- linux/capability.h
- openssl/ssl.h
- netlink/cli/qdisc.h
- vsa.h
- sys/statvfs.h
- cli.h
- cebtree.h
- haproxy/ncbmbuf-t.h
- haproxy/counters-t.h
- crypt.h
- syslog.h
- linux/tls.h
- haproxy/peers-t.h
- haproxy/stats-proxy.h
- openssl/ocsp.h
- haproxy/guid-t.h
- import/ebistree.h
- haproxy/global.h
- vapi/vsig.h
- haproxy/log-t.h
- epan/tvbuff.h
- haproxy/init-t.h
- haproxy/map-t.h
- stdint.h
- haproxy/quic_cc-t.h
- haproxy/listener.h
- vus.h
- haproxy/namespace-t.h
- netinet/in.h
- vtest_api.h
- import/lru.h
- dac.h
- sys/uio.h
- haproxy/quic_sock.h
- ceb64_tree.h
- sys/stat.h
- haproxy/lb_ss.h
- haproxy/capture-t.h
- sys/cpuset.h
- limits.h
- import/ebsttree.h
- haproxy/ssl_trace.h
- haproxy/listener-t.h
- sys/param.h
- haproxy/sink.h
- haproxy/version.h
- import/ceb32_tree.h
- openssl/kdf.h
- signal.h
- haproxy/h1_htx.h
- haproxy/list.h
- haproxy/flt_http_comp.h
- haproxy/debug.h
- haproxy/ssl_sock.h
- haproxy/event_hdl.h
- haproxy/lb_fwrr-t.h
- ebtree.h
- ebmbtree.h
- haproxy/fd-t.h
- hpack.h
- sys/exec_elf.h
- haproxy/stick_table.h
- dirent.h
- pthread_np.h
- netlink/cli/link.h
- openssl/hkdf.h
- haproxy/lb_fwlc-t.h
- haproxy/http_ana-t.h
- haproxy/mux_quic.h
- haproxy/queue.h
- haproxy/vecpair.h
- ws_version.h
- haproxy/quic_tune-t.h
- arm_sve.h
- haproxy/hpack-tbl-t.h
- sys/personality.h
- vtim.h
- haproxy/ssl_ocsp-t.h
- haproxy/cpuset.h
- haproxy/lb_fwlc.h
- stropts.h
- haproxy/quic_cc_hystart.h
- fcntl.h
- haproxy/ssl_crtlist-t.h
- sys/auxv.h
- time.h
- haproxy/ssl_gencert.h
- haproxy/tcp_rules.h
- haproxy/base64.h
- malloc_np.h
- haproxy/filters-t.h
- sys/mman.h
- haproxy/resolvers.h
- haproxy/acl.h
- haproxy/quic_pacing-t.h
- haproxy/list-t.h
- teken_wcwidth.h
- haproxy/mux_h1-t.h
- arm_neon.h
- haproxy/lb_fwrr.h
- haproxy/counters.h
- haproxy/ssl_utils.h
- openssl/provider.h
- haproxy/peers.h
- import/slz.h
- haproxy/stats.h
- haproxy/acme.h
- haproxy/http-t.h
- haproxy/xprt_qmux.h
- haproxy/stats-file.h
- haproxy/lb_map.h
- haproxy/quic_conn-t.h
- haproxy/dict.h
- fiftyone.h
- haproxy/openssl-compat.h
- haproxy/quic_conn.h
- haproxy/quic_ssl-t.h
- hash/fiftyone.h
- haproxy/mux_spop-t.h
- haproxy/errors.h
- haproxy/http_client.h
- ebpttree.h
- scope.h
- haproxy/tools-t.h
- haproxy/proxy.h
- regex.h
- haproxy/uri_normalizer-t.h
- haproxy/filters.h
- cebl_tree.h
- haproxy/quic_trace.h
- import/cebtree-prv.h
- mach/thread_policy.h
- haproxy/stconn-t.h
- haproxy/dns_ring.h
- haproxy/guid.h
- haproxy/dict-t.h
- opentracing.h
- haproxy/quic_trace-t.h
- haproxy/http-hdr-t.h
- haproxy/mailers-t.h
- tbl/h2_settings.h
- haproxy/backend.h
- import/ceb64_tree.h
- haproxy/hash.h
- haproxy/server.h
- vars.h
- haproxy/dgram.h
- haproxy/ssl_sock-t.h
- haproxy/proto_quic.h
- stdatomic.h
- openssl/x509.h
- haproxy/arg.h
- haproxy/server-t.h
- sys/socket.h
- haproxy/quic_loss-t.h
- assert.h
- haproxy/h3.h
- import/ebimtree.h
- arpa/inet.h
- vudp.h
- haproxy/dns-t.h
- import/ist.h
- haproxy/quic_rx-t.h
- haproxy/activity-t.h
- sys/prctl.h
- stdio.h
- vtc_h2_stattbl.h
- haproxy/http_htx.h
- sys/procctl.h
- haproxy/qpack-tbl-t.h
- haproxy/quic_openssl_compat-t.h
- haproxy/htx.h
- haproxy/mworker.h
- haproxy/quic_stats-t.h
- haproxy/quic_enc.h
- haproxy/applet-t.h
- sys/wait.h
- haproxy/shctx.h
- haproxy/jwt.h
- sys/file.h
- haproxy/mqtt-t.h
- haproxy/sink-t.h
- vre.h
- haproxy/ncbuf_common-t.h
- haproxy/protobuf-t.h
- epan/packet.h
- haproxy/http_fetch.h
- sys/un.h
- cebb_tree.h
- haproxy/global-t.h
- vbh.h
- haproxy/cli.h
- netinet/ip.h
- syscall.h
- vlu.h
- zconf.h
- haproxy/receiver-t.h
- haproxy/initcall.h
- haproxy/defaults.h
- malloc/malloc.h
- vapi/vsl.h
- haproxy/proto_rhttp-t.h
- haproxy/thread.h
- elf.h
- haproxy/ssl_ocsp.h
- printf.h
- haproxy/quic_tls.h
- haproxy/fd.h
- haproxy/lb_chash.h
- haproxy/fcgi.h
- linux/magic.h
- haproxy/regex-t.h
- haproxy/quic_stream-t.h
- hash.h
- haproxy/quic_cc.h
- haproxy/sample-t.h
- haproxy/tools.h
- lauxlib.h
- haproxy/quic_tx-t.h
- haproxy/signal-t.h
- haproxy/fcgi-app-t.h
- haproxy/activity.h
- link.h
- teken_subr.h
- haproxy/dynbuf-t.h
- haproxy/xref-t.h
- sys/filio.h
- haproxy/mux_quic-t.h
- import/sha1.h
- haproxy/quic_utils.h
- import/ebtree-t.h
- haproxy/sock_unix.h
- haproxy/ring-t.h
- haproxy/pool.h
- haproxy/window_filter.h
- ../include/include.h
- float.h
- sys/vfs.h
- haproxy/quic_cc_drs.h
- haproxy/hlua.h
- cebib_tree.h
- haproxy/limits.h
- haproxy/atomic.h
- haproxy/compression.h
- termios.h
- netinet/ip6.h
- haproxy/tcpcheck.h
- import/ebtree.h
- haproxy/hq_interop.h
- import/ebmbtree.h
- haproxy/acme_resolvers.h
- openssl/chacha.h
- haproxy/quic_cid-t.h
- vre_pcre2.h
- haproxy/sample_data-t.h
- haproxy/protocol.h
- mach/mach_time.h
- sys/time.h
- haproxy/freq_ctr.h
- linux/netfilter_ipv6.h
- openssl/engine.h
- vfil.h
- haproxy/quic_cli-t.h
- sys/types.h
- haproxy/session-t.h
- openssl/async.h
- import/plock.h
- openssl/rand.h
- haproxy/cli-t.h
- haproxy/stats-file-t.h
- haproxy/trace.h
- haproxy/quic_tp.h
- pthread.h
- haproxy/task-t.h
- haproxy/quic_stats.h
- epan/to_str.h
- haproxy/proto_tcp.h
- haproxy/regex.h
- haproxy/hstream.h
- vbt.h
- haproxy/mailers.h
- haproxy/quic_tls-t.h
- haproxy/frontend.h
- tbl/vsig_list.h
- epan/dissectors/packet-tcp.h
- atomic-ops.h
- ../src/qpack-tbl.c
- ../src/qpack-dec.c
- haproxy/fix.h
- haproxy/dynbuf.h
- dlfcn.h
- import/cebtree.h
- haproxy/stats-html-t.h
- haproxy/log.h
- vev.h
- vtc_log.h
- import/eb32tree.h
- cmds.h
- stdlib.h
- vtc.h
- netdb.h
- import/cebis_tree.h
- stdalign.h
- haproxy/ncbmbuf.h
- vgz.h
- haproxy/mux_h2-t.h
- eb32tree.h
- openssl/x509v3.h
- haproxy/buf-t.h
- haproxy/spoe.h
- haproxy/h1.h
- pwd.h
- haproxy/stats-json.h
- string.h
- teken_subr_compat.h
- teken.h
- haproxy/payload.h
- netinet/tcp.h
- vav.h
- wolfssl/options.h
- haproxy/uri_auth.h
- sys/utsname.h
- haproxy/quic_fctl.h
- haproxy/uri_normalizer.h
- vend.h
- sys/sysctl.h
- stdarg.h
- emmintrin.h
- vpf.h
- haproxy/qpack-tbl.h
- haproxy/qpack-t.h
- haproxy/protobuf.h
- haproxy/h3_stats-t.h
- tbl/h2_frames.h
- haproxy/port_range.h
- haproxy/http_ana.h
- haproxy/http_ext-t.h
- haproxy/stream-t.h
- haproxy/quic_tp-t.h
- vjsn.h
- openssl/dh.h
- haproxy/http_htx-t.h
report: name
sources:
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/fuzz_h1_parse.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HDR_NUM
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/fuzz_h1_parse.c
      type_or_value: '101'
    structs: []
    typedefs: []
    union: []
- function_names:
  - debug_hexdump
  - LLVMFuzzerTestOneInput
  source_file: /src/fuzz_hpack_decode.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_RQ_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/fuzz_hpack_decode.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: MAX_HDR_NUM
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/fuzz_hpack_decode.c
      type_or_value: '1000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/fuzz_cfg_parser.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUZZ_TRASH_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/fuzz_cfg_parser.c
      type_or_value: '65536'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/fuzz_h1_htx.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HDR_NUM
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/fuzz_h1_htx.c
      type_or_value: '101'
    - item_type: preproc_def
      name: HTX_BUF_SIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/fuzz_h1_htx.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: TRASH_BUF_SIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/fuzz_h1_htx.c
      type_or_value: '65536'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fuzz_consume_byte
  - fuzz_uri_parsing
  - fuzz_content_length
  - fuzz_cookie_parsing
  - fuzz_header_parsing
  - fuzz_misc
  - fuzz_url_params
  - fuzz_cookie_value_end
  - LLVMFuzzerTestOneInput
  source_file: /src/fuzz_http.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_CLOCK_GETTIME
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/VTest2/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NANOSLEEP
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/VTest2/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WITH_ZLIB
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/VTest2/config.h
      type_or_value: "1\t// otherwise use vgz + libvarnish"
    - item_type: preproc_def
      name: _GNU_SOURCE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/VTest2/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_VFS_H
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/VTest2/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FALLOCATE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/VTest2/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STATVFS_H
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/VTest2/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_MOUNT_H
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/VTest2/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_CLOSEFROM
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/VTest2/config.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - vtc_hex_to_bin
  - vtc_expect
  - vtc_wait4
  - vtc_record
  source_file: /src/VTest2/src/vtc_subr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/cmds.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - varnish_fatal_cleanup
  - varnish_fatal
  - varnish_ask_cli
  - wait_stopped
  - wait_running
  - varnishlog_thread
  - varnish_new
  - varnish_delete
  - varnish_thread
  - varnish_launch
  - VARNISH_LAUNCH
  - varnish_listen
  - varnish_start
  - varnish_stop
  - varnish_cleanup
  - varnish_wait
  - varnish_cli_json
  - varnish_cli
  - varnish_vcl
  - varnish_vclbackend
  - do_stat_dump_cb
  - varnish_vsc
  - stat_match
  - do_expect_cb
  - varnish_expect
  - vsl_catchup
  - cmd_varnish
  source_file: /src/VTest2/src/vtc_varnish.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VARNISH_MAGIC
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/VTest2/src/vtc_varnish.c
      type_or_value: '0x208cd8e3'
    - item_type: preproc_def
      name: NONSENSE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/VTest2/src/vtc_varnish.c
      type_or_value: '"%XJEIFLH|)Xspa8P"'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*name'
        type: char
      - name: '*vl'
        type: struct vtclog
      - name: (varnish)
        type: VTAILQ_ENTRY
      - name: '*args'
        type: struct vsb
      - name: fds[4]
        type: int
      - name: pid
        type: pid_t
      - name: syntax
        type: double
      - name: tp
        type: pthread_t
      - name: tp_vsl
        type: pthread_t
      - name: tp_started
        type: int
      - name: expect_exit
        type: int
      - name: cli_fd
        type: int
      - name: vcl_nbr
        type: int
      - name: '*workdir'
        type: char
      - name: '*jail'
        type: char
      - name: '*proto'
        type: char
      - name: '*vsm_vsl'
        type: struct vsm
      - name: '*vsm_vsc'
        type: struct vsm
      - name: '*vsc'
        type: struct vsc
      - name: has_a_arg
        type: int
      - name: vsl_tag_count[256]
        type: unsigned
      - name: vsl_rec
        type: int
      - name: vsl_idle
        type: int
      item_type: struct
      name: varnish
      pos:
        line_end: 91
        line_start: 57
        source_file: /src/VTest2/src/vtc_varnish.c
    - fields:
      - name: '*arg'
        type: char
      - name: '*v'
        type: struct varnish
      item_type: struct
      name: dump_priv
      pos:
        line_end: 922
        line_start: 919
        source_file: /src/VTest2/src/vtc_varnish.c
    - fields:
      - name: '*pattern'
        type: char
      - name: val
        type: uintmax_t
      - name: good
        type: unsigned
      item_type: struct
      name: stat_arg
      pos:
        line_end: 970
        line_start: 966
        source_file: /src/VTest2/src/vtc_varnish.c
    - fields:
      - name: lhs
        type: struct stat_arg
      - name: rhs
        type: struct stat_arg
      item_type: struct
      name: stat_priv
      pos:
        line_end: 975
        line_start: 972
        source_file: /src/VTest2/src/vtc_varnish.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/vtc_h2_stattbl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Sess_New
  - Sess_Destroy
  - Sess_GetOpt
  - sess_process
  - sess_thread
  - Sess_Start_Thread
  source_file: /src/VTest2/src/vtc_sess.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: THREAD_ARG_MAGIC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/VTest2/src/vtc_sess.c
      type_or_value: '0xd5dc5f1c'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*priv'
        type: void
      - name: '*conn_f'
        type: sess_conn_f
      - name: '*disc_f'
        type: sess_disc_f
      - name: '*listen_addr'
        type: char
      - name: '*vsp'
        type: struct vtc_sess
      - name: '*asocket'
        type: int
      - name: '*spec'
        type: char
      item_type: struct
      name: thread_arg
      pos:
        line_end: 49
        line_start: 39
        source_file: /src/VTest2/src/vtc_sess.c
    typedefs: []
    union: []
- function_names:
  - server_new
  - server_delete
  - uds_listen
  - server_listen_uds
  - server_listen_tcp
  - server_listen
  - server_conn
  - server_disc
  - server_start_thread
  - server_start
  - server_dispatch_wrk
  - server_dispatch_thread
  - server_dispatch
  - server_break
  - server_wait
  - cmd_server_gen_vcl
  - cmd_server_gen_haproxy_conf
  - cmd_server
  - init_server
  source_file: /src/VTest2/src/vtc_server.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SERVER_MAGIC
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/VTest2/src/vtc_server.c
      type_or_value: '0x55286619'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*name'
        type: char
      - name: '*vl'
        type: struct vtclog
      - name: (server)
        type: VTAILQ_ENTRY
      - name: '*vsp'
        type: struct vtc_sess
      - name: run
        type: char
      - name: '*spec'
        type: char
      - name: depth
        type: int
      - name: sock
        type: int
      - name: fd
        type: int
      - name: is_dispatch
        type: unsigned
      - name: listen[256]
        type: char
      - name: aaddr[VTCP_ADDRBUFSIZE]
        type: char
      - name: aport[VTCP_PORTBUFSIZE]
        type: char
      - name: tp
        type: pthread_t
      item_type: struct
      name: server
      pos:
        line_end: 66
        line_start: 46
        source_file: /src/VTest2/src/vtc_server.c
    - fields:
      - name: depth
        type: int
      - name: '**errp'
        type: char
      item_type: struct
      name: helper
      pos:
        line_end: 126
        line_start: 123
        source_file: /src/VTest2/src/vtc_server.c
    typedefs: []
    union: []
- function_names:
  - ITER_DONE
  source_file: /src/VTest2/src/vtc_h2_priv.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: header
        type: struct hpk_hdr
      - name: (dynhdr)
        type: VTAILQ_ENTRY
      item_type: struct
      name: dynhdr
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/VTest2/src/vtc_h2_priv.h
    - fields:
      - name: '*ctx'
        type: struct hpk_ctx
      - name: '*orig'
        type: uint8_t
      - name: '*buf'
        type: uint8_t
      - name: '*end'
        type: uint8_t
      item_type: struct
      name: hpk_iter
      pos:
        line_end: 44
        line_start: 39
        source_file: /src/VTest2/src/vtc_h2_priv.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/vtc_http.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HDR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/VTest2/src/vtc_http.h
      type_or_value: '64'
    - item_type: preproc_def
      name: VTC_SESS_MAGIC
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/VTest2/src/vtc_http.h
      type_or_value: '0x932bd565'
    - item_type: preproc_def
      name: HTTP_MAGIC
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/VTest2/src/vtc_http.h
      type_or_value: '0x2f02169c'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*vl'
        type: struct vtclog
      - name: '*name'
        type: char
      - name: repeat
        type: int
      - name: keepalive
        type: int
      - name: '*fd'
        type: int
      - name: rcvbuf
        type: ssize_t
      item_type: struct
      name: vtc_sess
      pos:
        line_end: 44
        line_start: 34
        source_file: /src/VTest2/src/vtc_http.h
    - fields:
      - name: init
        type: uint64_t
      - name: size
        type: int64_t
      item_type: struct
      name: h2_window
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/VTest2/src/vtc_http.h
    - fields:
      - name: magic
        type: unsigned
      - name: '*sfd'
        type: int
      - name: '*sess'
        type: struct vtc_sess
      - name: timeout
        type: vtim_dur
      - name: '*vl'
        type: struct vtclog
      - name: '*vsb'
        type: struct vsb
      - name: rcvbuf
        type: int
      - name: nrxbuf
        type: int
      - name: '*rx_b'
        type: char
      - name: '*rx_p'
        type: char
      - name: '*rx_e'
        type: char
      - name: '*rem_ip'
        type: char
      - name: '*rem_port'
        type: char
      - name: '*rem_path'
        type: char
      - name: '*body'
        type: char
      - name: bodyl
        type: long
      - name: bodylen[20]
        type: char
      - name: chunklen[20]
        type: char
      - name: '*req[MAX_HDR]'
        type: char
      - name: '*resp[MAX_HDR]'
        type: char
      - name: gziplevel
        type: int
      - name: gzipresidual
        type: int
      - name: head_method
        type: int
      - name: fatal
        type: int
      - name: h2
        type: unsigned
      - name: wf
        type: int
      - name: no_rfc7540_priorities
        type: int
      - name: tp
        type: pthread_t
      - name: (, stream)
        type: VTAILQ_HEAD
      - name: last_stream
        type: unsigned
      - name: mtx
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: '*encctx'
        type: struct hpk_ctx
      - name: '*decctx'
        type: struct hpk_ctx
      - name: h2_win_self[1]
        type: struct h2_window
      - name: h2_win_peer[1]
        type: struct h2_window
      item_type: struct
      name: http
      pos:
        line_end: 98
        line_start: 51
        source_file: /src/VTest2/src/vtc_http.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/hpack.h
  types:
    enum:
    - enumerators:
      - name: hpk_more
        value: '0'
      - name: hpk_err
      - name: hpk_done
      item_type: enum
      name: hpk_result
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/VTest2/src/hpack.h
    - enumerators:
      - name: hpk_unset
        value: '0'
      - name: hpk_not
      - name: hpk_idx
      - name: hpk_never
      - name: hpk_inc
      item_type: enum
      name: hpk_indexed
      pos:
        line_end: 44
        line_start: 38
        source_file: /src/VTest2/src/hpack.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*ptr'
        type: char
      - name: len
        type: int
      - name: huff
        type: int
      item_type: struct
      name: hpk_txt
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/VTest2/src/hpack.h
    - fields:
      - name: key
        type: struct hpk_txt
      - name: value
        type: struct hpk_txt
      - name: t
        type: enum hpk_indexed
      - name: i
        type: unsigned
      item_type: struct
      name: hpk_hdr
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/VTest2/src/hpack.h
    typedefs: []
    union: []
- function_names:
  - term_cursor
  - term_putchar
  - term_fill
  - term_copy
  - term_respond
  - term_param
  - term_screen_dump
  - term_resize
  - term_find_textline
  - term_find_text
  - term_expect_text
  - term_expect_cursor
  - term_match_text
  - PROCESS_EXPAND
  - process_coverage
  - process_new
  - process_delete
  - process_undef
  - process_vlu_func
  - process_stdout
  - process_stderr
  - process_cleanup
  - process_thread
  - process_winsz
  - process_init_term
  - process_start
  - process_wait
  - process_kill
  - process_write
  - process_write_hex
  - process_close
  - cmd_process
  source_file: /src/VTest2/src/vtc_process.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROCESS_MAGIC
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/VTest2/src/vtc_process.c
      type_or_value: '0x1617b43e'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*name'
        type: char
      - name: '*vl'
        type: struct vtclog
      - name: (process)
        type: VTAILQ_ENTRY
      - name: '*spec'
        type: char
      - name: '*dir'
        type: char
      - name: '*out'
        type: char
      - name: '*err'
        type: char
      - name: fd_term
        type: int
      - name: fd_stderr
        type: int
      - name: f_stdout
        type: int
      - name: f_stderr
        type: int
      - name: '*vlu_stdout'
        type: struct vlu
      - name: '*vlu_stderr'
        type: struct vlu
      - name: log
        type: int
      - name: pid
        type: pid_t
      - name: expect_exit
        type: int
      - name: expect_signal
        type: int
      - name: allow_core
        type: int
      - name: stdout_bytes
        type: uintmax_t
      - name: stderr_bytes
        type: uintmax_t
      - name: mtx
        type: pthread_mutex_t
      - name: tp
        type: pthread_t
      - name: hasthread
        type: unsigned
      - name: nlin
        type: int
      - name: ncol
        type: int
      - name: ansi_response
        type: int
      - name: '**vram'
        type: char
      - name: tek[1]
        type: teken_t
      item_type: struct
      name: process
      pos:
        line_end: 95
        line_start: 60
        source_file: /src/VTest2/src/vtc_process.c
    typedefs: []
    union: []
- function_names:
  - TP_SETBELLPD_PITCH
  - TP_SETBELLPD_DURATION
  source_file: /src/VTest2/src/teken.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TF_BOLD
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/VTest2/src/teken.h
      type_or_value: "0x01\t"
    - item_type: preproc_def
      name: TF_UNDERLINE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/VTest2/src/teken.h
      type_or_value: "0x02\t"
    - item_type: preproc_def
      name: TF_BLINK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/VTest2/src/teken.h
      type_or_value: "0x04\t"
    - item_type: preproc_def
      name: TF_REVERSE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/VTest2/src/teken.h
      type_or_value: "0x08\t"
    - item_type: preproc_def
      name: TF_CJK_RIGHT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/VTest2/src/teken.h
      type_or_value: "0x10\t"
    - item_type: preproc_def
      name: TF_IMAGE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/VTest2/src/teken.h
      type_or_value: "0x20\t"
    - item_type: preproc_def
      name: TC_BLACK
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TC_RED
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/VTest2/src/teken.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TC_GREEN
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/VTest2/src/teken.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TC_YELLOW
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/VTest2/src/teken.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TC_BLUE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/VTest2/src/teken.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TC_MAGENTA
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/VTest2/src/teken.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TC_CYAN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/VTest2/src/teken.h
      type_or_value: '6'
    - item_type: preproc_def
      name: TC_WHITE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/VTest2/src/teken.h
      type_or_value: '7'
    - item_type: preproc_def
      name: TC_NCOLORS
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/VTest2/src/teken.h
      type_or_value: '8'
    - item_type: preproc_def
      name: TC_LIGHT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/VTest2/src/teken.h
      type_or_value: "8\t"
    - item_type: preproc_def
      name: TP_SHOWCURSOR
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TP_KEYPADAPP
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/VTest2/src/teken.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TP_AUTOREPEAT
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/VTest2/src/teken.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TP_SWITCHVT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/VTest2/src/teken.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TP_132COLS
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/VTest2/src/teken.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TP_SETBELLPD
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/VTest2/src/teken.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TP_MOUSE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/VTest2/src/teken.h
      type_or_value: '6'
    - item_type: preproc_def
      name: TP_SETBORDER
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/VTest2/src/teken.h
      type_or_value: '7'
    - item_type: preproc_def
      name: TP_SETLOCALCURSOR
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/VTest2/src/teken.h
      type_or_value: '8'
    - item_type: preproc_def
      name: TP_SETGLOBALCURSOR
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/VTest2/src/teken.h
      type_or_value: '9'
    - item_type: preproc_def
      name: T_NUMSIZE
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/VTest2/src/teken.h
      type_or_value: '8'
    - item_type: preproc_def
      name: T_NUMCOL
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/VTest2/src/teken.h
      type_or_value: '160'
    - item_type: preproc_def
      name: TKEY_UP
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: TKEY_DOWN
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: TKEY_LEFT
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: TKEY_RIGHT
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: TKEY_HOME
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: TKEY_END
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: TKEY_INSERT
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: TKEY_DELETE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: TKEY_PAGE_UP
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: TKEY_PAGE_DOWN
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: TKEY_F1
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0a'
    - item_type: preproc_def
      name: TKEY_F2
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0b'
    - item_type: preproc_def
      name: TKEY_F3
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0c'
    - item_type: preproc_def
      name: TKEY_F4
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0d'
    - item_type: preproc_def
      name: TKEY_F5
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0e'
    - item_type: preproc_def
      name: TKEY_F6
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: TKEY_F7
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: TKEY_F8
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x11'
    - item_type: preproc_def
      name: TKEY_F9
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x12'
    - item_type: preproc_def
      name: TKEY_F10
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x13'
    - item_type: preproc_def
      name: TKEY_F11
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x14'
    - item_type: preproc_def
      name: TKEY_F12
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x15'
    structs:
    - fields:
      - name: tp_row
        type: teken_unit_t
      - name: tp_col
        type: teken_unit_t
      item_type: struct
      name: teken_pos_t
      pos:
        line_end: 64
        line_start: 61
        source_file: /src/VTest2/src/teken.h
    - fields:
      - name: tr_begin
        type: teken_pos_t
      - name: tr_end
        type: teken_pos_t
      item_type: struct
      name: teken_rect_t
      pos:
        line_end: 68
        line_start: 65
        source_file: /src/VTest2/src/teken.h
    - fields:
      - name: ta_format
        type: teken_format_t
      - name: ta_fgcolor
        type: teken_color_t
      - name: ta_bgcolor
        type: teken_color_t
      item_type: struct
      name: teken_attr_t
      pos:
        line_end: 73
        line_start: 69
        source_file: /src/VTest2/src/teken.h
    - fields:
      - name: ts_begin
        type: teken_unit_t
      - name: ts_end
        type: teken_unit_t
      item_type: struct
      name: teken_span_t
      pos:
        line_end: 77
        line_start: 74
        source_file: /src/VTest2/src/teken.h
    - fields:
      - name: '*tf_bell'
        type: tf_bell_t
      - name: '*tf_cursor'
        type: tf_cursor_t
      - name: '*tf_putchar'
        type: tf_putchar_t
      - name: '*tf_fill'
        type: tf_fill_t
      - name: '*tf_copy'
        type: tf_copy_t
      - name: '*tf_pre_input'
        type: tf_pre_input_t
      - name: '*tf_post_input'
        type: tf_post_input_t
      - name: '*tf_param'
        type: tf_param_t
      - name: '*tf_respond'
        type: tf_respond_t
      item_type: struct
      name: teken_funcs_t
      pos:
        line_end: 121
        line_start: 111
        source_file: /src/VTest2/src/teken.h
    - fields:
      - name: '*t_funcs'
        type: teken_funcs_t
      - name: '*t_softc'
        type: void
      - name: '*t_nextstate'
        type: teken_state_t
      - name: t_stateflags
        type: unsigned int
      - name: t_nums[T_NUMSIZE]
        type: unsigned int
      - name: t_curnum
        type: unsigned int
      - name: t_cursor
        type: teken_pos_t
      - name: t_curattr
        type: teken_attr_t
      - name: t_saved_cursor
        type: teken_pos_t
      - name: t_saved_curattr
        type: teken_attr_t
      - name: t_defattr
        type: teken_attr_t
      - name: t_winsize
        type: teken_pos_t
      - name: t_scrollreg
        type: teken_span_t
      - name: t_originreg
        type: teken_span_t
      - name: t_tabstops[T_NUMCOL / (sizeof(unsigned int) * 8)]
        type: unsigned int
      - name: t_utf8_left
        type: unsigned int
      - name: t_utf8_partial
        type: teken_char_t
      - name: t_last
        type: teken_char_t
      - name: t_curscs
        type: unsigned int
      - name: '*t_saved_curscs'
        type: teken_scs_t
      - name: '*t_scs[2]'
        type: teken_scs_t
      item_type: struct
      name: __teken
      pos:
        line_end: 163
        line_start: 129
        source_file: /src/VTest2/src/teken.h
    typedefs:
    - item_type: typedef
      name: teken_char_t
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/VTest2/src/teken.h
      type: uint32_t
    - item_type: typedef
      name: teken_unit_t
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/VTest2/src/teken.h
      type: unsigned short
    - item_type: typedef
      name: teken_format_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/VTest2/src/teken.h
      type: unsigned char
    - item_type: typedef
      name: teken_color_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/VTest2/src/teken.h
      type: unsigned char
    - item_type: typedef
      name: teken_t
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/VTest2/src/teken.h
      type: __teken
    - item_type: typedef
      name: teken_state_t(teken_t *, teken_char_t)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_bell_t(void *)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_cursor_t(void *, const teken_pos_t *)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: "tf_putchar_t(void *, const teken_pos_t *, teken_char_t,\n    const teken_attr_t
        *)"
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: "tf_fill_t(void *, const teken_rect_t *, teken_char_t,\n    const teken_attr_t
        *)"
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_copy_t(void *, const teken_rect_t *, const teken_pos_t *)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_pre_input_t(void *)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_post_input_t(void *)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_param_t(void *, int, unsigned int)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_respond_t(void *, const void *, size_t)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: teken_scs_t(const teken_t *, teken_char_t)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/VTest2/src/teken.h
      type: teken_char_t
    union: []
- function_names:
  - pp2cmp
  - vtc_proxy_tlv
  - vpx_enc_addr
  - vpx_enc_port
  - vtc_send_proxy
  source_file: /src/VTest2/src/vtc_proxy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PP2_TYPE_ALPN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PP2_TYPE_AUTHORITY
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PP2_TYPE_CRC32C
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: PP2_TYPE_NOOP
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: PP2_TYPE_UNIQUE_ID
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: PP2_TYPE_SSL
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: PP2_SUBTYPE_SSL_VERSION
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x21'
    - item_type: preproc_def
      name: PP2_SUBTYPE_SSL_CN
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x22'
    - item_type: preproc_def
      name: PP2_SUBTYPE_SSL_CIPHER
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x23'
    - item_type: preproc_def
      name: PP2_SUBTYPE_SSL_SIG_ALG
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x24'
    - item_type: preproc_def
      name: PP2_SUBTYPE_SSL_KEY_ALG
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x25'
    - item_type: preproc_def
      name: PP2_SUBTYPE_SSL_MAX
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x25'
    - item_type: preproc_def
      name: PP2_TYPE_NETNS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/VTest2/src/vtc_proxy.c
      type_or_value: '0x30'
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: type
        type: uint8_t
      item_type: struct
      name: pp2_type
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/VTest2/src/vtc_proxy.c
    typedefs: []
    union: []
- function_names:
  - vtc_vrnd_lock
  - vtc_vrnd_unlock
  - add_cmd
  - find_cmd
  - init_cmd_list
  - CMD_GLOBAL
  - CMD_TOP
  - add_extension
  - init_extensions
  - macro_def_int
  - extmacro_def
  - init_macro
  - macro_def
  - macro_undef
  - macro_isdef
  - macro_cat
  - macro_expandf
  - macro_expand
  - parse_string
  - reset_cmd
  - reset_cmds
  - fail_out
  - exec_file
  source_file: /src/VTest2/src/vtc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_TOKENS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/VTest2/src/vtc.c
      type_or_value: '200'
    - item_type: preproc_def
      name: ICMDS_MAGIC
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/VTest2/src/vtc.c
      type_or_value: '0xa743d463'
    - item_type: preproc_def
      name: EXTENSION_MAGIC
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/VTest2/src/vtc.c
      type_or_value: '0x69e788db'
    - item_type: preproc_def
      name: MACRO_MAGIC
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/VTest2/src/vtc.c
      type_or_value: '0x803423e3'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*cmd'
        type: struct cmds
      - name: (icmds)
        type: VTAILQ_ENTRY
      item_type: struct
      name: icmds
      pos:
        line_end: 83
        line_start: 78
        source_file: /src/VTest2/src/vtc.c
    - fields:
      - name: magic
        type: unsigned
      - name: (extension)
        type: VTAILQ_ENTRY
      - name: '*name'
        type: char
      item_type: struct
      name: extension
      pos:
        line_end: 156
        line_start: 151
        source_file: /src/VTest2/src/vtc.c
    - fields:
      - name: magic
        type: unsigned
      - name: (macro)
        type: VTAILQ_ENTRY
      - name: '*name'
        type: char
      - name: '*val'
        type: char
      - name: '*func'
        type: macro_f
      item_type: struct
      name: macro
      pos:
        line_end: 211
        line_start: 204
        source_file: /src/VTest2/src/vtc.c
    typedefs: []
    union: []
- function_names:
  - teken_tab_isset
  - teken_tab_clear
  - teken_tab_set
  - teken_tab_default
  - teken_subr_do_scroll
  - teken_subr_do_cpr
  - teken_subr_alignment_test
  - teken_subr_backspace
  - teken_subr_bell
  - teken_subr_carriage_return
  - teken_subr_cursor_backward
  - teken_subr_cursor_backward_tabulation
  - teken_subr_cursor_down
  - teken_subr_cursor_forward
  - teken_subr_cursor_forward_tabulation
  - teken_subr_cursor_next_line
  - teken_subr_cursor_position
  - teken_subr_cursor_position_report
  - teken_subr_cursor_previous_line
  - teken_subr_cursor_up
  - teken_subr_set_cursor_style
  - teken_subr_delete_character
  - teken_subr_delete_line
  - teken_subr_device_control_string
  - teken_subr_device_status_report
  - teken_subr_double_height_double_width_line_top
  - teken_subr_double_height_double_width_line_bottom
  - teken_subr_erase_character
  - teken_subr_erase_display
  - teken_subr_erase_line
  - teken_subr_g0_scs_special_graphics
  - teken_subr_g0_scs_uk_national
  - teken_subr_g0_scs_us_ascii
  - teken_subr_g1_scs_special_graphics
  - teken_subr_g1_scs_uk_national
  - teken_subr_g1_scs_us_ascii
  - teken_subr_horizontal_position_absolute
  - teken_subr_horizontal_tab
  - teken_subr_horizontal_tab_set
  - teken_subr_index
  - teken_subr_insert_character
  - teken_subr_insert_line
  - teken_subr_keypad_application_mode
  - teken_subr_keypad_numeric_mode
  - teken_subr_newline
  - teken_subr_newpage
  - teken_subr_next_line
  - teken_subr_operating_system_command
  - teken_subr_pan_down
  - teken_subr_pan_up
  - teken_subr_primary_device_attributes
  - teken_subr_do_putchar
  - teken_subr_regular_character
  - teken_subr_reset_dec_mode
  - teken_subr_reset_mode
  - teken_subr_do_resize
  - teken_subr_do_reset
  - teken_subr_reset_to_initial_state
  - teken_subr_restore_cursor
  - teken_subr_reverse_index
  - teken_subr_save_cursor
  - teken_subr_secondary_device_attributes
  - teken_subr_set_dec_mode
  - teken_subr_set_mode
  - teken_subr_set_graphic_rendition
  - teken_subr_set_top_and_bottom_margins
  - teken_subr_single_height_double_width_line
  - teken_subr_single_height_single_width_line
  - teken_subr_string_terminator
  - teken_subr_tab_clear
  - teken_subr_vertical_position_absolute
  - teken_subr_repeat_last_graphic_char
  source_file: /src/VTest2/src/teken_subr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - teken_assert
  - teken_funcs_bell
  - teken_funcs_cursor
  - teken_funcs_putchar
  - teken_funcs_fill
  - teken_funcs_copy
  - teken_funcs_pre_input
  - teken_funcs_post_input
  - teken_funcs_param
  - teken_funcs_respond
  - teken_init
  - teken_input_char
  - teken_input_byte
  - teken_input
  - teken_get_cursor
  - teken_set_cursor
  - teken_get_curattr
  - teken_set_curattr
  - teken_get_defattr
  - teken_set_defattr
  - teken_get_winsize
  - teken_trim_cursor_pos
  - teken_set_winsize
  - teken_set_winsize_noreset
  - teken_set_8bit
  - teken_set_cons25
  - teken_state_switch
  - teken_state_numbers
  - teken_256to8
  - teken_256to16
  - teken_get_sequence
  source_file: /src/VTest2/src/teken.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TS_FIRSTDIGIT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0001\t"
    - item_type: preproc_def
      name: TS_INSERT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0002\t"
    - item_type: preproc_def
      name: TS_AUTOWRAP
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0004\t"
    - item_type: preproc_def
      name: TS_ORIGIN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0008\t"
    - item_type: preproc_def
      name: TS_WRAPPED
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0010\t"
    - item_type: preproc_def
      name: TS_8BIT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0020\t"
    - item_type: preproc_def
      name: TS_CONS25
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0040\t"
    - item_type: preproc_def
      name: TS_INSTRING
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0080\t"
    - item_type: preproc_def
      name: TS_CURSORKEYS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0100\t"
    - item_type: preproc_def
      name: BLANK
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/VTest2/src/teken.c
      type_or_value: ''' '''
    - item_type: preproc_def
      name: k
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_BLACK
    - item_type: preproc_def
      name: b
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_BLUE
    - item_type: preproc_def
      name: y
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_YELLOW
    - item_type: preproc_def
      name: c
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_CYAN
    - item_type: preproc_def
      name: g
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_GREEN
    - item_type: preproc_def
      name: m
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_MAGENTA
    - item_type: preproc_def
      name: r
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_RED
    - item_type: preproc_def
      name: w
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_WHITE
    - item_type: preproc_def
      name: K
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_BLACK | TC_LIGHT)
    - item_type: preproc_def
      name: B
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_BLUE | TC_LIGHT)
    - item_type: preproc_def
      name: Y
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_YELLOW | TC_LIGHT)
    - item_type: preproc_def
      name: C
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_CYAN | TC_LIGHT)
    - item_type: preproc_def
      name: G
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_GREEN | TC_LIGHT)
    - item_type: preproc_def
      name: M
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_MAGENTA | TC_LIGHT)
    - item_type: preproc_def
      name: R
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_RED | TC_LIGHT)
    - item_type: preproc_def
      name: W
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_WHITE | TC_LIGHT)
    structs: []
    typedefs: []
    union: []
- function_names:
  - clean_headers
  - ONLY_H2_CLIENT
  - ONLY_H2_SERVER
  - http_write
  - get_bytes
  - readFrameHeader
  - writeFrameHeader
  - INIT_FRAME
  - replace_frame
  - clean_frame
  - write_frame
  - exclusive_stream_dependency
  - explain_flags
  - parse_data
  - decode_hdr
  - parse_hdr
  - parse_prio
  - parse_rst
  - parse_settings
  - parse_ping
  - parse_goaway
  - parse_winup
  - receive_frame
  - STRTOU32
  - STRTOU32_CHECK
  - CHECK_LAST_FRAME
  - RETURN_SETTING
  - RETURN_SETTING_BOOL
  - RETURN_BUFFED
  - find_header
  - cmd_var_resolve
  - H2_ERROR
  - cmd_sendhex
  - ENC
  - STR_ENC
  - cmd_tx11obj
  - AV_IS
  - CMD_IS
  - cmd_txdata
  - cmd_txrst
  - cmd_txprio
  - PUT
  - PUT_KV
  - PUT_BOOL
  - cmd_txsettings
  - cmd_txping
  - cmd_txgoaway
  - cmd_txwinup
  - rxstuff
  - CHKFRAME
  - cmd_rxhdrs
  - cmd_rxcont
  - cmd_rxdata
  - cmd_rxmsg
  - cmd_rxpush
  - cmd_rxwinup
  - cmd_rxsettings
  - cmd_rxprio
  - RXFUNC
  - cmd_rxframe
  - cmd_expect
  - cmd_gunzip
  - cmd_write_body
  - stream_thread
  - stream_new
  - stream_delete
  - stream_start
  - stream_wait
  - stream_run
  - cmd_stream
  - b64_settings
  - start_h2
  - stop_h2
  source_file: /src/VTest2/src/vtc_http2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ERR_MAX
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: '13'
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: (1024*2048)
    - item_type: preproc_def
      name: STREAM_MAGIC
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: '0x63f1fac2'
    - item_type: preproc_def
      name: FRAME_MAGIC
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: '0x5dd3ec4'
    - item_type: preproc_def
      name: cmd_txreq
      pos:
        line_end: 1435
        line_start: 1434
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: cmd_tx11obj
    - item_type: preproc_def
      name: cmd_txresp
      pos:
        line_end: 1436
        line_start: 1435
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: cmd_tx11obj
    - item_type: preproc_def
      name: cmd_txpush
      pos:
        line_end: 1437
        line_start: 1436
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: cmd_tx11obj
    - item_type: preproc_def
      name: cmd_txcont
      pos:
        line_end: 1438
        line_start: 1437
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: cmd_tx11obj
    - item_type: preproc_def
      name: cmd_rxreq
      pos:
        line_end: 2357
        line_start: 2356
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: cmd_rxmsg
    - item_type: preproc_def
      name: cmd_rxresp
      pos:
        line_end: 2358
        line_start: 2357
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: cmd_rxmsg
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: size
        type: uint32_t
      - name: stid
        type: uint32_t
      - name: type
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: '*data'
        type: char
      - name: (frame)
        type: VTAILQ_ENTRY
      - name: md
        type: "union {\n\t\tstruct {\n\t\t\tuint32_t stream;\n\t\t\tuint8_t  exclusive;\n\t\t\tuint8_t
          \ weight;\n\t\t}\t\tprio;\n\t\tuint32_t\trst_err;\n\t\tdouble settings[SETTINGS_MAX+1];\n\t\tstruct
          {\n\t\t\tchar data[9];\n\t\t\tint ack;\n\t\t}\t\tping;\n\t\tstruct {\n\t\t\tuint32_t
          err;\n\t\t\tuint32_t stream;\n\t\t\tchar\t *debug;\n\t\t}\t\tgoaway;\n\t\tuint32_t\twinup_size;\n\t\tuint32_t\tpromised;\n\t\tuint8_t\t\tpadded;\n\t}"
      item_type: struct
      name: frame
      pos:
        line_end: 249
        line_start: 217
        source_file: /src/VTest2/src/vtc_http2.c
    typedefs: []
    union: []
- function_names:
  - cmd_vtest
  - cmd_varnishtest
  - cmd_shell_engine
  - cmd_shell
  - cmd_filewrite
  - cmd_setenv
  - cmd_delay
  - cmd_include
  - dns_works
  - ipvx_works
  - addr_no_randomize_works
  - uds_socket
  - abstract_uds_works
  - cmd_feature
  - FEATURE
  source_file: /src/VTest2/src/vtc_misc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CMD_GLOBAL
  - CMD_TOP
  source_file: /src/VTest2/src/vtc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: sess_conn_f(void *priv, struct vtclog *)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/VTest2/src/vtc.h
      type: int
    - item_type: typedef
      name: sess_disc_f(void *priv, struct vtclog *, int *fd)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/VTest2/src/vtc.h
      type: void
    union: []
- function_names:
  - teken_scs_process
  - teken_scs_special_graphics
  - teken_scs_uk_national
  - teken_scs_us_ascii
  source_file: /src/VTest2/src/teken_scs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vsm_new
  - vsm_detach
  - vsm_attach
  - vsm_delete
  - STATUS_BITS
  - vsm_expect_status
  - STATUS_BIT
  - STATUS_BIT
  - cmd_vsm
  source_file: /src/VTest2/src/vtc_vsm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VTC_VSM_MAGIC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/VTest2/src/vtc_vsm.c
      type_or_value: '0x5ca77a36'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: (vtc_vsm)
        type: VTAILQ_ENTRY
      - name: '*name'
        type: char
      - name: '*n_arg'
        type: char
      - name: '*vl'
        type: struct vtclog
      - name: '*vsm'
        type: struct vsm
      item_type: struct
      name: vtc_vsm
      pos:
        line_end: 52
        line_start: 43
        source_file: /src/VTest2/src/vtc_vsm.c
    typedefs: []
    union: []
- function_names:
  - bisearch
  - teken_wcwidth
  - teken_utf8_bytes_to_codepoint
  source_file: /src/VTest2/src/teken_wcwidth.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEKEN_UTF8_INVALID_CODEPOINT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/VTest2/src/teken_wcwidth.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: first
        type: teken_char_t
      - name: last
        type: teken_char_t
      item_type: struct
      name: interval
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/VTest2/src/teken_wcwidth.h
    typedefs: []
    union: []
- function_names:
  - logexp_delete_tests
  - logexp_delete
  - logexp_new
  - logexp_clean
  - logexp_alt
  - logexp_next
  - logexp_match
  - logexp_failchk
  - logexp_done
  - logexp_dispatch
  - logexp_thread
  - logexp_close
  - logexp_start
  - logexp_wait
  - cmd_logexp_common
  - cmd_logexp_expect
  - cmd_logexp_fail
  - cmd_logexp_abort
  - logexp_spec
  - cmd_logexpect
  source_file: /src/VTest2/src/vtc_logexp.c
  types:
    enum:
    - enumerators:
      - name: LEM_OK
      - name: LEM_FAIL
      - name: LEM_SKIP
      item_type: enum
      name: le_match_e
      pos:
        line_end: 380
        line_start: 376
        source_file: /src/VTest2/src/vtc_logexp.c
    preproc_defs:
    - item_type: preproc_def
      name: LE_ANY
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/VTest2/src/vtc_logexp.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: LE_LAST
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/VTest2/src/vtc_logexp.c
      type_or_value: (-2)
    - item_type: preproc_def
      name: LE_ALT
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/VTest2/src/vtc_logexp.c
      type_or_value: (-3)
    - item_type: preproc_def
      name: LE_SEEN
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/VTest2/src/vtc_logexp.c
      type_or_value: (-4)
    - item_type: preproc_def
      name: LE_FAIL
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/VTest2/src/vtc_logexp.c
      type_or_value: (-5)
    - item_type: preproc_def
      name: LE_CLEAR
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/VTest2/src/vtc_logexp.c
      type_or_value: "(-6)\t// clear fail list"
    - item_type: preproc_def
      name: LE_ABORT
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/VTest2/src/vtc_logexp.c
      type_or_value: (-7)
    - item_type: preproc_def
      name: LOGEXP_TEST_MAGIC
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/VTest2/src/vtc_logexp.c
      type_or_value: '0x6F62B350'
    - item_type: preproc_def
      name: LOGEXP_MAGIC
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/VTest2/src/vtc_logexp.c
      type_or_value: '0xE81D9F1B'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: (logexp_test)
        type: VTAILQ_ENTRY
      - name: (logexp_test)
        type: VTAILQ_ENTRY
      - name: '*str'
        type: struct vsb
      - name: vxid
        type: int64_t
      - name: tag
        type: int
      - name: '*vre'
        type: vre_t
      - name: skip_max
        type: int
      item_type: struct
      name: logexp_test
      pos:
        line_end: 186
        line_start: 175
        source_file: /src/VTest2/src/vtc_logexp.c
    - fields:
      - name: magic
        type: unsigned
      - name: (logexp)
        type: VTAILQ_ENTRY
      - name: '*name'
        type: char
      - name: '*vname'
        type: char
      - name: '*vl'
        type: struct vtclog
      - name: run
        type: char
      - name: tests
        type: struct tests_head
      - name: '*test'
        type: struct logexp_test
      - name: skip_cnt
        type: int
      - name: vxid_last
        type: int64_t
      - name: tag_last
        type: int
      - name: fail
        type: struct tests_head
      - name: m_arg
        type: int
      - name: err_arg
        type: int
      - name: d_arg
        type: int
      - name: g_arg
        type: enum VSL_grouping_e
      - name: '*query'
        type: char
      - name: '*vsm'
        type: struct vsm
      - name: '*vsl'
        type: struct VSL_data
      - name: '*vslq'
        type: struct VSLQ
      - name: tp
        type: pthread_t
      item_type: struct
      name: logexp
      pos:
        line_end: 218
        line_start: 190
        source_file: /src/VTest2/src/vtc_logexp.c
    typedefs: []
    union: []
- function_names:
  - vtc_log_set_cmd
  - GET_VL
  - REL_VL
  - vtc_logopen
  - vtc_logclose
  - v_noreturn_::vtc_logfail
  - vtc_leadinv
  - vtc_leadin
  - vtc_log_emit
  - vtc_fatal
  - vtc_log
  - vtc_dump
  - vtc_hexdump
  - v_noreturn_::vtc_log_VAS_Fail
  - vtc_loginit
  source_file: /src/VTest2/src/vtc_log.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NLEAD
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/VTest2/src/vtc_log.c
      type_or_value: (sizeof(lead)/sizeof(lead[0]))
    - item_type: preproc_def
      name: MAX_DUMP
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/VTest2/src/vtc_log.c
      type_or_value: '8192'
    structs: []
    typedefs: []
    union: []
- function_names:
  - client_proxy
  - client_tcp_connect
  - uds_open
  - client_uds_connect
  - client_connect
  - client_conn
  - client_disc
  - client_new
  - client_delete
  - client_start
  - client_wait
  - client_run
  - cmd_client
  source_file: /src/VTest2/src/vtc_client.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CLIENT_MAGIC
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/VTest2/src/vtc_client.c
      type_or_value: '0x6242397c'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*name'
        type: char
      - name: '*vl'
        type: struct vtclog
      - name: (client)
        type: VTAILQ_ENTRY
      - name: '*vsp'
        type: struct vtc_sess
      - name: '*spec'
        type: char
      - name: connect[256]
        type: char
      - name: '*addr'
        type: char
      - name: '*proxy_spec'
        type: char
      - name: proxy_version
        type: int
      - name: running
        type: unsigned
      - name: tp
        type: pthread_t
      item_type: struct
      name: client
      pos:
        line_end: 67
        line_start: 49
        source_file: /src/VTest2/src/vtc_client.c
    typedefs: []
    union: []
- function_names:
  - haproxy_add_envar
  - haproxy_delete_envars
  - haproxy_build_env
  - haproxy_cli_tcp_connect
  - cmd_haproxy_cli_send
  - haproxy_cli_recv
  - cmd_haproxy_cli_expect
  - haproxy_cli_thread
  - haproxy_cli_wait
  - haproxy_cli_start
  - haproxy_cli_run
  - haproxy_wait_pidfile
  - haproxy_bind_sdnotify
  - haproxy_wait_sdnotify_ready
  - haproxy_cli_new
  - haproxy_mcli_new
  - haproxy_create_mcli
  - haproxy_cli_delete
  - haproxy_new
  - haproxy_delete
  - haproxy_thread
  - haproxy_start
  - haproxy_wait
  - haproxy_build_backends
  - haproxy_check_conf
  - haproxy_store_conf
  - haproxy_write_conf
  - cmd_haproxy
  source_file: /src/VTest2/src/vtc_haproxy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAPROXY_PROGRAM_ENV_VAR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '"HAPROXY_PROGRAM"'
    - item_type: preproc_def
      name: HAPROXY_ARGS_ENV_VAR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '"HAPROXY_ARGS"'
    - item_type: preproc_def
      name: HAPROXY_OPT_WORKER
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '"-W"'
    - item_type: preproc_def
      name: HAPROXY_OPT_SD_WORKER
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '"-Ws"'
    - item_type: preproc_def
      name: HAPROXY_OPT_MCLI
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '"-S"'
    - item_type: preproc_def
      name: HAPROXY_OPT_DAEMON
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '"-D"'
    - item_type: preproc_def
      name: HAPROXY_SIGNAL
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: SIGINT
    - item_type: preproc_def
      name: HAPROXY_EXPECT_EXIT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: (128 + HAPROXY_SIGNAL)
    - item_type: preproc_def
      name: HAPROXY_MAGIC
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '0x8a45cf75'
    - item_type: preproc_def
      name: HAPROXY_CLI_MAGIC
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '0xb09a4ed8'
    - item_type: preproc_def
      name: HAPROXY_CLI_RECV_LEN
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: (1 << 14)
    - item_type: preproc_def
      name: HAPROXY_FD_ADDR_FAM_PREFIX
      pos:
        line_end: 957
        line_start: 956
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '"fd@${"'
    - item_type: preproc_def
      name: HAPROXY_FD_ADDR_FAM_PREFIX_LEN
      pos:
        line_end: 958
        line_start: 957
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: strlen(HAPROXY_FD_ADDR_FAM_PREFIX)
    - item_type: preproc_def
      name: HAPROXY_QUIC_SOCK_TYPE
      pos:
        line_end: 960
        line_start: 959
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '"quic"'
    - item_type: preproc_def
      name: HAPROXY_QUIC_SOCK_TYPE_PREFIX
      pos:
        line_end: 961
        line_start: 960
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: HAPROXY_QUIC_SOCK_TYPE "+"
    - item_type: preproc_def
      name: HAPROXY_QUIC_SOCK_TYPE_PREFIX_LEN
      pos:
        line_end: 962
        line_start: 961
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: strlen(HAPROXY_QUIC_SOCK_TYPE_PREFIX)
    - item_type: preproc_def
      name: HAPROXY_VTC_SOCK_TYPE_ENV_VAR
      pos:
        line_end: 964
        line_start: 963
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '"VTC_SOCK_TYPE"'
    - item_type: preproc_def
      name: HAPROXY_VTC_SOCK_TYPE_PREFIX
      pos:
        line_end: 965
        line_start: 964
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: '"${" HAPROXY_VTC_SOCK_TYPE_ENV_VAR "}+"'
    - item_type: preproc_def
      name: HAPROXY_VTC_SOCK_TYPE_PREFIX_LEN
      pos:
        line_end: 966
        line_start: 965
        source_file: /src/VTest2/src/vtc_haproxy.c
      type_or_value: strlen(HAPROXY_VTC_SOCK_TYPE_PREFIX)
    structs:
    - fields:
      - name: (envar)
        type: VTAILQ_ENTRY
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      item_type: struct
      name: envar
      pos:
        line_end: 65
        line_start: 61
        source_file: /src/VTest2/src/vtc_haproxy.c
    - fields:
      - name: magic
        type: unsigned
      - name: '*name'
        type: char
      - name: '*vl'
        type: struct vtclog
      - name: list
        type: VTAILQ_ENTRY
      - name: '*filename'
        type: char
      - name: '*args'
        type: struct vsb
      - name: opt_worker
        type: int
      - name: opt_mcli
        type: int
      - name: opt_daemon
        type: int
      - name: opt_check_mode
        type: int
      - name: '*pid_fn'
        type: char
      - name: pid
        type: pid_t
      - name: ppid
        type: pid_t
      - name: fds[4]
        type: int
      - name: '*cfg_fn'
        type: char
      - name: '*cfg_vsb'
        type: struct vsb
      - name: tp
        type: pthread_t
      - name: expect_exit
        type: int
      - name: expect_signal
        type: int
      - name: its_dead_jim
        type: int
      - name: sd_uds
        type: struct sockaddr_un
      - name: sd_sock
        type: int
      - name: '*cli_fn'
        type: char
      - name: '*cli'
        type: struct haproxy_cli
      - name: '*mcli'
        type: struct haproxy_cli
      - name: '*workdir'
        type: char
      - name: '*msgs'
        type: struct vsb
      - name: closed_sock[256]
        type: char
      - name: (,envar)
        type: VTAILQ_HEAD
      item_type: struct
      name: haproxy
      pos:
        line_end: 108
        line_start: 67
        source_file: /src/VTest2/src/vtc_haproxy.c
    - fields:
      - name: magic
        type: unsigned
      - name: '*vl'
        type: struct vtclog
      - name: running
        type: char
      - name: '*spec'
        type: char
      - name: sock
        type: int
      - name: connect[256]
        type: char
      - name: tp
        type: pthread_t
      - name: txbuf_sz
        type: size_t
      - name: '*txbuf'
        type: char
      - name: rxbuf_sz
        type: size_t
      - name: '*rxbuf'
        type: char
      - name: timeout
        type: vtim_dur
      item_type: struct
      name: haproxy_cli
      pos:
        line_end: 131
        line_start: 113
        source_file: /src/VTest2/src/vtc_haproxy.c
    typedefs: []
    union: []
- function_names:
  - teken_subr_cons25_set_border
  - teken_subr_cons25_set_global_cursor_shape
  - teken_subr_cons25_set_local_cursor_type
  - teken_subr_cons25_set_default_background
  - teken_subr_cons25_set_default_foreground
  - teken_get_defattr_cons25
  - teken_subr_cons25_switch_virtual_terminal
  - teken_subr_cons25_set_bell_pitch_duration
  - teken_subr_cons25_set_graphic_rendition
  - teken_subr_cons25_set_terminal_mode
  - teken_subr_vt52_decid
  source_file: /src/VTest2/src/teken_subr_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tunnel_is_open
  - cmd_tunnel_pause
  - cmd_tunnel_send
  - cmd_tunnel_recv
  - cmd_tunnel_resume
  - tunnel_read
  - tunnel_write
  - tunnel_poll_thread
  - tunnel_accept
  - tunnel_spec_thread
  - tunnel_new
  - tunnel_delete
  - tunnel_listen
  - tunnel_start
  - tunnel_start_pause
  - tunnel_wait
  - tunnel_reset
  - cmd_tunnel
  - init_tunnel
  source_file: /src/VTest2/src/vtc_tunnel.c
  types:
    enum:
    - enumerators:
      - name: TUNNEL_ACCEPT
      - name: TUNNEL_RUNNING
      - name: TUNNEL_PAUSED
      - name: TUNNEL_SPEC_DONE
      - name: TUNNEL_POLL_DONE
      - name: TUNNEL_STOPPED
      item_type: enum
      name: tunnel_state_e
      pos:
        line_end: 110
        line_start: 103
        source_file: /src/VTest2/src/vtc_tunnel.c
    preproc_defs:
    - item_type: preproc_def
      name: TUNNEL_MAGIC
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/VTest2/src/vtc_tunnel.c
      type_or_value: '0x7f59913d'
    structs:
    - fields:
      - name: buf[1024]
        type: char
      - name: buf_len
        type: ssize_t
      - name: wrk_len
        type: size_t
      - name: '*rfd'
        type: int
      - name: '*wfd'
        type: int
      item_type: struct
      name: tunnel_lane
      pos:
        line_end: 118
        line_start: 112
        source_file: /src/VTest2/src/vtc_tunnel.c
    - fields:
      - name: magic
        type: unsigned
      - name: '*name'
        type: char
      - name: '*vl'
        type: struct vtclog
      - name: (tunnel)
        type: VTAILQ_ENTRY
      - name: state
        type: enum tunnel_state_e
      - name: start_paused
        type: unsigned
      - name: '*spec'
        type: char
      - name: connect[256]
        type: char
      - name: csock
        type: int
      - name: listen[256]
        type: char
      - name: lsock
        type: int
      - name: laddr[VTCP_ADDRBUFSIZE]
        type: char
      - name: lport[VTCP_PORTBUFSIZE]
        type: char
      - name: asock
        type: int
      - name: send_lane[1]
        type: struct tunnel_lane
      - name: recv_lane[1]
        type: struct tunnel_lane
      - name: mtx
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: tspec
        type: pthread_t
      - name: tpoll
        type: pthread_t
      item_type: struct
      name: tunnel
      pos:
        line_end: 148
        line_start: 120
        source_file: /src/VTest2/src/vtc_tunnel.c
    typedefs: []
    union: []
- function_names:
  - VTC_CHECK_NAME
  source_file: /src/VTest2/src/vtest_api.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CMD_ARGS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/VTest2/src/vtest_api.h
      type_or_value: char * const *av, void *priv, struct vtclog *vl
    - item_type: preproc_def
      name: CMDS_F_NONE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/VTest2/src/vtest_api.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: CMDS_F_GLOBAL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/VTest2/src/vtest_api.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CMDS_F_SHUT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/VTest2/src/vtest_api.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: CMDS_MAGIC
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/VTest2/src/vtest_api.h
      type_or_value: '0x9ccc797d'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*name'
        type: char
      - name: '*cmd'
        type: cmd_f
      - name: flags
        type: unsigned
      item_type: struct
      name: cmds
      pos:
        line_end: 56
        line_start: 50
        source_file: /src/VTest2/src/vtest_api.h
    typedefs:
    - item_type: typedef
      name: cmd_f(CMD_ARGS)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/VTest2/src/vtest_api.h
      type: void
    - item_type: typedef
      name: '* macro_f(int, char *const *, const char **)'
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/VTest2/src/vtest_api.h
      type: char
    union: []
- function_names:
  - STAT_HDRS
  - HPK_NewIter
  - HPK_FreeIter
  - pop_header
  - push_header
  - HPK_ResizeTbl
  - tbl_get_field
  - tbl_get_key
  - tbl_get_value
  - HPK_GetHdr
  - HPK_GetTblSize
  - HPK_GetTblMaxSize
  - HPK_GetTblLength
  - dump_dyn_tbl
  - HPK_NewCtx
  - HPK_FreeCtx
  source_file: /src/VTest2/src/vtc_h2_tbl.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*sttbl'
        type: struct hpk_hdr
      - name: dyntbl
        type: struct dynamic_table
      - name: maxsize
        type: uint32_t
      - name: size
        type: uint32_t
      item_type: struct
      name: hpk_ctx
      pos:
        line_end: 78
        line_start: 73
        source_file: /src/VTest2/src/vtc_h2_tbl.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/vtc_h2_enctbl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vtc_report_gz_bits
  - APOS
  - vtc_gunzip_vsb
  - vtc_gunzip
  - vtc_gzip_chunk
  - vtc_gzip
  - vtc_gzip_cmd
  source_file: /src/VTest2/src/vtc_gzip.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CMD_SYSLOG
  - get_syslog_level
  - syslog_new
  - syslog_delete
  - syslog_rx
  - syslog_bind
  - cmd_syslog_expect
  - cmd_syslog_recv
  - syslog_thread
  - syslog_start
  - syslog_stop
  - syslog_wait
  - cmd_syslog
  - init_syslog
  source_file: /src/VTest2/src/vtc_syslog.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SYSLOG_SRV_MAGIC
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/VTest2/src/vtc_syslog.c
      type_or_value: '0xbf28a692'
    - item_type: preproc_def
      name: SYSLOGCMDS
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/VTest2/src/vtc_syslog.c
      type_or_value: "CMD_SYSLOG(expect) \\\n\tCMD_SYSLOG(recv)"
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*name'
        type: char
      - name: '*vl'
        type: struct vtclog
      - name: (syslog_srv)
        type: VTAILQ_ENTRY
      - name: run
        type: char
      - name: repeat
        type: int
      - name: '*spec'
        type: char
      - name: sock
        type: int
      - name: bind[256]
        type: char
      - name: lvl
        type: int
      - name: tp
        type: pthread_t
      - name: rxbuf_left
        type: ssize_t
      - name: rxbuf_sz
        type: size_t
      - name: '*rxbuf'
        type: char
      - name: timeout
        type: vtim_dur
      item_type: struct
      name: syslog_srv
      pos:
        line_end: 66
        line_start: 46
        source_file: /src/VTest2/src/vtc_syslog.c
    typedefs: []
    union: []
- function_names:
  - barrier_new
  - barrier_expect
  - barrier_cond
  - barrier_sock_thread
  - barrier_sock
  - barrier_cyclic
  - barrier_cond_sync
  - barrier_sock_sync
  - barrier_sync
  - cmd_barrier
  source_file: /src/VTest2/src/vtc_barrier.c
  types:
    enum:
    - enumerators:
      - name: BARRIER_NONE
        value: '0'
      - name: BARRIER_COND
      - name: BARRIER_SOCK
      item_type: enum
      name: barrier_e
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/VTest2/src/vtc_barrier.c
    preproc_defs:
    - item_type: preproc_def
      name: BARRIER_MAGIC
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/VTest2/src/vtc_barrier.c
      type_or_value: '0x7b54c275'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*name'
        type: char
      - name: (barrier)
        type: VTAILQ_ENTRY
      - name: mtx
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: waiters
        type: int
      - name: expected
        type: int
      - name: cyclic
        type: int
      - name: type
        type: enum barrier_e
      item_type: struct
      name: barrier
      pos:
        line_end: 70
        line_start: 53
        source_file: /src/VTest2/src/vtc_barrier.c
    typedefs: []
    union: []
- function_names:
  - TDARGS
  - TDVAR
  - get_buf
  - rel_buf
  - parse_D_opt
  - v_noreturn_::usage
  - cleaner_do
  - cleaner_setup
  - cleaner_neuter
  - cleaner_finish
  - tst_cb
  - start_test
  - top_dir
  - build_path
  - i_mode
  - ip_magic
  - macro_func_date
  - macro_func_string_repeat
  - macro_func_string
  - read_file
  - automake_test_driver_arguments
  - TDSAVE
  - usual_arguments
  - main
  source_file: /src/VTest2/src/vtc_main.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUF_MAGIC
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/VTest2/src/vtc_main.c
      type_or_value: '0x39d1258a'
    - item_type: preproc_def
      name: TST_MAGIC
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/VTest2/src/vtc_main.c
      type_or_value: '0x618d8b88'
    - item_type: preproc_def
      name: JOB_MAGIC
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/VTest2/src/vtc_main.c
      type_or_value: '0x1b5fc419'
    - item_type: preproc_def
      name: FMT
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/VTest2/src/vtc_main.c
      type_or_value: '"    %-28s # %s\n"'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: (buf)
        type: VTAILQ_ENTRY
      - name: '*buf'
        type: char
      - name: '*diag'
        type: struct vsb
      - name: bufsiz
        type: size_t
      item_type: struct
      name: buf
      pos:
        line_end: 66
        line_start: 59
        source_file: /src/VTest2/src/vtc_main.c
    - fields:
      - name: magic
        type: unsigned
      - name: list
        type: VTAILQ_ENTRY
      - name: '*filename'
        type: char
      - name: '*script'
        type: char
      - name: ntodo
        type: unsigned
      - name: nwait
        type: unsigned
      item_type: struct
      name: vtc_tst
      pos:
        line_end: 78
        line_start: 70
        source_file: /src/VTest2/src/vtc_main.c
    - fields:
      - name: magic
        type: unsigned
      - name: '*tst'
        type: struct vtc_tst
      - name: child
        type: pid_t
      - name: '*ev'
        type: struct vev
      - name: '*evt'
        type: struct vev
      - name: '*bp'
        type: struct buf
      - name: '*tmpdir'
        type: char
      - name: t0
        type: double
      - name: killed
        type: int
      item_type: struct
      name: vtc_job
      pos:
        line_end: 91
        line_start: 80
        source_file: /src/VTest2/src/vtc_main.c
    typedefs: []
    union: []
- function_names:
  - MASK
  - huff_decode
  - huff_encode
  - huff_simulate
  - num_decode
  - num_encode
  - str_encode
  - str_decode
  - txtcpy
  - gethpk_iterLen
  - HPK_DecHdr
  - HPK_EncHdr
  source_file: /src/VTest2/src/vtc_h2_hpack.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: val
        type: uint32_t
      - name: size
        type: uint8_t
      item_type: struct
      name: symbol
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/VTest2/src/vtc_h2_hpack.c
    typedefs: []
    union: []
- function_names:
  - ONLY_CLIENT
  - ONLY_SERVER
  - synth_body
  - http_write
  - http_find_header
  - http_count_header
  - cmd_var_resolve
  - cmd_http_expect
  - cmd_http_expect_pattern
  - http_splitheader
  - http_rxchar
  - http_rxchunk
  - http_swallow_body
  - http_rxhdr
  - cmd_http_rxresp
  - cmd_http_rxresphdrs
  - cmd_http_gunzip
  - http_tx_parse_args
  - cmd_http_txresp
  - cmd_http_upgrade
  - cmd_http_rxreq
  - cmd_http_rxreqhdrs
  - cmd_http_rxreqbody
  - cmd_http_rxrespbody
  - cmd_http_rxchunk
  - cmd_http_txreq
  - cmd_http_recv
  - cmd_http_send
  - cmd_http_send_n
  - cmd_http_send_urgent
  - cmd_http_sendhex
  - cmd_http_chunked
  - cmd_http_chunkedlen
  - cmd_http_timeout
  - cmd_http_expect_close
  - cmd_http_close
  - cmd_http_accept
  - cmd_http_shutdown
  - cmd_http_fatal
  - cmd_http_txpri
  - cmd_http_rxpri
  - cmd_http_settings
  - cmd_http_stream
  - cmd_http_write_body
  - http_process_cleanup
  - http_process
  - xxx
  source_file: /src/VTest2/src/vtc_http.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: cmd_http_non_fatal
      pos:
        line_end: 1688
        line_start: 1687
        source_file: /src/VTest2/src/vtc_http.c
      type_or_value: cmd_http_fatal
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/vtc_log.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VTCLOG_MAGIC
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/VTest2/src/vtc_log.h
      type_or_value: '0x82731202'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*id'
        type: char
      - name: '*vsb'
        type: struct vsb
      - name: mtx
        type: pthread_mutex_t
      - name: act
        type: int
      - name: '*cmds'
        type: struct cmds
      item_type: struct
      name: vtclog
      pos:
        line_end: 39
        line_start: 31
        source_file: /src/VTest2/src/vtc_log.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/tbl/h2_error.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/tbl/vhp_huffman.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/tbl/h2_settings.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/tbl/vsig_list.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/tbl/h2_frames.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/src/tbl/h2_stream.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VFIL_null_fd
  - vfil_readfd
  - vfil_writefd
  - vfil_openfile
  - VFIL_readfile
  - VFIL_writefile
  - VFIL_nonblocking
  - VFIL_fsinfo
  - VFIL_allocate
  - VFIL_setpath
  - vfil_path_openfile
  - VFIL_searchpath
  source_file: /src/VTest2/lib/vfil.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VFIL_DIR_MAGIC
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/VTest2/lib/vfil.c
      type_or_value: '0x3e214967'
    - item_type: preproc_def
      name: VFIL_PATH_MAGIC
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/VTest2/lib/vfil.c
      type_or_value: '0x92dbcc31'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*dir'
        type: char
      - name: (vfil_dir)
        type: VTAILQ_ENTRY
      item_type: struct
      name: vfil_dir
      pos:
        line_end: 281
        line_start: 276
        source_file: /src/VTest2/lib/vfil.c
    - fields:
      - name: magic
        type: unsigned
      - name: '*str'
        type: char
      - name: (,vfil_dir)
        type: VTAILQ_HEAD
      item_type: struct
      name: vfil_path
      pos:
        line_end: 288
        line_start: 283
        source_file: /src/VTest2/lib/vfil.c
    typedefs: []
    union: []
- function_names:
  - VSLIST_HEAD_INITIALIZER
  - VSLIST_EMPTY
  - VSLIST_FIRST
  - VSLIST_FOREACH
  - VSLIST_FOREACH_FROM
  - VSLIST_FOREACH_SAFE
  - VSLIST_FOREACH_FROM_SAFE
  - VSLIST_FOREACH_PREVPTR
  - VSLIST_INIT
  - VSLIST_INSERT_AFTER
  - VSLIST_INSERT_HEAD
  - VSLIST_NEXT
  - VSLIST_REMOVE
  - VSLIST_REMOVE_AFTER
  - VSLIST_REMOVE_HEAD
  - VSLIST_SWAP
  - VSTAILQ_HEAD
  - VSTAILQ_HEAD_INITIALIZER
  - VSTAILQ_CONCAT
  - VSTAILQ_EMPTY
  - VSTAILQ_FIRST
  - VSTAILQ_FOREACH
  - VSTAILQ_FOREACH_FROM
  - VSTAILQ_FOREACH_SAFE
  - VSTAILQ_FOREACH_FROM_SAFE
  - VSTAILQ_INIT
  - VSTAILQ_INSERT_AFTER
  - VSTAILQ_INSERT_HEAD
  - VSTAILQ_INSERT_TAIL
  - VSTAILQ_LAST
  - VSTAILQ_NEXT
  - VSTAILQ_REMOVE
  - VSTAILQ_REMOVE_AFTER
  - VSTAILQ_REMOVE_HEAD
  - VSTAILQ_SWAP
  - VLIST_HEAD_INITIALIZER
  - VLIST_ENTRY
  - VLIST_EMPTY
  - VLIST_FIRST
  - VLIST_FOREACH
  - VLIST_FOREACH_FROM
  - VLIST_FOREACH_SAFE
  - VLIST_FOREACH_FROM_SAFE
  - VLIST_INIT
  - VLIST_INSERT_AFTER
  - VLIST_INSERT_BEFORE
  - VLIST_INSERT_HEAD
  - VLIST_NEXT
  - VLIST_PREV
  - VLIST_REMOVE
  - VLIST_SWAP
  - VTAILQ_HEAD
  - VTAILQ_HEAD_INITIALIZER
  - VTAILQ_ENTRY
  - VTAILQ_CONCAT
  - VTAILQ_EMPTY
  - VTAILQ_FIRST
  - VTAILQ_FOREACH
  - VTAILQ_FOREACH_FROM
  - VTAILQ_FOREACH_SAFE
  - VTAILQ_FOREACH_FROM_SAFE
  - VTAILQ_FOREACH_REVERSE
  - VTAILQ_FOREACH_REVERSE_FROM
  - VTAILQ_FOREACH_REVERSE_SAFE
  - VTAILQ_FOREACH_REVERSE_FROM_SAFE
  - VTAILQ_INIT
  - VTAILQ_INSERT_AFTER
  - VTAILQ_INSERT_BEFORE
  - VTAILQ_INSERT_HEAD
  - VTAILQ_INSERT_TAIL
  - VTAILQ_LAST
  - VTAILQ_NEXT
  - VTAILQ_PREV
  - VTAILQ_REMOVE
  - VTAILQ_SWAP
  source_file: /src/VTest2/lib/vqueue.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vfl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vsa_normalize
  - VSA_Init
  - VSA_GetPtr
  - sua_len
  - VSA_Malloc
  - VSA_BuildFAP
  - VSA_Build
  - VSA_Get_Sockaddr
  - VSA_Get_Proto
  - VSA_Sane
  - VSA_Compare
  - VSA_Compare_IP
  - VSA_Clone
  - VSA_Port
  - VSA_getname
  - VSA_free
  source_file: /src/VTest2/lib/vsa.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SUCKADDR_MAGIC
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/VTest2/lib/vsa.c
      type_or_value: '0x4b1e9335'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: u
        type: "union {\n\t\tstruct sockaddr\t\tsa;\n\t\tstruct sockaddr_in\tsa4;\n\t\tstruct
          sockaddr_in6\tsa6;\n\t}"
      item_type: struct
      name: suckaddr
      pos:
        line_end: 179
        line_start: 171
        source_file: /src/VTest2/lib/vsa.c
    typedefs: []
    union: []
- function_names:
  - assert
  - assert
  - xxxassert
  - AZ
  - AN
  - XXXAZ
  - XXXAN
  - diagnostic
  - WRONG
  - _PTOK
  - PTOK
  - INCOMPL
  - __has_extension
  - v_static_assert
  - v_static_assert
  - __v_static_assert
  - ___v_static_assert
  - pdiff
  source_file: /src/VTest2/lib/vas.h
  types:
    enum:
    - enumerators:
      - name: VAS_WRONG
      - name: VAS_INCOMPLETE
      - name: VAS_ASSERT
      - name: VAS_VCL
      - name: VAS_MISSING
      item_type: enum
      name: vas_e
      pos:
        line_end: 54
        line_start: 48
        source_file: /src/VTest2/lib/vas.h
    preproc_defs:
    - item_type: preproc_def
      name: v_static_assert
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/VTest2/lib/vas.h
      type_or_value: static_assert
    - item_type: preproc_def
      name: v_static_assert
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/VTest2/lib/vas.h
      type_or_value: _Static_assert
    - item_type: preproc_def
      name: v_static_assert
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/VTest2/lib/vas.h
      type_or_value: _Static_assert
    - item_type: preproc_def
      name: v_static_assert
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/VTest2/lib/vas.h
      type_or_value: _Static_assert
    structs: []
    typedefs:
    - item_type: typedef
      name: vas_f(const char *, const char *, int, const char *, enum vas_e)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/VTest2/lib/vas.h
      type: void
    union: []
- function_names:
  - bprintf
  - vbprintf
  - bstrcpy
  - closefd
  - __has_feature
  - __GNUC_PREREQ__
  - __GNUC_PREREQ__
  - v_printflike_
  - v_gcov_flush
  - v_gcov_flush
  - v_gcov_flush
  - v_gcov_flush
  - PAOK
  - PRNDDN
  - PRNDUP
  - TRUST_ME
  - PWR2
  - RDN2
  - RUP2
  - VINDIRECT
  - VCOMBINE
  - VUNIQ_NAME
  - VUNIQ_NAME
  - typeof
  - _vtake
  - vtake
  - vmin
  - vmax
  - vmin_t
  - vmax_t
  - vlimit
  - vlimit_t
  - vcountof
  - v_statevariable_
  - NEEDLESS
  - NEEDLESS
  - v_used_
  - v_counted_by_
  - Tcheck
  - Tlen
  - Tstreq
  - Tforeach
  - LIKELY
  - UNLIKELY
  - __DEQUALIFY
  - __containerof
  - __containerof
  - __has_builtin
  - vstrcmp
  - vstrcmp
  - vstrlen
  - vstrlen
  - vmemcmp
  - vmemcmp
  source_file: /src/VTest2/lib/vdef.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: v_noreturn_
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: __attribute__((__noreturn__))
    - item_type: preproc_def
      name: v_deprecated_
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: __attribute__((deprecated))
    - item_type: preproc_def
      name: v_dont_optimize
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: __attribute__((optimize("O")))
    - item_type: preproc_def
      name: VRT_INTEGER_MAX
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: '999999999999999'
    - item_type: preproc_def
      name: VRT_INTEGER_MIN
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: '-999999999999999'
    - item_type: preproc_def
      name: VRT_DECIMAL_MAX
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: 0x1.d1a94a1fffff8p+39
    - item_type: preproc_def
      name: VRT_DECIMAL_MIN
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: -0x1.d1a94a1fffff8p+39
    - item_type: preproc_def
      name: PALGN
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: "(sizeof(double) - 1)\t"
    - item_type: preproc_def
      name: PALGN
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: "(sizeof(void *) - 1)\t"
    - item_type: preproc_def
      name: opmin
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: <
    - item_type: preproc_def
      name: opmax
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: '>'
    - item_type: preproc_def
      name: v_unused_
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: __attribute__((__unused__))
    - item_type: preproc_def
      name: v_cold_
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: __attribute__((cold))
    - item_type: preproc_def
      name: txt
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/VTest2/lib/vdef.h
      type_or_value: ){(s), (s) + strlen(s)})
    structs:
    - fields:
      - name: '*b'
        type: char
      - name: '*e'
        type: char
      item_type: struct
      name: txt
      pos:
        line_end: 282
        line_start: 279
        source_file: /src/VTest2/lib/vdef.h
    typedefs:
    - item_type: typedef
      name: vtim_mono
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/VTest2/lib/vdef.h
      type: double
    - item_type: typedef
      name: vtim_real
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/VTest2/lib/vdef.h
      type: double
    - item_type: typedef
      name: vtim_dur
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/VTest2/lib/vdef.h
      type: double
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vav.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARGV_COMMENT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/VTest2/lib/vav.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ARGV_COMMA
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/VTest2/lib/vav.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: ARGV_NOESC
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/VTest2/lib/vav.h
      type_or_value: (1 << 2)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vpf.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DBG
  - vev_bh_update
  - vev_bh_cmp
  - vev_get_pfd
  - vev_get_sig
  - vev_sigaction
  - VEV_New
  - VEV_Destroy
  - VEV_Alloc
  - VEV_Start
  - VEV_Stop
  - VEV_Loop
  - vev_sched_timeout
  - vev_sched_signal
  - VEV_Once
  source_file: /src/VTest2/lib/vev.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INFTIM
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/VTest2/lib/vev.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: VEV_BASE_MAGIC
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/VTest2/lib/vev.c
      type_or_value: '0x477bcf3d'
    structs:
    - fields:
      - name: '*vevb'
        type: struct vev_root
      - name: '*vev'
        type: struct vev
      - name: sigact
        type: struct sigaction
      - name: happened
        type: unsigned char
      - name: siginfo[1]
        type: siginfo_t
      item_type: struct
      name: vevsig
      pos:
        line_end: 62
        line_start: 56
        source_file: /src/VTest2/lib/vev.c
    - fields:
      - name: magic
        type: unsigned
      - name: n_fd_events
        type: unsigned
      - name: '*pfd'
        type: struct pollfd
      - name: '**pev'
        type: struct vev
      - name: npfd
        type: unsigned
      - name: lpfd
        type: unsigned
      - name: '*binheap'
        type: struct vbh
      - name: psig
        type: unsigned
      - name: thread
        type: pthread_t
      item_type: struct
      name: vev_root
      pos:
        line_end: 81
        line_start: 67
        source_file: /src/VTest2/lib/vev.c
    typedefs: []
    union: []
- function_names:
  - VUDP_Check
  - VUDP_close
  - VUDP_bind
  - vudp_lo_cb
  - VUDP_bind_on
  source_file: /src/VTest2/lib/vudp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VUS_is
  source_file: /src/VTest2/lib/vus.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: vus_resolved_f(void *priv, const struct sockaddr_un *)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/VTest2/lib/vus.h
      type: int
    union: []
- function_names:
  - mach_time_init
  - init
  - VTIM_mono
  - VTIM_real
  - VTIM_format
  - FAIL
  - FAIL
  - DIGIT
  - MUSTBE
  - WEEKDAY
  - MONTH
  - TIMESTAMP
  - VTIM_parse
  - VTIM_sleep
  - VTIM_timeval
  - VTIM_timespec
  - VTIM_timeval_sock
  - VTIM_poll_tmo
  - tst
  - tst_delta_check
  - tst_delta
  - bench
  - parse_check
  - main
  source_file: /src/VTest2/lib/vtim.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TTEST_MIN
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/VTest2/lib/vtim.c
      type_or_value: '(sizeof(time_t) >= 8 ? -2209852800LL : INT32_MIN)'
    - item_type: preproc_def
      name: TTEST_MAX
      pos:
        line_end: 593
        line_start: 592
        source_file: /src/VTest2/lib/vtim.c
      type_or_value: '(sizeof(time_t) >= 8 ? 20000000000LL : INT32_MAX)'
    structs: []
    typedefs: []
    union: []
- function_names:
  - VAS_errtxt
  - vas_default
  - v_noreturn_::VAS_Fail
  source_file: /src/VTest2/lib/vas.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vfil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: vfil_path_func_f(void *priv, const char *fn)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/VTest2/lib/vfil.h
      type: int
    union: []
- function_names:
  - VSUB_closefrom
  - vsub_vlu
  - VSUB_run
  source_file: /src/VTest2/lib/vsub.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*sb'
        type: struct vsb
      - name: lines
        type: int
      - name: maxlines
        type: int
      item_type: struct
      name: vsub_priv
      pos:
        line_end: 59
        line_start: 54
        source_file: /src/VTest2/lib/vsub.c
    typedefs: []
    union: []
- function_names:
  - vss_parse
  - vss_parse_range
  - vss_resolve
  - vss_alloc_suckaddr
  - VSS_resolver_socktype
  - VSS_resolver
  - VSS_resolver_range
  - VSS_ResolveOne
  - VSS_ResolveFirst
  source_file: /src/VTest2/lib/vss.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vrnd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: vrnd_lock_f(void)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/VTest2/lib/vrnd.h
      type: void
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vsb.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VSB_MAGIC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: '0x4a82dd8a'
    - item_type: preproc_def
      name: VSB_FIXEDLEN
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: "0x00000000\t"
    - item_type: preproc_def
      name: VSB_AUTOEXTEND
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: "0x00000001\t"
    - item_type: preproc_def
      name: VSB_USRFLAGMSK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: "0x0000ffff\t"
    - item_type: preproc_def
      name: VSB_DYNAMIC
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: "0x00010000\t"
    - item_type: preproc_def
      name: VSB_FINISHED
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: "0x00020000\t"
    - item_type: preproc_def
      name: VSB_DYNSTRUCT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: "0x00080000\t"
    - item_type: preproc_def
      name: VSB_QUOTE_PLAIN
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: '0'
    - item_type: preproc_def
      name: VSB_QUOTE_JSON
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: '2'
    - item_type: preproc_def
      name: VSB_QUOTE_HEX
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: '4'
    - item_type: preproc_def
      name: VSB_QUOTE_CSTR
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: '8'
    - item_type: preproc_def
      name: VSB_QUOTE_UNSAFE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: '16'
    - item_type: preproc_def
      name: VSB_QUOTE_NONL
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VSB_QUOTE_ESCHEX
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: '32'
    - item_type: preproc_def
      name: VSB_QUOTE_ABBREVIATE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/VTest2/lib/vsb.h
      type_or_value: '64'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: s_error
        type: int
      - name: '*s_buf'
        type: char
      - name: s_size
        type: ssize_t
      - name: s_len
        type: ssize_t
      - name: s_flags
        type: int
      - name: s_indent
        type: int
      item_type: struct
      name: vsb
      pos:
        line_end: 53
        line_start: 38
        source_file: /src/VTest2/lib/vsb.h
    typedefs: []
    union: []
- function_names:
  - vpf_verify
  - VPF_Read
  - VPF_Open
  - VPF_Write
  - VPF_Remove
  source_file: /src/VTest2/lib/vpf.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pf_fd
        type: int
      - name: '*pf_path'
        type: char
      - name: pf_dev
        type: dev_t
      - name: pf_ino
        type: ino_t
      item_type: struct
      name: vpf_fh
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/VTest2/lib/vpf.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vcli.h
  types:
    enum:
    - enumerators:
      - name: CLIS_SYNTAX
        value: '100'
      - name: CLIS_TOOMANY
        value: '105'
      - name: CLIS_UNIMPL
        value: '102'
      - name: CLIS_TOOFEW
        value: '104'
      - name: CLIS_UNKNOWN
        value: '101'
      - name: CLIS_PARAM
        value: '106'
      - name: CLIS_AUTH
        value: '107'
      - name: CLIS_OK
        value: '200'
      - name: CLIS_TRUNCATED
        value: '201'
      - name: CLIS_CANT
        value: '300'
      - name: CLIS_CLOSE
        value: '500'
      - name: CLIS_COMMS
        value: '400'
      item_type: enum
      name: VCLI_status_e
      pos:
        line_end: 56
        line_start: 43
        source_file: /src/VTest2/lib/vcli.h
    preproc_defs:
    - item_type: preproc_def
      name: CLI_LINE0_LEN
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/VTest2/lib/vcli.h
      type_or_value: '13'
    - item_type: preproc_def
      name: CLI_AUTH_RESPONSE_LEN
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/VTest2/lib/vcli.h
      type_or_value: "64\t"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vudp.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '**errp'
        type: char
      item_type: struct
      name: udp_helper
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/VTest2/lib/vudp.h
    typedefs: []
    union: []
- function_names:
  - good_rand
  - vrnd_RandomTestable
  - VRND_SeedTestable
  - VRND_RandomTestable
  - VRND_RandomTestableDouble
  - VRND_RandomCrypto
  - VRND_SeedAll
  source_file: /src/VTest2/lib/vrnd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TYPE_3
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/VTest2/lib/vrnd.c
      type_or_value: "3\t\t"
    - item_type: preproc_def
      name: DEG_3
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/VTest2/lib/vrnd.c
      type_or_value: '31'
    - item_type: preproc_def
      name: SEP_3
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/VTest2/lib/vrnd.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - vflopenat
  - VFL_Open
  source_file: /src/VTest2/lib/vfl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vnum.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VNUM_EPSILON
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/VTest2/lib/vnum.h
      type_or_value: (1e-9)
    - item_type: preproc_def
      name: VNUM_LEGAL_DURATION
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/VTest2/lib/vnum.h
      type_or_value: '"Legal duration units are ''ms'', ''s'', ''m'', ''h'', ''d'',
        ''w'' and ''y''"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sun_init
  - VUS_resolver
  - VUS_bind
  - VUS_connect
  - VUS_socklen
  source_file: /src/VTest2/lib/vus.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vss.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: vss_resolved_f(void *priv, const struct suckaddr *)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/VTest2/lib/vss.h
      type: int
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vsa.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pcre2_set_depth_limit
  - VRE_compile
  - VRE_error
  - VRE_unpack
  - vre_limit
  - VRE_export
  - vre_capture
  - VRE_match
  - VRE_capture
  - VRE_sub
  - VRE_free
  - VRE_quote
  source_file: /src/VTest2/lib/vre.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VRE_PACKED_RE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/VTest2/lib/vre.c
      type_or_value: (pcre2_code *)(-1)
    - item_type: preproc_def
      name: VRE_MAGIC
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/VTest2/lib/vre.c
      type_or_value: '0xe83097dc'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*re'
        type: pcre2_code
      - name: '*re_ctx'
        type: pcre2_match_context
      item_type: struct
      name: vre
      pos:
        line_end: 58
        line_start: 53
        source_file: /src/VTest2/lib/vre.c
    typedefs: []
    union: []
- function_names:
  - z_deflateInit
  - z_inflateInit
  - z_deflateInit2
  - z_inflateInit2
  - z_inflateBackInit
  - deflateInit
  - inflateInit
  - deflateInit2
  - inflateInit2
  - inflateBackInit
  - z_gzgetc
  - gzgetc
  source_file: /src/VTest2/lib/vgz.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ZLIB_VERSION
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '"1.3.1.1-motley"'
    - item_type: preproc_def
      name: ZLIB_VERNUM
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '0x1311'
    - item_type: preproc_def
      name: ZLIB_VER_MAJOR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ZLIB_VER_MINOR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ZLIB_VER_REVISION
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ZLIB_VER_SUBREVISION
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VGZ_EXTENSIONS
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_NO_FLUSH
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Z_PARTIAL_FLUSH
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_SYNC_FLUSH
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '2'
    - item_type: preproc_def
      name: Z_FULL_FLUSH
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '3'
    - item_type: preproc_def
      name: Z_FINISH
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '4'
    - item_type: preproc_def
      name: Z_BLOCK
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '5'
    - item_type: preproc_def
      name: Z_TREES
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '6'
    - item_type: preproc_def
      name: Z_OK
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Z_STREAM_END
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_NEED_DICT
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '2'
    - item_type: preproc_def
      name: Z_ERRNO
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: Z_STREAM_ERROR
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: Z_DATA_ERROR
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: (-3)
    - item_type: preproc_def
      name: Z_MEM_ERROR
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: (-4)
    - item_type: preproc_def
      name: Z_BUF_ERROR
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: (-5)
    - item_type: preproc_def
      name: Z_VERSION_ERROR
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: (-6)
    - item_type: preproc_def
      name: Z_NO_COMPRESSION
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Z_BEST_SPEED
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_BEST_COMPRESSION
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '9'
    - item_type: preproc_def
      name: Z_DEFAULT_COMPRESSION
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: Z_FILTERED
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_HUFFMAN_ONLY
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '2'
    - item_type: preproc_def
      name: Z_RLE
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '3'
    - item_type: preproc_def
      name: Z_FIXED
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '4'
    - item_type: preproc_def
      name: Z_DEFAULT_STRATEGY
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Z_BINARY
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Z_TEXT
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Z_ASCII
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: 'Z_TEXT   '
    - item_type: preproc_def
      name: Z_UNKNOWN
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '2'
    - item_type: preproc_def
      name: Z_DEFLATED
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '8'
    - item_type: preproc_def
      name: Z_NULL
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: '0  '
    - item_type: preproc_def
      name: zlib_version
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: zlibVersion()
    - item_type: preproc_def
      name: z_gzopen
      pos:
        line_end: 1890
        line_start: 1889
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: z_gzopen64
    - item_type: preproc_def
      name: z_gzseek
      pos:
        line_end: 1891
        line_start: 1890
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: z_gzseek64
    - item_type: preproc_def
      name: z_gztell
      pos:
        line_end: 1892
        line_start: 1891
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: z_gztell64
    - item_type: preproc_def
      name: z_gzoffset
      pos:
        line_end: 1893
        line_start: 1892
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: z_gzoffset64
    - item_type: preproc_def
      name: z_adler32_combine
      pos:
        line_end: 1894
        line_start: 1893
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: z_adler32_combine64
    - item_type: preproc_def
      name: z_crc32_combine
      pos:
        line_end: 1895
        line_start: 1894
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: z_crc32_combine64
    - item_type: preproc_def
      name: z_crc32_combine_gen
      pos:
        line_end: 1896
        line_start: 1895
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: z_crc32_combine_gen64
    - item_type: preproc_def
      name: gzopen
      pos:
        line_end: 1898
        line_start: 1897
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: gzopen64
    - item_type: preproc_def
      name: gzseek
      pos:
        line_end: 1899
        line_start: 1898
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: gzseek64
    - item_type: preproc_def
      name: gztell
      pos:
        line_end: 1900
        line_start: 1899
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: gztell64
    - item_type: preproc_def
      name: gzoffset
      pos:
        line_end: 1901
        line_start: 1900
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: gzoffset64
    - item_type: preproc_def
      name: adler32_combine
      pos:
        line_end: 1902
        line_start: 1901
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: adler32_combine64
    - item_type: preproc_def
      name: crc32_combine
      pos:
        line_end: 1903
        line_start: 1902
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: crc32_combine64
    - item_type: preproc_def
      name: crc32_combine_gen
      pos:
        line_end: 1904
        line_start: 1903
        source_file: /src/VTest2/lib/vgz.h
      type_or_value: crc32_combine_gen64
    structs:
    - fields:
      - name: '*next_in'
        type: z_const
      - name: avail_in
        type: uInt
      - name: total_in
        type: uLong
      - name: '*next_out'
        type: Bytef
      - name: avail_out
        type: uInt
      - name: total_out
        type: uLong
      - name: '*msg'
        type: z_const
      - name: '*state'
        type: struct internal_state
      - name: zalloc
        type: alloc_func
      - name: zfree
        type: free_func
      - name: opaque
        type: voidpf
      - name: data_type
        type: int
      - name: adler
        type: uLong
      - name: reserved
        type: uLong
      - name: start_bit
        type: uLong
      - name: stop_bit
        type: uLong
      - name: last_bit
        type: uLong
      item_type: struct
      name: z_stream_s
      pos:
        line_end: 110
        line_start: 85
        source_file: /src/VTest2/lib/vgz.h
    - fields:
      - name: text
        type: int
      - name: time
        type: uLong
      - name: xflags
        type: int
      - name: os
        type: int
      - name: '*extra'
        type: Bytef
      - name: extra_len
        type: uInt
      - name: extra_max
        type: uInt
      - name: '*name'
        type: Bytef
      - name: name_max
        type: uInt
      - name: '*comment'
        type: Bytef
      - name: comm_max
        type: uInt
      - name: hcrc
        type: int
      - name: done
        type: int
      item_type: struct
      name: gz_header_s
      pos:
        line_end: 133
        line_start: 118
        source_file: /src/VTest2/lib/vgz.h
    - fields:
      - name: have
        type: unsigned
      - name: '*next'
        type: unsigned char
      - name: pos
        type: z_off64_t
      item_type: struct
      name: gzFile_s
      pos:
        line_end: 1860
        line_start: 1856
        source_file: /src/VTest2/lib/vgz.h
    typedefs:
    - item_type: typedef
      name: (*alloc_func) (voidpf opaque, uInt items, uInt size)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/VTest2/lib/vgz.h
      type: voidpf
    - item_type: typedef
      name: (*free_func)  (voidpf opaque, voidpf address)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/VTest2/lib/vgz.h
      type: void
    - item_type: typedef
      name: '*z_streamp'
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/VTest2/lib/vgz.h
      type: z_stream
    - item_type: typedef
      name: '*gz_headerp'
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/VTest2/lib/vgz.h
      type: gz_header
    - item_type: typedef
      name: "(*in_func) (void FAR *,\n                                z_const unsigned
        char FAR * FAR *)"
      pos:
        line_end: 1117
        line_start: 1116
        source_file: /src/VTest2/lib/vgz.h
      type: unsigned
    - item_type: typedef
      name: (*out_func) (void FAR *, unsigned char FAR *, unsigned)
      pos:
        line_end: 1118
        line_start: 1118
        source_file: /src/VTest2/lib/vgz.h
      type: int
    - item_type: typedef
      name: '*gzFile'
      pos:
        line_end: 1324
        line_start: 1324
        source_file: /src/VTest2/lib/vgz.h
      type: gzFile_s
    union: []
- function_names:
  - KASSERT
  - SBMALLOC
  - SBFREE
  - rndup2
  - VSB_ISDYNAMIC
  - VSB_ISDYNSTRUCT
  - VSB_HASROOM
  - VSB_FREESPACE
  - VSB_CANEXTEND
  - VSB_SETFLAG
  - VSB_CLEARFLAG
  - _assert_VSB_integrity
  - _assert_VSB_state
  - assert_VSB_integrity
  - assert_VSB_state
  - assert_VSB_integrity
  - assert_VSB_state
  - VSB_extendsize
  - VSB_extend
  - _vsb_indent
  - VSB_newbuf
  - VSB_init
  - VSB_new_auto
  - VSB_clear
  - VSB_put_byte
  - VSB_bcat
  - VSB_cat
  - VSB_vprintf
  - VSB_printf
  - VSB_putc
  - VSB_error
  - VSB_finish
  - VSB_data
  - VSB_len
  - VSB_fini
  - VSB_destroy
  - vsb_quote_hex
  - VSB_quote_pfx
  - VSB_quote
  - VSB_indent
  - VSB_tofile
  source_file: /src/VTest2/lib/vsb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VSB_MINEXTENDSIZE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/VTest2/lib/vsb.c
      type_or_value: "16\t\t"
    - item_type: preproc_def
      name: VSB_MAXEXTENDSIZE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/VTest2/lib/vsb.c
      type_or_value: PAGE_SIZE
    - item_type: preproc_def
      name: VSB_MAXEXTENDINCR
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/VTest2/lib/vsb.c
      type_or_value: PAGE_SIZE
    - item_type: preproc_def
      name: VSB_MAXEXTENDSIZE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/VTest2/lib/vsb.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: VSB_MAXEXTENDINCR
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/VTest2/lib/vsb.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - VJSN_TYPE_MACRO
  source_file: /src/VTest2/lib/vjsn.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VJSN_TYPES
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/VTest2/lib/vjsn.h
      type_or_value: "VJSN_TYPE_MACRO(OBJECT, object) \\\n\tVJSN_TYPE_MACRO(ARRAY,
        array) \\\n\tVJSN_TYPE_MACRO(NUMBER, number) \\\n\tVJSN_TYPE_MACRO(STRING,
        string) \\\n\tVJSN_TYPE_MACRO(TRUE, true) \\\n\tVJSN_TYPE_MACRO(FALSE, false)
        \\\n\tVJSN_TYPE_MACRO(NULL, null)"
    - item_type: preproc_def
      name: VJSN_VAL_MAGIC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/VTest2/lib/vjsn.h
      type_or_value: '0x08a06b80'
    - item_type: preproc_def
      name: VJSN_MAGIC
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/VTest2/lib/vjsn.h
      type_or_value: '0x86a7f02b'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*type'
        type: char
      - name: '*name'
        type: char
      - name: '*name_e'
        type: char
      - name: (vjsn_val)
        type: VTAILQ_ENTRY
      - name: (,vjsn_val)
        type: VTAILQ_HEAD
      - name: '*value'
        type: char
      - name: '*value_e'
        type: char
      item_type: struct
      name: vjsn_val
      pos:
        line_end: 49
        line_start: 39
        source_file: /src/VTest2/lib/vjsn.h
    - fields:
      - name: magic
        type: unsigned
      - name: '*raw'
        type: char
      - name: '*ptr'
        type: char
      - name: '*value'
        type: struct vjsn_val
      - name: '*err'
        type: char
      item_type: struct
      name: vjsn
      pos:
        line_end: 59
        line_start: 51
        source_file: /src/VTest2/lib/vjsn.h
    typedefs: []
    union: []
- function_names:
  - VCT_invalid_name
  - main
  source_file: /src/VTest2/lib/vct.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VCT_UPALPHA
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/VTest2/lib/vct.c
      type_or_value: (VCT_ALPHA | VCT_UPPER | VCT_BASE64)
    - item_type: preproc_def
      name: VCT_LOALPHA
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/VTest2/lib/vct.c
      type_or_value: (VCT_ALPHA | VCT_LOWER | VCT_BASE64)
    structs: []
    typedefs: []
    union: []
- function_names:
  - BAIL
  - sf_parse_int
  - SF_Parse_Integer
  - SF_Parse_Number
  - SF_Parse_Decimal
  - VNUM
  - VNUM_duration_unit
  - VNUM_duration
  - VNUM_bytes_unit
  - VNUM_2bytes
  - vnum_uint
  - VNUM_uint
  - VNUM_hex
  - main
  source_file: /src/VTest2/lib/vnum.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*input'
        type: char
      - name: maxdig
        type: int
      - name: retval
        type: int64_t
      - name: consumed
        type: int
      - name: sign
        type: int
      - name: '*errtxt'
        type: char
      item_type: struct
      name: test_sf_parse_int
      pos:
        line_end: 432
        line_start: 425
        source_file: /src/VTest2/lib/vnum.c
    - fields:
      - name: '*input'
        type: char
      - name: strict
        type: int
      - name: retval
        type: double
      - name: consumed
        type: int
      - name: '*errtxt'
        type: char
      item_type: struct
      name: test_sf_parse_number
      pos:
        line_end: 454
        line_start: 448
        source_file: /src/VTest2/lib/vnum.c
    - fields:
      - name: '*str'
        type: char
      - name: rel
        type: uintmax_t
      - name: val
        type: uintmax_t
      - name: '*err'
        type: char
      item_type: struct
      name: test_case
      pos:
        line_end: 488
        line_start: 483
        source_file: /src/VTest2/lib/vnum.c
    typedefs: []
    union: []
- function_names:
  - VJSN_TYPE_MACRO
  - VJSN_EXPECT
  - vjsn_val_new
  - vjsn_val_delete
  - vjsn_delete
  - vjsn_skip_ws
  - vjsn_unumber
  - vjsn_unicode
  - vjsn_string
  - vjsn_object
  - vjsn_array
  - vjsn_number
  - vjsn_value
  - vjsn_parse_end
  - vjsn_parse
  - vjsn_child
  - vjsn_dump_i
  - vjsn_dump_val
  - vjsn_dump
  - VJSN_TYPE_MACRO
  - test_good
  - test_bad
  - main
  source_file: /src/VTest2/lib/vjsn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vre.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VRE_ERROR_LEN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/VTest2/lib/vre.h
      type_or_value: '128'
    structs:
    - fields:
      - name: match
        type: unsigned
      - name: depth
        type: unsigned
      item_type: struct
      name: vre_limits
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/VTest2/lib/vre.h
    typedefs:
    - item_type: typedef
      name: vre_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/VTest2/lib/vre.h
      type: vre
    union: []
- function_names:
  - vav_backslash_txt
  - VAV_BackSlash
  - VAV_BackSlashDecode
  - VAV_ParseTxt
  - VAV_Parse
  - VAV_Free
  - VAV_Print
  - Test
  - printf_v
  - printf_v_info
  - main
  - test_run
  - main
  source_file: /src/VTest2/lib/vav.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: flag
        type: int
      - name: '*str'
        type: char
      - name: '**argv'
        type: char
      item_type: struct
      name: test_case
      pos:
        line_end: 376
        line_start: 372
        source_file: /src/VTest2/lib/vav.c
    typedefs: []
    union: []
- function_names:
  - ZERO_OBJ
  - INIT_OBJ
  - FINI_OBJ
  - ALLOC_OBJ
  - ALLOC_OBJ_EXTRA
  - SIZEOF_FLEX_OBJ
  - ALLOC_FLEX_OBJ
  - FREE_OBJ
  - VALID_OBJ
  - CHECK_OBJ
  - CHECK_OBJ_NOTNULL
  - CHECK_OBJ_ORNULL
  - CAST_OBJ
  - CAST_OBJ_NOTNULL
  - TAKE_OBJ_NOTNULL
  - REPLACE
  source_file: /src/VTest2/lib/miniobj.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vbt_unwind
  - vbt_execinfo
  - VBT_format
  - VBT_dump
  source_file: /src/VTest2/lib/vbt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BACKTRACE_LEVELS
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/VTest2/lib/vbt.c
      type_or_value: '20'
    structs: []
    typedefs: []
    union: []
- function_names:
  - vtcp_sa_to_ascii
  - VTCP_name
  - VTCP_my_suckaddr
  - VTCP_myname
  - VTCP_hisname
  - VTCP_filter_http
  - VTCP_filter_http
  - VTCP_filter_http
  - VTCP_fastopen
  - VTCP_blocking
  - VTCP_nonblocking
  - VTCP_connected
  - VTCP_connect
  - VTCP_close
  - VTCP_set_read_timeout
  - vtcp_open_callback
  - VTCP_open
  - VTCP_bind
  - VTCP_listen
  - vtcp_lo_cb
  - VTCP_listen_on
  - VTCP_linger
  - VTCP_check_hup
  - VTCP_Check
  - VTCP_read
  source_file: /src/VTest2/lib/vtcp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SOL_TCP
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/VTest2/lib/vtcp.c
      type_or_value: IPPROTO_TCP
    - item_type: preproc_def
      name: VTO_PRIV_MAGIC
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/VTest2/lib/vtcp.c
      type_or_value: '0xca70b0e7'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: latest_errno
        type: int
      - name: fd
        type: int
      - name: timeout
        type: double
      item_type: struct
      name: vto_priv
      pos:
        line_end: 368
        line_start: 362
        source_file: /src/VTest2/lib/vtcp.c
    - fields:
      - name: depth
        type: int
      - name: '**errp'
        type: char
      item_type: struct
      name: helper
      pos:
        line_end: 500
        line_start: 497
        source_file: /src/VTest2/lib/vtcp.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vre_pcre2.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/VTest2/lib/vre_pcre2.h
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vlu.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (vlu_f)(void *, const char *)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/VTest2/lib/vlu.h
      type: int
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vev.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VEV_MAGIC
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/VTest2/lib/vev.h
      type_or_value: '0x46bbd419'
    - item_type: preproc_def
      name: VEV__RD
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/VTest2/lib/vev.h
      type_or_value: POLLIN
    - item_type: preproc_def
      name: VEV__WR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/VTest2/lib/vev.h
      type_or_value: POLLOUT
    - item_type: preproc_def
      name: VEV__ERR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/VTest2/lib/vev.h
      type_or_value: POLLERR
    - item_type: preproc_def
      name: VEV__HUP
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/VTest2/lib/vev.h
      type_or_value: POLLHUP
    - item_type: preproc_def
      name: VEV__SIG
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/VTest2/lib/vev.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*name'
        type: char
      - name: fd
        type: int
      - name: fd_flags
        type: unsigned
      - name: fd_events
        type: unsigned
      - name: sig
        type: int
      - name: sig_flags
        type: unsigned
      - name: timeout
        type: double
      - name: '*callback'
        type: vev_cb_f
      - name: '*siginfo'
        type: siginfo_t
      - name: '*priv'
        type: void
      - name: __when
        type: double
      - name: __binheap_idx
        type: unsigned
      - name: __privflags
        type: unsigned
      - name: '*__vevb'
        type: struct vev_root
      item_type: struct
      name: vev
      pos:
        line_end: 63
        line_start: 37
        source_file: /src/VTest2/lib/vev.h
    typedefs:
    - item_type: typedef
      name: vev_cb_f(const struct vev *, int what)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/VTest2/lib/vev.h
      type: int
    union: []
- function_names:
  - ROW
  - A
  - parent
  - child
  - parent
  - child
  - vbh_addrow
  - VBH_new
  - VBH_destroy
  - vbh_update
  - binhead_swap
  - vbh_trickleup
  - vbh_trickledown
  - VBH_insert
  - chk
  - VBH_root
  - VBH_delete
  - VBH_reorder
  - cmp
  - update
  - chk2
  - vrnd_lock
  - main
  source_file: /src/VTest2/lib/vbh.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ROW_SHIFT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/VTest2/lib/vbh.c
      type_or_value: '16'
    - item_type: preproc_def
      name: ROOT_IDX
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/VTest2/lib/vbh.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ROW_WIDTH
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/VTest2/lib/vbh.c
      type_or_value: (1 << ROW_SHIFT)
    - item_type: preproc_def
      name: VBH_MAGIC
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/VTest2/lib/vbh.c
      type_or_value: "0xf581581a\t"
    - item_type: preproc_def
      name: FOO_MAGIC
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/VTest2/lib/vbh.c
      type_or_value: '0x23239823'
    - item_type: preproc_def
      name: M
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/VTest2/lib/vbh.c
      type_or_value: "500083\t"
    - item_type: preproc_def
      name: N
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/VTest2/lib/vbh.c
      type_or_value: "131101\t"
    - item_type: preproc_def
      name: R
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/VTest2/lib/vbh.c
      type_or_value: "-1\t\t"
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*priv'
        type: void
      - name: '*cmp'
        type: vbh_cmp_t
      - name: '*update'
        type: vbh_update_t
      - name: '***array'
        type: void
      - name: rows
        type: unsigned
      - name: length
        type: unsigned
      - name: next
        type: unsigned
      - name: page_size
        type: unsigned
      - name: page_mask
        type: unsigned
      - name: page_shift
        type: unsigned
      item_type: struct
      name: vbh
      pos:
        line_end: 94
        line_start: 81
        source_file: /src/VTest2/lib/vbh.c
    - fields:
      - name: magic
        type: unsigned
      - name: idx
        type: unsigned
      - name: key
        type: unsigned
      - name: n
        type: unsigned
      item_type: struct
      name: foo
      pos:
        line_end: 487
        line_start: 481
        source_file: /src/VTest2/lib/vbh.c
    typedefs: []
    union: []
- function_names:
  - vbe16dec
  - vbe32dec
  - vbe64dec
  - vle16dec
  - vle32dec
  - vle64dec
  - vbe16enc
  - vbe32enc
  - vbe64enc
  - vle16enc
  - vle32enc
  - vle64enc
  source_file: /src/VTest2/lib/vend.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vsub.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: vsub_func_f(void*)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/VTest2/lib/vsub.h
      type: void
    union: []
- function_names:
  - vct_is
  - vct_isows
  - vct_issp
  - vct_ishex
  - vct_islws
  - vct_isctl
  - vct_isspace
  - vct_isdigit
  - vct_isalpha
  - vct_islower
  - vct_isupper
  - vct_isalnum
  - vct_isbase64
  - vct_issep
  - vct_issepctl
  - vct_isident1
  - vct_isident
  - vct_isxmlnamestart
  - vct_isxmlname
  - vct_istchar
  - vct_ishdrval
  - vct_iscrlf
  - vct_skipcrlf
  - vct_casecmp
  - vct_caselencmp
  source_file: /src/VTest2/lib/vct.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VCT_OWS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: VCT_CRLF
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: VCT_LWS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (VCT_CRLF | VCT_OWS)
    - item_type: preproc_def
      name: VCT_CTL
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: VCT_ALPHA
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: VCT_SEPARATOR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: VCT_DIGIT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: VCT_HEX
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<6)
    - item_type: preproc_def
      name: VCT_XMLNAMESTART
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<7)
    - item_type: preproc_def
      name: VCT_XMLNAME
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<8)
    - item_type: preproc_def
      name: VCT_TCHAR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<9)
    - item_type: preproc_def
      name: VCT_ID
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<10)
    - item_type: preproc_def
      name: VCT_IDENT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (VCT_ALPHA | VCT_DIGIT | VCT_ID)
    - item_type: preproc_def
      name: VCT_BASE64
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<11)
    - item_type: preproc_def
      name: VCT_VT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: VCT_SPACE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (VCT_LWS | VCT_VT)
    - item_type: preproc_def
      name: VCT_UPPER
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<13)
    - item_type: preproc_def
      name: VCT_LOWER
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/VTest2/lib/vct.h
      type_or_value: (1<<14)
    structs: []
    typedefs: []
    union: []
- function_names:
  - VLU_New
  - VLU_Reset
  - VLU_Destroy
  - LineUpProcess
  - VLU_Fd
  - VLU_File
  - VLU_Feed
  source_file: /src/VTest2/lib/vlu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LINEUP_MAGIC
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/VTest2/lib/vlu.c
      type_or_value: '0x08286661'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*buf'
        type: char
      - name: bufl
        type: unsigned
      - name: bufp
        type: unsigned
      - name: '*priv'
        type: void
      - name: '*func'
        type: vlu_f
      item_type: struct
      name: vlu
      pos:
        line_end: 53
        line_start: 45
        source_file: /src/VTest2/lib/vlu.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vbt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tv_vtim
  - ts_vtim
  source_file: /src/VTest2/lib/vtim.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VTIM_FORMAT_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/VTest2/lib/vtim.h
      type_or_value: '30'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/VTest2/lib/vbh.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VBH_NOIDX
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/VTest2/lib/vbh.h
      type_or_value: '0'
    structs: []
    typedefs:
    - item_type: typedef
      name: vbh_cmp_t(void *priv, const void *a, const void *b)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/VTest2/lib/vbh.h
      type: int
    - item_type: typedef
      name: vbh_update_t(void *priv, void *a, unsigned newidx)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/VTest2/lib/vbh.h
      type: void
    union: []
- function_names:
  - VTCP_Assert
  source_file: /src/VTest2/lib/vtcp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VTCP_ADDRBUFSIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/VTest2/lib/vtcp.h
      type_or_value: '64'
    - item_type: preproc_def
      name: VTCP_PORTBUFSIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/VTest2/lib/vtcp.h
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - VSIG_SIGNAL
  - WCOREDUMP
  - WCOREDUMP
  source_file: /src/VTest2/lib/vapi/vsig.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hash_id
  - hash_tw1
  - hash_tw2
  - hash_tw3
  - hash_bj6
  - hash_bj7
  - count_hash_results
  - dump_hash_results
  - main
  source_file: /src/haproxy/tests/exp/ip-hash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NSERV
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/haproxy/tests/exp/ip-hash.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MAXLINE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/haproxy/tests/exp/ip-hash.c
      type_or_value: '1000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/haproxy/tests/exp/blocksig.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - queue_by_weight
  - queue_by_weight_0
  - dequeue_srv
  - put_srv
  - get_srv_init
  - get_srv_next
  - get_srv_down
  - get_srv
  - get_next_server
  - update_position
  - switch_trees
  - main
  source_file: /src/haproxy/tests/exp/filltab25.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: node
        type: struct eb32_node
      - name: '*tree'
        type: struct eb_root
      - name: num
        type: int
      - name: w
        type: int
      - name: next
        type: int
      - name: rem
        type: int
      item_type: struct
      name: srv
      pos:
        line_end: 20
        line_start: 13
        source_file: /src/haproxy/tests/exp/filltab25.c
    typedefs: []
    union: []
- function_names:
  - timeval_current
  - timeval_elapsed
  - haproxy_uri_hash
  - sax_hash
  - haproxy_server_hash
  - hashpjw
  - hash_djbx33
  - bernstein
  - get16bits
  - get16bits
  - SuperFastHash
  - SuperFastHash2
  - fnv_32a_str
  - rot
  - mix
  - final
  - hashword
  - kr_hash
  - fnv_hash
  - oat_hash
  - wt_hash
  - run_test
  - main
  source_file: /src/haproxy/tests/exp/test_hashes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAPROXY_BACKENDS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/tests/exp/test_hashes.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FNV_32_PRIME
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/haproxy/tests/exp/test_hashes.c
      type_or_value: ((Fnv32_t)0x01000193)
    - item_type: preproc_def
      name: HASHSIZE
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/haproxy/tests/exp/test_hashes.c
      type_or_value: '101'
    structs: []
    typedefs:
    - item_type: typedef
      name: ub4
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/haproxy/tests/exp/test_hashes.c
      type: unsigned long  int
    - item_type: typedef
      name: ub1
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/haproxy/tests/exp/test_hashes.c
      type: unsigned       char
    - item_type: typedef
      name: Fnv32_t
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/haproxy/tests/exp/test_hashes.c
      type: unsigned long
    union: []
- function_names:
  - main
  source_file: /src/haproxy/tests/exp/testinet.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hash_gd1
  - hash_gd2
  - hash_gd3
  - hash_gd4
  - hash_gd5
  - hash_gd6
  - hash_wt1
  - shl32
  - shr32
  - rev32
  - hash_wt2
  - get16bits
  - get16bits
  - SuperFastHash
  - SuperFastHash2
  - haproxy_server_hash
  - count_hash_results
  - dump_hash_results
  - main
  source_file: /src/haproxy/tests/exp/uri_hash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NSERV
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/haproxy/tests/exp/uri_hash.c
      type_or_value: '10'
    - item_type: preproc_def
      name: MAXLINE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/haproxy/tests/exp/uri_hash.c
      type_or_value: '1000'
    structs: []
    typedefs:
    - item_type: typedef
      name: u_int32_t
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/haproxy/tests/exp/uri_hash.c
      type: unsigned int
    union: []
- function_names:
  - rnd32
  - thread
  - main
  source_file: /src/haproxy/tests/unit/test-list.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ACTION
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/haproxy/tests/unit/test-list.c
      type_or_value: '5000000'
    structs:
    - fields:
      - name: list_elt
        type: struct mt_list
      item_type: struct
      name: pouet_lol
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/haproxy/tests/unit/test-list.c
    typedefs: []
    union: []
- function_names:
  - f_ist
  - test_ist
  - f_ist2
  - test_ist2
  - f_istlen
  - test_istlen
  - f_istnext
  - test_istnext
  - f_istpad
  - test_istpad
  - f_isttrim
  - test_isttrim
  - f_istzero
  - test_istzero
  - f_iststrip
  - test_iststrip
  - f_istdiff
  - test_istdiff
  - f_istmatch
  - test_istmatch
  - f_istnmatch
  - test_istnmatch
  - f_isteq
  - test_isteq
  - f_istneq
  - test_istneq
  - f_istcpy
  - test_istcpy
  - f_istscpy
  - test_istscpy
  - f_istcat
  - test_istcat
  - f_istscat
  - test_istscat
  - f_istchr
  - test_istchr
  - f_istfind
  - test_istfind
  - f_istskip
  - test_istskip
  - f_istist
  - test_istist
  - main
  source_file: /src/haproxy/tests/unit/ist.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/haproxy/tests/unit/test-arg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - statistical_prng
  - one_among
  - main
  source_file: /src/haproxy/tests/unit/test-1-among.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_char4_outside
  - is_char8_outside_by4
  - is_char8_outside_by8
  - is_char8_outside
  - slow32_ref
  - slow64_ref
  - fast32_gen
  - fast64_gen4
  - fast64_gen8
  - fast64_gen
  - fast32_spec
  - fast64_spec
  - rnd64
  - main
  source_file: /src/haproxy/tests/unit/test-int-range.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RND64SEED
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/tests/unit/test-int-range.c
      type_or_value: 0x9876543210abcdefull
    structs: []
    typedefs: []
    union: []
- function_names:
  - die
  - usage
  - dump_ring_as_buf
  - dump_ring_v1
  - dump_ring_v2
  - dump_ring_v2a
  - main
  source_file: /src/haproxy/dev/haring/haring.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: buf
        type: struct buffer
      item_type: struct
      name: ring_v1
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/haproxy/dev/haring/haring.c
    - fields:
      - name: size
        type: size_t
      - name: rsvd
        type: size_t
      - name: tail
        type: size_t
      - name: head
        type: size_t
      - name: area[0]
        type: char
      item_type: struct
      name: ring_v2
      pos:
        line_end: 55
        line_start: 49
        source_file: /src/haproxy/dev/haring/haring.c
    - fields:
      - name: size
        type: size_t
      - name: rsvd
        type: size_t
      - name: ALIGNED(64)
        type: size_t
      - name: ALIGNED(64)
        type: size_t
      - name: ALIGNED(64)
        type: char
      item_type: struct
      name: ring_v2a
      pos:
        line_end: 64
        line_start: 58
        source_file: /src/haproxy/dev/haring/haring.c
    typedefs: []
    union: []
- function_names:
  - usage_exit
  - to_upper
  - tevt_show_events
  - tevt_show_tuple_events
  - main
  source_file: /src/haproxy/dev/term_events/term_events.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*loc'
        type: char
      - name: '**types'
        type: char
      item_type: struct
      name: tevt_info
      pos:
        line_end: 9
        line_start: 6
        source_file: /src/haproxy/dev/term_events/term_events.c
    typedefs: []
    union: []
- function_names:
  - die
  - usage
  - dolog
  - unescape
  - alloc_err_msg
  - sig_handler
  - addr_to_ss
  - wait_on_fd
  - tcp_set_nodelay
  - tcp_set_nolinger
  - tcp_set_noquickack
  - tcp_socket
  - tcp_bind
  - tcp_listen
  - tcp_accept
  - tcp_connect
  - tcp_disconnect
  - tcp_recv
  - tcp_send
  - tcp_echo
  - tcp_wait
  - tcp_wait_in
  - tcp_wait_out
  - tcp_pause
  - tcp_fork
  - main
  source_file: /src/haproxy/dev/tcploop/tcploop.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLLRDHUP
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/dev/tcploop/tcploop.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MSG_MORE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/dev/tcploop/tcploop.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TRASH_SIZE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/dev/tcploop/tcploop.c
      type_or_value: '65536'
    structs:
    - fields:
      - name: size
        type: int
      - name: len
        type: int
      - name: msg[0]
        type: char
      item_type: struct
      name: err_msg
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/haproxy/dev/tcploop/tcploop.c
    typedefs: []
    union: []
- function_names:
  - get_show_as
  - usage_exit
  - main
  source_file: /src/haproxy/dev/flags/flags.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHOW_AS_ANA
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: SHOW_AS_CHN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: SHOW_AS_CONN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: SHOW_AS_SC
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: SHOW_AS_SET
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: SHOW_AS_STRM
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: SHOW_AS_TASK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: SHOW_AS_TXN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: SHOW_AS_SD
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: SHOW_AS_HSL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: SHOW_AS_HTX
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: SHOW_AS_HMSG
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: SHOW_AS_FD
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: SHOW_AS_H2C
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: SHOW_AS_H2S
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: SHOW_AS_H1C
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: SHOW_AS_H1S
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: SHOW_AS_FCONN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00020000'
    - item_type: preproc_def
      name: SHOW_AS_FSTRM
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00040000'
    - item_type: preproc_def
      name: SHOW_AS_PEERS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00080000'
    - item_type: preproc_def
      name: SHOW_AS_PEER
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00100000'
    - item_type: preproc_def
      name: SHOW_AS_QC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00200000'
    - item_type: preproc_def
      name: SHOW_AS_SPOPC
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00400000'
    - item_type: preproc_def
      name: SHOW_AS_SPOPS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x00800000'
    - item_type: preproc_def
      name: SHOW_AS_QCC
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x01000000'
    - item_type: preproc_def
      name: SHOW_AS_QCS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x02000000'
    - item_type: preproc_def
      name: SHOW_AS_APPCTX
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/dev/flags/flags.c
      type_or_value: '0x04000000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - debug_hexdump
  - die
  - hex2bin
  - main
  source_file: /src/haproxy/dev/hpack/decode.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_RQ_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/dev/hpack/decode.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: MAX_HDR_NUM
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/dev/hpack/decode.c
      type_or_value: '1000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/haproxy/dev/hpack/gen-rht.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: c
        type: uint32_t
      - name: b
        type: int
      item_type: struct
      name: huff
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/haproxy/dev/hpack/gen-rht.c
    typedefs: []
    union: []
- function_names:
  - get_hdr_rank
  - cmp_idx
  - main
  source_file: /src/haproxy/dev/hpack/gen-enc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ptr'
        type: char
      - name: len
        type: int
      - name: idx
        type: int
      item_type: struct
      name: idxhdr
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/haproxy/dev/hpack/gen-enc.c
    - fields:
      - name: '*name'
        type: char
      - name: rank
        type: int
      item_type: struct
      name: "ranks[] = {\n\t{ .name = \"age\", .rank = 1 },\n\t{ .name = \"via\",
        .rank = 2 },\n\n\t{ .name = \"date\", .rank = 1 },\n\t{ .name = \"host\",
        .rank = 2 },\n\n\t{ .name = \"accept\", .rank = 1 },\n\t{ .name = \"server\",
        .rank = 2 },\n\t{ .name = \"cookie\", .rank = 3 },\n\n\t{ .name = \"referer\",
        .rank = 1 },\n\t{ .name = \"expires\", .rank = 2 },\n\n\t{ .name = \"location\",
        .rank = 1 },\n\n\t{ .name = \"user-agent\", .rank = 1 },\n\t{ .name = \"set-cookie\",
        .rank = 2 },\n\n\t{ .name = \"content-type\", .rank = 1 },\n\n\t{ .name =
        \"cache-control\", .rank = 1 },\n\t{ .name = \"last-modified\", .rank = 2
        },\n\t{ .name = \"accept-ranges\", .rank = 3 },\n\t{ .name = \"if-none-match\",
        .rank = 4 },\n\n\t{ .name = \"content-length\", .rank = 1 },\n\n\t{ .name
        = \"accept-encoding\", .rank = 1 },\n\t{ .name = \"accept-language\", .rank
        = 2 },\n\n\t{ .name = \"content-encoding\", .rank = 1 },\n\n\t{ .name = \"transfer-encoding\",
        .rank = 1 },\n\t{ .name = \"if-modified-since\", .rank = 2 },\n\n\t{ .name
        = \"content-disposition\", .rank = 1 },\n}"
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/haproxy/dev/hpack/gen-enc.c
    typedefs: []
    union: []
- function_names:
  - side
  - usage
  - die
  - get_errno
  - do_acc
  - do_con
  - do_snd
  - do_mor
  - do_rcv
  - do_drn
  - do_shr
  - do_shw
  - do_shb
  - do_lin
  - do_clo
  - do_pol
  - main
  source_file: /src/haproxy/dev/poll/poll.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLLRDHUP
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/dev/poll/poll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MSG_NOSIGNAL
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/dev/poll/poll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MSG_MORE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/dev/poll/poll.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ha_backtrace_to_stderr
  - hex2bin
  - debug_hexdump
  - main
  source_file: /src/haproxy/dev/qpack/decode.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_RQ_SIZE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/haproxy/dev/qpack/decode.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: MAX_HDR_NUM
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/haproxy/dev/qpack/decode.c
      type_or_value: '1000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - qdisc_init
  - plug_qdisc_release_indefinite_buffer
  - plug_qdisc_plug_buffer
  - plug_qdisc_attach
  source_file: /src/haproxy/dev/plug_qdisc/plug_qdisc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sysconf
  - sched_getaffinity
  - sched_setaffinity
  - usage
  - main
  source_file: /src/haproxy/dev/ncpu/ncpu.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/haproxy/dev/base64/base64rev-gen.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: base
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/haproxy/dev/base64/base64rev-gen.c
      type_or_value: "'#'\t"
    - item_type: preproc_def
      name: B64MAX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/haproxy/dev/base64/base64rev-gen.c
      type_or_value: '64'
    - item_type: preproc_def
      name: B64PADV
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/haproxy/dev/base64/base64rev-gen.c
      type_or_value: B64MAX
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnd32
  - hash
  - main
  source_file: /src/haproxy/dev/phash/phash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CODES
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/haproxy/dev/phash/phash.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/haproxy/dev/gdb/libs-from-core.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_memmem
  - main
  source_file: /src/haproxy/dev/gdb/pm-from-core.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: my_memmem
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/dev/gdb/pm-from-core.c
      type_or_value: memmem
    - item_type: preproc_def
      name: MAGIC
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/dev/gdb/pm-from-core.c
      type_or_value: '"POST-MORTEM STARTS HERE+7654321\0"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - die
  - prng
  - addr_to_ss
  - create_udp_listener
  - update_pfd
  - conn_bck_lookup
  - add_connection
  - pktbuf_apply_corruption
  - handle_frt
  - handle_bck
  - usage
  - main
  source_file: /src/haproxy/dev/udp/udp-perturb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXCONN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/dev/udp/udp-perturb.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MAXPKTSIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/dev/udp/udp-perturb.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: MAXREORDER
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/dev/udp/udp-perturb.c
      type_or_value: '20'
    structs:
    - fields:
      - name: cli_addr
        type: struct sockaddr_storage
      - name: fd_bck
        type: int
      item_type: struct
      name: conn
      pos:
        line_end: 57
        line_start: 54
        source_file: /src/haproxy/dev/udp/udp-perturb.c
    - fields:
      - name: '*msg'
        type: char
      - name: size
        type: int
      - name: len
        type: int
      item_type: struct
      name: errmsg
      pos:
        line_end: 63
        line_start: 59
        source_file: /src/haproxy/dev/udp/udp-perturb.c
    - fields:
      - name: buf[MAXPKTSIZE]
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: history[MAXREORDER]
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/haproxy/dev/udp/udp-perturb.c
    typedefs: []
    union: []
- function_names:
  - huff_enc
  - huff_dec
  source_file: /src/haproxy/src/hpack-huff.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: c
        type: uint32_t
      - name: b
        type: int
      item_type: struct
      name: huff
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/haproxy/src/hpack-huff.c
    typedefs: []
    union: []
- function_names:
  - diag_warning
  - diag_alloc
  - srv_diag_cookies
  - srv_diag_check_reuse
  - run_servers_diag
  - cfg_run_diagnostics
  source_file: /src/haproxy/src/cfgdiag.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: node
        type: struct ebpt_node
      item_type: struct
      name: cookie_entry
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/haproxy/src/cfgdiag.c
    typedefs: []
    union: []
- function_names:
  - tcp_bind_socket
  - tcp_connect_server
  - tcp_bind_listener
  - tcp_enable_listener
  - tcp_disable_listener
  - tcp_suspend_receiver
  - tcp_resume_receiver
  - tcp_get_info
  - tcp_get_info
  - __proto_tcp_init
  source_file: /src/haproxy/src/proto_tcp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hpack_debug_printf
  - hpack_debug_hexdump
  - get_var_int
  - hpack_idx_to_phdr
  - hpack_alloc_string
  - hpack_decode_frame
  source_file: /src/haproxy/src/hpack-dec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: hpack_debug_printf
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/src/hpack-dec.c
      type_or_value: printf
    - item_type: preproc_def
      name: hpack_debug_hexdump
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/src/hpack-dec.c
      type_or_value: debug_hexdump
    structs: []
    typedefs: []
    union: []
- function_names:
  - SMP_REQ_CHN
  - SMP_RES_CHN
  - SMP_REQ_SC
  - SMP_RES_SC
  - get_raw_htx_chunk
  - alloc_raw_htx_chunk_per_thread
  - free_raw_htx_chunk_per_thread
  - get_http_auth
  - smp_prefetch_htx
  - get_msg_version
  - smp_fetch_meth
  - smp_fetch_rqver
  - smp_fetch_stver
  - smp_fetch_stcode
  - smp_fetch_srv_status
  - smp_fetch_uniqueid
  - smp_fetch_hdrs
  - smp_fetch_hdrs_bin
  - smp_fetch_body
  - smp_fetch_body_len
  - smp_fetch_body_size
  - smp_fetch_url
  - smp_fetch_url_ip
  - smp_fetch_url_port
  - smp_fetch_fhdr
  - smp_fetch_fhdr_cnt
  - smp_fetch_hdr_names
  - smp_fetch_hdr
  - smp_fetch_chn_hdr
  - smp_fetch_hdr_cnt
  - smp_fetch_hdr_val
  - smp_fetch_hdr_ip
  - smp_fetch_path
  - smp_fetch_base
  - smp_fetch_base32
  - smp_fetch_base32_src
  - smp_fetch_query
  - smp_fetch_proto_http
  - smp_fetch_http_first_req
  - smp_fetch_http_auth_type
  - smp_fetch_http_auth_user
  - smp_fetch_http_auth_pass
  - smp_fetch_http_auth_bearer
  - smp_fetch_http_auth
  - smp_fetch_http_auth_grp
  - smp_fetch_capture_req_hdr
  - smp_fetch_capture_res_hdr
  - smp_fetch_capture_req_method
  - smp_fetch_capture_req_uri
  - smp_fetch_capture_req_ver
  - smp_fetch_capture_res_ver
  - smp_fetch_cookie
  - smp_fetch_chn_cookie
  - smp_fetch_cookie_cnt
  - smp_fetch_cookie_val
  - smp_fetch_cookie_names
  - smp_fetch_param
  - smp_fetch_url_param
  - smp_fetch_body_param
  - smp_fetch_url_param_val
  - smp_fetch_url32
  - smp_fetch_url32_src
  - val_hdr
  - val_query
  source_file: /src/haproxy/src/http_fetch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - new_reverse_conn
  - rhttp_notify_preconn_err
  - select_thread
  - task_migrate
  - rhttp_process
  - rhttp_bind_receiver
  - rhttp_bind_listener
  - rhttp_suspend_listener
  - rhttp_enable_listener
  - rhttp_disable_listener
  - rhttp_accept_conn
  - rhttp_unbind_receiver
  - rhttp_bind_tid_prep
  - rhttp_accepting_conn
  - init_rhttp
  source_file: /src/haproxy/src/proto_rhttp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_generate_token
  - quic_token_check
  source_file: /src/haproxy/src/quic_token.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/haproxy/src/quic_token.c
      type_or_value: '&trace_quic'
    - item_type: preproc_def
      name: QUIC_TOKEN_RAND_DLEN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/haproxy/src/quic_token.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: u64[2]
        type: uint64_t
      - name: u8[QUIC_TOKEN_RAND_DLEN]
        type: uchar
      item_type: union
      name: rand
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/haproxy/src/quic_token.c
- function_names:
  - bwlim_apply_limit
  - bwlim_init
  - bwlim_deinit
  - bwlim_check
  - bwlim_attach
  - bwlim_detach
  - bwlim_chn_end_analyze
  - bwlim_http_headers
  - bwlim_http_payload
  - bwlim_tcp_payload
  - bwlim_set_limit
  - check_bwlim_action
  - release_bwlim_action
  - parse_bandwidth_limit
  - parse_bwlim_flt
  - parse_bwlim_in_flt
  - parse_bwlim_out_flt
  source_file: /src/haproxy/src/flt_bwlim.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BWLIM_FL_NONE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/src/flt_bwlim.c
      type_or_value: '0x00000000 '
    - item_type: preproc_def
      name: BWLIM_FL_IN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/flt_bwlim.c
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: BWLIM_FL_OUT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/flt_bwlim.c
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: BWLIM_FL_SHARED
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/src/flt_bwlim.c
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: BWLIM_ACT_LIMIT_EXPR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/src/flt_bwlim.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: BWLIM_ACT_LIMIT_CONST
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/src/flt_bwlim.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: BWLIM_ACT_PERIOD_EXPR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/src/flt_bwlim.c
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: BWLIM_ACT_PERIOD_CONST
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/src/flt_bwlim.c
      type_or_value: '0x00000008'
    structs:
    - fields:
      - name: '*proxy'
        type: struct proxy
      - name: '*name'
        type: char
      - name: flags
        type: unsigned int
      - name: '*expr'
        type: struct sample_expr
      - name: table
        type: "union {\n\t\tchar *n;\n\t\tstruct stktable *t;\n\t}"
      - name: period
        type: unsigned int
      - name: limit
        type: unsigned int
      - name: min_size
        type: unsigned int
      item_type: struct
      name: bwlim_config
      pos:
        line_end: 54
        line_start: 42
        source_file: /src/haproxy/src/flt_bwlim.c
    - fields:
      - name: bytes_rate
        type: struct freq_ctr
      - name: '*ts'
        type: struct stksess
      - name: '*rule'
        type: struct act_rule
      - name: limit
        type: unsigned int
      - name: period
        type: unsigned int
      - name: exp
        type: unsigned int
      item_type: struct
      name: bwlim_state
      pos:
        line_end: 63
        line_start: 56
        source_file: /src/haproxy/src/flt_bwlim.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/src/ceba_tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CEB_KEY_TYPE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/src/ceba_tree.c
      type_or_value: CEB_KT_ADDR
    - item_type: preproc_def
      name: CEB_MKEY_PFX
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/ceba_tree.c
      type_or_value: ceba
    - item_type: preproc_def
      name: CEB_UKEY_PFX
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/ceba_tree.c
      type_or_value: cebua
    structs: []
    typedefs: []
    union: []
- function_names:
  - recalc_server_map
  - map_set_server_status_down
  - map_set_server_status_up
  - init_server_map
  - map_get_server_rr
  - map_get_server_hash
  source_file: /src/haproxy/src/lb_map.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - exp_replace
  - check_replace_string
  - regex_exec_match
  - regex_exec_match2
  - regex_comp
  - regex_register_build_options
  - init_pcre2_per_thread
  - deinit_pcre2_per_thread
  source_file: /src/haproxy/src/regex.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - open_named_namespace
  - init_default_namespace
  - netns_sig_stop
  - netns_init
  - netns_store_insert
  - netns_store_lookup
  - my_socketat
  source_file: /src/haproxy/src/namespace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - comp_flt_init
  - comp_strm_init
  - comp_strm_deinit
  - comp_prepare_compress_request
  - comp_req_http_headers
  - comp_res_http_headers
  - comp_res_http_post_analyze
  - comp_http_payload
  - comp_req_http_payload
  - comp_res_http_payload
  - comp_res_http_end
  - set_compression_header
  - select_compression_request_header
  - select_compression_response_header
  - htx_compression_buffer_init
  - htx_compression_buffer_add_data
  - htx_compression_buffer_end
  - proxy_get_comp
  - parse_compression_options
  - parse_http_comp_flt
  - parse_http_comp_req_flt
  - parse_http_comp_res_flt
  - check_implicit_http_comp_flt
  - smp_fetch_res_comp
  - smp_fetch_res_comp_algo
  source_file: /src/haproxy/src/flt_http_comp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMP_STATE_PROCESSING
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/src/flt_http_comp.c
      type_or_value: '0x01'
    structs:
    - fields:
      - name: '*comp_ctx'
        type: struct comp_ctx
      - name: '*comp_algo'
        type: struct comp_algo
      - name: flags
        type: unsigned int
      item_type: struct
      name: comp_state
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/haproxy/src/flt_http_comp.c
    typedefs: []
    union: []
- function_names:
  - conn_get_tlv
  - conn_delete_from_tree
  - conn_create_mux
  - conn_notify_mux
  - conn_upgrade_mux_fe
  - conn_select_mux_fe
  - conn_install_mux_fe
  - conn_select_mux_be
  - conn_install_mux_be
  - conn_install_mux_chk
  - conn_update_alpn
  - conn_init
  - conn_backend_init
  - conn_frontend_init
  - conn_backend_deinit
  - conn_frontend_deinit
  - conn_new
  - conn_free
  - conn_release
  - sockaddr_alloc
  - sockaddr_free
  - xprt_add_hs
  - xprt_add_l6hs
  - conn_err_code_name
  - conn_err_code_str
  - conn_set_errno
  - conn_ctrl_send
  - conn_unsubscribe
  - conn_subscribe
  - conn_ctrl_drain
  - get_tlv_length
  - conn_recv_proxy
  - conn_send_proxy
  - conn_recv_netscaler_cip
  - conn_send_socks4_proxy_request
  - conn_recv_socks4_proxy_response
  - register_mux_proto
  - list_mux_proto
  - make_proxy_line_v1
  - make_tlv
  - make_proxy_line_v2
  - make_proxy_line
  - cfg_parse_pp2_never_send_local
  - conn_append_debug_info
  - smp_fetch_fc_glitches
  - smp_fetch_fc_http_major
  - smp_fetch_fc_rcvd_proxy
  - smp_check_tlv_type
  - smp_fetch_fc_pp_tlv
  - smp_fetch_fc_pp_authority
  - smp_fetch_fc_pp_unique_id
  - smp_fetch_fc_err
  - smp_fetch_fc_err_str
  - smp_fetch_fc_nb_streams
  - smp_fetch_fc_streams_limit
  - conn_hash_prehash
  - conn_hash_update
  - conn_hash_digest
  - conn_calculate_hash_sockaddr
  - conn_calculate_hash
  - conn_reverse
  - mux_stopping_process
  - allocate_mux_cleanup
  - deallocate_mux_cleanup
  - deinit_idle_conns
  source_file: /src/haproxy/src/connection.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hterm_trace
  - hstream_buf_available
  - hstream_get_buf
  - hstream_release_buf
  - hstream_free
  - sc_hstream_io_cb
  - hstream_htx_buf_rcv
  - hstream_ff_snd
  - hstream_htx_buf_snd
  - hstream_build_http_help_resp
  - hstream_build_http_100_continue_resp
  - hstream_add_ff_data
  - hstream_add_htx_data
  - hstream_build_http_resp
  - hstream_parse_uri
  - hstream_sl_hdrs_htx_buf_snd
  - hstream_send_error
  - hstream_must_drain
  - hstream_is_fastfwd_supported
  - process_hstream
  - hstream_new
  - hstream_build_responses
  - hstream_init_splicing
  - hstream_deinit
  source_file: /src/haproxy/src/haterm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HS_ST_IN_ALLOC
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: HS_ST_OUT_ALLOC
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: HS_ST_CONN_ERROR
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: HS_ST_HTTP_GOT_HDRS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: HS_ST_HTTP_HELP
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: HS_ST_HTTP_EXPECT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: HS_ST_HTTP_RESP_SL_SENT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: HS_ST_OPT_CHUNK_RES
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0080 '
    - item_type: preproc_def
      name: HS_ST_OPT_REQ_AFTER_RES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0100 '
    - item_type: preproc_def
      name: HS_ST_OPT_RANDOM_RES
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0200 '
    - item_type: preproc_def
      name: HS_ST_OPT_NO_CACHE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0400 '
    - item_type: preproc_def
      name: HS_ST_OPT_NO_SPLICING
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x0800 '
    - item_type: preproc_def
      name: HS_ST_HTTP_EOM_RCVD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x1000 '
    - item_type: preproc_def
      name: HS_ST_HTTP_EOM_SENT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '0x2000 '
    - item_type: preproc_def
      name: RESPSIZE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: HS_COMMON_RESPONSE_LINE_SZ
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '50'
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/src/haterm.c
      type_or_value: '&trace_haterm'
    structs: []
    typedefs: []
    union: []
- function_names:
  - qpack_dht_dump
  - qpack_dht_check_consistency
  - qpack_dht_defrag
  - __qpack_dht_make_room
  - qpack_dht_insert
  source_file: /src/haproxy/src/qpack-tbl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dgram_fd_handler
  - dgram_parse_tune_bufs
  source_file: /src/haproxy/src/dgram.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - field_to_html_str
  - stats_dump_html_head
  - stats_dump_html_info
  - stats_dump_fields_html
  - stats_dump_html_px_hdr
  - stats_dump_html_px_end
  - stats_dump_html_end
  - stats_send_http_headers
  - stats_send_http_redirect
  - stats_process_http_post
  - http_stats_io_handler
  - http_stats_fastfwd
  - http_stats_release
  source_file: /src/haproxy/src/stats-html.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - wdt_ping
  - wdt_handler
  - wdt_parse_warn_blocked
  - init_wdt_per_thread
  - deinit_wdt_per_thread
  - init_wdt
  source_file: /src/haproxy/src/wdt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TIMER_INVALID
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/src/wdt.c
      type_or_value: ((timer_t)(unsigned long)(0xfffffffful))
    structs:
    - fields:
      - name: timer
        type: timer_t
      - name: stuck_start
        type: uint64_t
      item_type: struct
      name: per_thread_wd_ctx[MAX_THREADS]
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/haproxy/src/wdt.c
    typedefs: []
    union: []
- function_names:
  - stcol2ndesc
  - generate_stat_tree
  - stats_putchk
  - stats_is_full
  - stats_scope_ptr
  - stats_dump_csv_header
  - stats_emit_raw_data_field
  - stats_emit_typed_data_field
  - stats_emit_field_tags
  - stats_dump_fields_csv
  - stats_dump_fields_typed
  - stats_dump_one_line
  - stats_dump_stat_to_buffer
  - stats_dump_info_fields
  - stats_dump_typed_info_fields
  - stats_fill_info
  - stats_dump_info_to_buffer
  - cli_parse_clear_counters
  - cli_parse_show_info
  - cli_parse_show_stat
  - cli_parse_show_schema_json
  - cli_io_handler_dump_info
  - cli_io_handler_dump_stat
  - cli_io_handler_release_stat
  - cli_io_handler_dump_json_schema
  - cli_parse_dump_stat_file
  - cli_io_handler_dump_stat_file
  - cli_io_handler_release_dump_stat_file
  - stats_allocate_proxy_counters_internal
  - stats_allocate_proxy_counters
  - stats_register_module
  - allocate_stats_px_postcheck
  - allocate_stats_rslv_postcheck
  - allocate_stat_lines_per_thread
  - allocate_trash_counters
  - deinit_stat_lines_per_thread
  - deinit_stats
  - free_trash_counters
  source_file: /src/haproxy/src/stats.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mjson_esc
  - mjson_escape
  - mjson_pass_string
  - mjson
  - MJSONCALL
  - MJSONEOO
  - plen1
  - plen2
  - kcmp
  - mjson_get_cb
  - mjson_find
  - mjson_get_number
  - mjson_get_bool
  - mjson_unhex_nimble
  - mjson_unescape
  - mjson_get_string
  - mjson_get_hex
  - next_cb
  - mjson_next
  - is_digit
  - mystrtod
  source_file: /src/haproxy/src/mjson.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: pos
        type: int
      - name: d1
        type: int
      - name: d2
        type: int
      - name: i1
        type: int
      - name: i2
        type: int
      - name: obj
        type: int
      - name: '**tokptr'
        type: char
      - name: '*toklen'
        type: int
      - name: tok
        type: int
      item_type: struct
      name: msjon_get_data
      pos:
        line_end: 171
        line_start: 160
        source_file: /src/haproxy/src/mjson.c
    - fields:
      - name: 'off'
        type: int
      - name: '*koff'
        type: int
      item_type: struct
      name: nextdata
      pos:
        line_end: 343
        line_start: 340
        source_file: /src/haproxy/src/mjson.c
    typedefs: []
    union: []
- function_names:
  - bind_parse_v4v6
  - bind_parse_v6only
  - bind_parse_transparent
  - bind_parse_cc
  - bind_parse_defer_accept
  - bind_parse_tfo
  - bind_parse_mss
  - bind_parse_tcp_md5sig
  - bind_parse_tcp_ss
  - bind_parse_tcp_ut
  - bind_parse_interface
  - bind_parse_namespace
  - srv_parse_cc
  - srv_parse_tcp_md5sig
  - srv_parse_tcp_ut
  source_file: /src/haproxy/src/cfgparse-tcp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - stats_check_init_uri_auth
  - stats_set_uri
  - stats_set_realm
  - stats_set_node
  - stats_set_desc
  - stats_set_refresh
  - stats_set_flag
  - stats_add_auth
  - stats_add_scope
  - stats_uri_auth_free
  - stats_uri_auth_drop
  - stats_uri_auth_take
  source_file: /src/haproxy/src/uri_auth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_action_rules
  - list_for_each_entry
  - check_trk_action
  - check_capture
  - act_resolution_cb
  - act_resolution_error_cb
  - cfg_parse_rule_set_timeout
  - action_suggest
  - list_for_each_entry
  - new_act_rule
  - free_act_rule
  - free_act_rules
  - list_for_each_entry_safe
  - dump_act_rules
  - list_for_each_entry
  - act_add_list
  source_file: /src/haproxy/src/action.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - find_http_meth
  - http_get_status_idx
  - http_get_reason
  - http_status_add_range
  - http_status_del_range
  - http_get_host_port
  - http_is_default_port
  - http_validate_scheme
  - http_parse_scheme
  - http_parse_authority
  - http_parse_path
  - http_parse_cont_len_header
  - http_header_match2
  - http_find_hdr_value_end
  - http_find_cookie_value_end
  - http_extract_cookie_value
  - http_extract_next_cookie_name
  - http_parse_qvalue
  - http_find_url_param_pos
  - http_find_next_url_param
  - http_parse_header
  - http_parse_stline
  - http_parse_status_val
  - http_compare_etags
  - http_trim_leading_spht
  - http_trim_trailing_spht
  - _http_init
  - http_parse_http_err_fail_codes
  source_file: /src/haproxy/src/http.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_sock_get_src
  - quic_sock_get_dst
  - new_quic_cli_conn
  - quic_sock_accepting_conn
  - quic_sock_accept_conn
  - quic_lstnr_dghdlr
  - quic_get_dgram_dcid
  - quic_dgram_init
  - quic_recv
  - quic_dgram_write
  - quic_dgram_requeue
  - quic_lstnr_dgram_dispatch
  - quic_lstnr_sock_fd_iocb
  - quic_conn_sock_fd_iocb
  - quic_conn_closed_sock_fd_iocb
  - cmsg_set_saddr
  - cmsg_set_gso
  - qc_may_use_saddr
  - qc_snd_buf
  - qc_rcv_buf
  - qc_alloc_fd
  - qc_release_fd
  - qc_want_recv
  - quic_accept_push_qc
  - quic_accept_run
  - quic_listener_max_handshake
  - quic_listener_max_accept
  - quic_alloc_accept_queues
  - quic_deallocate_accept_queues
  source_file: /src/haproxy/src/quic_sock.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields: []
      item_type: union
      name: pktinfo
      pos:
        line_end: 313
        line_start: 304
        source_file: /src/haproxy/src/quic_sock.c
    - fields:
      - name: bufaddr[CMSG_SPACE(sizeof(struct in_addr)) + CMSG_SPACE(sizeof(gso_size))]
        type: char
      - name: align
        type: struct cmsghdr
      item_type: union
      name: ancillary_data
      pos:
        line_end: 723
        line_start: 714
        source_file: /src/haproxy/src/quic_sock.c
- function_names:
  - quic_dflt_transport_params_cpy
  - quic_transport_params_init
  - quic_transport_param_enc_pref_addr_val
  - quic_transport_param_dec_pref_addr
  - quic_transport_param_dec_version_info
  - quic_transport_param_decode
  - quic_transport_param_encode_type_len
  - quic_transport_param_decode_type_len
  - quic_transport_param_enc_mem
  - quic_transport_param_enc_int
  - sizeof_quic_cid
  - quic_transport_param_enc_pref_addr
  - quic_transport_param_enc_version_info
  - quic_transport_params_encode
  - quic_transport_params_decode
  - quic_transport_params_check
  - quic_transport_params_store
  - qc_lstnr_params_init
  - qc_srv_params_init
  - qc_early_transport_params_cpy
  - qc_early_transport_params_reuse
  - qc_early_tranport_params_validate
  source_file: /src/haproxy/src/quic_tp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/src/cebis_tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CEB_KEY_TYPE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/cebis_tree.c
      type_or_value: CEB_KT_IS
    - item_type: preproc_def
      name: CEB_KEY_MEMBER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/cebis_tree.c
      type_or_value: ptr
    - item_type: preproc_def
      name: CEB_MKEY_PFX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/src/cebis_tree.c
      type_or_value: cebis
    - item_type: preproc_def
      name: CEB_UKEY_PFX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/src/cebis_tree.c
      type_or_value: cebuis
    structs: []
    typedefs: []
    union: []
- function_names:
  - pat_parse_meth
  - pat_match_meth
  source_file: /src/haproxy/src/http_acl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - qc_wait_for_conn
  - qc_is_conn_ready
  - quic_close
  - quic_conn_subscribe
  - quic_conn_unsubscribe
  - qc_conn_init
  - qc_xprt_start
  - qc_get_ssl_sock_ctx
  - qc_xprt_dump_info
  - qc_get_alpn
  - __quic_conn_init
  source_file: /src/haproxy/src/xprt_quic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_cc_init
  - quic_cc_event
  - quic_cc_state_trace
  - quic_cc_default_pacing_inter
  - quic_cwnd_may_increase
  - quic_cc_max_win_ratio
  - quic_cc_path_reset
  - quic_cc_path_set
  - quic_cc_path_inc
  source_file: /src/haproxy/src/quic_cc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - qmux_is_frm_valid
  - qmux_parse_frm
  - qcc_qmux_recv
  - qmux_ctrl_send
  - qcc_qmux_send_frames
  - list_for_each_entry_safe
  source_file: /src/haproxy/src/qcm_qmux.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - udp_bind_listener
  - udp_enable_listener
  - udp_disable_listener
  - udp_suspend_receiver
  - udp_resume_receiver
  source_file: /src/haproxy/src/proto_udp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - uxdg_bind_listener
  - uxdg_enable_listener
  - uxdg_disable_listener
  - uxdg_suspend_receiver
  source_file: /src/haproxy/src/proto_uxdg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_trash_chunk
  - get_large_trash_chunk
  - get_small_trash_chunk
  - get_trash_chunk_sz
  - get_larger_trash_chunk
  - alloc_trash_buffers
  - alloc_large_trash_buffers
  - alloc_small_trash_buffers
  - alloc_trash_buffers_per_thread
  - free_trash_buffers_per_thread
  - init_trash_buffers
  - alloc_early_trash
  - chunk_printf
  - chunk_appendf
  - chunk_htmlencode
  - chunk_asciiencode
  - chunk_strcmp
  - chunk_strcasecmp
  source_file: /src/haproxy/src/chunk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_pipe
  - kill_pipe
  - put_pipe
  source_file: /src/haproxy/src/pipe.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_stateless_reset_token_init
  - quic_derive_cid
  - quic_cid_alloc
  - quic_cid_generate_random
  - quic_cid_generate_from_hash
  - quic_cid_derive_from_odcid
  - quic_cid_register_seq_num
  - quic_cid_insert
  - quic_cmp_cid_conn
  - quic_get_cid_tid
  - retrieve_qc_conn_from_cid
  - qc_build_new_connection_id_frm
  - quic_alloc_global_fe_cid_tree
  - quic_deallocate_global_fe_cid_tree
  - quic_alloc_global_be_cid_tree
  - quic_deallocate_global_be_cid_tree
  source_file: /src/haproxy/src/quic_cid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_CID_TREES_CNT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/src/quic_cid.c
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fwrr_set_server_status_down
  - fwrr_set_server_status_up
  - fwrr_update_server_weight
  - fwrr_remove_from_tree
  - fwrr_queue_by_weight
  - fwrr_init_server_groups
  - fwrr_dequeue_srv
  - fwrr_queue_srv
  - fwrr_get_srv_init
  - fwrr_get_srv_next
  - fwrr_get_srv_down
  - fwrr_get_srv
  - fwrr_switch_trees
  - fwrr_get_server_from_group
  - fwrr_update_position
  - fwrr_get_next_server
  source_file: /src/haproxy/src/lb_fwrr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - h1_fill_stats
  - h1s_sc
  - h1_trace
  - h1_trace_fill_ctx
  - h1_report_glitch
  - _h1_report_glitch
  - h1_recv_allowed
  - h1_buf_available
  - h1_get_ibuf
  - h1_get_obuf
  - h1_get_rxbuf
  - h1_release_buf
  - h1c_report_term_evt
  - h1_is_alive
  - h1_close
  - h1_used_streams
  - h1_avail_streams
  - h1_refresh_timeout
  - h1_set_idle_expiration
  - h1s_set_se_eoi_cond
  - h1s_data_pending
  - h1s_consume_kop
  - h1s_new_sc
  - h1s_upgrade_sc
  - h1s_new
  - h1c_frt_stream_new
  - h1c_bck_stream_new
  - h1s_destroy
  - h1s_must_shut_conn
  - h1s_finish_detach
  - h1_init
  - h1_release
  - h1_parse_req_vsn
  - h1_parse_res_vsn
  - h1_set_cli_conn_mode
  - h1_set_srv_conn_mode
  - h1_update_req_conn_value
  - h1_update_res_conn_value
  - h1_process_input_conn_mode
  - h1_process_output_conn_mode
  - h1_adjust_case_outgoing_hdr
  - h1_show_error_snapshot
  - h1_capture_bad_message
  - h1_prepend_chunk_size
  - h1_append_chunk_size
  - h1_prepend_chunk_crlf
  - h1_append_chunk_crlf
  - h1_set_tunnel_mode
  - h1_search_websocket_key
  - h1_handle_headers
  - h1_handle_data
  - h1_handle_trailers
  - h1_process_demux
  - h1_make_reqline
  - h1_make_stline
  - h1_make_headers
  - h1_make_eoh
  - h1_make_data
  - h1_make_tunnel
  - h1_make_trailers
  - h1_make_chunk
  - h1_process_mux
  - h1_wake_stream_for_recv
  - h1_wake_stream_for_send
  - h1_alert
  - h1_send_error
  - h1_handle_internal_err
  - h1_handle_parsing_error
  - h1_handle_not_impl_err
  - h1_handle_req_tout
  - h1_recv
  - h1_send
  - h1_process
  - h1_io_cb
  - h1_wake
  - h1_timeout_task
  - h1_attach
  - h1_get_first_sc
  - h1_destroy
  - h1_detach
  - h1_shut
  - h1_shutw_conn
  - h1_unsubscribe
  - h1_subscribe
  - h1_rcv_buf
  - h1_snd_buf
  - h1s_opposite_sd
  - h1_nego_ff
  - h1_done_ff
  - h1_fastfwd
  - h1_resume_fastfwd
  - h1_ctl
  - h1_sctl
  - h1_dump_h1c_info
  - h1_dump_h1s_info
  - h1_show_fd
  - h1_show_sd
  - add_hdr_case_adjust
  - h1_takeover
  - h1_hdeaders_case_adjust_deinit
  - cfg_h1_headers_case_adjust_postparser
  - cfg_parse_h1_accept_payload_with_any_method
  - cfg_parse_h1_header_case_adjust
  - cfg_parse_h1_headers_case_adjust_file
  - cfg_parse_h1_glitches_threshold
  - cfg_parse_h1_zero_copy_fwd_rcv
  - cfg_parse_h1_zero_copy_fwd_snd
  source_file: /src/haproxy/src/mux_h1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/haproxy/src/mux_h1.c
      type_or_value: '&trace_h1'
    structs:
    - fields:
      - name: '*conn'
        type: struct connection
      - name: '*h1s'
        type: struct h1s
      - name: '*task'
        type: struct task
      - name: flags
        type: uint32_t
      - name: state
        type: enum h1_cs
      - name: ibuf
        type: struct buffer
      - name: obuf
        type: struct buffer
      - name: '*px'
        type: struct proxy
      - name: errcode
        type: unsigned int
      - name: idle_exp
        type: int
      - name: timeout
        type: int
      - name: shut_timeout
        type: int
      - name: req_count
        type: unsigned int
      - name: term_evts_log
        type: uint32_t
      - name: '*px_counters'
        type: struct h1_counters
      - name: buf_wait
        type: struct buffer_wait
      - name: wait_event
        type: struct wait_event
      - name: glitches
        type: int
      item_type: struct
      name: h1c
      pos:
        line_end: 61
        line_start: 34
        source_file: /src/haproxy/src/mux_h1.c
    - fields:
      - name: '*h1c'
        type: struct h1c
      - name: '*sd'
        type: struct sedesc
      - name: flags
        type: uint32_t
      - name: '*subs'
        type: struct wait_event
      - name: '*sess'
        type: struct session
      - name: rxbuf
        type: struct buffer
      - name: req
        type: struct h1m
      - name: res
        type: struct h1m
      - name: meth
        type: enum http_meth_t
      - name: status
        type: uint16_t
      - name: ws_key[25]
        type: char
      item_type: struct
      name: h1s
      pos:
        line_end: 80
        line_start: 64
        source_file: /src/haproxy/src/mux_h1.c
    - fields:
      - name: '*name'
        type: char
      - name: map
        type: struct eb_root
      item_type: struct
      name: h1_hdrs_map
      pos:
        line_end: 86
        line_start: 83
        source_file: /src/haproxy/src/mux_h1.c
    - fields:
      - name: name
        type: struct ist
      - name: node
        type: struct ebpt_node
      item_type: struct
      name: h1_hdr_entry
      pos:
        line_end: 92
        line_start: 89
        source_file: /src/haproxy/src/mux_h1.c
    - fields:
      - name: open_conns
        type: long long
      - name: open_streams
        type: long long
      - name: total_conns
        type: long long
      - name: total_streams
        type: long long
      - name: bytes_in
        type: long long
      - name: bytes_out
        type: long long
      item_type: struct
      name: h1_counters
      pos:
        line_end: 272
        line_start: 260
        source_file: /src/haproxy/src/mux_h1.c
    typedefs: []
    union: []
- function_names:
  - quic_init_exec_rules
  - parse_accept
  - parse_dgram_drop
  - init_do_log
  - parse_do_log
  - quic_init_action_reject
  - quic_init_action_send_retry
  - parse_reject
  - parse_send_retry
  - quic_init_actions_register
  - action_quic_init_custom
  source_file: /src/haproxy/src/quic_rules.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - acme_rslv_success_cb
  - acme_rslv_error_cb
  - acme_rslv_free
  - acme_rslv_start
  source_file: /src/haproxy/src/acme_resolvers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_cc_nr_init
  - quic_cc_nr_slow_start
  - quic_cc_nr_enter_recovery
  - quic_cc_nr_ss_cb
  - quic_cc_nr_ca_cb
  - quic_cc_nr_rp_cb
  - quic_cc_nr_state_trace
  - quic_cc_nr_hystart_start_round
  - quic_cc_nr_event
  - quic_cc_nr_check
  source_file: /src/haproxy/src/quic_cc_newreno.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: state
        type: uint32_t
      - name: ssthresh
        type: uint32_t
      - name: recovery_start_time
        type: uint32_t
      - name: remain_acked
        type: uint32_t
      item_type: struct
      name: nr
      pos:
        line_end: 36
        line_start: 31
        source_file: /src/haproxy/src/quic_cc_newreno.c
    typedefs: []
    union: []
- function_names:
  - quic_frame_type_string
  - chunk_cc_phrase_appendf
  - chunk_frm_appendf
  - quic_build_padding_frame
  - quic_parse_padding_frame
  - quic_build_ping_frame
  - quic_parse_ping_frame
  - quic_build_ack_frame
  - quic_parse_ack_frame_header
  - quic_build_ack_ecn_frame
  - quic_parse_ack_ecn_frame
  - quic_build_reset_stream_frame
  - quic_parse_reset_stream_frame
  - quic_build_stop_sending_frame
  - quic_parse_stop_sending_frame
  - quic_build_crypto_frame
  - quic_parse_crypto_frame
  - quic_build_new_token_frame
  - quic_parse_new_token_frame
  - quic_build_stream_frame
  - quic_parse_stream_frame
  - quic_build_max_data_frame
  - quic_parse_max_data_frame
  - quic_build_max_stream_data_frame
  - quic_parse_max_stream_data_frame
  - quic_build_max_streams_bidi_frame
  - quic_parse_max_streams_bidi_frame
  - quic_build_max_streams_uni_frame
  - quic_parse_max_streams_uni_frame
  - quic_build_data_blocked_frame
  - quic_parse_data_blocked_frame
  - quic_build_stream_data_blocked_frame
  - quic_parse_stream_data_blocked_frame
  - quic_build_streams_blocked_bidi_frame
  - quic_parse_streams_blocked_bidi_frame
  - quic_build_streams_blocked_uni_frame
  - quic_parse_streams_blocked_uni_frame
  - quic_build_new_connection_id_frame
  - quic_parse_new_connection_id_frame
  - quic_build_retire_connection_id_frame
  - quic_parse_retire_connection_id_frame
  - quic_build_path_challenge_frame
  - quic_parse_path_challenge_frame
  - quic_build_path_response_frame
  - quic_parse_path_response_frame
  - quic_build_connection_close_frame
  - quic_parse_connection_close_frame
  - quic_build_connection_close_app_frame
  - quic_parse_connection_close_app_frame
  - quic_build_handshake_done_frame
  - quic_build_qmux_transport_parameters
  - quic_parse_handshake_done_frame
  - quic_parse_qmux_transport_parameters
  - quic_frame_type_is_known
  - qf_parser
  - qf_builder
  - qc_parse_frm_type
  - qc_parse_frm_pkt
  - qc_parse_frm_payload
  - qc_build_frm
  - qc_build_frm_pkt
  - qc_frm_unref
  - qc_frm_free
  - qc_release_frm
  - quic_strm_frm_fillbuf
  - quic_strm_frm_split
  source_file: /src/haproxy/src/quic_frame.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: "(*func)(unsigned char **pos, const unsigned char *end,\n                 struct
          quic_frame *frm, struct quic_conn *conn)"
        type: int
      - name: mask
        type: uint32_t
      - name: flags
        type: unsigned char
      item_type: struct
      name: quic_frame_builder
      pos:
        line_end: 1093
        line_start: 1088
        source_file: /src/haproxy/src/quic_frame.c
    - fields:
      - name: "(*func)(struct quic_frame *frm, struct quic_conn *qc,\n                const
          unsigned char **pos, const unsigned char *end)"
        type: int
      - name: mask
        type: uint32_t
      - name: flags
        type: unsigned char
      item_type: struct
      name: quic_frame_parser
      pos:
        line_end: 1134
        line_start: 1129
        source_file: /src/haproxy/src/quic_frame.c
    typedefs: []
    union: []
- function_names:
  - lb_ops_register
  - gen_hash
  - recount_servers
  - update_backend_weight
  - get_server_sh
  - get_server_uh
  - get_server_ph
  - get_server_ph_post
  - get_server_hh
  - get_server_rch
  - get_server_expr
  - get_server_rnd
  - assign_server
  - alloc_dst_address
  - assign_server_and_queue
  - alloc_bind_address
  - conn_backend_get
  - do_connect_server
  - takeover_random_idle_conn
  - kill_random_idle_conn
  - be_reuse_mode
  - be_calculate_conn_hash
  - be_reuse_connection
  - connect_server
  - srv_redispatch_connect
  - back_may_abort_req
  - back_try_conn_req
  - back_handle_st_req
  - back_handle_st_con
  - back_handle_st_cer
  - back_handle_st_rdy
  - set_backend_down
  - tcp_persist_rdp_cookie
  - be_downtime
  - be_supports_dynamic_srv
  - backend_lb_algo_str
  - backend_parse_balance
  - smp_fetch_nbsrv
  - smp_fetch_srv_is_up
  - smp_fetch_connslots
  - smp_fetch_be_id
  - smp_fetch_be_name
  - smp_fetch_srv_id
  - smp_fetch_srv_name
  - smp_fetch_be_sess_rate
  - smp_fetch_be_conn
  - smp_fetch_be_conn_free
  - smp_fetch_queue_size
  - smp_fetch_avg_queue_size
  - smp_fetch_srv_conn
  - smp_fetch_srv_conn_free
  - smp_fetch_srv_queue
  - smp_fetch_srv_sess_rate
  - smp_fetch_srv_weight
  - smp_fetch_srv_iweight
  - smp_fetch_srv_uweight
  - smp_fetch_be_connect_timeout
  - smp_fetch_be_queue_timeout
  - smp_fetch_be_server_timeout
  - smp_fetch_be_tarpit_timeout
  - smp_fetch_be_tunnel_timeout
  - sample_conv_nbsrv
  - sample_conv_srv
  - sample_conv_srv_is_up
  - sample_conv_srv_queue
  source_file: /src/haproxy/src/backend.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/src/backend.c
      type_or_value: '&trace_strm'
    structs: []
    typedefs: []
    union: []
- function_names:
  - h1_parse_xfer_enc_header
  - h1_validate_connect_authority
  - h1_validate_mismatch_authority
  - h1_parse_connection_header
  - h1_parse_upgrade_header
  - EXPECT_LF_HERE
  - EAT_AND_JUMP_OR_RETURN
  - h1_headers_to_hdr_list
  - h1_generate_random_ws_input_key
  - h1_calculate_ws_output_key
  - cfg_parse_h1_do_not_close_insecure_t_e
  source_file: /src/haproxy/src/h1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: H1_WS_KEY_SUFFIX_GUID
      pos:
        line_end: 1287
        line_start: 1286
        source_file: /src/haproxy/src/h1.c
      type_or_value: '"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_vars
  - var_accounting_diff
  - var_accounting_add
  - var_clear
  - vars_prune_per_sess
  - vars_init_head
  - vars_fill_desc
  - var_get
  - smp_fetch_var
  - smp_fetch_dump_all_vars
  - var_clear_buffer
  - var_set
  - var_unset
  - vars_parse_cond_param
  - smp_conv_store
  - smp_conv_clear
  - vars_check_arg
  - vars_set_by_name_ifexist
  - vars_set_by_name
  - vars_unset_by_name_ifexist
  - var_to_smp
  - vars_get_by_name
  - vars_get_by_desc
  - action_store
  - action_clear
  - release_store_rule
  - smp_check_var
  - smp_check_dump_all_vars
  - conv_check_var
  - parse_store
  - vars_parse_global_set_var
  - vars_parse_cli_get_var
  - vars_parse_cli_set_var
  - vars_max_size
  - vars_max_size_global
  - vars_max_size_proc
  - vars_max_size_sess
  - vars_max_size_txn
  - vars_max_size_reqres
  - vars_max_size_check
  - vars_init
  source_file: /src/haproxy/src/vars.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cond_str'
        type: char
      - name: flag
        type: uint
      item_type: struct
      name: var_set_condition
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/haproxy/src/vars.c
    typedefs: []
    union: []
- function_names:
  - ebmb_lookup
  - ebmb_insert
  - ebmb_lookup_longest
  - ebmb_lookup_prefix
  - ebmb_insert_prefix
  source_file: /src/haproxy/src/ebmbtree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - uri_normalizer_fragment_encode
  - is_unreserved_character
  - uri_normalizer_percent_decode_unreserved
  - uri_normalizer_percent_upper
  - uri_normalizer_path_dot
  - uri_normalizer_path_dotdot
  - uri_normalizer_path_merge_slashes
  - query_param_cmp
  - uri_normalizer_query_sort
  source_file: /src/haproxy/src/uri_normalizer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/src/cebtree-prv.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hc_cli_res_stline_cb
  - hc_cli_res_headers_cb
  - hc_cli_res_body_cb
  - hc_cli_res_end_cb
  - hc_cli_parse
  - hc_cli_io_handler
  - hc_cli_release
  source_file: /src/haproxy/src/httpclient_cli.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HC_F_RES_STLINE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/haproxy/src/httpclient_cli.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HC_F_RES_HDR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/src/httpclient_cli.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: HC_F_RES_BODY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/src/httpclient_cli.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: HC_F_RES_END
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/src/httpclient_cli.c
      type_or_value: '0x08'
    structs:
    - fields:
      - name: '*hc'
        type: struct httpclient
      - name: flags
        type: uint
      - name: is_htx
        type: uint
      item_type: struct
      name: hcli_svc_ctx
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/haproxy/src/httpclient_cli.c
    typedefs: []
    union: []
- function_names:
  - qpack_debug_printf
  - qpack_debug_hexdump
  - qpack_get_varint
  - qpack_decode_enc
  - qpack_decode_dec
  - qpack_decode_fs_pfx
  - qpack_decode_fs
  - qpack_err_decode
  source_file: /src/haproxy/src/qpack-dec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: qpack_debug_printf
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/src/qpack-dec.c
      type_or_value: fprintf
    - item_type: preproc_def
      name: qpack_debug_hexdump
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/src/qpack-dec.c
      type_or_value: debug_hexdump
    structs: []
    typedefs: []
    union: []
- function_names:
  - pat2acl
  - acl_register_keywords
  - acl_unregister_keywords
  - find_acl_by_name
  - list_for_each_entry
  - find_acl_kw
  - prune_acl_expr
  - parse_acl_expr
  - prune_acl
  - parse_acl_recurse
  - parse_acl
  - find_acl_default
  - parse_acl_cond
  - build_acl_cond
  - acl_exec_cond
  - acl_cond_conflicts
  - acl_cond_kw_conflicts
  - acl_find_targets
  - init_acl
  - acl_dump_kwd
  - free_acl_cond
  - smp_fetch_acl
  - smp_fetch_acl_parse
  source_file: /src/haproxy/src/acl.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*expr[4]'
        type: char
      item_type: struct
      name: "default_acl_list[] = {\n\t{ .name = \"TRUE\",           .expr = {\"always_true\",\"\"}},\n\t{
        .name = \"FALSE\",          .expr = {\"always_false\",\"\"}},\n\t{ .name =
        \"LOCALHOST\",      .expr = {\"src\",\"127.0.0.1/8\",\"::1\",\"\"}},\n\t{
        .name = \"HTTP\",           .expr = {\"req.proto_http\",\"\"}},\n\t{ .name
        = \"HTTP_1.0\",       .expr = {\"req.ver\",\"1.0\",\"\"}},\n\t{ .name = \"HTTP_1.1\",
        \      .expr = {\"req.ver\",\"1.1\",\"\"}},\n\t{ .name = \"HTTP_2.0\",       .expr
        = {\"req.ver\",\"2.0\",\"\"}},\n\t{ .name = \"HTTP_3.0\",       .expr = {\"req.ver\",\"3.0\",\"\"}},\n\t{
        .name = \"METH_CONNECT\",   .expr = {\"method\",\"CONNECT\",\"\"}},\n\t{ .name
        = \"METH_DELETE\",    .expr = {\"method\",\"DELETE\",\"\"}},\n\t{ .name =
        \"METH_GET\",       .expr = {\"method\",\"GET\",\"HEAD\",\"\"}},\n\t{ .name
        = \"METH_HEAD\",      .expr = {\"method\",\"HEAD\",\"\"}},\n\t{ .name = \"METH_OPTIONS\",
        \  .expr = {\"method\",\"OPTIONS\",\"\"}},\n\t{ .name = \"METH_POST\",      .expr
        = {\"method\",\"POST\",\"\"}},\n\t{ .name = \"METH_PUT\",       .expr = {\"method\",\"PUT\",\"\"}},\n\t{
        .name = \"METH_TRACE\",     .expr = {\"method\",\"TRACE\",\"\"}},\n\t{ .name
        = \"HTTP_URL_ABS\",   .expr = {\"url_reg\",\"^[^/:]*://\",\"\"}},\n\t{ .name
        = \"HTTP_URL_SLASH\", .expr = {\"url_beg\",\"/\",\"\"}},\n\t{ .name = \"HTTP_URL_STAR\",
        \ .expr = {\"url\",\"*\",\"\"}},\n\t{ .name = \"HTTP_CONTENT\",   .expr =
        {\"req.hdr_val(content-length)\",\"gt\",\"0\",\"\"}},\n\t{ .name = \"RDP_COOKIE\",
        \    .expr = {\"req.rdp_cookie_cnt\",\"gt\",\"0\",\"\"}},\n\t{ .name = \"REQ_CONTENT\",
        \   .expr = {\"req.len\",\"gt\",\"0\",\"\"}},\n\t{ .name = \"WAIT_END\",       .expr
        = {\"wait_end\",\"\"}},\n\t{ .name = NULL, .expr = {\"\"}}\n}"
      pos:
        line_end: 740
        line_start: 737
        source_file: /src/haproxy/src/acl.c
    typedefs: []
    union: []
- function_names:
  - _update_fd
  - _do_fixup_tgid_takeover
  - _do_poll
  - init_kqueue_per_thread
  - deinit_kqueue_per_thread
  - _do_init
  - _do_term
  - _do_test
  - _do_fork
  - _do_register
  source_file: /src/haproxy/src/ev_kqueue.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmp_kw_entries
  - cli_gen_usage_msg
  - cli_find_kw
  - cli_find_kw_exact
  - cli_register_kw
  - cli_list_keywords
  - cli_alloc_fe
  - cli_parse_global
  - cli_parse_global_max_payload_size
  - listeners_setenv
  - cli_socket_setenv
  - cli_has_level
  - pcli_has_level
  - cli_get_severity_output
  - cli_process_cmdline
  - cli_output_msg
  - cli_init
  - cli_try_realloc_payload
  - cli_parse_cmdline
  - cli_io_handler
  - cli_release_handler
  - cli_io_handler_show_env
  - cli_io_handler_show_fd
  - cli_io_handler_show_cli_sock
  - cli_parse_show_env
  - cli_parse_show_fd
  - cli_parse_set_timeout
  - cli_parse_set_maxconn_global
  - set_severity_output
  - cli_parse_set_severity_output
  - cli_parse_show_lvl
  - cli_parse_set_lvl
  - cli_parse_expert_experimental_mode
  - cli_parse_show_version
  - cli_parse_default
  - cli_parse_set_anon
  - cli_parse_set_global_key
  - cli_parse_show_anon
  - cli_parse_set_ratelimit
  - cli_parse_wait
  - cli_io_handler_wait
  - cli_release_wait
  - bind_parse_expose_fd
  - bind_parse_level
  - bind_parse_severity_output
  - _getsocks
  - cli_parse_simple
  - cli_parse_echo
  - _send_status
  - pcli_write_prompt
  - pcli_error
  - pcli_reply_and_close
  - pcli_pid_to_server
  - pcli_prefix_to_pid
  - pcli_find_and_exec_kw
  - pcli_find_bidir_prefix
  - pcli_parse_request
  - pcli_create_txn
  - pcli_destroy_txn
  - pcli_wait_for_request
  - pcli_wait_for_response
  - mworker_cli_proxy_stop
  - mworker_cli_create_master_proxy
  - mworker_cli_attach_server
  - mworker_cli_master_proxy_new_listener
  - mworker_cli_global_proxy_new_listener
  - cli_raw_rcv_buf
  source_file: /src/haproxy/src/cli.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PAYLOAD_PATTERN_SIZE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/src/cli.c
      type_or_value: '64'
    - item_type: preproc_def
      name: PAYLOAD_PATTERN
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/src/cli.c
      type_or_value: '"<<"'
    - item_type: preproc_def
      name: CLI_SHOWFD_F_PI
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/src/cli.c
      type_or_value: '0x00000001   '
    - item_type: preproc_def
      name: CLI_SHOWFD_F_LI
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/src/cli.c
      type_or_value: '0x00000002   '
    - item_type: preproc_def
      name: CLI_SHOWFD_F_FE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/src/cli.c
      type_or_value: '0x00000004   '
    - item_type: preproc_def
      name: CLI_SHOWFD_F_SV
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/src/cli.c
      type_or_value: '0x00000010   '
    - item_type: preproc_def
      name: CLI_SHOWFD_F_PX
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/src/cli.c
      type_or_value: '0x00000020   '
    - item_type: preproc_def
      name: CLI_SHOWFD_F_BE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/src/cli.c
      type_or_value: '0x00000030   '
    - item_type: preproc_def
      name: CLI_SHOWFD_F_CO
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/src/cli.c
      type_or_value: '0x00000034   '
    - item_type: preproc_def
      name: CLI_SHOWFD_F_ANY
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/haproxy/src/cli.c
      type_or_value: '0x0000003f   '
    structs:
    - fields:
      - name: '**var'
        type: char
      - name: show_one
        type: int
      item_type: struct
      name: show_env_ctx
      pos:
        line_end: 94
        line_start: 91
        source_file: /src/haproxy/src/cli.c
    - fields:
      - name: fd
        type: int
      - name: tgid
        type: int
      - name: show_one
        type: int
      - name: show_mask
        type: uint
      item_type: struct
      name: show_fd_ctx
      pos:
        line_end: 112
        line_start: 107
        source_file: /src/haproxy/src/cli.c
    - fields:
      - name: '*bind_conf'
        type: struct bind_conf
      - name: '*listener'
        type: struct listener
      item_type: struct
      name: show_sock_ctx
      pos:
        line_end: 118
        line_start: 115
        source_file: /src/haproxy/src/cli.c
    - fields:
      - name: '*kw'
        type: struct cli_kw
      - name: dist
        type: int
      item_type: struct
      name: matches[CLI_MAX_MATCHES]
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/haproxy/src/cli.c
    typedefs: []
    union: []
- function_names:
  - cfg_lookup_cond_pred
  - cfg_free_cond_term
  - cfg_parse_cond_term
  - cfg_eval_cond_enabled
  - cfg_eval_cond_term
  - cfg_free_cond_and
  - cfg_free_cond_expr
  - cfg_parse_cond_and
  - cfg_parse_cond_expr
  - cfg_eval_cond_and
  - cfg_eval_cond_expr
  - cfg_eval_condition
  source_file: /src/haproxy/src/cfgcond.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WILL_LJMP
  - MAY_LJMP
  - hlua_panic_safe
  - hlua_panic_ljmp
  - lua_take_global_lock
  - lua_drop_global_lock
  - hlua_lock
  - hlua_unlock
  - _hlua_tostring_safe
  - hlua_tostring_safe
  - _hlua_pushvfstring_safe
  - hlua_pushvfstring_safe
  - hlua_pushfstring_safe
  - SET_SAFE_LJMP_L
  - RESET_SAFE_LJMP_L
  - SET_SAFE_LJMP
  - RESET_SAFE_LJMP
  - SET_SAFE_LJMP_PARENT
  - RESET_SAFE_LJMP_PARENT
  - _hlua_time_ms
  - _hlua_time_burst
  - hlua_timer_init
  - hlua_timer_reset
  - hlua_timer_start
  - hlua_timer_stop
  - hlua_timer_check
  - hlua_get_nb_instruction
  - SEND_ERR
  - new_hlua_function
  - release_hlua_function
  - fcn_ref_to_stack_id
  - new_hlua_reg_filter
  - release_hlua_reg_filter
  - reg_flt_to_stack_id
  - hlua_checkfunction
  - hlua_checktable
  - hlua_ref
  - hlua_pushref
  - hlua_unref
  - _hlua_traceback
  - hlua_traceback
  - check_args
  - _hlua_pusherror
  - hlua_pusherror
  - hlua_arg2lua
  - hlua_lua2arg
  - hlua_smp2lua
  - hlua_smp2lua_str
  - hlua_lua2smp
  - hlua_lua2arg_check
  - hlua_gethlua
  - hlua_sethlua
  - hlua_show_current_location
  - hlua_sendlog
  - hlua_yieldk
  - hlua_ctx_init
  - hlua_httpclient_destroy_all
  - hlua_ctx_destroy
  - hlua_ctx_renew
  - hlua_stream_ctx_get
  - hlua_stream_ctx_prepare
  - hlua_hook
  - hlua_yield_asap
  - hlua_ctx_resume
  - hlua_done
  - hlua_del_acl
  - hlua_del_map
  - hlua_add_acl
  - hlua_set_map
  - hlua_get_patref
  - hlua_core_get_var
  - hlua_use_native_mailers_config
  - hlua_checkmap
  - hlua_map_new
  - _hlua_map_lookup
  - hlua_map_lookup
  - hlua_map_slookup
  - hlua_checksocket
  - hlua_socket_handler
  - hlua_socket_init
  - hlua_socket_release
  - hlua_socket_gc
  - hlua_socket_close_helper
  - hlua_socket_close
  - hlua_socket_receive_yield
  - hlua_socket_receive
  - hlua_socket_write_yield
  - hlua_socket_send
  - hlua_socket_info
  - hlua_socket_getpeername
  - hlua_socket_getsockname
  - hlua_socket_connect_yield
  - hlua_socket_connect
  - hlua_socket_connect_ssl
  - hlua_socket_setoption
  - hlua_socket_settimeout
  - hlua_socket_new
  - hlua_checkchannel
  - hlua_channel_new
  - hlua_channel_filter
  - _hlua_channel_dup
  - _hlua_channel_insert
  - _hlua_channel_delete
  - hlua_channel_get_data_yield
  - hlua_channel_get_line_yield
  - hlua_channel_dup
  - hlua_channel_get
  - hlua_channel_getline_yield
  - hlua_channel_getline
  - hlua_channel_get_data
  - hlua_channel_get_line
  - hlua_channel_append
  - hlua_channel_prepend
  - hlua_channel_insert_data
  - hlua_channel_set_data
  - hlua_channel_del_data
  - hlua_channel_send_yield
  - hlua_channel_send
  - hlua_channel_forward_yield
  - hlua_channel_forward
  - hlua_channel_get_in_len
  - hlua_channel_is_full
  - hlua_channel_may_recv
  - hlua_channel_is_resp
  - hlua_channel_get_out_len
  - hlua_checkfetches
  - hlua_fetches_new
  - hlua_run_sample_fetch
  - hlua_checkconverters
  - hlua_converters_new
  - hlua_run_sample_conv
  - hlua_checkapplet_tcp
  - hlua_applet_tcp_new
  - hlua_applet_tcp_set_var
  - hlua_applet_tcp_unset_var
  - hlua_applet_tcp_get_var
  - hlua_applet_tcp_set_priv
  - hlua_applet_tcp_get_priv
  - hlua_applet_tcp_getline_yield
  - hlua_applet_tcp_getline
  - hlua_applet_tcp_recv_try
  - hlua_applet_tcp_recv_yield
  - hlua_applet_tcp_recv
  - hlua_applet_tcp_try_recv
  - hlua_applet_tcp_send_yield
  - hlua_applet_tcp_send
  - hlua_checkapplet_http
  - hlua_applet_http_new
  - hlua_applet_http_set_var
  - hlua_applet_http_unset_var
  - hlua_applet_http_get_var
  - hlua_applet_http_set_priv
  - hlua_applet_http_get_priv
  - hlua_applet_http_getline_yield
  - hlua_applet_http_getline
  - hlua_applet_http_recv_yield
  - hlua_applet_http_recv
  - hlua_applet_http_send_yield
  - hlua_applet_http_send
  - hlua_applet_http_addheader
  - hlua_applet_http_status
  - hlua_applet_http_send_response
  - hlua_applet_http_start_response_yield
  - hlua_applet_http_start_response
  - hlua_checkhttp
  - hlua_http_new
  - hlua_http_get_stline
  - hlua_http_get_headers
  - hlua_http_req_get_headers
  - hlua_http_res_get_headers
  - hlua_http_rep_hdr
  - hlua_http_req_rep_hdr
  - hlua_http_res_rep_hdr
  - hlua_http_req_rep_val
  - hlua_http_res_rep_val
  - hlua_http_del_hdr
  - hlua_http_req_del_hdr
  - hlua_http_res_del_hdr
  - hlua_http_add_hdr
  - hlua_http_req_add_hdr
  - hlua_http_res_add_hdr
  - hlua_http_req_set_hdr
  - hlua_http_res_set_hdr
  - hlua_http_req_set_meth
  - hlua_http_req_set_path
  - hlua_http_req_set_query
  - hlua_http_req_set_uri
  - hlua_http_res_set_status
  - hlua_checkhttpmsg
  - hlua_http_msg_new
  - hlua_http_msg_filter
  - hlua_http_msg_is_resp
  - hlua_http_msg_get_stline
  - hlua_http_msg_get_headers
  - hlua_http_msg_del_hdr
  - hlua_http_msg_rep_hdr
  - hlua_http_msg_rep_val
  - hlua_http_msg_add_hdr
  - hlua_http_msg_set_hdr
  - hlua_http_msg_set_meth
  - hlua_http_msg_set_path
  - hlua_http_msg_set_query
  - hlua_http_msg_set_uri
  - hlua_http_msg_set_status
  - hlua_http_msg_set_body_len
  - hlua_http_msg_is_full
  - hlua_http_msg_may_recv
  - hlua_http_msg_is_eom
  - hlua_http_msg_get_in_len
  - hlua_http_msg_get_out_len
  - _hlua_http_msg_dup
  - _hlua_http_msg_insert
  - _hlua_http_msg_delete
  - hlua_http_msg_get_body
  - hlua_http_msg_append
  - hlua_http_msg_prepend
  - hlua_http_msg_insert_data
  - hlua_http_msg_del_data
  - hlua_http_msg_set_data
  - hlua_http_msg_send
  - hlua_http_msg_forward
  - hlua_http_msg_set_eom
  - hlua_http_msg_unset_eom
  - hlua_checkhttpclient
  - hlua_httpclient_gc
  - hlua_httpclient_new
  - hlua_httpclient_cb
  - hlua_httpclient_get_headers
  - hlua_httpclient_table_to_hdrs
  - hlua_httpclient_rcv_yield
  - hlua_httpclient_snd_yield
  - hlua_httpclient_send
  - hlua_httpclient_head
  - hlua_httpclient_get
  - hlua_httpclient_put
  - hlua_httpclient_post
  - hlua_httpclient_delete
  - hlua_checktxn
  - hlua_set_var
  - hlua_unset_var
  - hlua_get_var
  - hlua_set_priv
  - hlua_get_priv
  - hlua_txn_new
  - hlua_txn_deflog
  - hlua_txn_log
  - hlua_txn_log_debug
  - hlua_txn_log_info
  - hlua_txn_log_warning
  - hlua_txn_log_alert
  - hlua_txn_set_fc_mark
  - hlua_txn_set_fc_tos
  - hlua_txn_set_loglevel
  - hlua_txn_set_priority_class
  - hlua_txn_set_priority_offset
  - hlua_txn_forward_reply
  - hlua_txn_done
  - hlua_txn_reply_new
  - hlua_txn_reply_set_status
  - hlua_txn_reply_add_header
  - hlua_txn_reply_del_header
  - hlua_txn_reply_set_body
  - hlua_log
  - hlua_log_debug
  - hlua_log_info
  - hlua_log_warning
  - hlua_log_alert
  - hlua_sleep_yield
  - hlua_sleep
  - hlua_msleep
  - hlua_yield_yield
  - hlua_yield
  - hlua_wait
  - hlua_set_nice
  - hlua_coroutine_create
  - hlua_process_task
  - hlua_register_init
  - hlua_register_task
  - hlua_event_subscription_destroy
  - hlua_event_handler
  - hlua_event_hdl_cb_push_event_checkres
  - hlua_event_hdl_cb_push_args
  - hlua_event_runner
  - hlua_event_subscribe
  - hlua_check_event_sub_types
  - _hlua_new_event_sub_safe
  - hlua_new_event_sub_safe
  - hlua_event_sub
  - hlua_event_global_sub
  - hlua_sample_conv_wrapper
  - hlua_sample_fetch_wrapper
  - hlua_register_converters
  - hlua_register_fetches
  - hlua_set_wake_time
  - hlua_action
  - hlua_applet_wakeup
  - hlua_applet_tcp_init
  - hlua_applet_tcp_fct
  - hlua_applet_tcp_release
  - hlua_applet_http_init
  - hlua_applet_http_fct
  - hlua_applet_http_release
  - action_register_lua
  - action_register_service_http
  - hlua_register_action
  - action_register_service_tcp
  - hlua_register_service
  - hlua_cli_parse_fct
  - hlua_cli_io_handler_fct
  - hlua_cli_io_release_fct
  - hlua_register_cli
  - hlua_filter_init_per_thread
  - hlua_filter_deinit_per_thread
  - hlua_filter_init
  - hlua_filter_deinit
  - hlua_filter_new
  - hlua_filter_delete
  - hlua_filter_from_payload
  - hlua_filter_callback
  - hlua_filter_start_analyze
  - hlua_filter_end_analyze
  - hlua_filter_http_headers
  - hlua_filter_http_payload
  - hlua_filter_http_end
  - hlua_filter_tcp_payload
  - hlua_filter_parse_fct
  - hlua_register_data_filter
  - hlua_unregister_data_filter
  - hlua_register_filter
  - hlua_read_timeout
  - hlua_burst_timeout
  - hlua_session_timeout
  - hlua_task_timeout
  - hlua_applet_timeout
  - hlua_forced_yield
  - hlua_parse_maxmem
  - hlua_cfg_parse_log_loggers
  - hlua_cfg_parse_log_stderr
  - hlua_cfg_parse_bool_sample_conversion
  - hlua_cfg_parse_openlibs
  - hlua_load_state
  - hlua_load
  - hlua_load_per_thread
  - hlua_prepend_path
  - hlua_config_prepend_path
  - hlua_ckch_commit_yield
  - hlua_ckch_set
  - hlua_ckch_set
  - hlua_post_init_state
  - hlua_post_init
  - hlua_alloc
  - hlua_init_state
  - HLUA_PREPEND_PATH_TOSTRING1
  - HLUA_PREPEND_PATH_TOSTRING
  - hlua_init
  - hlua_deinit
  - hlua_register_build_options
  - hlua_pre_check
  source_file: /src/haproxy/src/hlua.c
  types:
    enum:
    - enumerators:
      - name: HLUA_LOG_LOGGERS_ON
        value: '0x00000001'
      - name: HLUA_LOG_STDERR_AUTO
        value: '0x00000020'
      - name: HLUA_LOG_STDERR_ON
        value: '0x00000010'
      - name: HLUA_LOG_STDERR_MASK
        value: '0x00000030'
      item_type: enum
      name: hlua_log_opt
      pos:
        line_end: 86
        line_start: 78
        source_file: /src/haproxy/src/hlua.c
    preproc_defs:
    - item_type: preproc_def
      name: LUA_GNAME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '"_G"'
    - item_type: preproc_def
      name: HLUA_BOOL_SAMPLE_CONVERSION_UNK
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: HLUA_BOOL_SAMPLE_CONVERSION_NORMAL
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: HLUA_BOOL_SAMPLE_CONVERSION_BUG
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/src/hlua.c
      type_or_value: 0X2
    - item_type: preproc_def
      name: APPLET_DONE
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: APPLET_REQ_RECV
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: APPLET_HDR_SENT
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: APPLET_HTTP11
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x20 '
    - item_type: preproc_def
      name: APPLET_RSP_SENT
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x40 '
    - item_type: preproc_def
      name: HLUA_FLT_CB_FINAL
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: HLUA_FLT_CB_RETVAL
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: HLUA_FLT_CB_ARG_CHN
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: HLUA_FLT_CB_ARG_HTTP_MSG
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: HLUA_FLT_CTX_FL_PAYLOAD
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: HLUA_OPENLIBS_ALL
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: HLSR_READ_LINE
      pos:
        line_end: 2894
        line_start: 2893
        source_file: /src/haproxy/src/hlua.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: HLSR_READ_ALL
      pos:
        line_end: 2895
        line_start: 2894
        source_file: /src/haproxy/src/hlua.c
      type_or_value: (-2)
    - item_type: preproc_def
      name: SOCKET_INFO_MAX_LEN
      pos:
        line_end: 3327
        line_start: 3326
        source_file: /src/haproxy/src/hlua.c
      type_or_value: sizeof("[0000:0000:0000:0000:0000:0000:0000:0000]:12345")
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: flt_ref[MAX_THREADS + 1]
        type: int
      - name: fun_ref[MAX_THREADS + 1]
        type: int
      - name: l
        type: struct list
      item_type: struct
      name: hlua_reg_filter
      pos:
        line_end: 412
        line_start: 407
        source_file: /src/haproxy/src/hlua.c
    - fields:
      - name: '*reg'
        type: struct hlua_reg_filter
      - name: ref[MAX_THREADS + 1]
        type: int
      - name: '**args'
        type: char
      item_type: struct
      name: hlua_flt_config
      pos:
        line_end: 418
        line_start: 414
        source_file: /src/haproxy/src/hlua.c
    - fields:
      - name: '*_hlua'
        type: struct hlua
      - name: ref
        type: int
      - name: '*hlua[2]'
        type: struct hlua
      - name: cur_off[2]
        type: unsigned int
      - name: cur_len[2]
        type: unsigned int
      - name: flags
        type: unsigned int
      item_type: struct
      name: hlua_flt_ctx
      pos:
        line_end: 427
        line_start: 420
        source_file: /src/haproxy/src/hlua.c
    - fields:
      - name: connected
        type: int
      - name: xref
        type: struct xref
      - name: wake_on_read
        type: struct mt_list
      - name: wake_on_write
        type: struct mt_list
      - name: '*appctx'
        type: struct appctx
      - name: '*srv'
        type: struct server
      - name: timeout
        type: int
      - name: die
        type: int
      item_type: struct
      name: hlua_csk_ctx
      pos:
        line_end: 439
        line_start: 430
        source_file: /src/haproxy/src/hlua.c
    - fields:
      - name: '*hlua'
        type: struct hlua
      - name: flags
        type: int
      - name: '*task'
        type: struct task
      item_type: struct
      name: hlua_tcp_ctx
      pos:
        line_end: 446
        line_start: 442
        source_file: /src/haproxy/src/hlua.c
    - fields:
      - name: '*hlua'
        type: struct hlua
      - name: left_bytes
        type: int
      - name: flags
        type: int
      - name: status
        type: int
      - name: '*reason'
        type: char
      - name: '*task'
        type: struct task
      item_type: struct
      name: hlua_http_ctx
      pos:
        line_end: 456
        line_start: 449
        source_file: /src/haproxy/src/hlua.c
    - fields:
      - name: '*hlua'
        type: struct hlua
      - name: '*task'
        type: struct task
      - name: '*fcn'
        type: struct hlua_function
      item_type: struct
      name: hlua_cli_ctx
      pos:
        line_end: 463
        line_start: 459
        source_file: /src/haproxy/src/hlua.c
    - fields:
      - name: '*name'
        type: char
      - name: open
        type: lua_CFunction
      - name: flag
        type: uint
      item_type: struct
      name: "hlua_openlibs_tbl[] = {\n\t{ LUA_TABLIBNAME,  luaopen_table,   0x01 },\n\t{
        LUA_IOLIBNAME,   luaopen_io,      0x02 },\n\t{ LUA_OSLIBNAME,   luaopen_os,
        \     0x04 },\n\t{ LUA_STRLIBNAME,  luaopen_string,  0x08 },\n\t{ LUA_MATHLIBNAME,
        luaopen_math,    0x10 },\n\t{ LUA_UTF8LIBNAME, luaopen_utf8,    0x20 },\n\t{
        LUA_LOADLIBNAME, luaopen_package, 0x40 },\n\t{ LUA_DBLIBNAME,   luaopen_debug,
        \  0x80 },\n\t{ NULL, NULL, 0 }\n}"
      pos:
        line_end: 532
        line_start: 528
        source_file: /src/haproxy/src/hlua.c
    - fields:
      - name: allocated
        type: size_t
      - name: limit
        type: size_t
      item_type: struct
      name: hlua_mem_allocator
      pos:
        line_end: 708
        line_start: 705
        source_file: /src/haproxy/src/hlua.c
    - fields:
      - name: fcn_ref
        type: int
      - name: state_id
        type: int
      - name: '*hlua'
        type: struct hlua
      - name: '*task'
        type: struct task
      - name: equeue
        type: event_hdl_async_equeue
      - name: '*sub'
        type: struct event_hdl_sub
      - name: paused
        type: uint8_t
      item_type: struct
      name: hlua_event_sub
      pos:
        line_end: 721
        line_start: 713
        source_file: /src/haproxy/src/hlua.c
    - fields:
      - name: l
        type: struct list
      - name: '*type'
        type: char
      - name: '*path'
        type: char
      item_type: struct
      name: prepend_path
      pos:
        line_end: 747
        line_start: 743
        source_file: /src/haproxy/src/hlua.c
    typedefs: []
    union: []
- function_names:
  - hpack_encode_header
  source_file: /src/haproxy/src/hpack-enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - accept_queue_pop_sc
  - accept_queue_push_mp
  - accept_queue_process
  - accept_queue_init
  - accept_queue_deinit
  - li_init_per_thr
  - get_li_status
  - listener_set_state
  - enable_listener
  - stop_listener
  - listener_get_next_id
  - default_add_listener
  - default_suspend_listener
  - default_resume_listener
  - suspend_listener
  - resume_listener
  - relax_listener
  - listener_full
  - limit_listener
  - dequeue_all_listeners
  - dequeue_proxy_listeners
  - default_unbind_listener
  - do_unbind_listener
  - unbind_listener
  - create_listeners
  - shard_info_attach
  - shard_info_detach
  - clone_listener
  - __delete_listener
  - delete_listener
  - listener_backlog
  - listener_uses_maxconn
  - listener_accept
  - listener_release
  - listener_queue_init
  - listener_queue_deinit
  - manage_global_listener_queue
  - bind_complete_thread_setup
  - bind_generate_guid
  - bind_conf_find_by_name
  - bind_register_keywords
  - bind_find_kw
  - bind_dump_kws
  - bind_find_best_kw
  - bind_conf_alloc
  - listener_state_str
  - smp_fetch_dconn
  - smp_fetch_so_id
  - smp_fetch_so_name
  - bind_parse_accept_proxy
  - bind_parse_accept_netscaler_cip
  - bind_parse_backlog
  - bind_parse_guid_prefix
  - bind_parse_id
  - bind_parse_idle_ping
  - bind_parse_args_list
  - bind_parse_maxconn
  - bind_parse_name
  - bind_parse_label
  - bind_parse_nbconn
  - bind_parse_nice
  - bind_parse_process
  - bind_parse_proto
  - bind_parse_shards
  - bind_parse_thread
  - cfg_parse_tune_listener_shards
  - cfg_parse_tune_listener_mq
  source_file: /src/haproxy/src/listener.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - task_kill
  - tasklet_kill
  - __tasklet_wakeup_on
  - __tasklet_wakeup_after
  - __task_wakeup
  - __task_queue
  - wake_expired_tasks
  - next_timer_expiry
  - run_tasks_from_lists
  - process_runnable_tasks
  - is_sched_alive
  - mworker_cleantasks
  - init_task
  - cfg_parse_tune_sched_low_latency
  source_file: /src/haproxy/src/task.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sched_stuck
        type: int
      item_type: struct
      name: sched_ctx[MAX_THREADS]
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/haproxy/src/task.c
    typedefs: []
    union: []
- function_names:
  - bind_parse_quic_force_retry
  - parse_window_size
  - parse_cc_algo
  - bind_parse_quic_cc_algo
  - bind_parse_quic_socket
  - srv_parse_quic_cc_algo
  - cfg_parse_quic_tune_sock_per_conn
  - cfg_parse_quic_tune_socket_owner
  - cfg_parse_quic_time
  - cfg_parse_quic_tune_setting
  - cfg_parse_quic_tune_setting0
  - cfg_parse_quic_tune_on_off
  - quic_parse_quic_initial
  source_file: /src/haproxy/src/cfgparse-quic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_CC_NEWRENO_STR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/src/cfgparse-quic.c
      type_or_value: '"newreno"'
    - item_type: preproc_def
      name: QUIC_CC_CUBIC_STR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/src/cfgparse-quic.c
      type_or_value: '"cubic"'
    - item_type: preproc_def
      name: QUIC_CC_BBR_STR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/src/cfgparse-quic.c
      type_or_value: '"bbr"'
    - item_type: preproc_def
      name: QUIC_CC_NO_CC_STR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/src/cfgparse-quic.c
      type_or_value: '"nocc"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ssl_fill_stats
  - ssl_sock_to_pipe
  - ssl_sock_from_pipe
  - ha_ssl_write
  - ha_ssl_gets
  - ha_ssl_puts
  - ha_ssl_read
  - ktls_set_key
  - ha_ssl_ctrl
  - ha_ssl_new
  - ha_ssl_free
  - ssl_id_function
  - ssl_locking_function
  - ssl_locking_init
  - ssl_sock_sni_hash
  - ssl_set_cert_crl_file
  - ssl_set_verify_locations_file
  - ssl_get_client_ca_file
  - ssl_sock_register_msg_callback
  - ssl_sock_register_msg_callbacks
  - ssl_sock_unregister_msg_callbacks
  - ssl_sock_get_ctx
  - ssl_sock_get_ssl_object
  - ssl_sock_dump_errors
  - ssl_init_single_engine
  - ssl_init_provider
  - ssl_async_fd_handler
  - ssl_async_fd_free
  - ssl_async_process_fds
  - ssl_hmac_init
  - ssl_tlsext_ticket_key_cb
  - tlskeys_ref_lookup
  - tlskeys_ref_lookupid
  - ssl_sock_update_tlskey_ref
  - ssl_sock_update_tlskey
  - tlskeys_finalize_config
  - ssl_sock_load_ocsp
  - ssl_sock_load_ocsp
  - ssl_sock_sctl_add_cbk
  - ssl_sock_sctl_parse_cbk
  - ssl_sock_load_sctl
  - ssl_sock_infocbk
  - ssl_sock_bind_verifycbk
  - ssl_sock_parse_heartbeat
  - ssl_sock_parse_clienthello
  - ssl_init_keylog
  - ssl_sock_msgcbk
  - ssl_sock_srv_select_protos
  - ssl_sock_advertise_npn_protos
  - ssl_sock_advertise_alpn_protos
  - ctx_set_SSLv3_func
  - ctx_set_TLSv10_func
  - ctx_set_TLSv11_func
  - ctx_set_TLSv12_func
  - ctx_set_TLSv13_func
  - ssl_set_SSLv3_func
  - ssl_set_TLSv10_func
  - ssl_set_TLSv11_func
  - ssl_set_TLSv12_func
  - ssl_set_TLSv13_func
  - ctx_set_SSLv3_func
  - ssl_set_SSLv3_func
  - ctx_set_TLSv10_func
  - ssl_set_TLSv10_func
  - ctx_set_TLSv11_func
  - ssl_set_TLSv11_func
  - ctx_set_TLSv12_func
  - ssl_set_TLSv12_func
  - ctx_set_TLSv13_func
  - ssl_set_TLSv13_func
  - ctx_set_None_func
  - ssl_set_None_func
  - ssl_new_dh_fromdata
  - ssl_get_dh_by_nid
  - ssl_get_dh_1024
  - ssl_get_dh_2048
  - ssl_get_dh_4096
  - ssl_get_tmp_dh
  - ssl_get_tmp_dh_cbk
  - ssl_sock_set_tmp_dh
  - ssl_sock_set_tmp_dh_from_pkey
  - ssl_sock_get_dh_from_bio
  - ssl_sock_get_dh_from_file
  - ssl_sock_load_global_dh_param_from_file
  - ckch_inst_add_cert_sni
  - ssl_sock_load_cert_sni
  - ssl_sock_load_dh_params
  - ssl_sock_load_cert_chain
  - ssl_sock_put_ckch_into_ctx
  - ssl_sock_put_srv_ckch_into_ctx
  - ckch_inst_new_load_store
  - ssl_sock_new_ssl_ctx
  - ssl_sock_new_ssl_ctx
  - ckch_inst_new_load_srv_store
  - ssl_sock_load_ckchs
  - ssl_sock_load_srv_ckchs
  - ssl_initialize_random
  - ssl_sock_load_cert_list_file
  - ssl_sock_load_cert
  - ssl_sock_load_srv_cert
  - ssl_sock_create_passphrase_cache
  - ssl_sock_resize_passphrase_cache
  - ssl_sock_clear_passphrase_cache
  - obfuscate_str
  - deobfuscate_str
  - ssl_sock_passwd_cb
  - ssl_sock_initial_ctx
  - sh_ssl_sess_free_blocks
  - sh_ssl_sess_first_block
  - sh_ssl_sess_store
  - ssl_sess_new_srv_cb
  - sh_ssl_sess_new_cb
  - sh_ssl_sess_get_cb
  - sh_ssl_sess_remove_cb
  - ssl_set_shctx
  - SSL_CTX_keylog
  - ssl_sock_prepare_ctx
  - ssl_sock_prep_ctx_and_inst
  - ssl_sock_srv_hostcheck
  - ssl_sock_srv_verifycbk
  - ssl_sock_prepare_srv_ctx
  - ssl_sock_prepare_srv_ssl_ctx
  - ssl_sock_prep_srv_ctx_and_inst
  - ssl_initial_ctx
  - ssl_initial_ctx
  - ssl_sock_prepare_all_ctx
  - ssl_sock_prepare_bind_conf
  - ssl_sock_free_srv_ctx
  - ssl_sock_free_all_ctx
  - ssl_sock_deinit
  - ssl_sock_destroy_bind_conf
  - ssl_bio_and_sess_init
  - ssl_sock_start
  - increment_sslconn
  - ssl_sock_srv_try_reuse_sess
  - ssl_sock_init
  - ssl_sock_update_counters
  - ssl_sock_handle_hs_error
  - ssl_sock_handshake
  - ssl_subscribe
  - ssl_unsubscribe
  - ssl_takeover
  - ssl_set_idle
  - ssl_set_used
  - ssl_add_xprt
  - ssl_remove_xprt
  - ssl_sock_hkdf_expand_label
  - ssl_sock_setup_ktls
  - ssl_sock_io_cb
  - ssl_sock_to_buf
  - ssl_sock_close
  - ssl_sock_shutw
  - ssl_sock_get_pkey_algo
  - ssl_sock_get_cert_sig
  - ssl_sock_get_sni
  - ssl_sock_get_cipher_name
  - ssl_sock_get_proto_version
  - ssl_sock_set_alpn
  - ssl_sock_set_servername
  - ssl_sock_get_remote_common_name
  - ssl_sock_get_cert_used_sess
  - ssl_sock_get_cert_used_conn
  - ssl_sock_get_verify_result
  - ssl_sock_get_alpn
  - ssl_load_global_issuer_from_BIO
  - ssl_get0_issuer_chain
  - ssl_free_global_issuers
  - ssl_check_async_engine_count
  - ssl_sock_show_fd
  - tlskeys_list_get_next
  - tlskeys_ref_lookup_ref
  - cli_io_handler_tlskeys_files
  - cli_parse_show_tlskeys
  - cli_parse_set_tlskeys
  - ssl_provider_get_name_cb
  - ssl_provider_get_name_list
  - ssl_provider_clear_name_list
  - list_for_each_entry_safe
  - cli_io_handler_show_providers
  - ssl_sock_get_capability
  - ssl_action_wait_for_hs
  - ssl_parse_wait_for_hs
  - ssl_sock_sctl_free_func
  - ssl_sock_capture_free_func
  - ssl_sock_free_crtname
  - ssl_sock_keylog_free_func
  - ssl_sock_clt_crt_free_func
  - ssl_sock_clt_sni_free_func
  - ssl_free_global
  - __ssl_sock_init
  - ssl_register_build_options
  - ssl_free_engines
  - ssl_unload_providers
  - ssl_free_dh
  - __ssl_sock_deinit
  source_file: /src/haproxy/src/ssl_sock.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CT_EXTENSION_TYPE
      pos:
        line_end: 1613
        line_start: 1612
        source_file: /src/haproxy/src/ssl_sock.c
      type_or_value: '18'
    - item_type: preproc_def
      name: DFLT_PASSPHRASES_CNT
      pos:
        line_end: 3697
        line_start: 3696
        source_file: /src/haproxy/src/ssl_sock.c
      type_or_value: '4'
    structs:
    - fields:
      - name: '*next_ref'
        type: struct tls_keys_ref
      - name: names_only
        type: int
      - name: next_index
        type: int
      - name: dump_entries
        type: int
      - name: state
        type: "enum {\n\t\tSHOW_KEYS_INIT = 0,\n\t\tSHOW_KEYS_LIST,\n\t\tSHOW_KEYS_DONE,\n\t}"
      item_type: struct
      name: show_keys_ctx
      pos:
        line_end: 267
        line_start: 257
        source_file: /src/haproxy/src/ssl_sock.c
    - fields:
      - name: node
        type: struct eb64_node
      - name: '*xname'
        type: X509_NAME
      item_type: struct
      name: '*ca_name'
      pos:
        line_end: 689
        line_start: 686
        source_file: /src/haproxy/src/ssl_sock.c
    - fields:
      - name: list
        type: struct list
      - name: '*e'
        type: ENGINE
      item_type: struct
      name: ssl_engine_list
      pos:
        line_end: 779
        line_start: 776
        source_file: /src/haproxy/src/ssl_sock.c
    - fields:
      - name: list
        type: struct list
      - name: '*provider'
        type: OSSL_PROVIDER
      item_type: struct
      name: ssl_provider_list
      pos:
        line_end: 787
        line_start: 784
        source_file: /src/haproxy/src/ssl_sock.c
    - fields:
      - name: info
        type: struct tls_crypto_info
      - name: buf[68]
        type: unsigned char
      item_type: struct
      name: kinfo
      pos:
        line_end: 6572
        line_start: 6565
        source_file: /src/haproxy/src/ssl_sock.c
    - fields:
      - name: nid
        type: int
      - name: tls_cipher
        type: int
      - name: key_size
        type: int
      - name: salt_size
        type: int
      - name: iv_size
        type: int
      - name: seq_size
        type: int
      item_type: struct
      name: "known_ciphers[] = {\n#ifdef TLS_CIPHER_AES_GCM_128\n\t\t{ NID_aes_128_gcm,
        TLS_CIPHER_AES_GCM_128, TLS_CIPHER_AES_GCM_128_KEY_SIZE, TLS_CIPHER_AES_GCM_128_SALT_SIZE,
        TLS_CIPHER_AES_GCM_128_IV_SIZE, TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE },\n#endif\n#ifdef
        TLS_CIPHER_AES_GCM_256\n\t\t{ NID_aes_256_gcm, TLS_CIPHER_AES_GCM_256, TLS_CIPHER_AES_GCM_256_KEY_SIZE,
        TLS_CIPHER_AES_GCM_256_SALT_SIZE, TLS_CIPHER_AES_GCM_256_IV_SIZE, TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE
        },\n#endif\n#ifdef TLS_CIPHER_AES_CCM_128\n\t\t{ NID_aes_128_ccm, TLS_CIPHER_AES_CCM_128,
        TLS_CIPHER_AES_CCM_128_KEY_SIZE, TLS_CIPHER_AES_CCM_128_SALT_SIZE, TLS_CIPHER_AES_CCM_128_IV_SIZE,
        TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE },\n#endif\n#ifdef TLS_CIPHER_CHACHA20_POLY1305\n\t\t{
        NID_chacha20_poly1305, TLS_CIPHER_CHACHA20_POLY1305, TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE,
        TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE, TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE,
        TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE },\n#endif\n#if defined(TLS_CIPHER_SM4_GCM)
        && defined(NID_sm4_gcm)\n\t\t{ NID_sm4_gcm, TLS_CIPHER_SM4_GCM, TLS_CIPHER_SM4_GCM_KEY_SIZE,cTLS_CIPHER_SM4_GCM_SALT_SIZE,
        TLS_CIPHER_SM4_GCM_IV_SIZE, TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE },\n#endif\n#if
        defined(TLS_CIPHER_SM4_CCM) && defined(NID_sm4_ccm)\n\t\t{ NID_sm4_ccm, TLS_CIPHER_SM4_CCM,
        TLS_CIPHER_SM4_CCM_KEY_SIZE,cTLS_CIPHER_SM4_CCM_SALT_SIZE, TLS_CIPHER_SM4_CCM_IV_SIZE,
        TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE },\n#endif\n#if defined(TLS_CIPHER_ARIA_GCM_128)
        && defined(NID_aria_128_gcm)\n\t\t{ NID_aria_128_gcm, TLS_CIPHER_ARIA_GCM_128,
        TLS_CIPHER_ARIA_GCM_128_KEY_SIZE, TLS_CIPHER_ARIA_GCM_128_SALT_SIZE, TLS_CIPHER_ARIA_GCM_128_IV_SIZE,
        TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE },\n#endif\n#if defined(TLS_CIPHER_ARIA_GCM_256)
        && defined(NID_aria_256_gcm)\n\t\t{ NID_aria_256_gcm, TLS_CIPHER_ARIA_GCM_256,
        TLS_CIPHER_ARIA_GCM_256_KEY_SIZE, TLS_CIPHER_ARIA_GCM_256_SALT_SIZE, TLS_CIPHER_ARIA_GCM_256_IV_SIZE,
        TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE },\n#endif\n\n\t}"
      pos:
        line_end: 6580
        line_start: 6573
        source_file: /src/haproxy/src/ssl_sock.c
    - fields:
      - name: '*name'
        type: char
      - name: list
        type: struct list
      item_type: struct
      name: provider_name
      pos:
        line_end: 8181
        line_start: 8178
        source_file: /src/haproxy/src/ssl_sock.c
    typedefs: []
    union:
    - fields:
      - name: hdr
        type: struct cmsghdr
      - name: buf[CMSG_SPACE(sizeof(unsigned char))]
        type: char
      item_type: union
      name: cmsgbuf
      pos:
        line_end: 361
        line_start: 358
        source_file: /src/haproxy/src/ssl_sock.c
- function_names:
  - now_mono_time
  - now_mono_time_fast
  - now_cpu_time
  - now_cpu_time_fast
  - now_cpu_time_thread
  - clock_set_local_source
  - clock_setup_signal_timer
  - clock_update_local_date
  - clock_update_global_date
  - clock_init_process_date
  - clock_adjust_now_offset
  - clock_set_now_offset
  - clock_get_now_offset
  - clock_init_thread_date
  - clock_report_idle
  - clock_measure_idle
  - clock_leaving_poll
  - clock_entering_poll
  - timeofday_as_iso_us
  source_file: /src/haproxy/src/clock.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/src/cebib_tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CEB_KEY_TYPE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/cebib_tree.c
      type_or_value: CEB_KT_IM
    - item_type: preproc_def
      name: CEB_KEY_MEMBER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/cebib_tree.c
      type_or_value: ptr
    - item_type: preproc_def
      name: CEB_MKEY_PFX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/src/cebib_tree.c
      type_or_value: cebib
    - item_type: preproc_def
      name: CEB_UKEY_PFX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/src/cebib_tree.c
      type_or_value: cebuib
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_bind_socket
  - quic_connect_server
  - quic_bind_listener
  - quic_enable_listener
  - quic_disable_listener
  - quic_get_info
  - quic_bind_tid_prep
  - quic_bind_tid_commit
  - quic_bind_tid_reset
  - quic_init_mem
  - quic_alloc_dghdlrs
  - quic_deallocate_dghdlrs
  - quic_test_conn_socket_owner
  - quic_test_gso
  - quic_test_socketopts
  - quic_register_build_options
  source_file: /src/haproxy/src/proto_quic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_RX_BUFSZ
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/src/proto_quic.c
      type_or_value: (1UL << 18)
    structs: []
    typedefs: []
    union: []
- function_names:
  - __fd_clo
  - _update_fd
  - _do_poll
  - init_poll_per_thread
  - deinit_poll_per_thread
  - _do_init
  - _do_term
  - _do_test
  - _do_register
  source_file: /src/haproxy/src/ev_poll.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLLRDHUP
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/src/ev_poll.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ha_cpuset_zero
  - ha_cpuset_set
  - ha_cpuset_clr
  - ha_cpuset_and
  - ha_cpuset_or
  - ha_cpuset_isset
  - ha_cpuset_count
  - ha_cpuset_ffs
  - ha_cpuset_assign
  - ha_cpuset_isequal
  - ha_cpuset_size
  - parse_cpu_set
  - print_cpu_set
  - parse_cpumap
  source_file: /src/haproxy/src/cpuset.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bbr_min_pipe_cwnd
  - is_inflight_too_high
  - bbr_is_in_a_probe_bw_state
  - bbr_reset_congestion_signals
  - bbr_reset_lower_bounds
  - bbr_init_round_counting
  - bbr_reset_full_bw
  - bbr_init_pacing_rate
  - bbr_set_send_quantum
  - bbr_enter_startup
  - bbr_enter_drain
  - bbr_enter_probe_rtt
  - bbr_save_cwnd
  - bbr_restore_cwnd
  - bbr_bdp_multiple
  - bbr_update_offload_budget
  - bbr_quantization_budget
  - bbr_inflight
  - bbr_update_max_inflight
  - bbr_set_pacing_rate_with_gain
  - bbr_set_pacing_rate
  - bbr_probe_rtt_cwnd
  - bbr_bound_cwnd_for_probe_rtt
  - bbr_inflight_with_headroom
  - bbr_bound_cwnd_for_model
  - bbr_set_cwnd
  - bbr_init
  - bbr_check_full_bw_reached
  - bbr_check_startup_high_loss
  - bbr_start_round
  - bbr_update_round
  - bbr_pick_probe_wait
  - bbr_raise_inflight_hi_slope
  - bbr_advance_max_bw_filter
  - bbr_start_probe_bw_down
  - bbr_start_probe_bw_cruise
  - bbr_start_probe_bw_refill
  - bbr_start_probe_bw_up
  - bbr_exit_probe_rtt
  - bbr_target_inflight
  - bbr_handle_inflight_too_high
  - bbr_is_inflight_too_high
  - bbr_probe_inflight_hi_upward
  - bbr_adapt_upper_bounds
  - bbr_has_elapsed_in_phase
  - bbr_is_reno_coexistence_probe_time
  - bbr_is_time_to_probe_bw
  - bbr_is_time_to_cruise
  - bbr_is_time_to_go_down
  - bbr_check_probe_rtt_done
  - bbr_mark_connection_app_limited
  - bbr_update_max_bw
  - bbr_init_lower_bounds
  - bbr_loss_lower_bounds
  - bbr_is_probing_bw
  - bbr_adapt_lower_bounds_from_congestion
  - bbr_update_latest_delivery_signals
  - bbr_update_congestion_signals
  - bbr_update_ack_aggregation
  - bbr_check_startup_done
  - bbr_check_drain_done
  - bbr_update_probe_bw_cycle_phase
  - bbr_update_min_rtt
  - bbr_handle_probe_rtt
  - bbr_check_probe_rtt
  - bbr_advance_latest_delivery_signals
  - bbr_bound_bw_for_model
  - bbr_update_model_and_state
  - bbr_update_control_parameters
  - in_recovery_period
  - bbr_handle_recovery
  - bbr_update_on_ack
  - bbr_inflight_hi_from_lost_packet
  - bbr_note_loss
  - bbr_handle_lost_packet
  - bbr_update_on_loss
  - bbr_handle_restart_from_idle
  - bbr_on_transmit
  - bbr_drs_on_transmit
  - bbr_congestion_event
  - bbr_get_drs
  - bbr_pacing_inter
  - bbr_pacing_burst
  - bbr_check_app_limited
  - bbr_state_str
  - bbr_state_cli
  - bbr_check
  source_file: /src/haproxy/src/quic_cc_bbr.c
  types:
    enum:
    - enumerators:
      - name: BBR_ST_STARTUP
      - name: BBR_ST_DRAIN
      - name: BBR_ST_PROBE_BW_DOWN
      - name: BBR_ST_PROBE_BW_CRUISE
      - name: BBR_ST_PROBE_BW_REFILL
      - name: BBR_ST_PROBE_BW_UP
      - name: BBR_ST_PROBE_RTT
      item_type: enum
      name: bbr_state
      pos:
        line_end: 177
        line_start: 169
        source_file: /src/haproxy/src/quic_cc_bbr.c
    preproc_defs:
    - item_type: preproc_def
      name: BBR_STARTUP_FULL_LOSS_COUNT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '6'
    - item_type: preproc_def
      name: BBR_STARTUP_PACING_GAIN_MULT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '277 '
    - item_type: preproc_def
      name: BBR_DRAIN_PACING_GAIN_MULT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '35 '
    - item_type: preproc_def
      name: BBR_DEFAULT_CWND_GAIN_MULT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '200 '
    - item_type: preproc_def
      name: BBR_PACING_MARGIN_PERCENT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: BBR_LOSS_THRESH_MULT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '2'
    - item_type: preproc_def
      name: BBR_LOSS_THRESH_DIVI
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '100'
    - item_type: preproc_def
      name: BBR_BETA_MULT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '7'
    - item_type: preproc_def
      name: BBR_BETA_DIVI
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '10'
    - item_type: preproc_def
      name: BBR_HEADROOM_MULT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '15'
    - item_type: preproc_def
      name: BBR_HEADROOM_DIVI
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '100'
    - item_type: preproc_def
      name: BBR_MAX_BW_FILTERLEN
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '2'
    - item_type: preproc_def
      name: BBR_EXTRA_ACKED_FILTERLEN
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '10'
    - item_type: preproc_def
      name: BBR_MIN_RTT_FILTERLEN
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '10000 '
    - item_type: preproc_def
      name: BBR_PROBE_RTT_CWND_GAIN_MULT
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '50 '
    - item_type: preproc_def
      name: BBR_PROBE_RTT_DURATION
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '200 '
    - item_type: preproc_def
      name: BBR_PROBE_RTT_INTERVAL
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: BBR_GAIN_DIVI
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/src/quic_cc_bbr.c
      type_or_value: '100'
    structs:
    - fields:
      - name: drs
        type: struct quic_cc_drs
      - name: pacing_rate
        type: uint64_t
      - name: pacing_gain
        type: uint64_t
      - name: cwnd_gain
        type: uint64_t
      - name: state
        type: enum bbr_state
      - name: round_count
        type: uint64_t
      - name: round_start
        type: int
      - name: next_round_delivered
        type: uint64_t
      - name: idle_restart
        type: int
      - name: max_bw
        type: uint64_t
      - name: bw_lo
        type: uint64_t
      - name: bw
        type: uint64_t
      - name: prior_cwnd
        type: uint64_t
      - name: min_rtt
        type: uint32_t
      - name: extra_acked
        type: uint64_t
      - name: bytes_lost_in_round
        type: uint64_t
      - name: loss_events_in_round
        type: uint64_t
      - name: offload_budget
        type: uint64_t
      - name: probe_up_cnt
        type: uint64_t
      - name: cycle_stamp
        type: uint32_t
      - name: bw_probe_wait
        type: unsigned int
      - name: bw_probe_samples
        type: int
      - name: bw_probe_up_rounds
        type: int
      - name: bw_probe_up_acks
        type: uint64_t
      - name: max_inflight
        type: uint64_t
      - name: inflight_hi
        type: uint64_t
      - name: inflight_lo
        type: uint64_t
      - name: loss_round_start
        type: int
      - name: bw_latest
        type: uint64_t
      - name: loss_in_round
        type: int
      - name: loss_round_delivered
        type: uint64_t
      - name: rounds_since_bw_probe
        type: unsigned int
      - name: inflight_latest
        type: uint64_t
      - name: max_bw_filter
        type: struct wf
      - name: cycle_count
        type: uint64_t
      - name: extra_acked_interval_start
        type: uint32_t
      - name: extra_acked_delivered
        type: uint64_t
      - name: extra_acked_filter
        type: struct wf
      - name: full_bw_reached
        type: int
      - name: full_bw_now
        type: int
      - name: full_bw
        type: uint64_t
      - name: full_bw_count
        type: int
      - name: min_rtt_stamp
        type: uint32_t
      - name: probe_rtt_min_delay
        type: uint32_t
      - name: probe_rtt_min_stamp
        type: uint32_t
      - name: probe_rtt_done_stamp
        type: uint32_t
      - name: probe_rtt_round_done
        type: int
      - name: probe_rtt_expired
        type: int
      - name: packet_conservation
        type: int
      - name: round_count_at_recovery
        type: uint64_t
      - name: in_loss_recovery
        type: int
      - name: recovery_start_ts
        type: uint32_t
      item_type: struct
      name: bbr
      pos:
        line_end: 252
        line_start: 179
        source_file: /src/haproxy/src/quic_cc_bbr.c
    typedefs: []
    union: []
- function_names:
  - ring_init
  - ring_make_from_area
  - ring_new
  - ring_resize
  - ring_free
  - ring_write
  - ring_attach
  - ring_detach_appctx
  - ring_attach_cli
  - ring_dispatch_messages
  - cli_io_handler_show_ring
  - cli_io_release_show_ring
  - ring_max_payload
  - cfg_parse_tune_ring_queues
  source_file: /src/haproxy/src/ring.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ring'
        type: struct ring
      - name: ofs
        type: size_t
      - name: flags
        type: uint
      item_type: struct
      name: show_ring_ctx
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/haproxy/src/ring.c
    typedefs: []
    union: []
- function_names:
  - hpack_dht_dump
  - hpack_dht_check_consistency
  - hpack_dht_defrag
  - __hpack_dht_make_room
  - hpack_dht_insert
  source_file: /src/haproxy/src/hpack-tbl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hlua_checkboolean
  - hlua_fcn_pushunsigned
  - hlua_fcn_pushunsigned_ll
  - hlua_fcn_pushfield
  - hlua_pushstrippedstring
  - hlua_class_const_int
  - hlua_class_const_str
  - hlua_class_function
  - hlua_dump_object
  - hlua_register_metatable
  - hlua_checkudata
  - hlua_now
  - hlua_parse_date
  - hlua_http_date
  - hlua_imf_date
  - hlua_rfc850_date
  - hlua_asctime_date
  - hlua_get_info
  - hlua_check_concat
  - hlua_concat_add
  - hlua_concat_dump
  - hlua_concat_new
  - concat_tostring
  - hlua_concat_init
  - hlua_check_queue
  - hlua_queue_size
  - hlua_queue_alarm
  - hlua_queue_push
  - _hlua_queue_pop
  - hlua_queue_pop
  - _hlua_queue_pop_wait
  - hlua_queue_pop_wait
  - hlua_queue_new
  - hlua_queue_gc
  - hlua_queue_init
  - hlua_fcn_new_stktable
  - hlua_check_stktable
  - hlua_stktable_info
  - hlua_stktable_entry
  - hlua_stktable_lookup
  - hlua_error
  - hlua_stktable_dump
  - hlua_fcn_new_listener
  - hlua_check_listener
  - hlua_listener_get_stats
  - hlua_server_gc
  - hlua_check_server
  - hlua_server_get_stats
  - hlua_server_get_proxy
  - hlua_server_get_addr
  - hlua_server_get_puid
  - hlua_server_get_rid
  - hlua_server_get_name
  - hlua_server_index
  - hlua_server_is_draining
  - hlua_server_is_backup
  - hlua_server_is_dynamic
  - hlua_server_get_cur_sess
  - hlua_server_get_pend_conn
  - hlua_server_set_maxconn
  - hlua_server_get_maxconn
  - hlua_server_set_weight
  - hlua_server_get_weight
  - hlua_server_set_addr
  - hlua_server_shut_sess
  - hlua_server_set_drain
  - hlua_server_set_maint
  - hlua_server_set_ready
  - hlua_server_check_enable
  - hlua_server_check_disable
  - hlua_server_check_force_up
  - hlua_server_check_force_nolb
  - hlua_server_check_force_down
  - hlua_server_agent_enable
  - hlua_server_agent_disable
  - hlua_server_agent_force_up
  - hlua_server_agent_force_down
  - hlua_server_tracking
  - hlua_server_get_trackers
  - hlua_server_event_sub
  - hlua_fcn_new_server
  - hlua_check_server_list
  - hlua_listable_servers_newindex
  - hlua_listable_servers_index
  - hlua_listable_servers_pairs_iterator
  - hlua_listable_servers_pairs_gc
  - hlua_listable_servers_pairs
  - hlua_listable_servers
  - hlua_proxy_gc
  - hlua_check_proxy
  - hlua_proxy_get_name
  - hlua_proxy_get_uuid
  - hlua_proxy_index
  - hlua_proxy_pause
  - hlua_proxy_resume
  - hlua_proxy_stop
  - hlua_proxy_get_cap
  - hlua_proxy_get_stats
  - hlua_proxy_get_mode
  - hlua_proxy_shut_bcksess
  - hlua_proxy_get_srv_act
  - hlua_proxy_get_srv_bck
  - hlua_proxy_get_mailers
  - hlua_fcn_new_proxy
  - hlua_check_proxy_list
  - hlua_listable_proxies_newindex
  - hlua_listable_proxies_index
  - hlua_listable_proxies_match
  - hlua_listable_proxies_pairs_iterator
  - hlua_listable_proxies_pairs_gc
  - hlua_listable_proxies_pairs
  - hlua_listable_proxies
  - hlua_event_sub_unsub
  - hlua_event_sub_gc
  - hlua_fcn_new_event_sub
  - hlua_tokenize
  - hlua_parse_addr
  - hlua_match_addr
  - hlua_check_regex
  - hlua_regex_comp
  - hlua_regex_exec
  - hlua_regex_match
  - hlua_regex_free
  - hlua_patref_get_name
  - hlua_patref_is_map
  - _hlua_patref_clear
  - hlua_patref_commit
  - hlua_patref_giveup
  - hlua_patref_prepare
  - hlua_patref_purge
  - hlua_patref_add
  - _hlua_patref_add_bulk
  - hlua_patref_add_bulk
  - hlua_patref_del
  - hlua_patref_set
  - hlua_patref_event_sub
  - hlua_fcn_new_patref
  - hlua_patref_gc
  - hlua_listable_patref_newindex
  - hlua_listable_patref_index
  - _hlua_listable_patref_pairs_iterator
  - hlua_listable_patref_pairs_iterator
  - hlua_listable_patref_pairs
  - hlua_fcn_reg_core_fcn
  source_file: /src/haproxy/src/hlua_fcn.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STATS_LEN
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/src/hlua_fcn.c
      type_or_value: (MAX((int)ST_I_PX_MAX, (int)ST_I_INF_MAX))
    structs:
    - fields:
      - name: size
        type: uint32_t
      - name: list
        type: struct mt_list
      - name: wait_tasks
        type: struct mt_list
      item_type: struct
      name: hlua_queue
      pos:
        line_end: 509
        line_start: 505
        source_file: /src/haproxy/src/hlua_fcn.c
    - fields:
      - name: ref
        type: int
      - name: list
        type: struct mt_list
      item_type: struct
      name: hlua_queue_item
      pos:
        line_end: 515
        line_start: 512
        source_file: /src/haproxy/src/hlua_fcn.c
    - fields:
      - name: val
        type: long long
      - name: type
        type: int
      - name: op
        type: int
      item_type: struct
      name: stk_filter
      pos:
        line_end: 930
        line_start: 926
        source_file: /src/haproxy/src/hlua_fcn.c
    typedefs: []
    union: []
- function_names:
  - srv_state_srv_update
  - srv_state_px_update
  - srv_state_get_version
  - srv_state_parse_line
  - srv_state_parse_and_store_line
  - srv_state_get_filepath
  - apply_server_state
  source_file: /src/haproxy/src/server_state.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ssl_sock_get_ocsp_arg_kt_index
  - ssl_sock_ocsp_stapling_cbk
  - ssl_ocsp_build_response_key
  - ssl_sock_load_ocsp_response
  - ssl_sock_update_ocsp_response
  - ssl_sock_free_ocsp_data
  - ssl_sock_free_ocsp
  - ssl_sock_free_ocsp_instance
  - ocsp_certid_print
  - ssl_ocsp_response_print_base64
  - ssl_get_ocspresponse_detail
  - cli_io_handler_show_ocspresponse_detail
  - ssl_sock_ocsp_free_func
  - ssl_ocsp_get_uri_from_cert
  - ssl_ocsp_create_request_details
  - ssl_create_ocsp_update_task
  - ssl_ocsp_task_schedule
  - ssl_destroy_ocsp_update_task
  - ssl_ocsp_set_next_update
  - __ssl_ocsp_update_insert_unlocked
  - ssl_ocsp_update_insert
  - ssl_ocsp_update_insert_after_error
  - ocsp_update_response_stline_cb
  - ocsp_update_response_headers_cb
  - ocsp_update_response_body_cb
  - ocsp_update_response_end_cb
  - ssl_ocsp_send_log
  - ssl_ocsp_update_responses
  - ssl_ocsp_update_precheck
  - cli_parse_update_ocsp_response
  - cli_parse_set_ocspresponse
  - cli_parse_show_ocspresponse
  - cli_io_handler_show_ocspresponse
  - cli_release_show_ocspresponse
  - cli_parse_show_ocsp_updates
  - dump_ocsp_update_info
  - cli_io_handler_show_ocsp_updates
  - cli_release_show_ocsp_updates
  - ssl_parse_global_ocsp_maxdelay
  - ssl_parse_global_ocsp_mindelay
  - ssl_parse_global_ocsp_update_mode
  - ssl_parse_global_ocsp_update_disable
  - ocsp_update_parse_global_http_proxy
  - ocsp_update_init
  - ocsp_update_postparser_init
  source_file: /src/haproxy/src/ssl_ocsp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HC_OCSP_RES_STLINE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/src/ssl_ocsp.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HC_OCSP_RES_HDR
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/src/ssl_ocsp.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: HC_OCSP_RES_BODY
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/src/ssl_ocsp.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: HC_OCSP_RES_END
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/src/ssl_ocsp.c
      type_or_value: '0x08'
    structs:
    - fields:
      - name: '*ocsp'
        type: struct certificate_ocsp
      - name: format
        type: int
      item_type: struct
      name: show_ocspresp_cli_ctx
      pos:
        line_end: 543
        line_start: 540
        source_file: /src/haproxy/src/ssl_ocsp.c
    - fields:
      - name: '*cur_ocsp'
        type: struct certificate_ocsp
      - name: '*hc'
        type: struct httpclient
      - name: flags
        type: int
      - name: update_status
        type: int
      item_type: struct
      name: ssl_ocsp_task_ctx
      pos:
        line_end: 934
        line_start: 929
        source_file: /src/haproxy/src/ssl_ocsp.c
    - fields:
      - name: '*cur_ocsp'
        type: struct certificate_ocsp
      item_type: struct
      name: show_ocsp_updates_ctx
      pos:
        line_end: 1820
        line_start: 1818
        source_file: /src/haproxy/src/ssl_ocsp.c
    typedefs: []
    union: []
- function_names:
  - session_new
  - session_free
  - conn_session_free
  - session_count_new
  - session_accept_fd
  - session_prepare_log_prefix
  - session_embryonic_build_legacy_err
  - session_kill_embryonic
  - session_expire_embryonic
  - conn_complete_session
  - __session_add_glitch_ctr
  - sess_alloc_sess_conns
  - sess_get_sess_conns
  - session_add_conn
  - session_reinsert_idle_conn
  - session_check_idle_conn
  - session_get_conn
  - session_unown_conn
  - session_detach_idle_conn
  - sess_conns_cleanup_all_idle
  source_file: /src/haproxy/src/session.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/src/session.c
      type_or_value: '&trace_sess'
    structs: []
    typedefs: []
    union: []
- function_names:
  - qc_ssl_set_quic_transport_params
  - qc_ssl_crypto_data_cpy
  - ha_quic_send_alert
  - ha_quic_set_encryption_secrets
  - ha_quic_add_handshake_data
  - ha_quic_ossl_crypto_send
  - ha_quic_ossl_crypto_recv_rcd
  - ha_quic_ossl_crypto_release_rcd
  - ha_quic_ossl_yield_secret
  - ha_quic_ossl_got_transport_params
  - ha_quic_ossl_alert
  - ha_quic_set_read_secret
  - ha_quic_set_write_secret
  - ha_quic_flush_flight
  - ssl_quic_initial_ctx
  - ssl_quic_srv_new_ssl_ctx
  - qc_ssl_dump_errors
  - qc_ssl_do_hanshake
  - qc_ssl_provide_quic_data
  - qc_ssl_provide_all_quic_data
  - quic_ssl_set_tls_cbs
  - qc_ssl_sess_init
  - qc_set_quic_early_data_enabled
  - qc_alloc_ssl_sock_ctx
  source_file: /src/haproxy/src/quic_ssl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - protocol_register
  - protocol_unregister
  - protocol_clrf_all
  - protocol_setf_all
  - protocol_supports_flag
  - protocol_may_bind_quic
  - protocol_bind_all
  - protocol_unbind_all
  - protocol_stop_now
  - protocol_pause_all
  - protocol_resume_all
  - protocol_enable_all
  source_file: /src/haproxy/src/protocol.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pat_ref_gen_foreach
  - pat_ref_gen_foreach_safe
  - is_delimiter
  - make_4delim
  - pat_parse_nothing
  - pat_parse_str
  - pat_parse_bin
  - pat_parse_reg
  - pat_parse_int
  - pat_parse_dotted_ver
  - pat_parse_ip
  - pat_match_nothing
  - pat_match_ensure_str
  - pat_match_str
  - pat_match_bin
  - pat_match_regm
  - pat_match_reg
  - pat_match_beg
  - pat_match_end
  - pat_match_sub
  - match_word
  - pat_match_dir
  - pat_match_dom
  - pat_match_int
  - pat_match_len
  - _pat_match_tree_ipv4
  - _pat_match_tree_ipv6
  - pat_match_ip
  - pat_unlink_from_head
  - free_pattern_tree
  - pat_prune_gen
  - pat_idx_list_val
  - pat_idx_list_ptr
  - pat_idx_list_str
  - pat_idx_list_reg_cap
  - pat_idx_list_reg
  - pat_idx_list_regm
  - pat_idx_tree_ip
  - pat_idx_tree_str
  - pat_idx_tree_pfx
  - pat_delete_gen
  - pattern_init_expr
  - pattern_init_head
  - pat_ref_lookup
  - pat_ref_lookupid
  - pat_ref_delete_by_ptr
  - pat_ref_delete_by_id
  - pat_ref_gen_foreach
  - pat_ref_gen_new
  - pat_ref_gen_get
  - pat_ref_gen_delete
  - pat_ref_delete
  - pat_ref_gen_find_elt
  - pat_ref_find_elt
  - pat_ref_set_elt
  - pat_ref_set_by_id
  - pat_ref_gen_foreach
  - pat_ref_set_from_elt
  - pat_ref_set_elt_duplicate
  - pat_ref_gen_set
  - pat_ref_set
  - _pat_ref_new
  - pat_ref_free
  - pat_ref_new
  - pat_ref_newid
  - pat_ref_append
  - pat_ref_push
  - pat_ref_commit_elt
  - pat_ref_load
  - pat_ref_add
  - pat_ref_purge_range
  - pat_ref_gen_foreach_safe
  - pat_ref_prune
  - pattern_lookup_expr
  - pattern_new_expr
  - pat_ref_read_from_file_smp
  - pat_ref_read_from_file
  - pattern_read_from_file
  - pat_ref_gen_foreach
  - pattern_exec_match
  - pattern_prune
  - cmp_pat_ref
  - pattern_finalize_config
  - pattern_per_thread_lru_alloc
  - pattern_per_thread_lru_free
  source_file: /src/haproxy/src/pattern.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_email_alert
  - free_email_alert
  - mailers_post_check
  source_file: /src/haproxy/src/mailers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - h2_fill_stats
  - h2s_sc
  - h2_trace
  - h2_trace_fill_ctx
  - h2c_report_term_evt
  - h2c_read0_pending
  - h2c_may_expire
  - h2c_max_concurrent_streams
  - _h2s_rxbuf_head
  - _h2s_rxbuf_tail
  - h2s_rxbuf_head
  - h2s_rxbuf_tail
  - h2s_rxbuf_cnt
  - h2s_get_rxbuf
  - h2s_put_rxbuf
  - h2s_may_append_to_rxbuf
  - h2_sess_log_conn
  - h2_sess_log_strm
  - h2c_update_timeout
  - h2c_reached_last_stream
  - h2c_is_dead
  - h2_recv_allowed
  - h2_may_demux
  - h2c_restart_reading
  - h2_frt_has_too_many_sc
  - h2_buf_available
  - h2_get_buf
  - h2_release_buf
  - h2_release_mbuf
  - h2_streams_left
  - h2_used_streams
  - h2_avail_streams
  - _h2_trace_header
  - h2_trace_header
  - h2_encode_header
  - h2_init
  - h2c_get_next_sid
  - h2c_st_by_id
  - h2_release
  - h2s_id
  - h2s_mws
  - h2s_is_forwardable_abort
  - h2c_error
  - h2s_error
  - __maybe_unused::h2s_notify_recv
  - __maybe_unused::h2s_notify_send
  - __maybe_unused::h2s_alert
  - h2c_report_glitch
  - _h2c_report_glitch
  - h2_set_frame_size
  - h2_get_buf_bytes
  - h2_get_n16
  - h2_get_n32
  - h2_get_n64
  - h2_peek_frame_hdr
  - h2_skip_frame_hdr
  - h2_get_frame_hdr
  - h2_fragment_headers
  - h2s_count_as_receiving
  - h2s_no_longer_receiving
  - h2s_close
  - h2s_propagate_term_flags
  - h2s_destroy
  - h2s_new
  - h2c_frt_stream_new
  - h2c_bck_stream_new
  - h2c_send_settings
  - h2c_frt_recv_preface
  - h2c_bck_send_preface
  - h2c_send_goaway_error
  - h2s_send_rst_stream
  - h2c_send_rst_stream
  - h2_send_empty_data_es
  - h2s_wake_one_stream
  - h2_wake_some_streams
  - h2c_unblock_sfctl
  - h2c_handle_settings
  - h2c_ack_settings
  - h2c_handle_ping
  - h2c_send_window_update
  - h2c_send_conn_wu
  - h2c_update_strm_rx_win
  - h2c_send_strm_wu
  - h2c_send_ping
  - h2c_handle_window_update
  - h2c_handle_goaway
  - h2c_handle_priority
  - h2c_handle_rst_stream
  - h2c_frt_handle_headers
  - h2c_bck_handle_headers
  - h2c_handle_data
  - h2_frame_check_vs_state
  - h2_conn_reverse
  - h2_process_demux
  - h2_resume_each_sending_h2s
  - list_for_each_entry_safe
  - h2_remove_from_list
  - h2c_bck_send_preface_and_settings
  - h2_process_mux
  - h2_recv
  - h2_send
  - h2_io_cb
  - h2_process
  - h2_wake
  - h2_timeout_task
  - h2_attach
  - h2_get_first_sc
  - h2_ctl
  - h2_sctl
  - h2_destroy
  - h2_detach
  - h2_do_shutr
  - h2_do_shutw
  - h2_deferred_shut
  - h2_shut
  - h2c_dec_hdrs
  - h2_frt_transfer_data
  - h2s_snd_fhdrs
  - h2s_snd_bhdrs
  - h2s_make_data
  - h2s_skip_data
  - h2s_make_trailers
  - h2_subscribe
  - h2_unsubscribe
  - h2_rcv_buf
  - h2_snd_buf
  - h2_nego_ff
  - h2_done_ff
  - h2_resume_ff
  - h2_dump_h2s_info
  - h2_dump_h2c_info
  - h2_show_fd
  - h2_show_sd
  - h2_takeover
  - h2_parse_glitches_threshold
  - h2_parse_header_table_size
  - h2_parse_initial_window_size
  - h2_parse_log_errors
  - h2_parse_max_concurrent_streams
  - h2_parse_max_total_streams
  - h2_parse_max_frames_at_once
  - h2_parse_max_frame_size
  - h2_parse_rxbuf
  - h2_parse_zero_copy_fwd_snd
  - init_h2
  source_file: /src/haproxy/src/mux_h2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/haproxy/src/mux_h2.c
      type_or_value: '&trace_h2'
    - item_type: preproc_def
      name: H2_INITIAL_WINDOW_INCREMENT
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/haproxy/src/mux_h2.c
      type_or_value: ((1U<<31)-1 - 65535)
    - item_type: preproc_def
      name: MAX_DATA_REALIGN
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/haproxy/src/mux_h2.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: '*conn'
        type: struct connection
      - name: st0
        type: enum h2_cs
      - name: errcode
        type: enum h2_err
      - name: flags
        type: uint32_t
      - name: streams_limit
        type: uint32_t
      - name: max_id
        type: int32_t
      - name: rcvd_c
        type: uint32_t
      - name: rcvd_s
        type: uint32_t
      - name: wu_s
        type: uint32_t
      - name: receiving_streams
        type: uint32_t
      - name: '*ddht'
        type: struct hpack_dht
      - name: dbuf
        type: struct buffer
      - name: dsi
        type: int32_t
      - name: dfl
        type: int32_t
      - name: dft
        type: int8_t
      - name: dff
        type: int8_t
      - name: dpl
        type: uint8_t
      - name: last_sid
        type: int32_t
      - name: mbuf[H2C_MBUF_CNT]
        type: struct buffer
      - name: '*shared_rx_bufs'
        type: struct bl_elem
      - name: miw
        type: int32_t
      - name: mws
        type: int32_t
      - name: mfs
        type: int32_t
      - name: timeout
        type: int
      - name: shut_timeout
        type: int
      - name: idle_start
        type: int
      - name: nb_streams
        type: unsigned int
      - name: nb_sc
        type: unsigned int
      - name: nb_reserved
        type: unsigned int
      - name: stream_cnt
        type: unsigned int
      - name: glitches
        type: int
      - name: term_evts_log
        type: uint32_t
      - name: '*proxy'
        type: struct proxy
      - name: '*task'
        type: struct task
      - name: '*px_counters'
        type: struct h2_counters
      - name: streams_by_id
        type: struct eb_root
      - name: send_list
        type: struct list
      - name: fctl_list
        type: struct list
      - name: blocked_list
        type: struct list
      - name: buf_wait
        type: struct buffer_wait
      - name: wait_event
        type: struct wait_event
      - name: '*next_tasklet'
        type: struct list
      - name: streams_hard_limit
        type: uint32_t
      item_type: struct
      name: h2c
      pos:
        line_end: 104
        line_start: 46
        source_file: /src/haproxy/src/mux_h2.c
    - fields:
      - name: '*sd'
        type: struct sedesc
      - name: '*sess'
        type: struct session
      - name: '*h2c'
        type: struct h2c
      - name: by_id
        type: struct eb32_node
      - name: id
        type: int32_t
      - name: flags
        type: uint32_t
      - name: sws
        type: int
      - name: errcode
        type: enum h2_err
      - name: st
        type: enum h2_ss
      - name: status
        type: uint16_t
      - name: body_len
        type: unsigned long long
      - name: curr_rx_ofs
        type: uint64_t
      - name: last_adv_ofs
        type: uint64_t
      - name: next_max_ofs
        type: uint64_t
      - name: rx_head
        type: uint
      - name: rx_count
        type: uint
      - name: '*subs'
        type: struct wait_event
      - name: list
        type: struct list
      - name: '*shut_tl'
        type: struct tasklet
      - name: upgrade_protocol[16]
        type: char
      item_type: struct
      name: h2s
      pos:
        line_end: 134
        line_start: 110
        source_file: /src/haproxy/src/mux_h2.c
    - fields:
      - name: len
        type: uint32_t
      - name: sid
        type: uint32_t
      - name: ft
        type: uint8_t
      - name: ff
        type: uint8_t
      item_type: struct
      name: h2_fh
      pos:
        line_end: 142
        line_start: 137
        source_file: /src/haproxy/src/mux_h2.c
    - fields:
      - name: headers_rcvd
        type: long long
      - name: data_rcvd
        type: long long
      - name: settings_rcvd
        type: long long
      - name: rst_stream_rcvd
        type: long long
      - name: goaway_rcvd
        type: long long
      - name: conn_proto_err
        type: long long
      - name: strm_proto_err
        type: long long
      - name: rst_stream_resp
        type: long long
      - name: goaway_resp
        type: long long
      - name: open_conns
        type: long long
      - name: open_streams
        type: long long
      - name: total_conns
        type: long long
      - name: total_streams
        type: long long
      item_type: struct
      name: h2_counters
      pos:
        line_end: 372
        line_start: 356
        source_file: /src/haproxy/src/mux_h2.c
    typedefs: []
    union: []
- function_names:
  - fcgi_encode_record_hdr
  - fcgi_decode_record_hdr
  - fcgi_encode_begin_request
  - fcgi_encode_param
  - fcgi_decode_param
  - fcgi_aligned_decode_param
  - fcgi_decode_end_request
  source_file: /src/haproxy/src/fcgi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sample_conv_eth_data
  - sample_conv_eth_dst
  - sample_conv_eth_hdr
  - sample_conv_eth_proto
  - sample_conv_eth_src
  - sample_conv_eth_vlan
  - ip_header_length
  - sample_conv_ip_data
  - sample_conv_ip_df
  - sample_conv_ip_dst
  - sample_conv_ip_hdr
  - sample_conv_ip_proto
  - sample_conv_ip_src
  - sample_conv_ip_tos
  - sample_conv_ip_ttl
  - sample_conv_ip_ver
  - tcp_fullhdr_length
  - tcp_fullhdr_find_opt
  - sample_conv_tcp_dst
  - sample_conv_tcp_flags
  - sample_conv_tcp_options_mss
  - sample_conv_tcp_options_sack
  - sample_conv_tcp_options_tsopt
  - sample_conv_tcp_options_tsval
  - sample_conv_tcp_options_wscale
  - sample_conv_tcp_options_wsopt
  - sample_conv_tcp_options_list
  - sample_conv_tcp_seq
  - sample_conv_tcp_src
  - sample_conv_tcp_win
  - sample_conv_ip_fp
  source_file: /src/haproxy/src/net_helper.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - eb_delete
  - eb_insert_dup
  - eb_memcmp
  source_file: /src/haproxy/src/ebtree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ctrl_msg_type_str
  - peers_trace
  - statuscode_str
  - peer_app_state_str
  - peer_learn_state_str
  - peer_applet_state_str
  - intencode
  - intdecode
  - peer_prepare_hellomsg
  - peer_prepare_status_successmsg
  - peer_prepare_status_errormsg
  - peer_set_update_msg_type
  - peer_prepare_updatemsg
  - peer_prepare_switchmsg
  - peer_prepare_ackmsg
  - __peer_session_deinit
  - peer_session_init
  - peer_session_release
  - peer_get_version
  - peer_getline
  - peer_send_msg
  - peer_send_hellomsg
  - peer_send_status_successmsg
  - peer_send_status_errormsg
  - peer_send_switchmsg
  - peer_send_ackmsg
  - peer_send_updatemsg
  - peer_prepare_control_msg
  - peer_send_resync_reqmsg
  - peer_send_resync_confirmsg
  - peer_send_resync_finishedmsg
  - peer_send_heartbeatmsg
  - peer_prepare_error_msg
  - peer_send_error_size_limitmsg
  - peer_send_error_protomsg
  - peer_teach_process_stksess_lookup
  - peer_teach_stage1_stksess_lookup
  - peer_teach_stage2_stksess_lookup
  - peer_send_teachmsgs
  - peer_send_teach_process_msgs
  - peer_send_teach_stage1_msgs
  - peer_send_teach_stage2_msgs
  - peer_treat_updatemsg
  - peer_treat_ackmsg
  - peer_treat_switchmsg
  - peer_treat_definemsg
  - peer_recv_msg
  - peer_treat_awaited_msg
  - peer_send_msgs
  - peer_getline_version
  - peer_getline_host
  - peer_getline_last
  - init_connected_peer
  - peer_io_handler
  - peer_session_forceshutdown
  - peers_setup_frontend
  - peer_session_create
  - clear_peer_learning_status
  - sync_peer_learn_state
  - sync_peer_app_state
  - __process_running_peer_sync
  - __process_stopping_peer_sync
  - process_peer_sync
  - peers_init_sync
  - new_dcache_tx
  - new_dcache
  - dcache_tx_lookup_value
  - flush_dcache
  - dcache_tx_insert
  - peers_alloc_dcache
  - peers_register_table
  - cli_parse_show_peers
  - peers_dump_head
  - peers_dump_peer
  - cli_io_handler_show_peers
  - peers_register_keywords
  - cfg_parse_max_updt_at_once
  source_file: /src/haproxy/src/peers.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHTABLE_F_TEACH_STAGE1
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: SHTABLE_F_TEACH_STAGE2
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: PEER_RESYNC_TIMEOUT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/src/peers.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: PEER_RECONNECT_TIMEOUT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/src/peers.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: PEER_LOCAL_RECONNECT_TIMEOUT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/src/peers.c
      type_or_value: '500 '
    - item_type: preproc_def
      name: PEER_HEARTBEAT_TIMEOUT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/src/peers.c
      type_or_value: '3000 '
    - item_type: preproc_def
      name: PEER_DEF_MAX_UPDATES_AT_ONCE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/src/peers.c
      type_or_value: '200'
    - item_type: preproc_def
      name: PEERS_SHOW_F_DICT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: PEER_MSG_STKT_UPDATE
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: PEER_MSG_STKT_INCUPDATE
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x81'
    - item_type: preproc_def
      name: PEER_MSG_STKT_DEFINE
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x82'
    - item_type: preproc_def
      name: PEER_MSG_STKT_SWITCH
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x83'
    - item_type: preproc_def
      name: PEER_MSG_STKT_ACK
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x84'
    - item_type: preproc_def
      name: PEER_MSG_STKT_UPDATE_TIMED
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x85'
    - item_type: preproc_def
      name: PEER_MSG_STKT_INCUPDATE_TIMED
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x86'
    - item_type: preproc_def
      name: PEER_MSG_STKT_BIT
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/haproxy/src/peers.c
      type_or_value: '7'
    - item_type: preproc_def
      name: PEER_MSG_STKT_BIT_MASK
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/haproxy/src/peers.c
      type_or_value: (1 << PEER_MSG_STKT_BIT)
    - item_type: preproc_def
      name: PEER_MSG_ENC_LENGTH_MAXLEN
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/haproxy/src/peers.c
      type_or_value: '5'
    - item_type: preproc_def
      name: PEER_ENC_2BYTES_MIN
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0xf0 '
    - item_type: preproc_def
      name: PEER_ENC_3BYTES_MIN
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/haproxy/src/peers.c
      type_or_value: '((1ULL << 11) | PEER_ENC_2BYTES_MIN) '
    - item_type: preproc_def
      name: PEER_ENC_4BYTES_MIN
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/haproxy/src/peers.c
      type_or_value: '((1ULL << 18) | PEER_ENC_3BYTES_MIN) '
    - item_type: preproc_def
      name: PEER_ENC_5BYTES_MIN
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/haproxy/src/peers.c
      type_or_value: '((1ULL << 25) | PEER_ENC_4BYTES_MIN) '
    - item_type: preproc_def
      name: PEER_ENC_6BYTES_MIN
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/haproxy/src/peers.c
      type_or_value: '((1ULL << 32) | PEER_ENC_5BYTES_MIN) '
    - item_type: preproc_def
      name: PEER_ENC_7BYTES_MIN
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/haproxy/src/peers.c
      type_or_value: '((1ULL << 39) | PEER_ENC_6BYTES_MIN) '
    - item_type: preproc_def
      name: PEER_ENC_8BYTES_MIN
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/haproxy/src/peers.c
      type_or_value: '((1ULL << 46) | PEER_ENC_7BYTES_MIN) '
    - item_type: preproc_def
      name: PEER_ENC_9BYTES_MIN
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/haproxy/src/peers.c
      type_or_value: '((1ULL << 53) | PEER_ENC_8BYTES_MIN) '
    - item_type: preproc_def
      name: PEER_ENC_10BYTES_MIN
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/haproxy/src/peers.c
      type_or_value: '((1ULL << 60) | PEER_ENC_9BYTES_MIN) '
    - item_type: preproc_def
      name: PEER_ENC_STOP_BIT
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/haproxy/src/peers.c
      type_or_value: '7'
    - item_type: preproc_def
      name: PEER_ENC_STOP_BYTE
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/haproxy/src/peers.c
      type_or_value: (1 << PEER_ENC_STOP_BIT)
    - item_type: preproc_def
      name: PEER_ENC_2BYTES_MIN_BITS
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/haproxy/src/peers.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PEER_MSG_HEADER_LEN
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/haproxy/src/peers.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PEER_STKT_CACHE_MAX_ENTRIES
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/haproxy/src/peers.c
      type_or_value: '128'
    - item_type: preproc_def
      name: PEER_SESS_SC_CONNECTCODE
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/haproxy/src/peers.c
      type_or_value: '100 '
    - item_type: preproc_def
      name: PEER_SESS_SC_CONNECTEDCODE
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/haproxy/src/peers.c
      type_or_value: '110 '
    - item_type: preproc_def
      name: PEER_SESS_SC_SUCCESSCODE
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/haproxy/src/peers.c
      type_or_value: '200 '
    - item_type: preproc_def
      name: PEER_SESS_SC_TRYAGAIN
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/haproxy/src/peers.c
      type_or_value: '300 '
    - item_type: preproc_def
      name: PEER_SESS_SC_ERRPROTO
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/haproxy/src/peers.c
      type_or_value: '501 '
    - item_type: preproc_def
      name: PEER_SESS_SC_ERRVERSION
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/haproxy/src/peers.c
      type_or_value: '502 '
    - item_type: preproc_def
      name: PEER_SESS_SC_ERRHOST
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/haproxy/src/peers.c
      type_or_value: '503 '
    - item_type: preproc_def
      name: PEER_SESS_SC_ERRPEER
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/haproxy/src/peers.c
      type_or_value: '504 '
    - item_type: preproc_def
      name: PEER_SESSION_PROTO_NAME
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/haproxy/src/peers.c
      type_or_value: '"HAProxyS"'
    - item_type: preproc_def
      name: PEER_MAJOR_VER
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/haproxy/src/peers.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PEER_MINOR_VER
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/haproxy/src/peers.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PEER_DWNGRD_MINOR_VER
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/haproxy/src/peers.c
      type_or_value: '&trace_peers'
    structs:
    - fields:
      - name: hello
        type: "struct {\n\t\tstruct peer *peer;\n\t}"
      - name: error_status
        type: "struct {\n\t\tunsigned int st1;\n\t}"
      - name: updt
        type: "struct {\n\t\tstruct stksess *stksess;\n\t\tstruct shared_table *shared_table;\n\t\tunsigned
          int updateid;\n\t\tint use_identifier;\n\t\tint use_timed;\n\t\tstruct peer
          *peer;\n\t}"
      - name: swtch
        type: "struct {\n\t\tstruct shared_table *shared_table;\n\t}"
      - name: ack
        type: "struct {\n\t\tstruct shared_table *shared_table;\n\t}"
      - name: control
        type: "struct {\n\t\tunsigned char head[2];\n\t}"
      - name: error
        type: "struct {\n\t\tunsigned char head[2];\n\t}"
      item_type: struct
      name: peer_prep_params
      pos:
        line_end: 168
        line_start: 141
        source_file: /src/haproxy/src/peers.c
    - fields:
      - name: '*target'
        type: void
      - name: '*peers'
        type: struct peers
      - name: '*peer'
        type: struct peer
      - name: flags
        type: int
      - name: state
        type: "enum {\n\t\tSTATE_HEAD = 0, /* dump the section's header */\n\t\tSTATE_PEER,
          \    /* dump the whole peer */\n\t\tSTATE_DONE,     /* finished */\n\t}"
      item_type: struct
      name: show_peers_ctx
      pos:
        line_end: 4154
        line_start: 4144
        source_file: /src/haproxy/src/peers.c
    typedefs: []
    union: []
- function_names:
  - raise_rlim_nofile
  - is_any_limit_configured
  - compute_ideal_maxpipes
  - compute_ideal_maxconn
  - compute_ideal_maxsock
  - check_if_maxsock_permitted
  - set_global_maxconn
  - apply_nofile_limit
  - apply_memory_limit
  - check_nofile_lim_and_prealloc_fd
  source_file: /src/haproxy/src/limits.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ha_dump_backtrace
  - ha_backtrace_to_stderr
  - ha_thread_dump_one
  - ha_thread_dump_fill
  - ha_thread_dump_done
  - ha_task_dump
  - cli_io_handler_show_threads
  - debug_parse_cli_show_libs
  - debug_parse_cli_show_dev
  - ha_panic
  - ha_stuck_warning
  - complain
  - debug_parse_cli_exit
  - debug_parse_cli_bug
  - debug_parse_cli_warn
  - debug_parse_cli_check
  - debug_parse_cli_close
  - debug_run_cli_deadlock
  - debug_parse_cli_deadlock
  - debug_parse_cli_delay
  - debug_parse_cli_log
  - debug_parse_cli_loop
  - debug_parse_cli_panic
  - debug_parse_cli_exec
  - debug_delay_inj_sighandler
  - debug_parse_cli_hex
  - debug_parse_cli_sym
  - debug_parse_cli_tkill
  - debug_parse_cli_hash
  - debug_parse_cli_write
  - debug_parse_cli_stream
  - debug_parse_cli_task
  - debug_delay_inj_task
  - debug_parse_delay_inj
  - debug_task_handler
  - debug_tasklet_handler
  - debug_parse_cli_sched
  - debug_trace_task
  - debug_parse_cli_trace
  - debug_parse_cli_fd
  - debug_iohandler_fd
  - debug_parse_cli_memstats
  - debug_iohandler_memstats
  - debug_release_memstats
  - debug_parse_cli_counters
  - debug_iohandler_counters
  - debug_handler
  - init_debug_per_thread
  - init_debug
  - feed_post_mortem_linux
  - feed_post_mortem
  - deinit_post_mortem
  - post_mortem_add_component
  - feed_post_mortem_late
  - list_unittests
  - cfg_parse_debug_counters
  source_file: /src/haproxy/src/debug.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: THREAD_DUMP_TMASK
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/src/debug.c
      type_or_value: 0x00007FFFU
    - item_type: preproc_def
      name: THREAD_DUMP_FSYNC
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/src/debug.c
      type_or_value: 0x00008000U
    - item_type: preproc_def
      name: THREAD_DUMP_PMASK
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/src/debug.c
      type_or_value: 0x7FFF0000U
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 1859
        line_start: 1858
        source_file: /src/haproxy/src/debug.c
      type_or_value: '&trace_dbg'
    structs:
    - fields:
      - name: name[32]
        type: char
      - name: version[32]
        type: char
      - name: '*toolchain'
        type: char
      - name: '*toolchain_opts'
        type: char
      - name: '*build_settings'
        type: char
      - name: '*path'
        type: char
      item_type: struct
      name: post_mortem_component
      pos:
        line_end: 94
        line_start: 87
        source_file: /src/haproxy/src/debug.c
    - fields:
      - name: post_mortem_magic[32]
        type: char
      - name: platform
        type: "struct {\n\t\tstruct utsname utsname; // OS name+ver+arch+hostname\n\t\tchar
          distro[64];\t// Distro name and version from os-release file if exists\n\t\tchar
          hw_vendor[64];     // hardware/hypervisor vendor when known\n\t\tchar hw_family[64];
          \    // hardware/hypervisor product family when known\n\t\tchar hw_model[64];
          \     // hardware/hypervisor product/model when known\n\t\tchar brd_vendor[64];
          \   // mainboard vendor when known\n\t\tchar brd_model[64];     // mainboard
          model when known\n\t\tchar soc_vendor[64];    // SoC/CPU vendor from cpuinfo\n\t\tchar
          soc_model[64];     // SoC model when known and relevant\n\t\tchar cpu_model[64];
          \    // CPU model when different from SoC\n\t\tchar virt_techno[16];   //
          when provided by cpuid\n\t\tchar cont_techno[16];   // empty, \"no\", \"yes\",
          \"docker\" or others\n\t}"
      - name: process
        type: "struct {\n\t\tpid_t pid;\n\t\tuid_t boot_uid;\n\t\tgid_t boot_gid;\n\t\tuid_t
          run_uid;\n\t\tgid_t run_gid;\n#if defined(USE_LINUX_CAP)\n\t\tstruct {\n\t\t\t//
          initial process capabilities\n\t\t\tstruct __user_cap_data_struct boot[_LINUX_CAPABILITY_U32S_3];\n\t\t\tint
          err_boot; // errno, if capget() syscall fails at boot\n\t\t\t// runtime
          process capabilities\n\t\t\tstruct __user_cap_data_struct run[_LINUX_CAPABILITY_U32S_3];\n\t\t\tint
          err_run; // errno, if capget() syscall fails at runtime\n\t\t} caps;\n#endif\n\t\tstruct
          rlimit boot_lim_fd;  // RLIMIT_NOFILE at startup\n\t\tstruct rlimit boot_lim_ram;
          // RLIMIT_DATA at startup\n\t\tstruct rlimit run_lim_fd;  // RLIMIT_NOFILE
          just before enter in polling loop\n\t\tstruct rlimit run_lim_ram; // RLIMIT_DATA
          just before enter in polling loop\n\t\tchar **argv;\n\t\tunsigned char argc;\n\t}"
      - name: '*tgroup_info'
        type: struct tgroup_info
      - name: '*thread_info'
        type: struct thread_info
      - name: '*tgroup_ctx'
        type: struct tgroup_ctx
      - name: '*thread_ctx'
        type: struct thread_ctx
      - name: '*pools'
        type: struct list
      - name: '**proxies'
        type: struct proxy
      - name: '*global'
        type: struct global
      - name: '**fdtab'
        type: struct fdtab
      - name: '*activity'
        type: struct activity
      - name: nb_components
        type: uint
      - name: '*components'
        type: struct post_mortem_component
      item_type: struct
      name: post_mortem
      pos:
        line_end: 166
        line_start: 103
        source_file: /src/haproxy/src/debug.c
    - fields:
      - name: start_fd
        type: int
      item_type: struct
      name: dev_fd_ctx
      pos:
        line_end: 1958
        line_start: 1956
        source_file: /src/haproxy/src/debug.c
    - fields:
      - name: '*start'
        type: struct mem_stats
      - name: '*match'
        type: char
      - name: show_all
        type: int
      - name: width
        type: int
      - name: tot_size
        type: long
      - name: tot_calls
        type: ulong
      item_type: struct
      name: dev_mem_ctx
      pos:
        line_end: 2165
        line_start: 2158
        source_file: /src/haproxy/src/debug.c
    - fields:
      - name: '*start'
        type: struct debug_count
      - name: types
        type: int
      - name: show_all
        type: int
      item_type: struct
      name: deb_cnt_ctx
      pos:
        line_end: 2368
        line_start: 2364
        source_file: /src/haproxy/src/debug.c
    typedefs: []
    union: []
- function_names:
  - ebis_lookup
  - ebis_insert
  source_file: /src/haproxy/src/ebistree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - memprof_die
  - memprof_init
  - memprof_malloc_initial_handler
  - memprof_calloc_initial_handler
  - memprof_realloc_initial_handler
  - memprof_strdup_initial_handler
  - memprof_free_initial_handler
  - memprof_strndup_initial_handler
  - memprof_valloc_initial_handler
  - memprof_pvalloc_initial_handler
  - memprof_memalign_initial_handler
  - memprof_aligned_alloc_initial_handler
  - memprof_posix_memalign_initial_handler
  - memprof_get_bin
  - malloc
  - calloc
  - realloc
  - strdup
  - free
  - strndup
  - valloc
  - pvalloc
  - memalign
  - aligned_alloc
  - posix_memalign
  - memprof_remove_stale_info
  - report_stolen_time
  - activity_count_runtime
  - cfg_parse_prof_memory
  - cfg_parse_prof_tasks
  - cli_parse_set_profiling
  - cmp_sched_activity_calls
  - cmp_sched_activity_addr
  - cmp_sched_activity_cpu
  - cmp_memprof_stats
  - cmp_memprof_addr
  - cmp_memprof_ctx
  - sched_activity_entry
  - cli_io_handler_show_profiling
  - cli_release_show_profiling
  - cli_parse_show_profiling
  - cli_io_handler_show_tasks
  - cli_io_handler_show_activity
  - SHOW_VAL
  - cli_parse_show_activity
  source_file: /src/haproxy/src/activity.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: dump_step
        type: int
      - name: linenum
        type: int
      - name: maxcnt
        type: int
      - name: by_what
        type: int
      - name: aggr
        type: int
      - name: '*tmp_activity'
        type: struct sched_activity
      - name: '*tmp_memstats'
        type: struct memprof_stats
      item_type: struct
      name: show_prof_ctx
      pos:
        line_end: 36
        line_start: 27
        source_file: /src/haproxy/src/activity.c
    - fields:
      - name: thr
        type: int
      - name: line
        type: int
      - name: col
        type: int
      item_type: struct
      name: show_activity_ctx
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/haproxy/src/activity.c
    typedefs: []
    union: []
- function_names:
  - quic_cc_nocc_init
  - quic_cc_nocc_slow_start
  - quic_cc_nocc_ss_cb
  - quic_cc_nocc_ca_cb
  - quic_cc_nocc_rp_cb
  - quic_cc_nocc_state_trace
  - quic_cc_nocc_event
  source_file: /src/haproxy/src/quic_cc_nocc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_fill_stats
  - quic_stats_transp_err_count_inc
  source_file: /src/haproxy/src/quic_stats.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pt_sc
  - pt_trace_buf
  - pt_trace
  - mux_pt_report_term_evt
  - mux_pt_destroy
  - mux_pt_io_cb
  - mux_pt_init
  - mux_pt_wake
  - mux_pt_attach
  - mux_pt_get_first_sc
  - mux_pt_destroy_meth
  - mux_pt_detach
  - mux_pt_used_streams
  - mux_pt_avail_streams
  - mux_pt_shut
  - mux_pt_rcv_buf
  - mux_pt_snd_buf
  - mux_pt_opposite_sd
  - mux_pt_nego_ff
  - mux_pt_done_ff
  - mux_pt_fastfwd
  - mux_pt_resume_fastfwd
  - mux_pt_subscribe
  - mux_pt_unsubscribe
  - mux_pt_ctl
  - mux_pt_sctl
  - cfg_parse_pt_zero_copy_fwd
  source_file: /src/haproxy/src/mux_pt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/src/mux_pt.c
      type_or_value: '&trace_pt'
    structs:
    - fields:
      - name: '*sd'
        type: struct sedesc
      - name: '*conn'
        type: struct connection
      - name: term_evts_log
        type: uint32_t
      - name: wait_event
        type: struct wait_event
      item_type: struct
      name: mux_pt_ctx
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/haproxy/src/mux_pt.c
    typedefs: []
    union: []
- function_names:
  - quic_trace
  - list_for_each_entry
  - list_for_each_entry
  - quic_dump_qc_info
  source_file: /src/haproxy/src/quic_trace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MPRING_STRIDE_LEN
  - mpring_init
  - mpring_write_reserve
  - mpring_write_commit
  - mpring_write
  - mpring_read_begin
  - mpring_read_end
  source_file: /src/haproxy/src/mpring.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MPRING_PAYLOAD_ALIGN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/haproxy/src/mpring.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MPRING_HDR_PADDING
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/haproxy/src/mpring.c
      type_or_value: "(-1)\t"
    - item_type: preproc_def
      name: MPRING_HDR_BUSY
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/haproxy/src/mpring.c
      type_or_value: "0\t"
    structs:
    - fields:
      - name: header
        type: int64_t
      item_type: struct
      name: mpring_record
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/haproxy/src/mpring.c
    typedefs: []
    union: []
- function_names:
  - qfctl_init
  - qfctl_rblocked
  - qfctl_sblocked
  - qfctl_set_max
  - qfctl_rinc
  - qfctl_sinc
  - qfctl_rcap
  source_file: /src/haproxy/src/quic_fctl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_free_arngs
  - sack_gap
  - quic_arngs_set_enc_sz
  - quic_insert_new_range
  - quic_update_ack_ranges_list
  - qc_treat_ack_of_ack
  source_file: /src/haproxy/src/quic_ack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - event_hdl_deinit
  - event_hdl_init
  - event_hdl_id
  - event_hdl_sub_type_to_string
  - event_hdl_string_to_sub_type
  - event_hdl_sub_type_print
  - event_hdl_report_hdl_state
  - _event_hdl_async_data_drop
  - event_hdl_async_free_event
  - event_hdl_task_wakeup
  - event_hdl_async_task_default
  - _event_hdl_getsub
  - _event_hdl_getsub_async
  - _event_hdl_resub
  - _event_hdl_resub_async
  - _event_hdl_unsubscribe
  - _event_hdl_unsubscribe_async
  - event_hdl_getsub_sync
  - event_hdl_getsub_async
  - event_hdl_resub_sync
  - event_hdl_resub_async
  - event_hdl_unsubscribe_sync
  - event_hdl_unsubscribe_async
  - EVENT_HDL_SUB_MGMT_ASYNC
  - EVENT_HDL_SUB_MGMT_SYNC
  - event_hdl_subscribe_ptr
  - event_hdl_take
  - event_hdl_drop
  - event_hdl_resubscribe
  - _event_hdl_pause
  - event_hdl_pause
  - _event_hdl_resume
  - event_hdl_resume
  - event_hdl_unsubscribe
  - event_hdl_subscribe
  - event_hdl_lookup_unsubscribe
  - event_hdl_lookup_resubscribe
  - event_hdl_lookup_pause
  - event_hdl_lookup_resume
  - event_hdl_lookup_take
  - _event_hdl_publish
  - event_hdl_publish
  - event_hdl_sub_list_init
  - _event_hdl_sub_list_destroy
  - event_hdl_sub_list_destroy
  - event_hdl_parse_max_events_at_once
  source_file: /src/haproxy/src/event_hdl.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: e_queue
        type: event_hdl_async_equeue
      - name: func
        type: event_hdl_cb_async
      item_type: struct
      name: event_hdl_async_task_default_ctx
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/haproxy/src/event_hdl.c
    typedefs:
    - item_type: typedef
      name: (*event_hdl_report_hdl_state_func)(const char *fmt, ...)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/haproxy/src/event_hdl.c
      type: void
    union: []
- function_names:
  - smp_fetch_src
  - smp_fetch_sport
  - smp_fetch_reused
  - smp_fetch_dst
  - smp_fetch_dst_is_local
  - smp_fetch_src_is_local
  - smp_fetch_dport
  - val_fc_time_value
  - var_fc_counter
  - get_tcp_info
  - smp_fetch_fc_rtt
  - smp_fetch_fc_rttvar
  - smp_fetch_bc_rtt
  - smp_fetch_bc_rttvar
  - smp_fetch_fc_unacked
  - smp_fetch_fc_sacked
  - smp_fetch_fc_lost
  - smp_fetch_fc_retrans
  - smp_fetch_fc_fackets
  - smp_fetch_fc_reordering
  - smp_fetch_fc_saved_syn
  - smp_check_accept_date_unit
  - smp_fetch_accept_date
  source_file: /src/haproxy/src/tcp_sample.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/src/cebs_tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CEB_KEY_TYPE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/cebs_tree.c
      type_or_value: CEB_KT_ST
    - item_type: preproc_def
      name: CEB_KEY_MEMBER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/cebs_tree.c
      type_or_value: str
    - item_type: preproc_def
      name: CEB_MKEY_PFX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/src/cebs_tree.c
      type_or_value: cebs
    - item_type: preproc_def
      name: CEB_UKEY_PFX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/src/cebs_tree.c
      type_or_value: cebus
    structs: []
    typedefs: []
    union: []
- function_names:
  - bind_parse_mode
  - bind_parse_gid
  - bind_parse_group
  - bind_parse_uid
  - bind_parse_user
  source_file: /src/haproxy/src/cfgparse-unix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_cc_cubic_reset
  - quic_cc_cubic_init
  - cubic_root
  - quic_cubic_update
  - quic_cc_cubic_slow_start
  - quic_enter_recovery
  - quic_cc_cubic_ss_cb
  - quic_cc_cubic_ca_cb
  - quic_cc_cubic_cs_cb
  - quic_cc_cubic_rp_cb
  - quic_cc_cubic_event
  - quic_cc_cubic_hystart_start_round
  - quic_cc_cubic_state_trace
  - quic_cc_cubic_state_cli
  - quic_cc_cubic_check
  source_file: /src/haproxy/src/quic_cc_cubic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CUBIC_SCALE_FACTOR_SHIFT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/src/quic_cc_cubic.c
      type_or_value: '10'
    - item_type: preproc_def
      name: CUBIC_BETA_SCALED
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/src/quic_cc_cubic.c
      type_or_value: '717  '
    - item_type: preproc_def
      name: CUBIC_C_SCALED
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/haproxy/src/quic_cc_cubic.c
      type_or_value: '410  '
    - item_type: preproc_def
      name: CUBIC_ONE_SCALED
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/src/quic_cc_cubic.c
      type_or_value: (1 << CUBIC_SCALE_FACTOR_SHIFT)
    - item_type: preproc_def
      name: CUBIC_TIME_LIMIT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/src/quic_cc_cubic.c
      type_or_value: '355535ULL  '
    structs:
    - fields:
      - name: state
        type: uint32_t
      - name: ssthresh
        type: uint32_t
      - name: remaining_inc
        type: uint32_t
      - name: t_epoch
        type: uint32_t
      - name: W_target
        type: uint32_t
      - name: K
        type: uint32_t
      - name: last_w_max
        type: uint32_t
      - name: W_est
        type: uint32_t
      - name: remaining_W_est_inc
        type: uint32_t
      - name: recovery_start_time
        type: uint32_t
      - name: hystart
        type: struct quic_hystart
      - name: consecutive_losses
        type: uint32_t
      item_type: struct
      name: cubic
      pos:
        line_end: 88
        line_start: 57
        source_file: /src/haproxy/src/quic_cc_cubic.c
    typedefs: []
    union: []
- function_names:
  - MIN
  - BUG_ON
  - BUG_ON_HOT
  - ncb_peek
  - ncb_reserved
  - ncb_write_off
  - ncb_read_off
  - ncb_inc_off
  - ncb_off_reduced
  - ncb_blk_is_null
  - ncb_blk_is_last
  - ncb_blk_first
  - ncb_blk_next
  - ncb_blk_find
  - ncb_blk_off
  - ncb_check_insert
  - ncb_fill_data_blk
  - ncb_fill_gap_blk
  - ncb_init
  - ncb_make
  - ncb_total_data
  - ncb_is_empty
  - ncb_is_full
  - ncb_is_fragmented
  - ncb_data
  - ncb_add
  - ncb_advance
  - ncbuf_printf
  - ncb_generate_rand_off
  - ncb_print_blk
  - ncb_is_null_blk
  - ncb_loop
  - ncbuf_print_buf
  - NCB_INIT
  - NCB_ADD_EQ
  - NCB_ADD_NEQ
  - NCB_ADVANCE_EQ
  - NCB_TOTAL_DATA_EQ
  - NCB_DATA_EQ
  - ncbuf_test
  - main
  source_file: /src/haproxy/src/ncbuf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCB_BLK_NULL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/ncbuf.c
      type_or_value: ((struct ncb_blk){ .st = NULL })
    - item_type: preproc_def
      name: NCB_BK_F_GAP
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/src/ncbuf.c
      type_or_value: '0x01  '
    - item_type: preproc_def
      name: NCB_BK_F_FIN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/src/ncbuf.c
      type_or_value: '0x02  '
    structs:
    - fields:
      - name: '*st'
        type: char
      - name: '*end'
        type: char
      - name: '*sz_ptr'
        type: char
      - name: sz
        type: ncb_sz_t
      - name: sz_data
        type: ncb_sz_t
      - name: 'off'
        type: ncb_sz_t
      - name: flag
        type: char
      item_type: struct
      name: ncb_blk
      pos:
        line_end: 48
        line_start: 38
        source_file: /src/haproxy/src/ncbuf.c
    - fields:
      - name: el
        type: struct list
      - name: 'off'
        type: ncb_sz_t
      - name: len
        type: ncb_sz_t
      item_type: struct
      name: rand_off
      pos:
        line_end: 713
        line_start: 709
        source_file: /src/haproxy/src/ncbuf.c
    typedefs: []
    union: []
- function_names:
  - _xor_branches
  - ceb_imm_default_dump_root
  - ceb_imm_default_dump_node
  - ceb_imm_default_dump_dups
  - ceb_imm_default_dump_leaf
  - ceb_imm_default_dump_tree
  source_file: /src/haproxy/src/cebtree-dbg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_saddr_cpy
  - quic_generate_retry_token_aad
  - quic_generate_retry_token
  - parse_retry_token
  - quic_retry_token_check
  - quic_retry_packet_check
  - create_quic_retry_token_pool
  source_file: /src/haproxy/src/quic_retry.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/haproxy/src/quic_retry.c
      type_or_value: '&trace_quic'
    - item_type: preproc_def
      name: QUIC_RETRY_TOKEN_SALTLEN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/haproxy/src/quic_retry.c
      type_or_value: '16 '
    - item_type: preproc_def
      name: QUIC_RETRY_TOKEN_MAXLEN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/haproxy/src/quic_retry.c
      type_or_value: '256 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - jwt_parse_alg
  - jwt_tokenize
  - jwt_tree_load_cert
  - jwt_jwsverify_hmac
  - convert_ecdsa_sig
  - jwt_jwsverify_rsa_ecdsa
  - jwt_verify
  - jwt_deinit
  source_file: /src/haproxy/src/jwt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - recalc_server_ss
  - ss_set_server_status_down
  - ss_set_server_status_up
  - init_server_ss
  - ss_get_server
  source_file: /src/haproxy/src/lb_ss.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - http_get_stline
  - http_get_hdrs_size
  - __http_find_header
  - http_find_header
  - http_find_str_header
  - http_find_pfx_header
  - http_find_sfx_header
  - http_find_sub_header
  - http_match_header
  - http_add_header
  - http_replace_stline
  - http_replace_req_meth
  - http_replace_req_uri
  - http_replace_req_path
  - http_replace_req_query
  - http_replace_res_status
  - http_replace_res_reason
  - http_append_header_value
  - http_prepend_header_value
  - http_replace_header_value
  - http_replace_header
  - http_remove_header
  - http_update_authority
  - http_update_host
  - http_get_htx_hdr
  - http_get_htx_fhdr
  - http_str_to_htx
  - release_http_reply
  - http_htx_init
  - http_htx_deinit
  - http_load_errorfile
  - http_load_errormsg
  - http_parse_errorfile
  - http_parse_errorloc
  - http_check_http_reply
  - http_parse_http_reply
  - http_scheme_based_normalize
  - http_cookie_register
  - http_cookie_merge
  - proxy_parse_errorloc
  - proxy_parse_errorfile
  - proxy_parse_errorfiles
  - proxy_parse_http_error
  - proxy_finalize_http_errors
  - post_check_errors
  - proxy_check_http_errors
  - proxy_dup_default_conf_errors
  - proxy_release_conf_errors
  - cfg_parse_http_errors
  - smp_fetch_is_htx
  - smp_fetch_htx_nbblks
  - smp_fetch_htx_size
  - smp_fetch_htx_data
  - smp_fetch_htx_used
  - smp_fetch_htx_free
  - smp_fetch_htx_free_data
  - smp_fetch_htx_has_eom
  - smp_fetch_htx_blk_type
  - smp_fetch_htx_blk_size
  - smp_fetch_htx_blk_stline
  - smp_fetch_htx_blk_hdrname
  - smp_fetch_htx_blk_hdrval
  - smp_fetch_htx_blk_data
  - val_blk_arg
  source_file: /src/haproxy/src/http_htx.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HTTP_FIND_FL_MATCH_STR
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/src/http_htx.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: HTTP_FIND_FL_MATCH_PFX
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/src/http_htx.c
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: HTTP_FIND_FL_MATCH_SFX
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/src/http_htx.c
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: HTTP_FIND_FL_MATCH_SUB
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/src/http_htx.c
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: HTTP_FIND_FL_MATCH_REG
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/haproxy/src/http_htx.c
      type_or_value: '0x0005'
    - item_type: preproc_def
      name: HTTP_FIND_FL_MATCH_TYPE
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/haproxy/src/http_htx.c
      type_or_value: '0x000F'
    - item_type: preproc_def
      name: HTTP_FIND_FL_FULL
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/haproxy/src/http_htx.c
      type_or_value: '0x0010'
    structs:
    - fields:
      - name: directive
        type: enum http_err_directive
      - name: type
        type: "union {\n\t\tstruct {\n\t\t\tint status;                 /* the status
          code associated to this error */\n\t\t\tstruct http_reply *reply;   /* the
          http reply for the errorfile */\n\t\t} inl;                              /*
          for HTTP_ERR_DIRECTIVE_INLINE only */\n\t\tstruct {\n\t\t\tchar *name;                 /*
          the http-errors section name */\n\t\t\tstruct http_errors *resolved; /*
          resolved section pointer set via proxy_check_http_errors() */\n\t\t\tenum
          http_err_import status[HTTP_ERR_SIZE]; /* list of status to import */\n\t\t}
          section;                          /* for HTTP_ERR_DIRECTIVE_SECTION only
          */\n\t}"
      - name: '*file'
        type: char
      - name: line
        type: int
      - name: list
        type: struct list
      item_type: struct
      name: conf_errors
      pos:
        line_end: 60
        line_start: 42
        source_file: /src/haproxy/src/http_htx.c
    typedefs: []
    union: []
- function_names:
  - fcgi_param_name
  - fcgi_app_find_by_name
  - find_px_fcgi_conf
  - find_strm_fcgi_ctx
  - get_px_fcgi_app
  - get_strm_fcgi_app
  - fcgi_release_rule_conf
  - fcgi_release_rule
  - smp_fetch_fcgi_docroot
  - smp_fetch_fcgi_index
  - fcgi_flt_init
  - fcgi_flt_deinit
  - fcgi_flt_check
  - fcgi_flt_start
  - fcgi_flt_stop
  - fcgi_flt_http_headers
  - parse_fcgi_flt
  - proxy_parse_use_fcgi_app
  - cfg_fcgi_apps_postparser
  - fcgi_app_add_rule
  - cfg_parse_fcgi_app
  - fcgi_apps_deinit
  source_file: /src/haproxy/src/fcgi-app.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NOW_OFFSET_BOUNDARY
  - KEY_CLASS
  - KEY_OFFSET
  - KEY_CLASS_OFFSET_BOUNDARY
  - MAKE_KEY
  - srv_dynamic_maxconn
  - __pendconn_unlink_srv
  - __pendconn_unlink_prx
  - pendconn_queue_lock
  - pendconn_queue_unlock
  - pendconn_unlink
  - pendconn_first
  - pendconn_process_next_strm
  - process_srv_queue
  - pendconn_add
  - pendconn_redistribute
  - pendconn_dequeue
  - action_set_priority_class
  - action_set_priority_offset
  - parse_set_priority_class
  - parse_set_priority_offset
  - smp_fetch_priority_class
  - smp_fetch_priority_offset
  source_file: /src/haproxy/src/queue.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fas_remove_from_tree
  - fas_dequeue_srv
  - fas_queue_srv
  - fas_srv_reposition
  - fas_set_server_status_down
  - fas_set_server_status_up
  - fas_update_server_weight
  - fas_init_server_tree
  - fas_get_next_server
  source_file: /src/haproxy/src/lb_fas.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - smp_check_http_date_unit
  - sample_conv_http2epoch
  - sample_conv_http_date
  - sample_conv_q_preferred
  - sample_conv_url_dec
  - sample_conv_url_enc_check
  - sample_conf_url_enc_init
  - sample_conv_url_enc
  - smp_conv_req_capture
  - smp_conv_res_capture
  source_file: /src/haproxy/src/http_conv.c
  types:
    enum:
    - enumerators:
      - name: ENC_QUERY
        value: '0'
      item_type: enum
      name: encode_type
      pos:
        line_end: 291
        line_start: 289
        source_file: /src/haproxy/src/http_conv.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _sink_find
  - sink_find
  - sink_find_early
  - __sink_new
  - sink_new_fd
  - sink_new_buf
  - __sink_write
  - sink_announce_dropped
  - cli_parse_show_events
  - sink_setup_proxy
  - _sink_forward_io_handler
  - sink_forward_io_handler
  - sink_forward_oc_io_handler
  - __sink_forward_session_deinit
  - sink_forward_session_init
  - sink_forward_session_release
  - sink_forward_session_create
  - process_sink_forward
  - sink_init_forward
  - sink_rotate_file_backed_ring
  - sink_free
  - sink_new_ringbuf
  - sink_add_srv
  - sink_finalize
  - cfg_parse_ring
  - sink_new_from_logger
  - sink_new_from_srv
  - cfg_post_parse_ring
  - sink_resolve_logger_buffer
  - sink_init
  - sink_postcheck
  - sink_deinit
  source_file: /src/haproxy/src/sink.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_pacing_sent_done
  - quic_pacing_reload
  source_file: /src/haproxy/src/quic_pacing.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fd_add_to_fd_list
  - fd_rm_from_fd_list
  - _fd_delete_orphan
  - fd_delete
  - fd_set_nonblock
  - fd_set_cloexec
  - fd_migrate_on
  - fd_takeover
  - updt_fd_polling
  - fd_update_events
  - fd_reregister_all
  - fd_write_frag_line
  - my_closefrom
  - my_closefrom
  - my_closefrom
  - compute_poll_timeout
  - fd_leaving_poll
  - disable_poller
  - poller_pipe_io_handler
  - alloc_pollers_per_thread
  - init_pollers_per_thread
  - deinit_pollers_per_thread
  - free_pollers_per_thread
  - init_pollers
  - deinit_pollers
  - list_pollers
  - fork_poller
  - cfg_parse_tune_fd_edge_triggered
  source_file: /src/haproxy/src/fd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: ent
        type: struct fdlist_entry
      - name: u64
        type: uint64_t
      - name: u32[2]
        type: uint32_t
      item_type: union
      name: cur_list
      pos:
        line_end: 186
        line_start: 182
        source_file: /src/haproxy/src/fd.c
- function_names:
  - applet_trace
  - appctx_new_on
  - appctx_finalize_startup
  - appctx_free_on_early_error
  - appctx_free
  - applet_reserve_svcctx
  - applet_reset_svcctx
  - appctx_shut
  - appctx_release_buffers
  - appctx_buf_available
  - appctx_htx_rcv_buf
  - appctx_raw_rcv_buf
  - appctx_rcv_buf
  - appctx_htx_snd_buf
  - appctx_raw_snd_buf
  - appctx_snd_buf
  - appctx_fastfwd
  - applet_append_line
  - task_run_applet
  - task_process_applet
  - cfg_parse_applet_zero_copy_fwd
  source_file: /src/haproxy/src/applet.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/src/applet.c
      type_or_value: '&trace_applet'
    structs: []
    typedefs: []
    union: []
- function_names:
  - eb32sc_insert_dup
  - eb32sc_insert
  - eb32sc_lookup_ge
  - eb32sc_lookup_ge_or_first
  - eb32sc_delete
  source_file: /src/haproxy/src/eb32sctree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - http_req_keywords_register
  - http_res_keywords_register
  - http_after_res_keywords_register
  - action_http_req_custom
  - action_http_res_custom
  - action_http_after_res_custom
  - parse_http_req_cond
  - parse_http_res_cond
  - parse_http_after_res_cond
  - http_free_redirect_rule
  - http_parse_redirect_rule
  source_file: /src/haproxy/src/http_rules.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - httpclient_req_gen
  - httpclient_res_xfer
  - httpclient_req_xfer
  - httpclient_set_timeout
  - httpclient_set_dst
  - httpclient_spliturl
  - httpclient_start
  - httpclient_stop_and_destroy
  - httpclient_destroy
  - httpclient_new
  - httpclient_new_from_proxy
  - httpclient_set_proxy
  - httpclient_applet_io_handler
  - httpclient_applet_init
  - httpclient_applet_release
  - httpclient_resolve_init
  - httpclient_create_proxy
  - httpclient_precheck
  - httpclient_postcheck_proxy
  - httpclient_parse_global_resolvers
  - httpclient_parse_global_resolvers_disabled
  - httpclient_parse_global_prefer
  - httpclient_parse_global_ca_file
  - httpclient_parse_global_verify
  - httpclient_parse_global_retries
  - httpclient_parse_global_timeout_connect
  source_file: /src/haproxy/src/http_client.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sd_notify
  - sd_notifyf
  source_file: /src/haproxy/src/systemd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: sa
        type: struct sockaddr
      - name: ux
        type: struct sockaddr_un
      item_type: union
      name: sockaddr_union
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/haproxy/src/systemd.c
- function_names:
  - RET0_UNLESS
  - HA_ANON
  - ulltoa
  - ultoa_o
  - ltoa_o
  - lltoa
  - utoa_pad
  - strlcpy2
  - ultoa_r
  - lltoa_r
  - sltoa_r
  - ulltoh_r
  - limit_r
  - flt_trim
  - ftoa_r
  - qstr
  - ishex
  - round_2dig
  - invalid_char
  - __invalid_char
  - invalid_domainchar
  - invalid_prefix_char
  - str2ip2
  - str2sa_range
  - sa2str
  - str2mask
  - str2mask6
  - cidr2dotted
  - len2mask4
  - len2mask6
  - str2net
  - str62net
  - url2ipv4
  - url2sa
  - addr_to_str
  - port_to_str
  - addr_is_local
  - encode_string
  - encode_chunk
  - escape_string
  - chunk_escape_string
  - cbor_encode_uint64_prefix
  - cbor_encode_int64
  - cbor_encode_bytes_prefix
  - cbor_encode_text
  - cbor_encode_bytes
  - csv_enc_append
  - url_decode
  - str2ui
  - str2uic
  - strl2ui
  - strl2uic
  - read_uint
  - read_uint64
  - read_int64
  - strl2ic
  - strl2irc
  - strl2llrc
  - strl2llrc_dotted
  - parse_time_err
  - parse_size_ui
  - parse_size_ull
  - parse_binary
  - my_strndup
  - my_memmem
  - my_memspn
  - my_memcspn
  - get_next_id
  - eb32sc_to_file
  - ebmb_to_file
  - word_match
  - inetaddr_host
  - inetaddr_host_lim
  - inetaddr_host_lim_ret
  - buf2ip
  - buf2ip6
  - quote_arg
  - get_std_op
  - full_hash
  - mask_find_rank_bit
  - mask_find_rank_bit_fast
  - mask_prep_rank_map
  - one_among_mask
  - in_net_ipv4
  - in_net_ipv6
  - v4tov6
  - v6tov4
  - ipcmp
  - ipcmp2net
  - ipcpy
  - ipaddrcpy
  - human_time
  - date2str_log
  - my_tm_diff
  - get_gmt_offset
  - gmt2str_log
  - localdate2str_log
  - my_timegm
  - parse_expect_char
  - parse_strcmp
  - STR2I3
  - parse_http_dayname
  - parse_http_monthname
  - parse_http_ldayname
  - parse_digit
  - parse_2digit
  - parse_4digit
  - parse_http_time
  - parse_imf_date
  - parse_rfc850_date
  - parse_asctime_date
  - parse_http_date
  - print_time_short
  - memvprintf
  - memprintf
  - indent_msg
  - append_prefixed_str
  - my_unsetenv
  - env_expand
  - strnistr
  - strordered
  - utf8_next
  - may_access
  - dump_text
  - dump_binary
  - dump_hex
  - dump_addr_and_bytes
  - dump_area_with_syms
  - dump_text_line
  - debug_hexdump
  - get_exec_path
  - dladdr_and_size
  - check_if_static_build
  - get_sym_curr_addr
  - get_sym_next_addr
  - get_sym_curr_addr
  - get_sym_next_addr
  - resolve_sym_name
  - resolve_dso_name
  - make_tar_header
  - load_file_into_tar
  - dl_dump_libs_cb
  - dump_libs
  - dl_collect_libs_cb
  - collect_libs
  - dump_libs
  - collect_libs
  - parse_dotted_uints
  - varint_bytes
  - _ha_random64_internal
  - ha_random64_internal
  - _ha_random_jump
  - ha_random_jump128
  - ha_random_jump192
  - ha_random_seed
  - ha_random_seed_thread
  - ha_random64
  - _ha_random64_pair_hashed
  - ha_generate_uuid_v4
  - ha_generate_uuid_v7
  - _is_path_mode
  - is_path_mode
  - is_file_present
  - is_dir_present
  - EMIT_CHAR
  - parse_line
  - read_line_to_trash
  - sanitize_for_printing
  - update_word_fingerprint_with_len
  - update_word_fingerprint
  - env_suggest
  - hash_anon
  - hash_ipanon
  - make_word_fingerprint
  - make_word_fingerprint_with_len
  - word_fingerprint_distance
  - awslc_compare_current_api
  - openssl_compare_current_version
  - openssl_compare_current_name
  - vma_set_name_id
  - vma_set_name
  - dlopen
  - init_tools_per_thread
  - fgets_from_mem
  - backup_env
  - clean_env
  - restore_env
  - copy_file_name
  - free_all_file_names
  - path_base
  - ha_freearray
  - ha_memset_s
  - chunk_append_thread_ctx
  source_file: /src/haproxy/src/tools.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NB_L_HASH_WORD
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/src/tools.c
      type_or_value: '15'
    - item_type: preproc_def
      name: TM_YEAR_BASE
      pos:
        line_end: 3988
        line_start: 3987
        source_file: /src/haproxy/src/tools.c
      type_or_value: '1900'
    structs:
    - fields:
      - name: '*root'
        type: struct ceb_root
      item_type: struct
      name: file_names = { 0 }
      pos:
        line_end: 132
        line_start: 129
        source_file: /src/haproxy/src/tools.c
    - fields:
      - name: '*func'
        type: void
      - name: '*name'
        type: char
      item_type: struct
      name: "fcts[] = {\n#define DEF_SYM(sym, ...) { .func = ({ __VA_ARGS__; sym;
        }), .name = #sym }\n\t\tDEF_SYM(process_stream),\n\t\tDEF_SYM(task_run_applet),\n\t\tDEF_SYM(run_poll_loop),\n\t\tDEF_SYM(run_tasks_from_lists),\n\t\tDEF_SYM(process_runnable_tasks),\n\t\tDEF_SYM(sc_conn_io_cb),\n\t\tDEF_SYM(sock_conn_iocb),\n\t\tDEF_SYM(dgram_fd_handler),\n\t\tDEF_SYM(listener_accept),\n\t\tDEF_SYM(manage_global_listener_queue),\n\t\tDEF_SYM(poller_pipe_io_handler),\n\t\tDEF_SYM(mworker_accept_wrapper),\n\t\tDEF_SYM(session_expire_embryonic),\n\t\tDEF_SYM(ha_dump_backtrace,
        extern void ha_dump_backtrace(struct buffer *, const char *, int)),\n\t\tDEF_SYM(cli_io_handler,
        extern void cli_io_handler(struct appctx*)),\n#ifdef USE_THREAD\n\t\tDEF_SYM(accept_queue_process),\n#endif\n#ifdef
        USE_LUA\n\t\tDEF_SYM(hlua_process_task),\n#endif\n#ifdef SSL_MODE_ASYNC\n\t\tDEF_SYM(ssl_async_fd_free),\n\t\tDEF_SYM(ssl_async_fd_handler),\n#endif\n#ifdef
        USE_QUIC\n\t\tDEF_SYM(quic_conn_sock_fd_iocb),\n#endif\n#undef DEF_SYM\n\t};\n\n#if
        (defined(__ELF__) && !defined(__linux__)) || defined(USE_DL)\n\tstatic Dl_info
        dli_main;\n\tstatic int dli_main_done; // 0 = not resolved, 1 = resolve in
        progress, 2 = done\n\t__decl_thread_var(static HA_SPINLOCK_T dladdr_lock);\n\tsigset_t
        new_mask, old_mask;\n\tint isolated;\n\tDl_info dli;\n\tsize_t size = 0;\n\tconst
        char *fname, *p;\n#endif\n\tsize_t dist, best_dist;\n\tint i, best_idx;\n\n\tif
        (pfx)\n\t\tchunk_appendf(buf, \"%s\", pfx);\n\n\tbest_idx = -1; best_dist
        = ~0;\n\tfor (i = 0; i < sizeof(fcts) / sizeof(fcts[0]); i++) {\n\t\tif (addr
        < (void*)fcts[i].func)\n\t\t\tcontinue;\n\t\tdist = addr - (void*)fcts[i].func;\n\t\tif
        (dist < (1<<18) && dist < best_dist) {\n\t\t\tbest_dist = dist;\n\t\t\tbest_idx
        = i;\n\t\t\tif (!dist)\n\t\t\t\tbreak;\n\t\t}\n\t}"
      pos:
        line_end: 5588
        line_start: 5585
        source_file: /src/haproxy/src/tools.c
    - fields:
      - name: '*buf'
        type: struct buffer
      - name: with_addr
        type: int
      item_type: struct
      name: dl_dump_ctx
      pos:
        line_end: 5973
        line_start: 5970
        source_file: /src/haproxy/src/tools.c
    - fields:
      - name: '*storage'
        type: char
      - name: size
        type: size_t
      - name: '*prefix'
        type: char
      - name: pos
        type: int
      - name: libpthread_path[PATH_MAX]
        type: char
      item_type: struct
      name: dl_collect_ctx
      pos:
        line_end: 6043
        line_start: 6037
        source_file: /src/haproxy/src/tools.c
    - fields:
      - name: '*name'
        type: char
      - name: bit
        type: uint64_t
      - name: '*curr'
        type: void
      item_type: struct
      name: "check_syms[] = {\n\t\t/* openssl's libcrypto checks: group bits 0x1f
        */\n\t\t{ .name=\"OPENSSL_init\",                  .bit = 0x0000000000000001,
        .grp = 0x000000000000001f, }, // openssl 1.0 / 1.1 / 3.0\n\t\t{ .name=\"OPENSSL_init_crypto\",
        \          .bit = 0x0000000000000002, .grp = 0x000000000000001f, }, // openssl
        1.1 / 3.0\n\t\t{ .name=\"ENGINE_init\",                   .bit = 0x0000000000000004,
        .grp = 0x000000000000001f, }, // openssl 1.x / 3.x with engine\n\t\t{ .name=\"EVP_CIPHER_CTX_init\",
        \          .bit = 0x0000000000000008, .grp = 0x000000000000001f, }, // openssl
        1.0\n\t\t{ .name=\"HMAC_Init\",                     .bit = 0x0000000000000010,
        .grp = 0x000000000000001f, }, // openssl 1.x\n\n\t\t/* openssl's libssl checks:
        group bits 0x3e0 */\n\t\t{ .name=\"OPENSSL_init_ssl\",              .bit =
        0x0000000000000020, .grp = 0x00000000000003e0, }, // openssl 1.1 / 3.0\n\t\t{
        .name=\"SSL_library_init\",              .bit = 0x0000000000000040, .grp =
        0x00000000000003e0, }, // openssl 1.x\n\t\t{ .name=\"SSL_is_quic\",                   .bit
        = 0x0000000000000080, .grp = 0x00000000000003e0, }, // quictls\n\t\t{ .name=\"SSL_CTX_new_ex\",
        \               .bit = 0x0000000000000100, .grp = 0x00000000000003e0, }, //
        openssl 3.x\n\t\t{ .name=\"SSL_CTX_get0_security_ex_data\", .bit = 0x0000000000000200,
        .grp = 0x00000000000003e0, }, // openssl 1.x / 3.x\n\n\t\t/* insert only above,
        0 must be the last one */\n\t\t{ 0 },\n\t}"
      pos:
        line_end: 7443
        line_start: 7439
        source_file: /src/haproxy/src/tools.c
    typedefs: []
    union:
    - fields:
      - name: buffer[512]
        type: uchar
      - name: hdr
        type: "struct {                      /* byte offset */\n\t\t\tchar name[100];
          \      /*   0 */\n\t\t\tchar mode[8];         /* 100 : octal */\n\t\t\tchar
          uid[8];          /* 108 : octal */\n\t\t\tchar gid[8];          /* 116 :
          octal */\n\t\t\tchar size[12];        /* 124 : octal */\n\t\t\tchar mtime[12];
          \      /* 136 : octal */\n\t\t\tchar chksum[8];       /* 148 : sum of the
          header's bytes */\n\t\t\tchar typeflag;        /* 156 : '0' = regular file
          */\n\t\t\tchar linkname[100];   /* 157 */\n\t\t\tchar magic_ver[8];    /*
          257 : \"ustar  \\0\" or \"ustar\\0\"\"00\" */\n\t\t\tchar uname[32];       /*
          265 */\n\t\t\tchar gname[32];       /* 297 */\n\t\t\tchar devmajor[8];     /*
          329 */\n\t\t\tchar devminor[8];     /* 337 */\n\t\t\tchar prefix[155];     /*
          345 */\n\t\t\tchar pad12[12];       /* 500 */\n\t\t}"
      item_type: union
      name: "blk = {\n\t\t.hdr = {\n\t\t\t.name  = \"\",\n\t\t\t.mode  = \"\",\n\t\t\t.uid
        \  = \"0000000\",\n\t\t\t.gid   = \"0000000\",\n\t\t\t.size  = \"00000000000\",\n\t\t\t.mtime
        = \"00000000000\",\n\t\t\t.chksum = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', '
        ' },\n\t\t\t.typeflag = '0',  // regular file\n\t\t\t.magic_ver = { 'u', 's',
        't', 'a', 'r', '\\0', '0', '0' },\n\t\t\t.uname = \"root\",\n\t\t\t.gname
        = \"root\",\n\t\t\t.devmajor = \"0\",\n\t\t\t.devminor = \"0\",\n\t\t},\n\t}"
      pos:
        line_end: 5844
        line_start: 5824
        source_file: /src/haproxy/src/tools.c
- function_names:
  - chash_skip_node
  - chash_dequeue_srv
  - chash_compute_node_key
  - chash_compute_server_key
  - chash_queue_dequeue_srv
  - chash_set_server_status_down
  - chash_set_server_status_up
  - chash_update_server_weight
  - chash_server_is_eligible
  - chash_get_server_hash
  - chash_get_next_server
  - chash_server_init
  - chash_server_deinit
  - chash_init_server_tree
  source_file: /src/haproxy/src/lb_chash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - a2base64
  - a2base64url
  - base64dec
  - base64urldec
  - s30tob64
  - b64tos30
  source_file: /src/haproxy/src/base64.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: B64BASE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/haproxy/src/base64.c
      type_or_value: "'#'\t\t"
    - item_type: preproc_def
      name: B64CMIN
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/src/base64.c
      type_or_value: '''+'''
    - item_type: preproc_def
      name: UB64CMIN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/src/base64.c
      type_or_value: '''-'''
    - item_type: preproc_def
      name: B64CMAX
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/src/base64.c
      type_or_value: '''z'''
    - item_type: preproc_def
      name: B64PADV
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/src/base64.c
      type_or_value: "64\t\t"
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_tls_keys_hexdump
  - quic_tls_kp_keys_hexdump
  - quic_pktns_release
  - quic_tls_secret_hexdump
  - quic_cstream_free
  - quic_cstream_new
  - quic_conn_enc_level_uninit
  - quic_conn_enc_level_init
  - qc_enc_level_alloc
  - qc_enc_level_free
  - quic_hkdf_extract
  - quic_hkdf_expand
  - quic_hkdf_extract_and_expand
  - quic_hkdf_expand_label
  - quic_tls_derive_keys
  - quic_derive_initial_secret
  - quic_tls_derive_initial_secrets
  - quic_tls_sec_update
  - quic_aead_iv_build
  - quic_tls_rx_ctx_init
  - quic_tls_enc_hp_ctx_init
  - quic_tls_hp_encrypt
  - quic_tls_dec_hp_ctx_init
  - quic_tls_hp_decrypt
  - quic_tls_tx_ctx_init
  - quic_tls_encrypt
  - quic_tls_decrypt
  - quic_tls_decrypt2
  - quic_do_tls_derive_token_secret
  - quic_tls_derive_retry_token_secret
  - quic_tls_derive_token_secret
  - quic_tls_generate_retry_integrity_tag
  - quic_tls_key_update
  - quic_tls_rotate_keys
  - quic_tls_ctx_free
  - quic_tls_finalize
  source_file: /src/haproxy/src/quic_tls.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - open_trace
  - ultoad2
  - emit_hex
  - make_line
  - __cyg_profile_func_enter
  - __cyg_profile_func_exit
  - calltrace
  source_file: /src/haproxy/src/calltrace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SPOE_APPCTX
  - spoe_release_placeholder
  - spoe_release_message
  - spoe_release_group
  - spoe_release_agent
  - generate_pseudo_uuid
  - spoe_update_stat_time
  - spoe_appctx_agent
  - spoe_init_appctx
  - spoe_shut_appctx
  - spoe_release_appctx
  - spoe_handle_receiving_frame_appctx
  - spoe_handle_appctx
  - spoe_create_appctx
  - spoe_encode_message
  - spoe_encode_messages
  - list_for_each_entry
  - list_for_each_entry
  - spoe_set_var
  - spoe_unset_var
  - spoe_decode_action_set_var
  - spoe_decode_action_unset_var
  - spoe_process_actions
  - spoe_ctx_err_to_spop_err
  - spoe_update_stats
  - spoe_handle_processing_error
  - spoe_start_processing
  - spoe_stop_processing
  - spoe_process_messages
  - spoe_process_group
  - spoe_process_event
  - spoe_acquire_buffer
  - spoe_release_buffer
  - spoe_wakeup_context
  - spoe_create_context
  - spoe_destroy_context
  - spoe_reset_context
  - spoe_init
  - spoe_deinit
  - spoe_check
  - spoe_start
  - spoe_stop
  - spoe_check_timeouts
  - spoe_start_analyze
  - spoe_chn_pre_analyze
  - spoe_end_analyze
  - cfg_parse_spoe_agent
  - cfg_parse_spoe_group
  - cfg_parse_spoe_message
  - parse_spoe_flt
  - spoe_send_group
  - check_send_spoe_group
  - parse_send_spoe_group
  - smp_fetch_spoe_engine_id
  - spoe_postcheck_spop_proxy
  source_file: /src/haproxy/src/flt_spoe.c
  types:
    enum:
    - enumerators:
      - name: SPOE_CTX_ST_NONE
        value: '0'
      - name: SPOE_CTX_ST_WAITING_ACK
      - name: SPOE_CTX_ST_ENCODING_MSGS
      - name: SPOE_CTX_ST_SENDING_MSGS
      - name: SPOE_CTX_ST_READY
      - name: SPOE_CTX_ST_DONE
      - name: SPOE_CTX_ST_ERROR
      item_type: enum
      name: spoe_ctx_state
      pos:
        line_end: 67
        line_start: 59
        source_file: /src/haproxy/src/flt_spoe.c
    - enumerators:
      - name: SPOE_APPCTX_ST_WAITING_ACK
        value: '0'
      - name: SPOE_APPCTX_ST_END
      - name: SPOE_APPCTX_ST_EXIT
      item_type: enum
      name: spoe_appctx_state
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/haproxy/src/flt_spoe.c
    - enumerators:
      - name: SPOE_EV_NONE
        value: '0'
      - name: SPOE_EV_ON_CLIENT_SESS
        value: '1'
      - name: SPOE_EV_ON_TCP_REQ_FE
      - name: SPOE_EV_ON_TCP_REQ_BE
      - name: SPOE_EV_ON_HTTP_REQ_FE
      - name: SPOE_EV_ON_HTTP_REQ_BE
      - name: SPOE_EV_ON_SERVER_SESS
      - name: SPOE_EV_ON_TCP_RSP
      - name: SPOE_EV_ON_HTTP_RSP
      - name: SPOE_EV_EVENTS
      item_type: enum
      name: spoe_event
      pos:
        line_end: 93
        line_start: 77
        source_file: /src/haproxy/src/flt_spoe.c
    - enumerators:
      - name: SPOE_CTX_ERR_NONE
        value: '0'
      - name: SPOE_CTX_ERR_TOO_BIG
      - name: SPOE_CTX_ERR_INTERRUPT
      - name: SPOE_CTX_ERR_TOUT
      - name: SPOE_CTX_ERR_RES
      - name: SPOE_CTX_ERR_UNKNOWN
        value: '255'
      - name: SPOE_CTX_ERRS
      item_type: enum
      name: spoe_context_error
      pos:
        line_end: 104
        line_start: 96
        source_file: /src/haproxy/src/flt_spoe.c
    preproc_defs:
    - item_type: preproc_def
      name: SPOE_MSGS_BY_EVENT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/src/flt_spoe.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: SPOE_MSGS_BY_GROUP
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/src/flt_spoe.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: SPOE_CTX_FL_CLI_CONNECTED
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/src/flt_spoe.c
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: SPOE_CTX_FL_SRV_CONNECTED
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/src/flt_spoe.c
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: SPOE_CTX_FL_REQ_PROCESS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/src/flt_spoe.c
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: SPOE_CTX_FL_RSP_PROCESS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/src/flt_spoe.c
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: SPOE_CTX_FL_PROCESS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/src/flt_spoe.c
      type_or_value: (SPOE_CTX_FL_REQ_PROCESS|SPOE_CTX_FL_RSP_PROCESS)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: name_len
        type: unsigned int
      - name: '*expr'
        type: struct sample_expr
      - name: list
        type: struct list
      item_type: struct
      name: spoe_arg
      pos:
        line_end: 113
        line_start: 108
        source_file: /src/haproxy/src/flt_spoe.c
    - fields:
      - name: '*id'
        type: char
      - name: list
        type: struct list
      item_type: struct
      name: spoe_placeholder
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/haproxy/src/flt_spoe.c
    - fields:
      - name: '*name'
        type: char
      - name: list
        type: struct list
      item_type: struct
      name: spoe_var_placeholder
      pos:
        line_end: 127
        line_start: 124
        source_file: /src/haproxy/src/flt_spoe.c
    - fields:
      - name: '*id'
        type: char
      - name: id_len
        type: unsigned int
      - name: '*agent'
        type: struct spoe_agent
      - name: '*group'
        type: struct spoe_group
      - name: conf
        type: "struct {\n                char       *file;   /* file where the SPOE
          message appears */\n                int         line;   /* line where the
          SPOE message appears */\n        }"
      - name: nargs
        type: unsigned int
      - name: args
        type: struct list
      - name: list
        type: struct list
      - name: by_evt
        type: struct list
      - name: by_grp
        type: struct list
      - name: acls
        type: struct list
      - name: '*cond'
        type: struct acl_cond
      - name: event
        type: enum spoe_event
      item_type: struct
      name: spoe_message
      pos:
        line_end: 149
        line_start: 131
        source_file: /src/haproxy/src/flt_spoe.c
    - fields:
      - name: '*id'
        type: char
      - name: '*agent'
        type: struct spoe_agent
      - name: conf
        type: "struct {\n                char      *file;    /* file where the SPOE
          group appears */\n                int        line;    /* line where the
          SPOE group appears */\n        }"
      - name: phs
        type: struct list
      - name: messages
        type: struct list
      - name: list
        type: struct list
      item_type: struct
      name: spoe_group
      pos:
        line_end: 167
        line_start: 154
        source_file: /src/haproxy/src/flt_spoe.c
    - fields:
      - name: '*filter'
        type: struct filter
      - name: '*strm'
        type: struct stream
      - name: '*events'
        type: struct list
      - name: '*groups'
        type: struct list
      - name: buffer
        type: struct buffer
      - name: buffer_wait
        type: struct buffer_wait
      - name: state
        type: enum spoe_ctx_state
      - name: flags
        type: unsigned int
      - name: status_code
        type: unsigned int
      - name: stream_id
        type: unsigned int
      - name: frame_id
        type: unsigned int
      - name: process_exp
        type: unsigned int
      - name: '*spoe_appctx'
        type: struct spoe_appctx
      - name: stats
        type: "struct {\n\t\tullong         start_ts;    /* start date of the current
          event/group */\n\t\tlong           t_process;   /* processing time of the
          last event/group */\n\t\tunsigned long  t_total;     /* cumulative processing
          time */\n\t}"
      item_type: struct
      name: spoe_context
      pos:
        line_end: 197
        line_start: 172
        source_file: /src/haproxy/src/flt_spoe.c
    - fields:
      - name: '*owner'
        type: struct appctx
      - name: '*agent'
        type: struct spoe_agent
      - name: flags
        type: unsigned int
      - name: status_code
        type: unsigned int
      - name: '*spoe_ctx'
        type: struct spoe_context
      item_type: struct
      name: spoe_appctx
      pos:
        line_end: 206
        line_start: 200
        source_file: /src/haproxy/src/flt_spoe.c
    - fields:
      - name: '*id'
        type: char
      - name: '*proxy'
        type: struct proxy
      - name: '*agent'
        type: struct spoe_agent
      item_type: struct
      name: spoe_config
      pos:
        line_end: 214
        line_start: 209
        source_file: /src/haproxy/src/flt_spoe.c
    typedefs: []
    union: []
- function_names:
  - warnif_rule_after_tcp_conn
  - warnif_rule_after_tcp_sess
  - warnif_rule_after_tcp_cont
  - warnif_rule_after_monitor
  - warnif_rule_after_http_req
  - warnif_rule_after_http_res
  - warnif_rule_after_redirect
  - warnif_rule_after_use_backend
  - warnif_rule_after_use_server
  - warnif_misplaced_redirect
  - warnif_misplaced_http_req
  - warnif_misplaced_monitor
  - warnif_misplaced_tcp_req_cont
  - warnif_misplaced_tcp_res_cont
  - warnif_misplaced_tcp_req_sess
  - warnif_misplaced_tcp_req_conn
  - warnif_misplaced_quic_init
  - cfg_parse_listen_match_option
  - cfg_parse_listen
  source_file: /src/haproxy/src/cfgparse-listen.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sedesc_init
  - sedesc_new
  - sedesc_free
  - se_shutdown
  - sc_new
  - sc_new_from_endp
  - sc_new_from_strm
  - sc_new_from_check
  - sc_free
  - sc_free_cond
  - sc_attach_mux
  - sc_attach_applet
  - sc_attach_strm
  - sc_attach_hstream
  - sc_detach_endp
  - sc_detach_app
  - sc_destroy
  - sc_reset_endp
  - sc_applet_create
  - sc_cond_forward_shut
  - sc_is_fastfwd_supported
  - sc_abort
  - sc_shutdown
  - sc_chk_rcv
  - sc_chk_snd
  - sc_update_rx
  - sc_update_tx
  - sc_notify
  - sc_conn_eos
  - sc_conn_recv
  - sc_conn_sync_recv
  - sc_conn_send
  - sc_conn_sync_send
  - sc_conn_process
  - sc_conn_io_cb
  - sc_applet_eos
  - sc_applet_recv
  - sc_applet_sync_recv
  - sc_applet_send
  - sc_applet_sync_send
  - sc_applet_process
  - sc_conn_prepare_endp_upgrade
  - sc_conn_abort_endp_upgrade
  - sc_conn_commit_endp_upgrade
  - smp_fetch_debug_str
  - smp_fetch_sid
  - smp_fetch_strm_aborted
  - smp_fetch_strm_rst_code
  source_file: /src/haproxy/src/stconn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ssl_trace
  source_file: /src/haproxy/src/ssl_trace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TO_STR
  - _TO_STR
  - CEB_FDECL3
  - CEB_FDECL2
  - CEB_FDECL2
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL2
  - CEB_FDECL2
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - TO_STR
  - _TO_STR
  - CEB_FDECL5
  source_file: /src/haproxy/src/_ceb_str.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hash_wt6
  - hash_djb2
  - hash_sdbm
  - hash_crc32
  - hash_crc32c
  source_file: /src/haproxy/src/hash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sock_inet4_addrcmp
  - sock_inet6_addrcmp
  - sock_inet_set_port
  - sock_inet_get_dst
  - sock_inet_is_foreign
  - sock_inet4_make_foreign
  - sock_inet6_make_foreign
  - sock_inet_bind_receiver
  - is_inet6_reachable
  - sock_inet_prepare
  source_file: /src/haproxy/src/sock_inet.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - eb64_insert
  - eb64i_insert
  - eb64_lookup
  - eb64i_lookup
  - eb64_lookup_le
  - eb64_lookup_ge
  source_file: /src/haproxy/src/eb64tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - comp_append_type
  - comp_append_algo
  - init_comp_ctx
  - deinit_comp_ctx
  - comp_identity_init
  - comp_identity_add_data
  - comp_identity_flush
  - comp_identity_finish
  - comp_identity_end
  - comp_rfc1952_init
  - comp_rfc1951_init
  - comp_rfc1950_init
  - comp_rfc195x_add_data
  - comp_rfc195x_flush_or_finish
  - comp_rfc195x_flush
  - comp_rfc195x_finish
  - comp_rfc195x_end
  - alloc_zlib
  - free_zlib
  - comp_gzip_init
  - comp_raw_def_init
  - comp_deflate_init
  - comp_deflate_add_data
  - comp_deflate_flush_or_finish
  - comp_deflate_flush
  - comp_deflate_finish
  - comp_deflate_end
  - zlib_parse_global_memlevel
  - zlib_parse_global_windowsize
  - comp_register_build_opts
  source_file: /src/haproxy/src/compression.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: free_func
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/src/compression.c
      type_or_value: zlib_free_func
    structs: []
    typedefs: []
    union: []
- function_names:
  - srv_adm_st_chg_cause
  - srv_reset_path_parameters
  - srv_op_st_chg_cause
  - srv_downtime
  - srv_getinter
  - _srv_set_inetaddr_port
  - _srv_set_inetaddr
  - server_atomic_sync
  - server_atomic_sync_start
  - _srv_event_hdl_prepare
  - _srv_event_hdl_prepare_checkres
  - _srv_event_hdl_prepare_state
  - _srv_event_hdl_prepare_inetaddr
  - _srv_event_hdl_publish
  - srv_event_hdl_publish
  - srv_event_hdl_publish_check
  - srv_check_for_dup_dyncookie
  - srv_set_dyncookie
  - srv_check_reuse_ws
  - srv_get_ws_proto
  - srv_set_addr_desc
  - srv_register_keywords
  - srv_find_kw
  - srv_dump_kws
  - srv_find_best_kw
  - server_get_next_id
  - srv_parse_backup
  - srv_parse_cookie
  - srv_parse_disabled
  - srv_parse_enabled
  - srv_parse_error_limit
  - srv_parse_guid
  - srv_parse_ws
  - srv_parse_hash_key
  - srv_parse_idle_ping
  - srv_parse_init_addr
  - srv_parse_init_state
  - srv_parse_log_bufsize
  - srv_parse_log_proto
  - srv_parse_maxconn
  - srv_parse_maxqueue
  - srv_parse_minconn
  - srv_parse_max_reuse
  - srv_parse_pool_purge_delay
  - srv_parse_pool_conn_name
  - srv_parse_pool_low_conn
  - srv_parse_pool_max_conn
  - srv_parse_id
  - srv_parse_namespace
  - srv_parse_no_backup
  - srv_disable_pp_flags
  - srv_parse_no_send_proxy
  - srv_parse_no_send_proxy_v2
  - srv_parse_shard
  - srv_parse_no_tfo
  - srv_parse_non_stick
  - srv_enable_pp_flags
  - srv_parse_proto
  - srv_parse_proxy_v2_options
  - srv_parse_observe
  - srv_parse_on_error
  - srv_parse_on_marked_down
  - srv_parse_on_marked_up
  - srv_parse_redir
  - srv_parse_resolvers
  - srv_parse_resolve_net
  - srv_parse_resolve_opts
  - srv_parse_resolve_prefer
  - srv_parse_send_proxy
  - srv_parse_send_proxy_v2
  - srv_parse_set_proxy_v2_tlv_fmt
  - srv_parse_slowstart
  - srv_parse_source
  - srv_parse_stick
  - srv_parse_track
  - srv_parse_socks4
  - srv_parse_tfo
  - srv_parse_usesrc
  - srv_parse_weight
  - srv_parse_strict_maxconn
  - srv_has_streams
  - srv_shutdown_streams
  - srv_shutdown_backup_streams
  - srv_append_op_chg_cause
  - srv_append_adm_chg_cause
  - srv_append_more
  - srv_set_stopped
  - srv_set_running
  - srv_set_stopping
  - srv_set_admin_flag
  - srv_clr_admin_flag
  - srv_propagate_admin_state
  - srv_compute_all_admin_states
  - server_recalc_eweight
  - server_requeue
  - server_parse_weight_change_request
  - server_parse_maxconn_change_request
  - _parse_srv_expr
  - parse_srv_expr
  - display_parser_err
  - srv_conn_src_sport_range_cpy
  - srv_conn_src_cpy
  - srv_ssl_settings_cpy
  - srv_set_ssl
  - srv_prepare_for_resolution
  - srv_settings_init
  - srv_settings_cpy
  - new_server
  - srv_take
  - srv_free_params
  - srv_drop
  - release_server_track
  - _srv_parse_tmpl_range
  - _srv_parse_set_id_from_prefix
  - server_parse_exprs
  - srv_configure_auto_sni
  - _srv_parse_tmpl_init
  - _srv_check_proxy_mode
  - srv_preinit
  - srv_postinit
  - _srv_parse_init
  - _srv_parse_kw
  - _srv_parse_finalize
  - parse_server
  - server_find_by_id_unique
  - server_find_by_name
  - server_find_by_addr
  - server_find
  - server_find_unique
  - server_find_best_match
  - server_get_inetaddr
  - server_inetaddr_updater_by_to_str
  - _srv_append_inetaddr_updater_info
  - _addr_to_str
  - _inetaddr_addr_cmp
  - server_set_inetaddr
  - server_set_inetaddr_warn
  - srv_update_addr
  - srv_update_agent_addr_port
  - srv_update_check_addr_port
  - srv_update_addr_port
  - srvrq_set_srv_down
  - snr_set_srv_down
  - snr_resolution_cb
  - srvrq_resolution_error_cb
  - snr_resolution_error_cb
  - snr_check_ip_callback
  - srv_set_addr_via_libc
  - srv_set_fqdn
  - srv_apply_lastaddr
  - srv_iterate_initaddr
  - srv_init_addr
  - srv_update_fqdn
  - cli_find_server
  - cli_parse_set_server
  - cli_parse_get_weight
  - cli_parse_set_weight
  - cli_parse_set_maxconn_server
  - cli_parse_disable_agent
  - cli_parse_disable_health
  - cli_parse_disable_server
  - cli_parse_enable_agent
  - cli_parse_enable_health
  - cli_parse_enable_server
  - srv_alloc_lb
  - server_warmup
  - init_srv_slowstart
  - init_srv_requeue
  - srv_init_per_thr
  - cli_io_handler_add_server
  - cli_parse_add_server
  - srv_check_for_deletion
  - cli_parse_delete_server
  - srv_apply_track
  - srv_lb_propagate
  - _srv_update_status_op
  - _srv_update_status_adm
  - srv_update_status
  - srv_cleanup_toremove_conns
  - srv_migrate_conns_to_remove
  - srv_cleanup_connections
  - srv_release_conn
  - srv_lookup_conn
  - srv_lookup_conn_next
  - _srv_add_idle
  - srv_add_idle
  - srv_add_to_idle_list
  - srv_add_to_avail_list
  - srv_cleanup_idle_conns
  - srv_close_idle_conns
  - cfg_parse_idle_pool_shared
  - cfg_parse_pool_fd_ratio
  source_file: /src/haproxy/src/server.c
  types:
    enum:
    - enumerators:
      - name: ADD_SRV_MODE_DEF
      - name: ADD_SRV_MODE_HELP
      item_type: enum
      name: add_srv_mode
      pos:
        line_end: 6135
        line_start: 6132
        source_file: /src/haproxy/src/server.c
    preproc_defs: []
    structs:
    - fields:
      - name: mode
        type: enum add_srv_mode
      - name: '*obj1'
        type: void
      - name: '*obj2'
        type: void
      item_type: struct
      name: add_srv_ctx
      pos:
        line_end: 6142
        line_start: 6138
        source_file: /src/haproxy/src/server.c
    typedefs: []
    union:
    - fields:
      - name: addr
        type: struct event_hdl_cb_data_server_inetaddr
      - name: common
        type: struct event_hdl_cb_data_server
      item_type: union
      name: cb_data
      pos:
        line_end: 4469
        line_start: 4466
        source_file: /src/haproxy/src/server.c
    - fields:
      - name: state
        type: struct event_hdl_cb_data_server_state
      - name: admin
        type: struct event_hdl_cb_data_server_admin
      - name: common
        type: struct event_hdl_cb_data_server
      item_type: union
      name: cb_data
      pos:
        line_end: 7242
        line_start: 7238
        source_file: /src/haproxy/src/server.c
- function_names:
  - block_sigchld
  - unblock_sigchld
  - pid_list_add
  - pid_list_del
  - pid_list_expire
  - sigchld_handler
  - init_pid_list
  - EXTCHK_SETENV
  - extchk_setenv
  - prepare_external_check
  - connect_proc_chk
  - process_chk_proc
  - proxy_parse_extcheck
  - proxy_parse_external_check_opt
  source_file: /src/haproxy/src/extcheck.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXTCHK_SIZE_EVAL_INIT
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/haproxy/src/extcheck.c
      type_or_value: '0                  '
    - item_type: preproc_def
      name: EXTCHK_SIZE_ULONG
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/src/extcheck.c
      type_or_value: '20                 '
    - item_type: preproc_def
      name: EXTCHK_SIZE_UINT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/src/extcheck.c
      type_or_value: '11                 '
    - item_type: preproc_def
      name: EXTCHK_SIZE_ADDR
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/src/extcheck.c
      type_or_value: '256                '
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: vmaxlen
        type: int
      item_type: struct
      name: extcheck_env
      pos:
        line_end: 52
        line_start: 49
        source_file: /src/haproxy/src/extcheck.c
    typedefs: []
    union: []
- function_names:
  - free_tcpcheck_http_hdr
  - free_tcpcheck_http_hdrs
  - list_for_each_entry_safe
  - free_tcpcheck
  - create_tcpcheck_var
  - free_tcpcheck_var
  - free_tcpcheck_vars
  - list_for_each_entry_safe
  - dup_tcpcheck_vars
  - list_for_each_entry
  - find_tcpcheck_ruleset
  - create_tcpcheck_ruleset
  - free_tcpcheck_ruleset
  - tcpcheck_get_step_id
  - get_first_tcpcheck_rule
  - get_last_tcpcheck_rule
  - get_next_tcpcheck_rule
  - tcpcheck_expect_onerror_message
  - tcpcheck_expect_onsuccess_message
  - tcpcheck_mysql_expect_packet
  - tcpcheck_mysql_expect_iniths
  - tcpcheck_mysql_expect_ok
  - tcpcheck_ldap_expect_bindrsp
  - tcpcheck_spop_expect_hello
  - tcpcheck_agent_expect_reply
  - tcpcheck_use_nondefault_connect
  - tcpcheck_connect_use_ssl
  - tcpcheck_connect_auto_sni
  - tcpcheck_eval_connect
  - tcpcheck_eval_send
  - tcpcheck_eval_recv
  - tcpcheck_eval_expect_http
  - tcpcheck_eval_expect
  - tcpcheck_eval_action_kw
  - tcpcheck_main
  - tcp_check_keywords_register
  - parse_tcpcheck_action
  - parse_tcpcheck_connect
  - list_for_each_entry
  - parse_tcpcheck_send
  - parse_tcpcheck_send_http
  - parse_tcpcheck_comment
  - parse_tcpcheck_expect
  - list_for_each_entry_rev
  - tcpcheck_overwrite_send_http_rule
  - tcpcheck_add_http_rule
  - check_tcpcheck_ruleset
  - check_proxy_tcpcheck
  - check_server_tcpcheck
  - deinit_proxy_tcpcheck
  - deinit_tcpchecks
  - add_tcpcheck_expect_str
  - add_tcpcheck_send_strs
  - do_parse_tcpcheck
  - do_parse_httpcheck
  - do_parse_redis_check_opt
  - do_parse_ssl_hello_chk_opt
  - do_parse_smtpchk_opt
  - do_parse_pgsql_check_opt
  - do_parse_mysql_check_opt
  - do_parse_ldap_check_opt
  - do_parse_spop_check_opt
  - do_parse_httpchk_req
  - do_parse_httpchk_opt
  - do_parse_tcp_check_opt
  - proxy_parse_tcpcheck
  - proxy_parse_httpcheck
  - proxy_parse_redis_check_opt
  - proxy_parse_ssl_hello_chk_opt
  - proxy_parse_smtpchk_opt
  - proxy_parse_pgsql_check_opt
  - proxy_parse_ldap_check_opt
  - proxy_parse_spop_check_opt
  - proxy_parse_mysql_check_opt
  - proxy_parse_httpchk_opt
  - proxy_parse_tcp_check_opt
  - cfg_parse_healthchecks
  - cfg_post_parse_healthchecks
  - srv_parse_healthcheck
  source_file: /src/haproxy/src/tcpcheck.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/src/tcpcheck.c
      type_or_value: '&trace_check'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fcgi_strm_sc
  - fcgi_trace
  - fcgi_recv_allowed
  - fcgi_may_demux
  - fcgi_conn_restart_reading
  - fcgi_buf_available
  - fcgi_get_buf
  - fcgi_release_buf
  - fcgi_release_mbuf
  - fcgi_streams_left
  - fcgi_used_streams
  - fcgi_avail_streams
  - fcgi_init
  - fcgi_conn_report_term_evt
  - fcgi_conn_get_next_sid
  - fcgi_conn_st_by_id
  - fcgi_release
  - fcgi_conn_read0_pending
  - fcgi_conn_is_dead
  - fcgi_strm_error
  - fcgi_strm_notify_recv
  - fcgi_strm_notify_send
  - fcgi_strm_alert
  - fcgi_set_record_size
  - fcgi_set_record_id
  - fcgi_strm_close
  - fcgi_strm_propagate_term_flags
  - fcgi_strm_destroy
  - fcgi_strm_new
  - fcgi_stconn_new
  - fcgi_strm_wake_one_stream
  - fcgi_wake_unassigned_streams
  - fcgi_wake_some_streams
  - fcgi_set_default_param
  - fcgi_encode_default_param
  - fcgi_conn_send_get_values
  - fcgi_conn_handle_values_result
  - fcgi_conn_send_aborts
  - fcgi_strm_send_begin_request
  - fcgi_strm_send_empty_record
  - fcgi_strm_send_empty_params
  - fcgi_strm_send_empty_stdin
  - fcgi_strm_send_abort
  - fcgi_strm_send_params
  - fcgi_strm_send_stdin
  - fcgi_strm_handle_stdout
  - fcgi_strm_handle_empty_stdout
  - fcgi_strm_handle_stderr
  - fcgi_strm_handle_end_request
  - fcgi_process_demux
  - fcgi_resume_each_sending_fstrm
  - fcgi_process_mux
  - fcgi_recv
  - fcgi_send
  - fcgi_io_cb
  - fcgi_process
  - fcgi_wake
  - fcgi_ctl
  - fcgi_sctl
  - fcgi_timeout_task
  - fcgi_show_error_snapshot
  - fcgi_strm_capture_bad_message
  - fcgi_strm_parse_headers
  - fcgi_strm_parse_data
  - fcgi_strm_parse_trailers
  - fcgi_strm_parse_response
  - fcgi_attach
  - fcgi_get_first_sc
  - fcgi_destroy
  - fcgi_detach
  - fcgi_do_shutr
  - fcgi_do_shutw
  - fcgi_deferred_shut
  - fcgi_shut
  - fcgi_subscribe
  - fcgi_unsubscribe
  - fcgi_rcv_buf
  - fcgi_snd_buf
  - fcgi_dump_fcgi_strm_info
  - fcgi_dump_fcgi_conn_info
  - fcgi_show_fd
  - fcgi_show_sd
  - fcgi_takeover
  source_file: /src/haproxy/src/mux_fcgi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FCGI_C_MBUF_CNT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '32'
    - item_type: preproc_def
      name: FCGI_RECORD_HEADER_SZ
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '8'
    - item_type: preproc_def
      name: FCGI_SP_CGI_GATEWAY
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: FCGI_SP_DOC_ROOT
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: FCGI_SP_SCRIPT_NAME
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: FCGI_SP_PATH_INFO
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: FCGI_SP_REQ_URI
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: FCGI_SP_REQ_METH
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: FCGI_SP_REQ_QS
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: FCGI_SP_SRV_PORT
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: FCGI_SP_SRV_PROTO
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: FCGI_SP_SRV_NAME
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: FCGI_SP_REM_ADDR
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: FCGI_SP_REM_PORT
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: FCGI_SP_SCRIPT_FILE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: FCGI_SP_PATH_TRANS
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: FCGI_SP_CONT_LEN
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: FCGI_SP_HTTPS
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: FCGI_SP_SRV_SOFT
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: FCGI_SP_MASK
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '0x0001FFFF'
    - item_type: preproc_def
      name: FCGI_SP_URI_MASK
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: (FCGI_SP_SCRIPT_NAME|FCGI_SP_PATH_INFO|FCGI_SP_REQ_QS)
    - item_type: preproc_def
      name: MAX_DATA_REALIGN
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/haproxy/src/mux_fcgi.c
      type_or_value: '&trace_fcgi'
    structs:
    - fields:
      - name: '*conn'
        type: struct connection
      - name: state
        type: enum fcgi_conn_st
      - name: max_id
        type: int16_t
      - name: streams_limit
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: dsi
        type: int16_t
      - name: drl
        type: uint16_t
      - name: drt
        type: uint8_t
      - name: drp
        type: uint8_t
      - name: dbuf
        type: struct buffer
      - name: mbuf[FCGI_C_MBUF_CNT]
        type: struct buffer
      - name: timeout
        type: int
      - name: shut_timeout
        type: int
      - name: nb_streams
        type: unsigned int
      - name: nb_sc
        type: unsigned int
      - name: nb_reserved
        type: unsigned int
      - name: stream_cnt
        type: unsigned int
      - name: term_evts_log
        type: uint32_t
      - name: '*proxy'
        type: struct proxy
      - name: '*app'
        type: struct fcgi_app
      - name: '*task'
        type: struct task
      - name: streams_by_id
        type: struct eb_root
      - name: send_list
        type: struct list
      - name: buf_wait
        type: struct buffer_wait
      - name: wait_event
        type: struct wait_event
      item_type: struct
      name: fcgi_conn
      pos:
        line_end: 81
        line_start: 47
        source_file: /src/haproxy/src/mux_fcgi.c
    - fields:
      - name: '*sd'
        type: struct sedesc
      - name: '*sess'
        type: struct session
      - name: '*fconn'
        type: struct fcgi_conn
      - name: id
        type: int32_t
      - name: flags
        type: uint32_t
      - name: state
        type: enum fcgi_strm_st
      - name: proto_status
        type: int
      - name: h1m
        type: struct h1m
      - name: rxbuf
        type: struct buffer
      - name: by_id
        type: struct eb32_node
      - name: '*subs'
        type: struct wait_event
      - name: send_list
        type: struct list
      - name: '*shut_tl'
        type: struct tasklet
      item_type: struct
      name: fcgi_strm
      pos:
        line_end: 104
        line_start: 85
        source_file: /src/haproxy/src/mux_fcgi.c
    - fields:
      - name: mask
        type: uint32_t
      - name: docroot
        type: struct ist
      - name: scriptname
        type: struct ist
      - name: pathinfo
        type: struct ist
      - name: meth
        type: struct ist
      - name: uri
        type: struct ist
      - name: vsn
        type: struct ist
      - name: qs
        type: struct ist
      - name: srv_name
        type: struct ist
      - name: srv_port
        type: struct ist
      - name: rem_addr
        type: struct ist
      - name: rem_port
        type: struct ist
      - name: cont_len
        type: struct ist
      - name: srv_soft
        type: struct ist
      - name: https
        type: int
      - name: '*p'
        type: struct buffer
      item_type: struct
      name: fcgi_strm_params
      pos:
        line_end: 145
        line_start: 128
        source_file: /src/haproxy/src/mux_fcgi.c
    typedefs: []
    union: []
- function_names:
  - ebim_lookup
  - ebim_insert
  source_file: /src/haproxy/src/ebimtree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cli_show_quic_format
  - cli_parse_show_quic
  - dump_quic_oneline
  - dump_quic_stream
  - dump_quic_full
  - cli_quic_get_list
  - cli_io_handler_dump_quic
  - cli_release_show_quic
  - cli_quic_init
  source_file: /src/haproxy/src/quic_cli.c
  types:
    enum:
    - enumerators:
      - name: QUIC_DUMP_FMT_DEFAULT
      - name: QUIC_DUMP_FMT_STREAM
      - name: QUIC_DUMP_FMT_CUST
      - name: QUIC_DUMP_FMT_ONELINE
      item_type: enum
      name: quic_dump_format
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/haproxy/src/quic_cli.c
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_DUMP_FLD_TP
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/src/quic_cli.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: QUIC_DUMP_FLD_SOCK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/src/quic_cli.c
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: QUIC_DUMP_FLD_PKTNS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/src/quic_cli.c
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: QUIC_DUMP_FLD_CC
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/src/quic_cli.c
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: QUIC_DUMP_FLD_MUX
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/src/quic_cli.c
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: QUIC_DUMP_FLD_MASK
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/src/quic_cli.c
      type_or_value: '0x001f'
    - item_type: preproc_def
      name: QC_CLI_FL_SHOW_ALL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/src/quic_cli.c
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: QC_CLI_FL_SHOW_CLO
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/src/quic_cli.c
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: QC_CLI_FL_SHOW_BE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/src/quic_cli.c
      type_or_value: '0x0004 '
    structs:
    - fields:
      - name: epoch
        type: unsigned int
      - name: '*list'
        type: struct list
      - name: bref
        type: struct bref
      - name: thr
        type: unsigned int
      - name: flags
        type: int
      - name: format
        type: enum quic_dump_format
      - name: '*ptr'
        type: void
      - name: fields
        type: int
      item_type: struct
      name: show_quic_ctx
      pos:
        line_end: 40
        line_start: 31
        source_file: /src/haproxy/src/quic_cli.c
    typedefs: []
    union: []
- function_names:
  - qc_stream_buf_free
  - qc_stream_desc_new
  - qc_stream_desc_release
  - qc_stream_buf_is_released
  - qc_stream_buf_store_ack
  - qc_stream_buf_ack
  - qc_stream_buf_consume
  - qc_stream_desc_ack
  - qc_stream_desc_free
  - qc_stream_buf_get
  - qc_stream_buf_alloc
  - qc_stream_buf_realloc
  - qc_stream_buf_release
  source_file: /src/haproxy/src/quic_stream.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CEB_FDECL3
  - CEB_FDECL2
  - CEB_FDECL2
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL2
  - CEB_FDECL2
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - TO_STR
  - _TO_STR
  - CEB_FDECL5
  source_file: /src/haproxy/src/_ceb_int.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dns_ring_init
  - dns_ring_new
  - dns_ring_free
  - dns_ring_write
  - dns_ring_attach
  - dns_ring_detach_appctx
  source_file: /src/haproxy/src/dns_ring.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ME_NEW_COMMON
  - ME_NEW_PX
  - ME_NEW_PX_SHARED
  - ME_NEW_FE
  - ME_NEW_FE_SHARED
  - ME_NEW_BE
  - ME_NEW_BE_SHARED
  - stcol_hide
  - me_generate_field
  - stats_fill_fe_line
  - stats_dump_fe_line
  - stats_fill_li_line
  - stats_dump_li_line
  - stats_fill_sv_computestate
  - stats_fill_sv_line
  - stats_dump_sv_line
  - stats_fill_be_computesrv
  - stats_fill_be_line
  - stats_dump_be_line
  - stats_dump_proxy_to_buffer
  - stats_dump_proxies
  - proxy_stats_clear_counters
  - list_for_each_entry
  source_file: /src/haproxy/src/stats-proxy.c
  types:
    enum:
    - enumerators:
      - name: SRV_STATS_STATE_DOWN
        value: '0'
      - name: SRV_STATS_STATE_DOWN_AGENT
      - name: SRV_STATS_STATE_GOING_UP
      - name: SRV_STATS_STATE_UP
      - name: SRV_STATS_STATE_UP_GOING_DOWN
      - name: SRV_STATS_STATE_NOLB_GOING_DOWN
      - name: SRV_STATS_STATE_NOLB
      - name: SRV_STATS_STATE_DRAIN_GOING_DOWN
      - name: SRV_STATS_STATE_DRAIN
      - name: SRV_STATS_STATE_DRAIN_AGENT
      - name: SRV_STATS_STATE_NO_CHECK
      - name: SRV_STATS_STATE_COUNT
      item_type: enum
      name: srv_stats_state
      pos:
        line_end: 728
        line_start: 714
        source_file: /src/haproxy/src/stats-proxy.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - evports_state_to_events
  - evports_resync_fd
  - _update_fd
  - _do_fixup_tgid_takeover
  - _do_poll
  - init_evports_per_thread
  - deinit_evports_per_thread
  - _do_init
  - _do_term
  - _do_test
  - _do_fork
  - _do_register
  source_file: /src/haproxy/src/ev_evports.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - new_dict
  - new_dict_entry
  - free_dict_entry
  - __dict_lookup
  - dict_insert
  - dict_entry_unref
  source_file: /src/haproxy/src/dict.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - shctx_row_reserve_hot
  - shctx_row_detach
  - shctx_row_reattach
  - shctx_row_data_append
  - shctx_row_data_get
  - shctx_init
  source_file: /src/haproxy/src/shctx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - qcs_http_rcv_buf
  - qcs_http_handle_standalone_fin
  - qcs_http_snd_buf
  - qcs_http_reset_buf
  source_file: /src/haproxy/src/qcm_http.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - uxst_bind_listener
  - uxst_enable_listener
  - uxst_disable_listener
  - uxst_suspend_receiver
  - uxst_connect_server
  source_file: /src/haproxy/src/proto_uxst.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/src/ceb32_tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CEB_KEY_TYPE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/ceb32_tree.c
      type_or_value: uint32_t
    - item_type: preproc_def
      name: CEB_KEY_MEMBER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/ceb32_tree.c
      type_or_value: u32
    - item_type: preproc_def
      name: CEB_MKEY_PFX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/src/ceb32_tree.c
      type_or_value: ceb32
    - item_type: preproc_def
      name: CEB_UKEY_PFX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/src/ceb32_tree.c
      type_or_value: cebu32
    structs: []
    typedefs: []
    union: []
- function_names:
  - ssl_sock_switchctx_set
  - ssl_sock_choose_sni_ctx
  - ssl_sock_switchctx_err_cbk
  - ssl_sock_switchctx_cbk
  - ssl_sock_switchctx_wolfSSL_cbk
  source_file: /src/haproxy/src/ssl_clienthello.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - qpack_get_prefix_int_size
  - qpack_encode_prefix_integer
  - qpack_encode_int_status
  - qpack_encode_method
  - qpack_encode_scheme
  - qpack_encode_path
  - qpack_encode_auth
  - qpack_encode_field_section_line
  - qpack_encode_header
  source_file: /src/haproxy/src/qpack-enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - b_getblk_ofs
  - b_getblk
  - b_getdelim
  - b_getline
  - b_slow_realign
  - b_slow_realign_ofs
  - b_putblk_ofs
  - __b_putblk
  - b_xfer
  - b_ncat
  - b_move
  - b_rep_blk
  - b_insert_blk
  - __b_put_varint
  - b_put_varint
  - b_get_varint
  - bl_deinit
  - bl_get
  source_file: /src/haproxy/src/buf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - acme_trace
  - get_acme_cfg
  - new_acme_cfg
  - ckch_conf_acme_init
  - httpclient_acme_init
  - cfg_parse_acme
  - cfg_parse_acme_kws
  - cfg_parse_acme_vars_provider
  - cfg_parse_acme_cfg_key
  - cfg_parse_global_acme_sched
  - cfg_postsection_acme
  - cfg_precheck_acme
  - cfg_postparser_acme
  - deinit_acme
  - acme_ctx_destroy
  - acme_httpclient_end
  - acme_add_challenge_map
  - acme_del_challenge_map
  - acme_del_acme_ctx_map
  - acme_http_req
  - acme_txt_record
  - acme_jws_payload
  - acme_jws_eab_payload
  - acme_update_certificate
  - acme_res_certificate
  - acme_res_chkorder
  - acme_req_finalize
  - acme_res_finalize
  - acme_req_challenge
  - acme_res_challenge
  - acme_post_as_get
  - acme_res_auth
  - acme_req_neworder
  - acme_res_neworder
  - acme_req_account
  - acme_res_account
  - acme_nonce
  - acme_directory
  - acme_process
  - acme_schedule_date
  - acme_will_expire
  - acme_scheduler
  - acme_x509_req
  - acme_gen_tmp_x509
  - acme_gen_tmp_pkey
  - acme_start_task
  - cli_acme_renew_parse
  - cli_acme_chall_ready_parse
  - cli_acme_status_io_handler
  - cli_acme_parse_status
  - __acme_init
  source_file: /src/haproxy/src/acme.c
  types:
    enum:
    - enumerators:
      - name: ACME_RET_OK
        value: '0'
      - name: ACME_RET_RETRY
        value: '1'
      - name: ACME_RET_FAIL
        value: '2'
      item_type: enum
      name: acme_ret
      pos:
        line_end: 167
        line_start: 163
        source_file: /src/haproxy/src/acme.c
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/src/acme.c
      type_or_value: '&trace_acme'
    structs: []
    typedefs: []
    union: []
- function_names:
  - __channel_forward
  - co_inject
  - ci_putchr
  - ci_putblk
  - co_getdelim
  - co_getword
  - co_getline
  - co_getchar
  - co_getblk
  - co_getblk_nc
  - co_getline_nc
  - ci_getblk_nc
  - ci_getline_nc
  - ci_insert
  - ci_insert_line2
  source_file: /src/haproxy/src/channel.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_loss_srtt_update
  - quic_loss_pktns
  - quic_pto_pktns
  - qc_packet_loss_lookup
  - qc_release_lost_pkts
  - list_for_each_entry_safe
  source_file: /src/haproxy/src/quic_loss.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - log_orig_to_str
  - log_orig_proxy
  - logformat_str_isdefault
  - logformat_str_free
  - logformat_str_dup
  - prepare_addrsource
  - parse_logformat_node_args
  - parse_logformat_alias
  - add_to_logformat_list
  - add_sample_to_logformat_list
  - lf_expr_compile
  - parse_logformat_string
  - _lf_expr_postcheck_node_opt
  - lf_expr_postcheck_node_opt
  - lf_expr_postcheck
  - postcheck_logformat_proxy
  - get_logger_smp_range
  - smp_log_ranges_overlap
  - smp_log_range_cmp
  - init_log_target
  - deinit_log_target
  - dup_log_target
  - _postcheck_log_backend_compat
  - postcheck_log_backend
  - resolve_logger
  - dup_logger
  - free_logger
  - parse_log_target
  - parse_logger
  - list_for_each_entry_safe
  - list_for_each_entry
  - get_log_format
  - get_log_level
  - get_log_facility
  - _encode_byte_hex
  - _lf_cbor_encode_byte
  - lf_buildctx_prepare
  - _lf_escape_byte
  - _lf_cbor_escape_byte
  - _lf_map_escape_byte
  - _lf_cbor_map_escape_byte
  - _lf_rfc5424_escape_byte
  - _lf_json_escape_byte
  - _lf_encode_bytes
  - lf_encode_string
  - lf_encode_chunk
  - _lf_text_len
  - _lf_quotetext_len
  - lf_text_len
  - lf_rawtext_len
  - lf_text
  - lf_rawtext
  - lf_ip
  - lf_bool_encode
  - lf_int_encode
  - lf_int
  - lf_port
  - __do_send_log
  - __do_send_log_backend
  - __send_log_set_metadata_sd
  - _process_send_log_final
  - _process_send_log_override
  - process_send_log
  - list_for_each_entry
  - __send_log
  - send_log
  - build_log_header
  - struct
  - LOG_CBOR_BYTE
  - LOGCHAR
  - LOG_VARTEXT_START
  - LOG_VARTEXT_END
  - LOG_STRARRAY_START
  - LOG_STRARRAY_NEXT
  - LOG_STRARRAY_END
  - init_log_buffers
  - deinit_log_buffers
  - deinit_log_forward
  - free_logformat_node
  - free_logformat_list
  - list_for_each_entry_safe
  - lf_expr_init
  - lf_expr_deinit
  - lf_expr_xfer
  - lf_expr_dup
  - generate_unique_id
  - sess_build_logline_orig
  - list_for_each_entry
  - do_log_ctx
  - do_log
  - strm_log
  - _sess_log
  - app_log
  - prepare_log_message
  - parse_log_message
  - syslog_process_message
  - syslog_fd_handler
  - syslog_io_handler
  - syslog_applet_append_event
  - cfg_parse_log_forward
  - log_profile_step_init
  - log_profile_step_deinit
  - log_profile_step_free
  - log_profile_step_postcheck
  - log_profile_postcheck
  - log_profile_free
  - deinit_log_profiles
  - log_profile_find_by_name
  - cfg_parse_log_profile
  - log_orig_register
  - deinit_log_origins
  - postresolve_logger_list
  - list_for_each_entry
  - postresolve_loggers
  - px_parse_log_steps
  - do_log_action
  - do_log_action_check
  - do_log_action_release
  - do_log_parse_act
  source_file: /src/haproxy/src/log.c
  types:
    enum:
    - enumerators:
      - name: LOG_FMT_ORIGIN
      - name: LOG_FMT_BACKENDIP
      - name: LOG_FMT_DATELOCAL
      - name: LOG_FMT_BACKEND
      - name: LOG_FMT_Th
      - name: LOG_FMT_TW
      - name: LOG_FMT_trg
      - name: LOG_FMT_TT
      - name: LOG_FMT_trl
      - name: LOG_FMT_CSERVER
      - name: LOG_FMT_RETRIES
      - name: LOG_FMT_HDRREQUESTLIST
      - name: LOG_FMT_SSL_VERSION
      - name: LOG_FMT_HTTP_PATH_ONLY
      - name: LOG_FMT_FECONN
      - name: LOG_FMT_HOSTNAME
      - name: LOG_FMT_DATEGMT
      - name: LOG_FMT_MS
      - name: LOG_FMT_DATE
      - name: LOG_FMT_TQ
      - name: LOG_FMT_Ta
      - name: LOG_FMT_tr
      - name: LOG_FMT_TD
      - name: LOG_FMT_CCLIENT
      - name: LOG_FMT_BECONN
      - name: LOG_FMT_BCKQUEUE
      - name: LOG_FMT_REQ
      - name: LOG_FMT_SRVCONN
      - name: LOG_FMT_BYTES_UP
      - name: LOG_FMT_HDRRESPONS
      - name: LOG_FMT_HTTP_PATH
      - name: LOG_FMT_GLOBAL
      - name: LOG_FMT_FRONTENDPORT
      - name: LOG_FMT_FRONTEND
      - name: LOG_FMT_PID
      - name: LOG_FMT_BYTES
      - name: LOG_FMT_Ti
      - name: LOG_FMT_Tr
      - name: LOG_FMT_TR
      - name: LOG_FMT_TU
      - name: LOG_FMT_STATUS
      - name: LOG_FMT_TERMSTATE
      - name: LOG_FMT_HTTP_VERSION
      - name: LOG_FMT_ACTCONN
      - name: LOG_FMT_SSL_CIPHER
      - name: LOG_FMT_SRVQUEUE
      - name: LOG_FMT_TC
      - name: LOG_FMT_HDRRESPONSLIST
      - name: LOG_FMT_CLIENTIP
      - name: LOG_FMT_CLIENTPORT
      - name: LOG_FMT_BACKENDPORT
      - name: LOG_FMT_FRONTENDIP
      - name: LOG_FMT_SERVERPORT
      - name: LOG_FMT_SERVERIP
      - name: LOG_FMT_TS
      - name: LOG_FMT_COUNTER
      - name: LOG_FMT_LOGCNT
      - name: LOG_FMT_FRONTEND_XPRT
      - name: LOG_FMT_HTTP_URI
      - name: LOG_FMT_HTTP_QUERY
      - name: LOG_FMT_HDRREQUEST
      - name: LOG_FMT_UNIQUEID
      - name: LOG_FMT_HTTP_METHOD
      - name: LOG_FMT_SERVER
      - name: LOG_FMT_TERMSTATE_CK
      item_type: enum
      name: logformat_alias_type
      pos:
        line_end: 253
        line_start: 187
        source_file: /src/haproxy/src/log.c
    - enumerators:
      - name: LF_INT_LTOA
        value: '0'
      - name: LF_INT_UTOA_PAD_4
      - name: LF_INT_ULTOA
      - name: LF_INT_LLTOA
      item_type: enum
      name: lf_int_hdl
      pos:
        line_end: 2670
        line_start: 2665
        source_file: /src/haproxy/src/log.c
    preproc_defs:
    - item_type: preproc_def
      name: if
      pos:
        line_end: 3615
        line_start: 3609
        source_file: /src/haproxy/src/log.c
      type_or_value: "(ctx->options & LOG_OPT_ENCODE)             \\\n\t\t\t\tbreak;
        \                                \\\n\t\t\tLOGCHAR(chr);                                  \\\n\t\t}
        while (0)"
    structs:
    - fields:
      - name: '*name'
        type: char
      item_type: struct
      name: log_fmt_st
      pos:
        line_end: 62
        line_start: 60
        source_file: /src/haproxy/src/log.c
    - fields:
      - name: '*name'
        type: char
      - name: mask
        type: int
      item_type: struct
      name: logformat_node_args
      pos:
        line_end: 421
        line_start: 418
        source_file: /src/haproxy/src/log.c
    - fields:
      - name: options
        type: int
      - name: typecast
        type: int
      - name: in_text
        type: int
      - name: encode
        type: "union {\n\t\tstruct cbor_encode_ctx cbor; /* cbor-encode specific ctx
          */\n\t}"
      item_type: struct
      name: lf_buildctx
      pos:
        line_end: 2026
        line_start: 2019
        source_file: /src/haproxy/src/log.c
    - fields:
      - name: '*sess'
        type: struct session
      - name: '*stream'
        type: struct stream
      - name: '*profile'
        type: struct log_profile
      - name: origin
        type: struct log_orig
      item_type: struct
      name: process_send_log_ctx
      pos:
        line_end: 2946
        line_start: 2941
        source_file: /src/haproxy/src/log.c
    typedefs: []
    union: []
- function_names:
  - lshift_args
  - str2listener
  - str2receiver
  - warnifnotcap
  - failifnotcap
  - too_many_args_idx
  - too_many_args
  - alertif_too_many_args_idx
  - alertif_too_many_args
  - warnif_cond_conflicts
  - warnif_tcp_http_cond
  - cfg_find_best_match
  - list_for_each_entry
  - parse_process_number
  - cfg_parse_mailers
  - cfg_parse_netns
  - cfg_parse_users
  - cfg_parse_users_group
  - cfg_parse_users_user
  - cfg_parse_scope
  - cfg_parse_track_sc_num
  - check_section_position
  - cfg_apply_default_path
  - cfg_parse_global_def_path
  - list_append_cfgfile
  - load_cfg_in_mem
  - parse_cfg
  - check_config_validity
  - cfg_register_keywords
  - cfg_unregister_keywords
  - cfg_register_section
  - cfg_register_postparser
  - cfg_unregister_sections
  - cfg_backup_sections
  - cfg_restore_sections
  - list_for_each_entry_safe
  - cfg_dump_registered_keywords
  source_file: /src/haproxy/src/cfgparse.c
  types:
    enum:
    - enumerators:
      - name: DEFAULT_PATH_CURRENT
        value: '0'
      - name: DEFAULT_PATH_ORIGIN
      - name: DEFAULT_PATH_PARENT
      - name: DEFAULT_PATH_CONFIG
      item_type: enum
      name: default_path_mode
      pos:
        line_end: 127
        line_start: 122
        source_file: /src/haproxy/src/cfgparse.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_cc_rs_init
  - quic_cc_drs_init
  - quic_cc_drs_on_pkt_sent
  - quic_cc_drs_is_newest_packet
  - quic_cc_drs_update_rate_sample
  - quic_cc_drs_on_ack_recv
  source_file: /src/haproxy/src/quic_cc_drs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_echkeys
  - cli_find_ech_specific_ctx
  - cli_parse_show_ech
  - cli_print_ech_info
  - cli_io_handler_ech_details
  - cli_parse_add_ech
  - cli_parse_set_ech
  - cli_parse_del_ech
  - cli_release_ech
  - conn_get_ech_status
  - s
  - conn_get_ech_outer_sni
  - bind_parse_ech
  source_file: /src/haproxy/src/ech.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ECH_SUCCESS_MSG_MAX
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/haproxy/src/ech.c
      type_or_value: '256'
    structs:
    - fields:
      - name: '*pp'
        type: struct proxy
      - name: '*b'
        type: struct bind_conf
      - name: '*specific_ctx'
        type: SSL_CTX
      - name: '*specific_name'
        type: char
      - name: state
        type: "enum {\n\t\tSHOW_ECH_ALL = 0,\n\t\tSHOW_ECH_SPECIFIC,\n\t}"
      item_type: struct
      name: show_ech_ctx
      pos:
        line_end: 28
        line_start: 19
        source_file: /src/haproxy/src/ech.c
    typedefs: []
    union: []
- function_names:
  - type_to_smp
  - smp_expr_output_type
  - sample_src_names
  - sample_ckp_names
  - sample_register_fetches
  - sample_register_convs
  - find_sample_fetch
  - smp_dump_fetch_kw
  - smp_dump_conv_kw
  - sample_fetch_getnext
  - sample_conv_getnext
  - find_sample_conv
  - c_ip2int
  - c_ip2str
  - c_ip2ipv6
  - c_ipv62ip
  - c_ipv62str
  - c_int2ip
  - c_int2ipv6
  - c_str2addr
  - c_str2ip
  - c_str2ipv6
  - c_bin2str
  - c_int2str
  - smp_dup
  - c_none
  - c_pseudo
  - c_str2int
  - c_str2meth
  - c_meth2str
  - c_addr2bin
  - c_int2bin
  - c_bool2bin
  - sample_parse_expr_cnv
  - sample_parse_expr
  - sample_process_cnv
  - sample_process
  - smp_resolve_args
  - sample_fetch_as_type
  - release_sample_arg
  - release_sample_expr
  - sample_conv_debug
  - smp_check_debug
  - sample_conv_base642bin
  - sample_conv_base64url2bin
  - sample_conv_bin2base64
  - sample_conv_bin2base64url
  - sample_conv_var2smp
  - sample_conv_sha1
  - sample_conv_var2smp_str
  - sample_conv_2dec_check
  - sample_conv_2dec
  - sample_conv_be2dec
  - sample_conv_le2dec
  - sample_conv_be2hex_check
  - sample_conv_be2hex
  - sample_conv_bin2hex
  - sample_conv_bin2base2
  - sample_conv_hex2int
  - sample_conv_djb2
  - sample_conv_length
  - sample_conv_str2lower
  - sample_conv_str2upper
  - sample_conv_reverse
  - sample_conv_reverse_dom
  - sample_conv_ipmask
  - lookup_convspec_N
  - conv_time_common
  - sample_conv_us_ltime
  - sample_conv_ms_ltime
  - sample_conv_ltime
  - sample_conv_sdbm
  - sample_conv_us_utime
  - sample_conv_ms_utime
  - sample_conv_utime
  - sample_conv_wt6
  - sample_conv_xxh32
  - sample_conv_xxh64
  - sample_conv_xxh3
  - sample_conv_crc32
  - sample_conv_crc32c
  - sample_conv_json_check
  - sample_conv_json
  - sample_conv_bytes
  - sample_conv_field_check
  - sample_conv_field
  - sample_conv_word
  - sample_conv_param_check
  - sample_conv_param
  - sample_conv_regsub_check
  - sample_conv_regsub
  - check_operator
  - sample_conv_var2smp_sint
  - sample_conv_binary_cpl
  - sample_conv_binary_and
  - sample_conv_binary_or
  - sample_conv_binary_xor
  - arith_add
  - sample_conv_arith_add
  - sample_conv_arith_sub
  - sample_conv_arith_mul
  - sample_conv_arith_div
  - sample_conv_arith_mod
  - sample_conv_arith_neg
  - sample_conv_arith_bool
  - sample_conv_arith_not
  - sample_conv_arith_odd
  - sample_conv_arith_even
  - sample_conv_concat
  - smp_check_concat
  - sample_conv_add_item
  - smp_check_add_item
  - sample_conv_strcmp
  - sample_conv_host_only
  - sample_conv_port_only
  - sample_conv_iif
  - sample_conv_when
  - check_when_cond
  - sample_conv_ungrpc
  - sample_conv_protobuf
  - sample_conv_protobuf_check
  - sample_conv_fix_tag_value
  - sample_conv_fix_value_check
  - sample_conv_fix_is_valid
  - sample_conv_mqtt_field_value
  - sample_conv_mqtt_field_value_check
  - sample_conv_mqtt_is_valid
  - smp_check_strcmp
  - sample_conv_htonl
  - sample_conv_cut_crlf
  - sample_conv_ltrim
  - sample_conv_rtrim
  - sample_check_json_query
  - sample_conv_json_query
  - sample_conv_jwt_verify_check
  - sample_conv_jwt_verify_cert_check
  - sample_conv_jwt_verify
  - sample_conv_jwt_verify_cert
  - sample_conv_jwt_member_query
  - sample_conv_jwt_query_check
  - sample_conv_jwt_header_query
  - sample_conv_jwt_payload_query
  - smp_fetch_actconn
  - smp_fetch_true
  - smp_fetch_false
  - smp_fetch_env
  - smp_check_date_unit
  - smp_fetch_date
  - smp_fetch_date_us
  - smp_fetch_hostname
  - smp_fetch_nbproc
  - smp_fetch_pid
  - smp_fetch_proc
  - smp_fetch_thread
  - smp_fetch_tgroup
  - smp_fetch_cpu_usage_thr
  - smp_fetch_cpu_usage_grp
  - smp_fetch_cpu_usage_proc
  - smp_fetch_rand
  - smp_fetch_stopping
  - smp_fetch_cpu_calls
  - smp_fetch_cpu_ns_avg
  - smp_fetch_cpu_ns_tot
  - smp_fetch_lat_ns_avg
  - smp_fetch_lat_ns_tot
  - smp_fetch_const_str
  - smp_check_const_bool
  - smp_fetch_const_bool
  - smp_fetch_const_int
  - smp_fetch_const_ipv4
  - smp_fetch_const_ipv6
  - smp_check_const_bin
  - smp_fetch_const_bin
  - smp_check_const_meth
  - smp_fetch_const_meth
  - smp_check_uuid
  - smp_fetch_uuid
  - smp_fetch_uptime
  - smp_fetch_quic_enabled
  - smp_fetch_reX_timers
  - smp_fetch_txn_timers
  - smp_fetch_conn_queues
  - smp_fetch_conn_timers
  - smp_fetch_bytes
  - sample_conv_bytes_check
  source_file: /src/haproxy/src/sample.c
  types:
    enum:
    - enumerators:
      - name: IT_ASCII
        value: '0'
      - name: IT_UTF8
      - name: IT_UTF8S
      - name: IT_UTF8P
      - name: IT_UTF8PS
      item_type: enum
      name: input_type
      pos:
        line_end: 2814
        line_start: 2808
        source_file: /src/haproxy/src/sample.c
    preproc_defs:
    - item_type: preproc_def
      name: GRPC_MSG_COMPRESS_FLAG_SZ
      pos:
        line_end: 4230
        line_start: 4229
        source_file: /src/haproxy/src/sample.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: GRPC_MSG_LENGTH_SZ
      pos:
        line_end: 4231
        line_start: 4230
        source_file: /src/haproxy/src/sample.c
      type_or_value: '4 '
    - item_type: preproc_def
      name: GRPC_MSG_HEADER_SZ
      pos:
        line_end: 4232
        line_start: 4231
        source_file: /src/haproxy/src/sample.c
      type_or_value: (GRPC_MSG_COMPRESS_FLAG_SZ + GRPC_MSG_LENGTH_SZ)
    - item_type: preproc_def
      name: JSON_INT_MAX
      pos:
        line_end: 4599
        line_start: 4598
        source_file: /src/haproxy/src/sample.c
      type_or_value: ((1LL << 53) - 1)
    - item_type: preproc_def
      name: JSON_INT_MIN
      pos:
        line_end: 4600
        line_start: 4599
        source_file: /src/haproxy/src/sample.c
      type_or_value: (-JSON_INT_MAX)
    structs: []
    typedefs: []
    union: []
- function_names:
  - resume_filter_list_start
  - resume_filter_list_next
  - resume_filter_list_break
  - flt_register_keywords
  - flt_find_kw
  - flt_dump_kws
  - list_filters
  - parse_filter
  - parse_filter_sequence
  - compile_filter_sequence_elt
  - postcheck_filter_sequence
  - flt_init
  - flt_init_per_thread
  - flt_init_all
  - flt_init_all_per_thread
  - flt_check
  - flt_deinit
  - flt_deinit_per_thread
  - flt_deinit_all_per_thread
  - flt_stream_add_filter
  - flt_stream_organize_filters
  - flt_stream_init
  - flt_stream_release
  - flt_stream_start
  - flt_stream_stop
  - flt_stream_check_timeouts
  - flt_set_stream_backend
  - flt_http_end
  - flt_http_reset
  - flt_http_reply
  - flt_http_payload
  - flt_start_analyze
  - FLT_OFF
  - flt_pre_analyze
  - flt_post_analyze
  - flt_analyze_http_headers
  - flt_end_analyze
  - FLT_OFF
  - flt_tcp_payload
  - flt_xfer_data
  - handle_analyzer_result
  source_file: /src/haproxy/src/filters.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/src/filters.c
      type_or_value: '&trace_strm'
    structs: []
    typedefs: []
    union: []
- function_names:
  - map_parse_ip
  - map_parse_str
  - map_parse_int
  - map_create_descriptor
  - sample_load_map
  - sample_conv_map_key
  - sample_conv_map
  - pat_list_get_next
  - pat_ref_lookup_ref
  - pat_expr_get_next
  - cli_io_handler_pat_list
  - cli_io_handler_pats_list
  - cli_io_handler_map_lookup
  - cli_release_mlook
  - cli_parse_get_map
  - cli_parse_prepare_map
  - cli_release_show_map
  - cli_parse_show_map
  - cli_parse_set_map
  - cli_parse_add_map
  - cli_parse_del_map
  - cli_io_handler_clear_map
  - cli_parse_clear_map
  - cli_parse_commit_map
  source_file: /src/haproxy/src/map.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ref'
        type: struct pat_ref
      - name: bref
        type: struct bref
      - name: '*expr'
        type: struct pattern_expr
      - name: chunk
        type: struct buffer
      - name: display_flags
        type: unsigned int
      - name: curr_gen
        type: unsigned int
      - name: prev_gen
        type: unsigned int
      - name: '*gen'
        type: struct pat_ref_gen
      - name: state
        type: "enum {\n\t\tSTATE_INIT = 0, /* initialize list and backrefs */\n\t\tSTATE_LIST,
          \    /* list entries */\n\t\tSTATE_DONE,     /* finished */\n\t}"
      item_type: struct
      name: show_map_ctx
      pos:
        line_end: 371
        line_start: 357
        source_file: /src/haproxy/src/map.c
    typedefs: []
    union: []
- function_names:
  - mqtt_read_fixed_hdr
  - mqtt_read_1byte_int
  - mqtt_read_2byte_int
  - mqtt_read_4byte_int
  - mqtt_read_varint
  - mqtt_read_string
  - mqtt_uint2str
  - mqtt_field_value
  - mqtt_parse_connect
  - mqtt_parse_connack
  - mqtt_validate_message
  source_file: /src/haproxy/src/mqtt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - h2_prepare_htx_reqline
  - h2_make_htx_request
  - h2_prepare_htx_stsline
  - h2_make_htx_response
  - h2_make_htx_trailers
  source_file: /src/haproxy/src/h2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sock_abns_addrcmp
  - sock_abnsz_addrcmp
  - sock_unix_addrcmp
  - sock_unix_bind_receiver
  source_file: /src/haproxy/src/sock_unix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - update_freq_ctr_period_slow
  - _freq_ctr_total_from_values
  - freq_ctr_total
  - freq_ctr_total_estimate
  - freq_ctr_overshoot_period
  source_file: /src/haproxy/src/freq_ctr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mworker_kill
  - mworker_kill_max_reloads
  - mworker_current_child
  - mworker_child_nb
  - mworker_proc_list_to_env
  - mworker_proc_new
  - mworker_env_to_proc_list
  - mworker_block_signals
  - mworker_unblock_sigchld
  - mworker_unblock_signals
  - mworker_broadcast_signal
  - mworker_reexec
  - mworker_reload
  - mworker_catch_sighup
  - mworker_catch_sigterm
  - mworker_task_child_failure
  - mworker_on_new_child_failure
  - mworker_catch_sigchld
  - mworker_accept_wrapper
  - mworker_sockpair_register_per_thread
  - mworker_cleanlisteners
  - mworker_cleanup_proc
  - cli_append_worker_row
  - cli_io_handler_show_proc
  - cli_parse_show_proc
  - cli_parse_reload
  - cli_io_handler_show_loadstatus
  - mworker_parse_global_max_reloads
  - mworker_free_child
  - mworker_create_master_cli
  - mworker_prepare_master
  - mworker_loop
  - mworker_run_master
  - mworker_apply_master_worker_mode
  source_file: /src/haproxy/src/mworker.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: debug
        type: int
      - name: resume_reload
        type: int
      item_type: struct
      name: cli_showproc_ctx
      pos:
        line_end: 831
        line_start: 828
        source_file: /src/haproxy/src/mworker.c
    typedefs: []
    union: []
- function_names:
  - enqueue24
  - flush_bits
  - enqueue24
  - enqueue8
  - flush_bits
  - copy_8b
  - copy_16b
  - copy_32b
  - send_huff
  - send_eob
  - copy_lit
  - copy_lit_huff
  - slz_hash
  - memmatch
  - reset_refs
  - slz_rfc1951_encode
  - slz_rfc1951_init
  - slz_rfc1951_flush
  - slz_rfc1951_finish
  - crc32_char
  - crc32_uint32
  - slz_crc32_by1
  - slz_crc32_by4
  - update_crc
  - slz_rfc1952_send_header
  - slz_rfc1952_encode
  - slz_rfc1952_init
  - slz_rfc1952_flush
  - slz_rfc1952_finish
  - slz_adler32_by1
  - slz_adler32_block
  - slz_rfc1950_send_header
  - slz_rfc1950_encode
  - slz_rfc1950_init
  - slz_rfc1950_flush
  - slz_rfc1950_finish
  - __slz_initialize
  source_file: /src/haproxy/src/slz.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: enqueue8
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/haproxy/src/slz.c
      type_or_value: enqueue24
    structs: []
    typedefs: []
    union:
    - fields:
      - name: by32
        type: "struct {\n\t\tuint32_t pos;\n\t\tuint32_t word;\n\t}"
      - name: by64
        type: uint64_t
      item_type: union
      name: ref
      pos:
        line_end: 160
        line_start: 154
        source_file: /src/haproxy/src/slz.c
- function_names:
  - fix_check_id
  - fix_validate_message
  - fix_tag_value
  source_file: /src/haproxy/src/fix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ssl_sock_sni_is_valid
  - ssl_sock_add_san_ext
  - ssl_sock_do_create_cert
  - ssl_sock_assign_generated_cert
  - ssl_sock_get_generated_cert
  - ssl_sock_set_generated_cert
  - ssl_sock_generated_cert_key
  - ssl_sock_generate_certificate
  - ssl_sock_generate_certificate_from_conn
  - ssl_sock_gencert_load_ca
  - ssl_sock_gencert_free_ca
  - __ssl_gencert_deinit
  - ssl_gen_EVP_PKEY
  - ssl_gen_x509
  source_file: /src/haproxy/src/ssl_gencert.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X509V3_EXT_SIZE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/src/ssl_gencert.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - round_ptr_size
  - stktable_store_name
  - stktable_find_by_name
  - __stksess_free
  - stksess_free
  - __stksess_kill
  - stksess_kill
  - stksess_setkey
  - stksess_getkey
  - stktable_get_key_shard
  - stksess_setkey_shard
  - __stksess_init
  - stktable_trash_oldest
  - stksess_new
  - __stktable_lookup_key
  - stktable_lookup_key
  - stktable_lookup_ptr
  - __stktable_lookup
  - stktable_lookup
  - stktable_touch_with_exp
  - stktable_touch_remote
  - stktable_touch_local
  - stktable_release
  - __stktable_store
  - stktable_requeue_exp
  - stktable_get_entry
  - stktable_add_pend_updates
  - stktable_set_entry
  - process_tables_expire
  - stktable_init
  - stktable_deinit
  - stktable_parse_type
  - stktable_alloc_data_type
  - parse_stick_table
  - smp_to_stkey
  - stkey_to_smp
  - stktable_fetch_key
  - stktable_compatible_sample
  - stktable_register_data_store
  - stktable_get_data_type
  - stktable_get_data_type_idx
  - smp_fetch_stksess
  - sample_conv_in_table
  - sample_conv_table_bytes_in_rate
  - sample_conv_table_bytes_out_rate
  - sample_conv_table_clr_gpc
  - sample_conv_table_clr_gpc0
  - sample_conv_table_clr_gpc1
  - sample_conv_table_conn_cnt
  - sample_conv_table_conn_cur
  - sample_conv_table_conn_rate
  - sample_conv_table_expire
  - sample_conv_table_idle
  - sample_conv_table_inc_gpc
  - sample_conv_table_inc_gpc0
  - sample_conv_table_inc_gpc1
  - sample_conv_table_glitch_cnt
  - sample_conv_table_glitch_rate
  - sample_conv_table_gpt
  - sample_conv_table_gpt0
  - sample_conv_table_gpc
  - sample_conv_table_gpc_rate
  - sample_conv_table_gpc0
  - sample_conv_table_gpc0_rate
  - sample_conv_table_gpc1
  - sample_conv_table_gpc1_rate
  - sample_conv_table_http_err_cnt
  - sample_conv_table_http_err_rate
  - sample_conv_table_http_fail_cnt
  - sample_conv_table_http_fail_rate
  - sample_conv_table_http_req_cnt
  - sample_conv_table_http_req_rate
  - sample_conv_table_kbytes_in
  - sample_conv_table_kbytes_out
  - sample_conv_table_server_id
  - sample_conv_table_sess_cnt
  - sample_conv_table_sess_rate
  - sample_conv_table_trackers
  - action_inc_gpc
  - action_inc_gpc0
  - action_inc_gpc1
  - parse_inc_gpc
  - action_set_gpt
  - action_set_gpt0
  - parse_set_gpt
  - action_add_gpc
  - parse_add_gpc
  - smp_fetch_table_cnt
  - smp_fetch_table_avl
  - smp_fetch_sc_stkctr
  - smp_fetch_src_stkctr
  - smp_fetch_sc_tracked
  - smp_fetch_get_gpt
  - smp_fetch_sc_get_gpt
  - smp_fetch_get_gpt0
  - smp_fetch_sc_get_gpt0
  - smp_fetch_get_gpc
  - smp_fetch_sc_get_gpc
  - smp_fetch_get_gpc0
  - smp_fetch_sc_get_gpc0
  - smp_fetch_get_gpc1
  - smp_fetch_sc_get_gpc1
  - smp_fetch_gpc_rate
  - smp_fetch_sc_gpc_rate
  - smp_fetch_gpc0_rate
  - smp_fetch_sc_gpc0_rate
  - smp_fetch_gpc1_rate
  - smp_fetch_sc_gpc1_rate
  - smp_fetch_inc_gpc
  - smp_fetch_sc_inc_gpc
  - smp_fetch_inc_gpc0
  - smp_fetch_sc_inc_gpc0
  - smp_fetch_inc_gpc1
  - smp_fetch_sc_inc_gpc1
  - smp_fetch_clr_gpc
  - stktable_data_cast
  - smp_fetch_sc_clr_gpc
  - smp_fetch_clr_gpc0
  - stktable_data_cast
  - smp_fetch_sc_clr_gpc0
  - smp_fetch_clr_gpc1
  - stktable_data_cast
  - smp_fetch_sc_clr_gpc1
  - smp_fetch_conn_cnt
  - smp_fetch_sc_conn_cnt
  - smp_fetch_conn_rate
  - smp_fetch_sc_conn_rate
  - smp_fetch_updt_conn_cnt
  - smp_fetch_src_updt_conn_cnt
  - smp_fetch_conn_cur
  - smp_fetch_sc_conn_cur
  - smp_fetch_glitch_cnt
  - smp_fetch_sc_glitch_cnt
  - smp_fetch_glitch_rate
  - smp_fetch_sc_glitch_rate
  - smp_fetch_sess_cnt
  - smp_fetch_sc_sess_cnt
  - smp_fetch_sess_rate
  - smp_fetch_sc_sess_rate
  - smp_fetch_http_req_cnt
  - smp_fetch_sc_http_req_cnt
  - smp_fetch_http_req_rate
  - smp_fetch_sc_http_req_rate
  - smp_fetch_http_err_cnt
  - smp_fetch_sc_http_err_cnt
  - smp_fetch_http_err_rate
  - smp_fetch_sc_http_err_rate
  - smp_fetch_http_fail_cnt
  - smp_fetch_sc_http_fail_cnt
  - smp_fetch_http_fail_rate
  - smp_fetch_sc_http_fail_rate
  - smp_fetch_kbytes_in
  - smp_fetch_sc_kbytes_in
  - smp_fetch_bytes_in_rate
  - smp_fetch_sc_bytes_in_rate
  - smp_fetch_kbytes_out
  - smp_fetch_sc_kbytes_out
  - smp_fetch_sc_key
  - smp_fetch_bytes_out_rate
  - smp_fetch_sc_bytes_out_rate
  - smp_fetch_sc_trackers
  - table_dump_head_to_buffer
  - table_dump_entry_to_buffer
  - table_process_entry
  - table_process_entry_per_key
  - table_process_entry_per_ptr
  - table_prepare_data_request
  - cli_parse_table_req
  - cli_io_handler_table
  - cli_release_show_table
  - stk_parse_stick_counters
  - stkt_create_stk_ctr_pool
  - stkt_late_init
  - stk_promex_metric_info
  - stk_promex_start_ts
  - stk_promex_next_ts
  - stk_promex_fill_ts
  source_file: /src/haproxy/src/stick_table.c
  types:
    enum:
    - enumerators:
      - name: STICKTABLE_SIZE
        value: '0'
      - name: STICKTABLE_TOTAL_FIELDS
      - name: STICKTABLE_LOCAL_UPDATES
      - name: STICKTABLE_USED
      item_type: enum
      name: sticktable_field
      pos:
        line_end: 58
        line_start: 52
        source_file: /src/haproxy/src/stick_table.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*target'
        type: void
      - name: '*t'
        type: struct stktable
      - name: '*entry'
        type: struct stksess
      - name: tree_head
        type: int
      - name: value[STKTABLE_FILTER_LEN]
        type: long long
      - name: data_type[STKTABLE_FILTER_LEN]
        type: signed char
      - name: data_op[STKTABLE_FILTER_LEN]
        type: signed char
      - name: data_idx[STKTABLE_FILTER_LEN]
        type: unsigned int
      - name: state
        type: "enum {\n\t\tSTATE_NEXT = 0,                     /* px points to next
          table, entry=NULL */\n\t\tSTATE_DUMP,                         /* px points
          to curr table, entry is valid, refcount held */\n\t\tSTATE_DONE,                         /*
          done dumping */\n\t}"
      - name: action
        type: char
      item_type: struct
      name: show_table_ctx
      pos:
        line_end: 5428
        line_start: 5413
        source_file: /src/haproxy/src/stick_table.c
    typedefs: []
    union:
    - fields:
      - name: u32
        type: uint32_t
      - name: s64
        type: int64_t
      item_type: union
      name: conv
      pos:
        line_end: 1706
        line_start: 1703
        source_file: /src/haproxy/src/stick_table.c
- function_names:
  - pool_pbucket
  - pool_tbucket
  - trim_all_pools
  - detect_allocator
  - malloc_trim
  - mem_should_fail
  - create_pool_with_loc
  - create_pool_from_reg
  - pool_get_from_os_noinc
  - pool_put_to_os_nodec
  - pool_alloc_nocache
  - pool_free_nocache
  - pool_copy_pattern
  - pool_fill_pattern
  - pool_check_pattern
  - pool_evict_last_items
  - pool_evict_from_local_cache
  - pool_evict_from_local_caches
  - pool_put_to_cache
  - pool_refill_local_from_shared
  - pool_put_to_shared_cache
  - pool_flush
  - pool_gc
  - __pool_alloc
  - __pool_free
  - pool_destroy
  - pool_destroy_all
  - pool_inspect_item
  - cmp_dump_pools_name
  - cmp_dump_pools_size
  - cmp_dump_pools_usage
  - get_show_pools_info
  - dump_pools_info
  - pool_total_failures
  - pool_total_allocated
  - pool_total_used
  - pool_parse_debugging
  - cli_parse_show_pools
  - cli_release_show_pools
  - cli_io_handler_dump_pools
  - create_pool_callback
  - init_pools
  - pools_register_build_options
  - mem_parse_global_fail_alloc
  - mem_parse_global_hot_size
  - mem_parse_global_no_mem_trim
  source_file: /src/haproxy/src/pool.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: flg
        type: uint
      - name: '*set'
        type: char
      - name: '*clr'
        type: char
      - name: '*hlp'
        type: char
      item_type: struct
      name: "dbg_options[] = {\n\t/* flg,                 set,          clr,            hlp
        */\n\t{ POOL_DBG_FAIL_ALLOC, \"fail\",       \"no-fail\",      \"randomly
        fail allocations\" },\n\t{ POOL_DBG_DONT_MERGE, \"no-merge\",   \"merge\",
        \       \"disable merging of similar pools\" },\n\t{ POOL_DBG_COLD_FIRST,
        \"cold-first\", \"hot-first\",    \"pick cold objects first\" },\n\t{ POOL_DBG_INTEGRITY,
        \ \"integrity\",  \"no-integrity\", \"enable cache integrity checks\" },\n\t{
        POOL_DBG_NO_GLOBAL,  \"no-global\",  \"global\",       \"disable global shared
        cache\" },\n\t{ POOL_DBG_NO_CACHE,   \"no-cache\",   \"cache\",        \"disable
        thread-local cache\" },\n\t{ POOL_DBG_CALLER,     \"caller\",     \"no-caller\",
        \   \"save caller information in cache\" },\n\t{ POOL_DBG_TAG,        \"tag\",
        \       \"no-tag\",       \"add tag at end of allocated objects\" },\n\t{
        POOL_DBG_POISON,     \"poison\",     \"no-poison\",    \"poison newly allocated
        objects\" },\n\t{ POOL_DBG_UAF,        \"uaf\",        \"no-uaf\",       \"enable
        use-after-free checks (slow)\" },\n\t{ POOL_DBG_BACKUP,     \"backup\",     \"no-backup\",
        \   \"compare object contents on re-alloc\" },\n\t{ 0 /* end */ }\n}"
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/haproxy/src/pool.c
    - fields:
      - name: '*entry'
        type: struct pool_head
      - name: alloc_items
        type: ulong
      - name: alloc_bytes
        type: ulong
      - name: used_items
        type: ulong
      - name: cached_items
        type: ulong
      - name: need_avg
        type: ulong
      - name: failed_items
        type: ulong
      item_type: struct
      name: pool_dump_info
      pos:
        line_end: 100
        line_start: 92
        source_file: /src/haproxy/src/pool.c
    - fields:
      - name: '*prefix'
        type: char
      - name: how
        type: int
      - name: maxcnt
        type: int
      - name: pool_idx
        type: int
      - name: nbpools
        type: unsigned int
      - name: allocated
        type: unsigned long long
      - name: used
        type: unsigned long long
      - name: cached_bytes
        type: unsigned long long
      - name: '*pool_info'
        type: struct pool_dump_info
      item_type: struct
      name: show_pools_ctx
      pos:
        line_end: 113
        line_start: 103
        source_file: /src/haproxy/src/pool.c
    typedefs: []
    union: []
- function_names:
  - CEB_FDECL4
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  - CEB_FDECL4
  source_file: /src/haproxy/src/_ceb_blk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xprt_handshake_from_buf
  - xprt_handshake_to_buf
  - xprt_handshake_io_cb
  - xprt_handshake_start
  - xprt_handshake_init
  - xprt_handshake_close
  - xprt_handshake_subscribe
  - xprt_handshake_unsubscribe
  - xprt_handshake_add_xprt
  - xprt_handshake_remove_xprt
  - __xprt_handshake_init
  source_file: /src/haproxy/src/xprt_handshake.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*conn'
        type: struct connection
      - name: '*subs'
        type: struct wait_event
      - name: wait_event
        type: struct wait_event
      - name: '*xprt'
        type: struct xprt_ops
      - name: '*xprt_ctx'
        type: void
      item_type: struct
      name: xprt_handshake_ctx
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/haproxy/src/xprt_handshake.c
    typedefs: []
    union: []
- function_names:
  - quic_peer_validated_addr
  - qc_kill_conn
  - qc_set_timer
  - quic_set_connection_close
  - quic_set_tls_alert
  - qc_register_alpn
  - quic_reuse_srv_params
  - qc_check_close_on_released_mux
  - qc_conn_finalize
  - quic_conn_closed_err_count_inc
  - qc_detach_th_ctx_list
  - quic_stateless_reset_token_cpy
  - quic_build_post_handshake_frames
  - quic_conn_app_io_cb
  - quic_release_cc_conn
  - quic_conn_closed_io_cb
  - quic_conn_closed_idle_timer_task
  - qc_new_cc_conn
  - quic_conn_io_cb
  - qc_process_timer
  - qc_new_conn
  - qc_handle_conn_migration
  - quic_conn_prx_cntrs_update
  - quic_conn_release
  - quic_conn_init_timer
  - qc_idle_timer_do_rearm
  - qc_idle_timer_rearm
  - qc_idle_timer_task
  - quic_conn_init_idle_timer_task
  - qc_supported_version
  - qc_check_dcid
  - qc_notify_send
  - qc_notify_err
  - qc_bind_tid_prep
  - qc_bind_tid_commit
  - qc_bind_tid_reset
  - qc_finalize_tid_rebind
  source_file: /src/haproxy/src/quic_conn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - thread_harmless_till_end
  - thread_isolate
  - thread_isolate_full
  - thread_release
  - start_extra_tgroup_threads
  - setup_extra_threads
  - wait_for_threads_completion
  - set_thread_cpu_affinity
  - ha_get_pthread_id
  - ha_tkill
  - ha_tkillall
  - ha_thread_relax
  - ha_spin_init
  - ha_rwlock_init
  - thread_cpus_enabled
  - lock_label
  - get_lock_stat_num_read
  - get_lock_stat_num_seek
  - get_lock_stat_num_write
  - show_lock_stats
  - __ha_rwlock_init
  - __ha_rwlock_destroy
  - __ha_rwlock_wrlock
  - __ha_rwlock_trywrlock
  - __ha_rwlock_wrunlock
  - __ha_rwlock_rdlock
  - __ha_rwlock_tryrdlock
  - __ha_rwlock_rdunlock
  - __ha_rwlock_wrtord
  - __ha_rwlock_wrtosk
  - __ha_rwlock_sklock
  - __ha_rwlock_sktowr
  - __ha_rwlock_sktord
  - __ha_rwlock_skunlock
  - __ha_rwlock_trysklock
  - __ha_rwlock_tryrdtosk
  - __ha_rwlock_tryrdtowr
  - __spin_init
  - __spin_destroy
  - __spin_lock
  - __spin_trylock
  - __spin_unlock
  - pthread_rwlock_init
  - pthread_rwlock_destroy
  - pthread_rwlock_rdlock
  - pthread_rwlock_tryrdlock
  - pthread_rwlock_timedrdlock
  - pthread_rwlock_wrlock
  - pthread_rwlock_trywrlock
  - pthread_rwlock_timedwrlock
  - pthread_rwlock_unlock
  - dummy_thread_function
  - preload_libgcc_s
  - __thread_init
  - ha_tkill
  - ha_tkillall
  - ha_thread_relax
  - thread_detect_binding_discrepancies
  - thread_detect_more_than_cpus
  - thread_map_to_groups
  - thread_resolve_group_mask
  - thread_detect_count
  - parse_thread_set
  - cfg_parse_nbthread
  - cfg_parse_thread_hard_limit
  - cfg_parse_thread_group
  - cfg_parse_maxthreadpertgroup
  - cfg_parse_thread_groups
  source_file: /src/haproxy/src/thread.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: t
        type: pthread_t
      - name: ll
        type: unsigned long long
      - name: i
        type: unsigned int
      - name: s
        type: unsigned short
      - name: c
        type: unsigned char
      item_type: union
      name: u = { 0 }
      pos:
        line_end: 352
        line_start: 346
        source_file: /src/haproxy/src/thread.c
- function_names:
  - raw_sock_to_pipe
  - raw_sock_from_pipe
  - raw_sock_to_buf
  - raw_sock_from_buf
  - raw_sock_subscribe
  - raw_sock_unsubscribe
  - raw_sock_close
  - raw_sock_remove_xprt
  - raw_sock_get_capability
  - __raw_sock_init
  source_file: /src/haproxy/src/raw_sock.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLICE_FULL_HINT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/src/raw_sock.c
      type_or_value: 16*1448
    - item_type: preproc_def
      name: MAX_SPLICE_AT_ONCE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/src/raw_sock.c
      type_or_value: (1<<30)
    structs: []
    typedefs: []
    union: []
- function_names:
  - tcp_action_attach_srv
  - extract_int_from_rule
  - tcp_action_req_set_src
  - tcp_action_req_set_dst
  - tcp_action_req_set_src_port
  - tcp_action_req_set_dst_port
  - tcp_exec_action_silent_drop
  - tcp_action_set_fc_mark
  - tcp_action_set_bc_mark
  - tcp_action_set_fc_tos
  - tcp_action_set_bc_tos
  - release_attach_srv_action
  - release_set_src_dst_action
  - tcp_check_attach_srv
  - tcp_parse_attach_srv
  - tcp_parse_set_src_dst
  - tcp_parse_set_mark
  - tcp_parse_set_tos
  - tcp_parse_silent_drop
  - init_do_log
  - tcp_req_conn_parse_do_log
  - tcp_req_sess_parse_do_log
  - tcp_req_cont_parse_do_log
  - tcp_res_cont_parse_do_log
  source_file: /src/haproxy/src/tcp_act.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __fd_clo
  - _update_fd
  - _do_poll
  - init_select_per_thread
  - deinit_select_per_thread
  - _do_init
  - _do_term
  - _do_test
  - _do_register
  source_file: /src/haproxy/src/ev_select.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dns_connect_nameserver
  - dns_send_nameserver
  - dns_recv_nameserver
  - dns_resolve_recv
  - dns_resolve_send
  - dns_dgram_init
  - dns_session_io_handler
  - dns_queries_flush
  - dns_session_free
  - dns_session_init
  - dns_session_release
  - dns_session_create
  - dns_process_query_exp
  - dns_process_idle_exp
  - dns_session_new
  - dns_process_req
  - dns_process_rsp
  - dns_stream_init
  - init_dns_buffers
  - deinit_dns_buffers
  source_file: /src/haproxy/src/dns.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hq_interop_rcv_buf_req
  - hq_interop_rcv_buf_res
  - hq_interop_rcv_buf
  - hq_interop_snd_buf
  - hq_interop_nego_ff
  - hq_interop_done_ff
  - hq_interop_attach
  - hq_interop_lclose
  source_file: /src/haproxy/src/hq_interop.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arg_list_clone
  - arg_list_add
  - make_arg_list
  - free_args
  source_file: /src/haproxy/src/arg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cert_get_pkey_algo
  - ssl_sock_get_serial
  - ssl_sock_crt2der
  - ssl_sock_get_time
  - ssl_sock_get_dn_entry
  - ssl_sock_get_dn_formatted
  - ssl_sock_get_dn_oneline
  - ssl_sock_get_peer_certificate
  - ssl_sock_get_verified_chain_root
  - openssl_version_parser
  - exclude_tls_grease
  - _Q
  - V
  - x509_v_err_str_to_int
  - x509_v_err_int_to_str
  - init_x509_v_err_tab
  - asn1_generalizedtime_to_epoch
  - x509_get_notafter
  - x509_get_notbefore
  - ASN1_to_time_t
  - x509_get_notafter_time_t
  - x509_get_notbefore_time_t
  - nid2nist
  - sigalg2str
  - _Q
  - V
  - init_curves_tab
  - curveid2str
  - curves2nid
  source_file: /src/haproxy/src/ssl_utils.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: code
        type: int
      - name: '*value'
        type: char
      - name: '*string'
        type: char
      item_type: struct
      name: x509_v_codes
      pos:
        line_end: 511
        line_start: 507
        source_file: /src/haproxy/src/ssl_utils.c
    - fields:
      - name: '*name'
        type: char
      - name: sigalg
        type: int
      item_type: struct
      name: sigalgs
      pos:
        line_end: 869
        line_start: 869
        source_file: /src/haproxy/src/ssl_utils.c
    - fields:
      - name: curve_id
        type: int
      - name: nid
        type: int
      - name: '*nid_val_str'
        type: char
      - name: '*name'
        type: char
      - name: '*nist'
        type: char
      item_type: struct
      name: curve
      pos:
        line_end: 987
        line_start: 981
        source_file: /src/haproxy/src/ssl_utils.c
    typedefs: []
    union: []
- function_names:
  - http_wait_for_request
  - http_process_req_common
  - http_process_request
  - http_process_tarpit
  - http_wait_for_request_body
  - http_request_forward_body
  - do_l7_retry
  - http_wait_for_response
  - http_process_res_common
  - http_response_forward_body
  - http_apply_redirect_rule
  - http_req_restrict_header_names
  - http_replace_hdrs
  - http_req_replace_stline
  - http_res_set_status
  - http_req_get_intercept_rule
  - http_res_get_intercept_rule
  - http_eval_after_res_rules
  - http_manage_client_side_cookies
  - http_manage_server_side_cookies
  - http_check_request_for_cacheability
  - http_check_response_for_cacheability
  - http_stats_check_uri
  - http_handle_stats
  - http_wait_for_msg_body
  - http_perform_server_redirect
  - http_end_request
  - http_end_response
  - http_forward_proxy_resp
  - http_server_error
  - http_reply_and_close
  - http_error_message
  - http_reply_to_htx
  - http_reply_message
  - http_return_srv_error
  - http_handle_expect_hdr
  - http_reply_100_continue
  - http_capture_headers
  - http_del_hdr_value
  - http_fmt_req_line
  - http_debug_stline
  - http_debug_hdr
  - http_txn_reset_req
  - http_txn_reset_res
  - http_create_txn
  - http_destroy_txn
  - http_set_term_flags
  source_file: /src/haproxy/src/http_ana.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/src/http_ana.c
      type_or_value: '&trace_strm'
    structs: []
    typedefs: []
    union: []
- function_names:
  - h1_eval_htx_hdrs_size
  - h1_eval_htx_size
  - h1_process_req_vsn
  - h1_process_res_vsn
  - h1m_htx_sl_flags
  - h1_postparse_req_hdrs
  - h1_postparse_res_hdrs
  - h1_parse_msg_hdrs
  - h1_copy_msg_data
  - h1_parse_chunk
  - h1_parse_full_contig_chunks
  - h1_parse_msg_chunks
  - h1_parse_msg_data
  - h1_parse_msg_tlrs
  - h1_format_htx_reqline
  - h1_format_htx_stline
  - h1_format_htx_hdr
  - h1_format_htx_data
  - h1_format_htx_msg
  source_file: /src/haproxy/src/h1_htx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_enc_unittest
  source_file: /src/haproxy/src/quic_enc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hap_register_pre_check
  - hap_register_post_check
  - hap_register_post_proxy_check
  - hap_register_post_server_check
  - hap_register_post_deinit
  - hap_register_post_deinit_master
  - hap_register_proxy_deinit
  - hap_register_server_deinit
  - hap_register_per_thread_alloc
  - hap_register_per_thread_init
  - hap_register_per_thread_deinit
  - hap_register_per_thread_free
  source_file: /src/haproxy/src/init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strm_trace
  - stream_upgrade_from_sc
  - stream_buf_available
  - stream_new
  - stream_free
  - stream_alloc_work_buffer
  - stream_release_buffers
  - stream_process_counters
  - stream_abort
  - stream_retnclose
  - stream_set_timeout
  - back_establish
  - sess_set_term_flags
  - process_use_service
  - lookup_fe_persist_rules
  - process_switching_rules
  - process_server_rules
  - sticking_rule_find_target
  - process_sticking_rules
  - process_store_rules
  - stream_set_http_mode
  - stream_update_both_sc
  - stream_handle_timeouts
  - stream_cond_update_cpu_latency
  - stream_cond_update_cpu_usage
  - stream_update_timings
  - UPDATE_ANALYSERS
  - FLT_ANALYZE
  - ANALYZE
  - process_stream
  - stream_update_time_stats
  - sess_change_server
  - default_srv_error
  - stream_shutdown_self
  - stream_dump_and_crash
  - init_stream
  - stream_action_set_retries
  - stream_parse_set_retries
  - stream_action_set_log_level
  - stream_parse_set_log_level
  - stream_action_set_nice
  - stream_parse_set_nice
  - tcp_action_switch_stream_mode
  - check_tcp_switch_stream_mode
  - stream_parse_switch_mode
  - stream_parse_use_service
  - service_keywords_register
  - service_find
  - list_services
  - __strm_dump_to_buffer
  - strm_dump_to_buffer
  - stats_dump_full_strm_to_buffer
  - cli_parse_show_sess
  - cli_io_handler_dump_sess
  - cli_release_show_sess
  - cli_parse_shutdown_session
  - cli_parse_shutdown_sessions_server
  - smp_fetch_cur_connect_timeout
  - smp_fetch_cur_client_timeout
  - smp_fetch_cur_server_timeout
  - smp_fetch_cur_queue_timeout
  - smp_fetch_cur_tarpit_timeout
  - smp_fetch_cur_tunnel_timeout
  - smp_fetch_last_rule_file
  - smp_fetch_last_rule_line
  - smp_fetch_last_entity
  - smp_fetch_waiting_entity
  - smp_fetch_sess_term_state
  - smp_fetch_conn_retries
  - smp_fetch_tevts
  - smp_fetch_id32
  - smp_fetch_redispatched
  source_file: /src/haproxy/src/stream.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/haproxy/src/stream.c
      type_or_value: '&trace_strm'
    - item_type: preproc_def
      name: CLI_SHOWSESS_F_SUSP
      pos:
        line_end: 3429
        line_start: 3428
        source_file: /src/haproxy/src/stream.c
      type_or_value: '0x00000001   '
    - item_type: preproc_def
      name: CLI_SHOWSESS_F_DUMP_URI
      pos:
        line_end: 3430
        line_start: 3429
        source_file: /src/haproxy/src/stream.c
      type_or_value: '0x00000002   '
    - item_type: preproc_def
      name: CLI_SHOWSESS_F_SERVER
      pos:
        line_end: 3431
        line_start: 3430
        source_file: /src/haproxy/src/stream.c
      type_or_value: '0x00000004   '
    - item_type: preproc_def
      name: CLI_SHOWSESS_F_BACKEND
      pos:
        line_end: 3432
        line_start: 3431
        source_file: /src/haproxy/src/stream.c
      type_or_value: '0x00000008   '
    - item_type: preproc_def
      name: CLI_SHOWSESS_F_FRONTEND
      pos:
        line_end: 3433
        line_start: 3432
        source_file: /src/haproxy/src/stream.c
      type_or_value: '0x00000010   '
    structs:
    - fields:
      - name: bref
        type: struct bref
      - name: '*target'
        type: void
      - name: '*filter'
        type: void
      - name: thr
        type: unsigned int
      - name: uid
        type: unsigned int
      - name: min_age
        type: unsigned int
      - name: flags
        type: unsigned int
      - name: section
        type: int
      - name: pos
        type: int
      item_type: struct
      name: show_sess_ctx
      pos:
        line_end: 3444
        line_start: 3434
        source_file: /src/haproxy/src/stream.c
    typedefs: []
    union: []
- function_names:
  - ssl_sock_free_ssl_conf
  - crtlist_dup_ssl_conf
  - crtlist_free_filters
  - crtlist_dup_filters
  - crtlist_entry_free
  - crtlist_entry_dup
  - crtlist_entry_new
  - crtlist_free
  - crtlist_new
  - crtlist_parse_line
  - crtlist_load_crt
  - crtlist_parse_file
  - crtlist_load_cert_dir
  - dump_crtlist_conf
  - dump_crtlist_filters
  - cli_io_handler_dump_crtlist
  - cli_io_handler_dump_crtlist_entries
  - cli_parse_dump_crtlist
  - cli_release_add_crtlist
  - cli_io_handler_add_crtlist
  - cli_parse_add_crtlist
  - cli_parse_del_crtlist
  - crtlist_deinit
  source_file: /src/haproxy/src/ssl_crtlist.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*crtlist_node'
        type: struct ebmb_node
      - name: '*entry'
        type: struct crtlist_entry
      - name: mode
        type: int
      item_type: struct
      name: show_crtlist_ctx
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/haproxy/src/ssl_crtlist.c
    - fields:
      - name: '*crtlist'
        type: struct crtlist
      - name: '*entry'
        type: struct crtlist_entry
      - name: '*bind_conf_node'
        type: struct bind_conf_list
      - name: '*err'
        type: char
      - name: state
        type: "enum {\n\t\tADDCRT_ST_INIT = 0,\n\t\tADDCRT_ST_GEN,\n\t\tADDCRT_ST_INSERT,\n\t\tADDCRT_ST_SUCCESS,\n\t\tADDCRT_ST_ERROR,\n\t\tADDCRT_ST_FIN,\n\t}"
      item_type: struct
      name: add_crtlist_ctx
      pos:
        line_end: 55
        line_start: 42
        source_file: /src/haproxy/src/ssl_crtlist.c
    typedefs: []
    union: []
- function_names:
  - sockpair_enable_listener
  - sockpair_disable_listener
  - sockpair_bind_receiver
  - sockpair_bind_listener
  - send_fd_uxst
  - sockpair_connect_server
  - recv_fd_uxst
  - sockpair_accepting_conn
  - sockpair_accept_conn
  source_file: /src/haproxy/src/proto_sockpair.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - http_7239_extract_port
  - http_7239_valid_obfsc
  - http_7239_extract_obfs
  - http_7239_extract_ipv4
  - http_7239_extract_ipv6
  - http_7239_extract_host
  - http_7239_extract_nodename
  - http_7239_extract_nodeport
  - http_7239_extract_node
  - _forwarded_header_save_ctx
  - _forwarded_header_quote_expected
  - http_validate_7239_header
  - _7239_print_ip6
  - http_build_7239_header_nodename
  - http_build_7239_header_nodeport
  - http_build_7239_header_node
  - http_build_7239_header_host
  - http_build_7239_header
  - http_handle_7239_header
  - http_handle_xff_header
  - http_handle_xot_header
  - proxy_http_parse_oom
  - _proxy_http_parse_7239_expr
  - proxy_http_parse_7239
  - proxy_http_compile_7239
  - proxy_http_parse_xff
  - proxy_http_parse_xot
  - http_ext_7239_prepare
  - http_ext_xff_prepare
  - http_ext_xot_prepare
  - http_ext_7239_clean
  - http_ext_xff_clean
  - http_ext_xot_clean
  - http_ext_7239_dup
  - http_ext_xff_dup
  - http_ext_xot_dup
  - http_ext_prepare
  - http_ext_dup
  - http_ext_clean
  - http_ext_softclean
  - check_http_ext_postconf
  - sample_conv_7239_valid
  - sample_conv_7239_field
  - sample_conv_7239_n2nn
  - sample_conv_7239_n2np
  - sample_conv_7239_nn
  - sample_conv_7239_np
  source_file: /src/haproxy/src/http_ext.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sample_conv_secure_memcmp
  - smp_check_secure_memcmp
  - smp_check_sha2
  - sample_conv_sha2
  - sample_check_arg_base64
  - check_aes
  - sample_conv_aes_init
  - sample_conv_aes_update
  - sample_conv_aes_final
  - aes_process
  - sample_conv_aes
  - check_crypto_digest
  - sample_conv_crypto_digest
  - sample_conv_x509_v_err
  - check_crypto_hmac
  - sample_conv_crypto_hmac
  - smp_fetch_ssl_fc_has_early
  - smp_fetch_ssl_fc_early_rcvd
  - smp_fetch_ssl_fc_has_crt
  - smp_fetch_ssl_r_dn
  - smp_fetch_ssl_x_der
  - smp_fetch_ssl_x_chain_der
  - smp_fetch_ssl_x_serial
  - smp_fetch_ssl_x_sha1
  - smp_fetch_ssl_x_notafter
  - smp_fetch_ssl_x_i_dn
  - smp_fetch_ssl_x_san
  - smp_fetch_ssl_x_notbefore
  - smp_fetch_ssl_x_s_dn
  - smp_fetch_ssl_c_used
  - smp_fetch_ssl_x_version
  - smp_fetch_ssl_x_sig_alg
  - smp_fetch_ssl_x_key_alg
  - smp_fetch_ssl_fc
  - smp_fetch_ssl_fc_has_sni
  - smp_fetch_ssl_fc_is_resumed
  - smp_fetch_ssl_fc_ec
  - smp_fetch_ssl_fc_cipher
  - smp_fetch_ssl_fc_alg_keysize
  - smp_fetch_ssl_fc_use_keysize
  - smp_fetch_ssl_fc_npn
  - smp_fetch_ssl_fc_alpn
  - smp_fetch_ssl_fc_protocol
  - smp_fetch_ssl_fc_session_id
  - smp_fetch_ssl_fc_random
  - smp_fetch_ssl_fc_session_key
  - smp_fetch_ssl_fc_sni
  - smp_fetch_ssl_fc_crtname
  - smp_fetch_ssl_fc_ech_status
  - smp_fetch_ssl_fc_ech_outer_sni
  - smp_fetch_ssl_fc_cl_bin
  - smp_fetch_ssl_fc_cl_hex
  - smp_fetch_ssl_fc_cl_xxh64
  - smp_fetch_ssl_fc_err
  - smp_fetch_ssl_fc_protocol_hello_id
  - smp_fetch_ssl_fc_supver_bin
  - smp_fetch_ssl_fc_sigalgs_bin
  - smp_fetch_ssl_fc_err_str
  - smp_fetch_ssl_fc_ext_bin
  - smp_fetch_ssl_fc_ecl_bin
  - smp_fetch_ssl_fc_ecf_bin
  - smp_fetch_ssl_x_keylog
  - smp_fetch_ssl_fc_cl_str
  - smp_fetch_ssl_fc_unique_id
  - smp_fetch_ssl_c_ca_err
  - smp_fetch_ssl_c_ca_err_depth
  - smp_fetch_ssl_c_err
  - smp_fetch_ssl_c_verify
  - val_dnfmt
  source_file: /src/haproxy/src/ssl_sample.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AES_FLG_ENC
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/haproxy/src/ssl_sample.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: AES_FLG_DEC
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/haproxy/src/ssl_sample.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: AES_FLG_GCM
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/haproxy/src/ssl_sample.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: AES_FLG_CBC
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/haproxy/src/ssl_sample.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: AES_CBC_IV_LEN
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/haproxy/src/ssl_sample.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - startup_logs_init_shm
  - startup_logs_init
  - startup_logs_free
  - startup_logs_dup
  - usermsgs_put
  - usermsgs_clr
  - usermsgs_empty
  - usermsgs_str
  - set_usermsgs_ctx
  - register_parsing_obj
  - reset_usermsgs_ctx
  - generate_usermsgs_ctx_str
  - print_message
  - print_message_args
  - warn_exec_path
  - ha_alert
  - ha_warning
  - _ha_vdiag_warning
  - _ha_diag_warning
  - ha_diag_warning
  - ha_notice
  - qfprintf
  - cli_parse_show_startup_logs
  - deinit_errors_buffers
  source_file: /src/haproxy/src/errors.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USER_MESSAGES_BUFSIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/src/errors.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: USERMSGS_CTX_BUFSIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/errors.c
      type_or_value: PATH_MAX
    structs: []
    typedefs: []
    union: []
- function_names:
  - h3_fill_stats
  - h3_inc_err_cnt
  - h3_inc_frame_type_cnt
  source_file: /src/haproxy/src/h3_stats.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: h3_data
        type: long long
      - name: h3_headers
        type: long long
      - name: h3_cancel_push
        type: long long
      - name: h3_push_promise
        type: long long
      - name: h3_max_push_id
        type: long long
      - name: h3_goaway
        type: long long
      - name: h3_settings
        type: long long
      - name: h3_no_error
        type: long long
      - name: h3_general_protocol_error
        type: long long
      - name: h3_internal_error
        type: long long
      - name: h3_stream_creation_error
        type: long long
      - name: h3_closed_critical_stream
        type: long long
      - name: h3_frame_unexpected
        type: long long
      - name: h3_frame_error
        type: long long
      - name: h3_excessive_load
        type: long long
      - name: h3_id_error
        type: long long
      - name: h3_settings_error
        type: long long
      - name: h3_missing_settings
        type: long long
      - name: h3_request_rejected
        type: long long
      - name: h3_request_cancelled
        type: long long
      - name: h3_request_incomplete
        type: long long
      - name: h3_message_error
        type: long long
      - name: h3_connect_error
        type: long long
      - name: h3_version_fallback
        type: long long
      - name: qpack_decompression_failed
        type: long long
      - name: qpack_encoder_stream_error
        type: long long
      - name: qpack_decoder_stream_error
        type: long long
      item_type: struct
      name: h3_counters
      pos:
        line_end: 129
        line_start: 98
        source_file: /src/haproxy/src/h3_stats.c
    typedefs: []
    union: []
- function_names:
  - get_be32
  - put_be32
  - get_be32
  - put_be32
  - SHA_ASM
  - SHA_ROL
  - SHA_ROR
  - SHA_ROT
  - SHA_ROL
  - SHA_ROR
  - setW
  - setW
  - setW
  - W
  - SHA_SRC
  - SHA_MIX
  - SHA_ROUND
  - T_0_15
  - T_16_19
  - T_20_39
  - T_40_59
  - T_60_79
  - blk_SHA1_Block
  - blk_SHA1_Init
  - blk_SHA1_Update
  - blk_SHA1_Final
  source_file: /src/haproxy/src/sha1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_kw_experimental
  - hap_register_build_opts
  - hap_get_next_build_opt
  - hap_register_feature
  - hap_register_unittest
  - split_version
  - compare_current_version
  - display_version
  - feat_cmp
  - split_feature_list
  - display_version_plain
  - display_build_opts
  - tell_old_pids
  - delete_oldpid
  - exit_on_failure
  - sig_soft_stop
  - sig_pause
  - sig_listen
  - sig_dump_state
  - dump
  - stdio_quiet
  - cfgfiles_expand_directories
  - load_cfg
  - read_cfg
  - copy_argv
  - ha_random_boot
  - do_check_condition
  - init_early
  - haproxy_init_args
  - init_args
  - dump_registered_keywords
  - generate_random_cluster_secret
  - apply_daemon_mode
  - handle_pidfile
  - get_listeners_fd
  - bind_listeners
  - step_init_1
  - step_init_2
  - step_init_3
  - step_init_4
  - set_verbosity
  - run_master_in_recovery_mode
  - read_cfg_in_discovery_mode
  - deinit
  - deinit_and_exit
  - run_poll_loop
  - run_thread_poll_loop
  - set_identity
  - setup_user_ns
  - do_chroot
  - main
  source_file: /src/haproxy/src/haproxy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_START_RETRIES
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/haproxy/src/haproxy.c
      type_or_value: '200'
    - item_type: preproc_def
      name: VERSION_MAX_ELTS
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/haproxy/src/haproxy.c
      type_or_value: '7'
    structs:
    - fields:
      - name: list
        type: struct list
      - name: '*str'
        type: char
      - name: must_free
        type: int
      item_type: struct
      name: build_opts_str
      pos:
        line_end: 302
        line_start: 298
        source_file: /src/haproxy/src/haproxy.c
    typedefs: []
    union:
    - fields:
      - name: by64[2]
        type: uint64_t
      - name: by8[16]
        type: uchar
      item_type: union
      name: rand
      pos:
        line_end: 1936
        line_start: 1933
        source_file: /src/haproxy/src/haproxy.c
- function_names:
  - parse_alg_enc
  - algenc2str
  - decode_jose_field
  - parse_jose
  - clear_jose_fields
  - decrypt_cek_aesgcmkw
  - decrypt_cek_aeskw
  - build_and_check_tag
  - decrypt_ciphertext
  - clear_decoded_items
  - sample_conv_jwt_decrypt_secret
  - do_decrypt_cek_rsa
  - decrypt_cek_rsa
  - derive_ecdh_secret
  - append_data_len
  - build_concatkdf_otherinfo
  - do_decrypt_cek_ec
  - sample_conv_jwt_decrypt_cert
  - sample_conv_jwt_decrypt_cert_check
  - sample_conv_jwt_decrypt_secret_check
  - base64url_to_BIGNUM
  - get_jwk_field
  - clear_bignums
  - build_RSA_PKEY_from_buf
  - curve_param_to_pubkey
  - build_EC_PKEY_from_buf
  - clear_jwk
  - process_jwk
  - sample_conv_jwt_decrypt_jwk_check
  - sample_conv_jwt_decrypt_jwk
  - dup_alg_enc_arrays
  - jwe_init
  - jwe_deinit
  - set_alg_enc_flag
  - set_all_alg_enc_flags
  - jwe_parse_global_alg_enc_list
  source_file: /src/haproxy/src/jwe.c
  types:
    enum:
    - enumerators:
      - name: JWE_ELT_JOSE
        value: '0'
      - name: JWE_ELT_IV
      - name: JWE_ELT_CIPHERTEXT
      - name: JWE_ELT_CEK
      - name: JWE_ELT_TAG
      - name: JWE_ELT_MAX
      item_type: enum
      name: jwe_elt
      pos:
        line_end: 122
        line_start: 115
        source_file: /src/haproxy/src/jwe.c
    preproc_defs:
    - item_type: preproc_def
      name: MAX_DECRYPTED_CEK_LEN
      pos:
        line_end: 839
        line_start: 838
        source_file: /src/haproxy/src/jwe.c
      type_or_value: "(32 * 2)\t"
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: int
      - name: enabled
        type: int
      item_type: struct
      name: alg_enc
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/haproxy/src/jwe.c
    - fields:
      - name: '*tag'
        type: struct buffer
      - name: '*iv'
        type: struct buffer
      - name: '*epk'
        type: struct buffer
      - name: '*pubkey'
        type: EVP_PKEY
      - name: '*apu'
        type: struct buffer
      - name: '*apv'
        type: struct buffer
      item_type: struct
      name: jose_fields
      pos:
        line_end: 132
        line_start: 125
        source_file: /src/haproxy/src/jwe.c
    - fields:
      - name: type
        type: jwk_type
      - name: '*kid'
        type: struct buffer
      item_type: struct
      name: jwk
      pos:
        line_end: 1779
        line_start: 1772
        source_file: /src/haproxy/src/jwe.c
    typedefs: []
    union: []
- function_names:
  - _counters_shared_drop
  - counters_fe_shared_drop
  - counters_be_shared_drop
  - _counters_shared_prepare
  - counters_fe_shared_prepare
  - counters_be_shared_prepare
  source_file: /src/haproxy/src/counters.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_packet_encrypt
  - free_quic_tx_packet
  - qc_txb_alloc
  - qc_txb_release
  - qc_get_txb
  - qc_txb_store
  - qc_may_build_pkt
  - qc_free_frm_list
  - list_for_each_entry_safe
  - qc_free_tx_coalesced_pkts
  - qc_purge_tx_buf
  - qc_send_ppkts
  - qc_purge_txbuf
  - qc_send_mux
  - qc_select_tls_ver
  - qc_prep_pkts
  - list_for_each_entry_safe
  - qc_send
  - list_for_each_entry_safe
  - qel_register_send
  - qel_need_sending
  - qc_dgrams_retransmit
  - send_version_negotiation
  - send_stateless_reset
  - quic_pkt_type
  - send_retry
  - quic_write_uint32
  - quic_packet_number_length
  - quic_packet_number_encode
  - quic_build_packet_long_header
  - quic_build_packet_short_header
  - quic_apply_header_protection
  - qc_build_frms
  - list_for_each_entry_safe
  - qc_build_cc_frm
  - quic_compute_ack_delay_us
  - quic_do_enc_token
  - quic_enc_token
  - qc_do_build_pkt
  - quic_tx_packet_init
  - qc_build_pkt
  - quic_tx_unittest
  source_file: /src/haproxy/src/quic_tx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __fd_clo
  - _do_fixup_tgid_takeover
  - _update_fd
  - _do_poll
  - init_epoll_per_thread
  - deinit_epoll_per_thread
  - _do_init
  - _do_term
  - _do_test
  - _do_fork
  - _do_register
  - cfg_parse_tune_epoll_mask_events
  source_file: /src/haproxy/src/ev_epoll.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EPOLLRDHUP
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/src/ev_epoll.c
      type_or_value: '0x2000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - qcc_is_pacing_active
  - qcs_free_rxbuf
  - qcs_free
  - qcs_new
  - qcs_sc
  - qcc_reset_idle_start
  - qcc_may_expire
  - qcc_rm_sc
  - qcc_be_is_reusable
  - qcc_is_dead
  - qcc_refresh_timeout
  - qcs_idle_open
  - qcs_close_local
  - qcs_is_completed
  - qcs_close_remote
  - qcs_is_close_local
  - qcs_is_close_remote
  - qcs_get_ncbuf
  - qcs_alert
  - qcs_subscribe
  - qcs_notify_recv
  - qcs_notify_send
  - qcs_tx_buf_const
  - qcs_tx_buf
  - qcs_prep_bytes
  - qcm_ctrl_send
  - qcc_bufwnd_full
  - qcm_ctrl_room
  - qcc_notify_buf
  - qcc_set_error
  - qcc_report_term_evt
  - _qcc_report_glitch
  - qcc_fctl_avail_streams
  - qcc_max_strm_bidi_remote
  - qcc_init_stream_local
  - qcc_init_stream_remote
  - qcs_send_metadata
  - qcs_attach_sc
  - qcc_stream_id_is_closed
  - qcc_get_qcs
  - qcs_b_dup
  - qcs_transfer_rx_data
  - qcs_get_curr_rxbuf
  - qcs_rx_avail_data
  - qcs_consume
  - qcc_decode_qcs
  - qcc_get_stream_rxbuf
  - qcc_get_stream_txbuf
  - qcc_realloc_stream_txbuf
  - qcc_realign_stream_txbuf
  - qcc_release_stream_txbuf
  - qcc_stream_can_send
  - qcc_notify_fctl
  - qcc_clear_frms
  - _qcc_send_stream
  - qcc_reset_stream
  - qcc_send_stream
  - qcc_abort_stream_read
  - qcc_install_app_ops
  - qcs_get_rxbuf
  - qcc_recv
  - qcc_recv_max_data
  - qcc_recv_max_stream_data
  - qcc_recv_max_streams
  - qcc_recv_reset_stream
  - qcc_recv_stop_sending
  - qcc_release_remote_stream
  - qcs_destroy
  - qcs_build_stream_frm
  - qcc_subscribe_send
  - qcc_quic_send_frames
  - qcc_send_frames
  - qcs_send_reset
  - qcs_send_stop_sending
  - qcs_send
  - qcc_emit_fctl
  - qcc_emit_rs_ss
  - qcc_build_frms
  - qcc_wakeup_pacing
  - qcc_io_send
  - qcc_wait_for_hs
  - qcc_io_recv
  - qcm_avail_streams
  - qcm_used_streams
  - qcc_purge_streams
  - qcc_wake_streams
  - qcc_io_process
  - qcc_app_init
  - qcc_app_shutdown
  - qcc_release
  - qcc_io_cb
  - qcc_pacing_task
  - qcc_timeout_task
  - _qcc_init
  - qcm_init
  - qcm_destroy
  - qcm_strm_attach
  - qcm_strm_detach
  - qcm_strm_rcv_buf
  - qcm_strm_snd_buf
  - qcm_strm_nego_ff
  - qcm_strm_done_ff
  - qcm_strm_resume_ff
  - qcm_strm_subscribe
  - qcm_strm_unsubscribe
  - qcm_wake
  - qcm_strm_shut
  - qcm_ctl
  - qcm_sctl
  - qcm_strm_show_sd
  - qcc_show_quic
  source_file: /src/haproxy/src/mux_quic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LIST_INSERT
  - LIST_DELETE
  - lru64_lookup
  - lru64_get
  - lru64_commit
  - lru64_new
  - lru64_destroy
  - lru64_kill_oldest
  - sum
  - get_value
  - statistical_prng
  - main
  source_file: /src/haproxy/src/lru.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_trace_buf
  - check_trace
  - unclean_errno
  - get_check_status_result
  - get_check_status_description
  - get_check_status_info
  - get_analyze_status
  - check_append_info
  - set_server_check_status
  - check_notify_cause
  - check_notify_failure
  - check_notify_success
  - check_notify_stopping
  - __health_adjust
  - retrieve_errno_from_socket
  - chk_report_conn_err
  - httpchk_build_status_header
  - srv_chk_io_cb
  - check_thread_cmp_load
  - check_thread_cmp_active
  - process_chk_conn
  - check_buf_available
  - check_get_buf
  - check_release_buf
  - init_check
  - free_check
  - check_purge
  - process_chk
  - start_check_task
  - start_checks
  - clear_checks
  - srv_check_healthcheck_port
  - init_srv_check
  - init_srv_agent_check
  - deinit_srv_check
  - deinit_srv_agent_check
  - init_checks
  - srv_parse_addr
  - srv_parse_agent_addr
  - srv_parse_agent_check
  - srv_parse_agent_inter
  - srv_parse_agent_port
  - set_srv_agent_send
  - srv_parse_agent_send
  - srv_parse_no_agent_check
  - srv_parse_check
  - srv_parse_check_send_proxy
  - srv_parse_check_via_socks4
  - srv_parse_no_check
  - srv_parse_no_check_reuse_pool
  - srv_parse_no_check_send_proxy
  - srv_parse_check_pool_conn_name
  - srv_parse_check_proto
  - srv_parse_check_reuse_pool
  - srv_parse_check_rise
  - srv_parse_check_fall
  - srv_parse_check_inter
  - srv_parse_check_fastinter
  - srv_parse_check_downinter
  - srv_parse_check_port
  - check_parse_global_max_checks
  source_file: /src/haproxy/src/check.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/haproxy/src/check.c
      type_or_value: '&trace_check'
    structs:
    - fields:
      - name: result
        type: short
      - name: '*info'
        type: char
      - name: '*desc'
        type: char
      item_type: struct
      name: check_status
      pos:
        line_end: 292
        line_start: 288
        source_file: /src/haproxy/src/check.c
    - fields:
      - name: '*desc'
        type: char
      - name: lr[HANA_OBS_SIZE]
        type: unsigned char
      item_type: struct
      name: analyze_status
      pos:
        line_end: 297
        line_start: 294
        source_file: /src/haproxy/src/check.c
    typedefs: []
    union: []
- function_names:
  - qc_stream_frm_is_acked
  - qc_dup_pkt_frms
  - list_for_each_entry_safe
  - qc_pkt_with_only_acked_frms
  - qc_prep_fast_retrans
  - qc_prep_hdshk_fast_retrans
  source_file: /src/haproxy/src/quic_retransmit.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/haproxy/src/quic_retransmit.c
      type_or_value: '&trace_quic'
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_buffer
  - buffer_dump
  - __offer_buffers
  - cfg_parse_tune_buffers_limit
  - cfg_parse_tune_buffers_reserve
  - cfg_parse_tune_bufsize_large
  - cfg_parse_tune_bufsize_small
  - alloc_emergency_buffers_per_thread
  - free_emergency_buffers_per_thread
  source_file: /src/haproxy/src/dynbuf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decode_packet_number
  - qc_do_rm_hp
  - qc_pkt_decrypt
  - qc_handle_newly_acked_frm
  - qc_newly_acked_pkts
  - qc_handle_newly_acked_pkts
  - list_for_each_entry_safe
  - qc_handle_frms_of_lost_pkt
  - list_for_each_entry_safe
  - qc_notify_cc_of_newly_acked_pkts
  - list_for_each_entry_safe
  - qc_parse_ack_frm
  - qc_handle_strm_frm
  - qc_handle_crypto_frm
  - qc_handle_retire_connection_id_frm
  - quic_ack_delay_ms
  - qc_try_store_new_token
  - qc_parse_pkt_frms
  - qc_handle_spin_bit
  - qc_rm_hp_pkts
  - qc_qel_may_rm_hp
  - qc_treat_rx_pkts
  - quic_packet_read_long_header
  - qc_try_rm_hp
  - quic_read_uint32
  - qc_parse_hd_form
  - quic_padding_check
  - quic_token_validate
  - quic_rx_pkt_retrieve_conn
  - quic_rx_pkt_parse
  - qc_rx_check_closing
  - quic_rx_pkts_del
  - qc_rx_pkt_handle
  - quic_dgram_parse
  source_file: /src/haproxy/src/quic_rx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xprt_qmux_lparams
  - xprt_qmux_rparams
  - xprt_qmux_xfer_rxbuf
  - conn_recv_qmux
  - conn_send_qmux
  - xprt_qmux_io_cb
  - xprt_qmux_add_xprt
  - xprt_qmux_init
  - xprt_qmux_start
  - xprt_qmux_close
  - xprt_qmux_get_alpn
  - __xprt_qmux_init
  source_file: /src/haproxy/src/xprt_qmux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XPRT_QMUX_DEFAULT_ALPN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/haproxy/src/xprt_qmux.c
      type_or_value: '"h3"'
    structs:
    - fields:
      - name: '*conn'
        type: struct connection
      - name: wait_event
        type: struct wait_event
      - name: '*ops_lower'
        type: struct xprt_ops
      - name: '*ctx_lower'
        type: void
      - name: lparams
        type: struct quic_transport_params
      - name: rparams
        type: struct quic_transport_params
      - name: txbuf
        type: struct buffer
      - name: rxbuf
        type: struct buffer
      - name: rxrlen
        type: size_t
      item_type: struct
      name: xprt_qmux_ctx
      pos:
        line_end: 30
        line_start: 17
        source_file: /src/haproxy/src/xprt_qmux.c
    typedefs: []
    union: []
- function_names:
  - qcm_trace_frm
  - qcm_trace
  - qcm_trace_fill_ctx
  - qcc_app_st_to_str
  - qcm_dump_qcc_info
  - qcm_dump_qcs_info
  source_file: /src/haproxy/src/qcm_trace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - capset
  - prepare_caps_from_permitted_set
  - prepare_caps_for_setuid
  - finalize_caps_after_setuid
  - cfg_parse_global_setcap
  source_file: /src/haproxy/src/linuxcap.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cap
        type: int
      - name: '*name'
        type: char
      item_type: struct
      name: "known_caps[] = {\n#ifdef CAP_NET_RAW\n\t{ CAP_NET_RAW, \"cap_net_raw\"
        },\n#endif\n#ifdef CAP_NET_ADMIN\n\t{ CAP_NET_ADMIN, \"cap_net_admin\" },\n#endif\n#ifdef
        CAP_NET_BIND_SERVICE\n\t{ CAP_NET_BIND_SERVICE, \"cap_net_bind_service\" },\n#endif\n#ifdef
        CAP_SYS_ADMIN\n\t{ CAP_SYS_ADMIN, \"cap_sys_admin\" },\n#endif\n\t/* must
        be last */\n\t{ 0, 0 }\n}"
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/haproxy/src/linuxcap.c
    typedefs: []
    union: []
- function_names:
  - CEB_FDECL3
  - CEB_FDECL2
  - CEB_FDECL2
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - CEB_FDECL3
  - TO_STR
  - _TO_STR
  - CEB_FDECL5
  source_file: /src/haproxy/src/_ceb_addr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - h3_debug_printf
  - h3_debug_hexdump
  - h3_init_uni_stream
  - h3_parse_uni_stream_no_h3
  - h3_decode_frm_header
  - h3_check_frame_valid
  - h3_check_body_size
  - h3_set_authority
  - _h3_handle_phdr
  - _h3_handle_hdr
  - _h3_trim_header
  - h3_req_headers_to_htx
  - h3_resp_headers_to_htx
  - h3_trailers_to_htx
  - h3_data_to_htx
  - h3_parse_settings_frm
  - h3_parse_goaway_frm
  - h3_rcv_buf
  - h3_control_send
  - h3_encode_header
  - h3_req_headers_send
  - h3_resp_headers_send
  - h3_resp_trailers_send
  - h3_resp_data_send
  - h3_snd_buf
  - h3_nego_ff
  - h3_done_ff
  - h3_close
  - h3_lclose
  - h3_attach
  - h3_detach
  - h3_send_goaway
  - h3_init
  - h3_finalize
  - h3_shutdown
  - h3_release
  - h3_stats_inc_err_cnt
  - h3_report_susp
  - h3_ft_str
  - h3_trace
  - h3_reject
  source_file: /src/haproxy/src/h3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/src/h3.c
      type_or_value: '&trace_h3'
    - item_type: preproc_def
      name: h3_debug_printf
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/src/h3.c
      type_or_value: fprintf
    - item_type: preproc_def
      name: h3_debug_hexdump
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/src/h3.c
      type_or_value: debug_hexdump
    - item_type: preproc_def
      name: H3_CF_SETTINGS_SENT
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: H3_CF_SETTINGS_RECV
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: H3_CF_UNI_CTRL_SET
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: H3_CF_UNI_QPACK_DEC_SET
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: H3_CF_UNI_QPACK_ENC_SET
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: H3_CF_GOAWAY_SENT
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: H3_CF_GOAWAY_RECV
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: H3_SF_UNI_INIT
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: H3_SF_UNI_NO_H3
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: H3_SF_HAVE_CLEN
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: H3_SF_SENT_INTERIM
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: H3_SF_RECV_INTERIM
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000010  '
    structs:
    - fields:
      - name: '*qcc'
        type: struct qcc
      - name: '*ctrl_strm'
        type: struct qcs
      - name: err
        type: int
      - name: flags
        type: uint32_t
      - name: qpack_max_table_capacity
        type: uint64_t
      - name: qpack_blocked_streams
        type: uint64_t
      - name: max_field_section_size
        type: uint64_t
      - name: id_shut_l
        type: uint64_t
      - name: id_shut_r
        type: uint64_t
      - name: buf_wait
        type: struct buffer_wait
      - name: '*prx_counters'
        type: struct h3_counters
      item_type: struct
      name: h3c
      pos:
        line_end: 149
        line_start: 132
        source_file: /src/haproxy/src/h3.c
    - fields:
      - name: '*h3c'
        type: struct h3c
      - name: type
        type: enum h3s_t
      - name: st_req
        type: enum h3s_st_req
      - name: demux_frame_len
        type: uint64_t
      - name: demux_frame_type
        type: uint64_t
      - name: body_len
        type: unsigned long long
      - name: data_len
        type: unsigned long long
      - name: flags
        type: int
      - name: err
        type: int
      item_type: struct
      name: h3s
      pos:
        line_end: 172
        line_start: 159
        source_file: /src/haproxy/src/h3.c
    typedefs: []
    union: []
- function_names:
  - _tv_ms_add
  - _tv_ms_cmp
  - _tv_ms_cmp2
  - _tv_ms_le2
  - _tv_ms_remain
  - _tv_ms_remain2
  - _tv_ms_elapsed
  - _tv_add
  - _tv_add_ifset
  - _tv_remain
  - _tv_remain2
  - _tv_isle
  - _tv_isgt
  source_file: /src/haproxy/src/time.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SPOP_SLEN
  - spop_strm_sc
  - spop_strm_opposite_sd
  - spop_trace_buf
  - spop_trace
  - spop_buf_available
  - spop_get_buf
  - spop_release_buf
  - spop_release_mbuf
  - spop_recv_allowed
  - spop_conn_report_term_evt
  - spop_conn_restart_reading
  - spop_streams_left
  - spop_used_streams
  - spop_avail_streams
  - spop_init
  - spop_release
  - spop_conn_get_next_sid
  - spop_conn_st_by_id
  - spop_conn_read0_pending
  - spop_conn_may_expire
  - spop_conn_is_dead
  - spop_conn_update_timeout
  - spop_conn_error
  - spop_strm_error
  - spop_strm_notify_recv
  - spop_strm_notify_send
  - spop_strm_alert
  - spop_set_frame_size
  - spop_get_buf_bytes
  - spop_get_n16
  - spop_get_n32
  - spop_get_n64
  - spop_get_varint
  - spop_peek_frame_hdr
  - spop_skip_frame_hdr
  - spop_get_frame_hdr
  - spop_strm_close
  - spop_strm_propagate_term_flags
  - spop_strm_destroy
  - spop_strm_new
  - spop_stconn_new
  - spop_strm_wake_one_stream
  - spop_wake_unassigned_streams
  - spop_wake_some_streams
  - spop_conn_send_hello
  - spop_conn_send_disconnect
  - spop_conn_handle_hello
  - spop_conn_handle_disconnect
  - spop_conn_handle_ack
  - spop_resume_each_sending_spop_strm
  - list_for_each_entry_safe
  - spop_remove_from_list
  - spop_process_demux
  - spop_process_mux
  - spop_recv
  - spop_send
  - spop_io_cb
  - spop_process
  - spop_wake
  - spop_ctl
  - spop_sctl
  - spop_timeout_task
  - spop_show_error_snapshot
  - spop_strm_capture_bad_message
  - spop_attach
  - spop_get_first_sc
  - spop_destroy
  - spop_detach
  - spop_do_shutr
  - spop_do_shutw
  - spop_shut
  - spop_subscribe
  - spop_unsubscribe
  - spop_strm_send_notify
  - spop_rcv_buf
  - spop_snd_buf
  - spop_dump_spop_strm_info
  - spop_dump_spop_conn_info
  - spop_show_fd
  - spop_show_sd
  - spop_takeover
  source_file: /src/haproxy/src/mux_spop.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPOP_C_MBUF_CNT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/src/mux_spop.c
      type_or_value: '32'
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/haproxy/src/mux_spop.c
      type_or_value: '&trace_spop'
    - item_type: preproc_def
      name: SPOP_SUPPORTED_VERSIONS_KEY
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/haproxy/src/mux_spop.c
      type_or_value: '"supported-versions"'
    - item_type: preproc_def
      name: SPOP_VERSION_KEY
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/haproxy/src/mux_spop.c
      type_or_value: '"version"'
    - item_type: preproc_def
      name: SPOP_MAX_FRAME_SIZE_KEY
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/haproxy/src/mux_spop.c
      type_or_value: '"max-frame-size"'
    - item_type: preproc_def
      name: SPOP_CAPABILITIES_KEY
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/haproxy/src/mux_spop.c
      type_or_value: '"capabilities"'
    - item_type: preproc_def
      name: SPOP_ENGINE_ID_KEY
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/haproxy/src/mux_spop.c
      type_or_value: '"engine-id"'
    - item_type: preproc_def
      name: SPOP_HEALTHCHECK_KEY
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/haproxy/src/mux_spop.c
      type_or_value: '"healthcheck"'
    - item_type: preproc_def
      name: SPOP_STATUS_CODE_KEY
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/haproxy/src/mux_spop.c
      type_or_value: '"status-code"'
    - item_type: preproc_def
      name: SPOP_MSG_KEY
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/haproxy/src/mux_spop.c
      type_or_value: '"message"'
    - item_type: preproc_def
      name: SPOP_SUPPORTED_VERSIONS_VAL
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/haproxy/src/mux_spop.c
      type_or_value: '"2.0"'
    structs:
    - fields:
      - name: '*conn'
        type: struct connection
      - name: state
        type: enum spop_conn_st
      - name: errcode
        type: enum spop_error
      - name: streams_limit
        type: uint32_t
      - name: max_id
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: dsi
        type: int32_t
      - name: dfi
        type: uint32_t
      - name: dfl
        type: uint32_t
      - name: dff
        type: uint32_t
      - name: dft
        type: uint8_t
      - name: dbuf
        type: struct buffer
      - name: mbuf[SPOP_C_MBUF_CNT]
        type: struct buffer
      - name: timeout
        type: int
      - name: shut_timeout
        type: int
      - name: max_frame_size
        type: unsigned int
      - name: nb_streams
        type: unsigned int
      - name: nb_sc
        type: unsigned int
      - name: nb_reserved
        type: unsigned int
      - name: stream_cnt
        type: unsigned int
      - name: term_evts_log
        type: uint32_t
      - name: '*proxy'
        type: struct proxy
      - name: '*agent'
        type: struct spoe_agent
      - name: '*task'
        type: struct task
      - name: streams_by_id
        type: struct eb_root
      - name: send_list
        type: struct list
      - name: buf_wait
        type: struct buffer_wait
      - name: wait_event
        type: struct wait_event
      item_type: struct
      name: spop_conn
      pos:
        line_end: 62
        line_start: 24
        source_file: /src/haproxy/src/mux_spop.c
    - fields:
      - name: '*sd'
        type: struct sedesc
      - name: '*sess'
        type: struct session
      - name: '*spop_conn'
        type: struct spop_conn
      - name: id
        type: int32_t
      - name: fid
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: errcode
        type: enum spop_error
      - name: state
        type: enum spop_strm_st
      - name: rxbuf
        type: struct buffer
      - name: by_id
        type: struct eb32_node
      - name: '*subs'
        type: struct wait_event
      - name: list
        type: struct list
      item_type: struct
      name: spop_strm
      pos:
        line_end: 82
        line_start: 65
        source_file: /src/haproxy/src/mux_spop.c
    - fields:
      - name: len
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: sid
        type: uint64_t
      - name: fid
        type: uint64_t
      - name: type
        type: uint8_t
      item_type: struct
      name: spop_frame_header
      pos:
        line_end: 91
        line_start: 85
        source_file: /src/haproxy/src/mux_spop.c
    typedefs: []
    union: []
- function_names:
  - stats_dump_fields_file
  - stats_dump_file_header
  - parse_header_line
  - load_ctr
  - parse_stat_line
  - apply_stats_file
  - shm_stats_file_check_ver
  - shm_hb_is_stale
  - shm_stats_file_slot_isfree
  - shm_stats_file_get_free_slot
  - shm_file_grow
  - shm_stats_file_reuse_object
  - shm_stats_file_add_object
  - shm_stats_file_hb
  - shm_stats_file_preload
  - shm_stats_file_prepare
  - cleanup_shm_stats_file
  source_file: /src/haproxy/src/stats-file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - haterm_usage
  - hbuf_alloc
  - free_hbuf
  - hbuf_appendf
  - hbuf_is_null
  - hstream_str_buf_append
  - haproxy_init_args
  - copy_argv
  source_file: /src/haproxy/src/haterm_init.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_BIND_LONG_OPT
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/haproxy/src/haterm_init.c
      type_or_value: '"quic-bind-opts"'
    - item_type: preproc_def
      name: TCP_BIND_LONG_OPT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/haproxy/src/haterm_init.c
      type_or_value: '"tcp-bind-opts"'
    - item_type: preproc_def
      name: HATERM_FRONTEND_NAME
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/src/haterm_init.c
      type_or_value: '"___haterm_frontend___"'
    - item_type: preproc_def
      name: HATERM_RSA_CERT_NAME
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/src/haterm_init.c
      type_or_value: '"haterm.pem.rsa"'
    - item_type: preproc_def
      name: HATERM_ECDSA_CERT_NAME
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/src/haterm_init.c
      type_or_value: '"haterm.pem.ecdsa"'
    - item_type: preproc_def
      name: HATERM_CFG_CRT_STORE_STR_FMT
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/haproxy/src/haterm_init.c
      type_or_value: "\"crt-store\\n\" \\\n            \"\\tload generate-dummy on
        keytype RSA bits %s crt \"     HATERM_RSA_CERT_NAME   \"\\n\" \\\n            \"\\tload
        generate-dummy on keytype ECDSA curves %s crt \" HATERM_ECDSA_CERT_NAME \"\\n\\n\""
    - item_type: preproc_def
      name: HBUF_NULL
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/src/haterm_init.c
      type_or_value: ((struct hbuf) { })
    - item_type: preproc_def
      name: HBUF_SIZE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/src/haterm_init.c
      type_or_value: '(16 << 10) '
    structs:
    - fields:
      - name: '*area'
        type: char
      - name: data
        type: size_t
      - name: size
        type: size_t
      item_type: struct
      name: hbuf
      pos:
        line_end: 67
        line_start: 63
        source_file: /src/haproxy/src/haterm_init.c
    typedefs: []
    union: []
- function_names:
  - resolv_fill_stats
  - resolv_active_families
  - find_resolvers_by_id
  - find_nameserver_by_resolvers_and_id
  - find_srvrq_by_name
  - new_resolv_srvrq
  - find_srvrq_answer_record
  - resolv_resolution_timeout
  - resolv_update_resolvers_timeout
  - resolv_build_query
  - resolv_send_query
  - resolv_run_resolution
  - resolv_trigger_resolution
  - resolv_reset_resolution
  - resolv_response_get_query_id
  - resolv_read_name
  - enter_resolver_code
  - abort_resolution
  - leave_resolver_code
  - resolv_srvrq_cleanup_srv
  - resolv_srvrq_expire_task
  - resolv_check_response
  - resolv_validate_dns_response
  - resolv_get_ip_from_response
  - resolv_dn_label_to_str
  - resolv_str_to_dn_label
  - resolv_hostname_validation
  - resolv_pick_resolution
  - resolv_purge_resolution_answer_records
  - resolv_free_resolution
  - resolv_get_requester
  - resolv_link_resolution
  - resolv_detach_from_resolution_answer_items
  - _resolv_unlink_resolution
  - resolv_unlink_resolution
  - resolv_process_responses
  - process_resolvers
  - resolvers_destroy
  - resolvers_deinit
  - resolvers_finalize_config
  - stats_dump_resolv_to_buffer
  - list_for_each_entry
  - stats_dump_resolvers
  - resolv_stats_clear_counters
  - list_for_each_entry
  - resolv_allocate_counters
  - list_for_each_entry
  - list_for_each_entry
  - cli_parse_stat_resolvers
  - cli_io_handler_dump_resolvers_to_buffer
  - action_prepare_for_resolution
  - resolv_action_do_resolve
  - release_resolv_action
  - resolv_parse_do_resolve
  - check_action_do_resolve
  - resolvers_setup_proxy
  - parse_resolve_conf
  - resolvers_new
  - cfg_parse_resolvers
  - resolvers_create_default
  - cfg_post_check_resolvers
  - cfg_parse_dns_accept_family
  - rslv_promex_metric_info
  - rslv_promex_start_ts
  - rslv_promex_next_ts
  - rslv_promex_fill_ts
  source_file: /src/haproxy/src/resolvers.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*forced_section'
        type: struct resolvers
      - name: '*resolvers'
        type: struct resolvers
      - name: '*ns'
        type: struct dns_nameserver
      item_type: struct
      name: show_resolvers_ctx
      pos:
        line_end: 224
        line_start: 220
        source_file: /src/haproxy/src/resolvers.c
    typedefs: []
    union: []
- function_names:
  - auth_find_userlist
  - check_group
  - userlist_free
  - userlist_postinit
  - check_user
  - pat_match_auth
  source_file: /src/haproxy/src/auth.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CRYPT_STATE_MSG
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/src/auth.c
      type_or_value: '"yes"'
    - item_type: preproc_def
      name: CRYPT_STATE_MSG
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/src/auth.c
      type_or_value: '"no"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cfg_parse_global
  - cfg_parse_prealloc_fd
  - cfg_parse_reject_privileged_ports
  - cfg_parse_global_master_worker
  - cfg_parse_global_mode
  - cfg_parse_global_disable_ktls
  - cfg_parse_global_disable_poller
  - cfg_parse_global_pidfile
  - cfg_parse_global_non_std_directives
  - cfg_parse_global_tune_opts
  - cfg_parse_global_tune_forward_opts
  - cfg_parse_global_unsupported_opts
  - cfg_parse_global_env_opts
  - cfg_parse_global_shm_stats_file
  - cfg_parse_global_shm_stats_file_max_objects
  - cfg_parse_global_parser_pause
  - cfg_parse_tune_renice
  - cfg_parse_global_chroot
  - cfg_parse_global_localpeer
  - cfg_parse_global_stress_level
  source_file: /src/haproxy/src/cfgparse-global.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ebst_lookup
  - ebst_insert
  source_file: /src/haproxy/src/ebsttree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sock_accept_conn
  - sock_handle_system_err
  - sock_create_server_socket
  - sock_enable
  - sock_disable
  - sock_unbind
  - sock_restore_unix_family
  - sock_get_src
  - sock_get_dst
  - sock_get_old_sockets
  - sock_find_compatible_fd
  - sock_drop_unused_old_sockets
  - sock_accepting_conn
  - sock_accept_iocb
  - sock_conn_ctrl_init
  - sock_conn_ctrl_close
  - sock_conn_get_opt
  - sock_conn_check
  - sock_conn_iocb
  - sock_drain
  - sock_check_events
  - sock_ignore_events
  - _sock_supports_reuseport
  source_file: /src/haproxy/src/sock.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SOCK_XFER_OPT_FOREIGN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/src/sock.c
      type_or_value: '0x000000001'
    - item_type: preproc_def
      name: SOCK_XFER_OPT_V6ONLY
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/src/sock.c
      type_or_value: '0x000000002'
    - item_type: preproc_def
      name: SOCK_XFER_OPT_DGRAM
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/src/sock.c
      type_or_value: '0x000000004'
    structs:
    - fields:
      - name: fd
        type: int
      - name: options
        type: int
      - name: '*iface'
        type: char
      - name: '*namespace'
        type: char
      - name: if_namelen
        type: int
      - name: ns_namelen
        type: int
      - name: '*prev'
        type: struct xfer_sock_list
      - name: '*next'
        type: struct xfer_sock_list
      - name: addr
        type: struct sockaddr_storage
      item_type: struct
      name: xfer_sock_list
      pos:
        line_end: 53
        line_start: 43
        source_file: /src/haproxy/src/sock.c
    typedefs: []
    union: []
- function_names:
  - init_peers_frontend
  - bind_conf_uniq_alloc
  - cfg_peers_add_peer
  - cfg_parse_peers
  source_file: /src/haproxy/src/cfgparse-peers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bn2base64url
  - EVP_PKEY_EC_to_pub_jwk
  - EVP_PKEY_RSA_to_pub_jwk
  - EVP_PKEY_to_pub_jwk
  - jws_b64_protected
  - jws_b64_payload
  - EVP_PKEY_to_jws_alg
  - jws_b64_signature
  - jws_b64_hmac_signature
  - jws_thumbprint
  - jws_flattened
  - jws_debug
  - jwk_debug
  - __jws_init
  source_file: /src/haproxy/src/jws.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FWLC_LBPRM_SEQ
  - FWLC_LBPRM_SMALLEST
  - fwlc_set_seq_and_smallest
  - fwlc_remove_from_tree
  - fwlc_proxy_deinit
  - fwlc_server_deinit
  - fwlc_dequeue_srv
  - fwlc_alloc_tree_elt
  - fwlc_get_tree_elt
  - fwlc_queue_srv
  - fwlc_lock_target_list
  - fwlc_get_key
  - fwlc_check_srv_key
  - fwlc_srv_reposition
  - fwlc_set_server_status_down
  - fwlc_set_server_status_up
  - fwlc_update_server_weight
  - fwlc_init_server_tree
  - fwlc_get_next_server
  source_file: /src/haproxy/src/lb_fwlc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: srv_list[FWLC_LISTS_NB]
        type: struct mt_list
      - name: free_list
        type: struct mt_list
      - name: lb_node
        type: struct eb32_node
      - name: elements
        type: unsigned int
      item_type: struct
      name: fwlc_tree_elt
      pos:
        line_end: 25
        line_start: 20
        source_file: /src/haproxy/src/lb_fwlc.c
    typedefs: []
    union: []
- function_names:
  - release_http_action
  - release_act_http_reply
  - check_act_http_reply
  - http_action_set_req_line
  - parse_set_req_line
  - http_action_normalize_uri
  - parse_http_normalize_uri
  - http_action_replace_uri
  - parse_replace_uri
  - action_http_set_status
  - parse_http_set_status
  - http_action_reject
  - parse_http_action_reject
  - http_req_disable_l7_retry
  - parse_http_req_disable_l7_retry
  - http_action_req_capture
  - http_action_req_capture_by_id
  - check_http_req_capture
  - release_http_capture
  - parse_http_req_capture
  - http_action_res_capture_by_id
  - check_http_res_capture
  - parse_http_res_capture
  - parse_http_allow
  - parse_http_deny
  - http_action_auth
  - parse_http_auth
  - http_action_early_hint
  - http_action_set_header
  - http_action_set_headers_bin
  - parse_http_set_header
  - parse_http_set_headers_bin
  - http_action_replace_header
  - parse_http_replace_header
  - http_action_del_header
  - parse_http_del_header
  - http_action_del_headers_bin
  - parse_http_del_headers_bin
  - http_action_pause
  - parse_http_pause
  - release_http_redir
  - parse_http_redirect
  - http_action_set_map
  - release_http_map
  - parse_http_set_map
  - http_action_track_sc
  - release_http_track_sc
  - parse_http_track_sc
  - action_timeout_set_stream_timeout
  - parse_http_set_timeout
  - http_action_strict_mode
  - parse_http_strict_mode
  - http_action_return
  - parse_http_return
  - http_action_wait_for_body
  - check_http_wait_for_body
  - parse_http_wait_for_body
  - init_do_log
  - parse_http_req_do_log
  - parse_http_res_do_log
  - parse_http_after_res_do_log
  source_file: /src/haproxy/src/http_act.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/src/version.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SANITIZE_STRING
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/src/version.c
      type_or_value: '" with address sanitizer"'
    - item_type: preproc_def
      name: SANITIZE_STRING
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/src/version.c
      type_or_value: '""'
    structs: []
    typedefs: []
    union: []
- function_names:
  - eb32_insert
  - eb32i_insert
  - eb32_lookup
  - eb32i_lookup
  - eb32_lookup_le
  - eb32_lookup_ge
  source_file: /src/haproxy/src/eb32tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - alloc_trace_buffers_per_thread
  - free_trace_buffers_per_thread
  - trace_pick_arg
  - __trace_enabled
  - __trace
  - trace_no_cb
  - trace_source_reset
  - trace_register_source
  - trace_find_source
  - trace_find_event
  - trace_parse_level
  - trace_source_parse_verbosity
  - _trace_get_sink
  - trace_enforce_origin_priority
  - _trace_parse_statement
  - trace_parse_statement
  - trace_add_cmd
  - _trace_parse_cmd
  - trace_parse_cmd
  - trace_parse_cmds
  - cfg_parse_trace
  - cfg_parse_traces
  - cli_parse_trace
  - cli_parse_show_trace
  source_file: /src/haproxy/src/trace.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: next
        type: struct list
      - name: '*arg'
        type: char
      item_type: struct
      name: trace_cmd
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/haproxy/src/trace.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/src/ceb64_tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CEB_KEY_TYPE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/ceb64_tree.c
      type_or_value: uint64_t
    - item_type: preproc_def
      name: CEB_KEY_MEMBER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/ceb64_tree.c
      type_or_value: u64
    - item_type: preproc_def
      name: CEB_MKEY_PFX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/src/ceb64_tree.c
      type_or_value: ceb64
    - item_type: preproc_def
      name: CEB_UKEY_PFX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/src/ceb64_tree.c
      type_or_value: cebu64
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/src/cebb_tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CEB_KEY_TYPE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/cebb_tree.c
      type_or_value: CEB_KT_MB
    - item_type: preproc_def
      name: CEB_KEY_MEMBER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/cebb_tree.c
      type_or_value: mb
    - item_type: preproc_def
      name: CEB_MKEY_PFX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/src/cebb_tree.c
      type_or_value: cebb
    - item_type: preproc_def
      name: CEB_UKEY_PFX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/src/cebb_tree.c
      type_or_value: cebub
    structs: []
    typedefs: []
    union: []
- function_names:
  - htx_memcpy
  - htx_defrag
  - htx_defrag_blks
  - htx_reserve_nxblk
  - htx_prepare_blk_expansion
  - htx_add_blk
  - htx_remove_blk
  - htx_find_offset
  - htx_truncate
  - htx_truncate_blk
  - htx_drain
  - htx_add_data_atonce
  - htx_replace_blk_value
  - htx_xfer
  - htx_xfer_blks
  - htx_replace_header
  - htx_replace_stline
  - htx_reserve_max_data
  - htx_add_data
  - htx_add_last_data
  - htx_move_blk_before
  - htx_append_msg
  - __htx_xfer_to_small_buffer
  - __htx_xfer_to_large_buffer
  - htx_move_to_small_buffer
  - htx_move_to_large_buffer
  - htx_copy_to_small_buffer
  - htx_copy_to_large_buffer
  source_file: /src/haproxy/src/htx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - guid_init
  - guid_insert
  - guid_remove
  - guid_lookup
  - guid_is_valid_fmt
  - guid_name
  - guid_count
  source_file: /src/haproxy/src/guid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ha_cpuset_detect_online
  - cpu_detect_usable
  - ha_cpuset_detect_bound
  - cpu_map_configured
  - cpu_topo_debug
  - cpu_topo_dump_summary
  - _cmp_cpu_index
  - _cmp_cpu_locality
  - _cmp_cpu_cluster_capa
  - _cmp_cpu_cluster
  - cpu_reorder_by_index
  - cpu_reorder_by_locality
  - cpu_reorder_by_cluster
  - cpu_reorder_by_cluster_capa
  - _cmp_cluster_index
  - _cmp_cluster_capa
  - _cmp_cluster_avg_capa
  - cpu_cluster_reorder_by_index
  - cpu_cluster_reorder_by_capa
  - cpu_cluster_reorder_by_avg_capa
  - cpu_topo_get_maxcpus
  - cpu_fixup_topology
  - cpu_compose_clusters
  - cpu_refine_cpusets
  - find_next_cpu_tsid
  - find_next_cpu_ccx
  - cpu_policy_first_usable_node
  - cpu_policy_assign_threads
  - cpu_policy_group_by_cluster
  - cpu_policy_group_by_ccx
  - cpu_policy_performance
  - cpu_policy_efficiency
  - cpu_policy_resource
  - cpu_apply_policy
  - cpu_detect_topology
  - cpu_detect_topology
  - cpu_detect_topology
  - cfg_parse_cpu_affinity
  - cfg_parse_cpu_set
  - cfg_parse_cpu_policy
  - cpu_topo_alloc
  - cpu_topo_deinit
  source_file: /src/haproxy/src/cpu_topo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CPU_SET_FL_NONE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/haproxy/src/cpu_topo.c
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: CPU_SET_FL_DO_RESET
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/haproxy/src/cpu_topo.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: CPU_POLICY_ONE_THREAD_PER_CORE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/src/cpu_topo.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CPU_POLICY_SET_IN_CONFIG
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/src/cpu_topo.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CPU_AFFINITY_PER_GROUP
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/src/cpu_topo.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CPU_AFFINITY_PER_CORE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/src/cpu_topo.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CPU_AFFINITY_PER_THREAD
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/src/cpu_topo.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CPU_AFFINITY_PER_CCX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/src/cpu_topo.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: CPU_AFFINITY_PER_GROUP_LOOSE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/src/cpu_topo.c
      type_or_value: (1 << 8)
    structs:
    - fields:
      - name: flags
        type: uint
      - name: only_cpus
        type: struct hap_cpuset
      - name: drop_cpus
        type: struct hap_cpuset
      - name: only_nodes
        type: struct hap_cpuset
      - name: drop_nodes
        type: struct hap_cpuset
      - name: only_clusters
        type: struct hap_cpuset
      - name: drop_clusters
        type: struct hap_cpuset
      - name: only_cores
        type: struct hap_cpuset
      - name: drop_cores
        type: struct hap_cpuset
      - name: only_threads
        type: struct hap_cpuset
      - name: drop_threads
        type: struct hap_cpuset
      item_type: struct
      name: cpu_set_cfg
      pos:
        line_end: 62
        line_start: 45
        source_file: /src/haproxy/src/cpu_topo.c
    - fields:
      - name: cpu_policy
        type: int
      - name: flags
        type: int
      - name: affinity
        type: int
      item_type: struct
      name: "cpu_policy_conf = {\n\t\t\t1, /* \"performance\" policy */\n\t\t\t0,
        /* Default flags */\n\t\t\t0, /* Default affinity */\n}"
      pos:
        line_end: 69
        line_start: 65
        source_file: /src/haproxy/src/cpu_topo.c
    - fields:
      - name: '*name'
        type: char
      - name: affinity_flag
        type: int
      item_type: struct
      name: cpu_affinity_optional
      pos:
        line_end: 78
        line_start: 75
        source_file: /src/haproxy/src/cpu_topo.c
    - fields:
      - name: '*name'
        type: char
      - name: affinity_flags
        type: int
      - name: '*optional'
        type: struct cpu_affinity_optional
      item_type: struct
      name: cpu_affinity
      pos:
        line_end: 90
        line_start: 86
        source_file: /src/haproxy/src/cpu_topo.c
    typedefs: []
    union: []
- function_names:
  - FLT_TRACE
  - FLT_STRM_TRACE
  - channel_label
  - proxy_mode
  - stream_pos
  - filter_type
  - trace_hexdump
  - trace_raw_hexdump
  - trace_htx_hexdump
  - trace_get_htx_datalen
  - trace_init
  - trace_deinit
  - trace_check
  - trace_init_per_thread
  - trace_deinit_per_thread
  - trace_attach
  - trace_detach
  - trace_stream_start
  - trace_stream_set_backend
  - trace_stream_stop
  - trace_check_timeouts
  - trace_chn_start_analyze
  - trace_chn_analyze
  - trace_chn_end_analyze
  - trace_http_headers
  - trace_http_payload
  - trace_http_end
  - trace_http_reset
  - trace_http_reply
  - trace_tcp_payload
  - parse_trace_flt
  source_file: /src/haproxy/src/flt_trace.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_F_QUIET
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/src/flt_trace.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: TRACE_F_RAND_FWD
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/src/flt_trace.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: TRACE_F_HEXDUMP
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/flt_trace.c
      type_or_value: '0x00000004'
    structs:
    - fields:
      - name: '*proxy'
        type: struct proxy
      - name: '*name'
        type: char
      - name: flags
        type: unsigned int
      - name: max_fwd
        type: unsigned int
      item_type: struct
      name: trace_config
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/haproxy/src/flt_trace.c
    typedefs: []
    union: []
- function_names:
  - stats_emit_json_field_tags
  - stats_emit_json_data_field
  - stats_print_proxy_field_json
  - stats_print_rslv_field_json
  - stats_dump_json_header
  - stats_dump_fields_json
  - stats_dump_json_end
  - stats_dump_json_info_fields
  - stats_dump_json_schema
  - stats_dump_json_schema_to_buffer
  source_file: /src/haproxy/src/stats-json.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: JSON_INT_MAX
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/src/stats-json.c
      type_or_value: ((1LL << 53) - 1)
    - item_type: preproc_def
      name: JSON_INT_MIN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/src/stats-json.c
      type_or_value: (0 - JSON_INT_MAX)
    structs: []
    typedefs: []
    union: []
- function_names:
  - ssl_load_global_issuers_from_path
  - ssl_parse_global_ssl_async
  - ssl_parse_global_ssl_engine
  - ssl_parse_global_ssl_propquery
  - ssl_parse_global_ssl_provider
  - ssl_parse_global_ssl_provider_path
  - ssl_parse_global_ciphers
  - ssl_parse_global_ciphersuites
  - ssl_parse_global_curves
  - ssl_parse_global_sigalgs
  - ssl_parse_global_client_sigalgs
  - ssl_parse_global_int
  - ssl_parse_global_capture_buffer
  - ssl_parse_global_keylog
  - ssl_parse_global_keylog
  - ssl_parse_certificate_compression
  - ssl_parse_certificate_compression
  - ssl_parse_global_private_cache
  - ssl_parse_global_lifetime
  - ssl_parse_global_dh_param_file
  - ssl_parse_global_default_dh
  - ssl_parse_global_extra_files
  - ssl_parse_global_extra_noext
  - ssl_parse_global_passphrase_cmd
  - ssl_bind_parse_ca_file_common
  - ssl_bind_parse_ca_file
  - bind_parse_ca_file
  - ssl_bind_parse_ca_verify_file
  - bind_parse_ca_verify_file
  - bind_parse_ca_sign_file
  - bind_parse_ca_sign_pass
  - ssl_bind_parse_ciphers
  - bind_parse_ciphers
  - ssl_bind_parse_ciphersuites
  - bind_parse_ciphersuites
  - bind_parse_crt
  - bind_parse_crt_list
  - ssl_bind_parse_crl_file
  - bind_parse_crl_file
  - ssl_bind_parse_curves
  - bind_parse_curves
  - ssl_bind_parse_ktls
  - bind_parse_ktls
  - ssl_bind_parse_sigalgs
  - bind_parse_sigalgs
  - ssl_bind_parse_client_sigalgs
  - bind_parse_client_sigalgs
  - ssl_bind_parse_ecdhe
  - bind_parse_ecdhe
  - bind_parse_ignore_err
  - parse_tls_method_options
  - bind_parse_tls_method_options
  - srv_parse_tls_method_options
  - parse_tls_method_minmax
  - ssl_bind_parse_tls_method_minmax
  - bind_parse_tls_method_minmax
  - srv_parse_tls_method_minmax
  - bind_parse_no_tls_tickets
  - ssl_bind_parse_allow_0rtt
  - bind_parse_allow_0rtt
  - ssl_bind_parse_npn
  - bind_parse_npn
  - ssl_sock_parse_alpn
  - ssl_bind_parse_alpn
  - bind_parse_alpn
  - bind_parse_ssl
  - bind_parse_pcc
  - bind_parse_generate_certs
  - bind_parse_strict_sni
  - bind_parse_tls_ticket_keys
  - ssl_bind_parse_verify
  - bind_parse_verify
  - ssl_bind_parse_no_alpn
  - bind_parse_no_alpn
  - ssl_bind_parse_no_ca_names
  - bind_parse_no_ca_names
  - srv_parse_npn
  - parse_alpn
  - srv_parse_alpn
  - srv_parse_check_alpn
  - srv_parse_ca_file
  - srv_parse_check_sni
  - srv_parse_renegotiate
  - ssl_sock_init_srv
  - srv_parse_check_ssl
  - srv_parse_ciphers
  - srv_parse_ciphersuites
  - srv_parse_client_sigalgs
  - srv_parse_crl_file
  - srv_parse_curves
  - srv_parse_crt
  - srv_parse_check_sni_auto
  - srv_parse_no_check_sni_auto
  - srv_parse_no_check_ssl
  - srv_parse_no_send_proxy_ssl
  - srv_parse_no_send_proxy_cn
  - srv_parse_no_ssl
  - srv_parse_ktls
  - srv_parse_allow_0rtt
  - srv_parse_no_ssl_reuse
  - srv_parse_no_tls_tickets
  - srv_parse_send_proxy_ssl
  - srv_parse_send_proxy_cn
  - srv_parse_sigalgs
  - srv_parse_sni
  - srv_parse_sni_auto
  - srv_parse_no_sni_auto
  - srv_parse_ssl
  - srv_parse_ssl_reuse
  - srv_parse_tls_tickets
  - srv_parse_verify
  - srv_parse_verifyhost
  - ssl_parse_default_bind_options
  - ssl_parse_default_server_options
  - ssl_parse_global_path_base
  - ssl_parse_security_level
  - ssl_parse_skip_self_issued_ca
  - proxy_parse_ssl_f_use
  - post_section_frontend_crt_init
  source_file: /src/haproxy/src/cfgparse-ssl.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: linenum
        type: int
      - name: '*filename'
        type: char
      - name: '*ssl_conf'
        type: struct ssl_bind_conf
      - name: '*ckch_conf'
        type: struct ckch_conf
      - name: list
        type: struct list
      item_type: struct
      name: cfg_crt_node
      pos:
        line_end: 2426
        line_start: 2420
        source_file: /src/haproxy/src/cfgparse-ssl.c
    typedefs: []
    union: []
- function_names:
  - signal_handler
  - __signal_process_queue
  - signal_init
  - haproxy_unblock_signals
  - deinit_signals
  - signal_register_fct
  - signal_register_task
  - signal_unregister_handler
  - signal_unregister_target
  - signal_unregister
  source_file: /src/haproxy/src/signal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/src/cebl_tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CEB_KEY_TYPE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/src/cebl_tree.c
      type_or_value: unsigned long
    - item_type: preproc_def
      name: CEB_KEY_MEMBER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/cebl_tree.c
      type_or_value: ul
    - item_type: preproc_def
      name: CEB_MKEY_PFX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/src/cebl_tree.c
      type_or_value: cebl
    - item_type: preproc_def
      name: CEB_UKEY_PFX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/src/cebl_tree.c
      type_or_value: cebul
    structs: []
    typedefs: []
    union: []
- function_names:
  - cache_rdlock
  - cache_rdunlock
  - cache_wrlock
  - cache_wrunlock
  - get_entry
  - retain_entry
  - release_entry
  - release_entry_locked
  - release_entry_unlocked
  - secondary_key_cmp
  - get_secondary_entry
  - get_cache_tree_from_hash
  - clear_expired_duplicates
  - insert_entry
  - delete_entry
  - shctx_ptr
  - block_ptr
  - cache_store_init
  - cache_store_deinit
  - cache_store_check
  - cache_store_strm_init
  - cache_store_strm_deinit
  - cache_store_post_analyze
  - cache_store_http_headers
  - disable_cache_entry
  - cache_store_http_payload
  - cache_store_http_end
  - directive_value
  - http_calc_maxage
  - cache_free_blocks
  - cache_reserve_finish
  - get_last_modified_time
  - http_check_vary_header
  - set_secondary_key_encoding
  - http_action_store_cache
  - http_cache_applet_release
  - htx_cache_dump_blk
  - htx_cache_dump_data_blk
  - htx_cache_dump_msg
  - ff_cache_dump_data_blk
  - ff_cache_dump_msg
  - htx_cache_add_age_hdr
  - http_cache_fastfwd
  - http_cache_io_handler
  - parse_cache_rule
  - parse_cache_store
  - sha1_hosturi
  - should_send_notmodified_response
  - http_action_req_cache_use
  - parse_cache_use
  - cfg_parse_cache
  - cfg_post_parse_section_cache
  - post_check_cache
  - CHECK_ENCODING
  - parse_encoding_value
  - accept_encoding_normalizer
  - default_normalizer
  - accept_encoding_bitmap_cmp
  - http_request_prebuild_full_secondary_key
  - http_request_build_secondary_key
  - http_request_reduce_secondary_key
  - parse_cache_flt
  - cli_parse_show_cache
  - cli_io_handler_show_cache
  - smp_fetch_res_cache_hit
  - smp_fetch_res_cache_name
  - cache_init
  source_file: /src/haproxy/src/cache.c
  types:
    enum:
    - enumerators:
      - name: VARY_ACCEPT_ENCODING
        value: (1 << 0)
      - name: VARY_REFERER
        value: (1 << 1)
      - name: VARY_ORIGIN
        value: (1 << 2)
      - name: VARY_LAST
      item_type: enum
      name: vary_header_bit
      pos:
        line_end: 109
        line_start: 104
        source_file: /src/haproxy/src/cache.c
    - enumerators:
      - name: VARY_ENCODING_GZIP
        value: (1 << 0)
      - name: VARY_ENCODING_COMPRESS
        value: (1 << 3)
      - name: VARY_ENCODING_AES128GCM
        value: (1 << 4)
      - name: VARY_ENCODING_DEFLATE
        value: (1 << 1)
      - name: VARY_ENCODING_BR
        value: (1 << 2)
      - name: VARY_ENCODING_EXI
        value: (1 << 5)
      - name: VARY_ENCODING_PACK200_GZIP
        value: (1 << 6)
      - name: VARY_ENCODING_ZSTD
        value: (1 << 7)
      - name: VARY_ENCODING_IDENTITY
        value: (1 << 8)
      - name: VARY_ENCODING_STAR
        value: (1 << 9)
      - name: VARY_ENCODING_OTHER
        value: (1 << 10)
      item_type: enum
      name: vary_encoding
      pos:
        line_end: 128
        line_start: 116
        source_file: /src/haproxy/src/cache.c
    preproc_defs:
    - item_type: preproc_def
      name: CACHE_FLT_F_IMPLICIT_DECL
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/haproxy/src/cache.c
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: CACHE_FLT_INIT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/src/cache.c
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: DEFAULT_MAX_SECONDARY_ENTRY
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/haproxy/src/cache.c
      type_or_value: '10'
    - item_type: preproc_def
      name: CACHE_BLOCKSIZE
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/haproxy/src/cache.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: CACHE_ENTRY_MAX_AGE
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/haproxy/src/cache.c
      type_or_value: 2147483648U
    - item_type: preproc_def
      name: HTX_CACHE_INIT
      pos:
        line_end: 1465
        line_start: 1464
        source_file: /src/haproxy/src/cache.c
      type_or_value: '0  '
    - item_type: preproc_def
      name: HTX_CACHE_HEADER
      pos:
        line_end: 1466
        line_start: 1465
        source_file: /src/haproxy/src/cache.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: HTX_CACHE_DATA
      pos:
        line_end: 1467
        line_start: 1466
        source_file: /src/haproxy/src/cache.c
      type_or_value: '2  '
    - item_type: preproc_def
      name: HTX_CACHE_EOM
      pos:
        line_end: 1468
        line_start: 1467
        source_file: /src/haproxy/src/cache.c
      type_or_value: '3  '
    - item_type: preproc_def
      name: HTX_CACHE_END
      pos:
        line_end: 1469
        line_start: 1468
        source_file: /src/haproxy/src/cache.c
      type_or_value: '4  '
    - item_type: preproc_def
      name: ACCEPT_ENCODING_MAX_ENTRIES
      pos:
        line_end: 2691
        line_start: 2690
        source_file: /src/haproxy/src/cache.c
      type_or_value: '16'
    structs:
    - fields:
      - name: entries
        type: struct eb_root
      - name: cleanup_list
        type: struct list
      item_type: struct
      name: cache_tree
      pos:
        line_end: 57
        line_start: 51
        source_file: /src/haproxy/src/cache.c
    - fields:
      - name: trees[CACHE_TREE_NUM]
        type: struct cache_tree
      - name: list
        type: struct list
      - name: maxage
        type: unsigned int
      - name: maxblocks
        type: unsigned int
      - name: maxobjsz
        type: unsigned int
      - name: max_secondary_entries
        type: unsigned int
      - name: vary_processing_enabled
        type: uint8_t
      - name: id[33]
        type: char
      item_type: struct
      name: cache
      pos:
        line_end: 68
        line_start: 59
        source_file: /src/haproxy/src/cache.c
    - fields:
      - name: '*cache'
        type: struct cache
      - name: '*cache_tree'
        type: struct cache_tree
      - name: '*entry'
        type: struct cache_entry
      - name: sent
        type: unsigned int
      - name: offset
        type: unsigned int
      - name: rem_data
        type: unsigned int
      - name: send_notmodified
        type: unsigned int
      - name: unused
        type: unsigned int
      - name: '*next'
        type: struct shared_block
      item_type: struct
      name: cache_appctx
      pos:
        line_end: 82
        line_start: 71
        source_file: /src/haproxy/src/cache.c
    - fields:
      - name: c
        type: "union {\n\t\tstruct cache *cache; /* cache used by the filter */\n\t\tchar
          *name;          /* cache name used during conf parsing */\n\t}"
      - name: flags
        type: unsigned int
      item_type: struct
      name: cache_flt_conf
      pos:
        line_end: 91
        line_start: 85
        source_file: /src/haproxy/src/cache.c
    - fields:
      - name: '*cache'
        type: struct cache
      - name: '*cache_tree'
        type: struct cache_tree
      - name: next_key
        type: uint
      item_type: struct
      name: show_cache_ctx
      pos:
        line_end: 98
        line_start: 94
        source_file: /src/haproxy/src/cache.c
    - fields:
      - name: hdr_name
        type: struct ist
      - name: value
        type: enum vary_header_bit
      - name: hash_length
        type: unsigned int
      - name: (*norm_fn)(struct htx*,struct ist hdr_name,char* buf,unsigned int* buf_len)
        type: int
      - name: (*cmp_fn)(const void *ref, const void *new, unsigned int len)
        type: int
      item_type: struct
      name: vary_hashing_information
      pos:
        line_end: 136
        line_start: 130
        source_file: /src/haproxy/src/cache.c
    - fields:
      - name: '*first_block'
        type: struct shared_block
      - name: detached_head
        type: struct list
      item_type: struct
      name: cache_st
      pos:
        line_end: 188
        line_start: 185
        source_file: /src/haproxy/src/cache.c
    - fields:
      - name: complete
        type: unsigned int
      - name: latest_validation
        type: unsigned int
      - name: expire
        type: unsigned int
      - name: age
        type: unsigned int
      - name: body_size
        type: unsigned int
      - name: refcount
        type: int
      - name: eb
        type: struct eb32_node
      - name: hash[20]
        type: char
      - name: cleanup_list
        type: struct list
      - name: secondary_key[HTTP_CACHE_SEC_KEY_LEN]
        type: char
      - name: secondary_key_signature
        type: unsigned int
      - name: secondary_entries_count
        type: unsigned int
      - name: last_clear_ts
        type: unsigned int
      - name: etag_length
        type: unsigned int
      - name: etag_offset
        type: unsigned int
      - name: last_modified
        type: time_t
      - name: data[0]
        type: unsigned char
      item_type: struct
      name: cache_entry
      pos:
        line_end: 222
        line_start: 192
        source_file: /src/haproxy/src/cache.c
    typedefs: []
    union: []
- function_names:
  - frontend_accept
  - increment_actconn
  - smp_fetch_fe_id
  - smp_fetch_fe_name
  - smp_fetch_fe_defbe
  - smp_fetch_fe_req_rate
  - smp_fetch_fe_sess_rate
  - smp_fetch_fe_conn
  - smp_fetch_fe_client_timeout
  - smp_fetch_fe_tarpit_timeout
  - sample_conv_fe_exists
  source_file: /src/haproxy/src/frontend.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BUG_ON
  - BUG_ON_HOT
  - ncbmb_peek
  - ncbmb_set_bitmap
  - itbmap_is_full
  - itbmap_load
  - itbmap_get
  - itbmap_next
  - bit_unset
  - ncbmb_init
  - ncbmb_make
  - ncbmb_total_data
  - ncbmb_is_empty
  - ncbmb_is_full
  - ncbmb_is_fragmented
  - ncbmb_data
  - ncbmb_add
  - ncbmb_advance
  - ncbmbuf_print_buf
  - NCBMB_DATA_EQ
  - test_ncbmb
  - ITBMAP_CHECK
  - test_itbmap
  - test_ngtcp2_crypto
  - main
  source_file: /src/haproxy/src/ncbmbuf.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*b'
        type: unsigned char
      - name: 'off'
        type: ncb_sz_t
      - name: mask
        type: unsigned char
      - name: bits
        type: unsigned char
      item_type: struct
      name: itbmap
      pos:
        line_end: 72
        line_start: 67
        source_file: /src/haproxy/src/ncbmbuf.c
    typedefs: []
    union: []
- function_names:
  - qc_ssl_compat_add_tps_cb
  - quic_tls_compat_init
  - quic_tls_compat_set_encryption_secret
  - quic_tls_compat_keylog_callback
  - quic_tls_compat_create_header
  - quic_tls_compute_nonce
  - quic_tls_tls_seal
  - quic_tls_compat_create_record
  - quic_tls_compat_msg_callback
  - SSL_set_quic_method
  - SSL_quic_read_level
  - SSL_quic_write_level
  - SSL_provide_quic_data
  - SSL_process_quic_post_handshake
  - SSL_set_quic_transport_params
  source_file: /src/haproxy/src/quic_openssl_compat.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_OPENSSL_COMPAT_RECORD_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/src/quic_openssl_compat.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: QUIC_TLS_KEY_LABEL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/src/quic_openssl_compat.c
      type_or_value: '"key"'
    - item_type: preproc_def
      name: QUIC_TLS_IV_LABEL
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/src/quic_openssl_compat.c
      type_or_value: '"iv"'
    structs:
    - fields:
      - name: type
        type: unsigned char
      - name: '*payload'
        type: unsigned char
      - name: payload_len
        type: size_t
      - name: number
        type: uint64_t
      - name: '*keys'
        type: struct quic_tls_compat_keys
      item_type: struct
      name: quic_tls_compat_record
      pos:
        line_end: 33
        line_start: 27
        source_file: /src/haproxy/src/quic_openssl_compat.c
    typedefs: []
    union: []
- function_names:
  - resolve_stick_rule
  - free_stick_rules
  - list_for_each_entry_safe
  - free_server_rules
  - list_for_each_entry_safe
  - proxy_free_common
  - deinit_proxy
  - proxy_drop
  - proxy_cap_str
  - proxy_mode_str
  - str_to_proxy_mode
  - proxy_find_best_option
  - proxy_get_next_id
  - proxy_parse_timeout
  - proxy_parse_rate_limit
  - proxy_parse_max_ka_queue
  - proxy_parse_declare
  - proxy_parse_retry_on
  - proxy_parse_hash_preserve_affinity
  - proxy_parse_tcpka_cnt
  - proxy_parse_tcpka_idle
  - proxy_parse_tcpka_intvl
  - proxy_parse_force_be_switch
  - proxy_parse_guid
  - proxy_store_name
  - proxy_find_by_id
  - proxy_find_by_name
  - proxy_find_best_match
  - proxy_cfg_ensure_no_http
  - proxy_cfg_ensure_no_log
  - init_new_proxy
  - proxy_init_per_thr
  - proxy_finalize
  - defaults_px_free
  - defaults_px_destroy
  - defaults_px_destroy_all_unref
  - defaults_px_detach
  - defaults_px_ref_all
  - defaults_px_unref_all
  - defaults_px_ref
  - proxy_ref_defaults
  - proxy_unref_defaults
  - setup_new_proxy
  - alloc_new_proxy
  - proxy_take
  - proxy_postcheck
  - proxy_defproxy_cpy
  - parse_new_proxy
  - proxy_cond_pause
  - proxy_cond_resume
  - proxy_cond_disable
  - manage_proxy
  - proxy_parse_grace
  - proxy_parse_hard_stop_after
  - proxy_parse_close_spread_time
  - hard_stop
  - do_soft_stop_now
  - grace_expired
  - soft_stop
  - pause_proxy
  - stop_proxy
  - resume_proxy
  - stream_set_backend
  - proxy_capture_error
  - proxy_adjust_all_maxconn
  - post_section_px_cleanup
  - cli_find_frontend
  - cli_find_backend
  - cli_parse_show_servers
  - dump_server_addr
  - dump_servers_state
  - cli_io_handler_servers_state
  - cli_io_handler_show_backend
  - cli_parse_enable_dyncookie_backend
  - cli_parse_disable_dyncookie_backend
  - cli_parse_set_dyncookie_key_backend
  - cli_parse_set_maxconn_frontend
  - cli_parse_shutdown_frontend
  - cli_parse_add_backend
  - be_check_for_deletion
  - cli_parse_delete_backend
  - cli_parse_disable_frontend
  - cli_parse_enable_frontend
  - cli_parse_publish_backend
  - cli_parse_unpublish_backend
  - cli_parse_show_errors
  - cli_io_handler_show_errors
  source_file: /src/haproxy/src/proxy.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*px'
        type: struct proxy
      - name: '*sv'
        type: struct server
      - name: only_pxid
        type: uint
      - name: show_conn
        type: int
      - name: state
        type: "enum {\n\t\tSHOW_SRV_HEAD = 0,\n\t\tSHOW_SRV_LIST,\n\t}"
      item_type: struct
      name: show_srv_ctx
      pos:
        line_end: 94
        line_start: 85
        source_file: /src/haproxy/src/proxy.c
    - fields:
      - name: '*px'
        type: struct proxy
      - name: flag
        type: unsigned int
      - name: ev_id
        type: unsigned int
      - name: iid
        type: int
      - name: ptr
        type: int
      - name: bol
        type: int
      item_type: struct
      name: show_errors_ctx
      pos:
        line_end: 5264
        line_start: 5257
        source_file: /src/haproxy/src/proxy.c
    typedefs: []
    union: []
- function_names:
  - ssl_sock_parse_sctl
  - ssl_sock_load_sctl_from_file
  - ssl_sock_load_ocsp_response_from_file
  - ssl_sock_load_files_into_ckch
  - ssl_sock_load_key_into_ckch
  - ssl_sock_load_pem_into_ckch
  - ssl_sock_free_cert_key_and_chain_contents
  - ssl_sock_copy_cert_key_and_chain
  - ssl_sock_load_issuer_file_into_ckch
  - ckch_store_free
  - ckch_store_new
  - ckchs_dup
  - ckchs_lookup
  - ckch_store_new_load_files_path
  - ckch_store_new_load_files_conf
  - ckch_inst_free
  - ckch_inst_new
  - ssl_store_get_cafile_entry
  - ssl_store_add_uncommitted_cafile_entry
  - ssl_store_get0_locations_file
  - ssl_store_create_cafile_entry
  - ssl_store_dup_cafile_entry
  - ssl_store_delete_cafile_entry
  - ssl_store_load_ca_from_buf
  - ha_default_cert_dir
  - __ssl_store_load_locations_file
  - ssl_store_load_locations_file
  - cli_release_show_sni
  - cli_io_handler_show_sni
  - cli_parse_show_sni
  - cli_release_show_cert
  - cli_io_handler_show_cert
  - ssl_sock_get_san_oneline
  - do_chain_inst_and_cafile
  - ckch_inst_add_cafile_link
  - ckch_store_show_ocsp_certid
  - cli_io_handler_show_cert_detail
  - cli_io_handler_show_cert_ocsp_detail
  - cli_parse_show_cert
  - cli_parse_dump_cert
  - cli_set_ssl_jwt
  - cli_parse_add_jwt
  - cli_parse_del_jwt
  - cli_parse_show_jwt
  - cli_io_handler_show_jwt
  - cli_release_show_jwt
  - cli_io_handler_dump_cert
  - cli_release_dump_cert
  - ckch_store_update_init
  - ckch_store_update_process
  - ckch_store_update_cleanup
  - cli_release_commit_cert
  - ckch_inst_rebuild
  - __ssl_sock_load_new_ckch_instance
  - __ckch_inst_free_locked
  - ckch_store_replace
  - ckch_store_rebuild_instances
  - cli_io_handler_commit_cert
  - cli_parse_commit_cert
  - ckch_store_load_payload
  - cli_parse_set_cert
  - cli_parse_abort_cert
  - ckch_store_create
  - cli_parse_new_cert
  - cli_parse_del_cert
  - cli_parse_new_cafile
  - cli_parse_set_cafile
  - cli_parse_commit_cafile
  - cli_io_handler_commit_cafile_crlfile
  - cli_parse_abort_cafile
  - cli_release_commit_cafile
  - cli_io_handler_show_cafile_detail
  - cli_parse_show_cafile
  - cli_release_show_cafile
  - get_certificate_count
  - cli_io_handler_show_cafile
  - cli_parse_del_cafile
  - cli_parse_new_crlfile
  - cli_parse_set_crlfile
  - cli_parse_commit_crlfile
  - cli_release_commit_crlfile
  - cli_parse_del_crlfile
  - cli_parse_abort_crlfile
  - show_crl_detail
  - cli_io_handler_show_crlfile_detail
  - cli_parse_show_crlfile
  - cli_io_handler_show_crlfile
  - cli_release_show_crlfile
  - ckch_deinit
  - ckch_conf_load_pem_or_generate
  - ckch_conf_load_key_or_generate
  - ckch_store_load_files
  - crtstore_parse_path_base
  - ckch_conf_cmp
  - ckch_conf_cmp_empty
  - ckch_conf_parse
  - ckch_conf_clean
  - crtstore_parse_load
  - cfg_parse_crtstore
  - cfg_post_parse_crtstore
  source_file: /src/haproxy/src/ssl_ckch.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHOW_SNI_OPT_1FRONTEND
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/src/ssl_ckch.c
      type_or_value: '(1 << 0) '
    - item_type: preproc_def
      name: SHOW_SNI_OPT_NOTAFTER
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/src/ssl_ckch.c
      type_or_value: '(1 << 1) '
    structs:
    - fields:
      - name: '*new_ckchs'
        type: struct ckch_store
      - name: '*old_ckchs'
        type: struct ckch_store
      - name: '*path'
        type: char
      item_type: struct
      name: ckchs_transaction
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/haproxy/src/ssl_ckch.c
    - fields:
      - name: '*old_cafile_entry'
        type: struct cafile_entry
      - name: '*new_cafile_entry'
        type: struct cafile_entry
      - name: '*path'
        type: char
      item_type: struct
      name: cafile_transaction
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/haproxy/src/ssl_ckch.c
    - fields:
      - name: '*old_crlfile_entry'
        type: struct cafile_entry
      - name: '*new_crlfile_entry'
        type: struct cafile_entry
      - name: '*path'
        type: char
      item_type: struct
      name: crlfile_transaction
      pos:
        line_end: 67
        line_start: 63
        source_file: /src/haproxy/src/ssl_ckch.c
    - fields:
      - name: '*cur_cafile_entry'
        type: struct cafile_entry
      - name: '*old_cafile_entry'
        type: struct cafile_entry
      - name: ca_index
        type: int
      - name: show_all
        type: int
      item_type: struct
      name: show_cafile_ctx
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/haproxy/src/ssl_ckch.c
    - fields:
      - name: '*cafile_entry'
        type: struct cafile_entry
      - name: '*old_crlfile_entry'
        type: struct cafile_entry
      - name: index
        type: int
      item_type: struct
      name: show_crlfile_ctx
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/haproxy/src/ssl_ckch.c
    - fields:
      - name: '*old_ckchs'
        type: struct ckch_store
      - name: '*cur_ckchs'
        type: struct ckch_store
      - name: transaction
        type: int
      item_type: struct
      name: show_cert_ctx
      pos:
        line_end: 89
        line_start: 85
        source_file: /src/haproxy/src/ssl_ckch.c
    - fields:
      - name: '*cur_ckchs'
        type: struct ckch_store
      item_type: struct
      name: show_jwt_ctx
      pos:
        line_end: 94
        line_start: 92
        source_file: /src/haproxy/src/ssl_ckch.c
    - fields:
      - name: '*px'
        type: struct proxy
      - name: '*bind'
        type: struct bind_conf
      - name: '*n'
        type: struct ebmb_node
      - name: nodetype
        type: int
      - name: options
        type: int
      - name: offset
        type: unsigned int
      item_type: struct
      name: show_sni_ctx
      pos:
        line_end: 107
        line_start: 100
        source_file: /src/haproxy/src/ssl_ckch.c
    - fields:
      - name: '*ckchs'
        type: struct ckch_store
      - name: index
        type: int
      item_type: struct
      name: dump_cert_ctx
      pos:
        line_end: 113
        line_start: 110
        source_file: /src/haproxy/src/ssl_ckch.c
    - fields:
      - name: '*old_ckchs'
        type: struct ckch_store
      - name: '*new_ckchs'
        type: struct ckch_store
      - name: '*next_ckchi'
        type: struct ckch_inst
      - name: '*err'
        type: char
      - name: state
        type: "enum {\n\t\tCERT_ST_INIT = 0,\n\t\tCERT_ST_GEN,\n\t\tCERT_ST_INSERT,\n\t\tCERT_ST_SUCCESS,\n\t\tCERT_ST_FIN,\n\t\tCERT_ST_ERROR,\n\t}"
      - name: '*msg'
        type: struct buffer
      item_type: struct
      name: commit_cert_ctx
      pos:
        line_end: 130
        line_start: 116
        source_file: /src/haproxy/src/ssl_ckch.c
    - fields:
      - name: '*old_entry'
        type: struct cafile_entry
      - name: '*new_entry'
        type: struct cafile_entry
      - name: '*next_ckchi_link'
        type: struct ckch_inst_link
      - name: cafile_type
        type: enum cafile_type
      - name: '*err'
        type: char
      - name: state
        type: "enum {\n\t\tCACRL_ST_INIT = 0,\n\t\tCACRL_ST_GEN,\n\t\tCACRL_ST_CRLCB,\n\t\tCACRL_ST_INSERT,\n\t\tCACRL_ST_SUCCESS,\n\t\tCACRL_ST_FIN,\n\t\tCACRL_ST_ERROR,\n\t}"
      item_type: struct
      name: commit_cacrlfile_ctx
      pos:
        line_end: 148
        line_start: 133
        source_file: /src/haproxy/src/ssl_ckch.c
    typedefs: []
    union: []
- function_names:
  - tcp_req_conn_keywords_register
  - tcp_req_sess_keywords_register
  - tcp_req_cont_keywords_register
  - tcp_res_cont_keywords_register
  - tcp_req_conn_action
  - tcp_req_sess_action
  - tcp_req_cont_action
  - tcp_res_cont_action
  - tcp_inspect_request
  - tcp_inspect_response
  - tcp_exec_l4_rules
  - tcp_exec_l5_rules
  - tcp_parse_response_rule
  - tcp_action_track_sc
  - tcp_action_capture
  - release_tcp_capture
  - release_tcp_track_sc
  - tcp_parse_request_rule
  - tcp_parse_tcp_rep
  - tcp_parse_tcp_req
  source_file: /src/haproxy/src/tcp_rules.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/src/tcp_rules.c
      type_or_value: '&trace_strm'
    structs: []
    typedefs: []
    union: []
- function_names:
  - smp_client_hello_parse
  - smp_fetch_wait_end
  - smp_fetch_len
  - smp_fetch_req_ssl_st_ext
  - smp_fetch_req_ssl_ec_ext
  - smp_fetch_ssl_hello_type
  - smp_fetch_req_ssl_ver
  - smp_fetch_ssl_cipherlist
  - smp_fetch_ssl_supported_groups
  - smp_fetch_ssl_sigalgs
  - smp_fetch_ssl_keyshare_groups
  - smp_fetch_ssl_hello_sni
  - smp_fetch_ssl_hello_alpn
  - fetch_rdp_cookie_name
  - smp_fetch_rdp_cookie
  - smp_fetch_rdp_cookie_cnt
  - smp_fetch_payload_lv
  - smp_fetch_payload
  - val_payload_lv
  - smp_fetch_distcc_param
  - smp_fetch_distcc_body
  - val_distcc
  source_file: /src/haproxy/src/payload.c
  types:
    enum:
    - enumerators:
      - name: CLIENTHELLO_ERR_OK
        value: '0'
      - name: CLIENTHELLO_ERR_TOO_SHORT
        value: '2'
      - name: CLIENTHELLO_ERR_UNAVAIL
        value: '1'
      item_type: enum
      name: client_hello_status
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/haproxy/src/payload.c
    - enumerators:
      - name: CLIENTHELLO_EXTENSIONS
      - name: CLIENTHELLO_CIPHERSUITE
      item_type: enum
      name: client_hello_type
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/haproxy/src/payload.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/sock-t.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_rx-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_MAX_RX_AEPKTS_SINCE_LAST_ACK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/haproxy/include/haproxy/quic_rx-t.h
      type_or_value: '2'
    - item_type: preproc_def
      name: QUIC_ACK_DELAY
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/haproxy/include/haproxy/quic_rx-t.h
      type_or_value: (QUIC_TP_DFLT_MAX_ACK_DELAY - 5)
    - item_type: preproc_def
      name: QUIC_FL_RX_PACKET_ACK_ELICITING
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/include/haproxy/quic_rx-t.h
      type_or_value: (1UL << 0)
    - item_type: preproc_def
      name: QUIC_FL_RX_PACKET_DGRAM_FIRST
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/include/haproxy/quic_rx-t.h
      type_or_value: (1UL << 1)
    - item_type: preproc_def
      name: QUIC_FL_RX_PACKET_SPIN_BIT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/include/haproxy/quic_rx-t.h
      type_or_value: (1UL << 2)
    structs:
    - fields:
      - name: list
        type: struct list
      - name: qc_rx_pkt_list
        type: struct list
      - name: '*version'
        type: struct quic_version
      - name: type
        type: unsigned char
      - name: dcid
        type: struct quic_cid
      - name: scid
        type: struct quic_cid
      - name: pn_offset
        type: size_t
      - name: pn
        type: int64_t
      - name: pnl
        type: uint32_t
      - name: token_len
        type: uint64_t
      - name: '*token'
        type: unsigned char
      - name: len
        type: uint64_t
      - name: raw_len
        type: uint64_t
      - name: aad_len
        type: size_t
      - name: '*data'
        type: unsigned char
      - name: pn_node
        type: struct eb64_node
      - name: refcnt
        type: unsigned int
      - name: saddr
        type: union sockaddr_in46
      - name: flags
        type: unsigned int
      - name: time_received
        type: unsigned int
      item_type: struct
      name: quic_rx_packet
      pos:
        line_end: 58
        line_start: 26
        source_file: /src/haproxy/include/haproxy/quic_rx-t.h
    typedefs: []
    union: []
- function_names:
  - LIST_HEAD
  - LIST_INIT
  - LIST_HEAD_INIT
  - LIST_INSERT
  - LIST_APPEND
  - LIST_SPLICE
  - LIST_SPLICE_END_DETACHED
  - LIST_DELETE
  - LIST_DELETE
  - LIST_DEL_INIT
  - LIST_ELEM
  - LIST_ISEMPTY
  - LIST_INLIST
  - LIST_ATMOST1
  - LIST_INLIST_ATOMIC
  - LIST_NEXT
  - LIST_PREV
  - list_for_each_entry
  - list_for_each_entry_from
  - list_for_each_entry_safe
  - list_for_each_entry_safe_from
  - list_for_each_entry_rev
  - list_for_each_entry_from_rev
  - list_for_each_entry_safe_rev
  - list_for_each_entry_safe_from_rev
  - mt_list_to_list
  - list_to_mt_list
  - watcher_init
  - watcher_attach
  - watcher_detach
  - watcher_next
  source_file: /src/haproxy/include/haproxy/list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ILH
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/list.h
      type_or_value: '{ .n = (struct list *)1, .p = (struct list *)2 }'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: '*mt_list'
        type: struct mt_list
      - name: '*list'
        type: struct list
      item_type: union
      name: mylist
      pos:
        line_end: 244
        line_start: 241
        source_file: /src/haproxy/include/haproxy/list.h
    - fields:
      - name: '*mt_list'
        type: struct mt_list
      - name: '*list'
        type: struct list
      item_type: union
      name: mylist
      pos:
        line_end: 255
        line_start: 252
        source_file: /src/haproxy/include/haproxy/list.h
- function_names: []
  source_file: /src/haproxy/include/haproxy/mailers-t.h
  types:
    enum:
    - enumerators:
      - name: PR_EMAIL_ALERT_NONE
        value: '0'
      - name: PR_EMAIL_ALERT_RESOLVED
      - name: PR_EMAIL_ALERT_SET
      item_type: enum
      name: proxy_email_alert_flags
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/haproxy/include/haproxy/mailers-t.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*id'
        type: char
      - name: '*mailers'
        type: struct mailers
      - name: conf
        type: "struct {\n\t\tconst char *file;\t/* file where the section appears
          */\n\t\tint line;\t\t/* line where the section appears */\n\t}"
      - name: addr
        type: struct sockaddr_storage
      - name: '*proto'
        type: struct protocol
      - name: '*xprt'
        type: struct xprt_ops
      - name: '*sock_init_arg'
        type: void
      - name: '*next'
        type: struct mailer
      item_type: struct
      name: mailer
      pos:
        line_end: 56
        line_start: 44
        source_file: /src/haproxy/include/haproxy/mailers-t.h
    - fields:
      - name: '*id'
        type: char
      - name: '*mailer_list'
        type: struct mailer
      - name: conf
        type: "struct {\n\t\tconst char *file;\t/* file where the section appears
          */\n\t\tint line;\t\t/* line where the section appears */\n\t}"
      - name: '*next'
        type: struct mailers
      - name: count
        type: int
      - name: users
        type: int
      - name: timeout
        type: "struct {\t\t\t/* time to: */\n\t\tint mail;\t\t/*   try connecting
          to mailserver and sending a email */\n\t}"
      item_type: struct
      name: mailers
      pos:
        line_end: 71
        line_start: 58
        source_file: /src/haproxy/include/haproxy/mailers-t.h
    typedefs: []
    union: []
- function_names:
  - hsl_show_flags
  - _
  - htx_show_flags
  - _
  source_file: /src/haproxy/include/haproxy/htx-t.h
  types:
    enum:
    - enumerators:
      - name: HTX_BLK_REQ_SL
        value: '0'
      - name: HTX_BLK_DATA
        value: '4'
      - name: HTX_BLK_RES_SL
        value: '1'
      - name: HTX_BLK_HDR
        value: '2'
      - name: HTX_BLK_EOH
        value: '3'
      - name: HTX_BLK_TLR
        value: '5'
      - name: HTX_BLK_EOT
        value: '6'
      - name: HTX_BLK_UNUSED
        value: '15'
      item_type: enum
      name: htx_blk_type
      pos:
        line_end: 215
        line_start: 205
        source_file: /src/haproxy/include/haproxy/htx-t.h
    preproc_defs:
    - item_type: preproc_def
      name: HTX_SL_F_NONE
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: HTX_SL_F_IS_RESP
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: HTX_SL_F_XFER_LEN
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: HTX_SL_F_XFER_ENC
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: HTX_SL_F_CLEN
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: HTX_SL_F_CHNK
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: HTX_SL_F_VER_11
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: HTX_SL_F_BODYLESS
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000040 '
    - item_type: preproc_def
      name: HTX_SL_F_HAS_SCHM
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000080 '
    - item_type: preproc_def
      name: HTX_SL_F_SCHM_HTTP
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000100 '
    - item_type: preproc_def
      name: HTX_SL_F_SCHM_HTTPS
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: HTX_SL_F_HAS_AUTHORITY
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000400 '
    - item_type: preproc_def
      name: HTX_SL_F_NORMALIZED_URI
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000800 '
    - item_type: preproc_def
      name: HTX_SL_F_CONN_UPG
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00001000 '
    - item_type: preproc_def
      name: HTX_SL_F_BODYLESS_RESP
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00002000 '
    - item_type: preproc_def
      name: HTX_SL_F_NOT_HTTP
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00004000 '
    - item_type: preproc_def
      name: HTX_SL_F_UPG_HDR
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00008000 '
    - item_type: preproc_def
      name: HTX_BUF_OVERHEAD
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: (sizeof(struct htx) + 2 * sizeof(struct htx_blk))
    - item_type: preproc_def
      name: HTX_FL_NONE
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: HTX_FL_PARSING_ERROR
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: HTX_FL_PROCESSING_ERROR
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: HTX_FL_FRAGMENTED
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: HTX_FL_UNORDERED
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: HTX_FL_EOM
      pos:
        line_end: 185
        line_start: 182
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000010 '
    structs:
    - fields:
      - name: addr
        type: uint32_t
      - name: info
        type: uint32_t
      item_type: struct
      name: htx_blk
      pos:
        line_end: 221
        line_start: 218
        source_file: /src/haproxy/include/haproxy/htx-t.h
    - fields:
      - name: ret
        type: int32_t
      - name: '*blk'
        type: struct htx_blk
      item_type: struct
      name: htx_ret
      pos:
        line_end: 227
        line_start: 224
        source_file: /src/haproxy/include/haproxy/htx-t.h
    - fields:
      - name: flags
        type: unsigned int
      - name: info
        type: "union {\n\t\tstruct {\n\t\t\tenum http_meth_t meth;   /* method */\n\t\t}
          req;\n\t\tstruct {\n\t\t\tuint16_t         status; /* status code */\n\t\t}
          res;\n\t}"
      - name: __pad_1
        type: char
      - name: __pad_2
        type: char
      - name: len[3]
        type: unsigned int
      - name: l[VAR_ARRAY]
        type: char
      item_type: struct
      name: htx_sl
      pos:
        line_end: 252
        line_start: 232
        source_file: /src/haproxy/include/haproxy/htx-t.h
    - fields:
      - name: size
        type: uint32_t
      - name: data
        type: uint32_t
      - name: tail
        type: int32_t
      - name: head
        type: int32_t
      - name: first
        type: int32_t
      - name: tail_addr
        type: uint32_t
      - name: head_addr
        type: uint32_t
      - name: end_addr
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: blocks[VAR_ARRAY]
        type: char
      item_type: struct
      name: htx
      pos:
        line_end: 275
        line_start: 255
        source_file: /src/haproxy/include/haproxy/htx-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/dns_ring.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - obj_type
  - obj_type_name
  - __objt_listener
  - objt_listener
  - __objt_proxy
  - objt_proxy
  - __objt_server
  - objt_server
  - __objt_applet
  - objt_applet
  - __objt_appctx
  - objt_appctx
  - __objt_sc
  - objt_sc
  - __objt_conn
  - objt_conn
  - __objt_resolv_srvrq
  - objt_resolv_srvrq
  - __objt_stream
  - objt_stream
  - __objt_check
  - objt_check
  - __objt_hstream
  - objt_hstream
  - __objt_acme_rslv
  - objt_acme_rslv
  - __objt_dgram
  - objt_dgram
  - obj_base_ptr
  source_file: /src/haproxy/include/haproxy/obj_type.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/tinfo-t.h
  types:
    enum:
    - enumerators:
      - name: TH_EX_CTX_NONE
        value: '0'
      - name: TH_EX_CTX_SMPF
      - name: TH_EX_CTX_INITCALL
      - name: TH_EX_CTX_CALLER
      - name: TH_EX_CTX_OTHER
      - name: TH_EX_CTX_CONV
      - name: TH_EX_CTX_FUNC
      - name: TH_EX_CTX_ACTION
      - name: TH_EX_CTX_FLT
      - name: TH_EX_CTX_MUX
      - name: TH_EX_CTX_CLI_KWL
      - name: TH_EX_CTX_APPLET
      - name: TH_EX_CTX_TASK
      item_type: enum
      name: thread_exec_ctx_type
      pos:
        line_end: 92
        line_start: 78
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
    preproc_defs:
    - item_type: preproc_def
      name: TH_FL_STUCK
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: TH_FL_TASK_PROFILING
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: TH_FL_NOTIFIED
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: TH_FL_SLEEPING
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: TH_FL_STARTED
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: TH_FL_IN_LOOP
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: TH_FL_IN_SIG_HANDLER
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: TH_FL_IN_DBG_HANDLER
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: TH_FL_IN_WDT_HANDLER
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: TH_FL_IN_ANY_HANDLER
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000380  '
    - item_type: preproc_def
      name: TH_FL_TASK_PROFILING_L
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: TH_FL_TASK_PROFILING_M
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: DYNBUF_NBQ
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '4'
    structs:
    - fields:
      - name: nbgrps
        type: ulong
      item_type: struct
      name: thread_set
      pos:
        line_end: 45
        line_start: 39
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
    - fields:
      - name: type
        type: enum thread_exec_ctx_type
      item_type: struct
      name: thread_exec_ctx
      pos:
        line_end: 110
        line_start: 94
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
    - fields:
      - name: threads_enabled
        type: ulong
      - name: base
        type: uint
      - name: count
        type: uint
      - name: tgid_bit
        type: ulong
      - name: '*(*start)(void *)'
        type: void
      - name: __pad[0]
        type: char
      - name: THREAD_ALIGNED()
        type: char
      item_type: struct
      name: tgroup_info
      pos:
        line_end: 127
        line_start: 117
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
    - fields:
      - name: threads_harmless
        type: ulong
      - name: threads_idle
        type: ulong
      - name: stopping_threads
        type: ulong
      - name: timers
        type: struct eb_root
      - name: niced_tasks
        type: uint
      - name: committed_extra_streams
        type: uint
      - name: __pad[0]
        type: char
      - name: THREAD_ALIGNED()
        type: char
      item_type: struct
      name: tgroup_ctx
      pos:
        line_end: 145
        line_start: 132
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
    - fields:
      - name: '*tg'
        type: struct tgroup_info
      - name: '*tg_ctx'
        type: struct tgroup_ctx
      - name: tid
        type: uint
      - name: ltid_bit
        type: ulong
      - name: tgid
        type: uint
      - name: ring_queue
        type: uint
      - name: pth_id
        type: ullong
      - name: '*stack_top'
        type: void
      - name: __pad[0]
        type: char
      - name: THREAD_ALIGNED()
        type: char
      item_type: struct
      name: thread_info
      pos:
        line_end: 166
        line_start: 152
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
    - fields:
      - name: timers
        type: struct eb_root
      - name: rqueue
        type: struct eb_root
      - name: '*current'
        type: struct task
      - name: current_queue
        type: int
      - name: nb_tasks
        type: unsigned int
      - name: tl_class_mask
        type: uint8_t
      - name: bufq_map
        type: uint8_t
      - name: trc_disable_ctr
        type: uint8_t
      - name: lock_level
        type: uint8_t
      - name: nb_rhttp_conns
        type: unsigned int
      - name: '*sched_profile_entry'
        type: struct sched_activity
      - name: (2*sizeof(void*))
        type: ALWAYS_ALIGN
      - name: buffer_wq[DYNBUF_NBQ]
        type: struct list
      - name: pool_lru_head
        type: struct list
      - name: streams
        type: struct list
      - name: quic_conns_fe
        type: struct list
      - name: quic_conns_be
        type: struct list
      - name: quic_conns_clo
        type: struct list
      - name: queued_checks
        type: struct list
      - name: tasklets[TL_CLASSES]
        type: struct list
      - name: '**emergency_bufs'
        type: void
      - name: emergency_bufs_left
        type: uint
      - name: sched_wake_date
        type: uint32_t
      - name: sched_call_date
        type: uint64_t
      - name: lock_wait_total
        type: uint64_t
      - name: mem_wait_total
        type: uint64_t
      - name: lock_start_date
        type: uint64_t
      - name: locked_total
        type: uint64_t
      - name: prev_mono_time
        type: uint64_t
      - name: curr_mono_time
        type: uint64_t
      - name: lock_history
        type: ulong
      - name: exec_ctx
        type: struct thread_exec_ctx
      - name: shared_tasklet_list
        type: struct mt_list
      - name: rqueue_ticks
        type: unsigned int
      - name: rq_total
        type: unsigned int
      - name: tasks_in_list
        type: int
      - name: idle_pct
        type: uint
      - name: flags
        type: uint
      - name: active_checks
        type: uint
      - name: prev_cpu_time
        type: uint64_t
      - name: rqueue_shared
        type: struct eb_root
      - name: out_32bps
        type: struct freq_ctr
      - name: running_checks
        type: uint
      - name: out_bytes
        type: unsigned long long
      - name: spliced_out_bytes
        type: unsigned long long
      - name: '*thread_dump_buffer'
        type: struct buffer
      - name: '*last_dump_buffer'
        type: struct buffer
      - name: total_streams
        type: unsigned long long
      - name: stream_cnt
        type: unsigned int
      - name: rq_tot_peak
        type: unsigned int
      item_type: struct
      name: thread_ctx
      pos:
        line_end: 242
        line_start: 173
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/defaults.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_THREADS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_TGROUPS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_THREADS_PER_GROUP
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEF_MAX_THREADS_PER_GROUP
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_TGROUPS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_THREADS_PER_GROUP
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: __WORDSIZE
    - item_type: preproc_def
      name: DEF_MAX_THREADS_PER_GROUP
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_THREADS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '((((MAX_TGROUPS) > 1) ? 16 : 1) * (MAX_THREADS_PER_GROUP))'
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: BUFSIZE_SMALL
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: RESERVED_BUFS
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MAXREWRITE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: REQURI_LEN
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: CAPTURE_LEN
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_SYSLOG_LEN
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: STARTUP_LOG_SIZE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: LINESIZE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: MAX_CFG_SIZE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10485760'
    - item_type: preproc_def
      name: MAX_LINES_TO_READ
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_LINE_ARGS
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CRT_LINESIZE
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: MAX_CRT_ARGS
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: MAX_CLI_ARGS
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_CFG_RECURSION
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_MATCH
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10'
    - item_type: preproc_def
      name: MAX_HTTP_HDR
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '101'
    - item_type: preproc_def
      name: MAX_HDR_HISTORY
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10'
    - item_type: preproc_def
      name: TRACE_MAX_MSG
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_SESS_STKCTR
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '3'
    - item_type: preproc_def
      name: STKTABLE_EXTRA_DATA_TYPES
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STKTABLE_FILTER_LEN
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MAX_READ_POLL_LOOPS
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MIN_RECV_AT_ONCE_ENOUGH
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: (7*1448)
    - item_type: preproc_def
      name: MIN_SPLICE_FORWARD
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_POLL_EVENTS
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '200'
    - item_type: preproc_def
      name: MAX_RULES_AT_ONCE
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '50'
    - item_type: preproc_def
      name: TV_ETERNITY
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: TV_ETERNITY_MS
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: BOOT_TIME_WRAP_SEC
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MAX_DELAY_MS
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '60000'
    - item_type: preproc_def
      name: MAX_ACCEPT
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4'
    - item_type: preproc_def
      name: RUNQUEUE_DEPTH
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '280'
    - item_type: preproc_def
      name: COOKIE_DELIM
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '''~'''
    - item_type: preproc_def
      name: COOKIE_DELIM_DATE
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '''|'''
    - item_type: preproc_def
      name: ACL_MAX_RECURSE
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: CONN_RETRIES
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CHK_CONNTIME
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2000'
    - item_type: preproc_def
      name: DEF_CHKINTR
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2000'
    - item_type: preproc_def
      name: DEF_MAILALERTTIME
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10000'
    - item_type: preproc_def
      name: DEF_FALLTIME
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DEF_RISETIME
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DEF_AGENT_FALLTIME
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEF_AGENT_RISETIME
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEF_CHECK_PATH
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '""'
    - item_type: preproc_def
      name: DEF_HANA_ONERR
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: HANA_ONERR_FAILCHK
    - item_type: preproc_def
      name: DEF_HANA_ERRLIMIT
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10'
    - item_type: preproc_def
      name: DEF_XFORWARDFOR_HDR
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '"X-Forwarded-For"'
    - item_type: preproc_def
      name: DEF_XORIGINALTO_HDR
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '"X-Original-To"'
    - item_type: preproc_def
      name: EVENT_HDL_MAX_AT_ONCE
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '100'
    - item_type: preproc_def
      name: DEFAULT_MAXCONN
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: SYSTEM_MAXCONN
    - item_type: preproc_def
      name: DEFAULT_MAXCONN
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '100'
    - item_type: preproc_def
      name: DEFAULT_MAXFD
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1048576'
    - item_type: preproc_def
      name: MASTER_MAXCONN
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '100'
    - item_type: preproc_def
      name: SRV_CHK_INTER_THRES
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: INET6_CONNECTIVITY_CACHE_TIME
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '30000'
    - item_type: preproc_def
      name: STATS_VERSION_STRING
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '" version " HAPROXY_VERSION ", released " HAPROXY_DATE'
    - item_type: preproc_def
      name: SHM_STATS_FILE_MAX_OBJECTS
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2000'
    - item_type: preproc_def
      name: STATS_DEFAULT_URI
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: CONFIG_STATS_DEFAULT_URI
    - item_type: preproc_def
      name: STATS_DEFAULT_URI
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '"/haproxy?stats"'
    - item_type: preproc_def
      name: STATS_DEFAULT_REALM
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: CONFIG_STATS_DEFAULT_REALM
    - item_type: preproc_def
      name: STATS_DEFAULT_REALM
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '"HAProxy Statistics"'
    - item_type: preproc_def
      name: MAX_SIGNAL
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '256'
    - item_type: preproc_def
      name: MAX_HOSTNAME_LEN
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: MAXHOSTNAMELEN
    - item_type: preproc_def
      name: MAX_HOSTNAME_LEN
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '64'
    - item_type: preproc_def
      name: HCHK_DESC_LEN
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '128'
    - item_type: preproc_def
      name: CONNECT_DEFAULT_CIPHERS
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: CONNECT_DEFAULT_CIPHERSUITES
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: LISTEN_DEFAULT_CIPHERS
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: LISTEN_DEFAULT_CIPHERSUITES
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ECDHE_DEFAULT_CURVE
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '"prime256v1"'
    - item_type: preproc_def
      name: SSLCACHESIZE
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '20000'
    - item_type: preproc_def
      name: SSL_DEFAULT_DH_PARAM
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_SESSION_MAX_COST
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: (16*1024)    // measured
    - item_type: preproc_def
      name: SSL_HANDSHAKE_MAX_COST
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: (76*1024)  // measured
    - item_type: preproc_def
      name: DEFAULT_SSL_CTX_CACHE
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: STREAM_MAX_COST
      pos:
        line_end: 476
        line_start: 471
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: "(sizeof(struct stream) + \\\n                          2 * sizeof(struct
        channel) + \\\n                          2 * sizeof(struct connection) + \\\n
        \                         global.tune.requri_len + \\\n                          2
        * global.tune.cookie_len)"
    - item_type: preproc_def
      name: MEM_USABLE_RATIO
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0.97'
    - item_type: preproc_def
      name: HAPROXY_MEMMAX
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DEFAULT_MAXZLIBMEM
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CONFIG_HAP_POOL_CACHE_SIZE
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '524288'
    - item_type: preproc_def
      name: CONFIG_HAP_POOL_CLUSTER_SIZE
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '8'
    - item_type: preproc_def
      name: CONFIG_HAP_POOL_BUCKETS_BITS
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '6'
    - item_type: preproc_def
      name: CONFIG_HAP_POOL_BUCKETS_BITS
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CONFIG_HAP_POOL_BUCKETS_BITS
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CONFIG_HAP_POOL_BUCKETS_BITS
      pos:
        line_end: 526
        line_start: 525
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CONFIG_HAP_POOL_BUCKETS_BITS
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CONFIG_HAP_POOL_BUCKETS
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: (1UL << (CONFIG_HAP_POOL_BUCKETS_BITS))
    - item_type: preproc_def
      name: CONFIG_HAP_TBL_BUCKETS
      pos:
        line_end: 535
        line_start: 534
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: CONFIG_HAP_POOL_BUCKETS
    - item_type: preproc_def
      name: TIME_STATS_SAMPLES
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '512'
    - item_type: preproc_def
      name: RQ_LOAD_SAMPLES
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '512'
    - item_type: preproc_def
      name: OCSP_MAX_CERTID_ASN1_LENGTH
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '128'
    - item_type: preproc_def
      name: OCSP_MAX_RESPONSE_TIME_SKEW
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '300'
    - item_type: preproc_def
      name: TLS_TICKETS_NO
      pos:
        line_end: 565
        line_start: 564
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DEFAULT_PAT_LRU_SIZE
      pos:
        line_end: 575
        line_start: 574
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10000'
    - item_type: preproc_def
      name: MAX_POLLERS
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10'
    - item_type: preproc_def
      name: NUMA_DETECT_SYSTEM_SYSFS_PATH
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '"/sys/devices/system"'
    - item_type: preproc_def
      name: CACHE_TREE_NUM
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '8'
    - item_type: preproc_def
      name: CACHE_TREE_NUM
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RING_WAIT_QUEUES
      pos:
        line_end: 600
        line_start: 599
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '16'
    - item_type: preproc_def
      name: RING_WAIT_QUEUES
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: ((MAX_THREADS + 1) / 2)
    - item_type: preproc_def
      name: RING_WAIT_QUEUES
      pos:
        line_end: 604
        line_start: 603
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RING_DFLT_QUEUES
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '6'
    - item_type: preproc_def
      name: MEMPROF_HASH_BITS
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MEMPROF_HASH_BUCKETS
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: (1U << MEMPROF_HASH_BITS)
    - item_type: preproc_def
      name: DEBUG_STRICT
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEBUG_THREAD
      pos:
        line_end: 631
        line_start: 630
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEBUG_THREAD
      pos:
        line_end: 633
        line_start: 632
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_COUNTERS
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEBUG_MEMORY_POOLS
      pos:
        line_end: 643
        line_start: 642
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_SELF_USE_QUEUE
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '9'
    - item_type: preproc_def
      name: FWLC_LISTS_NB
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4'
    - item_type: preproc_def
      name: FWLC_MIN_FREE_ENTRIES
      pos:
        line_end: 676
        line_start: 675
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '500'
    - item_type: preproc_def
      name: QUIC_MAX_TX_MEM
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STKTABLE_MAX_UPDATES_AT_ONCE
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '100'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/http_fetch.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CALL_APPLET_WITH_RET
  - CALL_APPLET_NO_RET
  - appctx_app_test
  - appctx_new_here
  - appctx_new_anywhere
  - appctx_release_buf
  - appctx_get_buf
  - appctx_init
  - __appctx_free
  - appctx_wakeup
  - appctx_schedule
  - appctx_sc
  - appctx_strm
  - appctx_is_back
  - applet_fl_zero
  - applet_fl_setall
  - applet_fl_set
  - applet_fl_clr
  - applet_fl_test
  - applet_fl_get
  - applet_set_eoi
  - applet_set_eos
  - applet_set_error
  - applet_have_more_data
  - applet_have_no_more_data
  - applet_will_consume
  - applet_wont_consume
  - applet_need_more_data
  - applet_expect_no_data
  - applet_expect_data
  - applet_get_inbuf
  - applet_get_outbuf
  - applet_htx_input_data
  - applet_input_data
  - applet_htx_output_data
  - applet_output_data
  - applet_skip_input
  - applet_reset_input
  - applet_htx_output_room
  - applet_output_room
  - applet_need_room
  - _applet_putchk
  - applet_putchk
  - applet_putchk_stress
  - applet_putblk
  - applet_putstr
  - applet_putchr
  - applet_may_get
  - applet_getchar
  - applet_getblk
  - applet_getword
  - applet_getline
  - applet_getblk_nc
  - applet_getword_nc
  - applet_getline_nc
  source_file: /src/haproxy/include/haproxy/applet.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hpack_alloc
  - hpack_free
  - hpack_alloc
  - hpack_free
  - hpack_get_dte
  - hpack_valid_idx
  - hpack_get_name
  - hpack_get_value
  - hpack_idx_to_name
  - hpack_idx_to_value
  - hpack_dht_get_tail
  - hpack_dht_make_room
  - hpack_dht_init
  - hpack_dht_alloc
  - hpack_dht_free
  source_file: /src/haproxy/include/haproxy/hpack-tbl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - session_store_counters
  - session_inc_http_req_ctr
  - session_inc_http_err_ctr
  - session_inc_http_fail_ctr
  - session_add_glitch_ctr
  - sess_src
  - sess_dst
  - sess_get_src
  - sess_get_dst
  source_file: /src/haproxy/include/haproxy/session.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
  types:
    enum:
    - enumerators:
      - name: FCGI_RULE_SET_PARAM
        value: '0'
      - name: FCGI_RULE_HIDE_HDR
      - name: FCGI_RULE_PASS_HDR
      - name: FCGI_RULE_UNSET_PARAM
      item_type: enum
      name: fcgi_rule_type
      pos:
        line_end: 45
        line_start: 40
        source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
    preproc_defs:
    - item_type: preproc_def
      name: FCGI_APP_FL_KEEP_CONN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: FCGI_APP_FL_GET_VALUES
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: FCGI_APP_FL_MPXS_CONNS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
      type_or_value: '0x00000004 '
    structs:
    - fields:
      - name: type
        type: enum fcgi_rule_type
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      - name: '*cond'
        type: struct acl_cond
      - name: list
        type: struct list
      item_type: struct
      name: fcgi_rule_conf
      pos:
        line_end: 56
        line_start: 50
        source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
    - fields:
      - name: type
        type: enum fcgi_rule_type
      - name: name
        type: struct ist
      - name: value
        type: struct lf_expr
      - name: '*cond'
        type: struct acl_cond
      - name: list
        type: struct list
      item_type: struct
      name: fcgi_rule
      pos:
        line_end: 65
        line_start: 59
        source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
    - fields:
      - name: name
        type: struct ist
      - name: '*value'
        type: struct lf_expr
      - name: node
        type: struct ebpt_node
      item_type: struct
      name: fcgi_param_rule
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
    - fields:
      - name: name
        type: struct ist
      - name: pass
        type: int
      - name: node
        type: struct ebpt_node
      item_type: struct
      name: fcgi_hdr_rule
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
    - fields:
      - name: '*name'
        type: char
      - name: docroot
        type: struct ist
      - name: index
        type: struct ist
      - name: '*pathinfo_re'
        type: struct my_regex
      - name: flags
        type: unsigned int
      - name: loggers
        type: struct list
      - name: maxreqs
        type: unsigned int
      - name: acls
        type: struct list
      - name: conf
        type: "struct {\n\t\tchar *file;               /* file where the section appears
          */\n\t\tint   line;               /* line where the section appears */\n\t\tstruct
          list rules;        /* list of rules used during config parsing */\n\t\tstruct
          arg_list args;     /* sample arg list that need to be resolved */\n\t}"
      - name: '*next'
        type: struct fcgi_app
      item_type: struct
      name: fcgi_app
      pos:
        line_end: 99
        line_start: 81
        source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
    - fields:
      - name: '*name'
        type: char
      - name: '*app'
        type: struct fcgi_app
      - name: param_rules
        type: struct list
      - name: hdr_rules
        type: struct list
      item_type: struct
      name: fcgi_flt_conf
      pos:
        line_end: 108
        line_start: 102
        source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
    - fields:
      - name: '*filter'
        type: struct filter
      - name: '*app'
        type: struct fcgi_app
      item_type: struct
      name: fcgi_flt_ctx
      pos:
        line_end: 114
        line_start: 111
        source_file: /src/haproxy/include/haproxy/fcgi-app-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/http_ext.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/http-hdr-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: n
        type: struct ist
      - name: v
        type: struct ist
      item_type: struct
      name: http_hdr
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/haproxy/include/haproxy/http-hdr-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/dict.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HA_ATOMIC_LOAD
  - HA_ATOMIC_STORE
  - HA_ATOMIC_XCHG
  - HA_ATOMIC_AND
  - HA_ATOMIC_OR
  - HA_ATOMIC_ADD
  - HA_ATOMIC_SUB
  - HA_ATOMIC_INC
  - HA_ATOMIC_DEC
  - HA_ATOMIC_AND_FETCH
  - HA_ATOMIC_OR_FETCH
  - HA_ATOMIC_ADD_FETCH
  - HA_ATOMIC_SUB_FETCH
  - HA_ATOMIC_FETCH_AND
  - HA_ATOMIC_FETCH_OR
  - HA_ATOMIC_FETCH_ADD
  - HA_ATOMIC_FETCH_SUB
  - HA_ATOMIC_BTS
  - HA_ATOMIC_BTR
  - HA_ATOMIC_CAS
  - HA_ATOMIC_DWCAS
  - HA_ATOMIC_UPDATE_MAX
  - HA_ATOMIC_UPDATE_MIN
  - __ha_barrier_atomic_load
  - __ha_barrier_atomic_store
  - __ha_barrier_atomic_full
  - __ha_barrier_load
  - __ha_barrier_store
  - __ha_barrier_full
  - __ha_compiler_barrier
  - __ha_cpu_relax
  - __ha_cpu_relax_for_read
  - HA_ATOMIC_STORE
  - HA_ATOMIC_LOAD
  - HA_ATOMIC_XCHG
  - HA_ATOMIC_AND
  - HA_ATOMIC_OR
  - HA_ATOMIC_ADD
  - HA_ATOMIC_SUB
  - HA_ATOMIC_INC
  - HA_ATOMIC_DEC
  - HA_ATOMIC_AND_FETCH
  - HA_ATOMIC_OR_FETCH
  - HA_ATOMIC_ADD_FETCH
  - HA_ATOMIC_SUB_FETCH
  - HA_ATOMIC_FETCH_AND
  - HA_ATOMIC_FETCH_OR
  - HA_ATOMIC_FETCH_ADD
  - HA_ATOMIC_FETCH_SUB
  - HA_ATOMIC_BTS
  - HA_ATOMIC_BTR
  - HA_ATOMIC_BTS
  - HA_ATOMIC_BTR
  - HA_ATOMIC_CAS
  - HA_ATOMIC_DWCAS
  - HA_ATOMIC_UPDATE_MAX
  - HA_ATOMIC_UPDATE_MIN
  - _HA_ATOMIC_LOAD
  - _HA_ATOMIC_STORE
  - _HA_ATOMIC_XCHG
  - _HA_ATOMIC_AND
  - _HA_ATOMIC_OR
  - _HA_ATOMIC_ADD
  - _HA_ATOMIC_SUB
  - _HA_ATOMIC_INC
  - _HA_ATOMIC_DEC
  - _HA_ATOMIC_AND_FETCH
  - _HA_ATOMIC_OR_FETCH
  - _HA_ATOMIC_ADD_FETCH
  - _HA_ATOMIC_SUB_FETCH
  - _HA_ATOMIC_FETCH_AND
  - _HA_ATOMIC_FETCH_OR
  - _HA_ATOMIC_FETCH_ADD
  - _HA_ATOMIC_FETCH_SUB
  - _HA_ATOMIC_BTS
  - _HA_ATOMIC_BTR
  - _HA_ATOMIC_BTS
  - _HA_ATOMIC_BTR
  - _HA_ATOMIC_CAS
  - _HA_ATOMIC_DWCAS
  - __ha_barrier_load
  - __ha_barrier_store
  - __ha_barrier_full
  - __ha_barrier_atomic_load
  - __ha_barrier_atomic_store
  - __ha_barrier_atomic_full
  - __ha_cas_dw
  - __ha_cpu_relax
  - __ha_cpu_relax_for_read
  - __ha_barrier_load
  - __ha_barrier_store
  - __ha_barrier_full
  - __ha_barrier_atomic_load
  - __ha_barrier_atomic_store
  - __ha_barrier_atomic_full
  - __ha_cas_dw
  - __ha_cpu_relax
  - __ha_cpu_relax_for_read
  - __ha_barrier_load
  - __ha_barrier_store
  - __ha_barrier_full
  - __ha_barrier_atomic_load
  - __ha_barrier_atomic_store
  - __ha_barrier_atomic_full
  - __ha_cpu_relax
  - __ha_cpu_relax_for_read
  - __ha_cas_dw
  - __ha_cas_dw
  - __ha_cas_dw
  - __ha_barrier_atomic_load
  - __ha_barrier_atomic_store
  - __ha_barrier_atomic_full
  - __ha_barrier_load
  - __ha_barrier_store
  - __ha_barrier_full
  - __ha_cpu_relax
  - __ha_cpu_relax_for_read
  - __ha_compiler_barrier
  source_file: /src/haproxy/include/haproxy/atomic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _HA_ATOMIC_BTR
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_BTR
    - item_type: preproc_def
      name: _HA_ATOMIC_BTS
      pos:
        line_end: 719
        line_start: 718
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_BTS
    - item_type: preproc_def
      name: _HA_ATOMIC_CAS
      pos:
        line_end: 723
        line_start: 722
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_CAS
    - item_type: preproc_def
      name: _HA_ATOMIC_DWCAS
      pos:
        line_end: 727
        line_start: 726
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_DWCAS
    - item_type: preproc_def
      name: _HA_ATOMIC_ADD
      pos:
        line_end: 731
        line_start: 730
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_ADD
    - item_type: preproc_def
      name: _HA_ATOMIC_ADD_FETCH
      pos:
        line_end: 735
        line_start: 734
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_ADD_FETCH
    - item_type: preproc_def
      name: _HA_ATOMIC_FETCH_ADD
      pos:
        line_end: 739
        line_start: 738
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_FETCH_ADD
    - item_type: preproc_def
      name: _HA_ATOMIC_SUB
      pos:
        line_end: 743
        line_start: 742
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_SUB
    - item_type: preproc_def
      name: _HA_ATOMIC_SUB_FETCH
      pos:
        line_end: 747
        line_start: 746
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_SUB_FETCH
    - item_type: preproc_def
      name: _HA_ATOMIC_FETCH_SUB
      pos:
        line_end: 751
        line_start: 750
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_FETCH_SUB
    - item_type: preproc_def
      name: _HA_ATOMIC_INC
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_INC
    - item_type: preproc_def
      name: _HA_ATOMIC_DEC
      pos:
        line_end: 759
        line_start: 758
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_DEC
    - item_type: preproc_def
      name: _HA_ATOMIC_AND
      pos:
        line_end: 763
        line_start: 762
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_AND
    - item_type: preproc_def
      name: _HA_ATOMIC_AND_FETCH
      pos:
        line_end: 767
        line_start: 766
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_AND_FETCH
    - item_type: preproc_def
      name: _HA_ATOMIC_FETCH_AND
      pos:
        line_end: 771
        line_start: 770
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_FETCH_AND
    - item_type: preproc_def
      name: _HA_ATOMIC_OR
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_OR
    - item_type: preproc_def
      name: _HA_ATOMIC_OR_FETCH
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_OR_FETCH
    - item_type: preproc_def
      name: _HA_ATOMIC_FETCH_OR
      pos:
        line_end: 783
        line_start: 782
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_FETCH_OR
    - item_type: preproc_def
      name: _HA_ATOMIC_XCHG
      pos:
        line_end: 787
        line_start: 786
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_XCHG
    - item_type: preproc_def
      name: _HA_ATOMIC_STORE
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_STORE
    - item_type: preproc_def
      name: _HA_ATOMIC_LOAD
      pos:
        line_end: 795
        line_start: 794
        source_file: /src/haproxy/include/haproxy/atomic.h
      type_or_value: HA_ATOMIC_LOAD
    structs:
    - fields:
      - name: r[2]
        type: uint64_t
      item_type: struct
      name: pair
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/haproxy/include/haproxy/atomic.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/mpring.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: capacity
        type: size_t
      - name: mask
        type: size_t
      - name: '*buffer'
        type: uint8_t
      - name: THREAD_ALIGNED()
        type: uint64_t
      - name: THREAD_ALIGNED()
        type: uint64_t
      item_type: struct
      name: mpring
      pos:
        line_end: 17
        line_start: 11
        source_file: /src/haproxy/include/haproxy/mpring.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/qcm_qmux.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - txn_show_flags
  - _
  - _e
  - hmsg_show_flags
  - _
  source_file: /src/haproxy/include/haproxy/http_ana-t.h
  types:
    enum:
    - enumerators:
      - name: HTTP_RULE_RES_CONT
        value: '0'
      - name: HTTP_RULE_RES_FYIELD
      - name: HTTP_RULE_RES_STOP
      - name: HTTP_RULE_RES_YIELD
      - name: HTTP_RULE_RES_DENY
      - name: HTTP_RULE_RES_ABRT
      - name: HTTP_RULE_RES_DONE
      - name: HTTP_RULE_RES_BADREQ
      - name: HTTP_RULE_RES_ERROR
      item_type: enum
      name: rule_result
      pos:
        line_end: 200
        line_start: 190
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
    - enumerators:
      - name: HTTP_MSG_RQBEFORE
        value: '0'
      - name: HTTP_MSG_ENDING
        value: '4'
      - name: HTTP_MSG_RPBEFORE
        value: '1'
      - name: HTTP_MSG_DATA
        value: '3'
      - name: HTTP_MSG_BODY
        value: '2'
      - name: HTTP_MSG_DONE
        value: '5'
      - name: HTTP_MSG_CLOSING
        value: '6'
      - name: HTTP_MSG_CLOSED
        value: '7'
      - name: HTTP_MSG_TUNNEL
        value: '8'
      item_type: enum
      name: h1_state
      pos:
        line_end: 222
        line_start: 205
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
    preproc_defs:
    - item_type: preproc_def
      name: TX_CONST_REPLY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00000008      '
    - item_type: preproc_def
      name: TX_CLTARPIT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000010\t"
    - item_type: preproc_def
      name: TX_CK_NONE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000000\t"
    - item_type: preproc_def
      name: TX_CK_INVALID
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000020\t"
    - item_type: preproc_def
      name: TX_CK_DOWN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000040\t"
    - item_type: preproc_def
      name: TX_CK_VALID
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000060\t"
    - item_type: preproc_def
      name: TX_CK_EXPIRED
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000080\t"
    - item_type: preproc_def
      name: TX_CK_OLD
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x000000A0\t"
    - item_type: preproc_def
      name: TX_CK_UNUSED
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x000000C0\t"
    - item_type: preproc_def
      name: TX_CK_MASK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x000000E0\t"
    - item_type: preproc_def
      name: TX_CK_SHIFT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "5\t\t"
    - item_type: preproc_def
      name: TX_SCK_NONE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000000\t"
    - item_type: preproc_def
      name: TX_SCK_FOUND
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000100\t"
    - item_type: preproc_def
      name: TX_SCK_DELETED
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000200\t"
    - item_type: preproc_def
      name: TX_SCK_INSERTED
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000300\t"
    - item_type: preproc_def
      name: TX_SCK_REPLACED
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000400\t"
    - item_type: preproc_def
      name: TX_SCK_UPDATED
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000500\t"
    - item_type: preproc_def
      name: TX_SCK_MASK
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000700\t"
    - item_type: preproc_def
      name: TX_SCK_SHIFT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "8\t\t"
    - item_type: preproc_def
      name: TX_SCK_PRESENT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00000800\t"
    - item_type: preproc_def
      name: TX_CACHEABLE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00001000\t"
    - item_type: preproc_def
      name: TX_CACHE_COOK
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00002000\t"
    - item_type: preproc_def
      name: TX_CACHE_IGNORE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00004000\t"
    - item_type: preproc_def
      name: TX_CACHE_SHIFT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "12\t\t"
    - item_type: preproc_def
      name: TX_CON_WANT_TUN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00008000\t"
    - item_type: preproc_def
      name: TX_CACHE_HAS_SEC_KEY
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: TX_USE_PX_CONN
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00020000\t"
    - item_type: preproc_def
      name: TX_NOT_FIRST
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: "0x00040000\t"
    - item_type: preproc_def
      name: TX_L7_RETRY
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00080000      '
    - item_type: preproc_def
      name: TX_D_L7_RETRY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00100000      '
    - item_type: preproc_def
      name: HTTP_MSGF_CNT_LEN
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: HTTP_MSGF_TE_CHNK
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: HTTP_MSGF_XFER_LEN
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: HTTP_MSGF_VER_11
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: HTTP_MSGF_SOFT_RW
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: HTTP_MSGF_COMPRESSING
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: HTTP_MSGF_BODYLESS
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: HTTP_MSGF_CONN_UPG
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: HTTP_MSGF_EXPECT_CHECKED
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: HTTP_CACHE_SEC_KEY_LEN
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
      type_or_value: (sizeof(uint32_t)+sizeof(uint64_t)+sizeof(uint64_t))
    structs:
    - fields:
      - name: msg_state
        type: enum h1_state
      - name: vsn
        type: unsigned char
      - name: flags
        type: unsigned int
      - name: '*chn'
        type: struct channel
      item_type: struct
      name: http_msg
      pos:
        line_end: 234
        line_start: 228
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
    - fields:
      - name: rsp
        type: struct http_msg
      - name: req
        type: struct http_msg
      - name: flags
        type: unsigned int
      - name: meth
        type: enum http_meth_t
      - name: status
        type: short
      - name: server_status
        type: short
      - name: '*http_reply'
        type: struct http_reply
      - name: l7_buffer
        type: struct buffer
      - name: cache_hash[20]
        type: char
      - name: cache_secondary_hash[HTTP_CACHE_SEC_KEY_LEN]
        type: char
      - name: '*uri'
        type: char
      - name: '*cli_cookie'
        type: char
      - name: '*srv_cookie'
        type: char
      - name: cookie_first_date
        type: int
      - name: cookie_last_date
        type: int
      - name: auth
        type: struct http_auth_data
      item_type: struct
      name: http_txn
      pos:
        line_end: 259
        line_start: 240
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_cid-t.h
  types:
    enum:
    - enumerators:
      - name: QUIC_CID_SIDE_FE
      - name: QUIC_CID_SIDE_BE
      item_type: enum
      name: quic_cid_side
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/haproxy/include/haproxy/quic_cid-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_CID_MAXLEN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/haproxy/include/haproxy/quic_cid-t.h
      type_or_value: '20 '
    structs:
    - fields:
      - name: root
        type: struct eb_root
      item_type: struct
      name: quic_cid_tree
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/haproxy/include/haproxy/quic_cid-t.h
    - fields:
      - name: data[QUIC_CID_MAXLEN]
        type: unsigned char
      - name: len
        type: unsigned char
      item_type: struct
      name: quic_cid
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/haproxy/include/haproxy/quic_cid-t.h
    - fields:
      - name: seq_num
        type: struct eb64_node
      - name: retire_prior_to
        type: uint64_t
      - name: stateless_reset_token[QUIC_STATELESS_RESET_TOKEN_LEN]
        type: unsigned char
      - name: node
        type: struct ebmb_node
      - name: cid
        type: struct quic_cid
      - name: '*qc'
        type: struct quic_conn
      - name: tid
        type: uint
      - name: side
        type: enum quic_cid_side
      item_type: struct
      name: quic_connection_id
      pos:
        line_end: 48
        line_start: 37
        source_file: /src/haproxy/include/haproxy/quic_cid-t.h
    typedefs: []
    union: []
- function_names:
  - qc_init_fd
  - qc_test_fd
  - qc_fd
  - quic_increment_curr_handshake
  - in46un_to_addr
  source_file: /src/haproxy/include/haproxy/quic_sock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_tx_packet_dgram_detach
  - quic_tx_packet_refinc
  - quic_tx_packet_refdec
  - quic_may_send_bytes
  source_file: /src/haproxy/include/haproxy/quic_tx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_loss-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_LOSS_PACKET_THRESHOLD
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/quic_loss-t.h
      type_or_value: '3'
    - item_type: preproc_def
      name: QUIC_TIMER_GRANULARITY
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/quic_loss-t.h
      type_or_value: '1U '
    - item_type: preproc_def
      name: QUIC_LOSS_INITIAL_RTT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/quic_loss-t.h
      type_or_value: '333U '
    - item_type: preproc_def
      name: QUIC_LOSS_TIME_THRESHOLD_MULTIPLICAND
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/quic_loss-t.h
      type_or_value: '9'
    - item_type: preproc_def
      name: QUIC_LOSS_TIME_THRESHOLD_DIVISOR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/quic_loss-t.h
      type_or_value: '8'
    structs:
    - fields:
      - name: latest_rtt
        type: unsigned int
      - name: srtt
        type: unsigned int
      - name: rtt_var
        type: unsigned int
      - name: rtt_min
        type: unsigned int
      - name: pto_count
        type: unsigned int
      - name: nb_lost_pkt
        type: unsigned long
      - name: nb_reordered_pkt
        type: unsigned long
      item_type: struct
      name: quic_loss
      pos:
        line_end: 58
        line_start: 45
        source_file: /src/haproxy/include/haproxy/quic_loss-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_fas-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: act
        type: struct eb_root
      - name: bck
        type: struct eb_root
      item_type: struct
      name: lb_fas
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/haproxy/include/haproxy/lb_fas-t.h
    typedefs: []
    union: []
- function_names:
  - tls_aead
  - tls_md
  - tls_hp
  - ssl_to_quic_pktns
  - qel_to_quic_pktns
  - ssl_to_quic_enc_level
  - ssl_to_qel_addr
  - ssl_prot_level_to_enc_level
  - qel_to_qel_addr
  - qc_quic_enc_level
  - quic_to_ssl_enc_level
  - quic_hdshk_state_str
  - ssl_error_str
  - quic_enc_level_char
  - quic_enc_level_char_from_qel
  - quic_packet_type_enc_level_char
  - quic_pktns_init
  - quic_pktns_tx_pkts_release
  - quic_pktns_discard
  - qc_release_pktns_frms
  - quic_application_pktns
  - quic_pktns_get_largest_acked_pn
  - quic_pktns_char
  - quic_packet_type_enc_level
  - quic_tls_pktns
  - quic_tls_pktns_is_dcd
  - quic_tls_pkt_type_pktns_dcd
  - qc_select_tls_ctx
  - quic_tls_ctx_reset
  - quic_tls_ctx_secs_free
  - quic_tls_ctx_keys_alloc
  - quic_tls_secrets_keys_free
  - quic_tls_secrets_keys_alloc
  - quic_nictx_free
  - quic_initial_tls_ctx_init
  - quic_tls_level_pkt_type
  - quic_enc_level_pkt_type
  - qc_new_isecs
  - quic_tls_ku_reset
  - quic_tls_ku_free
  - quic_tls_kp_init
  - quic_tls_ku_init
  - quic_tls_has_rx_sec
  - quic_tls_has_tx_sec
  - qc_el_rx_pkts
  - qc_el_rx_pkts_del
  - qc_list_qel_rx_pkts
  - qc_need_sending
  - qc_may_probe_ipktns
  source_file: /src/haproxy/include/haproxy/quic_tls.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/stick_table-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STKTABLE_MAX_DT_ARRAY_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
      type_or_value: '100'
    - item_type: preproc_def
      name: STK_F_CUSTOM_KEYSIZE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
      type_or_value: '0x00000001   '
    - item_type: preproc_def
      name: STKCTR_TRACK_BACKEND
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STKCTR_TRACK_CONTENT
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
      type_or_value: '2'
    - item_type: preproc_def
      name: STK_FL_NONE
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: STK_FL_RECV_ONLY
      pos:
        line_end: 165
        line_start: 162
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
      type_or_value: '0x0001    '
    - item_type: preproc_def
      name: STK_FL_NOPURGE
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
      type_or_value: '0x0002    '
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: std_type
        type: int
      - name: arg_type
        type: int
      - name: is_array
        type: uint
      - name: is_local
        type: uint
      - name: as_is
        type: uint
      item_type: struct
      name: stktable_data_type
      pos:
        line_end: 132
        line_start: 125
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
    - fields:
      - name: '*kw'
        type: char
      - name: flags
        type: int
      - name: default_size
        type: size_t
      item_type: struct
      name: stktable_type
      pos:
        line_end: 139
        line_start: 135
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
    - fields:
      - name: expire
        type: unsigned int
      - name: ref_cnt
        type: unsigned int
      - name: shard
        type: int
      - name: seen
        type: int
      - name: exp
        type: struct eb32_node
      - name: upd
        type: struct eb32_node
      - name: pend_updts
        type: struct mt_list
      - name: updt_is_local
        type: int
      - name: key
        type: struct ebmb_node
      item_type: struct
      name: stksess
      pos:
        line_end: 158
        line_start: 146
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
    - fields:
      - name: '*id'
        type: char
      - name: idlen
        type: size_t
      - name: '*nid'
        type: char
      - name: '*next'
        type: struct stktable
      - name: id_node
        type: struct ceb_node
      - name: '*pool'
        type: struct pool_head
      - name: '*sync_task'
        type: struct task
      - name: hash_seed
        type: uint64_t
      - name: peers
        type: "union {\n\t\tstruct peers *p; /* sync peers */\n\t\tchar *name;\n\t}"
      - name: type
        type: unsigned long
      - name: key_size
        type: size_t
      - name: server_key_type
        type: unsigned int
      - name: size
        type: unsigned int
      - name: expire
        type: int
      - name: data_size
        type: int
      - name: data_ofs[STKTABLE_DATA_TYPES]
        type: int
      - name: data_nbelem[STKTABLE_DATA_TYPES]
        type: unsigned int
      - name: brates_factor
        type: unsigned int
      - name: flags
        type: uint16_t
      - name: data_arg[STKTABLE_DATA_TYPES]
        type: "union {\n\t\tint i;\n\t\tunsigned int u;\n\t\tvoid *p;\n\t}"
      - name: '*proxy'
        type: struct proxy
      - name: write_to
        type: "union {\n\t\tchar *name;         /* preparsing hint */\n\t\tstruct
          stktable *t; /* postparsing */\n\t\tvoid *ptr;          /* generic ptr to
          check if set or not */\n\t}"
      - name: buckets[CONFIG_HAP_TBL_BUCKETS]
        type: "struct {\n\t\tstruct eb_root keys;      /* head of sticky session tree
          */\n\t\tstruct eb_root exps;      /* head of sticky session expiration tree
          */\n\t\tstruct eb32_node in_bucket; /* Each bucket maintains a tree, ordered
          by expiration date, this does not require sh_lock as only one task will
          ever modify it */\n\t\tstruct mt_list in_bucket_toadd; /* To add to the
          bucket tree */\n\n\t\t__decl_thread(HA_RWLOCK_T sh_lock); /* for the trees
          above */\n\t\tint next_exp;    /* Next expiration for this table */\n\t}"
      - name: refcnt
        type: unsigned int
      - name: current
        type: unsigned int
      - name: updates
        type: struct eb_root
      - name: '*pend_updts'
        type: struct mt_list
      - name: update
        type: unsigned int
      - name: localupdate
        type: unsigned int
      - name: '*updt_task'
        type: struct tasklet
      - name: '*proxies_list'
        type: struct proxy
      - name: conf
        type: "struct {\n\t\tconst char *file;     /* The file where the stick-table
          is declared (global name). */\n\t\tint line;             /* The line in
          this <file> the stick-table is declared. */\n\t}"
      item_type: struct
      name: stktable
      pos:
        line_end: 241
        line_start: 168
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
    - fields:
      - name: tables
        type: struct eb_root
      - name: toadd_tables
        type: struct mt_list
      - name: '*exp_task'
        type: struct task
      item_type: struct
      name: stk_per_bucket
      pos:
        line_end: 248
        line_start: 243
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
    - fields:
      - name: '*key'
        type: void
      - name: key_len
        type: size_t
      item_type: struct
      name: stktable_key
      pos:
        line_end: 256
        line_start: 253
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
    - fields:
      - name: entry
        type: unsigned long
      - name: '*table'
        type: struct stktable
      item_type: struct
      name: stkctr
      pos:
        line_end: 264
        line_start: 261
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
    - fields:
      - name: '*expr'
        type: struct sample_expr
      - name: table
        type: "union {\n\t\tstruct stktable *t;\t\t/* a pointer to the table */\n\t\tchar
          *n;\t\t\t/* or its name during parsing. */\n\t}"
      item_type: struct
      name: track_ctr_prm
      pos:
        line_end: 273
        line_start: 267
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
    typedefs: []
    union:
    - fields:
      - name: std_t_sint
        type: int
      - name: std_t_uint
        type: unsigned int
      - name: std_t_ull
        type: unsigned long long
      - name: std_t_frqp
        type: struct freq_ctr
      - name: '*std_t_dict'
        type: struct dict_entry
      item_type: union
      name: stktable_data
      pos:
        line_end: 122
        line_start: 115
        source_file: /src/haproxy/include/haproxy/stick_table-t.h
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_fwrr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_stats-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: rxbuf_full
        type: long long
      - name: dropped_pkt
        type: long long
      - name: dropped_pkt_bufoverrun
        type: long long
      - name: dropped_parsing
        type: long long
      - name: socket_full
        type: long long
      - name: sendto_err
        type: long long
      - name: sendto_err_unknown
        type: long long
      - name: sent_pkt
        type: long long
      - name: lost_pkt
        type: long long
      - name: too_short_initial_dgram
        type: long long
      - name: retry_sent
        type: long long
      - name: retry_validated
        type: long long
      - name: retry_error
        type: long long
      - name: half_open_conn
        type: long long
      - name: hdshk_fail
        type: long long
      - name: stateless_reset_sent
        type: long long
      - name: conn_migration_done
        type: long long
      - name: quic_transp_err_no_error
        type: long long
      - name: quic_transp_err_internal_error
        type: long long
      - name: quic_transp_err_connection_refused
        type: long long
      - name: quic_transp_err_flow_control_error
        type: long long
      - name: quic_transp_err_stream_limit_error
        type: long long
      - name: quic_transp_err_stream_state_error
        type: long long
      - name: quic_transp_err_final_size_error
        type: long long
      - name: quic_transp_err_frame_encoding_error
        type: long long
      - name: quic_transp_err_transport_parameter_error
        type: long long
      - name: quic_transp_err_connection_id_limit
        type: long long
      - name: quic_transp_err_protocol_violation
        type: long long
      - name: quic_transp_err_invalid_token
        type: long long
      - name: quic_transp_err_application_error
        type: long long
      - name: quic_transp_err_crypto_buffer_exceeded
        type: long long
      - name: quic_transp_err_key_update_error
        type: long long
      - name: quic_transp_err_aead_limit_reached
        type: long long
      - name: quic_transp_err_no_viable_path
        type: long long
      - name: quic_transp_err_crypto_error
        type: long long
      - name: quic_transp_err_unknown_error
        type: long long
      - name: data_blocked
        type: long long
      - name: stream_data_blocked
        type: long long
      - name: streams_blocked_bidi
        type: long long
      - name: streams_blocked_uni
        type: long long
      - name: ncbuf_gap_limit
        type: long long
      item_type: struct
      name: quic_counters
      pos:
        line_end: 101
        line_start: 56
        source_file: /src/haproxy/include/haproxy/quic_stats-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/stats-json.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HLUA_SET_RUN
  - HLUA_CLR_RUN
  - HLUA_IS_RUNNING
  - HLUA_SET_BUSY
  - HLUA_CLR_BUSY
  - HLUA_IS_BUSY
  - HLUA_SET_CTRLYIELD
  - HLUA_CLR_CTRLYIELD
  - HLUA_IS_CTRLYIELDING
  - HLUA_SET_WAKERESWR
  - HLUA_CLR_WAKERESWR
  - HLUA_IS_WAKERESWR
  - HLUA_SET_WAKEREQWR
  - HLUA_CLR_WAKEREQWR
  - HLUA_IS_WAKEREQWR
  - HLUA_CLR_NOYIELD
  - HLUA_SET_NOYIELD
  - HLUA_CANT_YIELD
  - HLUA_INIT
  - HLUA_IS_RUNNING
  - hlua_init
  - hlua_post_init
  - hlua_ctx_destroy
  - hlua_show_current_location
  source_file: /src/haproxy/include/haproxy/hlua.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/dns-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DNS_HEADER_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/dns-t.h
      type_or_value: ((int)sizeof(struct dns_header))
    - item_type: preproc_def
      name: DNS_STREAM_MAX_PIPELINED_REQ
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/dns-t.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DNS_TCP_MSG_MAX_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/dns-t.h
      type_or_value: '65535'
    - item_type: preproc_def
      name: DNS_TCP_MSG_RING_MAX_SIZE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/dns-t.h
      type_or_value: (1 + 1 + 3 + DNS_TCP_MSG_MAX_SIZE) // varint_bytes(DNS_TCP_MSG_MAX_SIZE)
        == 3
    - item_type: preproc_def
      name: DNS_MAX_DSS_CONSECUTIVE_ERRORS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/dns-t.h
      type_or_value: '100'
    structs:
    - fields:
      - name: id
        type: uint16_t
      - name: flags
        type: uint16_t
      - name: qdcount
        type: uint16_t
      - name: ancount
        type: uint16_t
      - name: nscount
        type: uint16_t
      - name: arcount
        type: uint16_t
      item_type: struct
      name: dns_header
      pos:
        line_end: 57
        line_start: 50
        source_file: /src/haproxy/include/haproxy/dns-t.h
    - fields:
      - name: qtype
        type: unsigned short
      - name: qclass
        type: unsigned short
      item_type: struct
      name: dns_question
      pos:
        line_end: 64
        line_start: 61
        source_file: /src/haproxy/include/haproxy/dns-t.h
    - fields:
      - name: name
        type: uint8_t
      - name: type
        type: uint16_t
      - name: udp_payload_size
        type: uint16_t
      - name: extension
        type: uint32_t
      - name: data_length
        type: uint16_t
      item_type: struct
      name: dns_additional_record
      pos:
        line_end: 78
        line_start: 68
        source_file: /src/haproxy/include/haproxy/dns-t.h
    - fields:
      - name: '*srv'
        type: struct server
      - name: '*ring_req'
        type: struct dns_ring
      - name: consecutive_errors
        type: int
      - name: maxconn
        type: int
      - name: idle_conns
        type: int
      - name: cur_conns
        type: int
      - name: max_active_conns
        type: int
      - name: ofs_req
        type: size_t
      - name: ofs_rsp
        type: size_t
      - name: '*task_req'
        type: struct task
      - name: '*task_rsp'
        type: struct task
      - name: '*task_idle'
        type: struct task
      - name: free_sess
        type: struct list
      - name: idle_sess
        type: struct list
      - name: wait_sess
        type: struct list
      item_type: struct
      name: dns_stream_server
      pos:
        line_end: 100
        line_start: 83
        source_file: /src/haproxy/include/haproxy/dns-t.h
    - fields:
      - name: conn
        type: struct dgram_conn
      - name: '*ring_req'
        type: struct dns_ring
      - name: ofs_req
        type: size_t
      item_type: struct
      name: dns_dgram_server
      pos:
        line_end: 106
        line_start: 102
        source_file: /src/haproxy/include/haproxy/dns-t.h
    - fields:
      - name: qid
        type: struct eb32_node
      - name: original_qid
        type: uint16_t
      - name: expire
        type: int
      - name: list
        type: struct list
      item_type: struct
      name: dns_query
      pos:
        line_end: 113
        line_start: 108
        source_file: /src/haproxy/include/haproxy/dns-t.h
    - fields:
      - name: '*appctx'
        type: struct appctx
      - name: '*dss'
        type: struct dns_stream_server
      - name: tx_msg_offset
        type: uint16_t
      - name: nb_queries
        type: int
      - name: onfly_queries
        type: int
      - name: query_counter
        type: int
      - name: list
        type: struct list
      - name: waiter
        type: struct list
      - name: queries
        type: struct list
      - name: '*task_exp'
        type: struct task
      - name: query_ids
        type: struct eb_root
      - name: ofs
        type: size_t
      - name: ring
        type: struct dns_ring
      - name: rx_msg
        type: "struct  {\n\t\tuint16_t len;\n\t\tuint16_t offset;\n\t\tchar *area;\n\t}"
      - name: '*tx_ring_area'
        type: unsigned char
      - name: shutdown
        type: int
      item_type: struct
      name: dns_session
      pos:
        line_end: 136
        line_start: 115
        source_file: /src/haproxy/include/haproxy/dns-t.h
    - fields:
      - name: '*id'
        type: char
      - name: '*parent'
        type: void
      - name: puid
        type: unsigned int
      - name: conf
        type: "struct {\n\t\tconst char *file;       /* file where the section appears
          */\n\t\tint         line;       /* line where the section appears */\n\t}"
      - name: (*process_responses)(struct dns_nameserver *ns)
        type: int
      - name: '*dgram'
        type: struct dns_dgram_server
      - name: '*stream'
        type: struct dns_stream_server
      - name: '*extra_counters_storage'
        type: char
      - name: '*counters'
        type: struct dns_counters
      - name: list
        type: struct list
      item_type: struct
      name: dns_nameserver
      pos:
        line_end: 158
        line_start: 140
        source_file: /src/haproxy/include/haproxy/dns-t.h
    - fields:
      - name: '*id'
        type: char
      - name: '*pid'
        type: char
      - name: ns_puid
        type: unsigned int
      - name: sent
        type: long long
      - name: snd_error
        type: long long
      - name: app
        type: "union {\n\t\tstruct {\n\t\t\tlong long valid;        /* - valid response
          */\n\t\t\tlong long update;       /* - valid response used to update server's
          IP */\n\t\t\tlong long cname;        /* - CNAME response requiring new resolution
          */\n\t\t\tlong long cname_error;  /* - error when resolving CNAMEs */\n\t\t\tlong
          long any_err;      /* - void response (usually because ANY qtype) */\n\t\t\tlong
          long nx;           /* - NX response */\n\t\t\tlong long timeout;      /*
          - queries which reached timeout */\n\t\t\tlong long refused;      /* - queries
          refused */\n\t\t\tlong long other;        /* - other type of response */\n\t\t\tlong
          long invalid;      /* - malformed DNS response */\n\t\t\tlong long too_big;
          \     /* - too big response */\n\t\t\tlong long outdated;     /* - outdated
          response (server slower than the other ones) */\n\t\t\tlong long truncated;
          \   /* - truncated response */;\n\t\t} resolver;\n\t}"
      item_type: struct
      name: dns_counters
      pos:
        line_end: 184
        line_start: 161
        source_file: /src/haproxy/include/haproxy/dns-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/dict-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: value
        type: struct ebpt_node
      - name: refcount
        type: unsigned int
      - name: len
        type: size_t
      item_type: struct
      name: dict_entry
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/haproxy/include/haproxy/dict-t.h
    - fields:
      - name: '*name'
        type: char
      - name: values
        type: struct eb_root
      item_type: struct
      name: dict
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/haproxy/include/haproxy/dict-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/list-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*n'
        type: struct list
      - name: '*p'
        type: struct list
      item_type: struct
      name: list
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/haproxy/include/haproxy/list-t.h
    - fields:
      - name: '*next'
        type: struct mt_list
      - name: '*prev'
        type: struct mt_list
      item_type: struct
      name: mt_list
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/haproxy/include/haproxy/list-t.h
    - fields:
      - name: users
        type: struct list
      - name: '*ref'
        type: struct list
      item_type: struct
      name: bref
      pos:
        line_end: 57
        line_start: 54
        source_file: /src/haproxy/include/haproxy/list-t.h
    - fields:
      - name: el
        type: struct mt_list
      - name: '**pptr'
        type: void
      - name: 'off'
        type: size_t
      item_type: struct
      name: watcher
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/haproxy/include/haproxy/list-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*s'
        type: char
      item_type: struct
      name: wordlist
      pos:
        line_end: 74
        line_start: 71
        source_file: /src/haproxy/include/haproxy/list-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*cond'
        type: void
      - name: '*s'
        type: char
      item_type: struct
      name: cond_wordlist
      pos:
        line_end: 81
        line_start: 77
        source_file: /src/haproxy/include/haproxy/list-t.h
    typedefs: []
    union: []
- function_names:
  - h1_msg_state_str
  source_file: /src/haproxy/include/haproxy/http_ana.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_stream-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QC_SD_FL_RELEASE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/include/haproxy/quic_stream-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: QC_SD_FL_WAIT_FOR_FIN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/include/haproxy/quic_stream-t.h
      type_or_value: '0x00000002 '
    structs:
    - fields:
      - name: ack_tree
        type: struct eb_root
      - name: offset_node
        type: struct eb64_node
      - name: buf
        type: struct buffer
      - name: room
        type: uint64_t
      - name: sbuf
        type: int
      item_type: struct
      name: qc_stream_buf
      pos:
        line_end: 23
        line_start: 17
        source_file: /src/haproxy/include/haproxy/quic_stream-t.h
    - fields:
      - name: by_id
        type: struct eb64_node
      - name: '*qc'
        type: struct quic_conn
      - name: '*buf'
        type: struct qc_stream_buf
      - name: buf_offset
        type: uint64_t
      - name: ack_offset
        type: uint64_t
      - name: buf_tree
        type: struct eb_root
      - name: data
        type: struct bdata_ctr
      - name: origin_ts
        type: ullong
      - name: flags
        type: int
      - name: (*notify_send)(struct qc_stream_desc *, uint64_t offset, uint64_t len)
        type: void
      - name: (*notify_room)(struct qc_stream_desc *, uint64_t room)
        type: void
      - name: '*ctx'
        type: void
      item_type: struct
      name: qc_stream_desc
      pos:
        line_end: 54
        line_start: 37
        source_file: /src/haproxy/include/haproxy/quic_stream-t.h
    - fields:
      - name: offset_node
        type: struct eb64_node
      - name: len
        type: uint64_t
      - name: fin
        type: int
      item_type: struct
      name: qc_stream_ack
      pos:
        line_end: 61
        line_start: 57
        source_file: /src/haproxy/include/haproxy/quic_stream-t.h
    typedefs: []
    union: []
- function_names:
  - h1_get_uri
  source_file: /src/haproxy/include/haproxy/h1_htx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ssl_crtlist.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/version.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRODUCT_NAME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: CONFIG_PRODUCT_NAME
    - item_type: preproc_def
      name: PRODUCT_NAME
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: '"HAProxy"'
    - item_type: preproc_def
      name: PRODUCT_BRANCH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: CONFIG_PRODUCT_BRANCH
    - item_type: preproc_def
      name: PRODUCT_BRANCH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: '"3.4"'
    - item_type: preproc_def
      name: PRODUCT_STATUS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: CONFIG_PRODUCT_STATUS
    - item_type: preproc_def
      name: PRODUCT_STATUS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: '"Status: development branch - not safe for use in production."'
    - item_type: preproc_def
      name: PRODUCT_URL_BUGS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: CONFIG_PRODUCT_URL_BUGS
    - item_type: preproc_def
      name: PRODUCT_URL_BUGS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: '"http://www.haproxy.org/bugs/bugs-%s.html"'
    - item_type: preproc_def
      name: PRODUCT_URL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: CONFIG_PRODUCT_URL
    - item_type: preproc_def
      name: PRODUCT_URL
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: '"http://www.haproxy.org/"'
    - item_type: preproc_def
      name: PRODUCT_URL_UPD
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: CONFIG_PRODUCT_URL_UPD
    - item_type: preproc_def
      name: PRODUCT_URL_UPD
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: '"http://www.haproxy.org/#down"'
    - item_type: preproc_def
      name: PRODUCT_URL_DOC
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: CONFIG_PRODUCT_URL_DOC
    - item_type: preproc_def
      name: PRODUCT_URL_DOC
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: '"http://www.haproxy.org/#docs"'
    - item_type: preproc_def
      name: HAPROXY_VERSION
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: CONFIG_HAPROXY_VERSION
    - item_type: preproc_def
      name: HAPROXY_DATE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/version.h
      type_or_value: CONFIG_HAPROXY_DATE
    structs: []
    typedefs: []
    union: []
- function_names:
  - IS_HTX_STRM
  - strm_sess
  - strm_fe
  - strm_li
  - strm_orig
  - stream_store_counters
  - stream_stop_content_counters
  - stream_start_counters
  - stream_track_stkctr
  - stream_inc_http_req_ctr
  - stream_inc_be_http_req_ctr
  - stream_inc_http_err_ctr
  - stream_inc_http_fail_ctr
  - stream_add_srv_conn
  - stream_del_srv_conn
  - stream_init_srv_conn
  - stream_choose_redispatch
  - stream_check_conn_timeout
  - stream_shutdown
  - stream_map_task_state
  - stream_report_term_evt
  - stream_set_srv_target
  source_file: /src/haproxy/include/haproxy/stream.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRM_EV_STRM_NEW
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL <<  0)
    - item_type: preproc_def
      name: STRM_EV_STRM_FREE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL <<  1)
    - item_type: preproc_def
      name: STRM_EV_STRM_ERR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL <<  2)
    - item_type: preproc_def
      name: STRM_EV_STRM_ANA
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL <<  3)
    - item_type: preproc_def
      name: STRM_EV_STRM_PROC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL <<  4)
    - item_type: preproc_def
      name: STRM_EV_CS_ST
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL <<  5)
    - item_type: preproc_def
      name: STRM_EV_HTTP_ANA
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL <<  6)
    - item_type: preproc_def
      name: STRM_EV_HTTP_ERR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL <<  7)
    - item_type: preproc_def
      name: STRM_EV_TCP_ANA
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL <<  8)
    - item_type: preproc_def
      name: STRM_EV_TCP_ERR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL <<  9)
    - item_type: preproc_def
      name: STRM_EV_FLT_ANA
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL << 10)
    - item_type: preproc_def
      name: STRM_EV_FLT_ERR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/stream.h
      type_or_value: (1ULL << 11)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/cpuset-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CPUSET_REPR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/include/haproxy/cpuset-t.h
      type_or_value: cpu_set_t
    - item_type: preproc_def
      name: CPUSET_REPR
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/include/haproxy/cpuset-t.h
      type_or_value: cpuset_t
    - item_type: preproc_def
      name: CPUSET_REPR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/cpuset-t.h
      type_or_value: unsigned long
    structs:
    - fields:
      - name: cpuset
        type: CPUSET_REPR
      item_type: struct
      name: hap_cpuset
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/haproxy/include/haproxy/cpuset-t.h
    - fields:
      - name: thread[MAX_THREADS_PER_GROUP]
        type: struct hap_cpuset
      item_type: struct
      name: cpu_map
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/haproxy/include/haproxy/cpuset-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_chash.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SSL_SOCK_CA_ERROR_TO_ST
  - SSL_SOCK_CAEDEPTH_TO_ST
  - SSL_SOCK_CRTERROR_TO_ST
  - SSL_SOCK_ST_TO_CA_ERROR
  - SSL_SOCK_ST_TO_CAEDEPTH
  - SSL_SOCK_ST_TO_CRTERROR
  source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSL_SOCK_ST_FL_VERIFY_DONE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: SSL_SOCK_ST_FL_16K_WBFSIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: SSL_SOCK_SEND_UNLIMITED
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: SSL_SOCK_RECV_HEARTBEAT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: SSL_SOCK_SEND_MORE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: MC_SSL_O_ALL
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: MC_SSL_O_NO_SSLV3
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: "0x0001\t"
    - item_type: preproc_def
      name: MC_SSL_O_NO_TLSV10
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: "0x0002\t"
    - item_type: preproc_def
      name: MC_SSL_O_NO_TLSV11
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: "0x0004\t"
    - item_type: preproc_def
      name: MC_SSL_O_NO_TLSV12
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: "0x0008\t"
    - item_type: preproc_def
      name: MC_SSL_O_NO_TLSV13
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: "0x0010\t"
    - item_type: preproc_def
      name: SSL_GF_NONE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x00000000   '
    - item_type: preproc_def
      name: SSL_GF_BUNDLE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x00000001   '
    - item_type: preproc_def
      name: SSL_GF_SCTL
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x00000002   '
    - item_type: preproc_def
      name: SSL_GF_OCSP
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x00000004   '
    - item_type: preproc_def
      name: SSL_GF_OCSP_ISSUER
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x00000008   '
    - item_type: preproc_def
      name: SSL_GF_KEY
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0x00000010   '
    - item_type: preproc_def
      name: SSL_GF_ALL
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: (SSL_GF_BUNDLE|SSL_GF_SCTL|SSL_GF_OCSP|SSL_GF_OCSP_ISSUER|SSL_GF_KEY)
    - item_type: preproc_def
      name: SSL_SOCK_OCSP_UPDATE_OFF
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: SSL_SOCK_OCSP_UPDATE_DFLT
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_SOCK_OCSP_UPDATE_ON
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SSL_KEYLOG_MAX_SECRET_SIZE
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '129'
    - item_type: preproc_def
      name: SSL_SOCK_F_EARLY_ENABLED
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '(1 << 0) '
    - item_type: preproc_def
      name: SSL_SOCK_F_KTLS_ENABLED
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '(1 << 1) '
    - item_type: preproc_def
      name: SSL_SOCK_F_KTLS_SEND
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '(1 << 2) '
    - item_type: preproc_def
      name: SSL_SOCK_F_KTLS_RECV
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '(1 << 3) '
    - item_type: preproc_def
      name: SSL_SOCK_F_CTRL_SEND
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '(1 << 4) '
    - item_type: preproc_def
      name: SSL_SOCK_F_HAS_ALPN
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '(1 << 5) '
    - item_type: preproc_def
      name: SSL_SOCK_NUM_KEYTYPES
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type_or_value: '3'
    structs:
    - fields:
      - name: option
        type: int
      - name: flag
        type: uint16_t
      - name: (*ctx_set_version)(SSL_CTX *, set_context_func)
        type: void
      - name: (*ssl_set_version)(SSL *, set_context_func)
        type: void
      - name: '*name'
        type: char
      item_type: struct
      name: methodVersions
      pos:
        line_end: 131
        line_start: 125
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: sig
        type: uint8_t
      - name: bits
        type: uint16_t
      item_type: struct
      name: pkey_info
      pos:
        line_end: 136
        line_start: 133
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: '*ctx'
        type: SSL_CTX
      - name: order
        type: int
      - name: neg
        type: unsigned int
      - name: wild
        type: unsigned int
      - name: kinfo
        type: struct pkey_info
      - name: '*conf'
        type: struct ssl_bind_conf
      - name: by_ckch_inst
        type: struct list
      - name: '*ckch_inst'
        type: struct ckch_inst
      - name: name
        type: struct ebmb_node
      item_type: struct
      name: sni_ctx
      pos:
        line_end: 148
        line_start: 138
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: name[16]
        type: unsigned char
      - name: aes_key[16]
        type: unsigned char
      - name: hmac_key[16]
        type: unsigned char
      item_type: struct
      name: tls_sess_key_128
      pos:
        line_end: 154
        line_start: 150
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: name[16]
        type: unsigned char
      - name: aes_key[32]
        type: unsigned char
      - name: hmac_key[32]
        type: unsigned char
      item_type: struct
      name: tls_sess_key_256
      pos:
        line_end: 160
        line_start: 156
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*filename'
        type: char
      - name: unique_id
        type: int
      - name: refcount
        type: int
      - name: '*tlskeys'
        type: union tls_sess_key
      - name: tls_ticket_enc_index
        type: int
      - name: key_size_bits
        type: int
      item_type: struct
      name: tls_keys_ref
      pos:
        line_end: 177
        line_start: 168
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: key
        type: struct ebmb_node
      - name: key_data[SSL_MAX_SSL_SESSION_ID_LENGTH]
        type: unsigned char
      item_type: struct
      name: sh_ssl_sess_hdr
      pos:
        line_end: 183
        line_start: 180
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: node
        type: struct eb64_node
      - name: '*chain'
        type: STACK_OF
      - name: '*path'
        type: char
      item_type: struct
      name: issuer_chain
      pos:
        line_end: 192
        line_start: 188
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: func
        type: ssl_sock_msg_callback_func
      - name: list
        type: struct list
      item_type: struct
      name: ssl_sock_msg_callback
      pos:
        line_end: 207
        line_start: 204
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: xxh64
        type: ullong
      - name: protocol_version
        type: ushort
      - name: ciphersuite_len
        type: ushort
      - name: extensions_len
        type: ushort
      - name: ec_len
        type: ushort
      - name: ciphersuite_offset
        type: uint
      - name: extensions_offset
        type: uint
      - name: ec_offset
        type: uint
      - name: ec_formats_offset
        type: uint
      - name: ec_formats_len
        type: uchar
      - name: supver_len
        type: uchar
      - name: supver_offset
        type: uint
      - name: sigalgs_len
        type: ushort
      - name: sigalgs_offset
        type: uint
      - name: data[VAR_ARRAY]
        type: char
      item_type: struct
      name: ssl_capture
      pos:
        line_end: 226
        line_start: 210
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: '*client_random'
        type: char
      - name: '*client_early_traffic_secret'
        type: char
      - name: '*client_handshake_traffic_secret'
        type: char
      - name: '*server_handshake_traffic_secret'
        type: char
      - name: '*client_traffic_secret_0'
        type: char
      - name: '*server_traffic_secret_0'
        type: char
      - name: '*exporter_secret'
        type: char
      - name: '*early_exporter_secret'
        type: char
      item_type: struct
      name: ssl_keylog
      pos:
        line_end: 245
        line_start: 231
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: '*conn'
        type: struct connection
      - name: '*ssl'
        type: SSL
      - name: '*bio'
        type: BIO
      - name: '*xprt'
        type: struct xprt_ops
      - name: '*xprt_ctx'
        type: void
      - name: wait_event
        type: struct wait_event
      - name: '*subs'
        type: struct wait_event
      - name: xprt_st
        type: int
      - name: error_code
        type: unsigned long
      - name: early_buf
        type: struct buffer
      - name: sent_early_data
        type: int
      - name: flags
        type: int
      item_type: struct
      name: ssl_sock_ctx
      pos:
        line_end: 278
        line_start: 258
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: '*crt_base'
        type: char
      - name: '*key_base'
        type: char
      - name: '*ca_base'
        type: char
      - name: '*issuers_chain_path'
        type: char
      - name: skip_self_issued_ca
        type: int
      - name: async
        type: int
      - name: '*listen_default_ciphers'
        type: char
      - name: '*connect_default_ciphers'
        type: char
      - name: listen_default_ssloptions
        type: int
      - name: connect_default_ssloptions
        type: int
      - name: listen_default_sslmethods
        type: struct tls_version_filter
      - name: connect_default_sslmethods
        type: struct tls_version_filter
      - name: private_cache
        type: int
      - name: life_time
        type: unsigned int
      - name: max_record
        type: unsigned int
      - name: hard_max_record
        type: unsigned int
      - name: default_dh_param
        type: unsigned int
      - name: ctx_cache
        type: int
      - name: capture_buffer_size
        type: int
      - name: keylog
        type: int
      - name: extra_files
        type: int
      - name: extra_files_noext
        type: int
      - name: security_level
        type: int
      - name: renegotiate
        type: int
      - name: '**passphrase_cmd'
        type: char
      - name: passphrase_cmd_args_cnt
        type: int
      - name: certificate_compression
        type: unsigned int
      item_type: struct
      name: global_ssl
      pos:
        line_end: 342
        line_start: 280
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: sess
        type: long long
      - name: reused_sess
        type: long long
      - name: failed_handshake
        type: long long
      - name: ocsp_staple
        type: long long
      - name: failed_ocsp_staple
        type: long long
      item_type: struct
      name: ssl_counters
      pos:
        line_end: 359
        line_start: 353
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    - fields:
      - name: '*path'
        type: char
      - name: '*ckch_data'
        type: struct ckch_data
      - name: passphrase_idx
        type: int
      - name: callback_called
        type: int
      item_type: struct
      name: passphrase_cb_data
      pos:
        line_end: 366
        line_start: 361
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    typedefs:
    - item_type: typedef
      name: "(*ssl_sock_msg_callback_func)(\n\tint write_p, int version, int content_type,\n\tconst
        void *buf, size_t len, SSL *ssl)"
      pos:
        line_end: 198
        line_start: 196
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
      type: void
    union:
    - fields:
      - name: name[16]
        type: unsigned char
      - name: key_128
        type: struct tls_sess_key_128
      - name: key_256
        type: struct tls_sess_key_256
      item_type: union
      name: tls_sess_key
      pos:
        line_end: 166
        line_start: 162
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
- function_names: []
  source_file: /src/haproxy/include/haproxy/pipe-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: data
        type: int
      - name: prod
        type: int
      - name: cons
        type: int
      - name: '*next'
        type: struct pipe
      item_type: struct
      name: pipe
      pos:
        line_end: 33
        line_start: 28
        source_file: /src/haproxy/include/haproxy/pipe-t.h
    typedefs: []
    union: []
- function_names:
  - strm_show_flags
  - _
  - _e
  - strm_et_show_flags
  - _
  source_file: /src/haproxy/include/haproxy/stream-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SF_DIRECT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00000001\t"
    - item_type: preproc_def
      name: SF_ASSIGNED
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00000002\t"
    - item_type: preproc_def
      name: SF_MAYALLOC
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x00000004      '
    - item_type: preproc_def
      name: SF_BE_ASSIGNED
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00000008\t"
    - item_type: preproc_def
      name: SF_FORCE_PRST
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00000010\t"
    - item_type: preproc_def
      name: SF_MONITOR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00000020\t"
    - item_type: preproc_def
      name: SF_CURR_SESS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00000040\t"
    - item_type: preproc_def
      name: SF_CONN_EXP
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x00000080      '
    - item_type: preproc_def
      name: SF_REDISP
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00000100\t"
    - item_type: preproc_def
      name: SF_IGNORE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x00000200      '
    - item_type: preproc_def
      name: SF_REDIRECTABLE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00000400\t"
    - item_type: preproc_def
      name: SF_HTX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x00000800      '
    - item_type: preproc_def
      name: SF_ERR_NONE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00000000\t"
    - item_type: preproc_def
      name: SF_ERR_LOCAL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00001000\t"
    - item_type: preproc_def
      name: SF_ERR_CLITO
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00002000\t"
    - item_type: preproc_def
      name: SF_ERR_CLICL
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00003000\t"
    - item_type: preproc_def
      name: SF_ERR_SRVTO
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00004000\t"
    - item_type: preproc_def
      name: SF_ERR_SRVCL
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00005000\t"
    - item_type: preproc_def
      name: SF_ERR_PRXCOND
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00006000\t"
    - item_type: preproc_def
      name: SF_ERR_RESOURCE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00007000\t"
    - item_type: preproc_def
      name: SF_ERR_INTERNAL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00008000\t"
    - item_type: preproc_def
      name: SF_ERR_DOWN
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00009000\t"
    - item_type: preproc_def
      name: SF_ERR_KILLED
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x0000a000\t"
    - item_type: preproc_def
      name: SF_ERR_UP
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x0000b000\t"
    - item_type: preproc_def
      name: SF_ERR_CHK_PORT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x0000c000\t"
    - item_type: preproc_def
      name: SF_ERR_MASK
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x0000f000\t"
    - item_type: preproc_def
      name: SF_ERR_SHIFT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "12\t\t"
    - item_type: preproc_def
      name: SF_FINST_R
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00010000\t"
    - item_type: preproc_def
      name: SF_FINST_C
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00020000\t"
    - item_type: preproc_def
      name: SF_FINST_H
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00030000\t"
    - item_type: preproc_def
      name: SF_FINST_D
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00040000\t"
    - item_type: preproc_def
      name: SF_FINST_L
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00050000\t"
    - item_type: preproc_def
      name: SF_FINST_Q
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00060000\t"
    - item_type: preproc_def
      name: SF_FINST_T
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00070000\t"
    - item_type: preproc_def
      name: SF_FINST_MASK
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00070000\t"
    - item_type: preproc_def
      name: SF_FINST_SHIFT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "16\t\t"
    - item_type: preproc_def
      name: SF_IGNORE_PRST
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00080000\t"
    - item_type: preproc_def
      name: SF_SRV_REUSED
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00100000\t"
    - item_type: preproc_def
      name: SF_SRV_REUSED_ANTICIPATED
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x00200000  '
    - item_type: preproc_def
      name: SF_WEBSOCKET
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00400000\t"
    - item_type: preproc_def
      name: SF_SRC_ADDR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x00800000\t"
    - item_type: preproc_def
      name: SF_BC_MARK
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x01000000\t"
    - item_type: preproc_def
      name: SF_BC_TOS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: "0x02000000\t"
    - item_type: preproc_def
      name: SF_RULE_FYIELD
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x04000000      '
    - item_type: preproc_def
      name: SF_TXN_NONE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x00000000      '
    - item_type: preproc_def
      name: SF_TXN_HTTP
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x10000000      '
    - item_type: preproc_def
      name: SF_TXN_PCLI
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x20000000      '
    - item_type: preproc_def
      name: SF_TXN_MASK
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x30000000      '
    - item_type: preproc_def
      name: PCLI_F_BIDIR
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x08000 '
    - item_type: preproc_def
      name: PCLI_F_PROMPT
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: PCLI_F_PAYLOAD
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: PCLI_F_RELOAD
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x40000 '
    - item_type: preproc_def
      name: PCLI_F_TIMED
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x80000 '
    structs:
    - fields:
      - name: logwait
        type: int
      - name: level
        type: int
      - name: accept_date
        type: struct timeval
      - name: accept_ts
        type: ullong
      - name: t_handshake
        type: long
      - name: t_idle
        type: long
      - name: request_ts
        type: ullong
      - name: t_queue
        type: long
      - name: t_connect
        type: long
      - name: t_data
        type: long
      - name: t_close
        type: unsigned long
      - name: srv_queue_pos
        type: unsigned long
      - name: prx_queue_pos
        type: unsigned long
      - name: req_in
        type: long long
      - name: req_out
        type: long long
      - name: res_in
        type: long long
      - name: res_out
        type: long long
      item_type: struct
      name: strm_logs
      pos:
        line_end: 240
        line_start: 222
        source_file: /src/haproxy/include/haproxy/stream-t.h
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: prev_conn_state
        type: enum sc_state
      - name: priority_class
        type: int16_t
      - name: priority_offset
        type: int32_t
      - name: flags
        type: int
      - name: uniq_id
        type: unsigned int
      - name: bc_mark
        type: uint32_t
      - name: bc_tos
        type: uint8_t
      - name: '*target'
        type: enum obj_type
      - name: '*sess'
        type: struct session
      - name: req
        type: struct channel
      - name: res
        type: struct channel
      - name: '*be'
        type: struct proxy
      - name: '*srv_conn'
        type: struct server
      - name: '*pend_pos'
        type: struct pendconn
      - name: txn
        type: "union {\n\t\tstruct http_txn *http;  /* current HTTP transaction being
          processed. Should become a list. */\n\t\tstruct pcli_txn *pcli;  /* current
          PCLI transaction */\n\t}"
      - name: '*task'
        type: struct task
      - name: pending_events
        type: unsigned int
      - name: new_events
        type: unsigned int
      - name: conn_retries
        type: int
      - name: conn_exp
        type: unsigned int
      - name: conn_err_type
        type: unsigned int
      - name: rules_bcount
        type: uint32_t
      - name: '*parent'
        type: struct stream
      - name: list
        type: struct list
      - name: by_srv
        type: struct mt_list
      - name: back_refs
        type: struct list
      - name: buffer_wait
        type: struct buffer_wait
      - name: lat_time
        type: uint64_t
      - name: cpu_time
        type: uint64_t
      - name: call_rate
        type: struct freq_ctr
      - name: passes_connect
        type: uint32_t
      - name: passes_stconn
        type: uint32_t
      - name: passes_reqana
        type: uint32_t
      - name: passes_resana
        type: uint32_t
      - name: passes_propag
        type: uint32_t
      - name: max_retries
        type: unsigned short
      - name: store_count
        type: short
      - name: store[8]
        type: "struct {\n\t\tstruct stksess *ts;\n\t\tstruct stktable *table;\n\t}"
      - name: '*stkctr'
        type: struct stkctr
      - name: strm_flt
        type: struct strm_flt
      - name: '**req_cap'
        type: char
      - name: '**res_cap'
        type: char
      - name: vars_txn
        type: struct vars
      - name: vars_reqres
        type: struct vars
      - name: '*scf'
        type: struct stconn
      - name: '*scb'
        type: struct stconn
      - name: logs
        type: struct strm_logs
      - name: "(*do_log)(struct stream *s,        /* the function to call in order
          to log (or NULL) */\n\t               struct log_orig origin)"
        type: void
      - name: "(*srv_error)(struct stream *s,     /* the function to call upon unrecoverable
          server errors (or NULL) */\n\t\t\t  struct stconn *sc)"
        type: void
      - name: unique_id
        type: struct ist
      - name: '*current_rule_list'
        type: struct list
      - name: '*current_rule'
        type: void
      - name: rules_exp
        type: int
      - name: tunnel_timeout
        type: int
      - name: connect_timeout
        type: int
      - name: queue_timeout
        type: int
      - name: tarpit_timeout
        type: int
      - name: last_entity
        type: "struct {\n\t\tvoid *ptr;                      /* Pointer on the entity
          \ (def: NULL) */\n\t\tint type;                       /* entity type (STRM_ENTITY_*)
          */\n\t}"
      - name: waiting_entity
        type: "struct {\n\t\tvoid *ptr;                      /* Pointer on the entity
          \ (def: NULL) */\n\t\tint type;                       /* entity type (STRM_ENTITY_*)
          */\n\t}"
      - name: stream_epoch
        type: unsigned int
      - name: term_evts_log
        type: uint32_t
      - name: '*hlua[2]'
        type: struct hlua
      - name: resolv_ctx
        type: "struct {\n\t\tstruct resolv_requester *requester; /* owner of the resolution
          */\n\t\tstruct act_rule *parent;        /* rule which requested this resolution
          */\n\t\tchar *hostname_dn;              /* hostname being resolve, in domain
          name format */\n\t\tint hostname_dn_len;            /* size of hostname_dn
          */\n\t\t/* 4 unused bytes here, recoverable via packing if needed */\n\t}"
      - name: '*be_tgcounters'
        type: struct be_counters_shared_tg
      - name: '*sv_tgcounters'
        type: struct be_counters_shared_tg
      item_type: struct
      name: stream
      pos:
        line_end: 359
        line_start: 242
        source_file: /src/haproxy/include/haproxy/stream-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/api.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lf_expr_isempty
  - log_orig
  - sess_build_logline
  - sess_log
  - sess_log_embryonic
  - stream_generate_unique_id
  - build_logline_orig
  - build_logline
  - log_forward_by_name
  source_file: /src/haproxy/include/haproxy/log.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - memprof_remove_stale_info
  source_file: /src/haproxy/include/haproxy/activity.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/qpack-t.h
  types:
    enum:
    - enumerators:
      - name: QPACK_ERR_DECOMPRESSION_FAILED
        value: '0x200'
      - name: QPACK_ERR_ENCODER_STREAM_ERROR
        value: '0x201'
      - name: QPACK_ERR_DECODER_STREAM_ERROR
        value: '0x202'
      item_type: enum
      name: qpack_err
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/haproxy/include/haproxy/qpack-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QPACK_ENC_INST_BITMASK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: '0xf0'
    - item_type: preproc_def
      name: QPACK_ENC_INST_DUP
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x00 // Duplicate
    - item_type: preproc_def
      name: QPACK_ENC_INST_SDTC_BIT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x20 // Set Dynamic Table Capacity
    - item_type: preproc_def
      name: QPACK_ENC_INST_IWLN_BIT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x40 // Insert With Literal Name
    - item_type: preproc_def
      name: QPACK_ENC_INST_IWNR_BIT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x80 // Insert With Name Reference
    - item_type: preproc_def
      name: QPACK_DEC_INST_BITMASK
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: '0xf0'
    - item_type: preproc_def
      name: QPACK_DEC_INST_ICINC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x00 // Insert Count Increment
    - item_type: preproc_def
      name: QPACK_DEC_INST_SCCL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x40 // Stream Cancellation
    - item_type: preproc_def
      name: QPACK_DEC_INST_SACK
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x80 // Section Acknowledgment
    - item_type: preproc_def
      name: QPACK_EFL_BITMASK
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: '0xf0'
    - item_type: preproc_def
      name: QPACK_LFL_WPBNM
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x00 // Literal field line with post-base name reference
    - item_type: preproc_def
      name: QPACK_IFL_WPBI
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x10 // Indexed field line with post-based index
    - item_type: preproc_def
      name: QPACK_LFL_WLN_BIT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x20 // Literal field line with literal name
    - item_type: preproc_def
      name: QPACK_LFL_WNR_BIT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x40 // Literal field line with name reference
    - item_type: preproc_def
      name: QPACK_IFL_BIT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/qpack-t.h
      type_or_value: 0x80 // Indexed field line
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/pipe.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/log-t.h
  types:
    enum:
    - enumerators:
      - name: LOG_FORMAT_UNSPEC
        value: '0'
      - name: LOG_FORMAT_LOCAL
      - name: LOG_FORMAT_RFC3164
      - name: LOG_FORMAT_RFC5424
      - name: LOG_FORMAT_PRIO
      - name: LOG_FORMAT_SHORT
      - name: LOG_FORMAT_TIMED
      - name: LOG_FORMAT_ISO
      - name: LOG_FORMAT_RAW
      - name: LOG_FORMATS
      item_type: enum
      name: log_fmt
      pos:
        line_end: 92
        line_start: 81
        source_file: /src/haproxy/include/haproxy/log-t.h
    - enumerators:
      - name: LOG_META_PRIO
      - name: LOG_META_PID
      - name: LOG_META_TIME
      - name: LOG_META_HOST
      - name: LOG_META_TAG
      - name: LOG_META_MSGID
      - name: LOG_META_STDATA
      - name: LOG_META_FIELDS
      item_type: enum
      name: log_meta
      pos:
        line_end: 104
        line_start: 95
        source_file: /src/haproxy/include/haproxy/log-t.h
    - enumerators:
      - name: LOG_TARGET_DGRAM
        value: '0'
      - name: LOG_TARGET_BUFFER
      - name: LOG_TARGET_FD
      - name: LOG_TARGET_BACKEND
      item_type: enum
      name: log_tgt
      pos:
        line_end: 126
        line_start: 121
        source_file: /src/haproxy/include/haproxy/log-t.h
    - enumerators:
      - name: LF_FL_NONE
        value: '0x00'
      - name: LF_FL_COMPILED
        value: '0x01'
      item_type: enum
      name: lf_expr_flags
      pos:
        line_end: 180
        line_start: 177
        source_file: /src/haproxy/include/haproxy/log-t.h
    - enumerators:
      - name: LOG_TARGET_FL_NONE
        value: '0x00'
      - name: LOG_TARGET_FL_RESOLVED
        value: '0x01'
      item_type: enum
      name: log_target_flags
      pos:
        line_end: 219
        line_start: 216
        source_file: /src/haproxy/include/haproxy/log-t.h
    - enumerators:
      - name: LOGGER_FL_NONE
        value: '0x00'
      - name: LOGGER_FL_RESOLVED
        value: '0x01'
      item_type: enum
      name: logger_flags
      pos:
        line_end: 237
        line_start: 234
        source_file: /src/haproxy/include/haproxy/log-t.h
    - enumerators:
      - name: LOG_ORIG_UNSPEC
        value: '0'
      - name: LOG_ORIG_TXN_ACCEPT
      - name: LOG_ORIG_SESS_KILL
      - name: LOG_ORIG_SESS_ERROR
      - name: LOG_ORIG_TXN_REQUEST
      - name: LOG_ORIG_TXN_CONNECT
      - name: LOG_ORIG_TXN_RESPONSE
      - name: LOG_ORIG_TXN_CLOSE
      - name: LOG_ORIG_EXTRA
      - name: LOG_ORIG_MAX
        value: '0xFFFF'
      item_type: enum
      name: log_orig_id
      pos:
        line_end: 278
        line_start: 264
        source_file: /src/haproxy/include/haproxy/log-t.h
    - enumerators:
      - name: LOG_PS_FL_NONE
        value: '0'
      - name: LOG_PS_FL_DROP
      item_type: enum
      name: log_ps_flags
      pos:
        line_end: 305
        line_start: 302
        source_file: /src/haproxy/include/haproxy/log-t.h
    preproc_defs:
    - item_type: preproc_def
      name: NB_LOG_FACILITIES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '24'
    - item_type: preproc_def
      name: NB_LOG_LEVELS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NB_LOG_HDR_MAX_ELEMENTS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SYSLOG_PORT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '514'
    - item_type: preproc_def
      name: UNIQUEID_LEN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '128'
    - item_type: preproc_def
      name: LOG_OPT_NONE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: LOG_OPT_HEXA
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: LOG_OPT_MANDATORY
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: LOG_OPT_QUOTE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: LOG_OPT_REQ_CAP
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: LOG_OPT_RES_CAP
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: LOG_OPT_HTTP
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: 0x00000020 // forces http-encoding on the payload, incompatible
        with LOG_OPT_ENCODE
    - item_type: preproc_def
      name: LOG_OPT_ESC
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: LOG_OPT_MERGE_SPACES
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: LOG_OPT_BIN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: LOG_OPT_ENCODE_JSON
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: LOG_OPT_ENCODE_CBOR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: LOG_OPT_ENCODE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x00003000'
    - item_type: preproc_def
      name: LW_LOGSTEPS
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '-1        '
    - item_type: preproc_def
      name: LW_INIT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '1        '
    - item_type: preproc_def
      name: LW_CLIP
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '2        '
    - item_type: preproc_def
      name: LW_SVIP
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '4        '
    - item_type: preproc_def
      name: LW_SVID
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '8        '
    - item_type: preproc_def
      name: LW_REQ
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '16        '
    - item_type: preproc_def
      name: LW_RESP
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '32        '
    - item_type: preproc_def
      name: LW_BYTES
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '256        '
    - item_type: preproc_def
      name: LW_COOKIE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '512        '
    - item_type: preproc_def
      name: LW_REQHDR
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '1024        '
    - item_type: preproc_def
      name: LW_RSPHDR
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '2048        '
    - item_type: preproc_def
      name: LW_BCKIP
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '4096        '
    - item_type: preproc_def
      name: LW_FRTIP
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '8192        '
    - item_type: preproc_def
      name: LW_XPRT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '16384        '
    - item_type: preproc_def
      name: LOG_LEGACYTIME_LEN
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '15'
    - item_type: preproc_def
      name: LOG_ISOTIME_MINLEN
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '20'
    - item_type: preproc_def
      name: LOG_ISOTIME_MAXLEN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '32'
    - item_type: preproc_def
      name: LOG_HEADER_NONE
      pos:
        line_end: 119
        line_start: 113
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: "(struct log_header){                              \\\n                                             .format
        = LOG_FORMAT_UNSPEC, \\\n                                             .level
        = 0,                  \\\n                                             .facility
        = 0,               \\\n                                             .metadata
        = NULL             \\\n                                           }"
    - item_type: preproc_def
      name: LOG_ORIG_FL_NONE
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: LOG_ORIG_FL_ERROR
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: LOG_ORIG_FL_ALL
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: '0xFFFF'
    - item_type: preproc_def
      name: LOG_ORIG_EXTRA_SLOTS
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/haproxy/include/haproxy/log-t.h
      type_or_value: LOG_ORIG_MAX - LOG_ORIG_EXTRA
    structs:
    - fields:
      - name: format
        type: enum log_fmt
      - name: level
        type: int
      - name: '*metadata'
        type: struct ist
      item_type: struct
      name: log_header
      pos:
        line_end: 111
        line_start: 107
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: '*name'
        type: char
      - name: type
        type: int
      - name: mode
        type: int
      - name: lw
        type: int
      - name: (*config_callback)(struct logformat_node *node, struct proxy *curproxy)
        type: int
      item_type: struct
      name: logformat_alias
      pos:
        line_end: 164
        line_start: 158
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: list
        type: struct list
      - name: type
        type: int
      - name: options
        type: int
      - name: typecast
        type: int
      - name: '*name'
        type: char
      - name: '*arg'
        type: char
      - name: '*expr'
        type: void
      - name: '*alias'
        type: struct logformat_alias
      item_type: struct
      name: logformat_node
      pos:
        line_end: 175
        line_start: 166
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: list
        type: struct list
      - name: conf
        type: "struct {\n\t\tchar *file;               /* file where the lft appears
          */\n\t\tint line;                 /* line where the lft appears */\n\t}"
      - name: flags
        type: uint8_t
      item_type: struct
      name: lf_expr
      pos:
        line_end: 197
        line_start: 183
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: low
        type: unsigned int
      - name: high
        type: unsigned int
      - name: sz
        type: size_t
      item_type: struct
      name: smp_log_range
      pos:
        line_end: 206
        line_start: 200
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: '*smp_rgs'
        type: struct smp_log_range
      - name: smp_rgs_sz
        type: size_t
      - name: smp_sz
        type: size_t
      - name: curr_rg_idx
        type: ullong
      item_type: struct
      name: smp_info
      pos:
        line_end: 214
        line_start: 209
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: '*addr'
        type: struct sockaddr_storage
      - name: type
        type: enum log_tgt
      - name: flags
        type: uint16_t
      item_type: struct
      name: log_target
      pos:
        line_end: 232
        line_start: 221
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: list
        type: struct list
      - name: target
        type: struct log_target
      - name: lb
        type: struct smp_info
      - name: flags
        type: uint16_t
      - name: format
        type: enum log_fmt
      - name: facility
        type: int
      - name: level
        type: int
      - name: minlvl
        type: int
      - name: maxlen
        type: int
      - name: '*ref'
        type: struct logger
      - name: conf
        type: "struct {\n                char *file;                     /* file where
          the logger appears */\n                int line;                       /*
          line where the logger appears */\n        }"
      item_type: struct
      name: logger
      pos:
        line_end: 259
        line_start: 239
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: id
        type: enum log_orig_id
      - name: flags
        type: uint16_t
      item_type: struct
      name: log_orig
      pos:
        line_end: 289
        line_start: 286
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: list
        type: struct list
      - name: tree
        type: struct eb32_node
      - name: '*name'
        type: char
      item_type: struct
      name: log_origin_node
      pos:
        line_end: 299
        line_start: 295
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: logformat
        type: struct lf_expr
      - name: logformat_sd
        type: struct lf_expr
      - name: flags
        type: enum log_ps_flags
      item_type: struct
      name: log_profile_step
      pos:
        line_end: 311
        line_start: 307
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: step
        type: struct log_profile_step
      - name: node
        type: struct eb32_node
      - name: '*orig'
        type: struct log_origin_node
      item_type: struct
      name: log_profile_step_extra
      pos:
        line_end: 317
        line_start: 313
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: list
        type: struct list
      - name: conf
        type: "struct {\n\t\tchar *file;\n\t\tint line;\n\t}"
      - name: '*id'
        type: char
      - name: log_tag
        type: struct buffer
      - name: '*accept'
        type: struct log_profile_step
      - name: '*request'
        type: struct log_profile_step
      - name: '*connect'
        type: struct log_profile_step
      - name: '*response'
        type: struct log_profile_step
      - name: '*close'
        type: struct log_profile_step
      - name: '*error'
        type: struct log_profile_step
      - name: '*any'
        type: struct log_profile_step
      - name: extra
        type: struct eb_root
      item_type: struct
      name: log_profile
      pos:
        line_end: 335
        line_start: 319
        source_file: /src/haproxy/include/haproxy/log-t.h
    - fields:
      - name: steps_1
        type: uint64_t
      item_type: struct
      name: log_steps
      pos:
        line_end: 342
        line_start: 340
        source_file: /src/haproxy/include/haproxy/log-t.h
    typedefs: []
    union: []
- function_names:
  - qpack_alloc
  - qpack_free
  - qpack_alloc
  - qpack_free
  - qpack_get_dte
  - qpack_valid_idx
  - qpack_get_name
  - qpack_get_value
  - qpack_idx_to_name
  - qpack_idx_to_value
  - qpack_dht_get_tail
  - qpack_dht_make_room
  - qpack_dht_init
  - qpack_dht_alloc
  - qpack_dht_free
  source_file: /src/haproxy/include/haproxy/qpack-tbl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/guid-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUID_MAX_LEN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/haproxy/include/haproxy/guid-t.h
      type_or_value: '127'
    structs:
    - fields:
      - name: node
        type: struct ceb_node
      - name: '*key'
        type: char
      - name: '*obj_type'
        type: enum obj_type
      item_type: struct
      name: guid_node
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/haproxy/include/haproxy/guid-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_stats.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/cfgcond.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/auth-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AU_O_INSECURE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/haproxy/include/haproxy/auth-t.h
      type_or_value: "0x00000001\t\t"
    structs:
    - fields:
      - name: '*next'
        type: struct auth_groups
      - name: '*name'
        type: char
      - name: '*groupusers'
        type: char
      item_type: struct
      name: auth_groups
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/haproxy/include/haproxy/auth-t.h
    - fields:
      - name: '*next'
        type: struct auth_groups_list
      - name: '*group'
        type: struct auth_groups
      item_type: struct
      name: auth_groups_list
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/haproxy/include/haproxy/auth-t.h
    - fields:
      - name: '*next'
        type: struct auth_users
      - name: flags
        type: unsigned int
      - name: '*user'
        type: char
      - name: u
        type: "union {\n\t\tchar *groups_names; /* Just used during the configuration
          parsing. */\n\t\tstruct auth_groups_list *groups;\n\t}"
      item_type: struct
      name: auth_users
      pos:
        line_end: 39
        line_start: 31
        source_file: /src/haproxy/include/haproxy/auth-t.h
    - fields:
      - name: '*next'
        type: struct userlist
      - name: '*name'
        type: char
      - name: '*users'
        type: struct auth_users
      - name: '*groups'
        type: struct auth_groups
      item_type: struct
      name: userlist
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/haproxy/include/haproxy/auth-t.h
    typedefs: []
    union: []
- function_names:
  - sample_convert
  - smp_set_owner
  - smp_is_safe
  - smp_make_safe
  - smp_is_rw
  - smp_make_rw
  source_file: /src/haproxy/include/haproxy/sample.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ssl_crtlist-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*bind_conf'
        type: struct bind_conf
      - name: '*next'
        type: struct bind_conf_list
      item_type: struct
      name: bind_conf_list
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/haproxy/include/haproxy/ssl_crtlist-t.h
    - fields:
      - name: '*bind_conf'
        type: struct bind_conf_list
      - name: linecount
        type: unsigned int
      - name: entries
        type: struct eb_root
      - name: ord_entries
        type: struct list
      - name: node
        type: struct ebmb_node
      item_type: struct
      name: crtlist
      pos:
        line_end: 46
        line_start: 40
        source_file: /src/haproxy/include/haproxy/ssl_crtlist-t.h
    - fields:
      - name: '*ssl_conf'
        type: struct ssl_bind_conf
      - name: linenum
        type: unsigned int
      - name: fcount
        type: unsigned int
      - name: '**filters'
        type: char
      - name: '*crtlist'
        type: struct crtlist
      - name: ckch_inst
        type: struct list
      - name: by_crtlist
        type: struct list
      - name: by_ckch_store
        type: struct list
      - name: node
        type: struct ebpt_node
      item_type: struct
      name: crtlist_entry
      pos:
        line_end: 59
        line_start: 49
        source_file: /src/haproxy/include/haproxy/ssl_crtlist-t.h
    typedefs: []
    union: []
- function_names:
  - http_find_param_list
  - http_is_param_delimiter
  - http_language_range_match
  - http_get_etag_type
  - http_uri_parser_init
  - http_header_has_forbidden_char
  - http_method_has_forbidden_char
  - http_path_has_forbidden_char
  - http_authority_has_forbidden_char
  - http_status_matches
  - is_immutable_header
  - http_remove_header_value
  source_file: /src/haproxy/include/haproxy/http.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRESS_RUN1
  - STRESS_RUN2
  - STRESS_RUN3
  - STRESS_RUN4
  - STRESS_RUN5
  - STRESS_RUN6
  - STRESS_RUN7
  - STRESS_RUN8
  - STRESS_RUN9
  source_file: /src/haproxy/include/haproxy/stress.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/http_ext-t.h
  types:
    enum:
    - enumerators:
      - name: FORWARDED_HEADER_UNK
        value: '0'
      - name: FORWARDED_HEADER_IP
        value: '3'
      - name: FORWARDED_HEADER_PORT
        value: '2'
      - name: FORWARDED_HEADER_OBFS
        value: '1'
      item_type: enum
      name: forwarded_header_attribute_type
      pos:
        line_end: 33
        line_start: 28
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - enumerators:
      - name: FORWARDED_HEADER_HTTP
        value: '1'
      - name: FORWARDED_HEADER_HTTPS
        value: '2'
      item_type: enum
      name: forwarded_header_proto
      pos:
        line_end: 60
        line_start: 57
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - enumerators:
      - name: HTTP_7239_FORBY_ORIG
        value: '1'
      - name: HTTP_7239_FORBY_SMP
        value: '2'
      item_type: enum
      name: http_ext_7239_forby_mode
      pos:
        line_end: 72
        line_start: 69
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - enumerators:
      - name: HTTP_7239_HOST_ORIG
        value: '1'
      - name: HTTP_7239_HOST_SMP
        value: '2'
      item_type: enum
      name: http_ext_7239_host_mode
      pos:
        line_end: 90
        line_start: 87
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - enumerators:
      - name: FORWARDED_HEADER_FOR
        value: '0x01'
      - name: FORWARDED_HEADER_PROTO
        value: '0x08'
      - name: FORWARDED_HEADER_HOST
        value: '0x04'
      - name: FORWARDED_HEADER_BY
        value: '0x02'
      - name: FORWARDED_HEADER_ALL
        value: FORWARDED_HEADER_FOR|FORWARDED_HEADER_BY|FORWARDED_HEADER_HOST|FORWARDED_HEADER_PROTO
      item_type: enum
      name: forwarded_header_field
      pos:
        line_end: 117
        line_start: 111
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - enumerators:
      - name: HTTP_XFF_IFNONE
        value: '0'
      - name: HTTP_XFF_ALWAYS
        value: '1'
      item_type: enum
      name: http_ext_xff_mode
      pos:
        line_end: 122
        line_start: 119
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: enum forwarded_header_attribute_type
      item_type: struct
      name: forwarded_header_nodename
      pos:
        line_end: 41
        line_start: 35
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - fields:
      - name: type
        type: enum forwarded_header_attribute_type
      item_type: struct
      name: forwarded_header_nodeport
      pos:
        line_end: 49
        line_start: 43
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - fields:
      - name: nodename
        type: struct forwarded_header_nodename
      - name: nodeport
        type: struct forwarded_header_nodeport
      - name: raw
        type: struct ist
      item_type: struct
      name: forwarded_header_node
      pos:
        line_end: 55
        line_start: 51
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - fields:
      - name: nfor
        type: struct forwarded_header_node
      - name: nby
        type: struct forwarded_header_node
      - name: host
        type: struct ist
      - name: proto
        type: enum forwarded_header_proto
      item_type: struct
      name: forwarded_header_ctx
      pos:
        line_end: 67
        line_start: 62
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - fields:
      - name: nn_mode
        type: enum http_ext_7239_forby_mode
      - name: np_mode
        type: enum http_ext_7239_forby_mode
      item_type: struct
      name: http_ext_7239_forby
      pos:
        line_end: 85
        line_start: 73
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - fields:
      - name: mode
        type: enum http_ext_7239_host_mode
      item_type: struct
      name: http_ext_7239_host
      pos:
        line_end: 97
        line_start: 91
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - fields:
      - name: p_for
        type: struct http_ext_7239_forby
      - name: p_by
        type: struct http_ext_7239_forby
      - name: p_host
        type: struct http_ext_7239_host
      - name: p_proto
        type: uint8_t
      - name: '*c_file'
        type: char
      - name: c_line
        type: int
      - name: c_mode
        type: int
      item_type: struct
      name: http_ext_7239
      pos:
        line_end: 109
        line_start: 99
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - fields:
      - name: hdr_name
        type: struct ist
      - name: except_net
        type: struct net_addr
      - name: mode
        type: uint8_t
      item_type: struct
      name: http_ext_xff
      pos:
        line_end: 127
        line_start: 123
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - fields:
      - name: hdr_name
        type: struct ist
      - name: except_net
        type: struct net_addr
      item_type: struct
      name: http_ext_xot
      pos:
        line_end: 132
        line_start: 129
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    - fields:
      - name: '*fwd'
        type: struct http_ext_7239
      - name: '*xff'
        type: struct http_ext_xff
      - name: '*xot'
        type: struct http_ext_xot
      item_type: struct
      name: http_ext
      pos:
        line_end: 146
        line_start: 135
        source_file: /src/haproxy/include/haproxy/http_ext-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/proto_uxst.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_utils-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: tot
        type: uint64_t
      - name: bcnt
        type: uint8_t
      - name: bmax
        type: uint8_t
      item_type: struct
      name: bdata_ctr
      pos:
        line_end: 12
        line_start: 8
        source_file: /src/haproxy/include/haproxy/quic_utils-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_retransmit.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/arg-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARGT_BITS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/arg-t.h
      type_or_value: '5'
    - item_type: preproc_def
      name: ARGT_NBTYPES
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/arg-t.h
      type_or_value: (1 << ARGT_BITS)
    - item_type: preproc_def
      name: ARGT_MASK
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/arg-t.h
      type_or_value: (ARGT_NBTYPES - 1)
    - item_type: preproc_def
      name: ARGM_MASK
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/arg-t.h
      type_or_value: ((1 << ARGM_BITS) - 1)
    - item_type: preproc_def
      name: ARGM_BITS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/arg-t.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ARGM_NBARGS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/arg-t.h
      type_or_value: (sizeof(uint64_t) * 8 - ARGM_BITS) / ARGT_BITS
    - item_type: preproc_def
      name: ARGF_REG_ICASE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/arg-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ARGF_REG_GLOB
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/arg-t.h
      type_or_value: '2'
    structs:
    - fields:
      - name: type
        type: unsigned char
      - name: unresolved
        type: unsigned char
      - name: type_flags
        type: unsigned char
      - name: data
        type: union arg_data
      - name: (*resolve_ptr)(struct arg *arg, char **err)
        type: int
      item_type: struct
      name: arg
      pos:
        line_end: 134
        line_start: 123
        source_file: /src/haproxy/include/haproxy/arg-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*arg'
        type: struct arg
      - name: arg_pos
        type: int
      - name: ctx
        type: int
      - name: '*kw'
        type: char
      - name: '*conv'
        type: char
      - name: '*file'
        type: char
      - name: line
        type: int
      item_type: struct
      name: arg_list
      pos:
        line_end: 150
        line_start: 141
        source_file: /src/haproxy/include/haproxy/arg-t.h
    typedefs: []
    union:
    - fields:
      - name: sint
        type: long long int
      - name: str
        type: struct buffer
      - name: ipv4
        type: struct in_addr
      - name: ipv6
        type: struct in6_addr
      - name: '*prx'
        type: struct proxy
      - name: '*srv'
        type: struct server
      - name: '*t'
        type: struct stktable
      - name: '*usr'
        type: struct userlist
      - name: '*map'
        type: struct map_descriptor
      - name: '*reg'
        type: struct my_regex
      - name: fid
        type: struct pbuf_fid
      - name: var
        type: struct var_desc
      - name: '*ptr'
        type: void
      item_type: union
      name: arg_data
      pos:
        line_end: 121
        line_start: 107
        source_file: /src/haproxy/include/haproxy/arg-t.h
- function_names: []
  source_file: /src/haproxy/include/haproxy/hash.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - appctx_show_flags
  - _
  source_file: /src/haproxy/include/haproxy/applet-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APPLET_MAX_SVCCTX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '256'
    - item_type: preproc_def
      name: APPCTX_FL_INBLK_ALLOC
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: APPCTX_FL_INBLK_FULL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: APPCTX_FL_OUTBLK_ALLOC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: APPCTX_FL_OUTBLK_FULL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: APPCTX_FL_EOI
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: APPCTX_FL_EOS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: APPCTX_FL_ERR_PENDING
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: APPCTX_FL_ERROR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: APPCTX_FL_SHUTDOWN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: APPCTX_FL_WANT_DIE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: APPCTX_FL_FASTFWD
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: APPCTX_FL_IN_MAYALLOC
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: APPCTX_FL_OUT_MAYALLOC
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00002000  '
    - item_type: preproc_def
      name: APPLET_FL_NEW_API
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: APPLET_FL_WARNED
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: APPLET_FL_HTX
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/applet-t.h
      type_or_value: '0x00000004 '
    structs:
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: flags
        type: unsigned int
      - name: '*name'
        type: char
      - name: (*init)(struct appctx *)
        type: int
      - name: (*fct)(struct appctx *)
        type: void
      - name: (*rcv_buf)(struct appctx *appctx, struct buffer *buf, size_t count,
          unsigned int flags)
        type: size_t
      - name: (*snd_buf)(struct appctx *appctx, struct buffer *buf, size_t count,
          unsigned int flags)
        type: size_t
      - name: (*fastfwd)(struct appctx *appctx, struct buffer *buf, size_t count,
          unsigned int flags)
        type: size_t
      - name: (*shut)(struct appctx *appctx, unsigned int mode, struct se_abort_info
          *reason)
        type: void
      - name: (*release)(struct appctx *)
        type: void
      - name: timeout
        type: unsigned int
      item_type: struct
      name: applet
      pos:
        line_end: 102
        line_start: 88
        source_file: /src/haproxy/include/haproxy/applet-t.h
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: st0
        type: unsigned int
      - name: st1
        type: unsigned int
      - name: flags
        type: unsigned int
      - name: inbuf
        type: struct buffer
      - name: outbuf
        type: struct buffer
      - name: to_forward
        type: size_t
      - name: '*applet'
        type: struct applet
      - name: '*sess'
        type: struct session
      - name: '*sedesc'
        type: struct sedesc
      - name: cli_ctx
        type: "struct {\n\t\tstruct buffer *cmdline;     /* used to store unfinished
          commands */\n\t\tstruct buffer payload;      /* used to store the payload
          */\n\n\t\tint severity_output;    /* used within the cli_io_handler to format
          severity output of informational feedback */\n\t\tint level;              /*
          the level of CLI which can be lowered dynamically */\n\t\tchar *payload_pat;
          \     /* Pointer to the payload pattern. NULL if no payload */\n\t\tuint32_t
          max_payload_sz;/* Max size allowed for dynamic payload. 0 if not allowed
          */\n\t\tuint32_t anon_key;      /* the key to anonymise with the hash in
          cli */\n\t\tint (*io_handler)(struct appctx *appctx);  /* used within the
          cli_io_handler when st0 = CLI_ST_CALLBACK */\n\t\tvoid (*io_release)(struct
          appctx *appctx); /* used within the cli_io_handler when st0 = CLI_ST_CALLBACK,\n\t\t\t\t\t\t\t
          \     if the command is terminated or the session released */\n\t\tstruct
          cli_kw *kw;      /* the keyword being processed */\n\t}"
      - name: buffer_wait
        type: struct buffer_wait
      - name: '*t'
        type: struct task
      - name: call_rate
        type: struct freq_ctr
      - name: wait_entry
        type: struct mt_list
      - name: '*svcctx'
        type: void
      - name: svc
        type: "struct {\n\t\tchar storage[APPLET_MAX_SVCCTX]; /* storage of svcctx
          above */\n\t}"
      item_type: struct
      name: appctx
      pos:
        line_end: 152
        line_start: 105
        source_file: /src/haproxy/include/haproxy/applet-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/sample_data-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: int
      - name: u
        type: union sample_value
      item_type: struct
      name: sample_data
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/haproxy/include/haproxy/sample_data-t.h
    typedefs: []
    union:
    - fields:
      - name: sint
        type: long long int
      - name: ipv4
        type: struct in_addr
      - name: ipv6
        type: struct in6_addr
      - name: str
        type: struct buffer
      - name: meth
        type: struct http_meth
      item_type: union
      name: sample_value
      pos:
        line_end: 42
        line_start: 36
        source_file: /src/haproxy/include/haproxy/sample_data-t.h
- function_names: []
  source_file: /src/haproxy/include/haproxy/proto_udp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - be_usable_srv
  - be_is_eligible
  - be_set_sess_last
  - srv_willbe_usable
  - srv_currently_usable
  - srv_lb_commit_status
  - srv_lb_status_changed
  - be_supports_conn_reuse
  source_file: /src/haproxy/include/haproxy/backend.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MS_TO_TICKS
  - TICKS_TO_MS
  - tick_isset
  - tick_add
  - tick_add_ifset
  - tick_is_lt
  - tick_is_le
  - tick_is_expired
  - tick_first
  - tick_first_2nz
  - tick_remain
  source_file: /src/haproxy/include/haproxy/ticks.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TICK_ETERNITY
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/ticks.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ssl_gencert.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/proto_sockpair.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/resolvers-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DNS_MAX_LABEL_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '63'
    - item_type: preproc_def
      name: DNS_MAX_NAME_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '255'
    - item_type: preproc_def
      name: DNS_MAX_UDP_MESSAGE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '65535'
    - item_type: preproc_def
      name: DNS_MIN_RECORD_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: (1 + 1 + 2 + 2)
    - item_type: preproc_def
      name: DNS_SMALLEST_FQDN_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DNS_MAX_QUERY_RECORDS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DNS_MAX_ANSWER_RECORDS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: ((DNS_MAX_UDP_MESSAGE - DNS_HEADER_SIZE) / DNS_MIN_RECORD_SIZE)
    - item_type: preproc_def
      name: DNS_ANALYZE_BUFFER_SIZE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: DNS_MAX_UDP_MESSAGE + DNS_MAX_NAME_SIZE
    - item_type: preproc_def
      name: DNS_TOO_LONG_FQDN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '"hostname too long"'
    - item_type: preproc_def
      name: DNS_LABEL_TOO_LONG
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '"one label too long"'
    - item_type: preproc_def
      name: DNS_INVALID_CHARACTER
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '"found an invalid character"'
    - item_type: preproc_def
      name: DNS_RCLASS_IN
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '1      '
    - item_type: preproc_def
      name: DNS_RTYPE_A
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: DNS_RTYPE_CNAME
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '5       '
    - item_type: preproc_def
      name: DNS_RTYPE_TXT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '16      '
    - item_type: preproc_def
      name: DNS_RTYPE_AAAA
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '28      '
    - item_type: preproc_def
      name: DNS_RTYPE_SRV
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '33      '
    - item_type: preproc_def
      name: DNS_RTYPE_OPT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '41      '
    - item_type: preproc_def
      name: DNS_RTYPE_ANY
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '255     '
    - item_type: preproc_def
      name: DNS_RCODE_NO_ERROR
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: DNS_RCODE_NX_DOMAIN
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '3       '
    - item_type: preproc_def
      name: DNS_RCODE_REFUSED
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '5       '
    - item_type: preproc_def
      name: DNS_FLAG_TRUNCATED
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '0x0200  '
    - item_type: preproc_def
      name: DNS_FLAG_REPLYCODE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '0x000F  '
    - item_type: preproc_def
      name: SRV_MAX_PREF_NET
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '5'
    structs:
    - fields:
      - name: name[DNS_MAX_NAME_SIZE+1]
        type: char
      - name: type
        type: unsigned short
      - name: class
        type: unsigned short
      item_type: struct
      name: resolv_query_item
      pos:
        line_end: 108
        line_start: 104
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
    - fields:
      - name: name[DNS_MAX_NAME_SIZE+1]
        type: char
      - name: type
        type: int16_t
      - name: class
        type: int16_t
      - name: ttl
        type: uint32_t
      - name: priority
        type: int16_t
      - name: weight
        type: uint16_t
      - name: port
        type: uint16_t
      - name: data_len
        type: uint16_t
      - name: link
        type: struct eb32_node
      - name: data
        type: "union {\n\t\tstruct sockaddr_in in4;              /* IPv4 address for
          RTYPE_A */\n\t\tstruct sockaddr_in6 in6;             /* IPv6 address for
          RTYPE_AAAA */\n\t\tchar target[DNS_MAX_NAME_SIZE+1];    /* Response data:
          SRV or CNAME type target */\n\t}"
      - name: last_seen
        type: unsigned int
      - name: '*ar_item'
        type: struct resolv_answer_item
      - name: attached_servers
        type: struct list
      item_type: struct
      name: resolv_answer_item
      pos:
        line_end: 130
        line_start: 111
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
    - fields:
      - name: header
        type: struct dns_header
      - name: answer_tree
        type: struct eb_root
      - name: '*next'
        type: struct eb32_node
      item_type: struct
      name: resolv_response
      pos:
        line_end: 137
        line_start: 132
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
    - fields:
      - name: accepted_payload_size
        type: unsigned int
      - name: nb_nameservers
        type: int
      - name: resolve_retries
        type: int
      - name: timeout
        type: "struct {                            /* time to: */\n\t\tint resolve;
          \               /*     wait between 2 queries for the same resolution */\n\t\tint
          retry;                  /*     wait for a response before retrying */\n\t}"
      - name: hold
        type: "struct {                            /* time to hold current data when
          */\n\t\tint valid;                  /*     a response is valid */\n\t\tint
          nx;                     /*     a response doesn't exist */\n\t\tint timeout;
          \               /*     no answer was delivered */\n\t\tint refused;                /*
          \    dns server refused to answer */\n\t\tint other;                  /*
          \    other dns response errors */\n\t\tint obsolete;               /*     an
          answer hasn't been seen */\n\t}"
      - name: '*t'
        type: struct task
      - name: resolutions
        type: "struct {\n\t\tstruct list wait;           /* resolutions managed to
          this resolvers section */\n\t\tstruct list curr;           /* current running
          resolutions */\n\t}"
      - name: query_ids
        type: struct eb_root
      - name: list
        type: struct list
      - name: nameservers
        type: struct list
      - name: '*px'
        type: struct proxy
      - name: '*id'
        type: char
      - name: conf
        type: "struct {\n\t\tconst char *file;           /* file where the section
          appears */\n\t\tint         line;           /* line where the section appears
          */\n\t\tint         implicit;       /* config was auto-generated and must
          be silent */\n\t}"
      item_type: struct
      name: resolvers
      pos:
        line_end: 177
        line_start: 143
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
    - fields:
      - name: family_prio
        type: int
      - name: pref_net[SRV_MAX_PREF_NET]
        type: "struct {\n\t\tint family;\n\t\tunion {\n\t\t\tstruct in_addr  in4;\n\t\t\tstruct
          in6_addr in6;\n\t\t} addr;\n\t\tunion {\n\t\t\tstruct in_addr  in4;\n\t\t\tstruct
          in6_addr in6;\n\t\t} mask;\n\t}"
      - name: pref_net_nb
        type: int
      - name: accept_duplicate_ip
        type: int
      - name: ignore_weight
        type: int
      item_type: struct
      name: resolv_options
      pos:
        line_end: 196
        line_start: 179
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
    - fields:
      - name: '*resolvers'
        type: struct resolvers
      - name: requesters
        type: struct list
      - name: uuid
        type: int
      - name: '*hostname_dn'
        type: char
      - name: hostname_dn_len
        type: int
      - name: last_resolution
        type: unsigned int
      - name: last_query
        type: unsigned int
      - name: last_valid
        type: unsigned int
      - name: query_id
        type: int
      - name: qid
        type: struct eb32_node
      - name: prefered_query_type
        type: int
      - name: query_type
        type: int
      - name: status
        type: int
      - name: step
        type: int
      - name: try
        type: int
      - name: nb_queries
        type: int
      - name: nb_responses
        type: int
      - name: response
        type: struct resolv_response
      - name: response_query_records[DNS_MAX_QUERY_RECORDS]
        type: struct resolv_query_item
      - name: list
        type: struct list
      item_type: struct
      name: resolv_resolution
      pos:
        line_end: 226
        line_start: 203
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
    - fields:
      - name: '*owner'
        type: enum obj_type
      - name: '*resolution'
        type: struct resolv_resolution
      - name: (*requester_cb)(struct resolv_requester *, struct dns_counters *)
        type: int
      - name: (*requester_error_cb)(struct resolv_requester *, int)
        type: int
      - name: list
        type: struct list
      item_type: struct
      name: resolv_requester
      pos:
        line_end: 237
        line_start: 229
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: '*resolvers'
        type: struct resolvers
      - name: '*proxy'
        type: struct proxy
      - name: '*name'
        type: char
      - name: '*hostname_dn'
        type: char
      - name: hostname_dn_len
        type: int
      - name: '*requester'
        type: struct resolv_requester
      - name: attached_servers
        type: struct list
      - name: '*named_servers'
        type: struct ceb_root
      - name: list
        type: struct list
      item_type: struct
      name: resolv_srvrq
      pos:
        line_end: 301
        line_start: 290
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/h3_stats.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/uri_auth.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - qc_stream_desc_done
  - qc_stream_desc_send
  - qc_stream_desc_sub_send
  - qc_stream_desc_sub_room
  source_file: /src/haproxy/include/haproxy/quic_stream.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/filters-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLT_CFG_FL_HTX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/include/haproxy/filters-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: FLT_FL_IS_BACKEND_FILTER
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/filters-t.h
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: FLT_FL_IS_REQ_DATA_FILTER
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/filters-t.h
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: FLT_FL_IS_RSP_DATA_FILTER
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/filters-t.h
      type_or_value: '0x0004 '
    - item_type: preproc_def
      name: STRM_FLT_FL_HAS_FILTERS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/filters-t.h
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: STRM_FLT_FL_HOLD_HTTP_HDRS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/filters-t.h
      type_or_value: '0x0002 '
    structs:
    - fields:
      - name: '*kw'
        type: char
      - name: "(*parse)(char **args, int *cur_arg, struct proxy *px,\n\t\t     struct
          flt_conf *fconf, char **err, void *private)"
        type: int
      - name: '*private'
        type: void
      item_type: struct
      name: flt_kw
      pos:
        line_end: 55
        line_start: 50
        source_file: /src/haproxy/include/haproxy/filters-t.h
    - fields:
      - name: '*scope'
        type: char
      - name: list
        type: struct list
      - name: kw[VAR_ARRAY]
        type: struct flt_kw
      item_type: struct
      name: flt_kw_list
      pos:
        line_end: 67
        line_start: 63
        source_file: /src/haproxy/include/haproxy/filters-t.h
    - fields:
      - name: (*init)             (struct proxy *p, struct flt_conf *fconf)
        type: int
      - name: (*deinit)           (struct proxy *p, struct flt_conf *fconf)
        type: void
      - name: (*check)            (struct proxy *p, struct flt_conf *fconf)
        type: int
      - name: (*init_per_thread)  (struct proxy *p, struct flt_conf *fconf)
        type: int
      - name: (*deinit_per_thread)(struct proxy *p, struct flt_conf *fconf)
        type: void
      - name: (*attach)            (struct stream *s, struct filter *f)
        type: int
      - name: (*stream_start)      (struct stream *s, struct filter *f)
        type: int
      - name: (*stream_set_backend)(struct stream *s, struct filter *f, struct proxy
          *be)
        type: int
      - name: (*stream_stop)       (struct stream *s, struct filter *f)
        type: void
      - name: (*detach)            (struct stream *s, struct filter *f)
        type: void
      - name: (*check_timeouts)    (struct stream *s, struct filter *f)
        type: void
      - name: (*channel_start_analyze)(struct stream *s, struct filter *f, struct
          channel *chn)
        type: int
      - name: (*channel_pre_analyze)  (struct stream *s, struct filter *f, struct
          channel *chn, unsigned int an_bit)
        type: int
      - name: (*channel_post_analyze) (struct stream *s, struct filter *f, struct
          channel *chn, unsigned int an_bit)
        type: int
      - name: (*channel_end_analyze)  (struct stream *s, struct filter *f, struct
          channel *chn)
        type: int
      - name: (*http_headers)       (struct stream *s, struct filter *f, struct http_msg
          *msg)
        type: int
      - name: "(*http_payload)       (struct stream *s, struct filter *f, struct http_msg
          *msg,\n\t\t\t\t    unsigned int offset, unsigned int len)"
        type: int
      - name: (*http_end)           (struct stream *s, struct filter *f, struct http_msg
          *msg)
        type: int
      - name: (*http_reset)         (struct stream *s, struct filter *f, struct http_msg
          *msg)
        type: void
      - name: "(*http_reply)         (struct stream *s, struct filter *f, short status,\n\t\t\t\t
          \   const struct buffer *msg)"
        type: void
      - name: "(*tcp_payload)       (struct stream *s, struct filter *f, struct channel
          *chn,\n\t\t\t\t    unsigned int offset, unsigned int len)"
        type: int
      item_type: struct
      name: flt_ops
      pos:
        line_end: 202
        line_start: 159
        source_file: /src/haproxy/include/haproxy/filters-t.h
    - fields:
      - name: '*name'
        type: char
      - name: '*id'
        type: char
      - name: '*ops'
        type: struct flt_ops
      - name: '*conf'
        type: void
      - name: list
        type: struct list
      - name: flags
        type: unsigned int
      item_type: struct
      name: flt_conf
      pos:
        line_end: 215
        line_start: 208
        source_file: /src/haproxy/include/haproxy/filters-t.h
    - fields:
      - name: '*flt_name'
        type: char
      - name: '*flt_conf'
        type: struct flt_conf
      - name: list
        type: struct list
      item_type: struct
      name: filter_sequence_elt
      pos:
        line_end: 221
        line_start: 217
        source_file: /src/haproxy/include/haproxy/filters-t.h
    - fields:
      - name: '*config'
        type: struct flt_conf
      - name: '*ctx'
        type: void
      - name: flags
        type: unsigned short
      - name: calls
        type: unsigned int
      - name: offset[2]
        type: unsigned long long
      - name: pre_analyzers
        type: unsigned int
      - name: post_analyzers
        type: unsigned int
      - name: list
        type: struct list
      - name: req_list
        type: struct list
      - name: res_list
        type: struct list
      item_type: struct
      name: filter
      pos:
        line_end: 245
        line_start: 232
        source_file: /src/haproxy/include/haproxy/filters-t.h
    - fields:
      - name: filters
        type: struct list
      - name: flags
        type: unsigned short
      item_type: struct
      name: strm_flt
      pos:
        line_end: 255
        line_start: 252
        source_file: /src/haproxy/include/haproxy/filters-t.h
    - fields:
      - name: filters
        type: struct list
      - name: '*current'
        type: struct filter
      - name: nb_data_filters
        type: unsigned char
      - name: offset
        type: unsigned long long
      item_type: struct
      name: chn_flt
      pos:
        line_end: 263
        line_start: 258
        source_file: /src/haproxy/include/haproxy/filters-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_ssl-t.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SSL_quic_read_level
  - OpenSSL_version
  - SSL_CTX_set_security_level
  - X509_get_X509_PUBKEY
  - SSL_SESSION_set1_id_context
  - X509_STORE_get0_objects
  - X509_OBJECT_get_type
  - X509_OBJECT_get0_X509
  - X509_OBJECT_get0_X509_CRL
  - SSL_SESSION_set1_id
  - X509_get0_tbs_sigalg
  - OCSP_SINGLERESP_get0_id
  - DH_set0_pqg
  - ASN1_STRING_get0_data
  - X509_up_ref
  - EVP_PKEY_up_ref
  - SSL_CTX_up_ref
  - X509_CRL_get_signature_nid
  - X509_CRL_get0_lastUpdate
  - X509_CRL_get0_nextUpdate
  - X509_REVOKED_get0_serialNumber
  - X509_REVOKED_get0_revocationDate
  - X509_STORE_CTX_get0_cert
  - ECDSA_SIG_set0
  - ERR_peek_error_func
  - X509_STORE_getX_objects
  - sk_X509_OBJECT_popX_free
  - X509_STORE_getX_objects
  - sk_X509_OBJECT_popX_free
  - RAND_pseudo_bytes
  - SSL_renegotiate_pending
  - SSL_CTX_get_extra_chain_certs
  - BIO_get_data
  - BIO_set_data
  - BIO_set_init
  - BIO_meth_free
  - BIO_meth_new
  - BIO_meth_set_gets
  - BIO_meth_set_puts
  - BIO_meth_set_read
  - BIO_meth_set_write
  - BIO_meth_set_create
  - BIO_meth_set_ctrl
  - BIO_meth_set_destroy
  - SSL_CTX_set_ecdh_auto
  - SSL_CTX_get_tlsext_status_cb
  source_file: /src/haproxy/include/haproxy/openssl-compat.h
  types:
    enum:
    - enumerators:
      - name: ssl_encryption_initial
        value: '0'
      - name: ssl_encryption_application
      - name: ssl_encryption_early_data
      - name: ssl_encryption_handshake
      item_type: enum
      name: ssl_encryption_level_t
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
    preproc_defs:
    - item_type: preproc_def
      name: TLSEXT_MAXLEN_host_name
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '255'
    - item_type: preproc_def
      name: SSL_set_quic_transport_params
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: SSL_set_quic_tls_transport_params
    - item_type: preproc_def
      name: SSL_set_quic_early_data_enabled
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: SSL_set_quic_tls_early_data_enabled
    - item_type: preproc_def
      name: SSL_CTX_set1_sigalgs_list
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: SSL_CTX_set1_sigalgs_list
    - item_type: preproc_def
      name: SSL_set_quic_early_data_enabled
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: SSL_set_early_data_enabled
    - item_type: preproc_def
      name: HA_OPENSSL_VERSION_NUMBER
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: 0x1000107fL
    - item_type: preproc_def
      name: HA_OPENSSL_VERSION_NUMBER
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: OPENSSL_VERSION_NUMBER
    - item_type: preproc_def
      name: OPENSSL_VERSION
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: SSLEAY_VERSION
    - item_type: preproc_def
      name: OpenSSL_version_num
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: SSLeay
    - item_type: preproc_def
      name: MAC_CTX
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: EVP_MAC_CTX
    - item_type: preproc_def
      name: HASSL_DH
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: EVP_PKEY
    - item_type: preproc_def
      name: HASSL_DH_free
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: EVP_PKEY_free
    - item_type: preproc_def
      name: HASSL_DH_up_ref
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: EVP_PKEY_up_ref
    - item_type: preproc_def
      name: MAC_CTX
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: HMAC_CTX
    - item_type: preproc_def
      name: HASSL_DH
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: DH
    - item_type: preproc_def
      name: HASSL_DH_free
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: DH_free
    - item_type: preproc_def
      name: HASSL_DH_up_ref
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: DH_up_ref
    - item_type: preproc_def
      name: SSL_CTX_set_tlsext_ticket_key_evp_cb
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: SSL_CTX_set_tlsext_ticket_key_cb
    - item_type: preproc_def
      name: __OPENSSL_110_CONST__
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: const
    - item_type: preproc_def
      name: __X509_NAME_CONST__
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: const
    - item_type: preproc_def
      name: TLSEXT_signature_anonymous
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TLSEXT_signature_rsa
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TLSEXT_signature_dsa
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TLSEXT_signature_ecdsa
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '3'
    - item_type: preproc_def
      name: X509_getm_notBefore
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: X509_get_notBefore
    - item_type: preproc_def
      name: X509_getm_notAfter
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: X509_get_notAfter
    - item_type: preproc_def
      name: EVP_CTRL_AEAD_SET_IVLEN
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: EVP_CTRL_GCM_SET_IVLEN
    - item_type: preproc_def
      name: EVP_CTRL_AEAD_SET_TAG
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: EVP_CTRL_GCM_SET_TAG
    - item_type: preproc_def
      name: EVP_CTRL_AEAD_GET_TAG
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: EVP_CTRL_GCM_GET_TAG
    - item_type: preproc_def
      name: TLS_TICKET_HASH_FUNCT
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: EVP_sha1
    - item_type: preproc_def
      name: TLS_TICKET_HASH_FUNCT
      pos:
        line_end: 455
        line_start: 454
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: EVP_sha256
    - item_type: preproc_def
      name: SSL_OP_CIPHER_SERVER_PREFERENCE
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_SINGLE_ECDH_USE
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_NO_TICKET
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_NO_COMPRESSION
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_NO_SSLv3
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_NO_TLSv1_1
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_NO_TLSv1_2
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_NO_TLSv1_3
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_SINGLE_DH_USE
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_SINGLE_ECDH_USE
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_MODE_RELEASE_BUFFERS
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_MODE_SMALL_BUFFERS
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_PRIORITIZE_CHACHA
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVP_MD_CTX_new
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: EVP_MD_CTX_create
    - item_type: preproc_def
      name: EVP_MD_CTX_free
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: EVP_MD_CTX_destroy
    - item_type: preproc_def
      name: SSL_CTX_set1_curves_list
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: SSL_CTX_set1_curves_list
    - item_type: preproc_def
      name: SSL_CTX_set1_sigalgs_list
      pos:
        line_end: 563
        line_start: 562
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: SSL_CTX_set1_sigalgs_list
    - item_type: preproc_def
      name: BIO_CTRL_SET_KTLS
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '72'
    - item_type: preproc_def
      name: BIO_CTRL_SET_KTLS_TX_SEND_CTRL_MSG
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '74'
    - item_type: preproc_def
      name: BIO_CTRL_CLEAR_KTLS_TX_CTRL_MSG
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '75'
    structs: []
    typedefs:
    - item_type: typedef
      name: OCSP_CERTID
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type: void
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/regex-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE_STUDY_JIT_COMPILE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/regex-t.h
      type_or_value: '0'
    structs:
    - fields: []
      item_type: struct
      name: my_regex
      pos:
        line_end: 61
        line_start: 46
        source_file: /src/haproxy/include/haproxy/regex-t.h
    - fields:
      - name: '*next'
        type: struct hdr_exp
      - name: '*preg'
        type: struct my_regex
      - name: '*replace'
        type: char
      - name: '*cond'
        type: void
      item_type: struct
      name: hdr_exp
      pos:
        line_end: 68
        line_start: 63
        source_file: /src/haproxy/include/haproxy/regex-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_map-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '**srv'
        type: struct server
      - name: rr_idx
        type: int
      item_type: struct
      name: lb_map
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/haproxy/include/haproxy/lb_map-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ssl_ocsp-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSL_OCSP_UPDATE_DELAY_MAX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/ssl_ocsp-t.h
      type_or_value: '60*60 '
    - item_type: preproc_def
      name: SSL_OCSP_UPDATE_DELAY_MIN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/ssl_ocsp-t.h
      type_or_value: '5*60  '
    - item_type: preproc_def
      name: SSL_OCSP_UPDATE_MARGIN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/ssl_ocsp-t.h
      type_or_value: '60   '
    - item_type: preproc_def
      name: SSL_OCSP_HTTP_ERR_REPLAY
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/ssl_ocsp-t.h
      type_or_value: '60 '
    structs:
    - fields:
      - name: key
        type: struct ebmb_node
      - name: key_data[OCSP_MAX_CERTID_ASN1_LENGTH]
        type: unsigned char
      - name: key_length
        type: unsigned int
      - name: refcount_store
        type: int
      - name: refcount
        type: int
      - name: response
        type: struct buffer
      - name: expire
        type: unsigned long
      - name: '*issuer'
        type: X509
      - name: '*chain'
        type: STACK_OF
      - name: next_update
        type: struct eb64_node
      - name: '*uri'
        type: struct buffer
      - name: last_update
        type: u64
      - name: '*last_update_error'
        type: char
      - name: last_update_status
        type: unsigned int
      - name: num_success
        type: unsigned int
      - name: num_failure
        type: unsigned int
      - name: fail_count
        type: unsigned int
      - name: update_once
        type: unsigned int
      - name: updating
        type: unsigned int
      - name: path[VAR_ARRAY]
        type: char
      item_type: struct
      name: certificate_ocsp
      pos:
        line_end: 68
        line_start: 45
        source_file: /src/haproxy/include/haproxy/ssl_ocsp-t.h
    - fields:
      - name: is_single
        type: int
      - name: single_kt
        type: int
      item_type: struct
      name: ocsp_cbk_arg
      pos:
        line_end: 83
        line_start: 70
        source_file: /src/haproxy/include/haproxy/ssl_ocsp-t.h
    typedefs: []
    union: []
- function_names:
  - check_generate_unique_id
  - set_srv_agent_addr
  - set_srv_agent_port
  - health_adjust
  source_file: /src/haproxy/include/haproxy/check.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHK_EV_TASK_WAKE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL <<  0)
    - item_type: preproc_def
      name: CHK_EV_HCHK_START
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL <<  1)
    - item_type: preproc_def
      name: CHK_EV_HCHK_WAKE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL <<  2)
    - item_type: preproc_def
      name: CHK_EV_HCHK_RUN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL <<  3)
    - item_type: preproc_def
      name: CHK_EV_HCHK_END
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL <<  4)
    - item_type: preproc_def
      name: CHK_EV_HCHK_SUCC
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL <<  5)
    - item_type: preproc_def
      name: CHK_EV_HCHK_ERR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL <<  6)
    - item_type: preproc_def
      name: CHK_EV_HCHK
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: "(CHK_EV_HCHK_START|CHK_EV_HCHK_WAKE|CHK_EV_HCHK_RUN|\\\n\t\t\t\tCHK_EV_HCHK_END|CHK_EV_HCHK_SUCC|CHK_EV_HCHK_ERR)"
    - item_type: preproc_def
      name: CHK_EV_TCPCHK_EVAL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL <<  7)
    - item_type: preproc_def
      name: CHK_EV_TCPCHK_ERR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL <<  8)
    - item_type: preproc_def
      name: CHK_EV_TCPCHK_CONN
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL <<  9)
    - item_type: preproc_def
      name: CHK_EV_TCPCHK_SND
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 10)
    - item_type: preproc_def
      name: CHK_EV_TCPCHK_EXP
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 11)
    - item_type: preproc_def
      name: CHK_EV_TCPCHK_ACT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 12)
    - item_type: preproc_def
      name: CHK_EV_TCPCHK
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: "(CHK_EV_TCPCHK_EVAL|CHK_EV_TCPCHK_ERR|CHK_EV_TCPCHK_CONN|\\\n\t\t\t\tCHK_EV_TCPCHK_SND|CHK_EV_TCPCHK_EXP|CHK_EV_TCPCHK_ACT)"
    - item_type: preproc_def
      name: CHK_EV_RX_DATA
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 13)
    - item_type: preproc_def
      name: CHK_EV_RX_BLK
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 14)
    - item_type: preproc_def
      name: CHK_EV_RX_ERR
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 15)
    - item_type: preproc_def
      name: CHK_EV_RX
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (CHK_EV_RX_DATA|CHK_EV_RX_BLK|CHK_EV_RX_ERR)
    - item_type: preproc_def
      name: CHK_EV_TX_DATA
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 16)
    - item_type: preproc_def
      name: CHK_EV_TX_BLK
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 17)
    - item_type: preproc_def
      name: CHK_EV_TX_ERR
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 18)
    - item_type: preproc_def
      name: CHK_EV_TX
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (CHK_EV_TX_DATA|CHK_EV_TX_BLK|CHK_EV_TX_ERR)
    structs: []
    typedefs: []
    union: []
- function_names:
  - QUIC_TUNE_FB_GET
  - quic_tune_test
  - QUIC_TUNE_FB_CONN_GET
  - quic_tune_conn_test
  source_file: /src/haproxy/include/haproxy/quic_tune.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - spop_conn_show_flags
  - _
  - spop_strm_show_flags
  - _
  - spop_conn_st_to_str
  - spop_strm_st_to_str
  source_file: /src/haproxy/include/haproxy/mux_spop-t.h
  types:
    enum:
    - enumerators:
      - name: SPOP_CS_HA_HELLO
        value: '0'
      - name: SPOP_CS_ERROR
      - name: SPOP_CS_AGENT_HELLO
      - name: SPOP_CS_CLOSING
      - name: SPOP_CS_RUNNING
      - name: SPOP_CS_CLOSED
      - name: SPOP_CS_ENTRIES
      item_type: enum
      name: spop_conn_st
      pos:
        line_end: 96
        line_start: 88
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
    - enumerators:
      - name: SPOP_SS_IDLE
        value: '0'
      - name: SPOP_SS_OPEN
      - name: SPOP_SS_ERROR
      - name: SPOP_SS_HLOC
      - name: SPOP_SS_HREM
      - name: SPOP_SS_CLOSED
      - name: SPOP_SS_ENTRIES
      item_type: enum
      name: spop_strm_st
      pos:
        line_end: 121
        line_start: 113
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
    preproc_defs:
    - item_type: preproc_def
      name: SPOP_CF_NONE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: SPOP_CF_MUX_MALLOC
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: SPOP_CF_MUX_MFULL
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: SPOP_CF_MUX_BLOCK_ANY
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000003 '
    - item_type: preproc_def
      name: SPOP_CF_WAIT_INLIST
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: 0x00000010  // there is at least one stream blocked by another
        stream in send_list
    - item_type: preproc_def
      name: SPOP_CF_DEM_DALLOC
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: SPOP_CF_DEM_DFULL
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: SPOP_CF_DEM_MROOM
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: SPOP_CF_DEM_SALLOC
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: SPOP_CF_DEM_SFULL
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: SPOP_CF_DEM_TOOMANY
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: SPOP_CF_DEM_BLOCK_ANY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x000007E0  '
    - item_type: preproc_def
      name: SPOP_CF_DISCO_SENT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: SPOP_CF_DISCO_FAILED
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00002000  '
    - item_type: preproc_def
      name: SPOP_CF_WAIT_FOR_HS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00004000  '
    - item_type: preproc_def
      name: SPOP_CF_DEM_SHORT_READ
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: 0x00008000  // demux blocked on incomplete frame
    - item_type: preproc_def
      name: SPOP_CF_RCVD_SHUT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: 0x00020000  // a recv() attempt already failed on a shutdown
    - item_type: preproc_def
      name: SPOP_CF_END_REACHED
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: 0x00040000  // pending data too short with RCVD_SHUT present
    - item_type: preproc_def
      name: SPOP_CF_ERR_PENDING
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00080000  '
    - item_type: preproc_def
      name: SPOP_CF_ERROR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00100000  '
    - item_type: preproc_def
      name: SPOP_SF_NONE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: SPOP_SF_ACK_RCVD
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: SPOP_SF_BLK_MBUSY
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: SPOP_SF_BLK_MROOM
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: SPOP_SF_BLK_ANY
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000030 '
    - item_type: preproc_def
      name: SPOP_SF_NOTIFIED
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/mux_spop-t.h
      type_or_value: '0x00000400  '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/xprt_qmux.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_rx_packet_refinc
  - quic_rx_packet_refdec
  - qc_pkt_long
  source_file: /src/haproxy/include/haproxy/quic_rx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sink_write
  source_file: /src/haproxy/include/haproxy/sink.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gettimeofday
  - clock_gettime
  - epoll_wait
  source_file: /src/haproxy/include/haproxy/timeshift.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - already_warned
  - REGISTER_BUILD_OPTS
  source_file: /src/haproxy/include/haproxy/global.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/api-t.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/time-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: curr
        type: uint32_t
      - name: tot
        type: uint32_t
      item_type: struct
      name: tot_time
      pos:
        line_end: 7
        line_start: 4
        source_file: /src/haproxy/include/haproxy/time-t.h
    typedefs: []
    union: []
- function_names:
  - __decl_spinlock
  - __decl_aligned_spinlock
  - __decl_rwlock
  - __decl_aligned_rwlock
  - __decl_spinlock
  - __decl_aligned_spinlock
  - __decl_rwlock
  - __decl_aligned_rwlock
  source_file: /src/haproxy/include/haproxy/thread-t.h
  types:
    enum:
    - enumerators:
      - name: PROXY_LOCK
      - name: LBPRM_LOCK
      - name: STK_TABLE_LOCK
      - name: STK_TABLE_UPDT_LOCK
      - name: APPLETS_LOCK
      - name: VARS_LOCK
      - name: PEER_LOCK
      - name: SSL_LOCK
      - name: NOTIF_LOCK
      - name: SPOE_APPLET_LOCK
      - name: AUTH_LOCK
      - name: OTHER_LOCK
      - name: SFT_LOCK
      - name: TASK_WQ_LOCK
      - name: SERVER_LOCK
      - name: STK_SESS_LOCK
      - name: LUA_LOCK
      - name: DNS_LOCK
      - name: RING_LOCK
      - name: SNI_LOCK
      - name: QC_CID_LOCK
      - name: PROXIES_DEL_LOCK
      - name: DEBUG2_LOCK
      - name: LOCK_LABELS
      - name: IDLE_CONNS_LOCK
      - name: TASK_RQ_LOCK
      - name: SIGNALS_LOCK
      - name: PATREF_LOCK
      - name: SHCTX_LOCK
      - name: SSL_GEN_CERTS_LOCK
      - name: PATEXP_LOCK
      - name: TLSKEYS_REF_LOCK
      - name: CKCH_LOCK
      - name: OCSP_LOCK
      - name: GUID_LOCK
      - name: DEBUG3_LOCK
      - name: PID_LIST_LOCK
      - name: QUEUE_LOCK
      - name: LISTENER_LOCK
      - name: COMP_POOL_LOCK
      - name: DICT_LOCK
      - name: PROTO_LOCK
      - name: SSL_SERVER_LOCK
      - name: CACHE_LOCK
      - name: DEBUG5_LOCK
      - name: DEBUG1_LOCK
      - name: PIPES_LOCK
      - name: DEBUG4_LOCK
      item_type: enum
      name: lock_label
      pos:
        line_end: 230
        line_start: 178
        source_file: /src/haproxy/include/haproxy/thread-t.h
    preproc_defs:
    - item_type: preproc_def
      name: __HA_SPINLOCK_T
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/thread-t.h
      type_or_value: unsigned long
    - item_type: preproc_def
      name: __HA_RWLOCK_T
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/thread-t.h
      type_or_value: unsigned long
    - item_type: preproc_def
      name: HA_SPINLOCK_T
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/haproxy/include/haproxy/thread-t.h
      type_or_value: __HA_SPINLOCK_T
    - item_type: preproc_def
      name: HA_RWLOCK_T
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/haproxy/include/haproxy/thread-t.h
      type_or_value: __HA_RWLOCK_T
    - item_type: preproc_def
      name: HA_SPINLOCK_T
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/include/haproxy/thread-t.h
      type_or_value: struct ha_spinlock
    - item_type: preproc_def
      name: HA_RWLOCK_T
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/thread-t.h
      type_or_value: struct ha_rwlock
    structs:
    - fields:
      - name: '*global'
        type: uint64_t
      - name: diff
        type: int
      - name: lim
        type: int
      item_type: struct
      name: cshared
      pos:
        line_end: 108
        line_start: 104
        source_file: /src/haproxy/include/haproxy/thread-t.h
    - fields:
      - name: nsec_wait
        type: uint64_t
      - name: num_unlocked
        type: uint64_t
      - name: buckets[30]
        type: uint64_t
      item_type: struct
      name: lock_stat
      pos:
        line_end: 133
        line_start: 129
        source_file: /src/haproxy/include/haproxy/thread-t.h
    - fields:
      - name: owner
        type: unsigned long
      - name: waiters
        type: unsigned long
      item_type: struct
      name: ha_spinlock_state
      pos:
        line_end: 138
        line_start: 135
        source_file: /src/haproxy/include/haproxy/thread-t.h
    - fields:
      - name: cur_writer
        type: unsigned long
      - name: wait_writers
        type: unsigned long
      - name: cur_readers
        type: unsigned long
      - name: wait_readers
        type: unsigned long
      - name: cur_seeker
        type: unsigned long
      - name: wait_seekers
        type: unsigned long
      item_type: struct
      name: ha_rwlock_state
      pos:
        line_end: 147
        line_start: 140
        source_file: /src/haproxy/include/haproxy/thread-t.h
    - fields:
      - name: lock
        type: __HA_SPINLOCK_T
      - name: info
        type: "struct {\n\t\tstruct ha_spinlock_state st[MAX_TGROUPS];\n\t\tstruct
          {\n\t\t\tconst char *function;\n\t\t\tconst char *file;\n\t\t\tint line;\n\t\t}
          last_location; /* location of the last owner */\n\t}"
      item_type: struct
      name: ha_spinlock
      pos:
        line_end: 159
        line_start: 149
        source_file: /src/haproxy/include/haproxy/thread-t.h
    - fields:
      - name: lock
        type: __HA_RWLOCK_T
      - name: info
        type: "struct {\n\t\tstruct ha_rwlock_state st[MAX_TGROUPS];\n\t\tstruct {\n\t\t\tconst
          char *function;\n\t\t\tconst char *file;\n\t\t\tint line;\n\t\t} last_location;
          /* location of the last write owner */\n\t}"
      item_type: struct
      name: ha_rwlock
      pos:
        line_end: 171
        line_start: 161
        source_file: /src/haproxy/include/haproxy/thread-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/h3_stats-t.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_stream_is_uni
  - quic_stream_is_bidi
  - bdata_ctr_init
  - bdata_ctr_binc
  - bdata_ctr_bdec
  - bdata_ctr_add
  - bdata_ctr_del
  - bdata_ctr_print
  source_file: /src/haproxy/include/haproxy/quic_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - chn_strm
  - chn_prod
  - chn_cons
  - c_orig
  - c_size
  - c_wrap
  - c_data
  - c_room
  - c_empty
  - c_full
  - co_data
  - ci_data
  - ci_next_ofs
  - ci_next
  - c_ptr
  - c_adv
  - c_rew
  - c_realign_if_empty
  - co_set_data
  - __co_head_ofs
  - __co_head
  - co_head_ofs
  - co_head
  - __co_tail_ofs
  - __co_tail
  - co_tail_ofs
  - co_tail
  - __ci_head_ofs
  - __ci_head
  - ci_head_ofs
  - ci_head
  - __ci_tail_ofs
  - __ci_tail
  - ci_tail_ofs
  - ci_tail
  - __ci_stop_ofs
  - __ci_stop
  - ci_stop_ofs
  - ci_stop
  - ci_contig_data
  - channel_init
  - channel_forward
  - channel_forward_forever
  - channel_add_input
  - channel_htx_forward
  - channel_htx_forward_forever
  - channel_is_rewritable
  - channel_may_send
  - channel_htx_may_recv
  - channel_may_recv
  - channel_input_closed
  - channel_output_closed
  - channel_check_timeout
  - channel_erase
  - channel_htx_erase
  - channel_abort
  - channel_auto_connect
  - channel_dont_connect
  - channel_auto_close
  - channel_dont_close
  - channel_auto_read
  - channel_dont_read
  - channel_recv_limit
  - channel_htx_recv_limit
  - channel_htx_full
  - channel_full
  - channel_htx_recv_max
  - channel_recv_max
  - channel_data_limit
  - channel_data
  - channel_input_data
  - channel_check_idletimer
  - channel_check_xfer
  - ci_space_for_replace
  - channel_alloc_buffer
  - channel_release_buffer
  - channel_truncate
  - channel_htx_truncate
  - channel_slow_realign
  - channel_htx_fwd_headers
  - co_skip
  - co_htx_skip
  - ci_putchk
  - ci_putstr
  - co_getchr
  source_file: /src/haproxy/include/haproxy/channel.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fconn_show_flags
  - _
  - fstrm_show_flags
  - _
  - fconn_st_to_str
  - fstrm_st_to_str
  source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
  types:
    enum:
    - enumerators:
      - name: FCGI_CS_INIT
        value: '0'
      - name: FCGI_CS_RECORD_D
      - name: FCGI_CS_RECORD_H
      - name: FCGI_CS_SETTINGS
      - name: FCGI_CS_RECORD_P
      - name: FCGI_CS_CLOSED
      - name: FCGI_CS_ENTRIES
      item_type: enum
      name: fcgi_conn_st
      pos:
        line_end: 134
        line_start: 126
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
    - enumerators:
      - name: FCGI_SS_IDLE
        value: '0'
      - name: FCGI_SS_HLOC
      - name: FCGI_SS_HREM
      - name: FCGI_SS_ERROR
      - name: FCGI_SS_OPEN
      - name: FCGI_SS_CLOSED
      - name: FCGI_SS_ENTRIES
      item_type: enum
      name: fcgi_strm_st
      pos:
        line_end: 159
        line_start: 151
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
    preproc_defs:
    - item_type: preproc_def
      name: FCGI_CF_NONE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: FCGI_CF_MUX_MALLOC
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: FCGI_CF_MUX_MFULL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: FCGI_CF_MUX_BLOCK_ANY
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000003 '
    - item_type: preproc_def
      name: FCGI_CF_DEM_DALLOC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: FCGI_CF_DEM_DFULL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: FCGI_CF_DEM_MROOM
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: FCGI_CF_DEM_SALLOC
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: FCGI_CF_DEM_SFULL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: FCGI_CF_DEM_TOOMANY
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: FCGI_CF_DEM_BLOCK_ANY
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x000000F0  '
    - item_type: preproc_def
      name: FCGI_CF_MPXS_CONNS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: FCGI_CF_ABRTS_SENT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: FCGI_CF_ABRTS_FAILED
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: FCGI_CF_WAIT_FOR_HS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: FCGI_CF_KEEP_CONN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: FCGI_CF_GET_VALUES
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00002000  '
    - item_type: preproc_def
      name: FCGI_CF_EOS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00004000  '
    - item_type: preproc_def
      name: FCGI_CF_ERR_PENDING
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00008000  '
    - item_type: preproc_def
      name: FCGI_CF_ERROR
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00010000  '
    - item_type: preproc_def
      name: FCGI_CF_DEM_SHORT_READ
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00020000  '
    - item_type: preproc_def
      name: FCGI_CF_END_REACHED
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00040000  '
    - item_type: preproc_def
      name: FCGI_SF_NONE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: FCGI_SF_ES_RCVD
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: FCGI_SF_ES_SENT
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: FCGI_SF_EP_SENT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: FCGI_SF_ABRT_SENT
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: FCGI_SF_BLK_MBUSY
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: FCGI_SF_BLK_MROOM
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: FCGI_SF_BLK_ANY
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000030 '
    - item_type: preproc_def
      name: FCGI_SF_BEGIN_SENT
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: FCGI_SF_OUTGOING_DATA
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: FCGI_SF_NOTIFIED
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: FCGI_SF_WANT_SHUTR
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: FCGI_SF_WANT_SHUTW
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/haproxy/mux_fcgi-t.h
      type_or_value: '0x00002000  '
    structs: []
    typedefs: []
    union: []
- function_names:
  - srv_alloc
  - srv_free
  - server_index_id
  - srv_inc_sess_ctr
  - srv_set_sess_last
  - server_throttle_rate
  - server_is_draining
  - srv_adm_set_maint
  - srv_adm_set_drain
  - srv_adm_set_ready
  - srv_set_init_state
  - srv_append_initaddr
  - srv_get_next_initaddr
  - srv_use_conn
  - srv_minmax_conn_apply
  - srv_is_transparent
  - srv_detach
  - server_find_by_id
  - srv_is_quic
  source_file: /src/haproxy/include/haproxy/server.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/protobuf-t.h
  types:
    enum:
    - enumerators:
      - name: PBUF_TYPE_VARINT
      - name: PBUF_TYPE_LENGTH_DELIMITED
      - name: PBUF_TYPE_START_GROUP
      - name: PBUF_TYPE_STOP_GROUP
      - name: PBUF_TYPE_64BIT
      - name: PBUF_TYPE_32BIT
      item_type: enum
      name: protobuf_wire_type
      pos:
        line_end: 33
        line_start: 26
        source_file: /src/haproxy/include/haproxy/protobuf-t.h
    - enumerators:
      - name: PBUF_T_BINARY
        value: '1'
      - name: PBUF_T_VARINT_INT64
      - name: PBUF_T_VARINT_INT32
      - name: PBUF_T_VARINT_UINT32
      - name: PBUF_T_VARINT_UINT64
      - name: PBUF_T_VARINT_BOOL
      - name: PBUF_T_VARINT_ENUM
      - name: PBUF_T_VARINT_SINT32
      - name: PBUF_T_VARINT_SINT64
      - name: PBUF_T_32BIT_FIXED32
      - name: PBUF_T_64BIT_FIXED64
      - name: PBUF_T_32BIT_SFIXED32
      - name: PBUF_T_64BIT_SFIXED64
      - name: PBUF_T_32BIT_FLOAT
      - name: PBUF_T_64BIT_DOUBLE
      item_type: enum
      name: protobuf_type
      pos:
        line_end: 64
        line_start: 35
        source_file: /src/haproxy/include/haproxy/protobuf-t.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*ids'
        type: unsigned int
      - name: sz
        type: size_t
      item_type: struct
      name: pbuf_fid
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/haproxy/include/haproxy/protobuf-t.h
    - fields:
      - name: (*skip)(unsigned char **pos, size_t *left, size_t vlen)
        type: int
      - name: "(*smp_store)(struct sample *, int type,\n\t                 unsigned
          char *pos, size_t left, size_t vlen)"
        type: int
      item_type: struct
      name: protobuf_parser_def
      pos:
        line_end: 77
        line_start: 73
        source_file: /src/haproxy/include/haproxy/protobuf-t.h
    typedefs: []
    union: []
- function_names:
  - cli_msg
  - cli_err
  - cli_dynmsg
  - cli_dynerr
  - cli_umsg
  - cli_umsgerr
  source_file: /src/haproxy/include/haproxy/cli.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncbmb_is_null
  - ncbmb_orig
  - ncbmb_head
  - ncbmb_wrap
  - ncbmb_size
  source_file: /src/haproxy/include/haproxy/ncbmbuf.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SERVER_INETADDR_UPDATER_DNS_RESOLVER
  source_file: /src/haproxy/include/haproxy/server-t.h
  types:
    enum:
    - enumerators:
      - name: SRV_ST_STOPPED
        value: '0'
      - name: SRV_ST_RUNNING
      - name: SRV_ST_STARTING
      - name: SRV_ST_STOPPING
      item_type: enum
      name: srv_state
      pos:
        line_end: 53
        line_start: 48
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SRV_ADMF_FMAINT
        value: '0x01'
      - name: SRV_ADMF_IDRAIN
        value: '0x10'
      - name: SRV_ADMF_FDRAIN
        value: '0x08'
      - name: SRV_ADMF_CMAINT
        value: '0x04'
      - name: SRV_ADMF_IMAINT
        value: '0x02'
      - name: SRV_ADMF_DRAIN
        value: '0x18'
      - name: SRV_ADMF_RMAINT
        value: '0x20'
      - name: SRV_ADMF_MAINT
        value: '0x23'
      - name: SRV_ADMF_FQDN_CHANGED
        value: '0x40'
      item_type: enum
      name: srv_admin
      pos:
        line_end: 91
        line_start: 76
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SRV_IADDR_END
        value: '0'
      - name: SRV_IADDR_NONE
        value: '1'
      - name: SRV_IADDR_IP
        value: '4'
      - name: SRV_IADDR_LAST
        value: '3'
      - name: SRV_IADDR_LIBC
        value: '2'
      item_type: enum
      name: srv_initaddr
      pos:
        line_end: 106
        line_start: 100
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SRV_INIT_STATE_NONE
        value: '0'
      - name: SRV_INIT_STATE_UP
      - name: SRV_INIT_STATE_FULLY_DOWN
      - name: SRV_INIT_STATE_DOWN
      - name: SRV_INIT_STATE_FULLY_UP
      item_type: enum
      name: srv_init_state
      pos:
        line_end: 118
        line_start: 112
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SRV_LOG_PROTO_LEGACY
      - name: SRV_LOG_PROTO_OCTET_COUNTING
      item_type: enum
      name: srv_log_proto
      pos:
        line_end: 215
        line_start: 212
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SRV_ADM_STCHGC_NONE
        value: '0'
      - name: SRV_ADM_STCHGC_DNS_NX
      - name: SRV_ADM_STCHGC_DNS_NOENT
      - name: SRV_ADM_STCHGC_DNS_NOIP
      - name: SRV_ADM_STCHGC_DNS_TIMEOUT
      - name: SRV_ADM_STCHGC_DNS_REFUSED
      - name: SRV_ADM_STCHGC_DNS_UNSPEC
      - name: SRV_ADM_STCHGC_STATS_DISABLE
      - name: SRV_ADM_STCHGC_STATS_STOP
      item_type: enum
      name: srv_adm_st_chg_cause
      pos:
        line_end: 228
        line_start: 218
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SRV_OP_STCHGC_NONE
        value: '0'
      - name: SRV_OP_STCHGC_CLI
      - name: SRV_OP_STCHGC_HEALTH
      - name: SRV_OP_STCHGC_AGENT
      - name: SRV_OP_STCHGC_LUA
      - name: SRV_OP_STCHGC_STATS_WEB
      - name: SRV_OP_STCHGC_STATEFILE
      item_type: enum
      name: srv_op_st_chg_cause
      pos:
        line_end: 239
        line_start: 231
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SRV_HASH_KEY_ID
        value: '0'
      - name: SRV_HASH_KEY_ID32
      - name: SRV_HASH_KEY_GUID
      - name: SRV_HASH_KEY_ADDR
      - name: SRV_HASH_KEY_ADDR_PORT
      item_type: enum
      name: srv_hash_key
      pos:
        line_end: 256
        line_start: 250
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SSL_RENEGOTIATE_DFLT
        value: '0'
      - name: SSL_RENEGOTIATE_OFF
      - name: SSL_RENEGOTIATE_ON
      item_type: enum
      name: renegotiate_mode
      pos:
        line_end: 324
        line_start: 320
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SERVER_INETADDR_UPDATER_BY_NONE
        value: '0'
      - name: SERVER_INETADDR_UPDATER_BY_DNS_AR
      - name: SERVER_INETADDR_UPDATER_BY_CLI
      - name: SERVER_INETADDR_UPDATER_BY_LUA
      - name: SERVER_INETADDR_UPDATER_BY_DNS_CACHE
      - name: SERVER_INETADDR_UPDATER_BY_DNS_RESOLVER
      item_type: enum
      name: server_inetaddr_updater_by
      pos:
        line_end: 719
        line_start: 709
        source_file: /src/haproxy/include/haproxy/server-t.h
    preproc_defs:
    - item_type: preproc_def
      name: SRV_STATE_FILE_VERSION
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SRV_STATE_FILE_VERSION_MIN
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SRV_STATE_FILE_VERSION_MAX
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SRV_STATE_FILE_FIELD_NAMES
      pos:
        line_end: 150
        line_start: 124
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: "\"be_id \"                      \\\n    \"be_name \"                    \\\n
        \   \"srv_id \"                     \\\n    \"srv_name \"                   \\\n
        \   \"srv_addr \"                   \\\n    \"srv_op_state \"               \\\n
        \   \"srv_admin_state \"            \\\n    \"srv_uweight \"                \\\n
        \   \"srv_iweight \"                \\\n    \"srv_time_since_last_change \"
        \\\n    \"srv_check_status \"           \\\n    \"srv_check_result \"           \\\n
        \   \"srv_check_health \"           \\\n    \"srv_check_state \"            \\\n
        \   \"srv_agent_state \"            \\\n    \"bk_f_forced_id \"             \\\n
        \   \"srv_f_forced_id \"            \\\n    \"srv_fqdn \"                   \\\n
        \   \"srv_port \"                   \\\n    \"srvrecord \"                  \\\n
        \   \"srv_use_ssl \"                \\\n    \"srv_check_port \"             \\\n
        \   \"srv_check_addr \"             \\\n    \"srv_agent_addr \"             \\\n
        \   \"srv_agent_port\""
    - item_type: preproc_def
      name: SRV_STATE_FILE_MAX_FIELDS
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '25'
    - item_type: preproc_def
      name: SRV_STATE_FILE_MIN_FIELDS_VERSION_1
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '20'
    - item_type: preproc_def
      name: SRV_STATE_FILE_MAX_FIELDS_VERSION_1
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '25'
    - item_type: preproc_def
      name: SRV_STATE_LINE_MAXLEN
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '2000'
    - item_type: preproc_def
      name: SRV_F_BACKUP
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0001        '
    - item_type: preproc_def
      name: SRV_F_MAPPORTS
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0002        '
    - item_type: preproc_def
      name: SRV_F_NON_STICK
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0004        '
    - item_type: preproc_def
      name: SRV_F_USE_NS_FROM_PP
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0008      '
    - item_type: preproc_def
      name: SRV_F_FORCED_ID
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0010        '
    - item_type: preproc_def
      name: SRV_F_RHTTP
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0020        '
    - item_type: preproc_def
      name: SRV_F_AGENTPORT
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0040        '
    - item_type: preproc_def
      name: SRV_F_AGENTADDR
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0080        '
    - item_type: preproc_def
      name: SRV_F_COOKIESET
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0100        '
    - item_type: preproc_def
      name: SRV_F_FASTOPEN
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0200        '
    - item_type: preproc_def
      name: SRV_F_SOCKS4_PROXY
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0400        '
    - item_type: preproc_def
      name: SRV_F_NO_RESOLUTION
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0800       '
    - item_type: preproc_def
      name: SRV_F_DYNAMIC
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x1000        '
    - item_type: preproc_def
      name: SRV_F_NON_PURGEABLE
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x2000       '
    - item_type: preproc_def
      name: SRV_F_DEFSRV_USE_SSL
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x4000      '
    - item_type: preproc_def
      name: SRV_F_DELETED
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x8000             '
    - item_type: preproc_def
      name: SRV_F_STRICT_MAXCONN
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x10000     '
    - item_type: preproc_def
      name: SRV_F_CHK_NO_AUTO_SNI
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x20000    '
    - item_type: preproc_def
      name: SRV_F_UDP_GSO_NOTSUPP
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x40000    '
    - item_type: preproc_def
      name: SRV_PP_V1
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0001   '
    - item_type: preproc_def
      name: SRV_PP_V2
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0002   '
    - item_type: preproc_def
      name: SRV_PP_ENABLED
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0003   '
    - item_type: preproc_def
      name: SRV_PP_V2_SSL
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0004   '
    - item_type: preproc_def
      name: SRV_PP_V2_SSL_CN
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0008   '
    - item_type: preproc_def
      name: SRV_PP_V2_SSL_KEY_ALG
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0010   '
    - item_type: preproc_def
      name: SRV_PP_V2_SSL_SIG_ALG
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0020   '
    - item_type: preproc_def
      name: SRV_PP_V2_SSL_CIPHER
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0040   '
    - item_type: preproc_def
      name: SRV_PP_V2_AUTHORITY
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0080   '
    - item_type: preproc_def
      name: SRV_PP_V2_CRC32C
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0100   '
    - item_type: preproc_def
      name: SRV_PP_V2_UNIQUE_ID
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0200   '
    - item_type: preproc_def
      name: SRV_STATUS_OK
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0   '
    - item_type: preproc_def
      name: SRV_STATUS_INTERNAL
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '1   '
    - item_type: preproc_def
      name: SRV_STATUS_NOSRV
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '2   '
    - item_type: preproc_def
      name: SRV_STATUS_FULL
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '3   '
    - item_type: preproc_def
      name: SRV_STATUS_QUEUED
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '4   '
    - item_type: preproc_def
      name: SRV_UWGHT_RANGE
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '256'
    - item_type: preproc_def
      name: SRV_UWGHT_MAX
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: (SRV_UWGHT_RANGE)
    - item_type: preproc_def
      name: SRV_EWGHT_RANGE
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: (SRV_UWGHT_RANGE * BE_WEIGHT_SCALE)
    - item_type: preproc_def
      name: SRV_EWGHT_MAX
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: (SRV_UWGHT_MAX   * BE_WEIGHT_SCALE)
    - item_type: preproc_def
      name: SRV_SSL_O_NONE
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: SRV_SSL_O_NO_AUTO_SNI
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: SRV_SSL_O_NO_TLS_TICKETS
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0100 '
    - item_type: preproc_def
      name: SRV_SSL_O_NO_REUSE
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x200  '
    - item_type: preproc_def
      name: SRV_SSL_O_EARLY_DATA
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x400  '
    - item_type: preproc_def
      name: SRV_SSL_O_KTLS
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x800  '
    - item_type: preproc_def
      name: MAX_ALPN_SIZE
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SERVER_INETADDR_UPDATER_NONE
      pos:
        line_end: 732
        line_start: 729
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: "(struct server_inetaddr_updater){ .by = SERVER_INETADDR_UPDATER_BY_NONE,
        \     \\\n                                   .dns = 0 }"
    - item_type: preproc_def
      name: SERVER_INETADDR_UPDATER_CLI
      pos:
        line_end: 736
        line_start: 733
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: "(struct server_inetaddr_updater){ .by = SERVER_INETADDR_UPDATER_BY_CLI,
        \      \\\n                                   .dns = 0 }"
    - item_type: preproc_def
      name: SERVER_INETADDR_UPDATER_LUA
      pos:
        line_end: 740
        line_start: 737
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: "(struct server_inetaddr_updater){ .by = SERVER_INETADDR_UPDATER_BY_LUA,
        \      \\\n                                   .dns = 0 }"
    - item_type: preproc_def
      name: SERVER_INETADDR_UPDATER_DNS_AR
      pos:
        line_end: 744
        line_start: 741
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: "(struct server_inetaddr_updater){ .by = SERVER_INETADDR_UPDATER_BY_DNS_AR,
        \   \\\n                                   .dns = 1 }"
    - item_type: preproc_def
      name: SERVER_INETADDR_UPDATER_DNS_CACHE
      pos:
        line_end: 748
        line_start: 745
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: "(struct server_inetaddr_updater){ .by = SERVER_INETADDR_UPDATER_BY_DNS_CACHE,
        \\\n                                   .dns = 1 }"
    - item_type: preproc_def
      name: SRV_PARSE_DEFAULT_SERVER
      pos:
        line_end: 813
        line_start: 812
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: SRV_PARSE_TEMPLATE
      pos:
        line_end: 814
        line_start: 813
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: SRV_PARSE_IN_PEER_SECTION
      pos:
        line_end: 815
        line_start: 814
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x04    '
    - item_type: preproc_def
      name: SRV_PARSE_PARSE_ADDR
      pos:
        line_end: 816
        line_start: 815
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x08    '
    - item_type: preproc_def
      name: SRV_PARSE_DYNAMIC
      pos:
        line_end: 817
        line_start: 816
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x10    '
    - item_type: preproc_def
      name: SRV_PARSE_INITIAL_RESOLVE
      pos:
        line_end: 818
        line_start: 817
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x20    '
    structs:
    - fields:
      - name: list
        type: struct list
      - name: pid
        type: pid_t
      - name: '*t'
        type: struct task
      - name: status
        type: int
      - name: exited
        type: int
      item_type: struct
      name: pid_list
      pos:
        line_end: 247
        line_start: 241
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: '*server'
        type: struct server
      - name: node
        type: struct eb32_node
      item_type: struct
      name: tree_occ
      pos:
        line_end: 265
        line_start: 262
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: streams
        type: struct mt_list
      - name: sess_conns
        type: struct mt_list
      - name: idle_conn_list
        type: struct list
      - name: '*idle_conns'
        type: struct ceb_root
      - name: '*safe_conns'
        type: struct ceb_root
      - name: '*avail_conns'
        type: struct ceb_root
      item_type: struct
      name: srv_per_thread
      pos:
        line_end: 284
        line_start: 268
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: queue
        type: struct queue
      - name: '*server'
        type: struct server
      - name: lb_node
        type: struct eb32_node
      - name: '*extra_counters_storage'
        type: char
      - name: '*next_full'
        type: struct server
      - name: last_other_tgrp_served
        type: unsigned int
      - name: self_served
        type: unsigned int
      - name: dequeuing
        type: unsigned int
      - name: next_takeover
        type: unsigned int
      - name: '*lb_tree'
        type: struct eb_root
      - name: npos
        type: unsigned
      - name: rweight
        type: unsigned
      item_type: struct
      name: srv_per_tgroup
      pos:
        line_end: 300
        line_start: 287
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: list
        type: struct list
      - name: fmt
        type: struct lf_expr
      - name: '*fmt_string'
        type: char
      - name: type
        type: unsigned char
      item_type: struct
      name: srv_pp_tlv_list
      pos:
        line_end: 317
        line_start: 312
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: nego_alpn[MAX_ALPN_SIZE]
        type: char
      - name: srv_hash
        type: int64_t
      item_type: struct
      name: path_parameters
      pos:
        line_end: 335
        line_start: 328
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: init_state
        type: enum srv_init_state
      - name: next_state
        type: enum srv_state
      - name: next_admin
        type: enum srv_admin
      - name: use_ssl
        type: signed char
      - name: flags
        type: unsigned int
      - name: pp_opts
        type: unsigned int
      - name: global_list
        type: struct mt_list
      - name: '*next'
        type: struct server
      - name: cklen
        type: int
      - name: rdr_len
        type: int
      - name: '*cookie'
        type: char
      - name: '*rdr_pfx'
        type: char
      - name: '*proxy'
        type: struct proxy
      - name: '*mux_proto'
        type: struct mux_proto_list
      - name: addr_type
        type: struct net_addr_type
      - name: '*log_target'
        type: struct log_target
      - name: maxconn
        type: unsigned
      - name: '*per_thr'
        type: struct srv_per_thread
      - name: '*per_tgrp'
        type: struct srv_per_tgroup
      - name: '*curr_idle_thr'
        type: unsigned int
      - name: '*pool_conn_name'
        type: char
      - name: '*pool_conn_name_expr'
        type: struct sample_expr
      - name: pool_purge_delay
        type: unsigned int
      - name: low_idle_conns
        type: unsigned int
      - name: max_idle_conns
        type: unsigned int
      - name: max_reuse
        type: int
      - name: '*warmup'
        type: struct task
      - name: '*track'
        type: struct server
      - name: '*trackers'
        type: struct server
      - name: '*tracknext'
        type: struct server
      - name: '*trackit'
        type: char
      - name: observe
        type: short
      - name: onmarkeddown
        type: short
      - name: onmarkedup
        type: short
      - name: slowstart
        type: int
      - name: idle_ping
        type: int
      - name: last_change
        type: unsigned long
      - name: '*id'
        type: char
      - name: rid
        type: uint32_t
      - name: iweight
        type: unsigned
      - name: wscore
        type: unsigned
      - name: next_eweight
        type: unsigned
      - name: cumulative_weight
        type: unsigned
      - name: maxqueue
        type: int
      - name: shard
        type: int
      - name: log_bufsize
        type: int
      - name: ws
        type: enum srv_ws_mode
      - name: watcher_list
        type: struct mt_list
      - name: refcount
        type: uint
      - name: idle_node
        type: struct eb32_node
      - name: curr_idle_conns
        type: unsigned int
      - name: curr_idle_nb
        type: unsigned int
      - name: curr_safe_nb
        type: unsigned int
      - name: curr_used_conns
        type: unsigned int
      - name: curr_total_conns
        type: unsigned int
      - name: max_used_conns
        type: unsigned int
      - name: est_need_conns
        type: unsigned int
      - name: curr_sess_idle_conns
        type: unsigned int
      - name: queueslength
        type: unsigned int
      - name: guid
        type: struct guid_node
      - name: puid
        type: int
      - name: cur_sess
        type: int
      - name: served
        type: int
      - name: consecutive_errors
        type: int
      - name: consecutive_errors_limit
        type: int
      - name: counters
        type: struct be_counters
      - name: '*lb_tree'
        type: struct eb_root
      - name: '*lb_nodes'
        type: struct tree_occ
      - name: '*requeue_tasklet'
        type: struct tasklet
      - name: lb_nodes_tot
        type: unsigned
      - name: lb_nodes_now
        type: unsigned
      - name: hash_key
        type: enum srv_hash_key
      - name: lb_server_key
        type: unsigned
      - name: '*netns'
        type: struct netns_entry
      - name: '*xprt'
        type: struct xprt_ops
      - name: alt_proto
        type: int
      - name: svc_port
        type: unsigned int
      - name: down_time
        type: unsigned
      - name: tcp_ut
        type: int
      - name: '*tcp_md5sig'
        type: char
      - name: '*cc_algo'
        type: char
      - name: do_check
        type: int
      - name: do_agent
        type: int
      - name: check
        type: struct check
      - name: agent
        type: struct check
      - name: '*resolv_requester'
        type: struct resolv_requester
      - name: '*resolvers_id'
        type: char
      - name: '*resolvers'
        type: struct resolvers
      - name: '*lastaddr'
        type: char
      - name: resolv_opts
        type: struct resolv_options
      - name: hostname_dn_len
        type: int
      - name: '*hostname_dn'
        type: char
      - name: '*hostname'
        type: char
      - name: init_addr
        type: struct sockaddr_storage
      - name: init_addr_methods
        type: unsigned int
      - name: log_proto
        type: enum srv_log_proto
      - name: '*sni_expr'
        type: char
      - name: ssl_ctx
        type: "struct {\n\t\tvoid *ctx;\n\t\tstruct {\n\t\t\t/* ptr/size may be shared
          R/O with other threads under read lock\n\t\t\t * \"sess_lock\", however
          only the owning thread may change them\n\t\t\t * (under write lock).\n\t\t\t
          */\n\t\t\tunsigned char *ptr;\n\t\t\tint size;\n\t\t\tint allocated_size;\n\t\t\tuint64_t
          sni_hash; /* Hash of the SNI used for the session */\n\t\t\t__decl_thread(HA_RWLOCK_T
          sess_lock);\n\t\t} * reused_sess;\n\n\t\tstruct ckch_inst *inst; /* Instance
          of the ckch_store in which the certificate was loaded (might be null if
          server has no certificate) */\n\t\t__decl_thread(HA_RWLOCK_T lock); /* lock
          the cache and SSL_CTX during commit operations */\n\n\t\tchar *ciphers;\t\t\t/*
          cipher suite to use if non-null */\n\t\tchar *ciphersuites;\t\t/* TLS 1.3
          cipher suite to use if non-null */\n\t\tchar *curves;\t\t\t/* TLS curves
          list */\n\t\tuint last_ssl_sess_tid;         /* last tid+1 having updated
          reused_sess (0=none, >0=tid+1) */\n\t\tint options;\t\t\t/* ssl options
          */\n\t\tint verify;\t\t\t/* verify method (set of SSL_VERIFY_* flags) */\n\t\tstruct
          tls_version_filter methods;\t/* ssl methods */\n\t\tchar *verify_host;              /*
          hostname of certificate must match this host */\n\t\tchar *ca_file;\t\t\t/*
          CAfile to use on verify */\n\t\tchar *crl_file;\t\t\t/* CRLfile to use on
          verify */\n\t\tchar *client_crt;\t\t/* client certificate to send */\n\t\tchar
          *sigalgs;\t\t\t/* Signature algorithms */\n\t\tchar *client_sigalgs;           /*
          Client Signature algorithms */\n\t\tstruct sample_expr *sni;        /* sample
          expression for SNI */\n\t\tchar *npn_str;                  /* NPN protocol
          string */\n\t\tchar *alpn_str;                 /* ALPN protocol string */\n\t\tint
          npn_len;                    /* NPN protocol string length */\n\t\tint alpn_len;
          \                  /* ALPN protocol string length */\n\t\tint renegotiate;\t\t/*
          Renegotiate mode (SSL_RENEGOTIATE_ flag) */\n\t}"
      - name: path_params
        type: struct path_parameters
      - name: '*srvrq'
        type: struct resolv_srvrq
      - name: srv_rec_item
        type: struct list
      - name: ip_rec_item
        type: struct list
      - name: host_dn
        type: struct ceb_node
      - name: pp_tlvs
        type: struct list
      - name: '*srvrq_check'
        type: struct task
      - name: conf
        type: "struct {\n\t\tconst char *file;\t\t/* file where the section appears
          */\n\t\tstruct ceb_node puid_node;\t/* place in the tree of used IDs, indexes
          <puid> above */\n\t\tstruct ceb_node name_node;\t/* place in the tree of
          used names, indexes <id> above, not unique, indexed in px->used_server_name
          */\n\t\tint line;\t\t\t/* line where the section appears */\n\t}"
      - name: addr_node
        type: struct ceb_node
      - name: '*addr_key'
        type: char
      - name: tmpl_info
        type: "struct {\n\t\tchar *prefix;\n\t\tint nb_low;\n\t\tint nb_high;\n\t}"
      - name: e_subs
        type: event_hdl_sub_list
      - name: conn_src
        type: struct conn_src
      - name: addr
        type: struct sockaddr_storage
      - name: socks4_addr
        type: struct sockaddr_storage
      item_type: struct
      name: server
      pos:
        line_end: 559
        line_start: 338
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: safe
        type: "struct {\n\t\t/* safe data can be safely used from both\n\t\t * sync
          and async handlers\n\t\t * data consistency is guaranteed\n\t\t */\n\t\tchar
          name[64];       /* server name/id */\n\t\tchar proxy_name[64]; /* id of
          proxy the server belongs to */\n\t\tint proxy_uuid;      /* uuid of the
          proxy the server belongs to */\n\t\tint puid;            /* proxy-unique
          server ID */\n\t\tuint32_t rid;        /* server id revision */\n\t\tunsigned
          int flags;  /* server flags */\n\t}"
      - name: unsafe
        type: "struct {\n\t\t/* unsafe data may only be used from sync handlers:\n\t\t
          * in async mode, data consistency cannot be guaranteed\n\t\t * and unsafe
          data may already be stale, thus using\n\t\t * it is highly discouraged because
          it\n\t\t * could lead to undefined behavior (UAF, null dereference...)\n\t\t
          */\n\t\tstruct server *ptr;\t/* server live ptr */\n\t\t/* lock hints */\n\t\tuint8_t
          thread_isolate;\t/* 1 = thread_isolate is on, no locking required */\n\t\tuint8_t
          srv_lock;       /* 1 = srv lock is held */\n\t}"
      item_type: struct
      name: event_hdl_cb_data_server
      pos:
        line_end: 597
        line_start: 562
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: agent
        type: uint8_t
      - name: result
        type: enum chk_result
      - name: duration
        type: long
      - name: reason
        type: "struct {\n\t\tshort status;         /* check status as in check->status
          */\n\t\tshort code;           /* provided with some check statuses */\n\t}"
      - name: health
        type: "struct {\n\t\tint cur;              /* dynamic (= check->health) */\n\t\tint
          rise, fall;       /* config dependent */\n\t}"
      item_type: struct
      name: event_hdl_cb_data_server_checkres
      pos:
        line_end: 612
        line_start: 600
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: server
        type: struct event_hdl_cb_data_server
      - name: safe
        type: "struct {\n\t\tuint8_t type; /* 0 = operational, 1 = administrative
          */\n\t\tenum srv_state old_state, new_state; /* updated by both operational
          and admin changes */\n\t\tuint32_t requeued; /* requeued connections due
          to server state change */\n\t\tunion {\n\t\t\t/* state change cause:\n\t\t\t
          *\n\t\t\t * look for op_st_chg for operational state change,\n\t\t\t * and
          adm_st_chg for administrative state change\n\t\t\t */\n\t\t\tstruct {\n\t\t\t\tenum
          srv_op_st_chg_cause cause;\n\t\t\t\tunion {\n\t\t\t\t\t/* check result is
          provided with\n\t\t\t\t\t * cause == SRV_OP_STCHGC_HEALTH or cause == SRV_OP_STCHGC_AGENT\n\t\t\t\t\t
          */\n\t\t\t\t\tstruct event_hdl_cb_data_server_checkres check;\n\t\t\t\t};\n\t\t\t}
          op_st_chg;\n\t\t\tstruct {\n\t\t\t\tenum srv_adm_st_chg_cause cause;\n\t\t\t}
          adm_st_chg;\n\t\t};\n\t}"
      item_type: struct
      name: event_hdl_cb_data_server_state
      pos:
        line_end: 650
        line_start: 620
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: server
        type: struct event_hdl_cb_data_server
      - name: safe
        type: "struct {\n\t\tenum srv_admin old_admin, new_admin;\n\t\tuint32_t requeued;
          /* requeued connections due to server admin change */\n\t\t/* admin change
          cause */\n\t\tenum srv_adm_st_chg_cause cause;\n\t}"
      item_type: struct
      name: event_hdl_cb_data_server_admin
      pos:
        line_end: 670
        line_start: 658
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: server
        type: struct event_hdl_cb_data_server
      - name: safe
        type: "struct {\n\t\tstruct event_hdl_cb_data_server_checkres res;   /* check
          result snapshot */\n\t}"
      - name: unsafe
        type: "struct {\n\t\tstruct check *ptr;                              /* check
          ptr */\n\t}"
      item_type: struct
      name: event_hdl_cb_data_server_check
      pos:
        line_end: 689
        line_start: 678
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: family
        type: int
      - name: addr
        type: "union {\n\t\tstruct in_addr v4;\n\t\tstruct in6_addr v6;\n\t}"
      - name: port
        type: "struct {\n\t\tunsigned int svc;\n\t\tuint8_t map; /* is a mapped port?
          (boolean) */\n\t}"
      item_type: struct
      name: server_inetaddr
      pos:
        line_end: 704
        line_start: 694
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: by
        type: enum server_inetaddr_updater_by
      - name: dns
        type: uint8_t
      - name: u
        type: "union {\n\t\tstruct {\n\t\t\tunsigned int ns_id; // nameserver id responsible
          for the update\n\t\t} dns_resolver;             // SERVER_INETADDR_UPDATER_DNS_RESOLVER
          specific infos\n\t}"
      item_type: struct
      name: server_inetaddr_updater
      pos:
        line_end: 728
        line_start: 720
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: server
        type: struct event_hdl_cb_data_server
      - name: safe
        type: "struct {\n\t\tstruct server_inetaddr prev;\n\t\tstruct server_inetaddr
          next;\n\t\tstruct server_inetaddr_updater updater;\n\t}"
      item_type: struct
      name: event_hdl_cb_data_server_inetaddr
      pos:
        line_end: 773
        line_start: 762
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: '*line'
        type: char
      - name: '*params[SRV_STATE_FILE_MAX_FIELDS]'
        type: char
      - name: node
        type: struct eb64_node
      item_type: struct
      name: server_state_line
      pos:
        line_end: 782
        line_start: 778
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: '*kw'
        type: char
      - name: (*parse)(char **args, int *cur_arg, struct proxy *px, struct server
          *srv, char **err)
        type: int
      - name: skip
        type: int
      - name: default_ok
        type: int
      - name: dynamic_ok
        type: int
      item_type: struct
      name: srv_kw
      pos:
        line_end: 798
        line_start: 792
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: '*scope'
        type: char
      - name: list
        type: struct list
      - name: kw[VAR_ARRAY]
        type: struct srv_kw
      item_type: struct
      name: srv_kw_list
      pos:
        line_end: 810
        line_start: 806
        source_file: /src/haproxy/include/haproxy/server-t.h
    typedefs: []
    union: []
- function_names:
  - sh_ssl_sess_tree_delete
  - sh_ssl_sess_tree_insert
  - sh_ssl_sess_tree_lookup
  - cert_ignerr_bitfield_get
  - cert_ignerr_bitfield_set
  - cert_ignerr_bitfield_set_all
  - ssl_sock_get_listener
  - ssl_sock_get_conn
  - if
  - ssl_sock_get_stats_counters
  source_file: /src/haproxy/include/haproxy/ssl_sock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UBOUND
  - LBOUND
  - SWAP
  - HA_ANON_STR
  - HA_ANON_ID
  - HA_ANON_PATH
  - HA_ANON_CLI
  - strnlen2
  - ultoa
  - drop_file_name
  - U2A
  - U2H
  - F2A
  - F2H
  - LIM2A
  - cstr
  - is_idchar
  - str2ip
  - csv_enc
  - cut_crlf
  - ltrim
  - rtrim
  - alltrim
  - get_localtime
  - get_gmtime
  - days_since_zero
  - parse_size_err
  - clear_addr
  - is_inet_addr
  - is_addr
  - get_net_port
  - get_host_port
  - get_addr_len
  - set_net_port
  - set_host_port
  - port_is_restricted
  - fddebug
  - _fddebug
  - __fddebug
  - fix_pointer_if_wrap
  - utf8_return_code
  - utf8_return_length
  - rdtsc
  - rdtsc
  - my_backtrace
  - my_realloc2
  - _ha_aligned_alloc
  - _ha_aligned_zalloc
  - _ha_aligned_alloc_safe
  - _ha_aligned_zalloc_safe
  - _ha_aligned_free
  - ha_random64_pair_hashed
  - ha_random32
  - ha_random
  - statistical_prng
  - statistical_prng_range
  - _ptr_hash_reduce
  - _ptr_hash
  - _ptr2_hash
  - _ptr2_hash_arg
  - ptr_hash
  - ptr2_hash
  - ptr2_hash_arg
  - update_char_fingerprint
  - warn_if_lower
  - CASE_ERR
  - errname
  - net_addr_type_is_quic
  source_file: /src/haproxy/include/haproxy/tools.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct frame
      - name: '*ra'
        type: void
      item_type: struct
      name: frame
      pos:
        line_end: 1170
        line_start: 1167
        source_file: /src/haproxy/include/haproxy/tools.h
    typedefs: []
    union: []
- function_names:
  - b_isteq
  - b_isteqi
  - b_isteat
  - b_istput
  - b_putist
  - ist2buf
  source_file: /src/haproxy/include/haproxy/istbuf.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fd_show_flags
  - _
  source_file: /src/haproxy/include/haproxy/fd-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FD_EV_ACTIVE_R_BIT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FD_EV_READY_R_BIT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FD_EV_SHUT_R_BIT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '2'
    - item_type: preproc_def
      name: FD_EV_ACTIVE_W_BIT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '4'
    - item_type: preproc_def
      name: FD_EV_READY_W_BIT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '5'
    - item_type: preproc_def
      name: FD_EV_SHUT_W_BIT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '6'
    - item_type: preproc_def
      name: FD_EV_ERR_RW_BIT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '7'
    - item_type: preproc_def
      name: FD_POLL_IN_BIT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '8'
    - item_type: preproc_def
      name: FD_POLL_PRI_BIT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '9'
    - item_type: preproc_def
      name: FD_POLL_OUT_BIT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '10'
    - item_type: preproc_def
      name: FD_POLL_ERR_BIT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '11'
    - item_type: preproc_def
      name: FD_POLL_HUP_BIT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '12'
    - item_type: preproc_def
      name: FD_LINGER_RISK_BIT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '16  '
    - item_type: preproc_def
      name: FD_CLONED_BIT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '17  '
    - item_type: preproc_def
      name: FD_INITIALIZED_BIT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '18  '
    - item_type: preproc_def
      name: FD_ET_POSSIBLE_BIT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '19  '
    - item_type: preproc_def
      name: FD_EXPORTED_BIT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '20  '
    - item_type: preproc_def
      name: FD_EXCL_SYSCALL_BIT
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '21 '
    - item_type: preproc_def
      name: FD_DISOWN_BIT
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '22  '
    - item_type: preproc_def
      name: FD_MUST_CLOSE_BIT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '23  '
    - item_type: preproc_def
      name: FD_EV_ACTIVE_R
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_EV_ACTIVE_R_BIT)
    - item_type: preproc_def
      name: FD_EV_ACTIVE_W
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_EV_ACTIVE_W_BIT)
    - item_type: preproc_def
      name: FD_EV_ACTIVE_RW
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (FD_EV_ACTIVE_R | FD_EV_ACTIVE_W)
    - item_type: preproc_def
      name: FD_EV_READY_R
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_EV_READY_R_BIT)
    - item_type: preproc_def
      name: FD_EV_READY_W
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_EV_READY_W_BIT)
    - item_type: preproc_def
      name: FD_EV_READY_RW
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (FD_EV_READY_R | FD_EV_READY_W)
    - item_type: preproc_def
      name: FD_EV_SHUT_R
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_EV_SHUT_R_BIT)
    - item_type: preproc_def
      name: FD_EV_SHUT_W
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_EV_SHUT_W_BIT)
    - item_type: preproc_def
      name: FD_EV_SHUT_RW
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (FD_EV_SHUT_R | FD_EV_SHUT_W)
    - item_type: preproc_def
      name: FD_EV_ERR_RW
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_EV_ERR_RW_BIT)
    - item_type: preproc_def
      name: FD_EV_ANY
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (FD_EV_ACTIVE_RW | FD_EV_READY_RW | FD_EV_SHUT_RW | FD_EV_ERR_RW)
    - item_type: preproc_def
      name: FD_POLL_IN
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_POLL_IN_BIT)
    - item_type: preproc_def
      name: FD_POLL_PRI
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_POLL_PRI_BIT)
    - item_type: preproc_def
      name: FD_POLL_OUT
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_POLL_OUT_BIT)
    - item_type: preproc_def
      name: FD_POLL_ERR
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_POLL_ERR_BIT)
    - item_type: preproc_def
      name: FD_POLL_HUP
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_POLL_HUP_BIT)
    - item_type: preproc_def
      name: FD_POLL_UPDT_MASK
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (FD_POLL_IN | FD_POLL_PRI | FD_POLL_OUT)
    - item_type: preproc_def
      name: FD_POLL_ANY_MASK
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (FD_POLL_IN | FD_POLL_PRI | FD_POLL_OUT | FD_POLL_ERR | FD_POLL_HUP)
    - item_type: preproc_def
      name: FD_LINGER_RISK
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_LINGER_RISK_BIT)
    - item_type: preproc_def
      name: FD_CLONED
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_CLONED_BIT)
    - item_type: preproc_def
      name: FD_INITIALIZED
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_INITIALIZED_BIT)
    - item_type: preproc_def
      name: FD_ET_POSSIBLE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_ET_POSSIBLE_BIT)
    - item_type: preproc_def
      name: FD_EXPORTED
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_EXPORTED_BIT)
    - item_type: preproc_def
      name: FD_EXCL_SYSCALL
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_EXCL_SYSCALL_BIT)
    - item_type: preproc_def
      name: FD_DISOWN
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_DISOWN_BIT)
    - item_type: preproc_def
      name: FD_MUST_CLOSE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: (1U << FD_MUST_CLOSE_BIT)
    - item_type: preproc_def
      name: DEAD_FD_MAGIC
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '0xFDDEADFD'
    - item_type: preproc_def
      name: HAP_POLL_F_RDHUP
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '0x00000001                   '
    - item_type: preproc_def
      name: HAP_POLL_F_ERRHUP
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/haproxy/include/haproxy/fd-t.h
      type_or_value: '0x00000002                   '
    structs:
    - fields:
      - name: next
        type: int
      - name: prev
        type: int
      item_type: struct
      name: fdlist_entry
      pos:
        line_end: 169
        line_start: 166
        source_file: /src/haproxy/include/haproxy/fd-t.h
    - fields:
      - name: first
        type: int
      - name: last
        type: int
      item_type: struct
      name: fdlist
      pos:
        line_end: 175
        line_start: 172
        source_file: /src/haproxy/include/haproxy/fd-t.h
    - fields:
      - name: running_mask
        type: unsigned long
      - name: thread_mask
        type: unsigned long
      - name: update_mask
        type: unsigned long
      - name: update
        type: struct fdlist_entry
      - name: (*iocb)(int fd)
        type: void
      - name: '*owner'
        type: void
      - name: state
        type: unsigned int
      - name: refc_tgid
        type: unsigned int
      - name: nb_takeover
        type: unsigned int
      - name: generation
        type: unsigned int
      item_type: struct
      name: fdtab
      pos:
        line_end: 204
        line_start: 186
        source_file: /src/haproxy/include/haproxy/fd-t.h
    - fields:
      - name: poll_recv
        type: unsigned long
      - name: poll_send
        type: unsigned long
      item_type: struct
      name: polled_mask
      pos:
        line_end: 210
        line_start: 207
        source_file: /src/haproxy/include/haproxy/fd-t.h
    - fields:
      - name: '*port_range'
        type: struct port_range
      - name: local_port
        type: int
      item_type: struct
      name: fdinfo
      pos:
        line_end: 216
        line_start: 213
        source_file: /src/haproxy/include/haproxy/fd-t.h
    - fields:
      - name: '*private'
        type: void
      - name: (*clo)(const int fd)
        type: void
      - name: (*poll)(struct poller *p, int exp, int wake)
        type: void
      - name: (*init)(struct poller *p)
        type: int
      - name: (*term)(struct poller *p)
        type: void
      - name: (*test)(struct poller *p)
        type: int
      - name: (*fork)(struct poller *p)
        type: int
      - name: (*fixup_tgid_takeover)(struct poller *p, const int fd, const int old_tid,
          const int old_tgid)
        type: void
      - name: '*name'
        type: char
      - name: flags
        type: unsigned int
      - name: pref
        type: int
      item_type: struct
      name: poller
      pos:
        line_end: 248
        line_start: 236
        source_file: /src/haproxy/include/haproxy/fd-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/cli-t.h
  types:
    enum:
    - enumerators:
      - name: CLI_WAIT_ERR_DONE
      - name: CLI_WAIT_ERR_INTR
      - name: CLI_WAIT_ERR_EXP
      - name: CLI_WAIT_ERR_FAIL
      item_type: enum
      name: cli_wait_err
      pos:
        line_end: 99
        line_start: 94
        source_file: /src/haproxy/include/haproxy/cli-t.h
    - enumerators:
      - name: CLI_WAIT_COND_NONE
      - name: CLI_WAIT_COND_BE_UNUSED
      - name: CLI_WAIT_COND_SRV_UNUSED
      item_type: enum
      name: cli_wait_cond
      pos:
        line_end: 105
        line_start: 101
        source_file: /src/haproxy/include/haproxy/cli-t.h
    preproc_defs:
    - item_type: preproc_def
      name: ACCESS_LVL_NONE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: ACCESS_LVL_USER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: ACCESS_LVL_OPER
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: ACCESS_LVL_ADMIN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: ACCESS_LVL_MASK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: ACCESS_FD_LISTENERS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: ACCESS_MASTER
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0008  '
    - item_type: preproc_def
      name: ACCESS_MASTER_ONLY
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0010  '
    - item_type: preproc_def
      name: ACCESS_EXPERT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0020  '
    - item_type: preproc_def
      name: ACCESS_EXPERIMENTAL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: ACCESS_MCLI_DEBUG
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0080 '
    - item_type: preproc_def
      name: ACCESS_MCLI_SEVERITY_NB
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0100 '
    - item_type: preproc_def
      name: ACCESS_MCLI_SEVERITY_STR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0200 '
    - item_type: preproc_def
      name: APPCTX_CLI_ST1_PAYLOAD
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: APPCTX_CLI_ST1_NOLF
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: APPCTX_CLI_ST1_LASTCMD
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: APPCTX_CLI_ST1_INTER
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '(1 << 3) '
    - item_type: preproc_def
      name: APPCTX_CLI_ST1_PROMPT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '(1 << 4) '
    - item_type: preproc_def
      name: APPCTX_CLI_ST1_TIMED
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '(1 << 5) '
    - item_type: preproc_def
      name: APPCTX_CLI_ST1_YIELD
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '(1 << 6) '
    - item_type: preproc_def
      name: APPCTX_CLI_ST1_DYN_PAYLOAD
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '(1 << 7) '
    - item_type: preproc_def
      name: CLI_PREFIX_KW_NB
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CLI_MAX_MATCHES
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CLI_MAX_HELP_ENTRIES
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '1024'
    structs:
    - fields:
      - name: '*msg'
        type: char
      - name: '*err'
        type: char
      - name: severity
        type: int
      item_type: struct
      name: cli_print_ctx
      pos:
        line_end: 87
        line_start: 83
        source_file: /src/haproxy/include/haproxy/cli-t.h
    - fields:
      - name: start
        type: uint
      - name: cond
        type: enum cli_wait_cond
      - name: error
        type: enum cli_wait_err
      - name: '*args[4]'
        type: char
      - name: '*msg'
        type: char
      item_type: struct
      name: cli_wait_ctx
      pos:
        line_end: 113
        line_start: 107
        source_file: /src/haproxy/include/haproxy/cli-t.h
    - fields:
      - name: next_pid
        type: int
      - name: flags
        type: int
      - name: payload_pat[65]
        type: char
      item_type: struct
      name: pcli_txn
      pos:
        line_end: 120
        line_start: 115
        source_file: /src/haproxy/include/haproxy/cli-t.h
    - fields:
      - name: '*str_kw[CLI_PREFIX_KW_NB]'
        type: char
      - name: '*usage'
        type: char
      - name: (*parse)(char **args, char *payload, struct appctx *appctx, void *private)
        type: int
      - name: (*io_handler)(struct appctx *appctx)
        type: int
      - name: (*io_release)(struct appctx *appctx)
        type: void
      - name: '*private'
        type: void
      - name: level
        type: int
      - name: exec_ctx
        type: struct thread_exec_ctx
      item_type: struct
      name: cli_kw
      pos:
        line_end: 133
        line_start: 122
        source_file: /src/haproxy/include/haproxy/cli-t.h
    - fields:
      - name: list
        type: struct list
      - name: kw[VAR_ARRAY]
        type: struct cli_kw
      item_type: struct
      name: cli_kw_list
      pos:
        line_end: 138
        line_start: 135
        source_file: /src/haproxy/include/haproxy/cli-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/stats-t.h
  types:
    enum:
    - enumerators:
      - name: STAT_STATE_INIT
        value: '0'
      - name: STAT_STATE_END
      - name: STAT_STATE_LIST
      - name: STAT_STATE_INFO
      - name: STAT_STATE_HEAD
      - name: STAT_STATE_FIN
      item_type: enum
      name: stat_state
      pos:
        line_end: 119
        line_start: 112
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: STAT_ST_INIT
        value: '0'
      - name: STAT_ST_HEAD
      - name: STAT_ST_LIST
      - name: STAT_ST_FIN
      - name: STAT_ST_INFO
      - name: STAT_ST_END
      item_type: enum
      name: obsolete_stat_state
      pos:
        line_end: 131
        line_start: 124
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: FF_EMPTY
        value: '0x00000000'
      - name: FF_S64
        value: '0x00000003'
      - name: FF_U32
        value: '0x00000002'
      - name: FF_S32
        value: '0x00000001'
      - name: FF_U64
        value: '0x00000004'
      - name: FF_STR
        value: '0x00000005'
      - name: FF_FLT
        value: '0x00000006'
      - name: FF_MASK
        value: '0x000000FF'
      item_type: enum
      name: field_format
      pos:
        line_end: 220
        line_start: 211
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: FO_METRIC
        value: '0x00000000'
      - name: FO_PRODUCT
        value: '0x00000400'
      - name: FO_CONFIG
        value: '0x00000300'
      - name: FO_KEY
        value: '0x00000200'
      - name: FO_STATUS
        value: '0x00000100'
      - name: FO_MASK
        value: '0x0000FF00'
      item_type: enum
      name: field_origin
      pos:
        line_end: 229
        line_start: 222
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: FN_GAUGE
        value: '0x00000000'
      - name: FN_RATE
        value: '0x00040000'
      - name: FN_MAX
        value: '0x00030000'
      - name: FN_MIN
        value: '0x00020000'
      - name: FN_LIMIT
        value: '0x00010000'
      - name: FN_COUNTER
        value: '0x00050000'
      - name: FN_DURATION
        value: '0x00060000'
      - name: FN_AGE
        value: '0x00070000'
      - name: FN_TIME
        value: '0x00080000'
      - name: FN_NAME
        value: '0x00090000'
      - name: FN_OUTPUT
        value: '0x000A0000'
      - name: FN_AVG
        value: '0x000B0000'
      - name: FN_MASK
        value: '0x00FF0000'
      item_type: enum
      name: field_nature
      pos:
        line_end: 245
        line_start: 231
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: FS_PROCESS
        value: '0x00000000'
      - name: FS_MASK
        value: '0xFF000000'
      - name: FS_CLUSTER
        value: '0x03000000'
      - name: FS_SYSTEM
        value: '0x02000000'
      - name: FS_SERVICE
        value: '0x01000000'
      item_type: enum
      name: field_scope
      pos:
        line_end: 253
        line_start: 247
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: ST_I_INF_UPTIME_SEC
      - name: ST_I_INF_PIPES_USED
      - name: ST_I_INF_SSL_CACHE_LOOKUPS
      - name: ST_I_INF_START_TIME_SEC
      - name: ST_I_INF_UNSTOPPABLE_JOBS
      - name: ST_I_INF_MAXCONN
      - name: ST_I_INF_MAX_SESS_RATE
      - name: ST_I_INF_TOTAL_BYTES_OUT
      - name: ST_I_INF_ZLIB_MEM_USAGE
      - name: ST_I_INF_CUM_STRM
      - name: ST_I_INF_POOL_ALLOC_BYTES
      - name: ST_I_INF_PID
      - name: ST_I_INF_CUM_SSL_CONNS
      - name: ST_I_INF_SSL_BACKEND_KEY_RATE
      - name: ST_I_INF_STOPPING
      - name: ST_I_INF_NICED_TASKS
      - name: ST_I_INF_COMPRESS_BPS_OUT
      - name: ST_I_INF_BUSY_POLLING
      - name: ST_I_INF_ULIMIT_N
      - name: ST_I_INF_SESS_RATE
      - name: ST_I_INF_NBPROC
      - name: ST_I_INF_MAX_SSL_CONNS
      - name: ST_I_INF_SSL_FRONTEND_MAX_KEY_RATE
      - name: ST_I_INF_NODE
      - name: ST_I_INF_BUILD_INFO
      - name: ST_I_INF_NAME
      - name: ST_I_INF_POOL_USED_MB
      - name: ST_I_INF_CONN_RATE_LIMIT
      - name: ST_I_INF_CONNECTED_PEERS
      - name: ST_I_INF_MAXCONN_REACHED
      - name: ST_I_INF_MAX
      - name: ST_I_INF_RUN_QUEUE
      - name: ST_I_INF_RELEASE_DATE
      - name: ST_I_INF_CUM_CONN
      - name: ST_I_INF_MAX_SSL_RATE
      - name: ST_I_INF_DEBUG_COMMANDS_ISSUED
      - name: ST_I_INF_PATTERNS_FREED
      - name: ST_I_INF_SSL_CACHE_MISSES
      - name: ST_I_INF_LISTENERS
      - name: ST_I_INF_TAINTED
      - name: ST_I_INF_MEMMAX_MB
      - name: ST_I_INF_PIPES_FREE
      - name: ST_I_INF_HARD_MAXCONN
      - name: ST_I_INF_SSL_RATE
      - name: ST_I_INF_MAX_ZLIB_MEM_USAGE
      - name: ST_I_INF_TOTAL_SPLICED_BYTES_OUT
      - name: ST_I_INF_WARN_BLOCKED
      - name: ST_I_INF_UPTIME
      - name: ST_I_INF_MAXPIPES
      - name: ST_I_INF_SSL_BACKEND_MAX_KEY_RATE
      - name: ST_I_INF_JOBS
      - name: ST_I_INF_POOL_USED_BYTES
      - name: ST_I_INF_COMPRESS_BPS_RATE_LIM
      - name: ST_I_INF_FAILED_RESOLUTIONS
      - name: ST_I_INF_CURR_STRM
      - name: ST_I_INF_MAXSOCK
      - name: ST_I_INF_SESS_RATE_LIMIT
      - name: ST_I_INF_PROCESS_NUM
      - name: ST_I_INF_CURR_SSL_CONNS
      - name: ST_I_INF_SSL_FRONTEND_SESSION_REUSE_PCT
      - name: ST_I_INF_DESCRIPTION
      - name: ST_I_INF_MEMMAX_BYTES
      - name: ST_I_INF_POOL_FAILED
      - name: ST_I_INF_MAX_CONN_RATE
      - name: ST_I_INF_DROPPED_LOGS
      - name: ST_I_INF_BOOTTIME_MS
      - name: ST_I_INF_IDLE_PCT
      - name: ST_I_INF_NBTHREAD
      - name: ST_I_INF_CUM_REQ
      - name: ST_I_INF_SSL_FRONTEND_KEY_RATE
      - name: ST_I_INF_CUM_LOG_MSGS
      - name: ST_I_INF_NBTGROUPS
      - name: ST_I_INF_WARNINGS
      - name: ST_I_INF_ACTIVE_PEERS
      - name: ST_I_INF_POOL_ALLOC_MB
      - name: ST_I_INF_CONN_RATE
      - name: ST_I_INF_COMPRESS_BPS_IN
      - name: ST_I_INF_BYTES_OUT_RATE
      - name: ST_I_INF_TASKS
      - name: ST_I_INF_VERSION
      - name: ST_I_INF_CURR_CONN
      - name: ST_I_INF_SSL_RATE_LIMIT
      - name: ST_I_INF_PATTERNS_ADDED
      item_type: enum
      name: stat_idx_info
      pos:
        line_end: 346
        line_start: 260
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: ST_I_PX_SLIM
      - name: ST_I_PX_CHKDOWN
      - name: ST_I_PX_CHECK_DURATION
      - name: ST_I_PX_COMP_RSP
      - name: ST_I_PX_CHECK_FALL
      - name: ST_I_PX_CONNECT
      - name: ST_I_PX_AGG_SRV_STATUS
      - name: ST_I_PX_REQ_IN
      - name: ST_I_PX_ECON
      - name: ST_I_PX_THROTTLE
      - name: ST_I_PX_MODE
      - name: ST_I_PX_HANAFAIL
      - name: ST_I_PX_CTIME
      - name: ST_I_PX_CT_MAX
      - name: ST_I_PX_H3SESS
      - name: ST_I_PX_SCUR
      - name: ST_I_PX_BCK
      - name: ST_I_PX_CHECK_STATUS
      - name: ST_I_PX_COMP_OUT
      - name: ST_I_PX_AGENT_DESC
      - name: ST_I_PX_DSES
      - name: ST_I_PX_NEED_CONN_EST
      - name: ST_I_PX_HRSP_5XX
      - name: ST_I_PX_LAST_AGT
      - name: ST_I_PX_ADDR
      - name: ST_I_PX_PXNAME
      - name: ST_I_PX_DRESP
      - name: ST_I_PX_IID
      - name: ST_I_PX_SRV_ILIM
      - name: ST_I_PX_H1SESS
      - name: ST_I_PX_QCUR
      - name: ST_I_PX_WEIGHT
      - name: ST_I_PX_RATE_LIM
      - name: ST_I_PX_SRV_ABRT
      - name: ST_I_PX_AGENT_DURATION
      - name: ST_I_PX_INTERCEPTED
      - name: ST_I_PX_SAFE_CONN_CUR
      - name: ST_I_PX_PROTO
      - name: ST_I_PX_BOUT
      - name: ST_I_PX_QLIMIT
      - name: ST_I_PX_HRSP_3XX
      - name: ST_I_PX_AGENT_FALL
      - name: ST_I_PX_CACHE_HITS
      - name: ST_I_PX_SRID
      - name: ST_I_PX_RES_OUT
      - name: ST_I_PX_REQ_TOT
      - name: ST_I_PX_AGENT_STATUS
      - name: ST_I_PX_WREDIS
      - name: ST_I_PX_TYPE
      - name: ST_I_PX_CONN_RATE_MAX
      - name: ST_I_PX_EINT
      - name: ST_I_PX_H2REQ
      - name: ST_I_PX_HRSP_1XX
      - name: ST_I_PX_LASTSESS
      - name: ST_I_PX_CHECK_HEALTH
      - name: ST_I_PX_STOT
      - name: ST_I_PX_LASTCHG
      - name: ST_I_PX_REUSE
      - name: ST_I_PX_AGG_SRV_CHECK_STATUS
      - name: ST_I_PX_REQ_OUT
      - name: ST_I_PX_ERESP
      - name: ST_I_PX_LBTOT
      - name: ST_I_PX_REQ_RATE
      - name: ST_I_PX_RTIME
      - name: ST_I_PX_ALGO
      - name: ST_I_PX_RT_MAX
      - name: ST_I_PX_REQ_OTHER
      - name: ST_I_PX_SMAX
      - name: ST_I_PX_CHKFAIL
      - name: ST_I_PX_CHECK_CODE
      - name: ST_I_PX_COMP_BYP
      - name: ST_I_PX_CHECK_RISE
      - name: ST_I_PX_WREW
      - name: ST_I_PX_UWEIGHT
      - name: ST_I_PX_MAX
      - name: ST_I_PX_HRSP_OTHER
      - name: ST_I_PX_QTIME
      - name: ST_I_PX_COOKIE
      - name: ST_I_PX_EREQ
      - name: ST_I_PX_SID
      - name: ST_I_PX_QT_MAX
      - name: ST_I_PX_H2SESS
      - name: ST_I_PX_QMAX
      - name: ST_I_PX_ACT
      - name: ST_I_PX_RATE_MAX
      - name: ST_I_PX_COMP_IN
      - name: ST_I_PX_CHECK_DESC
      - name: ST_I_PX_DCON
      - name: ST_I_PX_USED_CONN_CUR
      - name: ST_I_PX_PRIV_IDLE_CUR
      - name: ST_I_PX_DREQ
      - name: ST_I_PX_PID
      - name: ST_I_PX_HRSP_4XX
      - name: ST_I_PX_AGENT_HEALTH
      - name: ST_I_PX_SRV_ICUR
      - name: ST_I_PX_SESS_OTHER
      - name: ST_I_PX_CLI_ABRT
      - name: ST_I_PX_AGENT_CODE
      - name: ST_I_PX_SVNAME
      - name: ST_I_PX_STATUS
      - name: ST_I_PX_RATE
      - name: ST_I_PX_CONN_TOT
      - name: ST_I_PX_IDLE_CONN_CUR
      - name: ST_I_PX_H3REQ
      - name: ST_I_PX_AGENT_RISE
      - name: ST_I_PX_BIN
      - name: ST_I_PX_DOWNTIME
      - name: ST_I_PX_HRSP_2XX
      - name: ST_I_PX_LAST_CHK
      - name: ST_I_PX_CACHE_LOOKUPS
      - name: ST_I_PX_AGG_CHECK_STATUS
      - name: ST_I_PX_RES_IN
      - name: ST_I_PX_REQ_RATE_MAX
      - name: ST_I_PX_TTIME
      - name: ST_I_PX_WRETR
      - name: ST_I_PX_TRACKED
      - name: ST_I_PX_CONN_RATE
      - name: ST_I_PX_TT_MAX
      - name: ST_I_PX_H1REQ
      item_type: enum
      name: stat_idx_px
      pos:
        line_end: 499
        line_start: 378
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: STATS_DOMAIN_PROXY
        value: '0'
      - name: STATS_DOMAIN_COUNT
      - name: STATS_DOMAIN_RESOLVERS
      - name: STATS_DOMAIN_MASK
        value: '0xff'
      item_type: enum
      name: stats_domain
      pos:
        line_end: 544
        line_start: 538
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: STATS_PX_CAP_FE
        value: '0x01'
      - name: STATS_PX_CAP_BE
        value: '0x02'
      - name: STATS_PX_CAP_SRV
        value: '0x04'
      - name: STATS_PX_CAP_LI
        value: '0x08'
      - name: STATS_PX_CAP_MASK
        value: '0xff'
      item_type: enum
      name: stats_domain_px_cap
      pos:
        line_end: 554
        line_start: 547
        source_file: /src/haproxy/include/haproxy/stats-t.h
    preproc_defs:
    - item_type: preproc_def
      name: STAT_F_FMT_HTML
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000001    '
    - item_type: preproc_def
      name: STAT_F_FMT_TYPED
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000002    '
    - item_type: preproc_def
      name: STAT_F_FMT_JSON
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000004    '
    - item_type: preproc_def
      name: STAT_F_FMT_FILE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000008    '
    - item_type: preproc_def
      name: STAT_F_NO_REFRESH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000010    '
    - item_type: preproc_def
      name: STAT_F_ADMIN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000020    '
    - item_type: preproc_def
      name: STAT_F_CHUNKED
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000040    '
    - item_type: preproc_def
      name: STAT_F_JSON_SCHM
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000080    '
    - item_type: preproc_def
      name: STAT_F_SHOWVER
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000100    '
    - item_type: preproc_def
      name: STAT_F_SHNODE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000200    '
    - item_type: preproc_def
      name: STAT_F_SHDESC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000400    '
    - item_type: preproc_def
      name: STAT_F_SHLGNDS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000800    '
    - item_type: preproc_def
      name: STAT_F_SHOW_FDESC
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00001000    '
    - item_type: preproc_def
      name: STAT_F_SHMODULES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00002000    '
    - item_type: preproc_def
      name: STAT_F_HIDE_MAINT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00004000    '
    - item_type: preproc_def
      name: STAT_F_CONVDONE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00008000    '
    - item_type: preproc_def
      name: STAT_F_USE_FLOAT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00010000    '
    - item_type: preproc_def
      name: STAT_F_HIDE_DOWN
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: "0x00020000\t"
    - item_type: preproc_def
      name: STAT_F_BOUND
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00800000    '
    - item_type: preproc_def
      name: STAT_F_STARTED
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x01000000    '
    - item_type: preproc_def
      name: STAT_F_FMT_MASK
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x0000000f'
    - item_type: preproc_def
      name: STATS_TYPE_FE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STATS_TYPE_BE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STATS_TYPE_SV
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '2'
    - item_type: preproc_def
      name: STATS_TYPE_SO
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '3'
    - item_type: preproc_def
      name: STATS_DOMAIN
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '(0)               '
    - item_type: preproc_def
      name: STATS_PX_CAP
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '(8)               '
    - item_type: preproc_def
      name: STAT_COL_FL_NONE
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: STAT_COL_FL_GENERIC
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x01        '
    - item_type: preproc_def
      name: STAT_COL_FL_SHARED
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x02        '
    - item_type: preproc_def
      name: STATS_PX_CAP_LFBS
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: (STATS_PX_CAP_MASK)
    - item_type: preproc_def
      name: STATS_PX_CAP_LFB_
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: (STATS_PX_CAP_FE|STATS_PX_CAP_BE|STATS_PX_CAP_LI)
    - item_type: preproc_def
      name: STATS_PX_CAP_LF__
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: (STATS_PX_CAP_FE|STATS_PX_CAP_LI)
    - item_type: preproc_def
      name: STATS_PX_CAP__FBS
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: (STATS_PX_CAP_FE|STATS_PX_CAP_BE|STATS_PX_CAP_SRV)
    - item_type: preproc_def
      name: STATS_PX_CAP__FB_
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: (STATS_PX_CAP_FE|STATS_PX_CAP_BE)
    - item_type: preproc_def
      name: STATS_PX_CAP__F__
      pos:
        line_end: 563
        line_start: 562
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: (STATS_PX_CAP_FE)
    - item_type: preproc_def
      name: STATS_PX_CAP___BS
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: (STATS_PX_CAP_BE|STATS_PX_CAP_SRV)
    - item_type: preproc_def
      name: STATS_PX_CAP____S
      pos:
        line_end: 565
        line_start: 564
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: (STATS_PX_CAP_SRV)
    - item_type: preproc_def
      name: STATS_PX_CAP___B_
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: (STATS_PX_CAP_BE)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*desc'
        type: char
      - name: '*alt_name'
        type: char
      - name: type
        type: uint32_t
      - name: cap
        type: uint8_t
      - name: flags
        type: uint16_t
      - name: metric
        type: "struct {\n\t\tint offset[2];    /* offset in counters */\n\t}"
      item_type: struct
      name: stat_col
      pos:
        line_end: 368
        line_start: 354
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - fields:
      - name: '*col'
        type: struct stat_col
      - name: name
        type: struct ebmb_node
      item_type: struct
      name: stcol_node
      pos:
        line_end: 505
        line_start: 502
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - fields:
      - name: type
        type: uint32_t
      - name: u
        type: "union {\n\t\tint32_t     s32; /* FF_S32 */\n\t\tuint32_t    u32; /*
          FF_U32 */\n\t\tint64_t     s64; /* FF_S64 */\n\t\tuint64_t    u64; /* FF_U64
          */\n\t\tdouble      flt; /* FF_FLT */\n\t\tconst char *str; /* FF_STR */\n\t}"
      item_type: struct
      name: field
      pos:
        line_end: 517
        line_start: 507
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*name'
        type: char
      - name: (*fill_stats)(struct stats_module *, struct extra_counters *, struct
          field *, unsigned int *)
        type: int
      - name: '*stats'
        type: struct stat_col
      - name: '*counters'
        type: void
      - name: counters_off[COUNTERS_OFF_END]
        type: size_t
      - name: stats_count
        type: size_t
      - name: counters_size
        type: size_t
      - name: domain_flags
        type: uint32_t
      - name: clearable
        type: char
      item_type: struct
      name: stats_module
      pos:
        line_end: 535
        line_start: 520
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - fields:
      - name: '*http_px'
        type: struct proxy
      - name: '*obj1'
        type: void
      - name: '*obj2'
        type: void
      - name: domain
        type: uint32_t
      - name: scope_str
        type: int
      - name: scope_len
        type: int
      - name: field
        type: int
      - name: px_st
        type: int
      - name: flags
        type: unsigned int
      - name: iid
        type: int
      - name: st_code
        type: int
      - name: chunk
        type: struct buffer
      - name: px_watch
        type: struct watcher
      - name: srv_watch
        type: struct watcher
      - name: state
        type: enum stat_state
      item_type: struct
      name: show_stat_ctx
      pos:
        line_end: 584
        line_start: 568
        source_file: /src/haproxy/include/haproxy/stats-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ssl_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_ack-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_MAX_ACK_RANGES
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/include/haproxy/quic_ack-t.h
      type_or_value: '32'
    structs:
    - fields:
      - name: root
        type: struct eb_root
      - name: sz
        type: size_t
      - name: enc_sz
        type: size_t
      item_type: struct
      name: quic_arngs
      pos:
        line_end: 30
        line_start: 23
        source_file: /src/haproxy/include/haproxy/quic_ack-t.h
    - fields:
      - name: first
        type: int64_t
      - name: last
        type: int64_t
      item_type: struct
      name: quic_arng
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/haproxy/include/haproxy/quic_ack-t.h
    - fields:
      - name: first
        type: struct eb64_node
      - name: last
        type: uint64_t
      item_type: struct
      name: quic_arng_node
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/haproxy/include/haproxy/quic_ack-t.h
    typedefs: []
    union: []
- function_names:
  - h2_ft_bit
  - h2_ft_str
  - h2_err_str
  - h2_frame_check
  - h2_str_to_phdr
  - h2_phdr_to_ist
  - h2_phdr_to_str
  source_file: /src/haproxy/include/haproxy/h2.h
  types:
    enum:
    - enumerators:
      - name: H2_FT_DATA
        value: '0x00'
      - name: H2_FT_RST_STREAM
        value: '0x03'
      - name: H2_FT_PRIORITY
        value: '0x02'
      - name: H2_FT_HEADERS
        value: '0x01'
      - name: H2_FT_SETTINGS
        value: '0x04'
      - name: H2_FT_PUSH_PROMISE
        value: '0x05'
      - name: H2_FT_PING
        value: '0x06'
      - name: H2_FT_GOAWAY
        value: '0x07'
      - name: H2_FT_WINDOW_UPDATE
        value: '0x08'
      - name: H2_FT_CONTINUATION
        value: '0x09'
      - name: H2_FT_ENTRIES
      item_type: enum
      name: h2_ft
      pos:
        line_end: 83
        line_start: 71
        source_file: /src/haproxy/include/haproxy/h2.h
    - enumerators:
      - name: H2_ERR_NO_ERROR
        value: '0x0'
      - name: H2_ERR_FLOW_CONTROL_ERROR
        value: '0x3'
      - name: H2_ERR_INTERNAL_ERROR
        value: '0x2'
      - name: H2_ERR_PROTOCOL_ERROR
        value: '0x1'
      - name: H2_ERR_SETTINGS_TIMEOUT
        value: '0x4'
      - name: H2_ERR_STREAM_CLOSED
        value: '0x5'
      - name: H2_ERR_FRAME_SIZE_ERROR
        value: '0x6'
      - name: H2_ERR_REFUSED_STREAM
        value: '0x7'
      - name: H2_ERR_CANCEL
        value: '0x8'
      - name: H2_ERR_COMPRESSION_ERROR
        value: '0x9'
      - name: H2_ERR_ENHANCE_YOUR_CALM
        value: '0xb'
      - name: H2_ERR_HTTP_1_1_REQUIRED
        value: '0xd'
      - name: H2_ERR_INADEQUATE_SECURITY
        value: '0xc'
      - name: H2_ERR_CONNECT_ERROR
        value: '0xa'
      item_type: enum
      name: h2_err
      pos:
        line_end: 156
        line_start: 141
        source_file: /src/haproxy/include/haproxy/h2.h
    preproc_defs:
    - item_type: preproc_def
      name: H2_F_DATA_END_STREAM
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: H2_F_DATA_PADDED
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: H2_F_HEADERS_END_STREAM
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: H2_F_HEADERS_END_HEADERS
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: H2_F_HEADERS_PADDED
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: H2_F_HEADERS_PRIORITY
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: H2_F_SETTINGS_ACK
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: H2_F_PUSH_PROMISE_END_HEADERS
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: H2_F_PUSH_PROMISE_PADDED
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: H2_F_PING_ACK
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: H2_F_PADDED
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: H2_SETTINGS_HEADER_TABLE_SIZE
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: H2_SETTINGS_ENABLE_PUSH
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: H2_SETTINGS_MAX_CONCURRENT_STREAMS
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: H2_SETTINGS_INITIAL_WINDOW_SIZE
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: H2_SETTINGS_MAX_FRAME_SIZE
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x0005'
    - item_type: preproc_def
      name: H2_SETTINGS_MAX_HEADER_LIST_SIZE
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x0006'
    - item_type: preproc_def
      name: H2_SETTINGS_ENABLE_CONNECT_PROTOCOL
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: H2_CONN_PREFACE
      pos:
        line_end: 175
        line_start: 171
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: "\"\\x50\\x52\\x49\\x20\\x2a\\x20\\x48\\x54\"  \\\n\t\"\\x54\\x50\\x2f\\x32\\x2e\\x30\\x0d\\x0a\"
        \ \\\n\t\"\\x0d\\x0a\\x53\\x4d\\x0d\\x0a\\x0d\\x0a\""
    - item_type: preproc_def
      name: H2_MSGF_BODY
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: 0x0001    // a body is present
    - item_type: preproc_def
      name: H2_MSGF_BODY_CL
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: 0x0002    // content-length is present
    - item_type: preproc_def
      name: H2_MSGF_BODY_TUNNEL
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: 0x0004    // a tunnel is in use (CONNECT)
    - item_type: preproc_def
      name: H2_MSGF_RSP_1XX
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: 0x0010    // a 1xx ( != 101) HEADERS frame was received
    - item_type: preproc_def
      name: H2_MSGF_BODYLESS_RSP
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: 0x0020    // response message is known to have no body
    - item_type: preproc_def
      name: H2_MSGF_EXT_CONNECT
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: 0x0040    // Extended CONNECT method from rfc 8441 is in use
    - item_type: preproc_def
      name: H2_MSGF_EXT_CONN_OK
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: 0x0080    // Extended CONNECT is permitted
    - item_type: preproc_def
      name: H2_MAX_STREAM_ID
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: ((1U << 31) - 1)
    - item_type: preproc_def
      name: H2_MAX_FRAME_LEN
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: ((1U << 24) - 1)
    - item_type: preproc_def
      name: H2_DIR_REQ
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2_DIR_RES
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '2'
    - item_type: preproc_def
      name: H2_DIR_BOTH
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '3'
    structs:
    - fields:
      - name: dir
        type: int32_t
      - name: min_id
        type: int32_t
      - name: max_id
        type: int32_t
      - name: min_len
        type: int32_t
      - name: max_len
        type: int32_t
      item_type: struct
      name: h2_frame_definition
      pos:
        line_end: 203
        line_start: 197
        source_file: /src/haproxy/include/haproxy/h2.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/vars-t.h
  types:
    enum:
    - enumerators:
      - name: SCOPE_SESS
        value: '0'
      - name: SCOPE_RES
      - name: SCOPE_REQ
      - name: SCOPE_TXN
      - name: SCOPE_PROC
      - name: SCOPE_CHECK
      item_type: enum
      name: vars_scope
      pos:
        line_end: 48
        line_start: 41
        source_file: /src/haproxy/include/haproxy/vars-t.h
    preproc_defs:
    - item_type: preproc_def
      name: VF_CREATEONLY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000001   // do nothing if the variable already exists
    - item_type: preproc_def
      name: VF_PERMANENT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000002   // variables known to the config parser
    - item_type: preproc_def
      name: VF_COND_IFEXISTS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000004   // only set variable if it already exists
    - item_type: preproc_def
      name: VF_COND_IFNOTEXISTS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000008   // only set variable if it did not exist yet
    - item_type: preproc_def
      name: VF_COND_IFEMPTY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000010   // only set variable if sample is empty
    - item_type: preproc_def
      name: VF_COND_IFNOTEMPTY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000020   // only set variable if sample is not empty
    - item_type: preproc_def
      name: VF_COND_IFSET
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000040   // only set variable if its type is not SMP_TYPE_ANY
    - item_type: preproc_def
      name: VF_COND_IFNOTSET
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000080   // only set variable if its type is ANY
    - item_type: preproc_def
      name: VF_COND_IFGT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000100   // only set variable if its value is greater than
        the sample's
    - item_type: preproc_def
      name: VF_COND_IFLT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000200   // only set variable if its value is less than the
        sample's
    - item_type: preproc_def
      name: VAR_NAME_ROOTS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: '4'
    - item_type: preproc_def
      name: VDF_PARENT_CTX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000001   // Set if the variable is related to the parent
        stream
    - item_type: preproc_def
      name: VDF_NAME_ALLOCATED
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/vars-t.h
      type_or_value: 0x00000002   // Set if name was allocated and must be freed
    structs:
    - fields:
      - name: '*name_root[VAR_NAME_ROOTS]'
        type: struct ceb_root
      - name: scope
        type: enum vars_scope
      - name: size
        type: unsigned int
      item_type: struct
      name: vars
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/haproxy/include/haproxy/vars-t.h
    - fields:
      - name: name_hash
        type: uint64_t
      - name: scope
        type: enum vars_scope
      - name: flags
        type: uint
      - name: '*name'
        type: char
      - name: name_len
        type: size_t
      item_type: struct
      name: var_desc
      pos:
        line_end: 68
        line_start: 62
        source_file: /src/haproxy/include/haproxy/vars-t.h
    - fields:
      - name: name_node
        type: struct ceb_node
      - name: name_hash
        type: uint64_t
      - name: flags
        type: uint
      - name: '*name'
        type: char
      - name: data
        type: struct sample_data
      item_type: struct
      name: var
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/haproxy/include/haproxy/vars-t.h
    typedefs: []
    union: []
- function_names:
  - ring_area
  - ring_allocated_area
  - ring_data
  - ring_size
  - ring_allocated_size
  - ring_head
  - ring_tail
  - ring_dup
  source_file: /src/haproxy/include/haproxy/ring.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_fwlc-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: act
        type: struct eb_root
      - name: bck
        type: struct eb_root
      item_type: struct
      name: lb_fwlc
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/haproxy/include/haproxy/lb_fwlc-t.h
    typedefs: []
    union: []
- function_names:
  - vp_isempty
  - vp_size
  - _vp_head
  - vp_head
  - _vp_addr
  - vp_addr
  - vp_ofs
  - vp_next
  - vp_seek_addr
  - vp_skip
  - vp_getchr
  - vp_getblk_ofs
  - vp_getblk
  - vp_peek_ofs
  - vp_putchr
  - vp_putblk_ofs
  - vp_poke_ofs
  - vp_putblk
  - vp_put_varint_ofs
  - vp_put_varint
  - vp_get_varint_ofs
  - vp_get_varint
  - vp_peek_varint_ofs
  - vp_ring_to_data
  - vp_ring_to_room
  - vp_data_to_ring
  - vp_room_to_ring
  source_file: /src/haproxy/include/haproxy/vecpair.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - h1c_show_flags
  - _
  - h1s_show_flags
  - _
  - h1c_st_to_str
  source_file: /src/haproxy/include/haproxy/mux_h1-t.h
  types:
    enum:
    - enumerators:
      - name: H1_CS_IDLE
      - name: H1_CS_EMBRYONIC
      - name: H1_CS_UPGRADING
      - name: H1_CS_DRAINING
      - name: H1_CS_RUNNING
      - name: H1_CS_CLOSING
      - name: H1_CS_CLOSED
      - name: H1_CS_ENTRIES
      item_type: enum
      name: h1_cs
      pos:
        line_end: 146
        line_start: 137
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
    preproc_defs:
    - item_type: preproc_def
      name: H1C_F_NONE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: H1C_F_OUT_ALLOC
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: H1C_F_OUT_FULL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: H1C_F_OUT_MAYALLOC
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: H1C_F_IN_MAYALLOC
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: H1C_F_IN_ALLOC
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: H1C_F_IN_FULL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: H1C_F_IN_SALLOC
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000040 '
    - item_type: preproc_def
      name: H1C_F_IN_SMAYALLOC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000080 '
    - item_type: preproc_def
      name: H1C_F_EOS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000100 '
    - item_type: preproc_def
      name: H1C_F_ERR_PENDING
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: H1C_F_ERROR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000400 '
    - item_type: preproc_def
      name: H1C_F_SILENT_SHUT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000800 '
    - item_type: preproc_def
      name: H1C_F_ABRT_PENDING
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00001000 '
    - item_type: preproc_def
      name: H1C_F_ABRTED
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00002000 '
    - item_type: preproc_def
      name: H1C_F_WANT_FASTFWD
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00004000 '
    - item_type: preproc_def
      name: H1C_F_WAIT_NEXT_REQ
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00008000 '
    - item_type: preproc_def
      name: H1C_F_UPG_H2C
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: H1C_F_CO_MSG_MORE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00020000 '
    - item_type: preproc_def
      name: H1C_F_CO_STREAMER
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00040000 '
    - item_type: preproc_def
      name: H1C_F_CANT_FASTFWD
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00080000 '
    - item_type: preproc_def
      name: H1C_F_IS_BACK
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x80000000 '
    - item_type: preproc_def
      name: H1S_F_NONE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: H1S_F_RX_BLK
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00100000 '
    - item_type: preproc_def
      name: H1S_F_TX_BLK
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00200000 '
    - item_type: preproc_def
      name: H1S_F_RX_CONGESTED
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: H1S_F_WANT_KAL
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: H1S_F_WANT_TUN
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: H1S_F_WANT_CLO
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: H1S_F_WANT_MSK
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000070'
    - item_type: preproc_def
      name: H1S_F_NOT_FIRST
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000080 '
    - item_type: preproc_def
      name: H1S_F_INTERNAL_ERROR
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: H1S_F_NOT_IMPL_ERROR
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000400 '
    - item_type: preproc_def
      name: H1S_F_PARSING_ERROR
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00000800 '
    - item_type: preproc_def
      name: H1S_F_PROCESSING_ERROR
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00001000 '
    - item_type: preproc_def
      name: H1S_F_DEMUX_ERROR
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: (H1S_F_INTERNAL_ERROR|H1S_F_NOT_IMPL_ERROR|H1S_F_PARSING_ERROR)
    - item_type: preproc_def
      name: H1S_F_MUX_ERROR
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: (H1S_F_INTERNAL_ERROR|H1S_F_PROCESSING_ERROR)
    - item_type: preproc_def
      name: H1S_F_HAVE_SRV_NAME
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00002000 '
    - item_type: preproc_def
      name: H1S_F_HAVE_O_CONN
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00004000 '
    - item_type: preproc_def
      name: H1S_F_HAVE_WS_KEY
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00008000 '
    - item_type: preproc_def
      name: H1S_F_HAVE_CLEN
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: H1S_F_HAVE_CHNK
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00020000 '
    - item_type: preproc_def
      name: H1S_F_BODYLESS_REQ
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00040000 '
    - item_type: preproc_def
      name: H1S_F_BODYLESS_RESP
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/include/haproxy/mux_h1-t.h
      type_or_value: '0x00080000 '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/compression.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/http_htx-t.h
  types:
    enum:
    - enumerators:
      - name: HTTP_ERR_DIRECTIVE_SECTION
        value: '0'
      - name: HTTP_ERR_DIRECTIVE_INLINE
      item_type: enum
      name: http_err_directive
      pos:
        line_end: 102
        line_start: 99
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
    - enumerators:
      - name: HTTP_ERR_IMPORT_NO
        value: '0'
      - name: HTTP_ERR_IMPORT_IMPLICIT
      - name: HTTP_ERR_IMPORT_EXPLICIT
      item_type: enum
      name: http_err_import
      pos:
        line_end: 111
        line_start: 107
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
    preproc_defs:
    - item_type: preproc_def
      name: HTTP_REPLY_EMPTY
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
      type_or_value: '0x00 '
    - item_type: preproc_def
      name: HTTP_REPLY_ERRMSG
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: HTTP_REPLY_ERRFILES
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: HTTP_REPLY_RAW
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
      type_or_value: '0x03 '
    - item_type: preproc_def
      name: HTTP_REPLY_LOGFMT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: HTTP_REPLY_INDIRECT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
      type_or_value: '0x05 '
    structs:
    - fields:
      - name: '*blk'
        type: struct htx_blk
      - name: value
        type: struct ist
      - name: lws_before
        type: uint16_t
      - name: lws_after
        type: uint16_t
      item_type: struct
      name: http_hdr_ctx
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
    - fields:
      - name: name
        type: struct ist
      - name: value
        type: struct lf_expr
      - name: list
        type: struct list
      item_type: struct
      name: http_reply_hdr
      pos:
        line_end: 47
        line_start: 43
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
    - fields:
      - name: type
        type: unsigned char
      - name: status
        type: int
      - name: '*ctype'
        type: char
      - name: hdrs
        type: struct list
      - name: body
        type: "union {\n\t\tstruct lf_expr fmt;           /* A log-format string (type
          = HTTP_REPLY_LOGFMT) */\n\t\tstruct buffer obj;            /* A raw string
          (type = HTTP_REPLY_RAW) */\n\t\tstruct buffer *errmsg;        /* The error
          message to use as response (type = HTTP_REPLY_ERRMSG).\n\t\t\t\t\t       *
          may be NULL, if so rely on the proxy error messages */\n\t\tstruct http_reply
          *reply;     /* The HTTP reply to use as response (type = HTTP_REPLY_INDIRECT)
          */\n\t\tchar *http_errors;            /* The http-errors section to use
          (type = HTTP_REPLY_ERRFILES).\n\t\t\t\t\t       * Should be resolved during
          post-check */\n\t}"
      - name: list
        type: struct list
      item_type: struct
      name: http_reply
      pos:
        line_end: 73
        line_start: 57
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
    - fields:
      - name: msg
        type: struct buffer
      - name: node
        type: struct ebpt_node
      item_type: struct
      name: http_error_msg
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
    - fields:
      - name: '*id'
        type: char
      - name: conf
        type: "struct {\n\t\tchar *file;                   /* file where the section
          appears */\n\t\tint   line;                   /* line where the section
          appears */\n\t}"
      - name: '*replies[HTTP_ERR_SIZE]'
        type: struct http_reply
      - name: list
        type: struct list
      item_type: struct
      name: http_errors
      pos:
        line_end: 93
        line_start: 84
        source_file: /src/haproxy/include/haproxy/http_htx-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/tcp_rules.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/mux_quic_priv.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/pattern-t.h
  types:
    enum:
    - enumerators:
      - name: PAT_NOMATCH
        value: '0'
      - name: PAT_MATCH
        value: '3'
      item_type: enum
      name: pat_match_res
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/haproxy/include/haproxy/pattern-t.h
    preproc_defs:
    - item_type: preproc_def
      name: PAT_REF_MAP
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/pattern-t.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: PAT_REF_ACL
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/pattern-t.h
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: PAT_REF_SMP
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/pattern-t.h
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: PAT_REF_FILE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/pattern-t.h
      type_or_value: '0x08 '
    - item_type: preproc_def
      name: PAT_REF_ID
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/pattern-t.h
      type_or_value: '0x10 '
    structs:
    - fields:
      - name: list
        type: struct list
      - name: '*reference'
        type: char
      - name: '*display'
        type: char
      - name: '*gen_root'
        type: struct ceb_root
      - name: pat
        type: struct list
      - name: flags
        type: unsigned int
      - name: curr_gen
        type: unsigned int
      - name: next_gen
        type: unsigned int
      - name: cached_gen
        type: "struct {\n\t\tstruct pat_ref_gen *data;\n\t\tunsigned int id;\n\t}"
      - name: unique_id
        type: int
      - name: revision
        type: unsigned long long
      - name: entry_cnt
        type: unsigned long long
      - name: e_subs
        type: event_hdl_sub_list
      item_type: struct
      name: pat_ref
      pos:
        line_end: 125
        line_start: 105
        source_file: /src/haproxy/include/haproxy/pattern-t.h
    - fields:
      - name: head
        type: struct list
      - name: '*elt_root'
        type: struct ceb_root
      - name: gen_node
        type: struct ceb_node
      - name: gen_id
        type: unsigned int
      item_type: struct
      name: pat_ref_gen
      pos:
        line_end: 135
        line_start: 130
        source_file: /src/haproxy/include/haproxy/pattern-t.h
    - fields:
      - name: list
        type: struct list
      - name: back_refs
        type: struct list
      - name: '*list_head'
        type: void
      - name: '*tree_head'
        type: void
      - name: '*sample'
        type: char
      - name: gen_id
        type: unsigned int
      - name: line
        type: int
      - name: node
        type: struct ceb_node
      - name: pattern[0]
        type: char
      item_type: struct
      name: pat_ref_elt
      pos:
        line_end: 151
        line_start: 141
        source_file: /src/haproxy/include/haproxy/pattern-t.h
    - fields:
      - name: '*from_ref'
        type: void
      - name: '*data'
        type: struct sample_data
      - name: '*ref'
        type: struct pat_ref_elt
      - name: '*expr'
        type: struct pattern_expr
      - name: node
        type: struct ebmb_node
      item_type: struct
      name: pattern_tree
      pos:
        line_end: 162
        line_start: 156
        source_file: /src/haproxy/include/haproxy/pattern-t.h
    - fields:
      - name: type
        type: int
      - name: val
        type: "union {\n\t\tint i;                          /* integer value */\n\t\tstruct
          {\n\t\t\tsigned long long min, max;\n\t\t\tunsigned int min_set:1;\n\t\t\tunsigned
          int max_set:1;\n\t\t} range; /* integer range */\n\t\tstruct {\n\t\t\tstruct
          in_addr addr;\n\t\t\tstruct in_addr mask;\n\t\t} ipv4;                         /*
          IPv4 address */\n\t\tstruct {\n\t\t\tstruct in6_addr addr;\n\t\t\tunsigned
          char mask;     /* number of bits */\n\t\t} ipv6;                         /*
          IPv6 address/mask */\n\t}"
      - name: ptr
        type: "union {\n\t\tvoid *ptr;              /* any data */\n\t\tchar *str;
          \             /* any string  */\n\t\tstruct my_regex *reg;   /* a compiled
          regex */\n\t}"
      - name: len
        type: int
      - name: sflags
        type: int
      - name: '*data'
        type: struct sample_data
      - name: '*ref'
        type: struct pat_ref_elt
      item_type: struct
      name: pattern
      pos:
        line_end: 199
        line_start: 171
        source_file: /src/haproxy/include/haproxy/pattern-t.h
    - fields:
      - name: '*from_ref'
        type: void
      - name: list
        type: struct list
      - name: pat
        type: struct pattern
      - name: '*expr'
        type: struct pattern_expr
      item_type: struct
      name: pattern_list
      pos:
        line_end: 207
        line_start: 202
        source_file: /src/haproxy/include/haproxy/pattern-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*ref'
        type: struct pat_ref
      - name: '*pat_head'
        type: struct pattern_head
      - name: patterns
        type: struct list
      - name: pattern_tree
        type: struct eb_root
      - name: pattern_tree_2
        type: struct eb_root
      - name: mflags
        type: int
      - name: refcount
        type: uint32_t
      item_type: struct
      name: pattern_expr
      pos:
        line_end: 228
        line_start: 214
        source_file: /src/haproxy/include/haproxy/pattern-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*expr'
        type: struct pattern_expr
      item_type: struct
      name: pattern_expr_list
      pos:
        line_end: 237
        line_start: 234
        source_file: /src/haproxy/include/haproxy/pattern-t.h
    - fields:
      - name: (*parse)(const char *text, struct pattern *pattern, int flags, char
          **err)
        type: int
      - name: (*parse_smp)(const char *text, struct sample_data *data)
        type: int
      - name: (*index)(struct pattern_expr *, struct pattern *, char **)
        type: int
      - name: (*prune)(struct pattern_expr *)
        type: void
      - name: '*(*match)(struct sample *, struct pattern_expr *, int)'
        type: struct pattern
      - name: expect_type
        type: int
      - name: head
        type: struct list
      item_type: struct
      name: pattern_head
      pos:
        line_end: 251
        line_start: 242
        source_file: /src/haproxy/include/haproxy/pattern-t.h
    typedefs: []
    union: []
- function_names:
  - xref_create
  - xref_get_peer_and_lock
  - xref_unlock
  - xref_disconnect
  source_file: /src/haproxy/include/haproxy/xref.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - task_show_state
  - _
  source_file: /src/haproxy/include/haproxy/task-t.h
  types:
    enum:
    - enumerators:
      - name: SUB_RETRY_RECV
        value: '0x00000001'
      - name: SUB_RETRY_SEND
        value: '0x00000002'
      item_type: enum
      name: sub_event_type
      pos:
        line_end: 180
        line_start: 177
        source_file: /src/haproxy/include/haproxy/task-t.h
    preproc_defs:
    - item_type: preproc_def
      name: TASK_SLEEPING
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00000000  '
    - item_type: preproc_def
      name: TASK_RUNNING
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: TASK_QUEUED
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: TASK_SELF_WAKING
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: TASK_KILLED
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: TASK_HEAVY
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: TASK_WOKEN_INIT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: TASK_WOKEN_TIMER
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: TASK_WOKEN_IO
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: TASK_WOKEN_SIGNAL
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: TASK_WOKEN_MSG
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: TASK_WOKEN_RES
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00002000  '
    - item_type: preproc_def
      name: TASK_WOKEN_OTHER
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00004000  '
    - item_type: preproc_def
      name: TASK_WOKEN_ANY
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: "(TASK_WOKEN_OTHER|TASK_WOKEN_INIT|TASK_WOKEN_TIMER| \\\n                           TASK_WOKEN_IO|TASK_WOKEN_SIGNAL|TASK_WOKEN_MSG|
        \\\n                           TASK_WOKEN_RES)"
    - item_type: preproc_def
      name: TASK_F_TASKLET
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00008000  '
    - item_type: preproc_def
      name: TASK_F_USR1
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00010000  '
    - item_type: preproc_def
      name: TASK_F_UEVT1
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00020000  '
    - item_type: preproc_def
      name: TASK_F_UEVT2
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00040000  '
    - item_type: preproc_def
      name: TASK_F_WANTS_TIME
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00080000  '
    - item_type: preproc_def
      name: TASK_F_UEVT3
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: '0x00100000  '
    - item_type: preproc_def
      name: TASK_PERSISTENT
      pos:
        line_end: 69
        line_start: 66
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: "(TASK_SELF_WAKING | TASK_KILLED | \\\n                           TASK_HEAVY
        | TASK_F_TASKLET | TASK_F_USR1 | \\\n                           TASK_F_WANTS_TIME)"
    - item_type: preproc_def
      name: TASK_DEBUG_STORAGE
      pos:
        line_end: 119
        line_start: 115
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: "struct {                             \\\n\t\tconst struct ha_caller
        *prev_caller; \\\n\t} debug"
    - item_type: preproc_def
      name: TASK_COMMON
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: 'unsigned int state; '
    structs:
    - fields:
      - name: purge_me
        type: struct list
      - name: wake_me
        type: struct mt_list
      - name: '*task'
        type: struct task
      item_type: struct
      name: notification
      pos:
        line_end: 111
        line_start: 105
        source_file: /src/haproxy/include/haproxy/task-t.h
    - fields:
      - name: rq
        type: struct eb32_node
      - name: wq
        type: struct eb32_node
      item_type: struct
      name: task
      pos:
        line_end: 161
        line_start: 152
        source_file: /src/haproxy/include/haproxy/task-t.h
    - fields:
      - name: list
        type: struct list
      item_type: struct
      name: tasklet
      pos:
        line_end: 172
        line_start: 164
        source_file: /src/haproxy/include/haproxy/task-t.h
    - fields:
      - name: '*tasklet'
        type: struct tasklet
      - name: events
        type: int
      item_type: struct
      name: wait_event
      pos:
        line_end: 190
        line_start: 187
        source_file: /src/haproxy/include/haproxy/task-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/check-t.h
  types:
    enum:
    - enumerators:
      - name: CHK_RES_UNKNOWN
        value: '0'
      - name: CHK_RES_CONDPASS
      - name: CHK_RES_NEUTRAL
      - name: CHK_RES_PASSED
      - name: CHK_RES_FAILED
      item_type: enum
      name: chk_result
      pos:
        line_end: 46
        line_start: 40
        source_file: /src/haproxy/include/haproxy/check-t.h
    - enumerators:
      - name: HCHK_STATUS_UNKNOWN
        value: '0'
      - name: HCHK_STATUS_SOCKERR
      - name: HCHK_STATUS_L6TOUT
      - name: HCHK_STATUS_L7OKD
      - name: HCHK_STATUS_L7RSP
      - name: HCHK_STATUS_PROCTOUT
      - name: HCHK_STATUS_START
      - name: HCHK_STATUS_L4TOUT
      - name: HCHK_STATUS_L7TOUT
      - name: HCHK_STATUS_HANA
      - name: HCHK_STATUS_INI
      - name: HCHK_STATUS_L4OK
      - name: HCHK_STATUS_L6OK
      - name: HCHK_STATUS_L57DATA
      - name: HCHK_STATUS_L7STS
      - name: HCHK_STATUS_L7OKCD
      - name: HCHK_STATUS_L6RSP
      - name: HCHK_STATUS_PROCERR
      - name: HCHK_STATUS_PROCOK
      - name: HCHK_STATUS_SIZE
      - name: HCHK_STATUS_CHECKED
      - name: HCHK_STATUS_L4CON
      item_type: enum
      name: healthcheck_status
      pos:
        line_end: 108
        line_start: 73
        source_file: /src/haproxy/include/haproxy/check-t.h
    preproc_defs:
    - item_type: preproc_def
      name: CHK_ST_INPROGRESS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: CHK_ST_CONFIGURED
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: CHK_ST_ENABLED
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: CHK_ST_PAUSED
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0008  '
    - item_type: preproc_def
      name: CHK_ST_AGENT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0010  '
    - item_type: preproc_def
      name: CHK_ST_PORT_MISS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0020  '
    - item_type: preproc_def
      name: CHK_ST_IN_ALLOC
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0040  '
    - item_type: preproc_def
      name: CHK_ST_OUT_ALLOC
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0080  '
    - item_type: preproc_def
      name: CHK_ST_CLOSE_CONN
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0100  '
    - item_type: preproc_def
      name: CHK_ST_PURGE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0200  '
    - item_type: preproc_def
      name: CHK_ST_FASTINTER
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0400  '
    - item_type: preproc_def
      name: CHK_ST_READY
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0800  '
    - item_type: preproc_def
      name: CHK_ST_SLEEPING
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x1000  '
    - item_type: preproc_def
      name: CHK_ST_USE_SMALL_BUFF
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x2000  '
    structs:
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: '*sess'
        type: struct session
      - name: vars
        type: struct vars
      - name: '*xprt'
        type: struct xprt_ops
      - name: '*sc'
        type: struct stconn
      - name: bi
        type: struct buffer
      - name: buf_wait
        type: struct buffer_wait
      - name: '*task'
        type: struct task
      - name: start
        type: ullong
      - name: duration
        type: long
      - name: status
        type: short
      - name: port
        type: unsigned short
      - name: desc[HCHK_DESC_LEN]
        type: char
      - name: use_ssl
        type: signed char
      - name: send_proxy
        type: int
      - name: reuse_pool
        type: int
      - name: '*tcpcheck'
        type: struct tcpcheck
      - name: '*current_step'
        type: struct tcpcheck_rule
      - name: inter
        type: int
      - name: result
        type: enum chk_result
      - name: state
        type: int
      - name: health
        type: int
      - name: rise
        type: int
      - name: type
        type: int
      - name: '*server'
        type: struct server
      - name: '*proxy'
        type: struct proxy
      - name: '**argv'
        type: char
      - name: '**envp'
        type: char
      - name: '*curpid'
        type: struct pid_list
      - name: addr
        type: struct sockaddr_storage
      - name: addr_type
        type: struct net_addr_type
      - name: alt_proto
        type: int
      - name: '*pool_conn_name'
        type: char
      - name: '*sni'
        type: char
      - name: '*alpn_str'
        type: char
      - name: alpn_len
        type: int
      - name: '*mux_proto'
        type: struct mux_proto_list
      - name: check_queue
        type: struct list
      - name: via_socks4
        type: int
      - name: unique_id
        type: struct ist
      item_type: struct
      name: check
      pos:
        line_end: 202
        line_start: 160
        source_file: /src/haproxy/include/haproxy/check-t.h
    typedefs: []
    union: []
- function_names:
  - sock_set_tos
  - sock_set_mark
  source_file: /src/haproxy/include/haproxy/sock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/qcm_http.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - normalize_rlim
  source_file: /src/haproxy/include/haproxy/limits.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/cpuset.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - COUNTERS_SHARED_LAST_OFFSET
  - COUNTERS_SHARED_LAST
  - COUNTERS_SHARED_TOTAL_OFFSET
  - COUNTERS_SHARED_TOTAL
  - COUNTERS_SHARED_TOTAL_ARG2
  - COUNTERS_UPDATE_MAX
  - EXTRA_COUNTERS_BASE
  - EXTRA_COUNTERS_GET
  - EXTRA_COUNTERS_REGISTER
  - EXTRA_COUNTERS_ADD
  - EXTRA_COUNTERS_ALLOC
  - EXTRA_COUNTERS_INIT
  - EXTRA_COUNTERS_FREE
  - EXTRA_COUNTERS_AGGR
  source_file: /src/haproxy/include/haproxy/counters.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - done_update_polling
  - fd_recv_active
  - fd_recv_ready
  - fd_send_active
  - fd_send_ready
  - fd_active
  - fd_stop_recv
  - fd_stop_send
  - fd_stop_both
  - fd_cant_recv
  - fd_may_recv
  - fd_cond_recv
  - fd_cond_send
  - fd_may_both
  - fd_cant_send
  - fd_may_send
  - fd_want_recv
  - fd_want_recv_safe
  - fd_want_send
  - fd_tgid
  - fd_drop_tgid
  - fd_unlock_tgid
  - fd_lock_tgid
  - fd_lock_tgid_cur
  - fd_take_tgid
  - fd_reset_tgid
  - fd_grab_tgid
  - fd_claim_tgid
  - fd_update_tgid
  - fd_get_running
  - fd_clr_running
  - fd_insert
  - hap_fd_set
  - hap_fd_clr
  - hap_fd_isset
  - wake_thread
  source_file: /src/haproxy/include/haproxy/fd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - REGISTER_CONFIG_SECTION
  - REGISTER_CONFIG_POST_SECTION
  - REGISTER_CONFIG_POSTPARSER
  source_file: /src/haproxy/include/haproxy/cfgparse.h
  types:
    enum:
    - enumerators:
      - name: KWM_STD
        value: '0'
      - name: KWM_DEF
      - name: KWM_NO
      item_type: enum
      name: kw_mod
      pos:
        line_end: 48
        line_start: 44
        source_file: /src/haproxy/include/haproxy/cfgparse.h
    - enumerators:
      - name: KWF_EXPERIMENTAL
        value: '0x1'
      - name: KWF_DISCOVERY
        value: '0x4'
      - name: KWF_MATCH_PREFIX
        value: '0x2'
      item_type: enum
      name: cfg_keyword_flags
      pos:
        line_end: 54
        line_start: 50
        source_file: /src/haproxy/include/haproxy/cfgparse.h
    preproc_defs:
    - item_type: preproc_def
      name: CFG_NONE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/cfgparse.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CFG_GLOBAL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/cfgparse.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CFG_LISTEN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/cfgparse.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CFG_USERLIST
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/cfgparse.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CFG_PEERS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/cfgparse.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CFG_CRTLIST
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/cfgparse.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CFG_CRTSTORE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/cfgparse.h
      type_or_value: '6'
    - item_type: preproc_def
      name: CFG_TRACES
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/cfgparse.h
      type_or_value: '7'
    - item_type: preproc_def
      name: CFG_ACME
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/cfgparse.h
      type_or_value: '8'
    structs:
    - fields:
      - name: section
        type: int
      - name: '*kw'
        type: char
      - name: "(*parse)(                           /* 0=OK, <0=Alert, >0=Warning */\n\t\t
          \    char **args,               /* command line and arguments */\n\t\t     int
          section_type,          /* current section CFG_{GLOBAL|LISTEN} */\n\t\t     struct
          proxy *curpx,       /* current proxy (NULL in GLOBAL) */\n\t\t     const
          struct proxy *defpx, /* default proxy (NULL in GLOBAL) */\n\t\t     const
          char *file,          /* config file name */\n\t\t     int line,                  /*
          config file line number */\n\t\t     char **err)"
        type: int
      - name: flags
        type: int
      item_type: struct
      name: cfg_keyword
      pos:
        line_end: 68
        line_start: 56
        source_file: /src/haproxy/include/haproxy/cfgparse.h
    - fields:
      - name: list
        type: struct list
      - name: kw[VAR_ARRAY]
        type: struct cfg_keyword
      item_type: struct
      name: cfg_kw_list
      pos:
        line_end: 78
        line_start: 75
        source_file: /src/haproxy/include/haproxy/cfgparse.h
    - fields:
      - name: list
        type: struct list
      - name: '*section_name'
        type: char
      - name: (*section_parser)(const char *, int, char **, int)
        type: int
      - name: (*post_section_parser)()
        type: int
      item_type: struct
      name: cfg_section
      pos:
        line_end: 86
        line_start: 81
        source_file: /src/haproxy/include/haproxy/cfgparse.h
    - fields:
      - name: list
        type: struct list
      - name: '*name'
        type: char
      - name: (*func)()
        type: int
      item_type: struct
      name: cfg_postparser
      pos:
        line_end: 94
        line_start: 90
        source_file: /src/haproxy/include/haproxy/cfgparse.h
    - fields:
      - name: list
        type: struct list
      - name: '*filename'
        type: char
      - name: '*content'
        type: char
      - name: size
        type: ssize_t
      item_type: struct
      name: cfgfile
      pos:
        line_end: 102
        line_start: 97
        source_file: /src/haproxy/include/haproxy/cfgparse.h
    typedefs: []
    union: []
- function_names:
  - ESUB_INDEX
  - EVENT_HDL_SUB_TYPE
  - EVENT_HDL_SUB_FAMILY
  source_file: /src/haproxy/include/haproxy/event_hdl-t.h
  types:
    enum:
    - enumerators:
      - name: EVENT_HDL_ASYNC_MODE_NORMAL
        value: '1'
      - name: EVENT_HDL_ASYNC_MODE_ADVANCED
        value: '2'
      item_type: enum
      name: event_hdl_async_mode
      pos:
        line_end: 183
        line_start: 179
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    preproc_defs:
    - item_type: preproc_def
      name: EVENT_HDL_ASYNC_EVENT_DATA
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: (768)
    - item_type: preproc_def
      name: EHDL_SUB_F_PAUSED
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: EVENT_HDL_SUB_NONE
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: ((struct event_hdl_sub_type){ .family = 0, .subtype = 0})
    - item_type: preproc_def
      name: EVENT_HDL_SUB_END
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: ((struct event_hdl_sub_type){ .family = 0, .subtype = 1})
    - item_type: preproc_def
      name: EVENT_HDL_SUB_SERVER
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_FAMILY(1)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_SERVER_ADD
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(1,1)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_SERVER_DEL
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(1,2)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_SERVER_UP
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(1,3)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_SERVER_DOWN
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(1,4)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_SERVER_STATE
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(1,5)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_SERVER_ADMIN
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(1,6)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_SERVER_CHECK
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(1,7)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_SERVER_INETADDR
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(1,8)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_PAT_REF
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_FAMILY(2)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_PAT_REF_ADD
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(2,1)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_PAT_REF_DEL
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(2,2)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_PAT_REF_SET
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(2,3)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_PAT_REF_COMMIT
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(2,4)
    - item_type: preproc_def
      name: EVENT_HDL_SUB_PAT_REF_CLEAR
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type_or_value: EVENT_HDL_SUB_TYPE(2,5)
    structs:
    - fields:
      - name: safe
        type: "struct {\n\t\t/* safe data can be safely used from both\n\t\t * sync
          and async handlers\n\t\t * data consistency is guaranteed\n\t\t */\n\t}"
      - name: unsafe
        type: "struct {\n\t\t/* unsafe data may only be used from sync handlers:\n\t\t
          * in async mode, data consistency cannot be guaranteed\n\t\t * and unsafe
          data may already be stale, thus using\n\t\t * it is highly discouraged because
          it\n\t\t * could lead to undefined behavior (UAF, null dereference...)\n\t\t
          */\n\t}"
      item_type: struct
      name: event_hdl_cb_data_template
      pos:
        line_end: 45
        line_start: 30
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: max_events_at_once
        type: unsigned int
      item_type: struct
      name: event_hdl_tune
      pos:
        line_end: 50
        line_start: 48
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: data[EVENT_HDL_ASYNC_EVENT_DATA]
        type: char
      - name: mfree
        type: event_hdl_data_free
      - name: refcount
        type: uint32_t
      item_type: struct
      name: event_hdl_async_event_data
      pos:
        line_end: 74
        line_start: 65
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: family
        type: uint8_t
      - name: subtype
        type: uint16_t
      item_type: struct
      name: event_hdl_sub_type
      pos:
        line_end: 83
        line_start: 77
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: head
        type: struct mt_list
      - name: known
        type: struct mt_list
      item_type: struct
      name: event_hdl_sub_list_head
      pos:
        line_end: 88
        line_start: 85
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: head
        type: struct mt_list
      - name: size
        type: uint32_t
      item_type: struct
      name: event_hdl_async_equeue_head
      pos:
        line_end: 96
        line_start: 93
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: '*this'
        type: struct event_hdl_sub
      - name: (*getsub)(const struct event_hdl_sub_mgmt *)
        type: struct event_hdl_sub_type
      - name: (*resub)(const struct event_hdl_sub_mgmt *, struct event_hdl_sub_type)
        type: int
      - name: (*unsub)(const struct event_hdl_sub_mgmt *)
        type: void
      item_type: struct
      name: event_hdl_sub_mgmt
      pos:
        line_end: 112
        line_start: 102
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: mt_list
        type: struct mt_list
      - name: type
        type: struct event_hdl_sub_type
      - name: '*_data'
        type: struct event_hdl_async_event_data
      - name: '*data'
        type: void
      - name: '*private'
        type: void
      - name: when
        type: struct timeval
      - name: sub_mgmt
        type: struct event_hdl_sub_mgmt
      item_type: struct
      name: event_hdl_async_event
      pos:
        line_end: 130
        line_start: 117
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: '*_ptr'
        type: void
      - name: _size
        type: size_t
      - name: _mfree
        type: event_hdl_data_free
      item_type: struct
      name: event_hdl_cb_data
      pos:
        line_end: 144
        line_start: 135
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: e_type
        type: struct event_hdl_sub_type
      - name: '*e_data'
        type: void
      - name: '*sub_mgmt'
        type: struct event_hdl_sub_mgmt
      - name: _sync
        type: uint8_t
      item_type: struct
      name: event_hdl_cb
      pos:
        line_end: 167
        line_start: 150
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: id
        type: uint64_t
      - name: '*dorigin'
        type: char
      - name: async
        type: uint8_t
      - name: '*async_task'
        type: struct tasklet
      - name: '*async_equeue'
        type: event_hdl_async_equeue
      - name: private_free
        type: event_hdl_private_free
      - name: '*private'
        type: void
      item_type: struct
      name: event_hdl
      pos:
        line_end: 223
        line_start: 186
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: mt_list
        type: struct mt_list
      - name: sub
        type: struct event_hdl_sub_type
      - name: flags
        type: uint32_t
      - name: hdl
        type: struct event_hdl
      - name: '*async_end'
        type: struct event_hdl_async_event
      - name: refcount
        type: uint32_t
      item_type: struct
      name: event_hdl_sub
      pos:
        line_end: 246
        line_start: 230
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    - fields:
      - name: '*name'
        type: char
      - name: type
        type: struct event_hdl_sub_type
      item_type: struct
      name: event_hdl_sub_type_map
      pos:
        line_end: 300
        line_start: 297
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
    typedefs:
    - item_type: typedef
      name: (*event_hdl_data_free)(const void *data)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type: void
    - item_type: typedef
      name: event_hdl_sub_list
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type: event_hdl_sub_list_head
    - item_type: typedef
      name: event_hdl_async_equeue
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type: event_hdl_async_equeue_head
    - item_type: typedef
      name: (*event_hdl_cb_sync)(const struct event_hdl_cb *cb, void *private)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type: void
    - item_type: typedef
      name: (*event_hdl_cb_async)(const struct event_hdl_cb *cb, void *private)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type: void
    - item_type: typedef
      name: (*event_hdl_private_free)(void *private)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/haproxy/include/haproxy/event_hdl-t.h
      type: void
    union: []
- function_names:
  - conn_show_flags
  - _
  - CONN_HASH_GET_PAYLOAD
  source_file: /src/haproxy/include/haproxy/connection-t.h
  types:
    enum:
    - enumerators:
      - name: PROTO_MODE_NONE
        value: '0'
      - name: PROTO_MODE_SPOP
        value: 1 << 2
      - name: PROTO_MODE_ANY
        value: PROTO_MODE_TCP | PROTO_MODE_HTTP | PROTO_MODE_SPOP
      - name: PROTO_MODE_TCP
        value: 1 << 0
      - name: PROTO_MODE_HTTP
        value: 1 << 1
      item_type: enum
      name: proto_proxy_mode
      pos:
        line_end: 375
        line_start: 369
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: PROTO_SIDE_NONE
        value: '0'
      - name: PROTO_SIDE_BE
        value: '2'
      - name: PROTO_SIDE_BOTH
        value: PROTO_SIDE_FE | PROTO_SIDE_BE
      - name: PROTO_SIDE_FE
        value: '1'
      item_type: enum
      name: proto_proxy_side
      pos:
        line_end: 382
        line_start: 377
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: MUX_CTL_STATUS
      - name: MUX_CTL_REVERSE_CONN
      - name: MUX_CTL_GET_GLITCHES
      - name: MUX_CTL_SUBS_RECV
      - name: MUX_CTL_EXIT_STATUS
      - name: MUX_CTL_GET_NBSTRM
      - name: MUX_CTL_GET_MAXSTRM
      - name: MUX_CTL_TEVTS
      item_type: enum
      name: mux_ctl_type
      pos:
        line_end: 394
        line_start: 385
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: MUX_SCTL_SID
      - name: MUX_SCTL_DBG_STR
      - name: MUX_SCTL_TEVTS
      item_type: enum
      name: mux_sctl_type
      pos:
        line_end: 401
        line_start: 397
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: MUX_ES_SUCCESS
      - name: MUX_ES_INTERNAL_ERR
      - name: MUX_ES_TOUT_ERR
      - name: MUX_ES_INVALID_ERR
      - name: MUX_ES_NOTIMPL_ERR
      - name: MUX_ES_UNKNOWN
      item_type: enum
      name: mux_exit_status
      pos:
        line_end: 420
        line_start: 413
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: XPRT_CAN_SPLICE
      item_type: enum
      name: xprt_capabilities
      pos:
        line_end: 445
        line_start: 443
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: XPRT_CONN_CAN_NOT_SPLICE
      - name: XPRT_CONN_CAN_SPLICE
      - name: XPRT_CONN_COULD_SPLICE
      item_type: enum
      name: xprt_splice_cap
      pos:
        line_end: 451
        line_start: 447
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: CONN_HASH_PARAMS_TYPE_NAME
        value: '0x1'
      - name: CONN_HASH_PARAMS_TYPE_SRC_ADDR
        value: '0x8'
      - name: CONN_HASH_PARAMS_TYPE_DST_PORT
        value: '0x4'
      - name: CONN_HASH_PARAMS_TYPE_DST_ADDR
        value: '0x2'
      - name: CONN_HASH_PARAMS_TYPE_SRC_PORT
        value: '0x10'
      - name: CONN_HASH_PARAMS_TYPE_PROXY
        value: '0x20'
      - name: CONN_HASH_PARAMS_TYPE_MARK_TOS
        value: '0x40'
      item_type: enum
      name: conn_hash_params_t
      pos:
        line_end: 573
        line_start: 565
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: tevt_loc_fd
        value: '1'
      - name: tevt_loc_muxc
        value: '4'
      - name: tevt_loc_xprt
        value: '3'
      - name: tevt_loc_hs
        value: '2'
      - name: tevt_loc_se
        value: '5'
      - name: tevt_loc_strm
        value: '6'
      item_type: enum
      name: term_event_loc
      pos:
        line_end: 825
        line_start: 818
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: fd_tevt_type_shutw
        value: '1'
      - name: fd_tevt_type_connect_err
        value: '7'
      - name: fd_tevt_type_snd_err
        value: '4'
      - name: fd_tevt_type_rcv_err
        value: '3'
      - name: fd_tevt_type_shutr
        value: '2'
      - name: fd_tevt_type_intercepted
        value: '8'
      - name: fd_tevt_type_connect_poll_err
        value: '9'
      - name: fd_tevt_type_poll_err
        value: '10'
      - name: fd_tevt_type_poll_hup
        value: '11'
      item_type: enum
      name: fd_term_event_type
      pos:
        line_end: 840
        line_start: 828
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: hs_tevt_type_snd_err
        value: '4'
      - name: hs_tevt_type_truncated_rcv_err
        value: '6'
      - name: hs_tevt_type_truncated_shutr
        value: '5'
      item_type: enum
      name: hs_term_event_type
      pos:
        line_end: 847
        line_start: 842
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: xprt_tevt_type_shutw
        value: '1'
      - name: xprt_tevt_type_snd_err
        value: '4'
      - name: xprt_tevt_type_rcv_err
        value: '3'
      - name: xprt_tevt_type_shutr
        value: '2'
      item_type: enum
      name: xprt_term_event_type
      pos:
        line_end: 854
        line_start: 849
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: muxc_tevt_type_shutw
        value: '1'
      - name: muxc_tevt_type_rcv_err
        value: '3'
      - name: muxc_tevt_type_shutr
        value: '2'
      - name: muxc_tevt_type_snd_err
        value: '4'
      - name: muxc_tevt_type_truncated_shutr
        value: '5'
      - name: muxc_tevt_type_truncated_rcv_err
        value: '6'
      - name: muxc_tevt_type_tout
        value: '7'
      - name: muxc_tevt_type_goaway_rcvd
        value: '8'
      - name: muxc_tevt_type_proto_err
        value: '9'
      - name: muxc_tevt_type_internal_err
        value: '10'
      - name: muxc_tevt_type_graceful_shut
        value: '12'
      - name: muxc_tevt_type_other_err
        value: '11'
      item_type: enum
      name: muxc_term_event_type
      pos:
        line_end: 870
        line_start: 856
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: se_tevt_type_shutw
        value: '1'
      - name: se_tevt_type_snd_err
        value: '4'
      - name: se_tevt_type_rcv_err
        value: '3'
      - name: se_tevt_type_eos
        value: '2'
      - name: se_tevt_type_truncated_eos
        value: '5'
      - name: se_tevt_type_truncated_rcv_err
        value: '6'
      - name: se_tevt_type_rst_rcvd
        value: '8'
      - name: se_tevt_type_proto_err
        value: '9'
      - name: se_tevt_type_internal_err
        value: '10'
      - name: se_tevt_type_other_err
        value: '11'
      - name: se_tevt_type_cancelled
        value: '12'
      item_type: enum
      name: se_term_event_type
      pos:
        line_end: 885
        line_start: 872
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: strm_tevt_type_shutw
        value: '1'
      - name: strm_tevt_type_rcv_err
        value: '3'
      - name: strm_tevt_type_eos
        value: '2'
      - name: strm_tevt_type_snd_err
        value: '4'
      - name: strm_tevt_type_truncated_eos
        value: '5'
      - name: strm_tevt_type_truncated_rcv_err
        value: '6'
      - name: strm_tevt_type_tout
        value: '7'
      - name: strm_tevt_type_intercepted
        value: '8'
      - name: strm_tevt_type_proto_err
        value: '9'
      - name: strm_tevt_type_internal_err
        value: '10'
      - name: strm_tevt_type_aborted
        value: '12'
      - name: strm_tevt_type_other_err
        value: '11'
      item_type: enum
      name: strm_term_event_type
      pos:
        line_end: 902
        line_start: 887
        source_file: /src/haproxy/include/haproxy/connection-t.h
    preproc_defs:
    - item_type: preproc_def
      name: MUX_SCTL_DBG_STR_L_MUXS
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: 0x00000001  // info from mux stream
    - item_type: preproc_def
      name: MUX_SCTL_DBG_STR_L_MUXC
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: 0x00000002  // info from mux connection
    - item_type: preproc_def
      name: MUX_SCTL_DBG_STR_L_XPRT
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: 0x00000004  // info from xprt layer
    - item_type: preproc_def
      name: MUX_SCTL_DBG_STR_L_CONN
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: 0x00000008  // info from struct connection layer
    - item_type: preproc_def
      name: MUX_SCTL_DBG_STR_L_SOCK
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: 0x00000010  // info from socket layer (quic_conn as well)
    - item_type: preproc_def
      name: MUX_STATUS_READY
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: SOCKS4_HS_RSP_LEN
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '8'
    - item_type: preproc_def
      name: CONN_HASH_PARAMS_TYPE_COUNT
      pos:
        line_end: 575
        line_start: 574
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '7'
    - item_type: preproc_def
      name: CONN_HASH_PAYLOAD_LEN
      pos:
        line_end: 578
        line_start: 576
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: (((sizeof(((struct conn_hash_node *)0)->key)) * 8) - CONN_HASH_PARAMS_TYPE_COUNT)
    - item_type: preproc_def
      name: PP2_SIGNATURE
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '"\x0D\x0A\x0D\x0A\x00\x0D\x0A\x51\x55\x49\x54\x0A"'
    - item_type: preproc_def
      name: PP2_SIGNATURE_LEN
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PP2_HEADER_LEN
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PP2_CMD_LOCAL
      pos:
        line_end: 695
        line_start: 694
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: PP2_CMD_PROXY
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PP2_CMD_MASK
      pos:
        line_end: 697
        line_start: 696
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: PP2_VERSION
      pos:
        line_end: 699
        line_start: 698
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: PP2_VERSION_MASK
      pos:
        line_end: 700
        line_start: 699
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0xF0'
    - item_type: preproc_def
      name: PP2_TRANS_UNSPEC
      pos:
        line_end: 703
        line_start: 702
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: PP2_TRANS_STREAM
      pos:
        line_end: 704
        line_start: 703
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PP2_TRANS_DGRAM
      pos:
        line_end: 705
        line_start: 704
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PP2_TRANS_MASK
      pos:
        line_end: 706
        line_start: 705
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: PP2_FAM_UNSPEC
      pos:
        line_end: 708
        line_start: 707
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: PP2_FAM_INET
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: PP2_FAM_INET6
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: PP2_FAM_UNIX
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: PP2_FAM_MASK
      pos:
        line_end: 712
        line_start: 711
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0xF0'
    - item_type: preproc_def
      name: PP2_ADDR_LEN_UNSPEC
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: (0)
    - item_type: preproc_def
      name: PP2_ADDR_LEN_INET
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: (4 + 4 + 2 + 2)
    - item_type: preproc_def
      name: PP2_ADDR_LEN_INET6
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: (16 + 16 + 2 + 2)
    - item_type: preproc_def
      name: PP2_ADDR_LEN_UNIX
      pos:
        line_end: 717
        line_start: 716
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: (108 + 108)
    - item_type: preproc_def
      name: PP2_HDR_LEN_UNSPEC
      pos:
        line_end: 719
        line_start: 718
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: (PP2_HEADER_LEN + PP2_ADDR_LEN_UNSPEC)
    - item_type: preproc_def
      name: PP2_HDR_LEN_INET
      pos:
        line_end: 720
        line_start: 719
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: (PP2_HEADER_LEN + PP2_ADDR_LEN_INET)
    - item_type: preproc_def
      name: PP2_HDR_LEN_INET6
      pos:
        line_end: 721
        line_start: 720
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: (PP2_HEADER_LEN + PP2_ADDR_LEN_INET6)
    - item_type: preproc_def
      name: PP2_HDR_LEN_UNIX
      pos:
        line_end: 722
        line_start: 721
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: (PP2_HEADER_LEN + PP2_ADDR_LEN_UNIX)
    - item_type: preproc_def
      name: PP2_TYPE_ALPN
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PP2_TYPE_AUTHORITY
      pos:
        line_end: 725
        line_start: 724
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PP2_TYPE_CRC32C
      pos:
        line_end: 726
        line_start: 725
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: PP2_TYPE_NOOP
      pos:
        line_end: 727
        line_start: 726
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: PP2_TYPE_UNIQUE_ID
      pos:
        line_end: 728
        line_start: 727
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: PP2_TYPE_SSL
      pos:
        line_end: 729
        line_start: 728
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: PP2_SUBTYPE_SSL_VERSION
      pos:
        line_end: 730
        line_start: 729
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x21'
    - item_type: preproc_def
      name: PP2_SUBTYPE_SSL_CN
      pos:
        line_end: 731
        line_start: 730
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x22'
    - item_type: preproc_def
      name: PP2_SUBTYPE_SSL_CIPHER
      pos:
        line_end: 732
        line_start: 731
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x23'
    - item_type: preproc_def
      name: PP2_SUBTYPE_SSL_SIG_ALG
      pos:
        line_end: 733
        line_start: 732
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x24'
    - item_type: preproc_def
      name: PP2_SUBTYPE_SSL_KEY_ALG
      pos:
        line_end: 734
        line_start: 733
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x25'
    - item_type: preproc_def
      name: PP2_TYPE_NETNS
      pos:
        line_end: 735
        line_start: 734
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: PP2_CLIENT_SSL
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PP2_CLIENT_CERT_CONN
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PP2_CLIENT_CERT_SESS
      pos:
        line_end: 739
        line_start: 738
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: PP2_CRC32C_LEN
      pos:
        line_end: 741
        line_start: 740
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: TLV_HEADER_SIZE
      pos:
        line_end: 743
        line_start: 742
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '3'
    - item_type: preproc_def
      name: HA_PP2_AUTHORITY_MAX
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '255  '
    - item_type: preproc_def
      name: HA_PP2_TLV_VALUE_128
      pos:
        line_end: 746
        line_start: 745
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '128  '
    - item_type: preproc_def
      name: HA_PP2_TLV_VALUE_256
      pos:
        line_end: 747
        line_start: 746
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '256  '
    - item_type: preproc_def
      name: HA_PP2_MAX_ALLOC
      pos:
        line_end: 748
        line_start: 747
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '1024 '
    structs:
    - fields:
      - name: version
        type: uint8_t
      - name: command
        type: uint8_t
      - name: port
        type: uint16_t
      - name: ip
        type: uint32_t
      - name: user_id[8]
        type: char
      item_type: struct
      name: socks4_request
      pos:
        line_end: 432
        line_start: 426
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: (*rcv_buf)(struct connection *conn, void *xprt_ctx, struct buffer *buf,
          size_t count, void *msg_control, size_t *msg_controllen, int flags)
        type: size_t
      - name: (*snd_buf)(struct connection *conn, void *xprt_ctx, const struct buffer
          *buf, size_t count, void *msg_control, size_t msg_controllen, int flags)
        type: size_t
      - name: (*rcv_pipe)(struct connection *conn, void *xprt_ctx, struct pipe *pipe,
          unsigned int count)
        type: int
      - name: (*snd_pipe)(struct connection *conn, void *xprt_ctx, struct pipe *pipe,
          unsigned int count)
        type: int
      - name: (*shutr)(struct connection *conn, void *xprt_ctx, int)
        type: void
      - name: (*shutw)(struct connection *conn, void *xprt_ctx, int)
        type: void
      - name: (*close)(struct connection *conn, void *xprt_ctx)
        type: void
      - name: (*init)(struct connection *conn, void **ctx)
        type: int
      - name: (*start)(struct connection *conn, void *ctx)
        type: int
      - name: (*prepare_bind_conf)(struct bind_conf *conf)
        type: int
      - name: (*destroy_bind_conf)(struct bind_conf *conf)
        type: void
      - name: (*prepare_srv)(struct server *srv)
        type: int
      - name: (*destroy_srv)(struct server *srv)
        type: void
      - name: (*get_alpn)(const struct connection *conn, void *xprt_ctx, const char
          **str, int *len)
        type: int
      - name: (*takeover)(struct connection *conn, void *xprt_ctx, int orig_tid, int
          release)
        type: int
      - name: (*set_idle)(struct connection *conn, void *xprt_ctx)
        type: void
      - name: (*set_used)(struct connection *conn, void *xprt_ctx)
        type: void
      - name: name[8]
        type: char
      - name: (*subscribe)(struct connection *conn, void *xprt_ctx, int event_type,
          struct wait_event *es)
        type: int
      - name: (*unsubscribe)(struct connection *conn, void *xprt_ctx, int event_type,
          struct wait_event *es)
        type: int
      - name: (*remove_xprt)(struct connection *conn, void *xprt_ctx, void *toremove_ctx,
          const struct xprt_ops *newops, void *newctx)
        type: int
      - name: (*add_xprt)(struct connection *conn, void *xprt_ctx, void *toadd_ctx,
          const struct xprt_ops *toadd_ops, void **oldxprt_ctx, const struct xprt_ops
          **oldxprt_ops)
        type: int
      - name: '*(*get_ssl_sock_ctx)(struct connection *)'
        type: struct ssl_sock_ctx
      - name: (*show_fd)(struct buffer *, const struct connection *, const void *ctx)
        type: int
      - name: (*dump_info)(struct buffer *, const struct connection *)
        type: void
      - name: (*get_capability)(struct connection *connection, void *xprt_ctx, enum
          xprt_capabilities, void *arg)
        type: int
      item_type: struct
      name: xprt_ops
      pos:
        line_end: 490
        line_start: 458
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: (*init)(struct connection *conn, struct proxy *prx, struct session *sess,
          struct buffer *input)
        type: int
      - name: (*wake)(struct connection *conn)
        type: int
      - name: (*rcv_buf)(struct stconn *sc, struct buffer *buf, size_t count, int
          flags)
        type: size_t
      - name: (*snd_buf)(struct stconn *sc, struct buffer *buf, size_t count, int
          flags)
        type: size_t
      - name: (*nego_fastfwd)(struct stconn *sc, struct buffer *input, size_t count,
          unsigned int may_splice)
        type: size_t
      - name: (*done_fastfwd)(struct stconn *sc)
        type: size_t
      - name: (*fastfwd)(struct stconn *sc, unsigned int count, unsigned int flags)
        type: int
      - name: (*resume_fastfwd)(struct stconn *sc, unsigned int flags)
        type: int
      - name: (*shut)(struct stconn *sc, unsigned int mode, struct se_abort_info *reason)
        type: void
      - name: (*attach)(struct connection *conn, struct sedesc *, struct session *sess)
        type: int
      - name: '*(*get_first_sc)(const struct connection *)'
        type: struct stconn
      - name: (*detach)(struct sedesc *)
        type: void
      - name: (*show_fd)(struct buffer *, struct connection *)
        type: int
      - name: (*show_sd)(struct buffer *, struct sedesc *, const char *pfx)
        type: int
      - name: (*subscribe)(struct stconn *sc, int event_type,  struct wait_event *es)
        type: int
      - name: (*unsubscribe)(struct stconn *sc, int event_type,  struct wait_event
          *es)
        type: int
      - name: (*sctl)(struct stconn *sc, enum mux_sctl_type mux_sctl, void *arg)
        type: int
      - name: (*avail_streams)(struct connection *conn)
        type: int
      - name: (*used_streams)(struct connection *conn)
        type: int
      - name: (*destroy)(void *ctx)
        type: void
      - name: (*ctl)(struct connection *conn, enum mux_ctl_type mux_ctl, void *arg)
        type: int
      - name: (*takeover)(struct connection *conn, int orig_tid, int release)
        type: int
      - name: flags
        type: unsigned int
      - name: name[8]
        type: char
      item_type: struct
      name: mux_ops
      pos:
        line_end: 530
        line_start: 499
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*task'
        type: struct task
      item_type: struct
      name: mux_stopping_data
      pos:
        line_end: 538
        line_start: 535
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: source
        type: uint16_t
      - name: dest
        type: uint16_t
      item_type: struct
      name: my_tcphdr
      pos:
        line_end: 543
        line_start: 540
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: opts
        type: unsigned int
      - name: iface_len
        type: int
      - name: '*iface_name'
        type: char
      - name: '*sport_range'
        type: struct port_range
      - name: source_addr
        type: struct sockaddr_storage
      item_type: struct
      name: conn_src
      pos:
        line_end: 560
        line_start: 548
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: name_prehash
        type: uint64_t
      - name: proxy_prehash
        type: uint64_t
      - name: mark_tos_prehash
        type: uint64_t
      - name: '*target'
        type: void
      - name: '*src_addr'
        type: struct sockaddr_storage
      - name: '*dst_addr'
        type: struct sockaddr_storage
      item_type: struct
      name: conn_hash_params
      pos:
        line_end: 593
        line_start: 586
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: list
        type: struct list
      - name: len
        type: unsigned short
      - name: type
        type: unsigned char
      - name: value[0]
        type: char
      item_type: struct
      name: conn_tlv_list
      pos:
        line_end: 606
        line_start: 601
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: node
        type: struct ceb_node
      - name: key
        type: uint64_t
      item_type: struct
      name: conn_hash_node
      pos:
        line_end: 615
        line_start: 612
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: err_code
        type: unsigned char
      - name: send_proxy_ofs
        type: signed short
      - name: flags
        type: unsigned int
      - name: '*ctrl'
        type: struct protocol
      - name: '*xprt'
        type: struct xprt_ops
      - name: '*mux'
        type: struct mux_ops
      - name: '*xprt_ctx'
        type: void
      - name: '*ctx'
        type: void
      - name: '*owner'
        type: void
      - name: '*target'
        type: enum obj_type
      - name: '*subs'
        type: struct wait_event
      - name: handle
        type: union conn_handle
      - name: '*proxy_netns'
        type: struct netns_entry
      - name: (*destroy_cb)(struct connection *conn)
        type: void
      - name: '*src'
        type: struct sockaddr_storage
      - name: '*dst'
        type: struct sockaddr_storage
      - name: tlv_list
        type: struct list
      - name: hash_node
        type: struct conn_hash_node
      - name: reverse
        type: "struct {\n\t\tenum obj_type *target; /* Listener for active reverse,
          server for passive. */\n\t\tstruct buffer name;    /* Only used for passive
          reverse. Used as SNI when connection added to server idle pool. */\n\t}"
      - name: sni_hash
        type: uint64_t
      - name: term_evts_log
        type: uint32_t
      - name: mark
        type: uint32_t
      - name: tos
        type: uint8_t
      item_type: struct
      name: connection
      pos:
        line_end: 674
        line_start: 624
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: mux_proto
        type: struct ist
      - name: mode
        type: enum proto_proxy_mode
      - name: side
        type: enum proto_proxy_side
      - name: '*mux'
        type: struct mux_ops
      - name: '*alpn'
        type: char
      - name: init_xprt
        type: int
      - name: list
        type: struct list
      item_type: struct
      name: mux_proto_list
      pos:
        line_end: 684
        line_start: 676
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: sig[12]
        type: uint8_t
      - name: ver_cmd
        type: uint8_t
      - name: fam
        type: uint8_t
      - name: len
        type: uint16_t
      - name: addr
        type: "union {\n\t\tstruct {   /* for TCP/UDP over IPv4, len = 12 */\n\t\t\tuint32_t
          src_addr;\n\t\t\tuint32_t dst_addr;\n\t\t\tuint16_t src_port;\n\t\t\tuint16_t
          dst_port;\n\t\t} ip4;\n\t\tstruct {   /* for TCP/UDP over IPv6, len = 36
          */\n\t\t\tuint8_t  src_addr[16];\n\t\t\tuint8_t  dst_addr[16];\n\t\t\tuint16_t
          src_port;\n\t\t\tuint16_t dst_port;\n\t\t} ip6;\n\t\tstruct {   /* for AF_UNIX
          sockets, len = 216 */\n\t\t\tuint8_t src_addr[108];\n\t\t\tuint8_t dst_addr[108];\n\t\t}
          unx;\n\t}"
      item_type: struct
      name: proxy_hdr_v2
      pos:
        line_end: 772
        line_start: 749
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: type
        type: uint8_t
      - name: length_hi
        type: uint8_t
      - name: length_lo
        type: uint8_t
      - name: value[0]
        type: uint8_t
      item_type: struct
      name: tlv
      pos:
        line_end: 779
        line_start: 774
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: tlv
        type: struct tlv
      - name: client
        type: uint8_t
      - name: verify
        type: uint32_t
      - name: sub_tlv[VAR_ARRAY]
        type: uint8_t
      item_type: struct
      name: tlv_ssl
      pos:
        line_end: 786
        line_start: 781
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: toremove_conns
        type: struct mt_list
      - name: '*cleanup_task'
        type: struct task
      item_type: struct
      name: idle_conns
      pos:
        line_end: 806
        line_start: 802
        source_file: /src/haproxy/include/haproxy/connection-t.h
    typedefs: []
    union:
    - fields:
      - name: '*qc'
        type: struct quic_conn
      - name: fd
        type: int
      item_type: union
      name: conn_handle
      pos:
        line_end: 441
        line_start: 438
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: arg
        type: "struct {\n\t\tuint debug_flags; // union of MUX_SCTL_DBG_STR_L_*\n\t}"
      - name: ret
        type: "struct {\n\t\tstruct buffer buf;\n\t}"
      item_type: union
      name: mux_sctl_dbg_str_ctx
      pos:
        line_end: 796
        line_start: 789
        source_file: /src/haproxy/include/haproxy/connection-t.h
- function_names: []
  source_file: /src/haproxy/include/haproxy/ring-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RING_WF_WAIT_MODE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/ring-t.h
      type_or_value: '0x00000001   '
    - item_type: preproc_def
      name: RING_WF_SEEK_NEW
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/ring-t.h
      type_or_value: '0x00000002   '
    - item_type: preproc_def
      name: RING_WF_END_ZERO
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/ring-t.h
      type_or_value: '0x00000004   '
    - item_type: preproc_def
      name: RING_FL_MAPPED
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/ring-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: RING_WRITING_SIZE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/haproxy/ring-t.h
      type_or_value: '255  '
    - item_type: preproc_def
      name: RING_MAX_READERS
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/include/haproxy/ring-t.h
      type_or_value: '254  '
    - item_type: preproc_def
      name: RING_TAIL_LOCK
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/haproxy/include/haproxy/ring-t.h
      type_or_value: (1ULL << ((sizeof(size_t) * 8) - 1))
    structs:
    - fields:
      - name: to_send_self
        type: size_t
      - name: needed_tot
        type: size_t
      - name: maxlen
        type: size_t
      - name: '*pfx'
        type: struct ist
      - name: npfx
        type: size_t
      - name: '*msg'
        type: struct ist
      - name: nmsg
        type: size_t
      - name: '*next'
        type: struct ring_wait_cell
      item_type: struct
      name: ring_wait_cell
      pos:
        line_end: 126
        line_start: 117
        source_file: /src/haproxy/include/haproxy/ring-t.h
    - fields:
      - name: size
        type: size_t
      - name: rsvd
        type: size_t
      - name: tail
        type: size_t
      - name: head
        type: size_t
      - name: area[0]
        type: char
      item_type: struct
      name: ring_storage
      pos:
        line_end: 138
        line_start: 129
        source_file: /src/haproxy/include/haproxy/ring-t.h
    - fields:
      - name: '*storage'
        type: struct ring_storage
      - name: waiters
        type: struct mt_list
      - name: readers_count
        type: int
      - name: flags
        type: uint
      - name: pending
        type: uint
      - name: waking
        type: uint
      - name: queue[RING_WAIT_QUEUES + 1]
        type: "struct {\n\t\tTHREAD_ALIGN();\n\t\tstruct ring_wait_cell *ptr;\n\t}"
      item_type: struct
      name: ring
      pos:
        line_end: 154
        line_start: 141
        source_file: /src/haproxy/include/haproxy/ring-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/buf-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUF_NULL
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/buf-t.h
      type_or_value: ((struct buffer){ })
    - item_type: preproc_def
      name: BUF_WANTED
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/buf-t.h
      type_or_value: ((struct buffer){ .area = (char *)1 })
    - item_type: preproc_def
      name: BUF_RING
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/buf-t.h
      type_or_value: ((struct buffer){ .area = (char *)2 })
    structs:
    - fields:
      - name: size
        type: size_t
      - name: '*area'
        type: char
      - name: data
        type: size_t
      - name: head
        type: size_t
      item_type: struct
      name: buffer
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/haproxy/include/haproxy/buf-t.h
    - fields:
      - name: buf
        type: struct buffer
      - name: next
        type: uint32_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: bl_elem
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/haproxy/include/haproxy/buf-t.h
    typedefs: []
    union: []
- function_names:
  - _MIN
  - _MAX
  - MIN
  - MAX
  - IN6_IS_ADDR_V4MAPPED
  source_file: /src/haproxy/include/haproxy/compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LLONG_MAX
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: 9223372036854775807LL
    - item_type: preproc_def
      name: LLONG_MIN
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: (-LLONG_MAX - 1LL)
    - item_type: preproc_def
      name: ULLONG_MAX
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: (LLONG_MAX * 2ULL + 1)
    - item_type: preproc_def
      name: LONGBITS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: ((unsigned int)sizeof(long) * 8)
    - item_type: preproc_def
      name: BITS_PER_INT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: (8*sizeof(int))
    - item_type: preproc_def
      name: __WORDSIZE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '32'
    - item_type: preproc_def
      name: __WORDSIZE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '64'
    - item_type: preproc_def
      name: _POSIX_VERSION
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TCP_NODELAY
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SHUT_RD
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SHUT_WR
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MSG_NOSIGNAL
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MSG_DONTWAIT
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MSG_MORE
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '128'
    - item_type: preproc_def
      name: UNIX_MAX_PATH
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '108'
    - item_type: preproc_def
      name: F_SETPIPE_SZ
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: (1024 + 7)
    - item_type: preproc_def
      name: IP_FREEBIND
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '15'
    - item_type: preproc_def
      name: IP_TRANSPARENT
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '19'
    - item_type: preproc_def
      name: IPV6_TRANSPARENT
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '75'
    - item_type: preproc_def
      name: SO_REUSEPORT
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SO_REUSEPORT
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: TCP_FASTOPEN
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '23'
    - item_type: preproc_def
      name: TCP_FASTOPEN_CONNECT
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '30'
    - item_type: preproc_def
      name: malloc_usable_size
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: malloc_size
    - item_type: preproc_def
      name: TCP_KEEPIDLE
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: TCP_KEEPALIVE
    - item_type: preproc_def
      name: TCP_INFO
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: TCP_CONNECTION_INFO
    - item_type: preproc_def
      name: tcp_info
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: tcp_connection_info
    - item_type: preproc_def
      name: MAX_SEND_FD
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '252'
    - item_type: preproc_def
      name: CLOCK_MONOTONIC_COARSE
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: CLOCK_MONOTONIC_FAST
    - item_type: preproc_def
      name: queue
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: _queue
    - item_type: preproc_def
      name: HA_HAVE_MPTCP
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IPPROTO_MPTCP
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/haproxy/include/haproxy/compat.h
      type_or_value: '262'
    structs:
    - fields: []
      item_type: struct
      name: empty_t
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/haproxy/include/haproxy/compat.h
    typedefs:
    - item_type: typedef
      name: schar
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/haproxy/include/haproxy/compat.h
      type: signed char
    - item_type: typedef
      name: uchar
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/haproxy/include/haproxy/compat.h
      type: unsigned char
    - item_type: typedef
      name: ushort
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/haproxy/include/haproxy/compat.h
      type: unsigned short
    - item_type: typedef
      name: uint
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/haproxy/include/haproxy/compat.h
      type: unsigned int
    - item_type: typedef
      name: ulong
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/haproxy/include/haproxy/compat.h
      type: unsigned long
    - item_type: typedef
      name: ullong
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/haproxy/include/haproxy/compat.h
      type: unsigned long long
    - item_type: typedef
      name: llong
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/haproxy/include/haproxy/compat.h
      type: long long
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/dns_ring-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: buf
        type: struct buffer
      - name: waiters
        type: struct mt_list
      - name: readers_count
        type: int
      item_type: struct
      name: dns_ring
      pos:
        line_end: 100
        line_start: 95
        source_file: /src/haproxy/include/haproxy/dns_ring-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_fwlc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_cc_state_str
  - quic_cc_event_trace
  - quic_cc_priv
  - quic_cc_path_init
  - quic_cc_path_prep_data
  source_file: /src/haproxy/include/haproxy/quic_cc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_token.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_TOKEN_RAND_LEN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/include/haproxy/quic_token.h
      type_or_value: '16'
    - item_type: preproc_def
      name: QUIC_TOKEN_LEN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/quic_token.h
      type_or_value: (1 + sizeof(uint32_t) + QUIC_TLS_TAG_LEN + QUIC_TOKEN_RAND_LEN)
    - item_type: preproc_def
      name: QUIC_TOKEN_DURATION_SEC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/quic_token.h
      type_or_value: (7 * 24 * 3600) // 7 days in seconds
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/dgram.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/debug.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HA_SPIN_TRYLOCK
  - HA_RWLOCK_TRYWRLOCK
  - HA_RWLOCK_TRYRDLOCK
  - HA_RWLOCK_TRYSKLOCK
  - HA_RWLOCK_TRYRDTOSK
  - HA_RWLOCK_TRYRDTOWR
  - ha_sigmask
  - ha_set_thread
  - thread_idle_now
  - thread_idle_end
  - thread_harmless_now
  - is_thread_harmless
  - thread_harmless_end
  - thread_harmless_end_sig
  - thread_isolate
  - thread_isolate_full
  - thread_release
  - thread_isolated
  - setup_extra_threads
  - wait_for_threads_completion
  - set_thread_cpu_affinity
  - ha_get_pthread_id
  - cshared_init
  - cshared_add
  - cshared_read
  - ha_sigmask
  - ha_set_thread
  - thread_idle_now
  - thread_idle_end
  - thread_harmless_now
  - is_thread_harmless
  - thread_harmless_end
  - thread_harmless_end_sig
  - thread_isolated
  - _lock_wait
  - _lock_cond
  - _lock_wait_common
  - _lock_wait
  - _lock_cond
  - cshared_init
  - cshared_add
  - cshared_read
  - HA_SPIN_INIT
  - HA_SPIN_DESTROY
  - HA_SPIN_LOCK
  - HA_SPIN_TRYLOCK
  - HA_SPIN_UNLOCK
  - HA_RWLOCK_INIT
  - HA_RWLOCK_DESTROY
  - HA_RWLOCK_WRLOCK
  - HA_RWLOCK_TRYWRLOCK
  - HA_RWLOCK_WRUNLOCK
  - HA_RWLOCK_RDLOCK
  - HA_RWLOCK_TRYRDLOCK
  - HA_RWLOCK_RDUNLOCK
  - HA_RWLOCK_SKLOCK
  - HA_RWLOCK_SKTOWR
  - HA_RWLOCK_WRTOSK
  - HA_RWLOCK_SKTORD
  - HA_RWLOCK_WRTORD
  - HA_RWLOCK_SKUNLOCK
  - HA_RWLOCK_TRYSKLOCK
  - HA_RWLOCK_TRYRDTOSK
  - HA_RWLOCK_TRYRDTOWR
  - __SPIN_INIT
  - __SPIN_DESTROY
  - __SPIN_LOCK
  - __SPIN_TRYLOCK
  - __SPIN_UNLOCK
  - __RWLOCK_INIT
  - __RWLOCK_DESTROY
  - __RWLOCK_WRLOCK
  - __RWLOCK_TRYWRLOCK
  - __RWLOCK_WRUNLOCK
  - __RWLOCK_RDLOCK
  - __RWLOCK_TRYRDLOCK
  - __RWLOCK_RDUNLOCK
  - __RWLOCK_SKLOCK
  - __RWLOCK_SKTOWR
  - __RWLOCK_WRTOSK
  - __RWLOCK_SKTORD
  - __RWLOCK_WRTORD
  - __RWLOCK_SKUNLOCK
  - __RWLOCK_TRYSKLOCK
  - __RWLOCK_TRYRDTOSK
  - __RWLOCK_TRYRDTOWR
  - HA_SPIN_INIT
  - HA_SPIN_DESTROY
  - HA_SPIN_LOCK
  - HA_SPIN_TRYLOCK
  - HA_SPIN_UNLOCK
  - HA_RWLOCK_INIT
  - HA_RWLOCK_DESTROY
  - HA_RWLOCK_WRLOCK
  - HA_RWLOCK_TRYWRLOCK
  - HA_RWLOCK_WRUNLOCK
  - HA_RWLOCK_RDLOCK
  - HA_RWLOCK_TRYRDLOCK
  - HA_RWLOCK_RDUNLOCK
  - HA_RWLOCK_SKLOCK
  - HA_RWLOCK_SKTOWR
  - HA_RWLOCK_WRTOSK
  - HA_RWLOCK_SKTORD
  - HA_RWLOCK_WRTORD
  - HA_RWLOCK_SKUNLOCK
  - HA_RWLOCK_TRYSKLOCK
  - HA_RWLOCK_TRYRDTOSK
  - HA_RWLOCK_TRYRDTOWR
  source_file: /src/haproxy/include/haproxy/thread.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _LK_UN
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/haproxy/include/haproxy/thread.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _LK_RD
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/haproxy/include/haproxy/thread.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _LK_SK
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/haproxy/include/haproxy/thread.h
      type_or_value: '2'
    - item_type: preproc_def
      name: _LK_WR
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/haproxy/include/haproxy/thread.h
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/mailers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/hstream-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: '*sess'
        type: struct session
      - name: '*sc'
        type: struct stconn
      - name: '*task'
        type: struct task
      - name: req
        type: struct buffer
      - name: res
        type: struct buffer
      - name: to_write
        type: unsigned long long
      - name: buf_wait
        type: struct buffer_wait
      - name: flags
        type: int
      - name: ka
        type: int
      - name: req_size
        type: unsigned long long
      - name: req_code
        type: int
      - name: res_wait
        type: int
      - name: res_time
        type: int
      - name: req_meth
        type: enum http_meth_t
      item_type: struct
      name: hstream
      pos:
        line_end: 28
        line_start: 8
        source_file: /src/haproxy/include/haproxy/hstream-t.h
    typedefs: []
    union: []
- function_names:
  - http_set_hdr
  - http_del_hdr
  source_file: /src/haproxy/include/haproxy/http-hdr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/qcm_trace.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/haproxy/include/haproxy/qcm_trace.h
      type_or_value: '&trace_qcm'
    structs:
    - fields:
      - name: prep
        type: size_t
      - name: xfer
        type: int
      item_type: struct
      name: qcs_xfer_data_trace_arg
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/haproxy/include/haproxy/qcm_trace.h
    - fields:
      - name: len
        type: size_t
      - name: fin
        type: char
      - name: offset
        type: uint64_t
      item_type: struct
      name: qcs_build_stream_trace_arg
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/haproxy/include/haproxy/qcm_trace.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HA_CPU_F_EXCLUDED
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
      type_or_value: 0x0001  // this CPU was excluded at boot
    - item_type: preproc_def
      name: HA_CPU_F_OFFLINE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
      type_or_value: 0x0002  // this CPU is known to be offline
    - item_type: preproc_def
      name: HA_CPU_F_DONT_USE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
      type_or_value: 0x0004  // this CPU must not be used
    - item_type: preproc_def
      name: HA_CPU_F_IGNORED
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
      type_or_value: 0x0008  // this CPU will not be used
    - item_type: preproc_def
      name: HA_CPU_F_EXCL_MASK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
      type_or_value: 0x000F  // mask of bits that exclude a CPU
    - item_type: preproc_def
      name: HA_CPU_F_MARK1
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
      type_or_value: 0x0010  // for temporary internal use only
    - item_type: preproc_def
      name: HA_CPU_F_MARK2
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
      type_or_value: 0x0020  // for temporary internal use only
    - item_type: preproc_def
      name: HA_CPU_F_MARK_MASK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
      type_or_value: 0x0030  // mask to drop the two marks above
    structs:
    - fields:
      - name: st
        type: ushort
      - name: idx
        type: short
      - name: ca_id[5]
        type: short
      - name: ts_id
        type: short
      - name: cl_gid
        type: short
      - name: cl_lid
        type: short
      - name: no_id
        type: short
      - name: pk_id
        type: short
      - name: th_cnt
        type: short
      - name: th_id
        type: short
      - name: capa
        type: short
      item_type: struct
      name: ha_cpu_topo
      pos:
        line_end: 41
        line_start: 29
        source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
    - fields:
      - name: idx
        type: uint
      - name: capa
        type: uint
      - name: nb_cores
        type: uint
      - name: nb_cpu
        type: uint
      item_type: struct
      name: ha_cpu_cluster
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
    - fields:
      - name: '*name'
        type: char
      - name: '*desc'
        type: char
      - name: (*fct)(int policy, int tmin, int tmax, int gmin, int gmax, char **err)
        type: int
      - name: arg
        type: int
      item_type: struct
      name: ha_cpu_policy
      pos:
        line_end: 65
        line_start: 60
        source_file: /src/haproxy/include/haproxy/cpu_topo-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/acl-t.h
  types:
    enum:
    - enumerators:
      - name: ACL_TEST_FAIL
        value: '0'
      - name: ACL_TEST_MISS
        value: '1'
      - name: ACL_TEST_PASS
        value: '3'
      item_type: enum
      name: acl_test_res
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/haproxy/include/haproxy/acl-t.h
    - enumerators:
      - name: ACL_COND_NONE
      - name: ACL_COND_UNLESS
      - name: ACL_COND_IF
      item_type: enum
      name: acl_cond_pol
      pos:
        line_end: 62
        line_start: 58
        source_file: /src/haproxy/include/haproxy/acl-t.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*kw'
        type: char
      - name: '*fetch_kw'
        type: char
      - name: match_type
        type: int
      - name: (*parse)(const char *text, struct pattern *pattern, int flags, char
          **err)
        type: int
      - name: (*index)(struct pattern_expr *expr, struct pattern *pattern, char **err)
        type: int
      - name: (*delete)(struct pat_ref *, struct pat_ref_elt *)
        type: void
      - name: (*prune)(struct pattern_expr *expr)
        type: void
      - name: '*(*match)(struct sample *smp, struct pattern_expr *expr, int fill)'
        type: struct pattern
      - name: '*smp'
        type: struct sample_fetch
      item_type: struct
      name: acl_keyword
      pos:
        line_end: 88
        line_start: 77
        source_file: /src/haproxy/include/haproxy/acl-t.h
    - fields:
      - name: list
        type: struct list
      - name: kw[VAR_ARRAY]
        type: struct acl_keyword
      item_type: struct
      name: acl_kw_list
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/haproxy/include/haproxy/acl-t.h
    - fields:
      - name: '*smp'
        type: struct sample_expr
      - name: pat
        type: struct pattern_head
      - name: list
        type: struct list
      - name: '*kw'
        type: char
      item_type: struct
      name: acl_expr
      pos:
        line_end: 113
        line_start: 108
        source_file: /src/haproxy/include/haproxy/acl-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*name'
        type: char
      - name: expr
        type: struct list
      - name: use
        type: unsigned int
      - name: val
        type: unsigned int
      item_type: struct
      name: acl
      pos:
        line_end: 122
        line_start: 116
        source_file: /src/haproxy/include/haproxy/acl-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*acl'
        type: struct acl
      - name: neg
        type: int
      item_type: struct
      name: acl_term
      pos:
        line_end: 129
        line_start: 125
        source_file: /src/haproxy/include/haproxy/acl-t.h
    - fields:
      - name: list
        type: struct list
      - name: terms
        type: struct list
      item_type: struct
      name: acl_term_suite
      pos:
        line_end: 134
        line_start: 131
        source_file: /src/haproxy/include/haproxy/acl-t.h
    - fields:
      - name: list
        type: struct list
      - name: suites
        type: struct list
      - name: pol
        type: enum acl_cond_pol
      - name: use
        type: unsigned int
      - name: val
        type: unsigned int
      - name: '*file'
        type: char
      - name: line
        type: int
      item_type: struct
      name: acl_cond
      pos:
        line_end: 144
        line_start: 136
        source_file: /src/haproxy/include/haproxy/acl-t.h
    - fields:
      - name: cond
        type: struct acl_cond
      - name: suite
        type: struct acl_term_suite
      - name: terms[]
        type: struct acl_term
      item_type: struct
      name: acl_sample
      pos:
        line_end: 150
        line_start: 146
        source_file: /src/haproxy/include/haproxy/acl-t.h
    typedefs: []
    union: []
- function_names:
  - POWEROF2
  - MID_RANGE
  - MAX_RANGE
  - HAP_STRING
  - HAP_XSTRING
  source_file: /src/haproxy/include/haproxy/tools-t.h
  types:
    enum:
    - enumerators:
      - name: SCH_HTTP
      - name: SCH_HTTPS
      item_type: enum
      name: http_scheme
      pos:
        line_end: 127
        line_start: 124
        source_file: /src/haproxy/include/haproxy/tools-t.h
    preproc_defs:
    - item_type: preproc_def
      name: NB_LLMAX_STR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: (sizeof("-9223372036854775807")-1)
    - item_type: preproc_def
      name: NB_ITOA_STR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '16'
    - item_type: preproc_def
      name: QSTR_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '200'
    - item_type: preproc_def
      name: NB_QSTR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '10'
    - item_type: preproc_def
      name: PARSE_OPT_SHARP
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000001      // '#' ends the line
    - item_type: preproc_def
      name: PARSE_OPT_BKSLASH
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000002      // '\' escapes chars
    - item_type: preproc_def
      name: PARSE_OPT_SQUOTE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000004      // "'" encloses a string
    - item_type: preproc_def
      name: PARSE_OPT_DQUOTE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000008      // '"' encloses a string
    - item_type: preproc_def
      name: PARSE_OPT_ENV
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000010      // '$' is followed by environment variables
    - item_type: preproc_def
      name: PARSE_OPT_INPLACE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000020      // parse and tokenize in-place (src == dst)
    - item_type: preproc_def
      name: PARSE_OPT_WORD_EXPAND
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000040      // '[*]' suffix to expand an environment variable
        as several individual arguments
    - item_type: preproc_def
      name: PARSE_ERR_TOOLARGE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000001      // result is too large for initial outlen
    - item_type: preproc_def
      name: PARSE_ERR_TOOMANY
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000002      // more words than initial nbargs
    - item_type: preproc_def
      name: PARSE_ERR_QUOTE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000004      // unmatched quote (offending one at errptr)
    - item_type: preproc_def
      name: PARSE_ERR_BRACE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000008      // unmatched brace (offending one at errptr)
    - item_type: preproc_def
      name: PARSE_ERR_HEX
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000010      // unparsable hex sequence (at errptr)
    - item_type: preproc_def
      name: PARSE_ERR_VARNAME
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000020      // invalid variable name (at errptr)
    - item_type: preproc_def
      name: PARSE_ERR_OVERLAP
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000040      // output overlaps with input, need to allocate
    - item_type: preproc_def
      name: PARSE_ERR_WRONG_EXPAND
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: 0x00000080      // unparsable word expansion sequence
    - item_type: preproc_def
      name: PARSE_TIME_UNDER
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: ((char *)1)
    - item_type: preproc_def
      name: PARSE_TIME_OVER
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: ((char *)2)
    - item_type: preproc_def
      name: TIME_UNIT_US
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: TIME_UNIT_MS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TIME_UNIT_S
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: TIME_UNIT_MIN
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: TIME_UNIT_HOUR
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: TIME_UNIT_DAY
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0005'
    - item_type: preproc_def
      name: TIME_UNIT_MASK
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0007'
    - item_type: preproc_def
      name: SEC
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MINUTE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: (60 * SEC)
    - item_type: preproc_def
      name: HOUR
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: (60 * MINUTE)
    - item_type: preproc_def
      name: DAY
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: (24 * HOUR)
    - item_type: preproc_def
      name: PA_O_RESOLVE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000001   '
    - item_type: preproc_def
      name: PA_O_PORT_OK
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000002   '
    - item_type: preproc_def
      name: PA_O_PORT_MAND
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000004   '
    - item_type: preproc_def
      name: PA_O_PORT_RANGE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000008   '
    - item_type: preproc_def
      name: PA_O_PORT_OFS
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000010   '
    - item_type: preproc_def
      name: PA_O_SOCKET_FD
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000020   '
    - item_type: preproc_def
      name: PA_O_RAW_FD
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000040   '
    - item_type: preproc_def
      name: PA_O_DGRAM
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000080   '
    - item_type: preproc_def
      name: PA_O_STREAM
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000100   '
    - item_type: preproc_def
      name: PA_O_XPRT
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000200   '
    - item_type: preproc_def
      name: PA_O_CONNECT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000400   '
    - item_type: preproc_def
      name: PA_O_DEFAULT_DGRAM
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000800   '
    - item_type: preproc_def
      name: UTF8_CODE_OK
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: UTF8_CODE_OVERLONG
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: UTF8_CODE_INVRANGE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: UTF8_CODE_BADSEQ
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x40'
    structs:
    - fields:
      - name: scheme
        type: enum http_scheme
      - name: '*host'
        type: char
      - name: host_len
        type: int
      item_type: struct
      name: split_url
      pos:
        line_end: 134
        line_start: 130
        source_file: /src/haproxy/include/haproxy/tools-t.h
    - fields:
      - name: '*name'
        type: char
      - name: '*desc'
        type: char
      item_type: struct
      name: name_desc
      pos:
        line_end: 140
        line_start: 137
        source_file: /src/haproxy/include/haproxy/tools-t.h
    - fields:
      - name: family
        type: int
      - name: addr
        type: "union {\n\t\tstruct {\n\t\t\tstruct in_addr ip;\n\t\t\tstruct in_addr
          mask;\n\t\t} v4;\n\t\tstruct {\n\t\t\tstruct in6_addr ip;\n\t\t\tstruct
          in6_addr mask;\n\t\t} v6;\n\t}"
      item_type: struct
      name: net_addr
      pos:
        line_end: 154
        line_start: 142
        source_file: /src/haproxy/include/haproxy/tools-t.h
    - fields:
      - name: proto_type
        type: int
      - name: xprt_type
        type: int
      item_type: struct
      name: net_addr_type
      pos:
        line_end: 160
        line_start: 157
        source_file: /src/haproxy/include/haproxy/tools-t.h
    - fields:
      - name: "*(*e_fct_byte)(struct cbor_encode_ctx *ctx,\n\t                    char
          *start, char *stop, uint8_t byte)"
        type: char
      - name: '*e_fct_ctx'
        type: void
      item_type: struct
      name: cbor_encode_ctx
      pos:
        line_end: 176
        line_start: 164
        source_file: /src/haproxy/include/haproxy/tools-t.h
    - fields:
      - name: node
        type: struct ceb_node
      - name: name[VAR_ARRAY]
        type: char
      item_type: struct
      name: file_name_node
      pos:
        line_end: 188
        line_start: 185
        source_file: /src/haproxy/include/haproxy/tools-t.h
    - fields:
      - name: l
        type: uint64_t
      - name: h
        type: uint64_t
      item_type: struct
      name: uint64_pair
      pos:
        line_end: 196
        line_start: 193
        source_file: /src/haproxy/include/haproxy/tools-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/stats-html-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STAT_SCOPE_TXT_MAXLEN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/haproxy/include/haproxy/stats-html-t.h
      type_or_value: '20      '
    - item_type: preproc_def
      name: STAT_SCOPE_INPUT_NAME
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/haproxy/include/haproxy/stats-html-t.h
      type_or_value: '"scope" '
    - item_type: preproc_def
      name: STAT_SCOPE_PATTERN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/haproxy/include/haproxy/stats-html-t.h
      type_or_value: '"?" STAT_SCOPE_INPUT_NAME "="'
    structs: []
    typedefs: []
    union: []
- function_names:
  - XXH3
  source_file: /src/haproxy/include/haproxy/xxhash.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/mworker.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ncbuf_common-t.h
  types:
    enum:
    - enumerators:
      - name: NCB_RET_OK
        value: '0'
      - name: NCB_RET_DATA_REJ
      - name: NCB_RET_GAP_SIZE
      item_type: enum
      name: ncb_ret
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/haproxy/include/haproxy/ncbuf_common-t.h
    - enumerators:
      - name: NCB_ADD_PRESERVE
      - name: NCB_ADD_OVERWRT
      - name: NCB_ADD_COMPARE
      item_type: enum
      name: ncb_add_mode
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/haproxy/include/haproxy/ncbuf_common-t.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncb_sz_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/haproxy/include/haproxy/ncbuf_common-t.h
      type: uint32_t
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/proto_tcp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_pacing_init
  source_file: /src/haproxy/include/haproxy/quic_pacing.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/compression-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMP_DIR_REQ
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/compression-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: COMP_DIR_RES
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/compression-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: COMP_FL_OFFLOAD
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/compression-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: COMP_FL_DIR_REQ
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/compression-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: COMP_FL_DIR_RES
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/compression-t.h
      type_or_value: '0x00000004 '
    structs:
    - fields:
      - name: '*algos_res'
        type: struct comp_algo
      - name: '*algo_req'
        type: struct comp_algo
      - name: '*types_req'
        type: struct comp_type
      - name: '*types_res'
        type: struct comp_type
      - name: minsize_res
        type: unsigned int
      - name: minsize_req
        type: unsigned int
      - name: flags
        type: unsigned int
      item_type: struct
      name: comp
      pos:
        line_end: 55
        line_start: 47
        source_file: /src/haproxy/include/haproxy/compression-t.h
    - fields:
      - name: cur_lvl
        type: int
      item_type: struct
      name: comp_ctx
      pos:
        line_end: 72
        line_start: 57
        source_file: /src/haproxy/include/haproxy/compression-t.h
    - fields:
      - name: '*cfg_name'
        type: char
      - name: cfg_name_len
        type: int
      - name: '*ua_name'
        type: char
      - name: ua_name_len
        type: int
      - name: (*init)(struct comp_ctx **comp_ctx, int level)
        type: int
      - name: (*add_data)(struct comp_ctx *comp_ctx, const char *in_data, int in_len,
          struct buffer *out)
        type: int
      - name: (*flush)(struct comp_ctx *comp_ctx, struct buffer *out)
        type: int
      - name: (*finish)(struct comp_ctx *comp_ctx, struct buffer *out)
        type: int
      - name: (*end)(struct comp_ctx **comp_ctx)
        type: int
      - name: '*next'
        type: struct comp_algo
      item_type: struct
      name: comp_algo
      pos:
        line_end: 93
        line_start: 80
        source_file: /src/haproxy/include/haproxy/compression-t.h
    - fields:
      - name: '*name'
        type: char
      - name: name_len
        type: int
      - name: '*next'
        type: struct comp_type
      item_type: struct
      name: comp_type
      pos:
        line_end: 99
        line_start: 95
        source_file: /src/haproxy/include/haproxy/compression-t.h
    typedefs: []
    union: []
- function_names:
  - uri_normalizer_fragment_strip
  source_file: /src/haproxy/include/haproxy/uri_normalizer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - enc_debug_info_init
  source_file: /src/haproxy/include/haproxy/quic_trace.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/quic_trace.h
      type_or_value: '&trace_quic'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_tx-t.h
  types:
    enum:
    - enumerators:
      - name: QC_BUILD_PKT_ERR_NONE
        value: '0'
      - name: QC_BUILD_PKT_ERR_ENCRYPT
      - name: QC_BUILD_PKT_ERR_ALLOC
      - name: QC_BUILD_PKT_ERR_BUFROOM
      item_type: enum
      name: qc_build_pkt_err
      pos:
        line_end: 86
        line_start: 81
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
    - enumerators:
      - name: QUIC_TX_ERR_NONE
      - name: QUIC_TX_ERR_PACING
      - name: QUIC_TX_ERR_FATAL
      item_type: enum
      name: quic_tx_err
      pos:
        line_end: 92
        line_start: 88
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_MIN_CC_PKTSIZE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
      type_or_value: '128'
    - item_type: preproc_def
      name: QUIC_DGRAM_HEADLEN
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
      type_or_value: (sizeof(uint16_t) + sizeof(void *))
    - item_type: preproc_def
      name: QUIC_MAX_CC_BUFSIZE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
      type_or_value: _MAX(QUIC_INITIAL_IPV6_MTU, QUIC_INITIAL_IPV4_MTU)
    - item_type: preproc_def
      name: QUIC_MAX_GSO_DGRAMS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
      type_or_value: '52'
    - item_type: preproc_def
      name: QUIC_FL_TX_PACKET_ACK_ELICITING
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
      type_or_value: (1UL << 0)
    - item_type: preproc_def
      name: QUIC_FL_TX_PACKET_PADDING
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
      type_or_value: (1UL << 1)
    - item_type: preproc_def
      name: QUIC_FL_TX_PACKET_IN_FLIGHT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
      type_or_value: (QUIC_FL_TX_PACKET_ACK_ELICITING | QUIC_FL_TX_PACKET_PADDING)
    - item_type: preproc_def
      name: QUIC_FL_TX_PACKET_CC
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
      type_or_value: (1UL << 2)
    - item_type: preproc_def
      name: QUIC_FL_TX_PACKET_ACK
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
      type_or_value: (1UL << 3)
    - item_type: preproc_def
      name: QUIC_FL_TX_PACKET_COALESCED
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
      type_or_value: (1UL << 4)
    - item_type: preproc_def
      name: QUIC_FL_TX_PACKET_PROBE_WITH_OLD_DATA
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
      type_or_value: (1UL << 5)
    structs:
    - fields:
      - name: list
        type: struct list
      - name: len
        type: size_t
      - name: in_flight_len
        type: size_t
      - name: pn_node
        type: struct eb64_node
      - name: frms
        type: struct list
      - name: time_sent_ms
        type: unsigned int
      - name: time_sent_ns
        type: uint64_t
      - name: '*pktns'
        type: struct quic_pktns
      - name: flags
        type: unsigned int
      - name: refcnt
        type: int
      - name: '*next'
        type: struct quic_tx_packet
      - name: '*prev'
        type: struct quic_tx_packet
      - name: largest_acked_pn
        type: int64_t
      - name: rs
        type: "struct {\n\t\tuint64_t delivered;\n\t\tuint64_t tx_in_flight;\n\t\tuint64_t
          lost;\n\t\tint64_t end_seq;\n\t\tuint64_t delivered_time_ns;\n\t\tuint64_t
          first_sent_time_ns;\n\t\tint is_app_limited;\n\t}"
      - name: type
        type: unsigned char
      item_type: struct
      name: quic_tx_packet
      pos:
        line_end: 78
        line_start: 40
        source_file: /src/haproxy/include/haproxy/quic_tx-t.h
    typedefs: []
    union: []
- function_names:
  - DEFVAL
  - DEFNULL
  - DEFZERO
  - _FIRST_ARG
  - _____equals_1
  - ____equals_1
  - ___equals_1
  - __equals_1
  - _____equals_0
  - ____equals_0
  - ___equals_0
  - __equals_0
  - _____def_as_empty
  - ____def_as_empty
  - ___def_as_empty
  - __def_as_empty
  - __has_attribute
  - __has_builtin
  - __attribute__
  - __attribute__warning
  - __attribute__warning
  - __attribute__warning
  - HA_SECTION
  - HA_SECTION_START
  - HA_SECTION_STOP
  - HA_SECTION
  - __HA_WEAK
  - __HA_WEAK
  - HA_WEAK
  - __HA_GLOBL
  - HA_GLOBL
  - my_unreachable
  - my_unreachable
  - my_unreachable
  - ASSUME
  - ASSUME_NONNULL
  - ASSUME
  - ASSUME_NONNULL
  - ASSUME
  - ASSUME_NONNULL
  - DO_NOT_FOLD
  - ALREADY_CHECKED
  - DISGUISE
  - ONLY_ONCE
  - _TOSTR
  - TOSTR
  - _CONCAT
  - CONCAT
  - __builtin_expect
  - likely
  - unlikely
  - likely
  - unlikely
  - __builtin_prefetch
  - __GNUC_PREREQ__
  - __GNUC_PREREQ__
  - offsetof
  - offsetof
  - container_of
  - container_of_safe
  - ENUM_ATTRIBUTE
  - ALIGNED
  - MAYBE_ALIGNED
  - ATOMIC_ALIGNED
  - THREAD_ALIGNED
  - ALWAYS_ALIGN
  - MAYBE_ALIGN
  - ATOMIC_ALIGN
  - THREAD_ALIGN
  - _PAD
  - _THREAD_PAD
  - THREAD_PAD
  - _ALWAYS_PAD
  - ALWAYS_PAD
  - __decl_thread
  - __decl_thread_var
  - __decl_thread_var
  - __has_feature
  source_file: /src/haproxy/include/haproxy/compiler.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VAR_ARRAY
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: '0'
    - item_type: preproc_def
      name: comma_for_one1
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: ','
    - item_type: preproc_def
      name: comma_for_zero0
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: ','
    - item_type: preproc_def
      name: comma_for_empty
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: ','
    - item_type: preproc_def
      name: __fallthrough
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: do { } while (0); __attribute__((fallthrough))
    - item_type: preproc_def
      name: __fallthrough
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: do { } while (0)
    - item_type: preproc_def
      name: __has_attribute_warning
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: '1'
    - item_type: preproc_def
      name: forceinline
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: inline
    - item_type: preproc_def
      name: forceinline
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: inline __attribute__((always_inline))
    - item_type: preproc_def
      name: __maybe_unused
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: __attribute__((unused))
    - item_type: preproc_def
      name: USE_OBSOLETE_LINKER
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: '1'
    - item_type: preproc_def
      name: __read_mostly
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: HA_SECTION("read_mostly")
    - item_type: preproc_def
      name: __has_builtin___builtin_unreachable
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CACHELINE_SIZE
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: '64'
    - item_type: preproc_def
      name: THREAD_LOCAL
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: __thread
    - item_type: preproc_def
      name: __nonstring
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: __attribute__ ((nonstring))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/acme-t.h
  types:
    enum:
    - enumerators:
      - name: ACME_NEWORDER
      - name: ACME_CHKORDER
      - name: ACME_RSLV_RETRY_DELAY
      - name: ACME_CHKCHALLENGE
      - name: ACME_NEWNONCE
      - name: ACME_AUTH
      - name: ACME_CLI_WAIT
      - name: ACME_CERTIFICATE
      - name: ACME_RSLV_TRIGGER
      - name: ACME_FINALIZE
      - name: ACME_END
      - name: ACME_CHKACCOUNT
      - name: ACME_INITIAL_RSLV_TRIGGER
      - name: ACME_INITIAL_DELAY
      - name: ACME_RSLV_READY
      - name: ACME_RESOURCES
        value: '0'
      - name: ACME_NEWACCOUNT
      - name: ACME_INITIAL_RSLV_READY
      - name: ACME_CHALLENGE
      item_type: enum
      name: acme_st
      pos:
        line_end: 78
        line_start: 58
        source_file: /src/haproxy/include/haproxy/acme-t.h
    - enumerators:
      - name: ACME_HTTP_REQ
      - name: ACME_HTTP_RES
      item_type: enum
      name: http_st
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/haproxy/include/haproxy/acme-t.h
    preproc_defs:
    - item_type: preproc_def
      name: ACME_RETRY
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '5'
    - item_type: preproc_def
      name: ACME_RDY_NONE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ACME_RDY_CLI
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ACME_RDY_DNS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: ACME_RDY_DELAY
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: ACME_RDY_INITIAL_DNS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: ACME_EV_SCHED
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '(1ULL <<  0)  '
    - item_type: preproc_def
      name: ACME_EV_NEW
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '(1ULL <<  1)  '
    - item_type: preproc_def
      name: ACME_EV_TASK
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '(1ULL <<  2)  '
    - item_type: preproc_def
      name: ACME_EV_REQ
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '(1ULL <<  3)  '
    - item_type: preproc_def
      name: ACME_EV_RES
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '(1ULL <<  4)  '
    - item_type: preproc_def
      name: ACME_VERB_CLEAN
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ACME_VERB_MINIMAL
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ACME_VERB_SIMPLE
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ACME_VERB_ADVANCED
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ACME_VERB_COMPLETE
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '5'
    structs:
    - fields:
      - name: '*filename'
        type: char
      - name: linenum
        type: int
      - name: '*name'
        type: char
      - name: reuse_key
        type: int
      - name: cond_ready
        type: int
      - name: dns_delay
        type: unsigned int
      - name: dns_timeout
        type: unsigned int
      - name: '*directory'
        type: char
      - name: '*map'
        type: char
      - name: account
        type: "struct {\n\t\tchar *contact;      /* email associated to account */\n\t\tchar
          *file;         /* account key filename */\n\t\tEVP_PKEY *pkey;     /* account
          PKEY */\n\t\tchar *thumbprint;   /* account PKEY JWS thumbprint */\n\t}"
      - name: key
        type: "struct {\n\t\tint type;                   /* EVP_PKEY_EC or EVP_PKEY_RSA
          */\n\t\tint bits;                   /* bits for RSA */\n\t\tint curves;
          \                /* NID of curves */\n\t}"
      - name: eab
        type: "struct {\n\t\tchar *kid_file;        /* EAB key id filename */\n\t\tchar
          *mac_key_file;    /* base64url encoded EAB hmac key filename */\n\t\tchar
          *kid;             /* EAB key id */\n\t\tstruct buffer mac_key; /* raw EAB
          hmac key */\n\t\tenum jwt_alg mac_alg;  /* MAC algorithm for EAB signature
          */\n\t}"
      - name: '*challenge'
        type: char
      - name: '*profile'
        type: char
      - name: '*vars'
        type: char
      - name: '*provider'
        type: char
      - name: '*next'
        type: struct acme_cfg
      item_type: struct
      name: acme_cfg
      pos:
        line_end: 56
        line_start: 22
        source_file: /src/haproxy/include/haproxy/acme-t.h
    - fields:
      - name: dns
        type: struct ist
      - name: auth
        type: struct ist
      - name: chall
        type: struct ist
      - name: token
        type: struct ist
      - name: validated
        type: int
      - name: '*rslv'
        type: struct acme_rslv
      - name: ready
        type: int
      - name: '*next'
        type: void
      item_type: struct
      name: acme_auth
      pos:
        line_end: 94
        line_start: 85
        source_file: /src/haproxy/include/haproxy/acme-t.h
    - fields:
      - name: state
        type: enum acme_st
      - name: http_state
        type: enum http_st
      - name: retries
        type: int
      - name: retryafter
        type: int
      - name: '*hc'
        type: struct httpclient
      - name: '*cfg'
        type: struct acme_cfg
      - name: '*store'
        type: struct ckch_store
      - name: resources
        type: "struct {\n\t\tstruct ist newNonce;\n\t\tstruct ist newAccount;\n\t\tstruct
          ist newOrder;\n\t}"
      - name: nonce
        type: struct ist
      - name: kid
        type: struct ist
      - name: order
        type: struct ist
      - name: '*auths'
        type: struct acme_auth
      - name: '*next_auth'
        type: struct acme_auth
      - name: '*req'
        type: X509_REQ
      - name: finalize
        type: struct ist
      - name: certificate
        type: struct ist
      - name: dnstasks
        type: unsigned int
      - name: dnsstarttime
        type: unsigned int
      - name: '*task'
        type: struct task
      - name: node
        type: struct ebmb_node
      - name: name[VAR_ARRAY]
        type: char
      item_type: struct
      name: acme_ctx
      pos:
        line_end: 123
        line_start: 97
        source_file: /src/haproxy/include/haproxy/acme-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/mworker-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROC_O_TYPE_MASTER
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/include/haproxy/mworker-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: PROC_O_TYPE_WORKER
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/include/haproxy/mworker-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: PROC_O_LEAVING
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/include/haproxy/mworker-t.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: PROC_O_INIT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/include/haproxy/mworker-t.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: PROC_O_START_RELOAD
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/mworker-t.h
      type_or_value: '0x00000100  '
    structs:
    - fields:
      - name: pid
        type: int
      - name: options
        type: int
      - name: '*id'
        type: char
      - name: '**command'
        type: char
      - name: '*path'
        type: char
      - name: '*version'
        type: char
      - name: ipc_fd[2]
        type: int
      - name: reloads
        type: int
      - name: failedreloads
        type: int
      - name: timestamp
        type: int
      - name: '*srv'
        type: struct server
      - name: list
        type: struct list
      - name: uid
        type: int
      - name: gid
        type: int
      item_type: struct
      name: mworker_proc
      pos:
        line_end: 50
        line_start: 35
        source_file: /src/haproxy/include/haproxy/mworker-t.h
    typedefs: []
    union: []
- function_names:
  - qc_free_ssl_sock_ctx
  - qc_ssl_eary_data_accepted
  - quic_ssl_early_data_status_str
  - qc_ssl_eary_data_accepted
  - quic_ssl_early_data_status_str
  source_file: /src/haproxy/include/haproxy/quic_ssl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_tls-t.h
  types:
    enum:
    - enumerators:
      - name: QUIC_HS_ST_CLIENT_HANDSHAKE_FAILED
      - name: QUIC_HS_ST_CLIENT_INITIAL
      - name: QUIC_HS_ST_SERVER_INITIAL
      - name: QUIC_HS_ST_SERVER_HANDSHAKE_FAILED
      - name: QUIC_HS_ST_CLIENT_HANDSHAKE
      - name: QUIC_HS_ST_SERVER_HANDSHAKE
      - name: QUIC_HS_ST_COMPLETE
      - name: QUIC_HS_ST_CONFIRMED
      item_type: enum
      name: quic_handshake_state
      pos:
        line_end: 131
        line_start: 118
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
    - enumerators:
      - name: QUIC_TLS_ENC_LEVEL_NONE
        value: '-1'
      - name: QUIC_TLS_ENC_LEVEL_EARLY_DATA
      - name: QUIC_TLS_ENC_LEVEL_INITIAL
      - name: QUIC_TLS_ENC_LEVEL_APP
      - name: QUIC_TLS_ENC_LEVEL_HANDSHAKE
      - name: QUIC_TLS_ENC_LEVEL_MAX
      item_type: enum
      name: quic_tls_enc_level
      pos:
        line_end: 142
        line_start: 134
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
    - enumerators:
      - name: QUIC_TLS_PKTNS_INITIAL
      - name: QUIC_TLS_PKTNS_HANDSHAKE
      - name: QUIC_TLS_PKTNS_01RTT
      - name: QUIC_TLS_PKTNS_MAX
      item_type: enum
      name: quic_tls_pktns
      pos:
        line_end: 151
        line_start: 145
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_AEAD
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: EVP_AEAD
    - item_type: preproc_def
      name: QUIC_AEAD_CTX
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: EVP_AEAD_CTX
    - item_type: preproc_def
      name: QUIC_AEAD_CTX_free
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: EVP_AEAD_CTX_free
    - item_type: preproc_def
      name: QUIC_AEAD_key_length
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: EVP_AEAD_key_length
    - item_type: preproc_def
      name: QUIC_AEAD_iv_length
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: EVP_AEAD_nonce_length
    - item_type: preproc_def
      name: EVP_CIPHER_CTX_CHACHA20
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: ((EVP_CIPHER_CTX *)EVP_aead_chacha20_poly1305())
    - item_type: preproc_def
      name: EVP_CIPHER_CHACHA20
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: ((EVP_CIPHER*)EVP_aead_chacha20_poly1305())
    - item_type: preproc_def
      name: QUIC_AEAD
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: EVP_CIPHER
    - item_type: preproc_def
      name: QUIC_AEAD_CTX
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: EVP_CIPHER_CTX
    - item_type: preproc_def
      name: QUIC_AEAD_CTX_free
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: EVP_CIPHER_CTX_free
    - item_type: preproc_def
      name: QUIC_AEAD_key_length
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: EVP_CIPHER_key_length
    - item_type: preproc_def
      name: QUIC_AEAD_iv_length
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: EVP_CIPHER_iv_length
    - item_type: preproc_def
      name: TLS1_3_CK_AES_128_GCM_SHA256
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: TLS1_CK_AES_128_GCM_SHA256
    - item_type: preproc_def
      name: TLS1_3_CK_AES_256_GCM_SHA384
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: TLS1_CK_AES_256_GCM_SHA384
    - item_type: preproc_def
      name: TLS1_3_CK_CHACHA20_POLY1305_SHA256
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: TLS1_CK_CHACHA20_POLY1305_SHA256
    - item_type: preproc_def
      name: TLS1_3_CK_AES_128_CCM_SHA256
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '0x03001304'
    - item_type: preproc_def
      name: QUIC_TLS_IV_LEN
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '12 '
    - item_type: preproc_def
      name: QUIC_TLS_KEY_LEN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '32 '
    - item_type: preproc_def
      name: QUIC_TLS_SECRET_LEN
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '48 '
    - item_type: preproc_def
      name: QUIC_TLS_TAG_LEN
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '16 '
    - item_type: preproc_def
      name: TLS_EXTENSION_QUIC_TRANSPORT_PARAMETERS
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '0x0039'
    - item_type: preproc_def
      name: TLS_EXTENSION_QUIC_TRANSPORT_PARAMETERS_DRAFT
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '0xffa5'
    - item_type: preproc_def
      name: QUIC_HKDF_KEY_LABEL_V1
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"quic key"'
    - item_type: preproc_def
      name: QUIC_HKDF_IV_LABEL_V1
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"quic iv"'
    - item_type: preproc_def
      name: QUIC_HKDF_HP_LABEL_V1
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"quic hp"'
    - item_type: preproc_def
      name: QUIC_HKDF_KU_LABEL_V1
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"quic ku"'
    - item_type: preproc_def
      name: QUIC_HKDF_KEY_LABEL_V2
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"quicv2 key"'
    - item_type: preproc_def
      name: QUIC_HKDF_IV_LABEL_V2
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"quicv2 iv"'
    - item_type: preproc_def
      name: QUIC_HKDF_HP_LABEL_V2
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"quicv2 hp"'
    - item_type: preproc_def
      name: QUIC_HKDF_KU_LABEL_V2
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"quicv2 ku"'
    - item_type: preproc_def
      name: QUIC_TLS_RETRY_KEY_DRAFT
      pos:
        line_end: 106
        line_start: 104
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"\xcc\xce\x18\x7e\xd0\x9a\x09\xd0\x57\x28\x15\x5a\x6c\xb9\x6b\xe1"'
    - item_type: preproc_def
      name: QUIC_TLS_RETRY_NONCE_DRAFT
      pos:
        line_end: 108
        line_start: 106
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"\xe5\x49\x30\xf9\x7f\x21\x36\xf0\x53\x0a\x8c\x1c"'
    - item_type: preproc_def
      name: QUIC_TLS_RETRY_KEY_V1
      pos:
        line_end: 110
        line_start: 108
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"\xbe\x0c\x69\x0b\x9f\x66\x57\x5a\x1d\x76\x6b\x54\xe3\x68\xc8\x4e"'
    - item_type: preproc_def
      name: QUIC_TLS_RETRY_NONCE_V1
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"\x46\x15\x99\xd3\x5d\x63\x2b\xf2\x23\x98\x25\xbb"'
    - item_type: preproc_def
      name: QUIC_TLS_RETRY_KEY_V2
      pos:
        line_end: 114
        line_start: 112
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"\x8f\xb4\xb0\x1b\x56\xac\x48\xe2\x60\xfb\xcb\xce\xad\x7c\xcc\x92"'
    - item_type: preproc_def
      name: QUIC_TLS_RETRY_NONCE_V2
      pos:
        line_end: 116
        line_start: 114
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '"\xd8\x69\x69\xbc\x2d\x7c\x6d\x99\x90\xef\xb0\x4a"'
    - item_type: preproc_def
      name: QUIC_FL_TLS_KP_BIT_SET
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: QUIC_CRYPTO_BUF_SHIFT
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '10'
    - item_type: preproc_def
      name: QUIC_CRYPTO_BUF_MASK
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: ((1UL << QUIC_CRYPTO_BUF_SHIFT) - 1)
    - item_type: preproc_def
      name: QUIC_CRYPTO_BUF_SZ
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
      type_or_value: '(1UL << QUIC_CRYPTO_BUF_SHIFT) '
    structs:
    - fields:
      - name: list
        type: struct list
      - name: tx
        type: "struct {\n\t\t/* List of frames to send. */\n\t\tstruct list frms;\n\t\t/*
          Next packet number to use for transmissions. */\n\t\tint64_t next_pn;\n\t\t/*
          The packet which has been sent. */\n\t\tstruct eb_root pkts;\n\t\t/* The
          time the most recent ack-eliciting packer was sent. */\n\t\tunsigned int
          time_of_last_eliciting;\n\t\t/* The time this packet number space has experienced
          packet loss. */\n\t\tunsigned int loss_time;\n\t\t/* Boolean to denote if
          we must send probe packet. */\n\t\tunsigned int pto_probe;\n\t\t/* In flight
          bytes for this packet number space. */\n\t\tsize_t in_flight;\n\t\t/* The
          acknowledgement delay of the packet with the largest packet number */\n\t\tuint64_t
          ack_delay;\n\t}"
      - name: rx
        type: "struct {\n\t\t/* Largest packet number */\n\t\tint64_t largest_pn;\n\t\t/*
          Largest acked sent packet. */\n\t\tint64_t largest_acked_pn;\n\t\tstruct
          quic_arngs arngs;\n\t\tunsigned int nb_aepkts_since_last_ack;\n\t\t/* The
          time the packet with the largest packet number was received */\n\t\tuint64_t
          largest_time_received;\n\t}"
      - name: flags
        type: unsigned int
      item_type: struct
      name: quic_pktns
      pos:
        line_end: 190
        line_start: 159
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
    - fields:
      - name: '*ctx'
        type: QUIC_AEAD_CTX
      - name: '*secret'
        type: unsigned char
      - name: secretlen
        type: size_t
      - name: '*iv'
        type: unsigned char
      - name: ivlen
        type: size_t
      - name: '*key'
        type: unsigned char
      - name: keylen
        type: size_t
      - name: count
        type: uint64_t
      - name: pn
        type: int64_t
      - name: flags
        type: unsigned char
      item_type: struct
      name: quic_tls_kp
      pos:
        line_end: 204
        line_start: 193
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
    - fields:
      - name: '*ctx'
        type: QUIC_AEAD_CTX
      - name: '*aead'
        type: QUIC_AEAD
      - name: '*md'
        type: EVP_MD
      - name: '*hp_ctx'
        type: EVP_CIPHER_CTX
      - name: '*hp'
        type: EVP_CIPHER
      - name: '*secret'
        type: unsigned char
      - name: secretlen
        type: size_t
      - name: hp_key[32]
        type: unsigned char
      - name: '*iv'
        type: unsigned char
      - name: ivlen
        type: size_t
      - name: '*key'
        type: unsigned char
      - name: keylen
        type: size_t
      - name: pn
        type: int64_t
      item_type: struct
      name: quic_tls_secrets
      pos:
        line_end: 229
        line_start: 209
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
    - fields:
      - name: rx
        type: struct quic_tls_secrets
      - name: tx
        type: struct quic_tls_secrets
      - name: flags
        type: unsigned char
      item_type: struct
      name: quic_tls_ctx
      pos:
        line_end: 235
        line_start: 231
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
    - fields:
      - name: data[QUIC_CRYPTO_BUF_SZ]
        type: unsigned char
      - name: sz
        type: size_t
      item_type: struct
      name: quic_crypto_buf
      pos:
        line_end: 251
        line_start: 248
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
    - fields:
      - name: rx
        type: "struct {\n\t\tuint64_t offset;       /* absolute current base offset
          of ncbuf */\n\t\tstruct ncbmbuf ncbuf;  /* receive buffer - can handle out-of-order
          offset frames */\n\t}"
      - name: tx
        type: "struct {\n\t\tuint64_t offset;      /* last offset of data ready to
          be sent */\n\t\tuint64_t sent_offset; /* last offset sent by transport layer
          */\n\t\tstruct buffer buf;    /* transmit buffer before sending via xprt
          */\n\t}"
      - name: '*desc'
        type: struct qc_stream_desc
      item_type: struct
      name: quic_cstream
      pos:
        line_end: 266
        line_start: 254
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
    - fields:
      - name: list
        type: struct list
      - name: el_send
        type: struct list
      - name: '*send_frms'
        type: struct list
      - name: level
        type: enum ssl_encryption_level_t
      - name: tls_ctx
        type: struct quic_tls_ctx
      - name: rx
        type: "struct {\n\t\t/* The packets received by the listener I/O handler\n\t\t
          * with header protection removed.\n\t\t */\n\t\tstruct eb_root pkts;\n\t\t/*
          List of QUIC packets with protected header. */\n\t\tstruct list pqpkts;\n\t}"
      - name: tx
        type: "struct {\n\t\tstruct {\n\t\t\t/* Array of CRYPTO data buffers */\n\t\t\tstruct
          quic_crypto_buf **bufs;\n\t\t\t/* The number of element in use in the previous
          array. */\n\t\t\tsize_t nb_buf;\n\t\t\t/* The total size of the CRYPTO data
          stored in the CRYPTO buffers. */\n\t\t\tsize_t sz;\n\t\t\t/* The offset
          of the CRYPT0 data stream. */\n\t\t\tuint64_t offset;\n\t\t} crypto;\n\t}"
      - name: '*cstream'
        type: struct quic_cstream
      - name: '*pktns'
        type: struct quic_pktns
      item_type: struct
      name: quic_enc_level
      pos:
        line_end: 309
        line_start: 268
        source_file: /src/haproxy/include/haproxy/quic_tls-t.h
    typedefs: []
    union: []
- function_names:
  - DPRINTF
  - DUMP_TRACE
  - ha_crash_now
  - ABORT_NOW
  - _ABORT_NOW
  - abort_with_line
  - __ABORT_NOW
  - __ABORT_NOW
  - __DBG_COUNT
  - _COUNT_IF
  - _COUNT_GLITCH
  - _COUNT_GLITCH
  - __DBG_COUNT
  - _COUNT_IF
  - _COUNT_GLITCH
  - COUNT_GLITCH
  - __BUG_ON
  - __BUG_ON_ONCE
  - BUG_ON
  - WARN_ON
  - CHECK_IF
  - COUNT_IF
  - BUG_ON
  - WARN_ON
  - CHECK_IF
  - COUNT_IF
  - BUG_ON
  - WARN_ON
  - CHECK_IF
  - COUNT_IF
  - BUG_ON
  - WARN_ON
  - CHECK_IF
  - COUNT_IF
  - BUG_ON
  - WARN_ON
  - CHECK_IF
  - COUNT_IF
  - BUG_ON_HOT
  - CHECK_IF_HOT
  - COUNT_IF_HOT
  - BUG_ON_HOT
  - CHECK_IF_HOT
  - COUNT_IF_HOT
  - BUG_ON_HOT
  - CHECK_IF_HOT
  - COUNT_IF_HOT
  - BUG_ON_HOT
  - CHECK_IF_HOT
  - COUNT_IF_HOT
  - BUG_ON_STRESS
  - BUG_ON_STRESS
  - HA_LINK_ERROR
  - HA_LINK_ERROR
  - ha_free
  - MK_CALLER
  - mark_tainted
  - get_tainted
  - calloc
  - will_free
  - ha_free
  - malloc
  - realloc
  - strdup
  - ha_aligned_alloc
  - ha_aligned_zalloc
  - ha_aligned_alloc_safe
  - ha_aligned_zalloc_safe
  - ha_aligned_alloc_typed
  - ha_aligned_zalloc_typed
  - ha_aligned_free
  - ha_aligned_free_size
  - will_free
  - ha_aligned_alloc
  - ha_aligned_zalloc
  - ha_aligned_alloc_safe
  - ha_aligned_zalloc_safe
  - ha_aligned_alloc_typed
  - ha_aligned_zalloc_typed
  - ha_aligned_free
  - ha_aligned_free_size
  source_file: /src/haproxy/include/haproxy/bug.h
  types:
    enum:
    - enumerators:
      - name: DBG_BUG
      - name: DBG_GLITCH
      - name: DBG_COUNT_IF
      - name: DBG_BUG_ONCE
      - name: DBG_COUNTER_TYPES
      item_type: enum
      name: debug_counter_type
      pos:
        line_end: 195
        line_start: 189
        source_file: /src/haproxy/include/haproxy/bug.h
    - enumerators:
      - name: TAINTED_CONFIG_EXP_KW_DECLARED
        value: '0x00000001'
      - name: TAINTED_CLI_EXPERIMENTAL_MODE
        value: '0x00000008'
      - name: TAINTED_CLI_EXPERT_MODE
        value: '0x00000004'
      - name: TAINTED_ACTION_EXP_EXECUTED
        value: '0x00000002'
      - name: TAINTED_WARN
        value: '0x00000010'
      - name: TAINTED_BUG
        value: '0x00000020'
      - name: TAINTED_SHARED_LIBS
        value: '0x00000040'
      - name: TAINTED_REDEFINITION
        value: '0x00000080'
      - name: TAINTED_REPLACED_MEM_ALLOCATOR
        value: '0x00000100'
      - name: TAINTED_PANIC
        value: '0x00000200'
      - name: TAINTED_LUA_STUCK
        value: '0x00000400'
      - name: TAINTED_LUA_STUCK_SHARED
        value: '0x00000800'
      - name: TAINTED_MEM_TRIMMING_STUCK
        value: '0x00001000'
      - name: TAINTED_WARN_BLOCKED_TRAFFIC
        value: '0x00002000'
      item_type: enum
      name: tainted_flags
      pos:
        line_end: 499
        line_start: 484
        source_file: /src/haproxy/include/haproxy/bug.h
    preproc_defs:
    - item_type: preproc_def
      name: DEBUG_STRESS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/bug.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_STRESS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/bug.h
      type_or_value: 1        // make sure comparison >0 always works
    - item_type: preproc_def
      name: DEBUG_STRICT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/bug.h
      type_or_value: 2        // enable BUG_ON
    - item_type: preproc_def
      name: DEBUG_STRICT_ACTION
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/bug.h
      type_or_value: 3 // enable crash on match
    - item_type: preproc_def
      name: __asm__
      pos:
        line_end: 75
        line_start: 69
        source_file: /src/haproxy/include/haproxy/bug.h
      type_or_value: "volatile(\".byte 0x0f,0x0b\\n\");\t\t\t\\\n\t\tDO_NOT_FOLD();\t\t\t\t\t\t\\\n\t\tmy_unreachable();\t\t\t\t\t\\\n\t}
        while (0)"
    - item_type: preproc_def
      name: __asm__
      pos:
        line_end: 83
        line_start: 77
        source_file: /src/haproxy/include/haproxy/bug.h
      type_or_value: "volatile(\".byte 0x00,0x00,0x00,0x00\\n\");\t\\\n\t\tDO_NOT_FOLD();\t\t\t\t\t\t\\\n\t\tmy_unreachable();\t\t\t\t\t\\\n\t}
        while (0)"
    structs:
    - fields:
      - name: '*file'
        type: char
      - name: '*func'
        type: char
      - name: '*desc'
        type: char
      - name: line
        type: uint16_t
      - name: type
        type: uint8_t
      - name: count
        type: uint32_t
      item_type: struct
      name: debug_count
      pos:
        line_end: 208
        line_start: 200
        source_file: /src/haproxy/include/haproxy/bug.h
    - fields:
      - name: '*func'
        type: char
      - name: '*file'
        type: char
      - name: line
        type: uint16_t
      - name: what
        type: uint8_t
      - name: arg8
        type: uint8_t
      - name: arg32
        type: uint32_t
      item_type: struct
      name: ha_caller
      pos:
        line_end: 475
        line_start: 468
        source_file: /src/haproxy/include/haproxy/bug.h
    - fields:
      - name: calls
        type: size_t
      - name: size
        type: size_t
      - name: caller
        type: struct ha_caller
      - name: '*extra'
        type: void
      item_type: struct
      name: mem_stats
      pos:
        line_end: 539
        line_start: 534
        source_file: /src/haproxy/include/haproxy/bug.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/qpack-tbl-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VAR_ARRAY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/qpack-tbl-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: QPACK_SHT_SIZE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/qpack-tbl-t.h
      type_or_value: '99'
    structs:
    - fields:
      - name: addr
        type: uint32_t
      - name: nlen
        type: uint16_t
      - name: vlen
        type: uint16_t
      item_type: struct
      name: qpack_dte
      pos:
        line_end: 46
        line_start: 42
        source_file: /src/haproxy/include/haproxy/qpack-tbl-t.h
    - fields:
      - name: size
        type: uint32_t
      - name: total
        type: uint32_t
      - name: front
        type: uint16_t
      - name: wrap
        type: uint16_t
      - name: head
        type: uint16_t
      - name: used
        type: uint16_t
      - name: dte[VAR_ARRAY]
        type: struct qpack_dte
      item_type: struct
      name: qpack_dht
      pos:
        line_end: 61
        line_start: 53
        source_file: /src/haproxy/include/haproxy/qpack-tbl-t.h
    typedefs: []
    union: []
- function_names:
  - wf_reset
  - wf_init
  - wf_max_update
  - wf_get_max
  source_file: /src/haproxy/include/haproxy/window_filter.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: v
        type: uint64_t
      - name: t
        type: uint32_t
      item_type: struct
      name: wf_smp
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/haproxy/include/haproxy/window_filter.h
    - fields:
      - name: len
        type: size_t
      - name: smp[3]
        type: struct wf_smp
      item_type: struct
      name: wf
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/haproxy/include/haproxy/window_filter.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ncbmbuf-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCBMBUF_NULL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/haproxy/include/haproxy/ncbmbuf-t.h
      type_or_value: ((struct ncbmbuf){ })
    structs:
    - fields:
      - name: '*area'
        type: char
      - name: '*bitmap'
        type: unsigned char
      - name: size
        type: ncb_sz_t
      - name: size_bm
        type: ncb_sz_t
      - name: head
        type: ncb_sz_t
      item_type: struct
      name: ncbmbuf
      pos:
        line_end: 29
        line_start: 21
        source_file: /src/haproxy/include/haproxy/ncbmbuf-t.h
    typedefs: []
    union: []
- function_names:
  - quic_cid_cpy
  - quic_cid_dump
  - _quic_cid_tree_idx
  - quic_cid_tree_idx
  - quic_cid_get_tree
  - quic_cid_delete
  - quic_connection_id_to_frm_cpy
  source_file: /src/haproxy/include/haproxy/quic_cid.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_cli-t.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/jwt-t.h
  types:
    enum:
    - enumerators:
      - name: JWT_ALG_DEFAULT
      - name: JWS_ALG_HS384
      - name: JWS_ALG_NONE
      - name: JWS_ALG_HS512
      - name: JWS_ALG_HS256
      - name: JWS_ALG_RS256
      - name: JWS_ALG_RS384
      - name: JWS_ALG_RS512
      - name: JWS_ALG_ES256
      - name: JWS_ALG_ES384
      - name: JWS_ALG_ES512
      - name: JWS_ALG_PS256
      - name: JWS_ALG_PS512
      - name: JWS_ALG_PS384
      item_type: enum
      name: jwt_alg
      pos:
        line_end: 43
        line_start: 28
        source_file: /src/haproxy/include/haproxy/jwt-t.h
    - enumerators:
      - name: JWT_ELT_JOSE
        value: '0'
      - name: JWT_ELT_CLAIMS
      - name: JWT_ELT_MAX
      - name: JWT_ELT_SIG
      item_type: enum
      name: jwt_elt
      pos:
        line_end: 65
        line_start: 60
        source_file: /src/haproxy/include/haproxy/jwt-t.h
    - enumerators:
      - name: JWT_VRFY_KO
        value: '0'
      - name: JWT_VRFY_INVALID_TOKEN
        value: '-3'
      - name: JWT_VRFY_OK
        value: '1'
      - name: JWT_VRFY_UNKNOWN_ALG
        value: '-1'
      - name: JWT_VRFY_UNMANAGED_ALG
        value: '-2'
      - name: JWT_VRFY_OUT_OF_MEMORY
        value: '-4'
      - name: JWT_VRFY_UNKNOWN_CERT
        value: '-5'
      - name: JWT_VRFY_INTERNAL_ERR
        value: '-6'
      - name: JWT_VRFY_UNAVAIL_CERT
        value: '-7'
      item_type: enum
      name: jwt_vrfy_status
      pos:
        line_end: 84
        line_start: 73
        source_file: /src/haproxy/include/haproxy/jwt-t.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*start'
        type: char
      - name: length
        type: size_t
      item_type: struct
      name: jwt_item
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/haproxy/include/haproxy/jwt-t.h
    - fields:
      - name: alg
        type: enum jwt_alg
      - name: jose
        type: struct jwt_item
      - name: claims
        type: struct jwt_item
      - name: signature
        type: struct jwt_item
      - name: '*key'
        type: char
      - name: key_length
        type: unsigned int
      - name: is_x509
        type: int
      item_type: struct
      name: jwt_ctx
      pos:
        line_end: 58
        line_start: 50
        source_file: /src/haproxy/include/haproxy/jwt-t.h
    - fields:
      - name: '*pubkey'
        type: EVP_PKEY
      - name: node
        type: struct ebmb_node
      - name: path[VAR_ARRAY]
        type: char
      item_type: struct
      name: jwt_cert_tree_entry
      pos:
        line_end: 71
        line_start: 67
        source_file: /src/haproxy/include/haproxy/jwt-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/hlua_fcn.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_ss-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*srv'
        type: struct server
      item_type: struct
      name: lb_ss
      pos:
        line_end: 29
        line_start: 27
        source_file: /src/haproxy/include/haproxy/lb_ss-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/stats-html.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pat_find_match_name
  - pat_ref_newgen
  - pat_ref_giveup
  - pat_ref_may_commit
  - pat_ref_commit
  - pat_ref_purge_older
  source_file: /src/haproxy/include/haproxy/pattern.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - qcc_show_flags
  - _
  - qcs_show_flags
  - _
  source_file: /src/haproxy/include/haproxy/mux_quic-t.h
  types:
    enum:
    - enumerators:
      - name: QCS_CLT_BIDI
      - name: QCS_SRV_UNI
      - name: QCS_SRV_BIDI
      - name: QCS_CLT_UNI
      item_type: enum
      name: qcs_type
      pos:
        line_end: 31
        line_start: 26
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
    - enumerators:
      - name: QCC_APP_ST_NULL
      - name: QCC_APP_ST_SHUT
      - name: QCC_APP_ST_INIT
      item_type: enum
      name: qcc_app_st
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
    - enumerators:
      - name: QC_SS_IDLE
        value: '0'
      - name: QC_SS_CLO
      - name: QC_SS_HREM
      - name: QC_SS_HLOC
      - name: QC_SS_OPEN
      item_type: enum
      name: qcs_state
      pos:
        line_end: 151
        line_start: 145
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
    - enumerators:
      - name: QCC_APP_OPS_CLOSE_SIDE_RD
      - name: QCC_APP_OPS_CLOSE_SIDE_WR
      item_type: enum
      name: qcc_app_ops_close_side
      pos:
        line_end: 215
        line_start: 212
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
    - enumerators:
      - name: QCC_APP_OPS_LCLO_MODE_NORMAL
      - name: QCC_APP_OPS_LCLO_MODE_KILL_CONN
      - name: QCC_APP_OPS_LCLO_MODE_ABORT
      item_type: enum
      name: qcc_app_ops_lclose_mode
      pos:
        line_end: 221
        line_start: 217
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QC_CF_ERRL
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: QC_CF_ERRL_DONE
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: QC_CF_IS_BACK
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: QC_CF_CONN_FULL
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: QC_CF_CONN_SHUT
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: QC_CF_ERR_CONN
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: QC_CF_WAIT_HS
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000040 '
    - item_type: preproc_def
      name: QC_SF_NONE
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: QC_SF_SIZE_KNOWN
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: QC_SF_FIN_STREAM
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: QC_SF_BLK_MROOM
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: QC_SF_DETACH
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: QC_SF_TXBUB_OOB
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: QC_SF_DEM_FULL
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: QC_SF_READ_ABORTED
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: QC_SF_TO_RESET
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: QC_SF_HREQ_RECV
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: QC_SF_TO_STOP_SENDING
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: QC_SF_UNKNOWN_PL_LENGTH
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: QC_SF_RECV_RESET
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: QC_SF_EOI_SUSPENDED
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00001000  '
    structs:
    - fields:
      - name: '*conn'
        type: struct connection
      - name: nb_sc
        type: uint64_t
      - name: nb_hreq
        type: uint64_t
      - name: tot_sc
        type: uint64_t
      - name: flags
        type: uint32_t
      - name: app_st
        type: enum qcc_app_st
      - name: glitches
        type: int
      - name: term_evts_log
        type: uint32_t
      - name: lfctl
        type: "struct {\n\t\tstruct list frms; /* prepared frames related to flow-control
          \ */\n\n\t\tuint64_t ms_bidi_init; /* max initial sub-ID of bidi stream
          allowed for the peer */\n\t\tuint64_t ms_bidi_rel; /* max relative sub-ID
          of bidi stream allowed for the peer */\n\t\tuint64_t ms_bidi; /* max sub-ID
          of bidi stream allowed for the peer */\n\t\tuint64_t cl_bidi_r; /* total
          count of closed remote bidi stream since last MAX_STREAMS emission */\n\n\t\tuint64_t
          ms_uni; /* max sub-ID of uni stream allowed for the peer */\n\n\t\tuint64_t
          msd_bidi_l; /* initial max-stream-data on local bidi streams */\n\t\tuint64_t
          msd_bidi_r; /* initial max-stream-data on remote bidi streams */\n\t\tuint64_t
          msd_uni_r; /* initial max-stream-data on remote uni streams */\n\n\t\tuint64_t
          md; /* current max-data allowed for the peer */\n\t\tuint64_t md_init; /*
          initial max-data */\n\t\tuint64_t offsets_recv; /* sum of offsets received
          */\n\t\tuint64_t offsets_consume; /* sum of offsets consumed */\n\t}"
      - name: rfctl
        type: "struct {\n\t\tuint64_t ms_uni; /* max sub-ID of uni stream allowed
          by the peer */\n\t\tuint64_t ms_bidi; /* max sub-ID of bidi stream allowed
          by the peer */\n\n\t\tuint64_t md; /* connection flow control limit updated
          on MAX_DATA frames reception */\n\t\tuint64_t msd_bidi_l; /* initial max-stream-data
          from peer on local bidi streams */\n\t\tuint64_t msd_bidi_r; /* initial
          max-stream-data from peer on remote bidi streams */\n\t\tuint64_t msd_uni_l;
          /* initial max-stream-data from peer on local uni streams */\n\t}"
      - name: tx
        type: "struct {\n\t\tstruct quic_fctl fc; /* stream flow control applied on
          sending */\n\t\tuint64_t buf_in_flight; /* sum of currently allocated Tx
          buffer sizes */\n\t\tstruct list frms; /* list of STREAM frames ready for
          sending */\n\t\tunion {\n\t\t\tstruct {\n\t\t\t\t/* quic */\n\t\t\t\tstruct
          quic_pacer pacer; /* engine used to pace emission */\n\t\t\t\tint paced_sent_ctr;
          /* counter for when emission is interrupted due to pacing */\n\t\t\t};\n\t\t\t/*
          qmux */\n\t\t\tstruct buffer qmux_buf;\n\t\t};\n\t}"
      - name: rx
        type: "struct {\n\t\tstruct buffer qmux_buf;\n\t\tuint64_t rlen; /* last record
          length read */\n\t}"
      - name: largest_bidi_r
        type: uint64_t
      - name: largest_uni_r
        type: uint64_t
      - name: next_bidi_l
        type: uint64_t
      - name: next_uni_l
        type: uint64_t
      - name: streams_by_id
        type: struct eb_root
      - name: recv_list
        type: struct list
      - name: send_list
        type: struct list
      - name: fctl_list
        type: struct list
      - name: buf_wait_list
        type: struct list
      - name: purg_list
        type: struct list
      - name: wait_event
        type: struct wait_event
      - name: '*pacing_task'
        type: struct task
      - name: '*proxy'
        type: struct proxy
      - name: '*task'
        type: struct task
      - name: opening_list
        type: struct list
      - name: timeout
        type: int
      - name: shut_timeout
        type: int
      - name: idle_start
        type: int
      - name: err
        type: struct quic_err
      - name: '*app_ops'
        type: struct qcc_app_ops
      - name: '*ctx'
        type: void
      item_type: struct
      name: qcc
      pos:
        line_end: 129
        line_start: 39
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
    - fields:
      - name: off_node
        type: struct eb64_node
      - name: ncb
        type: struct ncbuf
      - name: off_end
        type: uint64_t
      item_type: struct
      name: qc_stream_rxbuf
      pos:
        line_end: 160
        line_start: 156
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
    - fields:
      - name: '*qcc'
        type: struct qcc
      - name: '*sess'
        type: struct session
      - name: '*sd'
        type: struct sedesc
      - name: flags
        type: uint32_t
      - name: st
        type: enum qcs_state
      - name: '*ctx'
        type: void
      - name: rx
        type: "struct {\n\t\tuint64_t offset; /* read offset */\n\t\tuint64_t offset_max;
          /* maximum absolute offset received */\n\t\tstruct eb_root bufs; /* receive
          buffers tree ordered by offset */\n\t\tstruct buffer app_buf; /* receive
          buffer used by stconn layer */\n\t\tuint64_t msd; /* current max-stream-data
          limit to enforce */\n\t\tuint64_t msd_base; /* max-stream-data previous
          to latest update */\n\t\tstruct bdata_ctr data; /* data utilization counter.
          Note that <tot> is now used for now as accounting may be difficult with
          ncbuf. */\n\t}"
      - name: tx
        type: "struct {\n\t\tunion {\n\t\t\tstruct qc_stream_desc *stream; /* quic
          */\n\t\t\tstruct buffer qmux_buf;        /* qmux */\n\t\t};\n\t\tstruct
          quic_fctl fc; /* stream flow control applied on sending */\n\t\tstruct quic_frame
          *msd_frm; /* MAX_STREAM_DATA frame prepared */\n\t}"
      - name: by_id
        type: struct eb64_node
      - name: id
        type: uint64_t
      - name: el_recv
        type: struct list
      - name: el_send
        type: struct list
      - name: el_opening
        type: struct list
      - name: el_fctl
        type: struct list
      - name: el_buf
        type: struct list
      - name: wait_event
        type: struct wait_event
      - name: '*subs'
        type: struct wait_event
      - name: err
        type: uint64_t
      - name: start
        type: int
      - name: timer
        type: "struct {\n\t\tstruct tot_time base; /* total QCS lifetime */\n\t\tstruct
          tot_time buf;  /* stream to QCS send blocked on buffer */\n\t\tstruct tot_time
          fctl; /* stream to QCS send blocked on flow-control */\n\t}"
      item_type: struct
      name: qcs
      pos:
        line_end: 209
        line_start: 162
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
    - fields:
      - name: '*alpn'
        type: char
      - name: (*init)(struct qcc *qcc)
        type: int
      - name: (*finalize)(void *ctx)
        type: int
      - name: (*attach)(struct qcs *qcs, void *conn_ctx)
        type: int
      - name: (*rcv_buf)(struct qcs *qcs, struct buffer *b, int fin)
        type: ssize_t
      - name: (*snd_buf)(struct qcs *qcs, struct buffer *b, size_t count, char *fin)
        type: size_t
      - name: (*nego_ff)(struct qcs *qcs, size_t count)
        type: size_t
      - name: (*done_ff)(struct qcs *qcs)
        type: size_t
      - name: (*close)(struct qcs *qcs, enum qcc_app_ops_close_side side)
        type: int
      - name: (*lclose)(struct qcs *qcs, enum qcc_app_ops_lclose_mode mode)
        type: void
      - name: (*detach)(struct qcs *qcs)
        type: void
      - name: (*shutdown)(void *ctx)
        type: void
      - name: (*release)(void *ctx)
        type: void
      - name: (*inc_err_cnt)(void *ctx, int err_code)
        type: void
      - name: (*report_susp)(void *ctx)
        type: void
      - name: (*strm_reject)(struct list *out, uint64_t id)
        type: int
      item_type: struct
      name: qcc_app_ops
      pos:
        line_end: 264
        line_start: 224
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_trace-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_EV_CONN_NEW
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 0)
    - item_type: preproc_def
      name: QUIC_EV_CONN_INIT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 1)
    - item_type: preproc_def
      name: QUIC_EV_CONN_ISEC
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 2)
    - item_type: preproc_def
      name: QUIC_EV_CONN_RSEC
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 3)
    - item_type: preproc_def
      name: QUIC_EV_CONN_WSEC
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 4)
    - item_type: preproc_def
      name: QUIC_EV_CONN_RWSEC
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 5)
    - item_type: preproc_def
      name: QUIC_EV_CONN_LPKT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 6)
    - item_type: preproc_def
      name: QUIC_EV_CONN_SPKT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 7)
    - item_type: preproc_def
      name: QUIC_EV_CONN_ENCPKT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 8)
    - item_type: preproc_def
      name: QUIC_EV_CONN_TXPKT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 9)
    - item_type: preproc_def
      name: QUIC_EV_CONN_PAPKT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 10)
    - item_type: preproc_def
      name: QUIC_EV_CONN_PAPKTS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 11)
    - item_type: preproc_def
      name: QUIC_EV_CONN_IO_CB
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 12)
    - item_type: preproc_def
      name: QUIC_EV_CONN_RMHP
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 13)
    - item_type: preproc_def
      name: QUIC_EV_CONN_PRSHPKT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 14)
    - item_type: preproc_def
      name: QUIC_EV_CONN_PRSAPKT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 15)
    - item_type: preproc_def
      name: QUIC_EV_CONN_PRSFRM
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 16)
    - item_type: preproc_def
      name: QUIC_EV_CONN_PRSAFRM
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 17)
    - item_type: preproc_def
      name: QUIC_EV_CONN_BFRM
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 18)
    - item_type: preproc_def
      name: QUIC_EV_CONN_PHPKTS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 19)
    - item_type: preproc_def
      name: QUIC_EV_CONN_TRMHP
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 20)
    - item_type: preproc_def
      name: QUIC_EV_CONN_ELRMHP
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 21)
    - item_type: preproc_def
      name: QUIC_EV_CONN_RXPKT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 22)
    - item_type: preproc_def
      name: QUIC_EV_CONN_SSLDATA
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 23)
    - item_type: preproc_def
      name: QUIC_EV_CONN_RXCDATA
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 24)
    - item_type: preproc_def
      name: QUIC_EV_CONN_ADDDATA
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 25)
    - item_type: preproc_def
      name: QUIC_EV_CONN_FFLIGHT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 26)
    - item_type: preproc_def
      name: QUIC_EV_CONN_SSLALERT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 27)
    - item_type: preproc_def
      name: QUIC_EV_CONN_PSTRM
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 28)
    - item_type: preproc_def
      name: QUIC_EV_CONN_RTTUPDT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 29)
    - item_type: preproc_def
      name: QUIC_EV_CONN_CC
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 30)
    - item_type: preproc_def
      name: QUIC_EV_CONN_SPPKTS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 31)
    - item_type: preproc_def
      name: QUIC_EV_CONN_PKTLOSS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 32)
    - item_type: preproc_def
      name: QUIC_EV_CONN_STIMER
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 33)
    - item_type: preproc_def
      name: QUIC_EV_CONN_PTIMER
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 34)
    - item_type: preproc_def
      name: QUIC_EV_CONN_SPTO
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 35)
    - item_type: preproc_def
      name: QUIC_EV_CONN_BCFRMS
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 36)
    - item_type: preproc_def
      name: QUIC_EV_CONN_XPRTSEND
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 37)
    - item_type: preproc_def
      name: QUIC_EV_CONN_XPRTRECV
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 38)
    - item_type: preproc_def
      name: QUIC_EV_CONN_FREED
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 39)
    - item_type: preproc_def
      name: QUIC_EV_CONN_CLOSE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 40)
    - item_type: preproc_def
      name: QUIC_EV_CONN_ACKSTRM
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 41)
    - item_type: preproc_def
      name: QUIC_EV_CONN_FRMLIST
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 42)
    - item_type: preproc_def
      name: QUIC_EV_STATELESS_RST
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 43)
    - item_type: preproc_def
      name: QUIC_EV_TRANSP_PARAMS
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 44)
    - item_type: preproc_def
      name: QUIC_EV_CONN_IDLE_TIMER
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 45)
    - item_type: preproc_def
      name: QUIC_EV_CONN_SUB
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 46)
    - item_type: preproc_def
      name: QUIC_EV_CONN_ELEVELSEL
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 47)
    - item_type: preproc_def
      name: QUIC_EV_CONN_RCV
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 48)
    - item_type: preproc_def
      name: QUIC_EV_CONN_KILL
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 49)
    - item_type: preproc_def
      name: QUIC_EV_CONN_KP
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 50)
    - item_type: preproc_def
      name: QUIC_EV_CONN_SSL_COMPAT
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 51)
    - item_type: preproc_def
      name: QUIC_EV_CONN_BIND_TID
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 52)
    - item_type: preproc_def
      name: QUIC_EV_CONN_RELEASE_RCD
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 53)
    - item_type: preproc_def
      name: QUIC_EV_EARLY_TRANSP_PARAMS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
      type_or_value: (1ULL << 54)
    structs:
    - fields:
      - name: '*rx_sec'
        type: unsigned char
      - name: rx_seclen
        type: size_t
      - name: '*rx'
        type: struct quic_tls_kp
      - name: '*tx_sec'
        type: unsigned char
      - name: tx_seclen
        type: size_t
      - name: '*tx'
        type: struct quic_tls_kp
      item_type: struct
      name: quic_kp_trace
      pos:
        line_end: 29
        line_start: 22
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
    - fields:
      - name: '*payload'
        type: unsigned char
      - name: payload_len
        type: size_t
      - name: '*aad'
        type: unsigned char
      - name: aad_len
        type: size_t
      - name: pn
        type: uint64_t
      item_type: struct
      name: enc_debug_info
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
    - fields:
      - name: offset_node
        type: struct eb64_node
      - name: len
        type: uint64_t
      - name: '*data'
        type: unsigned char
      - name: '*pkt'
        type: struct quic_rx_packet
      item_type: struct
      name: quic_rx_crypto_frm
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/haproxy/include/haproxy/quic_trace-t.h
    typedefs: []
    union: []
- function_names:
  - httpclient_data
  - httpclient_ended
  - httpclient_started
  source_file: /src/haproxy/include/haproxy/http_client.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/dns.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/sock_unix.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/payload.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - listener_index_id
  - accept_queue_ring_len
  source_file: /src/haproxy/include/haproxy/listener.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/resolvers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - action_lookup
  - list_for_each_entry
  - action_build_list
  - list_for_each_entry
  - release_timeout_action
  - release_expr_int_action
  source_file: /src/haproxy/include/haproxy/action.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/port_range-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: int
      - name: ports[VAR_ARRAY]
        type: uint16_t
      item_type: struct
      name: port_range
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/haproxy/include/haproxy/port_range-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/proto_quic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_MAX_UDP_PAYLOAD_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/include/haproxy/proto_quic.h
      type_or_value: '2048'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARGM
  - ARG1
  - ARG2
  - ARG3
  - ARG4
  - ARG5
  - ARG6
  - ARG7
  - ARG8
  - ARG9
  - ARG10
  - ARG11
  - ARG12
  source_file: /src/haproxy/include/haproxy/arg.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_cc-t.h
  types:
    enum:
    - enumerators:
      - name: QUIC_CC_ST_SS
      - name: QUIC_CC_ST_CA
      - name: QUIC_CC_ST_CS
      - name: QUIC_CC_ST_RP
      item_type: enum
      name: quic_cc_algo_state_type
      pos:
        line_end: 56
        line_start: 47
        source_file: /src/haproxy/include/haproxy/quic_cc-t.h
    - enumerators:
      - name: QUIC_CC_EVT_ACK
      - name: QUIC_CC_EVT_LOSS
      - name: QUIC_CC_EVT_ECN_CE
      item_type: enum
      name: quic_cc_event_type
      pos:
        line_end: 65
        line_start: 58
        source_file: /src/haproxy/include/haproxy/quic_cc-t.h
    - enumerators:
      - name: QUIC_CC_ALGO_TP_NEWRENO
      - name: QUIC_CC_ALGO_TP_CUBIC
      - name: QUIC_CC_ALGO_TP_BBR
      - name: QUIC_CC_ALGO_TP_NOCC
      item_type: enum
      name: quic_cc_algo_type
      pos:
        line_end: 87
        line_start: 82
        source_file: /src/haproxy/include/haproxy/quic_cc-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_CC_INFINITE_SSTHESH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/quic_cc-t.h
      type_or_value: ((uint32_t)-1)
    - item_type: preproc_def
      name: QUIC_CC_ALGO_FL_OPT_PACING
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/haproxy/include/haproxy/quic_cc-t.h
      type_or_value: '0x01'
    structs:
    - fields:
      - name: type
        type: enum quic_cc_event_type
      item_type: struct
      name: quic_cc_event
      pos:
        line_end: 80
        line_start: 67
        source_file: /src/haproxy/include/haproxy/quic_cc-t.h
    - fields:
      - name: acked
        type: uint64_t
      - name: pn
        type: uint64_t
      - name: time_sent
        type: unsigned int
      item_type: struct
      name: ack
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/haproxy/include/haproxy/quic_cc-t.h
    - fields:
      - name: time_sent
        type: unsigned int
      - name: count
        type: unsigned int
      item_type: struct
      name: loss
      pos:
        line_end: 78
        line_start: 75
        source_file: /src/haproxy/include/haproxy/quic_cc-t.h
    - fields:
      - name: '*qc'
        type: struct quic_conn
      - name: '*algo'
        type: struct quic_cc_algo
      - name: priv[144]
        type: uint32_t
      item_type: struct
      name: quic_cc
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/haproxy/include/haproxy/quic_cc-t.h
    - fields:
      - name: cc
        type: struct quic_cc
      - name: loss
        type: struct quic_loss
      - name: mtu
        type: size_t
      - name: initial_wnd
        type: uint64_t
      - name: cwnd
        type: uint64_t
      - name: cwnd_last_max
        type: uint64_t
      - name: limit_max
        type: uint64_t
      - name: limit_min
        type: uint64_t
      - name: prep_in_flight
        type: uint64_t
      - name: in_flight
        type: uint64_t
      - name: ifae_pkts
        type: uint64_t
      - name: delivery_rate
        type: uint64_t
      - name: send_quantum
        type: size_t
      - name: recovery_start_ts
        type: uint32_t
      item_type: struct
      name: quic_cc_path
      pos:
        line_end: 123
        line_start: 96
        source_file: /src/haproxy/include/haproxy/quic_cc-t.h
    - fields:
      - name: type
        type: enum quic_cc_algo_type
      - name: flags
        type: int
      - name: (*init)(struct quic_cc *cc)
        type: int
      - name: (*event)(struct quic_cc *cc, struct quic_cc_event *ev)
        type: void
      - name: (*slow_start)(struct quic_cc *cc)
        type: void
      - name: (*state_trace)(struct buffer *buf, const struct quic_cc *cc)
        type: void
      - name: (*state_cli)(struct buffer *buf, const struct quic_cc_path *path)
        type: void
      - name: (*hystart_start_round)(struct quic_cc *cc, uint64_t pn)
        type: void
      - name: (*pacing_inter)(const struct quic_cc *cc)
        type: uint
      - name: (*pacing_burst)(const struct quic_cc *cc)
        type: uint
      - name: '*(*get_drs)(struct quic_cc *cc)'
        type: struct quic_cc_drs
      - name: (*on_transmit)(struct quic_cc *cc)
        type: void
      - name: (*drs_on_transmit)(struct quic_cc *cc, struct quic_tx_packet *pkt)
        type: void
      - name: "(*on_ack_rcvd)(struct quic_cc *cc, uint32_t acked, uint32_t delivered,\n\t
          \                   uint32_t ack_rtt, uint32_t bytes_lost,\n\t                    unsigned
          int largest_pkt_sent_ts)"
        type: void
      - name: "(*on_pkt_lost)(struct quic_cc *cc,\n\t                    struct quic_tx_packet
          *pkt, uint32_t lost_bytes)"
        type: void
      - name: (*congestion_event)(struct quic_cc *cc, uint32_t ts)
        type: void
      - name: (*check_app_limited)(const struct quic_cc *cc, int sent)
        type: void
      item_type: struct
      name: quic_cc_algo
      pos:
        line_end: 152
        line_start: 128
        source_file: /src/haproxy/include/haproxy/quic_cc-t.h
    typedefs: []
    union: []
- function_names:
  - action_kw_tcp_check_lookup
  - action_kw_tcp_check_build_list
  - tcpchk_rules_type_to_proto_mode
  - tcpcheck_ruleset_type_to_str
  source_file: /src/haproxy/include/haproxy/tcpcheck.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - qc_is_back
  - qc_cid_side
  - free_quic_conn_cids
  - quic_conn_mv_cids_to_cc_conn
  - quic_get_ncbuf
  - quic_free_ncbuf
  - qc_counters
  source_file: /src/haproxy/include/haproxy/quic_conn.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/signal-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIG_F_ONE_SHOOT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/include/haproxy/signal-t.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: SIG_F_TYPE_FCT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/include/haproxy/signal-t.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: SIG_F_TYPE_TASK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/include/haproxy/signal-t.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: WDTSIG
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/signal-t.h
      type_or_value: SIGALRM
    - item_type: preproc_def
      name: DEBUGSIG
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/signal-t.h
      type_or_value: SIGURG
    structs:
    - fields:
      - name: list
        type: struct list
      - name: '*handler'
        type: void
      - name: arg
        type: int
      - name: flags
        type: int
      item_type: struct
      name: sig_handler
      pos:
        line_end: 50
        line_start: 45
        source_file: /src/haproxy/include/haproxy/signal-t.h
    - fields:
      - name: count
        type: int
      - name: handlers
        type: struct list
      item_type: struct
      name: signal_descriptor
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/haproxy/include/haproxy/signal-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/sock_inet.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: sock_inet_mptcp_maxseg_default
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/sock_inet.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: sock_inet6_mptcp_maxseg_default
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/sock_inet.h
      type_or_value: '-1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/peers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/capture.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/backend-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BE_LB_HASH_SRC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000000  '
    - item_type: preproc_def
      name: BE_LB_HASH_URI
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: BE_LB_HASH_PRM
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: BE_LB_HASH_HDR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000003  '
    - item_type: preproc_def
      name: BE_LB_HASH_RDP
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: BE_LB_HASH_SMP
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000005  '
    - item_type: preproc_def
      name: BE_LB_RR_DYN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000000  '
    - item_type: preproc_def
      name: BE_LB_RR_STATIC
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: BE_LB_RR_RANDOM
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: BE_LB_CB_LC
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000000  '
    - item_type: preproc_def
      name: BE_LB_CB_FAS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: BE_LB_SA_SS
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000000  '
    - item_type: preproc_def
      name: BE_LB_PARM
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x000000FF  '
    - item_type: preproc_def
      name: BE_LB_NEED_NONE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000000  '
    - item_type: preproc_def
      name: BE_LB_NEED_ADDR
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: BE_LB_NEED_DATA
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: BE_LB_NEED_HTTP
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: BE_LB_NEED_LOG
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: BE_LB_NEED
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x0000FF00  '
    - item_type: preproc_def
      name: BE_LB_KIND_NONE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000000  '
    - item_type: preproc_def
      name: BE_LB_KIND_RR
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00010000  '
    - item_type: preproc_def
      name: BE_LB_KIND_CB
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00020000  '
    - item_type: preproc_def
      name: BE_LB_KIND_HI
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00030000  '
    - item_type: preproc_def
      name: BE_LB_KIND_SA
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00040000  '
    - item_type: preproc_def
      name: BE_LB_KIND
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00070000  '
    - item_type: preproc_def
      name: BE_LB_ALGO_NONE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_NONE | BE_LB_NEED_NONE)    '
    - item_type: preproc_def
      name: BE_LB_ALGO_RR
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_RR | BE_LB_NEED_NONE)      '
    - item_type: preproc_def
      name: BE_LB_ALGO_RND
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_RR | BE_LB_NEED_NONE | BE_LB_RR_RANDOM) '
    - item_type: preproc_def
      name: BE_LB_ALGO_LC
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_CB | BE_LB_NEED_NONE | BE_LB_CB_LC)    '
    - item_type: preproc_def
      name: BE_LB_ALGO_FAS
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_CB | BE_LB_NEED_NONE | BE_LB_CB_FAS)   '
    - item_type: preproc_def
      name: BE_LB_ALGO_SS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_SA | BE_LB_NEED_NONE | BE_LB_SA_SS)    '
    - item_type: preproc_def
      name: BE_LB_ALGO_SRR
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_RR | BE_LB_NEED_NONE | BE_LB_RR_STATIC) '
    - item_type: preproc_def
      name: BE_LB_ALGO_SH
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_HI | BE_LB_NEED_ADDR | BE_LB_HASH_SRC) '
    - item_type: preproc_def
      name: BE_LB_ALGO_UH
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_HI | BE_LB_NEED_HTTP | BE_LB_HASH_URI) '
    - item_type: preproc_def
      name: BE_LB_ALGO_PH
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_HI | BE_LB_NEED_HTTP | BE_LB_HASH_PRM) '
    - item_type: preproc_def
      name: BE_LB_ALGO_HH
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_HI | BE_LB_NEED_HTTP | BE_LB_HASH_HDR) '
    - item_type: preproc_def
      name: BE_LB_ALGO_RCH
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_HI | BE_LB_NEED_DATA | BE_LB_HASH_RDP) '
    - item_type: preproc_def
      name: BE_LB_ALGO_SMP
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_HI | BE_LB_NEED_DATA | BE_LB_HASH_SMP) '
    - item_type: preproc_def
      name: BE_LB_ALGO_LH
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND_HI | BE_LB_NEED_LOG  | BE_LB_HASH_SMP) '
    - item_type: preproc_def
      name: BE_LB_ALGO
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '(BE_LB_KIND    | BE_LB_NEED      | BE_LB_PARM    ) '
    - item_type: preproc_def
      name: BE_LB_LKUP_NONE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000000  '
    - item_type: preproc_def
      name: BE_LB_LKUP_MAP
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00100000  '
    - item_type: preproc_def
      name: BE_LB_LKUP_RRTREE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00200000  '
    - item_type: preproc_def
      name: BE_LB_LKUP_LCTREE
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00300000  '
    - item_type: preproc_def
      name: BE_LB_LKUP_CHTREE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00400000  '
    - item_type: preproc_def
      name: BE_LB_LKUP_FSTREE
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00500000  '
    - item_type: preproc_def
      name: BE_LB_LKUP
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00700000  '
    - item_type: preproc_def
      name: BE_LB_PROP_DYN
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00800000 '
    - item_type: preproc_def
      name: BE_LB_HASH_MAP
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000000 '
    - item_type: preproc_def
      name: BE_LB_HASH_CONS
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x01000000 '
    - item_type: preproc_def
      name: BE_LB_HASH_TYPE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x01000000 '
    - item_type: preproc_def
      name: BE_LB_HMOD_AVAL
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x02000000  '
    - item_type: preproc_def
      name: BE_LB_HASH_MOD
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x02000000  '
    - item_type: preproc_def
      name: BE_LB_HFCN_SDBM
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x00000000  '
    - item_type: preproc_def
      name: BE_LB_HFCN_DJB2
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x04000000  '
    - item_type: preproc_def
      name: BE_LB_HFCN_WT6
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x08000000  '
    - item_type: preproc_def
      name: BE_LB_HFCN_CRC32
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x0C000000  '
    - item_type: preproc_def
      name: BE_LB_HFCN_NONE
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x10000000 '
    - item_type: preproc_def
      name: BE_LB_HASH_FUNC
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '0x1C000000 '
    - item_type: preproc_def
      name: BE_WEIGHT_SCALE
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/haproxy/include/haproxy/backend-t.h
      type_or_value: '16'
    structs:
    - fields: []
      item_type: struct
      name: lbprm_per_tgrp
      pos:
        line_end: 151
        line_start: 147
        source_file: /src/haproxy/include/haproxy/backend-t.h
    - fields:
      - name: link
        type: struct list
      - name: (*proxy_init)(struct proxy *)
        type: int
      - name: (*update_server_eweight)(struct server *)
        type: void
      - name: (*set_server_status_up)(struct server *)
        type: void
      - name: (*set_server_status_down)(struct server *)
        type: void
      - name: (*server_take_conn)(struct server *)
        type: void
      - name: (*server_drop_conn)(struct server *)
        type: void
      - name: (*server_requeue)(struct server *)
        type: void
      - name: (*proxy_deinit)(struct proxy *)
        type: void
      - name: (*server_deinit)(struct server *)
        type: void
      - name: (*server_init)(struct server *)
        type: int
      - name: algo_prop
        type: uint32_t
      - name: map[VAR_ARRAY]
        type: "struct {\n\t\tuint32_t mask;\n\t\tuint32_t match;\n\t}"
      item_type: struct
      name: lb_ops
      pos:
        line_end: 174
        line_start: 157
        source_file: /src/haproxy/include/haproxy/backend-t.h
    - fields:
      - name: algo
        type: uint32_t
      - name: tot_wact
        type: int
      - name: tot_weight
        type: int
      - name: tot_uweight
        type: int
      - name: tot_used
        type: int
      - name: wmult
        type: int
      - name: wdiv
        type: int
      - name: hash_balance_factor
        type: int
      - name: lb_free_list_nb
        type: unsigned int
      - name: '*expr'
        type: struct sample_expr
      - name: '*arg_str'
        type: char
      - name: arg_len
        type: int
      - name: arg_opt1
        type: int
      - name: arg_opt2
        type: int
      - name: arg_opt3
        type: int
      - name: lb_seq
        type: uint64_t
      - name: lb_free_list
        type: struct mt_list
      - name: '*fbck'
        type: struct server
      - name: '*ops'
        type: struct lb_ops
      item_type: struct
      name: lbprm
      pos:
        line_end: 206
        line_start: 177
        source_file: /src/haproxy/include/haproxy/backend-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/cpu_topo.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - quic_loss_init
  - quic_loss_persistent_congestion
  - quic_pto
  source_file: /src/haproxy/include/haproxy/quic_loss.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/receiver-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RX_F_BOUND
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: RX_F_INHERITED_FD
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: RX_F_MWORKER
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: RX_F_MUST_DUP
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: RX_F_NON_SUSPENDABLE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: RX_F_PASS_PKTINFO
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: RX_F_INHERITED_SOCK
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: RX_O_FOREIGN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: RX_O_V4V6
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: RX_O_V6ONLY
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000004  '
    structs:
    - fields:
      - name: ux
        type: "struct {                          /* UNIX socket permissions */\n\t\tuid_t
          uid;                /* -1 to leave unchanged */\n\t\tgid_t gid;                /*
          -1 to leave unchanged */\n\t\tmode_t mode;              /* 0 to leave unchanged
          */\n\t}"
      - name: '*interface'
        type: char
      - name: '*netns'
        type: struct netns_entry
      - name: options
        type: unsigned int
      - name: shards
        type: int
      item_type: struct
      name: rx_settings
      pos:
        line_end: 58
        line_start: 48
        source_file: /src/haproxy/include/haproxy/receiver-t.h
    - fields:
      - name: nbgroups
        type: uint
      - name: nbthreads
        type: uint
      - name: '*ref'
        type: struct receiver
      - name: '**members'
        type: struct receiver
      item_type: struct
      name: shard_info
      pos:
        line_end: 68
        line_start: 63
        source_file: /src/haproxy/include/haproxy/receiver-t.h
    - fields:
      - name: fd
        type: int
      - name: flags
        type: unsigned int
      - name: '*proto'
        type: struct protocol
      - name: '*owner'
        type: void
      - name: (*iocb)(int fd)
        type: void
      - name: bind_thread
        type: unsigned long
      - name: bind_tgroup
        type: uint
      - name: '*settings'
        type: struct rx_settings
      - name: '*shard_info'
        type: struct shard_info
      - name: proto_list
        type: struct list
      - name: rhttp
        type: "struct {\n\t\tstruct task *task;  /* Task used to open connection for
          reverse. */\n\t\tstruct server *srv; /* Underlying server used to initiate
          reverse pre-connect. */\n\t\tstruct connection *pend_conn; /* Pending connection
          waiting to complete reversal before being accepted. */\n\t\tenum li_preconn_state
          state; /* State for transition logging. */\n\t}"
      - name: addr
        type: struct sockaddr_storage
      item_type: struct
      name: receiver
      pos:
        line_end: 96
        line_start: 71
        source_file: /src/haproxy/include/haproxy/receiver-t.h
    typedefs: []
    union: []
- function_names:
  - __REGISTER_POOL
  - _REGISTER_POOL
  - REGISTER_POOL
  - DECLARE_POOL
  - DECLARE_STATIC_POOL
  - REGISTER_ALIGNED_POOL
  - DECLARE_ALIGNED_POOL
  - DECLARE_STATIC_ALIGNED_POOL
  - _REGISTER_TYPED_POOL
  - REGISTER_TYPED_POOL
  - DECLARE_TYPED_POOL
  - DECLARE_STATIC_TYPED_POOL
  - POOL_DEBUG_SET_MARK
  - POOL_DEBUG_RESET_MARK
  - POOL_DEBUG_CHECK_MARK
  - POOL_DEBUG_TRACE_CALLER
  - create_pool
  - create_aligned_pool
  - pool_allocated
  - pool_used
  - pool_needed_avg
  - pool_failed
  - pool_releasable
  - pool_get_from_cache
  - pool_alloc_flag
  - pool_alloc
  - pool_zalloc
  - pool_free
  - pool_free
  - pool_alloc_flag
  - pool_alloc
  - pool_zalloc
  source_file: /src/haproxy/include/haproxy/pool.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POOL_EXTRA_MARK
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/include/haproxy/pool.h
      type_or_value: (sizeof(void *))
    - item_type: preproc_def
      name: POOL_EXTRA_CALLER
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/haproxy/include/haproxy/pool.h
      type_or_value: (sizeof(void *))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/systemd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/sink-t.h
  types:
    enum:
    - enumerators:
      - name: SINK_TYPE_FORWARD_DECLARED
      - name: SINK_TYPE_BUFFER
      - name: SINK_TYPE_NEW
      - name: SINK_TYPE_FD
      item_type: enum
      name: sink_type
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/haproxy/include/haproxy/sink-t.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*srv'
        type: struct server
      - name: '*appctx'
        type: struct appctx
      - name: last_conn
        type: uint
      - name: ofs
        type: size_t
      - name: e_processed
        type: size_t
      - name: '*sink'
        type: struct sink
      - name: '*next'
        type: struct sink_forward_target
      item_type: struct
      name: sink_forward_target
      pos:
        line_end: 48
        line_start: 39
        source_file: /src/haproxy/include/haproxy/sink-t.h
    - fields:
      - name: sink_list
        type: struct list
      - name: '*name'
        type: char
      - name: '*desc'
        type: char
      - name: '*store'
        type: char
      - name: fmt
        type: enum log_fmt
      - name: type
        type: enum sink_type
      - name: maxlen
        type: uint32_t
      - name: '* forward_px'
        type: struct proxy
      - name: '*sft'
        type: struct sink_forward_target
      - name: '*forward_task'
        type: struct task
      - name: '*forward_sighandler'
        type: struct sig_handler
      - name: ctx
        type: "struct {\n\t\tstruct ring *ring;    // used by ring buffer and STRM
          sender\n\t\tunsigned int dropped; // 2*dropped events since last one + 1
          for purge in progress.\n\t\tint fd;               // fd num for FD type
          sink\n\t}"
      item_type: struct
      name: sink
      pos:
        line_end: 72
        line_start: 51
        source_file: /src/haproxy/include/haproxy/sink-t.h
    typedefs: []
    union: []
- function_names:
  - SHM_STATS_FILE_MAPPING_SIZE
  - SHM_STATS_FILE_OBJECT
  source_file: /src/haproxy/include/haproxy/stats-file-t.h
  types:
    enum:
    - enumerators:
      - name: STFILE_DOMAIN_UNSET
        value: '0'
      - name: STFILE_DOMAIN_PX_BE
      - name: STFILE_DOMAIN_PX_FE
      item_type: enum
      name: stfile_domain
      pos:
        line_end: 14
        line_start: 9
        source_file: /src/haproxy/include/haproxy/stats-file-t.h
    preproc_defs:
    - item_type: preproc_def
      name: SHM_STATS_FILE_VER_MAJOR
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/haproxy/include/haproxy/stats-file-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SHM_STATS_FILE_VER_MINOR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/haproxy/include/haproxy/stats-file-t.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SHM_STATS_FILE_HEARTBEAT_TIMEOUT
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/haproxy/include/haproxy/stats-file-t.h
      type_or_value: '60 '
    - item_type: preproc_def
      name: SHM_STATS_FILE_OBJECT_TYPE_FE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/stats-file-t.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: SHM_STATS_FILE_OBJECT_TYPE_BE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/stats-file-t.h
      type_or_value: '0x1'
    structs:
    - fields:
      - name: version
        type: "struct {\n\t\tuint8_t major;\n\t\tuint8_t minor;\n\t}"
      - name: global_now_ms
        type: uint
      - name: global_now_ns
        type: ullong
      - name: slots[64]
        type: "struct {\n\t\tpid_t pid;\n\t\tuint heartbeat; // last activity of this
          process + heartbeat timeout, in ticks\n\t}"
      - name: objects
        type: int
      - name: objects_slots
        type: int
      item_type: struct
      name: shm_stats_file_hdr
      pos:
        line_end: 54
        line_start: 29
        source_file: /src/haproxy/include/haproxy/stats-file-t.h
    - fields:
      - name: guid[GUID_MAX_LEN + 1]
        type: char
      - name: tgid
        type: uint16_t
      - name: type
        type: uint8_t
      - name: users
        type: uint64_t
      - name: data
        type: "union {\n\t\tstruct fe_counters_shared_tg fe;\n\t\tstruct be_counters_shared_tg
          be;\n\t}"
      item_type: struct
      name: shm_stats_file_object
      pos:
        line_end: 78
        line_start: 64
        source_file: /src/haproxy/include/haproxy/stats-file-t.h
    typedefs: []
    union: []
- function_names:
  - pbuf_le32toh
  - pbuf_le64toh
  - protobuf_type
  - protobuf_varint
  - protobuf_decode_varint
  - protobuf_skip_varint
  - protobuf_varint_getlen
  - protobuf_smp_store_varint
  - protobuf_skip_64bit
  - protobuf_smp_store_64bit
  - protobuf_skip_vlen
  - protobuf_smp_store_vlen
  - protobuf_skip_32bit
  - protobuf_smp_store_32bit
  - protobuf_field_lookup
  source_file: /src/haproxy/include/haproxy/protobuf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PBUF_VARINT_DONT_STOP_BIT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/protobuf.h
      type_or_value: '7'
    - item_type: preproc_def
      name: PBUF_VARINT_DONT_STOP_BITMASK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/protobuf.h
      type_or_value: (1 << PBUF_VARINT_DONT_STOP_BIT)
    - item_type: preproc_def
      name: PBUF_VARINT_DATA_BITMASK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/protobuf.h
      type_or_value: ~PBUF_VARINT_DONT_STOP_BITMASK
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/xref-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XREF_BUSY
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/xref-t.h
      type_or_value: ((struct xref *)1)
    structs:
    - fields:
      - name: '*peer'
        type: struct xref
      item_type: struct
      name: xref
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/haproxy/include/haproxy/xref-t.h
    typedefs: []
    union: []
- function_names:
  - __APPEND_FLAG
  - __APPEND_ENUM
  - __APPEND_FLAG
  - __APPEND_ENUM
  source_file: /src/haproxy/include/haproxy/show_flags-t.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_tp-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_STATELESS_RESET_TOKEN_LEN
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '16'
    - item_type: preproc_def
      name: QUIC_TP_DFLT_MAX_UDP_PAYLOAD_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '65527 '
    - item_type: preproc_def
      name: QUIC_TP_DFLT_ACK_DELAY_COMPONENT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: QUIC_TP_DFLT_MAX_ACK_DELAY
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '25 '
    - item_type: preproc_def
      name: QUIC_TP_DFLT_ACTIVE_CONNECTION_ID_LIMIT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: QUIC_TP_DFLT_FRONT_STREAM_DATA_RATIO
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '90'
    - item_type: preproc_def
      name: QUIC_TP_ORIGINAL_DESTINATION_CONNECTION_ID
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: QUIC_TP_MAX_IDLE_TIMEOUT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: QUIC_TP_STATELESS_RESET_TOKEN
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: QUIC_TP_MAX_UDP_PAYLOAD_SIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: QUIC_TP_INITIAL_MAX_DATA
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: QUIC_TP_INITIAL_MAX_STREAM_DATA_BIDI_LOCAL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: QUIC_TP_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: QUIC_TP_INITIAL_MAX_STREAM_DATA_UNI
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: QUIC_TP_INITIAL_MAX_STREAMS_BIDI
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: QUIC_TP_INITIAL_MAX_STREAMS_UNI
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: QUIC_TP_ACK_DELAY_EXPONENT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x0a'
    - item_type: preproc_def
      name: QUIC_TP_MAX_ACK_DELAY
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x0b'
    - item_type: preproc_def
      name: QUIC_TP_DISABLE_ACTIVE_MIGRATION
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x0c'
    - item_type: preproc_def
      name: QUIC_TP_PREFERRED_ADDRESS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x0d'
    - item_type: preproc_def
      name: QUIC_TP_ACTIVE_CONNECTION_ID_LIMIT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x0e'
    - item_type: preproc_def
      name: QUIC_TP_INITIAL_SOURCE_CONNECTION_ID
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: QUIC_TP_RETRY_SOURCE_CONNECTION_ID
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: QUIC_TP_VERSION_INFORMATION
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '0x11'
    - item_type: preproc_def
      name: QUIC_TP_ACK_DELAY_EXPONENT_LIMIT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '20'
    - item_type: preproc_def
      name: QUIC_TP_MAX_ACK_DELAY_LIMIT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: (1UL << 14)
    - item_type: preproc_def
      name: QUIC_TP_MAX_ENCLEN
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
      type_or_value: '128'
    structs:
    - fields:
      - name: len
        type: uint8_t
      - name: data[20]
        type: uint8_t
      item_type: struct
      name: tp_cid
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
    - fields:
      - name: ipv4_port
        type: uint16_t
      - name: ipv6_port
        type: uint16_t
      - name: ipv4_addr
        type: struct in_addr
      - name: ipv6_addr
        type: struct in6_addr
      - name: cid
        type: struct tp_cid
      - name: stateless_reset_token[QUIC_STATELESS_RESET_TOKEN_LEN]
        type: uint8_t
      item_type: struct
      name: tp_preferred_address
      pos:
        line_end: 28
        line_start: 21
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
    - fields:
      - name: chosen
        type: uint32_t
      - name: '*negotiated_version'
        type: struct quic_version
      item_type: struct
      name: tp_version_information
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
    - fields:
      - name: max_idle_timeout
        type: uint64_t
      - name: max_udp_payload_size
        type: uint64_t
      - name: initial_max_data
        type: uint64_t
      - name: initial_max_stream_data_bidi_local
        type: uint64_t
      - name: initial_max_stream_data_bidi_remote
        type: uint64_t
      - name: initial_max_stream_data_uni
        type: uint64_t
      - name: initial_max_streams_bidi
        type: uint64_t
      - name: initial_max_streams_uni
        type: uint64_t
      - name: ack_delay_exponent
        type: uint64_t
      - name: max_ack_delay
        type: uint64_t
      - name: active_connection_id_limit
        type: uint64_t
      - name: disable_active_migration
        type: uint8_t
      - name: with_stateless_reset_token
        type: uint8_t
      - name: with_preferred_address
        type: uint8_t
      - name: original_destination_connection_id_present
        type: uint8_t
      - name: initial_source_connection_id_present
        type: uint8_t
      - name: stateless_reset_token[QUIC_STATELESS_RESET_TOKEN_LEN]
        type: uint8_t
      - name: original_destination_connection_id
        type: struct tp_cid
      - name: retry_source_connection_id
        type: struct tp_cid
      - name: initial_source_connection_id
        type: struct tp_cid
      - name: preferred_address
        type: struct tp_preferred_address
      - name: version_information
        type: struct tp_version_information
      item_type: struct
      name: quic_transport_params
      pos:
        line_end: 112
        line_start: 78
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
    - fields:
      - name: max_udp_payload_size
        type: uint64_t
      - name: active_connection_id_limit
        type: uint64_t
      - name: initial_max_data
        type: uint64_t
      - name: initial_max_stream_data_bidi_local
        type: uint64_t
      - name: initial_max_stream_data_bidi_remote
        type: uint64_t
      - name: initial_max_stream_data_uni
        type: uint64_t
      - name: initial_max_streams_bidi
        type: uint64_t
      - name: initial_max_streams_uni
        type: uint64_t
      item_type: struct
      name: quic_early_transport_params
      pos:
        line_end: 124
        line_start: 115
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_map.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_u16
  - write_u16
  - read_u32
  - write_u32
  - read_u64
  - write_u64
  - read_ptr
  - write_ptr
  - read_flt
  - write_flt
  - read_dbl
  - write_dbl
  - readv_bytes
  - writev_bytes
  - readv_u16
  - writev_u16
  - readv_u32
  - writev_u32
  - readv_u64
  - writev_u64
  - read_i16
  - read_i32
  - read_i64
  - readv_i16
  - readv_i32
  - readv_i64
  - read_n16
  - write_n16
  - read_n32
  - write_n32
  - read_n64
  - write_n64
  - readv_n16
  - writev_n16
  - readv_n32
  - writev_n32
  - readv_n64
  - writev_n64
  source_file: /src/haproxy/include/haproxy/net_helper.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: u16
        type: uint16_t
      item_type: union
      name: '*u = p'
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: u16
        type: uint16_t
      item_type: union
      name: '*u = p'
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: u32
        type: uint32_t
      item_type: union
      name: '*u = p'
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: u32
        type: uint32_t
      item_type: union
      name: '*u = p'
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: u64
        type: uint64_t
      item_type: union
      name: '*u = p'
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: u64
        type: uint64_t
      item_type: union
      name: '*u = p'
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: '*ptr'
        type: void
      item_type: union
      name: '*u = p'
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: flt
        type: float
      item_type: union
      name: '*u = p'
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: flt
        type: float
      item_type: union
      name: '*u = p'
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: dbl
        type: double
      item_type: union
      name: '*u = p'
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: dbl
        type: double
      item_type: union
      name: '*u = p'
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: u16
        type: uint16_t
      item_type: union
      name: '*u'
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/haproxy/include/haproxy/net_helper.h
    - fields:
      - name: u16
        type: uint16_t
      item_type: union
      name: '*u'
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/haproxy/include/haproxy/net_helper.h
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_chash-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: act
        type: struct eb_root
      - name: bck
        type: struct eb_root
      - name: '*last'
        type: struct eb32_node
      item_type: struct
      name: lb_chash
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/haproxy/include/haproxy/lb_chash-t.h
    typedefs: []
    union: []
- function_names:
  - pool_alloc_area
  - pool_free_area
  - pool_alloc_area_uaf
  - pool_free_area_uaf
  source_file: /src/haproxy/include/haproxy/pool-os.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mqtt_typeid
  - mqtt_check_type_fieldname
  source_file: /src/haproxy/include/haproxy/mqtt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - guid_get
  source_file: /src/haproxy/include/haproxy/guid.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/map.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - signal_process_queue
  source_file: /src/haproxy/include/haproxy/signal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hpack_len_to_bytes
  - hpack_encode_len
  - hpack_encode_short_idx
  - hpack_encode_long_idx
  - hpack_encode_int_status
  - hpack_encode_str_status
  - hpack_encode_method
  - hpack_encode_scheme
  - hpack_encode_path
  source_file: /src/haproxy/include/haproxy/hpack-enc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - acl_neg
  - acl_pass
  - acl_match_cond
  source_file: /src/haproxy/include/haproxy/acl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - stktable_data_size
  - stktable_data_cast
  - caddr_to_ptr
  - caddr_to_data
  - caddr_from_ptr
  - caddr_set_flags
  - caddr_clr_flags
  - stktable_type_size
  - __stktable_data_ptr
  - stktable_data_ptr
  - stktable_data_ptr_idx
  - stktable_calc_bucket_num
  - __stksess_kill_if_expired
  - stksess_kill_if_expired
  - stkctr_set_entry
  - stkctr_entry
  - stkctr_flags
  - stkctr_set_flags
  - stkctr_clr_flags
  - stkctr_inc_http_req_ctr
  - stkctr_inc_http_err_ctr
  - stkctr_inc_http_fail_ctr
  - stkctr_inc_bytes_in_ctr
  - stkctr_inc_bytes_out_ctr
  - stkctr_add_glitch_ctr
  source_file: /src/haproxy/include/haproxy/stick_table.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - buffer_almost_full
  - b_is_default_sz
  - b_is_large_sz
  - b_is_small_sz
  - b_is_default
  - b_is_large
  - b_is_small
  - b_may_alloc_for_crit
  - __b_get_emergency_buf
  - b_alloc
  - __b_free
  - b_free
  - b_alloc_small
  - b_alloc_large
  - offer_buffers
  - b_requeue
  - b_queue
  - _b_dequeue
  - b_dequeue
  source_file: /src/haproxy/include/haproxy/dynbuf.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_retry.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DECLARE_CKCH_CONF_LOAD
  source_file: /src/haproxy/include/haproxy/ssl_ckch.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - se_show_flags
  - _
  - sc_show_flags
  - _
  source_file: /src/haproxy/include/haproxy/stconn-t.h
  types:
    enum:
    - enumerators:
      - name: IOBUF_FL_NONE
        value: '0x00000000'
      - name: IOBUF_FL_INTERIM_FF
        value: '0x00000008'
      - name: IOBUF_FL_NO_FF
        value: '0x00000001'
      - name: IOBUF_FL_FF_BLOCKED
        value: '0x00000004'
      - name: IOBUF_FL_NO_SPLICING
        value: '0x00000002'
      - name: IOBUF_FL_EOI
        value: '0x00000010'
      - name: IOBUF_FL_FF_WANT_ROOM
        value: '0x00000020'
      item_type: enum
      name: iobuf_flags
      pos:
        line_end: 42
        line_start: 31
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - enumerators:
      - name: NEGO_FF_FL_NONE
        value: '0x00000000'
      - name: NEGO_FF_FL_MAY_SPLICE
        value: '0x00000001'
      - name: NEGO_FF_FL_EXACT_SIZE
        value: '0x00000002'
      item_type: enum
      name: nego_ff_flags
      pos:
        line_end: 49
        line_start: 45
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - enumerators:
      - name: SE_FL_T_MUX
        value: '0x00000001'
      - name: SE_FL_ORPHAN
        value: '0x00000020'
      - name: SE_FL_SHRD
        value: '0x00000100'
      - name: SE_FL_SHWN
        value: '0x00000400'
      - name: SE_FL_ERROR
        value: '0x00010000'
      - name: SE_FL_NOT_FIRST
        value: '0x00001000'
      - name: SE_FL_RCV_MORE
        value: '0x00040000'
      - name: SE_FL_EOI
        value: '0x00004000'
      - name: SE_FL_EXP_NO_DATA
        value: '0x00100000'
      - name: SE_FL_MAY_FASTFWD_CONS
        value: '0x00400000'
      - name: SE_FL_MAY_FASTFWD_PROD
        value: '0x00200000'
      - name: SE_FL_HAVE_NO_DATA
        value: '0x40000000'
      - name: SE_FL_WANT_ROOM
        value: '0x00080000'
      - name: SE_FL_WAIT_DATA
        value: '0x10000000'
      - name: SE_FL_WAIT_FOR_HS
        value: '0x04000000'
      - name: SE_FL_WEBSOCKET
        value: '0x00002000'
      - name: SE_FL_NONE
        value: '0x00000000'
      - name: SE_FL_T_APPLET
        value: '0x00000002'
      - name: SE_FL_DETACHED
        value: '0x00000010'
      - name: SE_FL_APP_STARTED
        value: '0x00000040'
      - name: SE_FL_SHRR
        value: '0x00000200'
      - name: SE_FL_SHR
        value: SE_FL_SHRD | SE_FL_SHRR
      - name: SE_FL_SHWS
        value: '0x00000800'
      - name: SE_FL_EOS
        value: '0x00008000'
      - name: SE_FL_SHW
        value: SE_FL_SHWN | SE_FL_SHWS
      - name: SE_FL_ERR_PENDING
        value: '0x00020000'
      - name: SE_FL_APPLET_NEED_CONN
        value: '0x80000000'
      - name: SE_FL_KILL_CONN
        value: '0x08000000'
      - name: SE_FL_WONT_CONSUME
        value: '0x20000000'
      - name: SE_FL_ENDP_MASK
        value: '0x004ff000'
      item_type: enum
      name: se_flags
      pos:
        line_end: 118
        line_start: 62
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - enumerators:
      - name: SE_SHR_DRAIN
        value: '0x00000001'
      - name: SE_SHW_SILENT
        value: '0x00000008'
      - name: SE_SHW_NORMAL
        value: '0x00000004'
      - name: SE_SHR_RESET
        value: '0x00000002'
      item_type: enum
      name: se_shut_mode
      pos:
        line_end: 126
        line_start: 121
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - enumerators:
      - name: SC_FL_NOHALF
        value: '0x00000010'
      - name: SC_FL_WONT_READ
        value: '0x00000080'
      - name: SC_FL_SHUT_WANTED
        value: '0x00008000'
      - name: SC_FL_SND_ASAP
        value: '0x00000800'
      - name: SC_FL_NO_FASTFWD
        value: '0x00100000'
      - name: SC_FL_NONE
        value: '0x00000000'
      - name: SC_FL_NEED_ROOM
        value: '0x00000200'
      - name: SC_FL_SHUT_DONE
        value: '0x00020000'
      - name: SC_FL_SND_NEVERWAIT
        value: '0x00001000'
      - name: SC_FL_NOLINGER
        value: '0x00000008'
      - name: SC_FL_ABRT_WANTED
        value: '0x00004000'
      - name: SC_FL_HAVE_BUFF
        value: '0x00080000'
      - name: SC_FL_ERROR
        value: '0x00000004'
      - name: SC_FL_ISBACK
        value: '0x00000001'
      - name: SC_FL_EOI
        value: '0x00000002'
      - name: SC_FL_DONT_WAKE
        value: '0x00000020'
      - name: SC_FL_INDEP_STR
        value: '0x00000040'
      - name: SC_FL_NEED_BUFF
        value: '0x00000100'
      - name: SC_FL_SND_EXP_MORE
        value: '0x00002000'
      - name: SC_FL_RCV_ONCE
        value: '0x00000400'
      - name: SC_FL_ABRT_DONE
        value: '0x00010000'
      - name: SC_FL_EOS
        value: '0x00040000'
      item_type: enum
      name: sc_flags
      pos:
        line_end: 211
        line_start: 182
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - enumerators:
      - name: SC_ST_INI
        value: '0'
      - name: SC_ST_ASS
      - name: SC_ST_TAR
      - name: SC_ST_QUE
      - name: SC_ST_REQ
      - name: SC_ST_CON
      - name: SC_ST_CER
      - name: SC_ST_RDY
      - name: SC_ST_EST
      - name: SC_ST_DIS
      - name: SC_ST_CLO
      item_type: enum
      name: sc_state
      pos:
        line_end: 252
        line_start: 240
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - enumerators:
      - name: SC_SB_NONE
        value: '0'
      - name: SC_SB_TAR
        value: 1U << SC_ST_TAR
      - name: SC_SB_QUE
        value: 1U << SC_ST_QUE
      - name: SC_SB_INI
        value: 1U << SC_ST_INI
      - name: SC_SB_REQ
        value: 1U << SC_ST_REQ
      - name: SC_SB_ASS
        value: 1U << SC_ST_ASS
      - name: SC_SB_CON
        value: 1U << SC_ST_CON
      - name: SC_SB_CER
        value: 1U << SC_ST_CER
      - name: SC_SB_RDY
        value: 1U << SC_ST_RDY
      - name: SC_SB_EST
        value: 1U << SC_ST_EST
      - name: SC_SB_ALL
        value: SC_SB_INI|SC_SB_REQ|SC_SB_QUE|SC_SB_TAR|SC_SB_ASS|SC_SB_CON|SC_SB_CER|SC_SB_RDY|SC_SB_EST|SC_SB_DIS|SC_SB_CLO
      - name: SC_SB_CLO
        value: 1U << SC_ST_CLO
      - name: SC_SB_DIS
        value: 1U << SC_ST_DIS
      item_type: enum
      name: sc_state_bit
      pos:
        line_end: 269
        line_start: 255
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    preproc_defs:
    - item_type: preproc_def
      name: SE_ABRT_SRC_SHIFT
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/haproxy/include/haproxy/stconn-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SE_ABRT_SRC_MASK
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/haproxy/include/haproxy/stconn-t.h
      type_or_value: '0x0000001f'
    - item_type: preproc_def
      name: SE_ABRT_SRC_MUX_PT
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/haproxy/include/haproxy/stconn-t.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: SE_ABRT_SRC_MUX_H1
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/haproxy/include/haproxy/stconn-t.h
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: SE_ABRT_SRC_MUX_H2
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/haproxy/include/haproxy/stconn-t.h
      type_or_value: '0x03 '
    - item_type: preproc_def
      name: SE_ABRT_SRC_MUX_QUIC
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/haproxy/include/haproxy/stconn-t.h
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: SE_ABRT_SRC_MUX_FCGI
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/haproxy/include/haproxy/stconn-t.h
      type_or_value: '0x05 '
    - item_type: preproc_def
      name: SE_ABRT_SRC_MUX_SPOP
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/haproxy/include/haproxy/stconn-t.h
      type_or_value: '0x06 '
    structs:
    - fields:
      - name: '*pipe'
        type: struct pipe
      - name: '*buf'
        type: struct buffer
      - name: offset
        type: size_t
      - name: data
        type: size_t
      - name: flags
        type: unsigned int
      item_type: struct
      name: iobuf
      pos:
        line_end: 57
        line_start: 51
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - fields:
      - name: info
        type: uint32_t
      - name: code
        type: uint64_t
      item_type: struct
      name: se_abort_info
      pos:
        line_end: 290
        line_start: 287
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - fields:
      - name: '*se'
        type: void
      - name: '*conn'
        type: struct connection
      - name: '*sc'
        type: struct stconn
      - name: iobuf
        type: struct iobuf
      - name: flags
        type: unsigned int
      - name: term_evts_log
        type: uint32_t
      - name: abort_info
        type: struct se_abort_info
      - name: lra
        type: unsigned int
      - name: fsb
        type: unsigned int
      - name: xref
        type: struct xref
      - name: kip
        type: unsigned long long
      - name: kop
        type: unsigned long long
      item_type: struct
      name: sedesc
      pos:
        line_end: 351
        line_start: 337
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: state
        type: enum sc_state
      - name: flags
        type: unsigned int
      - name: ioto
        type: unsigned int
      - name: term_evts_log
        type: uint32_t
      - name: room_needed
        type: ssize_t
      - name: bytes_in
        type: unsigned long long
      - name: bytes_out
        type: unsigned long long
      - name: wait_event
        type: struct wait_event
      - name: '*sedesc'
        type: struct sedesc
      - name: '*app'
        type: enum obj_type
      - name: '*src'
        type: struct sockaddr_storage
      - name: '*dst'
        type: struct sockaddr_storage
      item_type: struct
      name: stconn
      pos:
        line_end: 376
        line_start: 356
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    typedefs: []
    union: []
- function_names:
  - preload_freq_ctr
  - update_freq_ctr_period
  - update_freq_ctr
  - read_freq_ctr_period
  - read_freq_ctr_period_estimate
  - read_freq_ctr_period_flt
  - read_freq_ctr
  - read_freq_ctr_flt
  - freq_ctr_remain_period
  - freq_ctr_remain
  - next_event_delay_period
  - next_event_delay
  - swrate_add
  - swrate_add_dynamic
  - swrate_add_scaled
  - swrate_add_opportunistic
  - swrate_add_dynamic_opportunistic
  - swrate_add_scaled_opportunistic
  - swrate_add_peak_local
  - swrate_avg
  source_file: /src/haproxy/include/haproxy/freq_ctr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ech.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DB_CRIT_TO_QUEUE
  source_file: /src/haproxy/include/haproxy/dynbuf-t.h
  types:
    enum:
    - enumerators:
      - name: DB_GROW_RING
        value: '0'
      - name: DB_MUX_RX
      - name: DB_SE_RX
      - name: DB_CHANNEL
      - name: DB_UNLIKELY
      - name: DB_MUX_TX
      - name: DB_PERMANENT
      item_type: enum
      name: dynbuf_crit
      pos:
        line_end: 65
        line_start: 55
        source_file: /src/haproxy/include/haproxy/dynbuf-t.h
    preproc_defs:
    - item_type: preproc_def
      name: DB_F_NOQUEUE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/dynbuf-t.h
      type_or_value: 0x80000000U   // ignore presence of others in queue
    - item_type: preproc_def
      name: DB_F_CRIT_MASK
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/dynbuf-t.h
      type_or_value: 0x000000FFU   // mask to keep the criticality bits
    - item_type: preproc_def
      name: DB_GROW_RING_Q
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/dynbuf-t.h
      type_or_value: DB_CRIT_TO_QUEUE(DB_GROW_RING)
    - item_type: preproc_def
      name: DB_UNLIKELY_Q
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/dynbuf-t.h
      type_or_value: DB_CRIT_TO_QUEUE(DB_UNLIKELY)
    - item_type: preproc_def
      name: DB_MUX_RX_Q
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/dynbuf-t.h
      type_or_value: DB_CRIT_TO_QUEUE(DB_MUX_RX)
    - item_type: preproc_def
      name: DB_SE_RX_Q
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/dynbuf-t.h
      type_or_value: DB_CRIT_TO_QUEUE(DB_SE_RX)
    - item_type: preproc_def
      name: DB_CHANNEL_Q
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/dynbuf-t.h
      type_or_value: DB_CRIT_TO_QUEUE(DB_CHANNEL)
    - item_type: preproc_def
      name: DB_MUX_TX_Q
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/dynbuf-t.h
      type_or_value: DB_CRIT_TO_QUEUE(DB_MUX_TX)
    - item_type: preproc_def
      name: DB_PERMANENT_Q
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/dynbuf-t.h
      type_or_value: DB_CRIT_TO_QUEUE(DB_PERMANENT)
    structs:
    - fields:
      - name: '*target'
        type: void
      - name: (*wakeup_cb)(void *)
        type: int
      - name: list
        type: struct list
      item_type: struct
      name: buffer_wait
      pos:
        line_end: 104
        line_start: 100
        source_file: /src/haproxy/include/haproxy/dynbuf-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/qpack-enc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/fix-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FIX_DELIMITER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FIX_4_0
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: (ist("FIX.4.0"))
    - item_type: preproc_def
      name: FIX_4_1
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: (ist("FIX.4.1"))
    - item_type: preproc_def
      name: FIX_4_2
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: (ist("FIX.4.2"))
    - item_type: preproc_def
      name: FIX_4_3
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: (ist("FIX.4.3"))
    - item_type: preproc_def
      name: FIX_4_4
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: (ist("FIX.4.4"))
    - item_type: preproc_def
      name: FIX_5_0
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: (ist("FIXT.1.1"))
    - item_type: preproc_def
      name: FIX_TAG_BeginString
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '8'
    - item_type: preproc_def
      name: FIX_TAG_BodyLength
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '9'
    - item_type: preproc_def
      name: FIX_TAG_CheckSum
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '10'
    - item_type: preproc_def
      name: FIX_TAG_MsgType
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '35'
    - item_type: preproc_def
      name: FIX_TAG_SenderCompID
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '49'
    - item_type: preproc_def
      name: FIX_TAG_TargetCompID
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '56'
    - item_type: preproc_def
      name: FIX_MSG_MINSIZE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '26 '
    - item_type: preproc_def
      name: FIX_CHKSUM_SIZE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '7  '
    - item_type: preproc_def
      name: FIX_INVALID_MESSAGE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: FIX_NEED_MORE_DATA
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FIX_VALID_MESSAGE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/fix-t.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - REGISTER_UNITTEST
  - hap_register_unittest
  - REGISTER_PRE_CHECK
  - REGISTER_POST_CHECK
  - REGISTER_POST_PROXY_CHECK
  - REGISTER_POST_SERVER_CHECK
  - REGISTER_POST_DEINIT
  - REGISTER_POST_DEINIT_MASTER
  - REGISTER_PROXY_DEINIT
  - REGISTER_SERVER_DEINIT
  - REGISTER_PER_THREAD_ALLOC
  - REGISTER_PER_THREAD_INIT
  - REGISTER_PER_THREAD_DEINIT
  - REGISTER_PER_THREAD_FREE
  source_file: /src/haproxy/include/haproxy/init.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_rules.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/flt_http_comp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ncbuf-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCB_RESERVED_SZ
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/ncbuf-t.h
      type_or_value: (sizeof(ncb_sz_t))
    - item_type: preproc_def
      name: NCB_GAP_MIN_SZ
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/ncbuf-t.h
      type_or_value: (sizeof(ncb_sz_t) * 2)
    - item_type: preproc_def
      name: NCB_GAP_SZ_OFF
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/ncbuf-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCB_GAP_SZ_DATA_OFF
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/ncbuf-t.h
      type_or_value: (sizeof(ncb_sz_t))
    - item_type: preproc_def
      name: NCBUF_NULL
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/ncbuf-t.h
      type_or_value: ((struct ncbuf){ })
    structs:
    - fields:
      - name: '*area'
        type: char
      - name: size
        type: ncb_sz_t
      - name: head
        type: ncb_sz_t
      item_type: struct
      name: ncbuf
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/haproxy/include/haproxy/ncbuf-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/hpack-tbl-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VAR_ARRAY
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/hpack-tbl-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HPACK_SHT_SIZE
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/haproxy/include/haproxy/hpack-tbl-t.h
      type_or_value: '62'
    structs:
    - fields:
      - name: addr
        type: uint32_t
      - name: nlen
        type: uint16_t
      - name: vlen
        type: uint16_t
      item_type: struct
      name: hpack_dte
      pos:
        line_end: 101
        line_start: 97
        source_file: /src/haproxy/include/haproxy/hpack-tbl-t.h
    - fields:
      - name: size
        type: uint32_t
      - name: total
        type: uint32_t
      - name: front
        type: uint16_t
      - name: wrap
        type: uint16_t
      - name: head
        type: uint16_t
      - name: used
        type: uint16_t
      - name: dte[VAR_ARRAY]
        type: struct hpack_dte
      item_type: struct
      name: hpack_dht
      pos:
        line_end: 116
        line_start: 108
        source_file: /src/haproxy/include/haproxy/hpack-tbl-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/http_rules.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_fwrr-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: curr
        type: struct eb_root
      - name: t0
        type: struct eb_root
      - name: '*init'
        type: struct eb_root
      - name: '*next'
        type: struct eb_root
      - name: curr_pos
        type: int
      - name: curr_weight
        type: int
      item_type: struct
      name: fwrr_group
      pos:
        line_end: 35
        line_start: 28
        source_file: /src/haproxy/include/haproxy/lb_fwrr-t.h
    - fields:
      - name: act
        type: struct fwrr_group
      - name: bck
        type: struct fwrr_group
      item_type: struct
      name: lb_fwrr_per_tgrp
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/haproxy/include/haproxy/lb_fwrr-t.h
    - fields:
      - name: next_weight_act
        type: int
      - name: next_weight_bck
        type: int
      item_type: struct
      name: lb_fwrr
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/haproxy/include/haproxy/lb_fwrr-t.h
    typedefs: []
    union: []
- function_names:
  - quic_log2
  - quic_int_getsize
  - quic_max_int
  - quic_dec_int
  - b_quic_dec_int
  - quic_enc_int
  - b_quic_enc_int
  - quic_incint_size_diff
  - quic_decint_size_diff
  - quic_int_cap_length
  source_file: /src/haproxy/include/haproxy/quic_enc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_VARINT_1_BYTE_MAX
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/quic_enc.h
      type_or_value: ((1UL <<  6) - 1)
    - item_type: preproc_def
      name: QUIC_VARINT_2_BYTE_MAX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/quic_enc.h
      type_or_value: ((1UL <<  14) - 1)
    - item_type: preproc_def
      name: QUIC_VARINT_4_BYTE_MAX
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/quic_enc.h
      type_or_value: ((1UL <<  30) - 1)
    - item_type: preproc_def
      name: QUIC_VARINT_8_BYTE_MAX
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/quic_enc.h
      type_or_value: ((1ULL <<  62) - 1)
    - item_type: preproc_def
      name: QUIC_VARINT_MAX_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/quic_enc.h
      type_or_value: '8'
    - item_type: preproc_def
      name: QUIC_VARINT_BYTE_0_BITMASK
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/quic_enc.h
      type_or_value: '0x3f'
    - item_type: preproc_def
      name: QUIC_VARINT_BYTE_0_SHIFT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/quic_enc.h
      type_or_value: '6'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pendconn_cond_unlink
  - pendconn_free
  - server_has_room
  - may_dequeue_tasks
  - queue_limit_class
  - queue_limit_offset
  - queue_init
  source_file: /src/haproxy/include/haproxy/queue.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_fctl-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: limit
        type: uint64_t
      - name: off_real
        type: uint64_t
      - name: off_soft
        type: uint64_t
      item_type: struct
      name: quic_fctl
      pos:
        line_end: 12
        line_start: 5
        source_file: /src/haproxy/include/haproxy/quic_fctl-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_openssl_compat-t.h
  types:
    enum:
    - enumerators:
      - name: ssl_encryption_initial
        value: '0'
      - name: ssl_encryption_early_data
      - name: ssl_encryption_handshake
      - name: ssl_encryption_application
      item_type: enum
      name: ssl_encryption_level_t
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_OPENSSL_COMPAT_TLS_SECRET_LEN
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat-t.h
      type_or_value: '48'
    - item_type: preproc_def
      name: QUIC_OPENSSL_COMPAT_TLS_IV_LEN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat-t.h
      type_or_value: '12'
    structs:
    - fields:
      - name: "(*set_encryption_secrets)(SSL *ssl, enum ssl_encryption_level_t level,\n\t
          \                             const uint8_t *rsecret, const uint8_t *wsecret,\n\t
          \                             size_t secret_len)"
        type: int
      - name: "(*add_handshake_data)(SSL *ssl, enum ssl_encryption_level_t level,\n\t
          \                         const uint8_t *data, size_t len)"
        type: int
      - name: (*flush_flight)(SSL *ssl)
        type: int
      - name: "(*send_alert)(SSL *ssl, enum ssl_encryption_level_t level,\n\t                  uint8_t
          alert)"
        type: int
      item_type: struct
      name: ssl_quic_method_st
      pos:
        line_end: 29
        line_start: 20
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat-t.h
    - fields:
      - name: data[QUIC_OPENSSL_COMPAT_TLS_SECRET_LEN]
        type: unsigned char
      - name: len
        type: size_t
      item_type: struct
      name: quic_tls_md
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat-t.h
    - fields:
      - name: data[QUIC_OPENSSL_COMPAT_TLS_IV_LEN]
        type: unsigned char
      - name: len
        type: size_t
      item_type: struct
      name: quic_tls_iv
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat-t.h
    - fields:
      - name: secret
        type: struct quic_tls_md
      - name: key
        type: struct quic_tls_md
      - name: iv
        type: struct quic_tls_iv
      item_type: struct
      name: quic_tls_secret
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat-t.h
    - fields:
      - name: secret
        type: struct quic_tls_secret
      - name: '*cipher'
        type: EVP_CIPHER
      item_type: struct
      name: quic_tls_compat_keys
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat-t.h
    - fields:
      - name: '*rbio'
        type: BIO
      - name: '*wbio'
        type: BIO
      - name: '*method'
        type: SSL_QUIC_METHOD
      - name: write_level
        type: enum ssl_encryption_level_t
      - name: read_level
        type: enum ssl_encryption_level_t
      - name: read_record
        type: uint64_t
      - name: keys
        type: struct quic_tls_compat_keys
      item_type: struct
      name: quic_openssl_compat
      pos:
        line_end: 60
        line_start: 52
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat-t.h
    typedefs: []
    union: []
- function_names:
  - QUIC_MIN
  - QUIC_MAX
  - qc_show_flags
  - _
  source_file: /src/haproxy/include/haproxy/quic_conn-t.h
  types:
    enum:
    - enumerators:
      - name: QUIC_PACKET_TYPE_INITIAL
      - name: QUIC_PACKET_TYPE_0RTT
      - name: QUIC_PACKET_TYPE_RETRY
      - name: QUIC_PACKET_TYPE_HANDSHAKE
      - name: QUIC_PACKET_TYPE_SHORT
      - name: QUIC_PACKET_TYPE_UNKNOWN
      item_type: enum
      name: quic_pkt_type
      pos:
        line_end: 129
        line_start: 116
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_PROTOCOL_VERSION_DRAFT_29
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0xff00001d '
    - item_type: preproc_def
      name: QUIC_PROTOCOL_VERSION_1
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: QUIC_PROTOCOL_VERSION_2
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0x6b3343cf '
    - item_type: preproc_def
      name: QUIC_INITIAL_IPV4_MTU
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '1252 '
    - item_type: preproc_def
      name: QUIC_INITIAL_IPV6_MTU
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '1232'
    - item_type: preproc_def
      name: QUIC_INITIAL_PACKET_MINLEN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '1200'
    - item_type: preproc_def
      name: QUIC_HAP_CID_LEN
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '8'
    - item_type: preproc_def
      name: QUIC_ODCID_MINLEN
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '8 '
    - item_type: preproc_def
      name: QUIC_LONG_PACKET_MINLEN
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '7'
    - item_type: preproc_def
      name: QUIC_LONG_PACKET_DCID_OFF
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: (1 + sizeof(uint32_t))
    - item_type: preproc_def
      name: QUIC_SHORT_PACKET_MINLEN
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: QUIC_SHORT_PACKET_DCID_OFF
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: QUIC_PACKET_LONG_HEADER_BIT
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0x80 '
    - item_type: preproc_def
      name: QUIC_PACKET_FIXED_BIT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0x40 '
    - item_type: preproc_def
      name: QUIC_TOKEN_FMT_RETRY
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0x9c'
    - item_type: preproc_def
      name: QUIC_TOKEN_FMT_NEW
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0xb7'
    - item_type: preproc_def
      name: QUIC_RETRY_DURATION_SEC
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '10'
    - item_type: preproc_def
      name: QUIC_PACKET_TYPE_BITMASK
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: QUIC_PACKET_TYPE_SHIFT
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '4'
    - item_type: preproc_def
      name: QUIC_PACKET_PNL_BITMASK
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: QUIC_PACKET_PN_MAXLEN
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '4'
    - item_type: preproc_def
      name: QUIC_HP_SAMPLE_LEN
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '16'
    - item_type: preproc_def
      name: QUIC_PACKET_SPIN_BIT
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: QUIC_PACKET_RESERVED_BITS
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0x18 '
    - item_type: preproc_def
      name: QUIC_PACKET_KEY_PHASE_BIT
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: QUIC_CONN_MAX_PACKET
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '64'
    - item_type: preproc_def
      name: QUIC_STATELESS_RESET_PACKET_MINLEN
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: (5 + QUIC_STATELESS_RESET_TOKEN_LEN)
    - item_type: preproc_def
      name: QUIC_CONN_RX_BUFSZ
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: (1UL << 16)
    - item_type: preproc_def
      name: QUIC_FL_PKTNS_ACK_REQUIRED
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: (1UL << 1)
    - item_type: preproc_def
      name: QUIC_FL_PKTNS_PROBE_NEEDED
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: (1UL << 2)
    - item_type: preproc_def
      name: QUIC_FL_PKTNS_NEW_LARGEST_PN
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: (1UL << 3)
    - item_type: preproc_def
      name: QUIC_MAX_NB_PTO_DGRAMS
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '2'
    - item_type: preproc_def
      name: QUIC_MAX_PACKET_NUM
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: ((1ULL << 62) - 1)
    - item_type: preproc_def
      name: QUIC_CRYPTO_IN_FLIGHT_MAX
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: QUIC_CONN_COMMON
      pos:
        line_end: 270
        line_start: 268
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: "struct {                                           \\\n        "
    - item_type: preproc_def
      name: QUIC_FL_CONN_ANTI_AMPLIFICATION_REACHED
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: QUIC_FL_CONN_SPIN_BIT
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 1) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_NEED_POST_HANDSHAKE_FRMS
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 2) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_IS_BACK
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 3) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_ACCEPT_REGISTERED
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: (1U << 4)
    - item_type: preproc_def
      name: QUIC_FL_CONN_UDP_GSO_EIO
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 5) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_IDLE_TIMER_RESTARTED_AFTER_READ
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: (1U << 6)
    - item_type: preproc_def
      name: QUIC_FL_CONN_RETRANS_NEEDED
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: (1U << 7)
    - item_type: preproc_def
      name: QUIC_FL_CONN_RETRANS_OLD_DATA
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 8) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_TLS_ALERT
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: (1U << 9)
    - item_type: preproc_def
      name: QUIC_FL_CONN_TID_REBIND
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 10) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_HALF_OPEN_CNT_DECREMENTED
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 11) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_HANDSHAKE_SPEED_UP
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 12) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_ACK_TIMER_FIRED
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 13) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_IO_TO_REQUEUE
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 14) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_IPKTNS_DCD
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 15) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_HPKTNS_DCD
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 16) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_PEER_VALIDATED_ADDR
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 17) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_NO_TOKEN_RCVD
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 18) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_SCID_RECEIVED
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 19) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_XPRT_CLOSED
      pos:
        line_end: 455
        line_start: 454
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 20) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_TO_KILL
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 24) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_TX_TP_RECEIVED
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 25) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_FINALIZED
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 26) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_EXP_TIMER
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 28) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_CLOSING
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 29) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_DRAINING
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 30) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_IMMEDIATE_CLOSE
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 31) '
    structs:
    - fields:
      - name: num
        type: uint32_t
      - name: '*initial_salt'
        type: unsigned char
      - name: initial_salt_len
        type: size_t
      - name: '*key_label'
        type: unsigned char
      - name: key_label_len
        type: size_t
      - name: '*iv_label'
        type: unsigned char
      - name: iv_label_len
        type: size_t
      - name: '*hp_label'
        type: unsigned char
      - name: hp_label_len
        type: size_t
      - name: '*ku_label'
        type: unsigned char
      - name: ku_label_len
        type: size_t
      - name: '*retry_tag_key'
        type: unsigned char
      - name: '*retry_tag_nonce'
        type: unsigned char
      item_type: struct
      name: quic_version
      pos:
        line_end: 216
        line_start: 201
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
    - fields:
      - name: dropped_pkt
        type: long long
      - name: dropped_pkt_bufoverrun
        type: long long
      - name: dropped_parsing
        type: long long
      - name: socket_full
        type: long long
      - name: sendto_err
        type: long long
      - name: sendto_err_unknown
        type: long long
      - name: sent_bytes
        type: long long
      - name: sent_bytes_gso
        type: long long
      - name: sent_pkt
        type: long long
      - name: lost_pkt
        type: long long
      - name: conn_migration_done
        type: long long
      - name: data_blocked
        type: long long
      - name: stream_data_blocked
        type: long long
      - name: streams_blocked_bidi
        type: long long
      - name: streams_blocked_uni
        type: long long
      item_type: struct
      name: quic_conn_cntrs
      pos:
        line_end: 262
        line_start: 245
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
    - fields:
      - name: prep
        type: uint64_t
      - name: tx
        type: uint64_t
      - name: rx
        type: uint64_t
      item_type: struct
      name: bytes
      pos:
        line_end: 289
        line_start: 282
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
    - fields:
      - name: '*xprt_ctx'
        type: struct ssl_sock_ctx
      - name: '*original_version'
        type: struct quic_version
      - name: '*negotiated_version'
        type: struct quic_version
      - name: '*nictx'
        type: struct quic_tls_ctx
      - name: tps_tls_ext
        type: int
      - name: state
        type: int
      - name: next_cid_seq_num
        type: uint64_t
      - name: hash64
        type: uint64_t
      - name: '*retry_token'
        type: unsigned char
      - name: retry_token_len
        type: size_t
      - name: '*iel'
        type: struct quic_enc_level
      - name: '*eel'
        type: struct quic_enc_level
      - name: '*hel'
        type: struct quic_enc_level
      - name: '*ael'
        type: struct quic_enc_level
      - name: qel_list
        type: struct list
      - name: '*ipktns'
        type: struct quic_pktns
      - name: '*hpktns'
        type: struct quic_pktns
      - name: '*apktns'
        type: struct quic_pktns
      - name: pktns_list
        type: struct list
      - name: tx
        type: "struct {\n\t\t/* Transport parameters sent by the peer */\n\t\tstruct
          quic_transport_params params;\n\t\t/* Send buffer used to write datagrams.
          */\n\t\tstruct buffer buf;\n\t\t/* Send buffer used to send a \"connection
          close\" datagram . */\n\t\tstruct buffer cc_buf;\n\t\tchar *cc_buf_area;\n\t\t/*
          Length of the \"connection close\" datagram. */\n\t\tsize_t cc_dgram_len;\n\t}"
      - name: rx
        type: "struct {\n\t\t/* Transport parameters the peer will receive */\n\t\tstruct
          quic_transport_params params;\n\t\t/* RX buffer */\n\t\tstruct buffer buf;\n\t\tstruct
          list pkt_list;\n\n\t\t/* first unhandled streams ID, set by MUX after release
          */\n\t\tuint64_t stream_max_uni;\n\t\tuint64_t stream_max_bidi;\n\t}"
      - name: ku
        type: "struct {\n\t\tstruct quic_tls_kp prv_rx;\n\t\tstruct quic_tls_kp nxt_rx;\n\t\tstruct
          quic_tls_kp nxt_tx;\n\t}"
      - name: max_ack_delay
        type: unsigned int
      - name: max_idle_timeout
        type: unsigned int
      - name: paths[1]
        type: struct quic_cc_path
      - name: '*path'
        type: struct quic_cc_path
      - name: accept_list
        type: struct mt_list
      - name: streams_by_id
        type: struct eb_root
      - name: '*alpn'
        type: char
      - name: '*qcc'
        type: struct qcc
      - name: '*timer_task'
        type: struct task
      - name: timer
        type: unsigned int
      - name: ack_expire
        type: unsigned int
      - name: hs_expire
        type: unsigned int
      - name: (*strm_reject)(struct list *out, uint64_t stream_id)
        type: int
      - name: '*prx_counters'
        type: struct quic_counters
      - name: el_th_ctx
        type: struct list
      - name: back_refs
        type: struct list
      - name: qc_epoch
        type: unsigned int
      item_type: struct
      name: quic_conn
      pos:
        line_end: 421
        line_start: 314
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
    - fields:
      - name: '*cc_buf_area'
        type: char
      - name: cc_dgram_len
        type: size_t
      item_type: struct
      name: quic_conn_closed
      pos:
        line_end: 429
        line_start: 424
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
    typedefs:
    - item_type: typedef
      name: ull
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type: unsigned long long
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/session-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SRV_LIST
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/session-t.h
      type_or_value: '5'
    structs:
    - fields:
      - name: '*fe'
        type: struct proxy
      - name: '*listener'
        type: struct listener
      - name: '*origin'
        type: enum obj_type
      - name: accept_date
        type: struct timeval
      - name: accept_ts
        type: ullong
      - name: '*stkctr'
        type: struct stkctr
      - name: vars
        type: struct vars
      - name: '*task'
        type: struct task
      - name: t_handshake
        type: long
      - name: t_idle
        type: long
      - name: idle_conns
        type: int
      - name: flags
        type: unsigned int
      - name: priv_conns
        type: struct list
      - name: '*src'
        type: struct sockaddr_storage
      - name: '*dst'
        type: struct sockaddr_storage
      - name: '*fe_tgcounters'
        type: struct fe_counters_shared_tg
      - name: '*li_tgcounters'
        type: struct fe_counters_shared_tg
      item_type: struct
      name: session
      pos:
        line_end: 65
        line_start: 47
        source_file: /src/haproxy/include/haproxy/session-t.h
    - fields:
      - name: '*target'
        type: void
      - name: conn_list
        type: struct list
      - name: sess_el
        type: struct list
      - name: srv_el
        type: struct mt_list
      - name: tid
        type: int
      item_type: struct
      name: sess_priv_conns
      pos:
        line_end: 79
        line_start: 71
        source_file: /src/haproxy/include/haproxy/session-t.h
    typedefs: []
    union: []
- function_names:
  - proxy_type_str
  - proxy_fe_by_name
  - proxy_be_by_name
  - proxy_index_id
  - proxy_reset_timeouts
  - proxy_abrt_close_def
  - proxy_abrt_close
  - proxy_inc_fe_conn_ctr
  - proxy_inc_fe_sess_ctr
  - proxy_inc_fe_cum_sess_ver_ctr
  - proxy_inc_be_ctr
  - proxy_inc_fe_req_ctr
  - l7_status_match
  - in_proxies_list
  - increment_send_rate
  source_file: /src/haproxy/include/haproxy/proxy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HA_DIAG_WARNING_COND
  source_file: /src/haproxy/include/haproxy/errors.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ERR_NONE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/errors.h
      type_or_value: "0x00\t"
    - item_type: preproc_def
      name: ERR_RETRYABLE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/errors.h
      type_or_value: "0x01\t"
    - item_type: preproc_def
      name: ERR_FATAL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/errors.h
      type_or_value: "0x02\t"
    - item_type: preproc_def
      name: ERR_ABORT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/errors.h
      type_or_value: "0x04\t"
    - item_type: preproc_def
      name: ERR_WARN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/errors.h
      type_or_value: "0x08\t"
    - item_type: preproc_def
      name: ERR_ALERT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/errors.h
      type_or_value: "0x10\t"
    - item_type: preproc_def
      name: ERR_CODE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/errors.h
      type_or_value: "(ERR_RETRYABLE|ERR_FATAL|ERR_ABORT)\t"
    structs:
    - fields:
      - name: str
        type: struct buffer
      - name: '*prefix'
        type: char
      - name: '*file'
        type: char
      - name: line
        type: int
      - name: '*obj'
        type: enum obj_type
      item_type: struct
      name: usermsgs_ctx
      pos:
        line_end: 81
        line_start: 74
        source_file: /src/haproxy/include/haproxy/errors.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_fctl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IS_HTX_SC
  - se_fl_zero
  - se_fl_setall
  - se_fl_set
  - se_fl_clr
  - se_fl_test
  - se_fl_get
  - se_fl_set_error
  - se_expect_no_data
  - se_expect_data
  - se_have_ff_data
  - se_ff_data
  - se_opposite
  - sc_ep_fwd_kip
  - sc_ep_zero
  - sc_ep_setall
  - sc_ep_set
  - sc_ep_clr
  - sc_ep_test
  - sc_ep_get
  - sc_ep_lra
  - sc_ep_fsb
  - sc_ep_report_read_activity
  - sc_ep_report_blocked_send
  - sc_ep_report_send_activity
  - sc_ep_have_ff_data
  - sc_ep_ff_data
  - __sc_endp
  - __sc_conn
  - sc_conn
  - sc_mux_ops
  - __sc_mux_strm
  - sc_mux_strm
  - __sc_appctx
  - sc_appctx
  - __sc_strm
  - sc_strm
  - __sc_check
  - sc_check
  - __sc_hstream
  - sc_hstream
  - sc_waiting_room
  - se_have_more_data
  - se_have_no_more_data
  - sc_will_read
  - sc_wont_read
  - se_need_remote_conn
  - se_will_consume
  - se_wont_consume
  - se_need_more_data
  - se_nego_ff
  - se_done_ff
  - se_report_term_evt
  - sc_report_term_evt
  source_file: /src/haproxy/include/haproxy/stconn.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_socketat
  source_file: /src/haproxy/include/haproxy/namespace.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/acme.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vars_wrlock
  - vars_wrunlock
  - vars_rdlock
  - vars_rdunlock
  - vars_prune
  source_file: /src/haproxy/include/haproxy/vars.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - qc_frm_len
  - quic_err_transport
  - quic_err_tls
  - quic_err_app
  - qc_frm_alloc
  - qc_frm_dup
  - qc_stream_frm_mv_fwd
  source_file: /src/haproxy/include/haproxy/quic_frame.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/cfgcond-t.h
  types:
    enum:
    - enumerators:
      - name: NESTED_COND_IF_TAKE
      - name: NESTED_COND_ELIF_DROP
      - name: NESTED_COND_ELIF_TAKE
      - name: NESTED_COND_IF_DROP
      - name: NESTED_COND_IF_SKIP
      - name: NESTED_COND_ELIF_SKIP
      - name: NESTED_COND_ELSE_TAKE
      - name: NESTED_COND_ELSE_DROP
      item_type: enum
      name: nested_cond_state
      pos:
        line_end: 38
        line_start: 27
        source_file: /src/haproxy/include/haproxy/cfgcond-t.h
    - enumerators:
      - name: CFG_PRED_NONE
      - name: CFG_PRED_STRNEQ
      - name: CFG_PRED_STREQ
      - name: CFG_PRED_FEATURE
      - name: CFG_PRED_DEFINED
      - name: CFG_PRED_STRSTR
      - name: CFG_PRED_VERSION_ATLEAST
      - name: CFG_PRED_VERSION_BEFORE
      - name: CFG_PRED_OSSL_VERSION_ATLEAST
      - name: CFG_PRED_OSSL_VERSION_BEFORE
      - name: CFG_PRED_SSLLIB_NAME_STARTSWITH
      - name: CFG_PRED_AWSLC_API_ATLEAST
      - name: CFG_PRED_AWSLC_API_BEFORE
      - name: CFG_PRED_ENABLED
      item_type: enum
      name: cond_predicate
      pos:
        line_end: 59
        line_start: 44
        source_file: /src/haproxy/include/haproxy/cfgcond-t.h
    - enumerators:
      - name: CCTT_NONE
        value: '0'
      - name: CCTT_FALSE
      - name: CCTT_PRED
      - name: CCTT_TRUE
      - name: CCTT_PAREN
      item_type: enum
      name: cfg_cond_term_type
      pos:
        line_end: 68
        line_start: 62
        source_file: /src/haproxy/include/haproxy/cfgcond-t.h
    preproc_defs:
    - item_type: preproc_def
      name: MAXNESTEDCONDS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/cfgcond-t.h
      type_or_value: '100'
    structs:
    - fields:
      - name: '*word'
        type: char
      - name: prd
        type: enum cond_predicate
      - name: arg_mask
        type: uint64_t
      item_type: struct
      name: cond_pred_kw
      pos:
        line_end: 75
        line_start: 71
        source_file: /src/haproxy/include/haproxy/cfgcond-t.h
    - fields:
      - name: type
        type: enum cfg_cond_term_type
      - name: '*args'
        type: struct arg
      - name: neg
        type: int
      item_type: struct
      name: cfg_cond_term
      pos:
        line_end: 86
        line_start: 78
        source_file: /src/haproxy/include/haproxy/cfgcond-t.h
    - fields:
      - name: '*left'
        type: struct cfg_cond_term
      - name: '*right'
        type: struct cfg_cond_and
      item_type: struct
      name: cfg_cond_and
      pos:
        line_end: 95
        line_start: 92
        source_file: /src/haproxy/include/haproxy/cfgcond-t.h
    - fields:
      - name: '*left'
        type: struct cfg_cond_and
      - name: '*right'
        type: struct cfg_cond_expr
      item_type: struct
      name: cfg_cond_expr
      pos:
        line_end: 104
        line_start: 101
        source_file: /src/haproxy/include/haproxy/cfgcond-t.h
    typedefs: []
    union: []
- function_names:
  - spoe_encode_buffer
  - spoe_decode_buffer
  - spoe_encode_data
  - spoe_skip_data
  - spoe_decode_data
  - spoe_str_to_vsn
  - spoe_check_vsn
  source_file: /src/haproxy/include/haproxy/spoe.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IS_HTX_CONN
  - CALL_MUX_WITH_RET
  - CALL_MUX_NO_RET
  - conn_set_errcode
  - conn_xprt_ready
  - conn_ctrl_ready
  - conn_xprt_start
  - conn_xprt_close
  - conn_ctrl_init
  - conn_ctrl_close
  - conn_full_close
  - conn_stop_tracking
  - conn_fd
  - conn_sock_read0
  - conn_sock_shutw
  - conn_xprt_shutw
  - conn_xprt_shutw_hard
  - conn_xprt_read0_pending
  - conn_prepare
  - conn_is_back
  - conn_set_owner
  - conn_set_private
  - conn_force_unsubscribe
  - conn_src
  - conn_dst
  - conn_get_src
  - conn_get_dst
  - conn_set_tos
  - conn_set_mark
  - conn_set_quickack
  - wl_set_waitcb
  - conn_install_mux
  - conn_calc_max_streams
  - conn_get_first_sc
  - conn_get_ctrl_name
  - conn_get_xprt_name
  - conn_get_mux_name
  - xprt_register
  - xprt_get
  - xprt_set_idle
  - xprt_set_used
  - conn_get_alpn
  - unregister_mux_proto
  - get_mux_proto
  - conn_get_best_mux_entry
  - conn_get_best_mux
  - conn_get_proxy
  - __conn_get_ssl_sock_ctx
  - conn_get_ssl_sock_ctx
  - conn_is_ssl
  - conn_is_quic
  - conn_is_reverse
  - conn_reverse_in_preconnect
  - conn_set_reverse
  - conn_idle_ping
  - conn_active_reverse_listener
  - set_tlv_arg
  - conn_pr_mode_to_proto_mode
  - tevt_report_event
  - tevt_evts2str
  - conn_report_term_evt
  source_file: /src/haproxy/include/haproxy/connection.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/auth.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/activity-t.h
  types:
    enum:
    - enumerators:
      - name: MEMPROF_METH_UNKNOWN
        value: '0'
      - name: MEMPROF_METH_REALLOC
      - name: MEMPROF_METH_CALLOC
      - name: MEMPROF_METH_STRDUP
      - name: MEMPROF_METH_MALLOC
      - name: MEMPROF_METH_FREE
      - name: MEMPROF_METH_P_ALLOC
      - name: MEMPROF_METH_P_FREE
      - name: MEMPROF_METH_STRNDUP
      - name: MEMPROF_METH_VALLOC
      - name: MEMPROF_METH_MEMALIGN
      - name: MEMPROF_METH_PVALLOC
      - name: MEMPROF_METH_ALIGNED_ALLOC
      - name: MEMPROF_METH_METHODS
      - name: MEMPROF_METH_POSIX_MEMALIGN
      item_type: enum
      name: memprof_method
      pos:
        line_end: 58
        line_start: 42
        source_file: /src/haproxy/include/haproxy/activity-t.h
    preproc_defs:
    - item_type: preproc_def
      name: HA_PROF_TASKS_OFF
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: '0x00000000     '
    - item_type: preproc_def
      name: HA_PROF_TASKS_AOFF
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: '0x00000001     '
    - item_type: preproc_def
      name: HA_PROF_TASKS_AON
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: '0x00000002     '
    - item_type: preproc_def
      name: HA_PROF_TASKS_ON
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: '0x00000003     '
    - item_type: preproc_def
      name: HA_PROF_TASKS_MASK
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: '0x00000003     '
    - item_type: preproc_def
      name: HA_PROF_MEMORY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: '0x00000004     '
    - item_type: preproc_def
      name: HA_PROF_TASKS_MEM
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: '0x00000008     '
    - item_type: preproc_def
      name: HA_PROF_TASKS_LOCK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: '0x00000010     '
    - item_type: preproc_def
      name: MEMPROF_FREE_MASK
      pos:
        line_end: 68
        line_start: 65
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: "((1UL << MEMPROF_METH_REALLOC) | \\\n                             (1UL
        << MEMPROF_METH_FREE)    | \\\n                             (1UL << MEMPROF_METH_P_FREE))"
    - item_type: preproc_def
      name: SCHED_ACT_HASH_BITS
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SCHED_ACT_HASH_BUCKETS
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: (1U << SCHED_ACT_HASH_BITS)
    structs:
    - fields:
      - name: '*caller'
        type: void
      - name: method
        type: enum memprof_method
      - name: locked_calls
        type: unsigned long long
      - name: alloc_calls
        type: unsigned long long
      - name: free_calls
        type: unsigned long long
      - name: alloc_tot
        type: unsigned long long
      - name: free_tot
        type: unsigned long long
      - name: '*info'
        type: void
      - name: exec_ctx
        type: struct thread_exec_ctx
      item_type: struct
      name: memprof_stats
      pos:
        line_end: 88
        line_start: 77
        source_file: /src/haproxy/include/haproxy/activity-t.h
    - fields:
      - name: loops
        type: unsigned int
      - name: wake_tasks
        type: unsigned int
      - name: wake_signal
        type: unsigned int
      - name: poll_io
        type: unsigned int
      - name: poll_exp
        type: unsigned int
      - name: poll_drop_fd
        type: unsigned int
      - name: poll_skip_fd
        type: unsigned int
      - name: conn_dead
        type: unsigned int
      - name: stream_calls
        type: unsigned int
      - name: ctxsw
        type: unsigned int
      - name: tasksw
        type: unsigned int
      - name: empty_rq
        type: unsigned int
      - name: long_rq
        type: unsigned int
      - name: cpust_total
        type: unsigned int
      - name: fd_takeover
        type: unsigned int
      - name: check_adopted
        type: unsigned int
      - name: cpust_1s
        type: struct freq_ctr
      - name: cpust_15s
        type: struct freq_ctr
      - name: avg_loop_us
        type: unsigned int
      - name: accepted
        type: unsigned int
      - name: accq_pushed
        type: unsigned int
      - name: accq_full
        type: unsigned int
      - name: pool_fail
        type: unsigned int
      - name: buf_wait
        type: unsigned int
      - name: check_started
        type: unsigned int
      - name: __pad[0]
        type: char
      - name: THREAD_ALIGNED()
        type: char
      item_type: struct
      name: activity
      pos:
        line_end: 132
        line_start: 96
        source_file: /src/haproxy/include/haproxy/activity-t.h
    - fields:
      - name: '*func'
        type: void
      - name: '*caller'
        type: struct ha_caller
      - name: calls
        type: uint64_t
      - name: cpu_time
        type: uint64_t
      - name: lat_time
        type: uint64_t
      - name: lkw_time
        type: uint64_t
      - name: lkd_time
        type: uint64_t
      - name: mem_time
        type: uint64_t
      item_type: struct
      name: sched_activity
      pos:
        line_end: 152
        line_start: 143
        source_file: /src/haproxy/include/haproxy/activity-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/acme_resolvers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _EVENT_HDL_CALLING_PLACE2
  - _EVENT_HDL_CALLING_PLACE1
  - EVENT_HDL_ID_SYNC
  - EVENT_HDL_SYNC
  - EVENT_HDL_ID_ASYNC
  - EVENT_HDL_ASYNC
  - EVENT_HDL_ID_ASYNC_TASK
  - EVENT_HDL_ASYNC_TASK
  - _EVENT_HDL_CB_DATA_ASSERT
  - _EVENT_HDL_CB_DATA
  - EVENT_HDL_CB_DATA
  - EVENT_HDL_CB_DATA_DM
  - EVENT_HDL_ASSERT_SYNC
  - event_hdl_sub_family_equal
  - event_hdl_sub_type_equal
  - event_hdl_sub_type_del
  - event_hdl_sub_type_add
  - event_hdl_async_equeue_init
  - event_hdl_async_equeue_pop
  - event_hdl_async_equeue_isempty
  - event_hdl_async_equeue_size
  - event_hdl_sub_list_empty
  source_file: /src/haproxy/include/haproxy/event_hdl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _EVENT_HDL_CALLING_PLACE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/event_hdl.h
      type_or_value: __FILE__":"_EVENT_HDL_CALLING_PLACE1(__LINE__)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/proto_rhttp-t.h
  types:
    enum:
    - enumerators:
      - name: LI_PRECONN_ST_STOP
      - name: LI_PRECONN_ST_ERR
      - name: LI_PRECONN_ST_INIT
      - name: LI_PRECONN_ST_FULL
      item_type: enum
      name: li_preconn_state
      pos:
        line_end: 11
        line_start: 6
        source_file: /src/haproxy/include/haproxy/proto_rhttp-t.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TASK_IS_TASKLET
  - total_run_queues
  - total_allocated_tasks
  - total_niced_running_tasks
  - task_in_rq
  - task_in_wq
  - thread_has_tasks
  - task_mono_time
  - task_wakeup
  - _task_wakeup
  - task_drop_running
  - __task_unlink_wq
  - task_unlink_wq
  - task_queue
  - _task_queue
  - task_set_thread
  - tasklet_wakeup_on
  - _tasklet_wakeup_on
  - tasklet_wakeup
  - task_instant_wakeup
  - _task_instant_wakeup
  - tasklet_wakeup_after
  - _tasklet_wakeup_after
  - DEBUG_TASK_PRINT_CALLER
  - DEBUG_TASK_PRINT_CALLER
  - task_init
  - tasklet_init
  - tasklet_new
  - task_new_on
  - task_new_here
  - task_new_anywhere
  - __task_free
  - task_destroy
  - tasklet_free
  - tasklet_set_tid
  - task_schedule
  - _task_schedule
  - task_wakeup_type_str
  - _notification_new
  - notification_new
  - notification_purge
  - list_for_each_entry_safe
  - notification_gc
  - list_for_each_entry_safe
  - _notification_wake
  - notification_wake
  - MT_LIST_FOR_EACH_ENTRY_UNLOCKED
  - notification_registered
  source_file: /src/haproxy/include/haproxy/task.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TIMER_LOOK_BACK
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/task.h
      type_or_value: (1U << 31)
    structs: []
    typedefs: []
    union: []
- function_names:
  - thread_set_count
  - thread_set_is_empty
  - thread_set_nth_group
  - thread_set_nth_tmask
  - thread_set_pin_grp1
  - switch_exec_ctx
  - EXEC_CTX_MAKE
  - EXEC_CTX_WITH_RET
  - EXEC_CTX_NO_RET
  source_file: /src/haproxy/include/haproxy/tinfo.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXEC_CTX_NONE
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/haproxy/include/haproxy/tinfo.h
      type_or_value: ((struct thread_exec_ctx){ .type = 0, .pointer = NULL })
    structs: []
    typedefs: []
    union: []
- function_names:
  - QUIC_CLAMP
  - quic_cc_hystart_reset
  - quic_cc_hystart_track_min_rtt
  - quic_cc_hystart_start_round
  - quic_cc_hystart_may_enter_cs
  - quic_cc_hystart_may_reenter_ss
  source_file: /src/haproxy/include/haproxy/quic_cc_hystart.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HYSTART_MIN_RTT_THRESH
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/haproxy/include/haproxy/quic_cc_hystart.h
      type_or_value: '4U '
    - item_type: preproc_def
      name: HYSTART_MAX_RTT_THRESH
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/haproxy/include/haproxy/quic_cc_hystart.h
      type_or_value: '16U '
    - item_type: preproc_def
      name: HYSTART_MIN_RTT_DIVISOR
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/haproxy/include/haproxy/quic_cc_hystart.h
      type_or_value: '8'
    - item_type: preproc_def
      name: HYSTART_N_RTT_SAMPLE
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/haproxy/include/haproxy/quic_cc_hystart.h
      type_or_value: '8'
    - item_type: preproc_def
      name: HYSTART_CSS_GROWTH_DIVISOR
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/haproxy/include/haproxy/quic_cc_hystart.h
      type_or_value: '4'
    - item_type: preproc_def
      name: HYSTART_CSS_ROUNDS
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/haproxy/include/haproxy/quic_cc_hystart.h
      type_or_value: '5'
    - item_type: preproc_def
      name: HYSTART_LIMIT
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/haproxy/include/haproxy/quic_cc_hystart.h
      type_or_value: '8 '
    structs:
    - fields:
      - name: curr_rnd_min_rtt
        type: uint32_t
      - name: last_rnd_min_rtt
        type: uint32_t
      - name: css_baseline_min_rtt
        type: uint32_t
      - name: rtt_sample_count
        type: uint32_t
      - name: css_rnd_count
        type: uint32_t
      - name: wnd_end
        type: uint64_t
      item_type: struct
      name: quic_hystart
      pos:
        line_end: 29
        line_start: 19
        source_file: /src/haproxy/include/haproxy/quic_cc_hystart.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
  types:
    enum:
    - enumerators:
      - name: TCPCHK_SEND_UNDEF
        value: '0'
      - name: TCPCHK_SEND_BINARY_LF
      - name: TCPCHK_SEND_STRING_LF
      - name: TCPCHK_SEND_STRING
      - name: TCPCHK_SEND_BINARY
      - name: TCPCHK_SEND_HTTP
      item_type: enum
      name: tcpcheck_send_type
      pos:
        line_end: 47
        line_start: 40
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - enumerators:
      - name: TCPCHK_EVAL_WAIT
        value: '0'
      - name: TCPCHK_EVAL_CONTINUE
      - name: TCPCHK_EVAL_STOP
      item_type: enum
      name: tcpcheck_eval_ret
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - enumerators:
      - name: TCPCHK_EXPECT_UNDEF
        value: '0'
      - name: TCPCHK_EXPECT_STRING
      - name: TCPCHK_EXPECT_BINARY
      - name: TCPCHK_EXPECT_STRING_REGEX
      - name: TCPCHK_EXPECT_STRING_LF
      - name: TCPCHK_EXPECT_BINARY_REGEX
      - name: TCPCHK_EXPECT_BINARY_LF
      - name: TCPCHK_EXPECT_CUSTOM
      - name: TCPCHK_EXPECT_HTTP_STATUS
      - name: TCPCHK_EXPECT_HTTP_STATUS_REGEX
      - name: TCPCHK_EXPECT_HTTP_BODY_REGEX
      - name: TCPCHK_EXPECT_HTTP_BODY_LF
      - name: TCPCHK_EXPECT_HTTP_BODY
      - name: TCPCHK_EXPECT_HTTP_HEADER
      item_type: enum
      name: tcpcheck_expect_type
      pos:
        line_end: 75
        line_start: 60
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - enumerators:
      - name: TCPCHK_ACT_SEND
        value: '0'
      - name: TCPCHK_ACT_EXPECT
      - name: TCPCHK_ACT_ACTION_KW
      - name: TCPCHK_ACT_CONNECT
      - name: TCPCHK_ACT_COMMENT
      item_type: enum
      name: tcpcheck_rule_type
      pos:
        line_end: 104
        line_start: 98
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    preproc_defs:
    - item_type: preproc_def
      name: TCPCHK_OPT_NONE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0000  '
    - item_type: preproc_def
      name: TCPCHK_OPT_SEND_PROXY
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: TCPCHK_OPT_SSL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: TCPCHK_OPT_LINGER
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: TCPCHK_OPT_DEFAULT_CONNECT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0008  '
    - item_type: preproc_def
      name: TCPCHK_OPT_IMPLICIT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0010  '
    - item_type: preproc_def
      name: TCPCHK_OPT_SOCKS4
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0020  '
    - item_type: preproc_def
      name: TCPCHK_OPT_HAS_DATA
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0040  '
    - item_type: preproc_def
      name: TCPCHK_MASK_OPTS_CONNECT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0027  '
    - item_type: preproc_def
      name: TCPCHK_SND_HTTP_FL_URI_FMT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: TCPCHK_SND_HTTP_FL_BODY_FMT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: TCPCHK_SND_HTTP_FROM_OPT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0004 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_INV
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HNAME_STR
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HNAME_BEG
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0004 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HNAME_END
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0008 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HNAME_SUB
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0010 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HNAME_REG
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0020 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HNAME_FMT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0040 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HVAL_NONE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0080 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HVAL_STR
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0100 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HVAL_BEG
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0200 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HVAL_END
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0400 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HVAL_SUB
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x0800 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HVAL_REG
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x1000 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HVAL_FMT
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x2000 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HVAL_FULL
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x4000 '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HNAME_TYPE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x003E '
    - item_type: preproc_def
      name: TCPCHK_EXPT_FL_HTTP_HVAL_TYPE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x1F00 '
    - item_type: preproc_def
      name: TCPCHK_FL_NONE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: TCPCHK_FL_UNUSED_TCP_RS
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: TCPCHK_FL_UNUSED_HTTP_RS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: TCPCHK_FL_UNUSED_RS
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000003 '
    - item_type: preproc_def
      name: TCPCHK_FL_USE_SSL
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: TCPCHK_RULES_NONE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: TCPCHK_RULES_DISABLE404
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: TCPCHK_RULES_SNDST
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: TCPCHK_RULES_PGSQL_CHK
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: TCPCHK_RULES_REDIS_CHK
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: TCPCHK_RULES_SMTP_CHK
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000030'
    - item_type: preproc_def
      name: TCPCHK_RULES_HTTP_CHK
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: TCPCHK_RULES_MYSQL_CHK
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000050'
    - item_type: preproc_def
      name: TCPCHK_RULES_LDAP_CHK
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000060'
    - item_type: preproc_def
      name: TCPCHK_RULES_SSL3_CHK
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000070'
    - item_type: preproc_def
      name: TCPCHK_RULES_AGENT_CHK
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: TCPCHK_RULES_SPOP_CHK
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000090'
    - item_type: preproc_def
      name: TCPCHK_RULES_TCP_CHK
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000FF0'
    - item_type: preproc_def
      name: TCPCHK_RULES_PROTO_CHK
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000FF0 '
    - item_type: preproc_def
      name: TCPCHK_RULES_MAY_USE_SBUF
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00001000 '
    structs:
    - fields:
      - name: '*sni'
        type: char
      - name: '*sni_fmt'
        type: struct lf_expr
      - name: '*alpn'
        type: char
      - name: alpn_len
        type: int
      - name: options
        type: uint16_t
      - name: port
        type: uint16_t
      - name: '*mux_proto'
        type: struct mux_proto_list
      - name: '*port_expr'
        type: struct sample_expr
      - name: addr
        type: struct sockaddr_storage
      item_type: struct
      name: tcpcheck_connect
      pos:
        line_end: 141
        line_start: 131
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - fields:
      - name: name
        type: struct ist
      - name: value
        type: struct lf_expr
      - name: list
        type: struct list
      item_type: struct
      name: tcpcheck_http_hdr
      pos:
        line_end: 147
        line_start: 143
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - fields:
      - name: (*codes)[2]
        type: unsigned int
      - name: num
        type: size_t
      item_type: struct
      name: tcpcheck_codes
      pos:
        line_end: 152
        line_start: 149
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - fields:
      - name: type
        type: enum tcpcheck_send_type
      item_type: struct
      name: tcpcheck_send
      pos:
        line_end: 174
        line_start: 154
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - fields:
      - name: type
        type: enum tcpcheck_expect_type
      - name: flags
        type: unsigned int
      - name: '*head'
        type: struct tcpcheck_rule
      - name: min_recv
        type: int
      - name: ok_status
        type: enum healthcheck_status
      - name: err_status
        type: enum healthcheck_status
      - name: tout_status
        type: enum healthcheck_status
      - name: onerror_fmt
        type: struct lf_expr
      - name: onsuccess_fmt
        type: struct lf_expr
      - name: '*status_expr'
        type: struct sample_expr
      item_type: struct
      name: tcpcheck_expect
      pos:
        line_end: 209
        line_start: 176
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - fields:
      - name: '*rule'
        type: struct act_rule
      item_type: struct
      name: tcpcheck_action_kw
      pos:
        line_end: 213
        line_start: 211
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - fields:
      - name: list
        type: struct list
      - name: action
        type: enum tcpcheck_rule_type
      - name: index
        type: int
      - name: '*comment'
        type: char
      item_type: struct
      name: tcpcheck_rule
      pos:
        line_end: 226
        line_start: 215
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - fields:
      - name: name
        type: struct ist
      - name: data
        type: struct sample_data
      - name: list
        type: struct list
      item_type: struct
      name: tcpcheck_var
      pos:
        line_end: 233
        line_start: 229
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - fields:
      - name: rules
        type: struct list
      - name: flags
        type: unsigned int
      - name: node
        type: struct ebpt_node
      - name: conf
        type: "struct {\n\t\tstruct list preset_vars;  /* The list of variable to
          preset for healthcheck sections */\n\t\tunsigned int flags;       /* TCPCHECK_FL_*
          for healthcheck sections */\n\t\tconst char *file;         /* file where
          the section appears */\n\t\tint line;                 /* line where the
          section appears */\n\t}"
      item_type: struct
      name: tcpcheck_ruleset
      pos:
        line_end: 246
        line_start: 236
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - fields:
      - name: '*rs'
        type: struct tcpcheck_ruleset
      - name: '*healthcheck'
        type: char
      - name: preset_vars
        type: struct list
      - name: flags
        type: unsigned int
      item_type: struct
      name: tcpcheck
      pos:
        line_end: 253
        line_start: 248
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    typedefs: []
    union: []
- function_names:
  - h2c_show_flags
  - _
  - h2s_show_flags
  - _
  - h2c_st_to_str
  - h2s_st_to_str
  source_file: /src/haproxy/include/haproxy/mux_h2-t.h
  types:
    enum:
    - enumerators:
      - name: H2_CS_PREFACE
      - name: H2_CS_FRAME_A
      - name: H2_CS_FRAME_P
      - name: H2_CS_FRAME_H
      - name: H2_CS_SETTINGS1
      - name: H2_CS_FRAME_E
      - name: H2_CS_ERROR
      - name: H2_CS_ERROR2
      - name: H2_CS_ENTRIES
      item_type: enum
      name: h2_cs
      pos:
        line_end: 174
        line_start: 164
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
    - enumerators:
      - name: H2_SS_IDLE
        value: '0'
      - name: H2_SS_HREM
      - name: H2_SS_RLOC
      - name: H2_SS_RREM
      - name: H2_SS_OPEN
      - name: H2_SS_HLOC
      - name: H2_SS_ERROR
      - name: H2_SS_CLOSED
      - name: H2_SS_ENTRIES
      item_type: enum
      name: h2_ss
      pos:
        line_end: 187
        line_start: 177
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
    preproc_defs:
    - item_type: preproc_def
      name: H2_CF_NONE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: H2_CF_MUX_MALLOC
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000001  // mux blocked on lack of connection's mux buffer
    - item_type: preproc_def
      name: H2_CF_MUX_MFULL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000002  // mux blocked on connection's mux buffer full
    - item_type: preproc_def
      name: H2_CF_MUX_BLOCK_ANY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000003  // aggregate of the mux flags above
    - item_type: preproc_def
      name: H2_CF_DEM_DALLOC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000004  // demux blocked on lack of connection's demux buffer
    - item_type: preproc_def
      name: H2_CF_DEM_DFULL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000008  // demux blocked on connection's demux buffer full
    - item_type: preproc_def
      name: H2_CF_DEM_RXBUF
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000010  // demux blocked on missing rxbuf slots
    - item_type: preproc_def
      name: H2_CF_DEM_MROOM
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000020  // demux blocked on lack of room in mux buffer
    - item_type: preproc_def
      name: H2_CF_DEM_SALLOC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000040  // demux blocked on lack of stream's request buffer
    - item_type: preproc_def
      name: H2_CF_DEM_SFULL
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000080  // demux blocked on stream request buffer full
    - item_type: preproc_def
      name: H2_CF_DEM_TOOMANY
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000100  // demux blocked waiting for some stream connectors
        to leave
    - item_type: preproc_def
      name: H2_CF_DEM_BLOCK_ANY
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x000001F0  // aggregate of the demux flags above except DALLOC/DFULL
    - item_type: preproc_def
      name: H2_CF_DEM_SHORT_READ
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000200  // demux blocked on incomplete frame
    - item_type: preproc_def
      name: H2_CF_DEM_IN_PROGRESS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000400  // demux in progress (dsi,dfl,dft are valid)
    - item_type: preproc_def
      name: H2_CF_MBUF_HAS_DATA
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000800  // some stream data (data, headers) still in mbuf
    - item_type: preproc_def
      name: H2_CF_GOAWAY_SENT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00001000  // a GOAWAY frame was successfully sent
    - item_type: preproc_def
      name: H2_CF_GOAWAY_FAILED
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00002000  // a GOAWAY frame failed to be sent
    - item_type: preproc_def
      name: H2_CF_WAIT_FOR_HS
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00004000  // We did check that at least a stream was waiting
        for handshake
    - item_type: preproc_def
      name: H2_CF_IS_BACK
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00008000  // this is an outgoing connection
    - item_type: preproc_def
      name: H2_CF_WINDOW_OPENED
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00010000  // demux increased window already advertised
    - item_type: preproc_def
      name: H2_CF_RCVD_SHUT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00020000  // a recv() attempt already failed on a shutdown
    - item_type: preproc_def
      name: H2_CF_END_REACHED
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00040000  // pending data too short with RCVD_SHUT present
    - item_type: preproc_def
      name: H2_CF_SETTINGS_NEEDED
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00080000  // can't proceed without knowing settings (frontend
        or extensions)
    - item_type: preproc_def
      name: H2_CF_RCVD_RFC8441
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00100000  // settings from RFC8441 has been received indicating
        support for Extended CONNECT
    - item_type: preproc_def
      name: H2_CF_SHTS_UPDATED
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00200000  // SETTINGS_HEADER_TABLE_SIZE updated
    - item_type: preproc_def
      name: H2_CF_DTSU_EMITTED
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00400000  // HPACK Dynamic Table Size Update opcode emitted
    - item_type: preproc_def
      name: H2_CF_ERR_PENDING
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00800000  // A write error was detected (block sends but not
        reads)
    - item_type: preproc_def
      name: H2_CF_ERROR
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x01000000  //A read error was detected (handled has an abort)
    - item_type: preproc_def
      name: H2_CF_WAIT_INLIST
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x02000000  // there is at least one stream blocked by another
        stream in send_list/fctl_list
    - item_type: preproc_def
      name: H2_CF_IDL_PING
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x04000000  // timer task scheduled for a PING emission
    - item_type: preproc_def
      name: H2_CF_IDL_PING_SENT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x08000000  // PING emitted, or will be on next tasklet run,
        waiting for ACK
    - item_type: preproc_def
      name: H2_SF_NONE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: H2_SF_ES_RCVD
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: H2_SF_ES_SENT
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: H2_SF_RST_RCVD
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000004 // received RST_STREAM
    - item_type: preproc_def
      name: H2_SF_RST_SENT
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000008 // sent RST_STREAM
    - item_type: preproc_def
      name: H2_SF_BLK_MBUSY
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000010 // blocked waiting for mux access (transient)
    - item_type: preproc_def
      name: H2_SF_BLK_MROOM
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000020 // blocked waiting for room in the mux (must be in
        send list)
    - item_type: preproc_def
      name: H2_SF_BLK_MFCTL
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000040 // blocked due to mux fctl (must be in fctl list)
    - item_type: preproc_def
      name: H2_SF_BLK_SFCTL
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000080 // blocked due to stream fctl (must be in blocked
        list)
    - item_type: preproc_def
      name: H2_SF_BLK_ANY
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x000000F0 // any of the reasons above
    - item_type: preproc_def
      name: H2_SF_DATA_CLEN
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000100 // data sent using content-length
    - item_type: preproc_def
      name: H2_SF_BODYLESS_RESP
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: H2_SF_BODY_TUNNEL
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000400 // Attempt to establish a Tunnelled stream (the result
        depends on the status code)
    - item_type: preproc_def
      name: H2_SF_NOTIFIED
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00000800  // a paused stream was notified to try to send again
    - item_type: preproc_def
      name: H2_SF_HEADERS_SENT
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00001000  // a HEADERS frame was sent for this stream
    - item_type: preproc_def
      name: H2_SF_OUTGOING_DATA
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00002000  // set whenever we've seen outgoing data
    - item_type: preproc_def
      name: H2_SF_HEADERS_RCVD
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00004000  // a HEADERS frame was received for this stream
    - item_type: preproc_def
      name: H2_SF_WANT_SHUTR
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00008000  // a stream couldn't shutr() (mux full/busy)
    - item_type: preproc_def
      name: H2_SF_WANT_SHUTW
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00010000  // a stream couldn't shutw() (mux full/busy)
    - item_type: preproc_def
      name: H2_SF_EXT_CONNECT_SENT
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00040000  // rfc 8441 an Extended CONNECT has been sent
    - item_type: preproc_def
      name: H2_SF_EXT_CONNECT_RCVD
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00080000  // rfc 8441 an Extended CONNECT has been received
        and parsed
    - item_type: preproc_def
      name: H2_SF_TUNNEL_ABRT
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00100000  // A tunnel attempt was aborted
    - item_type: preproc_def
      name: H2_SF_MORE_HTX_DATA
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00200000  // more data expected from HTX
    - item_type: preproc_def
      name: H2_SF_EXPECT_RXDATA
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: 0x00400000  // more data expected from the peer
    - item_type: preproc_def
      name: H2C_MBUF_CNT
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_tune-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_DFLT_CC_MAX_FRAME_LOSS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '10'
    - item_type: preproc_def
      name: QUIC_DFLT_CC_MAX_WIN_SIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '491520'
    - item_type: preproc_def
      name: QUIC_DFLT_CC_REORDER_RATIO
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '50 '
    - item_type: preproc_def
      name: QUIC_DFLT_FE_MAX_IDLE_TIMEOUT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '30000 '
    - item_type: preproc_def
      name: QUIC_DFLT_BE_MAX_IDLE_TIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '30000 '
    - item_type: preproc_def
      name: QUIC_DFLT_SEC_RETRY_THRESHOLD
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '100 '
    - item_type: preproc_def
      name: QUIC_DFLT_FE_STREAM_DATA_RATIO
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '90'
    - item_type: preproc_def
      name: QUIC_DFLT_BE_STREAM_DATA_RATIO
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '90'
    - item_type: preproc_def
      name: QUIC_DFLT_FE_STREAM_MAX_CONCURRENT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '100'
    - item_type: preproc_def
      name: QUIC_DFLT_BE_STREAM_MAX_CONCURRENT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '100'
    - item_type: preproc_def
      name: QUIC_TUNE_FE_LISTEN_OFF
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: QUIC_TUNE_FE_SOCK_PER_CONN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: QUIC_TUNE_FB_TX_PACING
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: QUIC_TUNE_FB_TX_UDP_GSO
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: QUIC_TUNE_FB_CC_HYSTART
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
      type_or_value: '0x00000004'
    structs:
    - fields:
      - name: fe
        type: "struct {\n\t\tuint cc_cubic_min_losses;\n\t\tuint cc_max_frame_loss;\n\t\tsize_t
          cc_max_win_size;\n\t\tuint cc_reorder_ratio;\n\t\tuint max_idle_timeout;\n\t\tuint
          sec_glitches_threshold;\n\t\tuint sec_retry_threshold;\n\t\tuint stream_data_ratio;\n\t\tuint
          stream_max_concurrent;\n\t\tuint stream_max_total;\n\t\tuint stream_rxbuf;\n\t\tuint
          opts;    /* QUIC_TUNE_FE_* options specific to FE side */\n\t\tuint fb_opts;
          /* QUIC_TUNE_FB_* options shared by both side */\n\t}"
      - name: be
        type: "struct {\n\t\tuint cc_cubic_min_losses;\n\t\tuint cc_max_frame_loss;\n\t\tsize_t
          cc_max_win_size;\n\t\tuint cc_reorder_ratio;\n\t\tuint max_idle_timeout;\n\t\tuint
          sec_glitches_threshold;\n\t\tuint stream_data_ratio;\n\t\tuint stream_max_concurrent;\n\t\tuint
          stream_rxbuf;\n\t\tuint fb_opts; /* QUIC_TUNE_FB_* options shared by both
          side */\n\t}"
      - name: mem_tx_max
        type: uint64_t
      item_type: struct
      name: quic_tune
      pos:
        line_end: 65
        line_start: 34
        source_file: /src/haproxy/include/haproxy/quic_tune-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/stats-file.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STAT_FILE_MAX_COL_COUNT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/include/haproxy/stats-file.h
      type_or_value: (ST_I_PX_MAX*2)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/capture-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct cap_hdr
      - name: '*name'
        type: char
      - name: namelen
        type: int
      - name: len
        type: int
      - name: index
        type: int
      - name: '*pool'
        type: struct pool_head
      item_type: struct
      name: cap_hdr
      pos:
        line_end: 33
        line_start: 26
        source_file: /src/haproxy/include/haproxy/capture-t.h
    typedefs: []
    union: []
- function_names:
  - HA_INIT_SECTION
  - __DECLARE_INITCALL
  - __DECLARE_INITCALL
  - _DECLARE_INITCALL
  - INITCALL0
  - INITCALL1
  - INITCALL2
  - INITCALL3
  - FOREACH_INITCALL
  - FOREACH_INITCALL
  - DECLARE_INIT_SECTION
  - RUN_INITCALLS
  - RUN_INITCALLS
  source_file: /src/haproxy/include/haproxy/initcall.h
  types:
    enum:
    - enumerators:
      - name: STG_PREPARE
        value: '0'
      - name: STG_LOCK
      - name: STG_POOL
      - name: STG_REGISTER
      - name: STG_ALLOC
      - name: STG_INIT
      - name: STG_INIT_2
      - name: STG_SIZE
      item_type: enum
      name: init_stage
      pos:
        line_end: 71
        line_start: 62
        source_file: /src/haproxy/include/haproxy/initcall.h
    preproc_defs:
    - item_type: preproc_def
      name: DECLARE_INIT_STAGES
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/haproxy/include/haproxy/initcall.h
      type_or_value: asm("")
    - item_type: preproc_def
      name: DECLARE_INIT_STAGES
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/haproxy/include/haproxy/initcall.h
      type_or_value: struct initcall *__initstg[STG_SIZE]
    structs:
    - fields:
      - name: (*const fct)(void *arg1, void *arg2, void *arg3)
        type: void
      - name: '*arg1'
        type: void
      - name: '*arg2'
        type: void
      - name: '*arg3'
        type: void
      - name: '*loc_file'
        type: char
      - name: loc_line
        type: int
      item_type: struct
      name: initcall
      pos:
        line_end: 84
        line_start: 74
        source_file: /src/haproxy/include/haproxy/initcall.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/action-t.h
  types:
    enum:
    - enumerators:
      - name: ACT_F_TCP_REQ_CON
      - name: ACT_F_HTTP_REQ
      - name: ACT_F_TCP_REQ_SES
      - name: ACT_F_TCP_REQ_CNT
      - name: ACT_F_TCP_RES_CNT
      - name: ACT_F_HTTP_RES
      - name: ACT_F_TCP_CHK
      - name: ACT_F_CFG_PARSER
      - name: ACT_F_CLI_PARSER
      - name: ACT_F_QUIC_INIT
      item_type: enum
      name: act_from
      pos:
        line_end: 46
        line_start: 33
        source_file: /src/haproxy/include/haproxy/action-t.h
    - enumerators:
      - name: ACT_RET_CONT
      - name: ACT_RET_DONE
      - name: ACT_RET_STOP
      - name: ACT_RET_YIELD
      - name: ACT_RET_ERR
      - name: ACT_RET_DENY
      - name: ACT_RET_ABRT
      - name: ACT_RET_INV
      item_type: enum
      name: act_return
      pos:
        line_end: 57
        line_start: 48
        source_file: /src/haproxy/include/haproxy/action-t.h
    - enumerators:
      - name: ACT_RET_PRS_OK
      - name: ACT_RET_PRS_ERR
      item_type: enum
      name: act_parse_ret
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/haproxy/include/haproxy/action-t.h
    - enumerators:
      - name: ACT_OPT_NONE
        value: '0x00000000'
      - name: ACT_OPT_FINAL_EARLY
        value: '0x00000002'
      - name: ACT_OPT_FIRST
        value: '0x00000004'
      - name: ACT_OPT_FINAL
        value: '0x00000001'
      item_type: enum
      name: act_opt
      pos:
        line_end: 70
        line_start: 65
        source_file: /src/haproxy/include/haproxy/action-t.h
    - enumerators:
      - name: ACT_FLAG_FINAL
        value: 1 << 0
      item_type: enum
      name: act_flag
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/haproxy/include/haproxy/action-t.h
    - enumerators:
      - name: ACT_CUSTOM
        value: '0'
      - name: ACT_HTTP_REQ_TARPIT
      - name: ACT_ACTION_DENY
      - name: ACT_HTTP_REDIR
      - name: ACT_ACTION_ALLOW
      - name: ACT_TCP_EXPECT_PX
      - name: ACT_TCP_EXPECT_CIP
      - name: ACT_TCP_CLOSE
      item_type: enum
      name: act_name
      pos:
        line_end: 100
        line_start: 83
        source_file: /src/haproxy/include/haproxy/action-t.h
    - enumerators:
      - name: ACT_TIMEOUT_CONNECT
      - name: ACT_TIMEOUT_TUNNEL
      - name: ACT_TIMEOUT_QUEUE
      - name: ACT_TIMEOUT_TARPIT
      - name: ACT_TIMEOUT_SERVER
      - name: ACT_TIMEOUT_CLIENT
      item_type: enum
      name: act_timeout_name
      pos:
        line_end: 110
        line_start: 103
        source_file: /src/haproxy/include/haproxy/action-t.h
    - enumerators:
      - name: ACT_NORMALIZE_URI_PATH_MERGE_SLASHES
      - name: ACT_NORMALIZE_URI_PATH_STRIP_DOT
      - name: ACT_NORMALIZE_URI_PATH_STRIP_DOTDOT_FULL
      - name: ACT_NORMALIZE_URI_QUERY_SORT_BY_NAME
      - name: ACT_NORMALIZE_URI_PATH_STRIP_DOTDOT
      - name: ACT_NORMALIZE_URI_PERCENT_TO_UPPERCASE
      - name: ACT_NORMALIZE_URI_PERCENT_TO_UPPERCASE_STRICT
      - name: ACT_NORMALIZE_URI_PERCENT_DECODE_UNRESERVED
      - name: ACT_NORMALIZE_URI_PERCENT_DECODE_UNRESERVED_STRICT
      - name: ACT_NORMALIZE_URI_FRAGMENT_STRIP
      - name: ACT_NORMALIZE_URI_FRAGMENT_ENCODE
      item_type: enum
      name: act_normalize_uri
      pos:
        line_end: 124
        line_start: 112
        source_file: /src/haproxy/include/haproxy/action-t.h
    preproc_defs: []
    structs:
    - fields:
      - name: list
        type: struct list
      - name: '*cond'
        type: struct acl_cond
      - name: action
        type: unsigned int
      - name: flags
        type: unsigned int
      - name: from
        type: enum act_from
      - name: "(*action_ptr)(struct act_rule *rule, struct proxy *px,  /* ptr to custom
          action */\n\t                              struct session *sess, struct
          stream *s, int opts)"
        type: enum act_return
      - name: (*check_ptr)(struct act_rule *rule, struct proxy *px, char **err)
        type: int
      - name: (*release_ptr)(struct act_rule *rule)
        type: void
      - name: '*kw'
        type: struct action_kw
      - name: applet
        type: struct applet
      - name: arg
        type: "union {\n\t\tstruct {\n\t\t\tstruct sample_expr *expr;\n\t\t\tchar
          *varname;\n\t\t\tchar *resolvers_id;\n\t\t\tstruct resolvers *resolvers;\n\t\t\tstruct
          resolv_options *opts;\n\t\t} resolv;                      /* resolving */\n\t\tstruct
          {\n\t\t\tint i;                 /* integer param (status, nice, loglevel,
          ..) */\n\t\t\tstruct ist str;        /* string param (reason, header name,
          ...) */\n\t\t\tstruct lf_expr fmt;    /* log-format compatible expression
          */\n\t\t\tstruct my_regex *re;   /* used by replace-header/value/uri/path
          */\n\t\t\tstruct sample_expr *expr; /* sample expression used by HTTP action
          */\n\t\t} http;                        /* args used by some HTTP rules */\n\t\tstruct
          http_reply *http_reply; /* HTTP response to be used by return/deny/tarpit
          rules */\n\t\tstruct redirect_rule *redir;   /* redirect rule or \"http-request
          redirect\" */\n\t\tstruct {\n\t\t\tchar *ref;             /* MAP or ACL
          file name to update */\n\t\t\tstruct lf_expr key;    /* pattern to retrieve
          MAP or ACL key */\n\t\t\tstruct lf_expr value;  /* pattern to retrieve MAP
          value */\n\t\t} map;\n\t\tstruct sample_expr *expr;\n\t\tstruct {\n\t\t\tstruct
          sample_expr *expr; /* expression used as the key */\n\t\t\tstruct cap_hdr
          *hdr;      /* the capture storage */\n\t\t} cap;\n\t\tstruct {\n\t\t\tstruct
          sample_expr *expr;\n\t\t\tint idx;\n\t\t} capid;\n\t\tstruct {\n\t\t\tint
          value;                  /* plain timeout value in ms if no expr is used
          */\n\t\t\tenum act_timeout_name type; /* timeout type */\n\t\t\tstruct sample_expr
          *expr;   /* timeout value as an expression */\n\t\t} timeout;\n\t\tstruct
          hlua_rule *hlua_rule;\n\t\tstruct {\n\t\t\tstruct lf_expr fmt;         /*
          log-format compatible expression */\n\t\t\tstruct sample_expr *expr;\n\t\t\tstruct
          var_desc desc;\n\t\t\tuint conditions;            /* Bitfield of the conditions
          passed to this set-var call */\n\t\t} vars;\n\t\tstruct {\n\t\t\tint sc;\n\t\t\tunsigned
          int idx;\n\t\t\tlong long int value;\n\t\t\tstruct sample_expr *expr;\n\t\t}
          gpc;\n\t\tstruct {\n\t\t\tint sc;\n\t\t\tunsigned int idx;\n\t\t\tlong long
          int value;\n\t\t\tstruct sample_expr *expr;\n\t\t} gpt;\n\t\tstruct track_ctr_prm
          trk_ctr;\n\t\tstruct {\n\t\t\tchar *srvname; /* server name from config
          parsing. */\n\t\t\tstruct server *srv; /* target server to attach the connection
          */\n\t\t\tstruct sample_expr *name; /* used to differentiate idle connections
          */\n\t\t} attach_srv; /* 'attach-srv' rule */\n\t\tstruct {\n\t\t\tenum
          log_orig_id orig;\n\t\t\tchar *profile_name;\n\t\t\tstruct log_profile *profile;\n\t\t}
          do_log; /* 'do-log' action */\n\t\tstruct {\n\t\t\tint value;\n\t\t\tstruct
          sample_expr *expr;\n\t\t} expr_int; /* expr or int value (when expr is NULL)*/\n\t\tstruct
          {\n\t\t\tvoid *p[4];\n\t\t} act;                         /* generic pointers
          to be used by custom actions */\n\t}"
      - name: exec_ctx
        type: struct thread_exec_ctx
      - name: conf
        type: "struct {\n\t\tchar *file;                    /* file name where the
          rule appears (or NULL) */\n\t\tint line;                      /* line number
          where the rule appears */\n\t}"
      item_type: struct
      name: act_rule
      pos:
        line_end: 219
        line_start: 128
        source_file: /src/haproxy/include/haproxy/action-t.h
    - fields:
      - name: '*kw'
        type: char
      - name: "(*parse)(const char **args, int *cur_arg, struct proxy *px,\n\t                            struct
          act_rule *rule, char **err)"
        type: enum act_parse_ret
      - name: flags
        type: int
      - name: '*private'
        type: void
      - name: exec_ctx
        type: struct thread_exec_ctx
      item_type: struct
      name: action_kw
      pos:
        line_end: 229
        line_start: 221
        source_file: /src/haproxy/include/haproxy/action-t.h
    - fields:
      - name: list
        type: struct list
      - name: kw[VAR_ARRAY]
        type: struct action_kw
      item_type: struct
      name: action_kw_list
      pos:
        line_end: 234
        line_start: 231
        source_file: /src/haproxy/include/haproxy/action-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/stats-proxy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FLT_ID
  - FLT_CONF
  - FLT_OPS
  - CHN_IDX
  - FLT_STRM_OFF
  - FLT_OFF
  - HAS_FILTERS
  - HAS_REQ_DATA_FILTERS
  - HAS_RSP_DATA_FILTERS
  - HAS_DATA_FILTERS
  - IS_REQ_DATA_FILTER
  - IS_RSP_DATA_FILTER
  - IS_DATA_FILTER
  - FLT_STRM_CB
  - FLT_STRM_DATA_CB_IMPL_1
  - FLT_STRM_DATA_CB_IMPL_2
  - FLT_STRM_DATA_CB_IMPL_3
  - FLT_STRM_DATA_CB_IMPL_X
  - FLT_STRM_DATA_CB
  - strm_flt
  - register_data_filter
  - unregister_data_filter
  - flt_list_start
  - flt_list_next
  - flt_update_offsets
  source_file: /src/haproxy/include/haproxy/filters.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/acme_resolvers-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: '*dnstasks'
        type: unsigned int
      - name: '*hostname_dn'
        type: char
      - name: hostname_dn_len
        type: int
      - name: '*resolvers'
        type: struct resolvers
      - name: '*requester'
        type: struct resolv_requester
      - name: result
        type: int
      - name: error_code
        type: int
      - name: '*acme_task'
        type: struct task
      - name: txt
        type: struct ist
      - name: (*success_cb)(struct resolv_requester *, struct dns_counters *)
        type: int
      - name: (*error_cb)(struct resolv_requester *, int)
        type: int
      item_type: struct
      name: acme_rslv
      pos:
        line_end: 24
        line_start: 11
        source_file: /src/haproxy/include/haproxy/acme_resolvers-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ssl_ocsp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HTX_SL_LEN
  - HTX_SL_P1_LEN
  - HTX_SL_P2_LEN
  - HTX_SL_P3_LEN
  - HTX_SL_P1_PTR
  - HTX_SL_P2_PTR
  - HTX_SL_P3_PTR
  - HTX_SL_REQ_MLEN
  - HTX_SL_REQ_ULEN
  - HTX_SL_REQ_VLEN
  - HTX_SL_REQ_MPTR
  - HTX_SL_REQ_UPTR
  - HTX_SL_REQ_VPTR
  - HTX_SL_RES_VLEN
  - HTX_SL_RES_CLEN
  - HTX_SL_RES_RLEN
  - HTX_SL_RES_VPTR
  - HTX_SL_RES_CPTR
  - HTX_SL_RES_RPTR
  - htx_sl_p1
  - htx_sl_p2
  - htx_sl_p3
  - htx_sl_vsn
  - htx_sl_req_meth
  - htx_sl_req_uri
  - htx_sl_req_vsn
  - htx_sl_res_vsn
  - htx_sl_res_code
  - htx_sl_res_reason
  - htx_pos_to_addr
  - htx_get_blk_pos
  - htx_get_blk
  - __htx_blkinfo_type
  - htx_get_blk_type
  - __htx_blkinfo_size
  - htx_get_blksz
  - htx_get_head
  - htx_get_head_blk
  - __htx_get_head_blk
  - htx_get_head_type
  - htx_get_tail
  - htx_get_tail_blk
  - htx_get_tail_type
  - htx_get_first
  - htx_get_first_blk
  - htx_get_first_type
  - htx_get_prev
  - htx_get_prev_blk
  - htx_get_next
  - htx_get_next_blk
  - htx_is_unique_blk
  - htx_change_blk_value_len
  - htx_set_blk_value_len
  - htx_get_blk_ptr
  - htx_get_blk_name
  - htx_get_blk_value
  - htx_add_stline
  - htx_add_header
  - htx_add_trailer
  - htx_add_endof
  - htx_add_all_headers
  - htx_add_all_trailers
  - htx_cut_data_blk
  - htx_meta_space
  - htx_used_space
  - htx_free_space
  - htx_free_data_space
  - htx_space_wraps
  - htx_get_max_blksz
  - htx_almost_full
  - htx_reset
  - buf_room_for_htx_data
  - htxbuf
  - htx_from_buf
  - htx_to_buf
  - htx_is_empty
  - htx_is_not_empty
  - htx_expect_more
  - htx_set_eom
  - htx_copy_msg
  - htx_skip_msg_payload
  - htx_nbblks
  - htx_blk_type_str
  - htx_dump
  source_file: /src/haproxy/include/haproxy/htx.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HTX_XFER_DEFAULT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/htx.h
      type_or_value: '0x00000000 '
    - item_type: preproc_def
      name: HTX_XFER_KEEP_SRC_BLKS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/htx.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: HTX_XFER_PARTIAL_HDRS_COPY
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/htx.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: HTX_XFER_HDRS_ONLY
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/htx.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: HTX_XFER_NO_METADATA
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/htx.h
      type_or_value: '0x00000008 '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_openssl_compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_OPENSSL_COMPAT_SSL_TP_EXT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat.h
      type_or_value: '0x39'
    - item_type: preproc_def
      name: QUIC_OPENSSL_COMPAT_CLIENT_HANDSHAKE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat.h
      type_or_value: '"CLIENT_HANDSHAKE_TRAFFIC_SECRET"'
    - item_type: preproc_def
      name: QUIC_OPENSSL_COMPAT_SERVER_HANDSHAKE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat.h
      type_or_value: '"SERVER_HANDSHAKE_TRAFFIC_SECRET"'
    - item_type: preproc_def
      name: QUIC_OPENSSL_COMPAT_CLIENT_APPLICATION
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat.h
      type_or_value: '"CLIENT_TRAFFIC_SECRET_0"'
    - item_type: preproc_def
      name: QUIC_OPENSSL_COMPAT_SERVER_APPLICATION
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/include/haproxy/quic_openssl_compat.h
      type_or_value: '"SERVER_TRAFFIC_SECRET_0"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/extcheck.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/fcgi-app.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - shctx_rdlock
  - shctx_rdunlock
  - shctx_wrlock
  - shctx_wrunlock
  - shctx_block_append_hot
  - shctx_block_detach
  source_file: /src/haproxy/include/haproxy/shctx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/uri_auth-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct stat_scope
      - name: px_len
        type: int
      - name: '*px_id'
        type: char
      item_type: struct
      name: stat_scope
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/haproxy/include/haproxy/uri_auth-t.h
    - fields:
      - name: uri_len
        type: int
      - name: refcount
        type: uint
      - name: '*uri_prefix'
        type: char
      - name: '*auth_realm'
        type: char
      - name: '*node'
        type: char
      - name: refresh
        type: int
      - name: flags
        type: unsigned int
      - name: '*scope'
        type: struct stat_scope
      - name: '*userlist'
        type: struct userlist
      - name: http_req_rules
        type: struct list
      - name: admin_rules
        type: struct list
      - name: '*next'
        type: struct uri_auth
      item_type: struct
      name: uri_auth
      pos:
        line_end: 42
        line_start: 29
        source_file: /src/haproxy/include/haproxy/uri_auth-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*cond'
        type: struct acl_cond
      item_type: struct
      name: stats_admin_rule
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/haproxy/include/haproxy/uri_auth-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/freq_ctr-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: curr_tick
        type: unsigned int
      - name: curr_ctr
        type: unsigned int
      - name: prev_ctr
        type: unsigned int
      item_type: struct
      name: freq_ctr
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/haproxy/include/haproxy/freq_ctr-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/h3.h
  types:
    enum:
    - enumerators:
      - name: H3_ERR_NO_ERROR
        value: '0x100'
      - name: H3_ERR_GENERAL_PROTOCOL_ERROR
        value: '0x101'
      - name: H3_ERR_STREAM_CREATION_ERROR
        value: '0x103'
      - name: H3_ERR_CLOSED_CRITICAL_STREAM
        value: '0x104'
      - name: H3_ERR_INTERNAL_ERROR
        value: '0x102'
      - name: H3_ERR_FRAME_UNEXPECTED
        value: '0x105'
      - name: H3_ERR_FRAME_ERROR
        value: '0x106'
      - name: H3_ERR_EXCESSIVE_LOAD
        value: '0x107'
      - name: H3_ERR_ID_ERROR
        value: '0x108'
      - name: H3_ERR_SETTINGS_ERROR
        value: '0x109'
      - name: H3_ERR_MISSING_SETTINGS
        value: '0x10a'
      - name: H3_ERR_REQUEST_INCOMPLETE
        value: '0x10d'
      - name: H3_ERR_MESSAGE_ERROR
        value: '0x10e'
      - name: H3_ERR_REQUEST_REJECTED
        value: '0x10b'
      - name: H3_ERR_CONNECT_ERROR
        value: '0x10f'
      - name: H3_ERR_REQUEST_CANCELLED
        value: '0x10c'
      - name: H3_ERR_VERSION_FALLBACK
        value: '0x110'
      item_type: enum
      name: h3_err
      pos:
        line_end: 69
        line_start: 51
        source_file: /src/haproxy/include/haproxy/h3.h
    - enumerators:
      - name: H3_FT_UNINIT
        value: '-1'
      - name: H3_FT_SETTINGS
        value: '0x04'
      - name: H3_FT_DATA
        value: '0x00'
      - name: H3_FT_HEADERS
        value: '0x01'
      - name: H3_FT_CANCEL_PUSH
        value: '0x03'
      - name: H3_FT_PUSH_PROMISE
        value: '0x05'
      - name: H3_FT_GOAWAY
        value: '0x07'
      - name: H3_FT_MAX_PUSH_ID
        value: '0x0d'
      item_type: enum
      name: h3_ft
      pos:
        line_end: 86
        line_start: 72
        source_file: /src/haproxy/include/haproxy/h3.h
    - enumerators:
      - name: H3S_T_CTRL
      - name: H3S_T_QPACK_DEC
      - name: H3S_T_PUSH
      - name: H3S_T_QPACK_ENC
      - name: H3S_T_REQ
      - name: H3S_T_UNKNOWN
      item_type: enum
      name: h3s_t
      pos:
        line_end: 100
        line_start: 89
        source_file: /src/haproxy/include/haproxy/h3.h
    - enumerators:
      - name: H3S_ST_REQ_BEFORE
        value: '0'
      - name: H3S_ST_REQ_TRAILERS
      - name: H3S_ST_REQ_DATA
      - name: H3S_ST_REQ_HEADERS
      item_type: enum
      name: h3s_st_req
      pos:
        line_end: 108
        line_start: 103
        source_file: /src/haproxy/include/haproxy/h3.h
    preproc_defs:
    - item_type: preproc_def
      name: H3_UNI_S_T_CTRL
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: H3_UNI_S_T_PUSH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: H3_UNI_S_T_QPACK_ENC
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: H3_UNI_S_T_QPACK_DEC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: H3_UNI_S_T_MAX
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: H3_UNI_S_T_QPACK_DEC
    - item_type: preproc_def
      name: H3_SETTINGS_RESERVED_0
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: H3_SETTINGS_QPACK_MAX_TABLE_CAPACITY
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: H3_SETTINGS_RESERVED_2
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: H3_SETTINGS_RESERVED_3
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: H3_SETTINGS_RESERVED_4
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: H3_SETTINGS_RESERVED_5
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: H3_SETTINGS_MAX_FIELD_SECTION_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: H3_SETTINGS_QPACK_BLOCKED_STREAMS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/h3.h
      type_or_value: '0x07'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/map-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*conv'
        type: struct sample_conv
      - name: pat
        type: struct pattern_head
      - name: do_free
        type: int
      item_type: struct
      name: map_descriptor
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/haproxy/include/haproxy/map-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/proto_rhttp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/hq_interop.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/jwt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/mqtt-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MQTT_VERSION_3_1
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MQTT_VERSION_3_1_1
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MQTT_VERSION_5_0
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MQTT_INVALID_MESSAGE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: MQTT_NEED_MORE_DATA
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MQTT_VALID_MESSAGE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MQTT_CONNECT_FL_RESERVED
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: MQTT_CONNECT_FL_CLEAN_SESSION
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: MQTT_CONNECT_FL_WILL
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: MQTT_CONNECT_FL_WILL_QOS
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x18  '
    - item_type: preproc_def
      name: MQTT_CONNECT_FL_WILL_RETAIN
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: MQTT_CONNECT_FL_PASSWORD
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: MQTT_CONNECT_FL_USERNAME
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: MQTT_PROP_PAYLOAD_FORMAT_INDICATOR
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: MQTT_PROP_MESSAGE_EXPIRY_INTERVAL
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: MQTT_PROP_CONTENT_TYPE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: MQTT_PROP_RESPONSE_TOPIC
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: MQTT_PROP_CORRELATION_DATA
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: MQTT_PROP_SESSION_EXPIRY_INTERVAL
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x11'
    - item_type: preproc_def
      name: MQTT_PROP_ASSIGNED_CLIENT_IDENTIFIER
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x12'
    - item_type: preproc_def
      name: MQTT_PROP_SERVER_KEEPALIVE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x13'
    - item_type: preproc_def
      name: MQTT_PROP_AUTHENTICATION_METHOD
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x15'
    - item_type: preproc_def
      name: MQTT_PROP_AUTHENTICATION_DATA
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x16'
    - item_type: preproc_def
      name: MQTT_PROP_REQUEST_PROBLEM_INFORMATION
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x17'
    - item_type: preproc_def
      name: MQTT_PROP_WILL_DELAY_INTERVAL
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x18'
    - item_type: preproc_def
      name: MQTT_PROP_REQUEST_RESPONSE_INFORMATION
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x19'
    - item_type: preproc_def
      name: MQTT_PROP_RESPONSE_INFORMATION
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x1A'
    - item_type: preproc_def
      name: MQTT_PROP_SERVER_REFERENCE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x1C'
    - item_type: preproc_def
      name: MQTT_PROP_RECEIVE_MAXIMUM
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x21'
    - item_type: preproc_def
      name: MQTT_PROP_TOPIC_ALIAS_MAXIMUM
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x22'
    - item_type: preproc_def
      name: MQTT_PROP_MAXIMUM_QOS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x24'
    - item_type: preproc_def
      name: MQTT_PROP_RETAIN_AVAILABLE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x25'
    - item_type: preproc_def
      name: MQTT_PROP_USER_PROPERTIES
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x26'
    - item_type: preproc_def
      name: MQTT_PROP_MAXIMUM_PACKET_SIZE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x27'
    - item_type: preproc_def
      name: MQTT_PROP_WILDCARD_SUBSCRIPTION_AVAILABLE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x28'
    - item_type: preproc_def
      name: MQTT_PROP_SUBSCRIPTION_IDENTIFIERS_AVAILABLE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x29'
    - item_type: preproc_def
      name: MQTT_PROP_SHARED_SUBSRIPTION_AVAILABLE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x2A'
    - item_type: preproc_def
      name: MQTT_PROP_REASON_STRING
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0x1F'
    - item_type: preproc_def
      name: MQTT_PROP_LAST
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: MQTT_MIN_PKT_SIZE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MQTT_REMAINING_LENGTH_MAX_SIZE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MQTT_PROP_USER_PROPERTY_ENTRIES
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
      type_or_value: '5'
    structs:
    - fields:
      - name: var_hdr
        type: "struct {\n\t\tstruct ist protocol_name;\n\t\tuint8_t protocol_version;\n\t\tuint8_t
          flags;\n\t\tuint16_t keepalive;\n\n\t\tstruct {\n\t\t\tuint32_t session_expiry_interval;\n\t\t\tuint16_t
          receive_maximum;\n\t\t\tuint32_t maximum_packet_size;\n\t\t\tuint16_t topic_alias_maximum;\n\t\t\tuint8_t
          \ request_response_information;\n\t\t\tuint8_t  request_problem_information;\n\t\t\tstruct
          {\n\t\t\t\tstruct ist name;\n\t\t\t\tstruct ist value;\n\t\t\t} user_props[MQTT_PROP_USER_PROPERTY_ENTRIES];\n\t\t\tstruct
          ist authentication_method;\n\t\t\tstruct ist authentication_data;\n\t\t}
          props;\n\t}"
      - name: payload
        type: "struct {\n\t\tstruct ist client_identifier;\n\t\tstruct {\n\t\t\tuint32_t
          delay_interval;\n\t\t\tuint8_t  payload_format_indicator;\n\t\t\tuint32_t
          message_expiry_interval;\n\t\t\tstruct ist content_type;\n\t\t\tstruct ist
          response_topic;\n\t\t\tstruct ist correlation_data;\n\t\t\tstruct {\n\t\t\t\tstruct
          ist name;\n\t\t\t\tstruct ist value;\n\t\t\t} user_props[MQTT_PROP_USER_PROPERTY_ENTRIES];\n\t\t}
          will_props;\n\t\tstruct ist will_topic;\n\t\tstruct ist will_payload;\n\t\tstruct
          ist username;\n\t\tstruct ist password;\n\t}"
      item_type: struct
      name: connect
      pos:
        line_end: 257
        line_start: 216
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
    - fields:
      - name: var_hdr
        type: "struct {\n\t\tuint8_t protocol_version;\n\t\tuint8_t flags;\n\t\tuint8_t
          reason_code;\n\t\tstruct {\n\t\t\tuint32_t session_expiry_interval;\n\t\t\tuint16_t
          receive_maximum;\n\t\t\tuint8_t  maximum_qos;\n\t\t\tuint8_t  retain_available;\n\t\t\tuint32_t
          maximum_packet_size;\n\t\t\tstruct ist assigned_client_identifier;\n\t\t\tuint16_t
          topic_alias_maximum;\n\t\t\tstruct ist reason_string;\n\t\t\tstruct {\n\t\t\t\tstruct
          ist name;\n\t\t\t\tstruct ist value;\n\t\t\t} user_props[MQTT_PROP_USER_PROPERTY_ENTRIES];\n\t\t\tuint8_t
          \ wildcard_subscription_available;\n\t\t\tuint8_t  subscription_identifiers_available;\n\t\t\tuint8_t
          \ shared_subscription_available;\n\t\t\tuint16_t server_keepalive;\n\t\t\tstruct
          ist response_information;\n\t\t\tstruct ist server_reference;\n\t\t\tstruct
          ist authentication_method;\n\t\t\tstruct ist authentication_data;\n\t\t}
          props;\n\t}"
      item_type: struct
      name: connack
      pos:
        line_end: 288
        line_start: 260
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
    - fields:
      - name: fixed_hdr
        type: "struct {\n\t\tuint8_t type;              /* MQTT_CPT_* */\n\t\tuint8_t
          flags;             /* MQTT_CPT_FL* */\n\t\tuint32_t remaining_length;\n\t}"
      - name: data
        type: "union {\n\t\tstruct connect connect;\n\t\tstruct connack connack;\n\t}"
      item_type: struct
      name: mqtt_pkt
      pos:
        line_end: 301
        line_start: 291
        source_file: /src/haproxy/include/haproxy/mqtt-t.h
    typedefs: []
    union: []
- function_names:
  - fcgi_rt_str
  source_file: /src/haproxy/include/haproxy/fcgi.h
  types:
    enum:
    - enumerators:
      - name: FCGI_BEGIN_REQUEST
        value: '1'
      - name: FCGI_STDIN
        value: '5'
      - name: FCGI_PARAMS
        value: '4'
      - name: FCGI_END_REQUEST
        value: '3'
      - name: FCGI_ABORT_REQUEST
        value: '2'
      - name: FCGI_STDOUT
        value: '6'
      - name: FCGI_STDERR
        value: '7'
      - name: FCGI_DATA
        value: '8'
      - name: FCGI_GET_VALUES
        value: '9'
      - name: FCGI_GET_VALUES_RESULT
        value: '10'
      - name: FCGI_UNKNOWN_TYPE
        value: '11'
      - name: FCGI_ENTRIES
      item_type: enum
      name: fcgi_record_type
      pos:
        line_end: 48
        line_start: 35
        source_file: /src/haproxy/include/haproxy/fcgi.h
    - enumerators:
      - name: FCGI_RESPONDER
        value: '1'
      - name: FCGI_FILTER
        value: '3'
      - name: FCGI_AUTHORIZER
        value: '2'
      item_type: enum
      name: fcgi_role
      pos:
        line_end: 55
        line_start: 51
        source_file: /src/haproxy/include/haproxy/fcgi.h
    - enumerators:
      - name: FCGI_PS_REQUEST_COMPLETE
        value: '0'
      - name: FCGI_PS_UNKNOWN_ROLE
        value: '3'
      - name: FCGI_PS_OVERLOADED
        value: '2'
      - name: FCGI_PS_CANT_MPX_CONN
        value: '1'
      - name: FCGI_PS_ENTRIES
      item_type: enum
      name: fcgi_proto_status
      pos:
        line_end: 64
        line_start: 58
        source_file: /src/haproxy/include/haproxy/fcgi.h
    preproc_defs:
    - item_type: preproc_def
      name: FCGI_VERSION
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/fcgi.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FCGI_KEEP_CONN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/fcgi.h
      type_or_value: '0x01'
    structs:
    - fields:
      - name: vsn
        type: uint8_t
      - name: type
        type: uint8_t
      - name: id
        type: uint16_t
      - name: len
        type: uint16_t
      - name: padding
        type: uint8_t
      - name: rsv
        type: uint8_t
      item_type: struct
      name: fcgi_header
      pos:
        line_end: 73
        line_start: 66
        source_file: /src/haproxy/include/haproxy/fcgi.h
    - fields:
      - name: n
        type: struct ist
      - name: v
        type: struct ist
      item_type: struct
      name: fcgi_param
      pos:
        line_end: 78
        line_start: 75
        source_file: /src/haproxy/include/haproxy/fcgi.h
    - fields:
      - name: role
        type: enum fcgi_role
      - name: flags
        type: uint8_t
      item_type: struct
      name: fcgi_begin_request
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/haproxy/include/haproxy/fcgi.h
    - fields:
      - name: status
        type: uint32_t
      - name: errcode
        type: uint8_t
      item_type: struct
      name: fcgi_end_request
      pos:
        line_end: 88
        line_start: 85
        source_file: /src/haproxy/include/haproxy/fcgi.h
    - fields:
      - name: type
        type: uint8_t
      item_type: struct
      name: fcgi_unknown_type
      pos:
        line_end: 92
        line_start: 90
        source_file: /src/haproxy/include/haproxy/fcgi.h
    typedefs: []
    union: []
- function_names:
  - h1m_state_str
  - h1_skip_chunk_crlf
  - h1_parse_chunk_size
  - h1m_init_req
  - h1m_init_res
  source_file: /src/haproxy/include/haproxy/h1.h
  types:
    enum:
    - enumerators:
      - name: H1_MSG_LAST_LF
        value: '25'
      - name: H1_MSG_HDR_L2_LF
        value: '23'
      - name: H1_MSG_DONE
        value: '30'
      - name: H1_MSG_RQBEFORE
        value: '0'
      - name: H1_MSG_RQURI
        value: '4'
      - name: H1_MSG_RQMETH
        value: '2'
      - name: H1_MSG_RQVER
        value: '6'
      - name: H1_MSG_RPBEFORE
        value: '8'
      - name: H1_MSG_RPCODE
        value: '12'
      - name: H1_MSG_HDR_FIRST
        value: '16'
      - name: H1_MSG_HDR_COL
        value: '18'
      - name: H1_MSG_RPVER
        value: '10'
      - name: H1_MSG_RPREASON
        value: '14'
      - name: H1_MSG_CHUNK_CRLF
        value: '28'
      - name: H1_MSG_CHUNK_SIZE
        value: '26'
      - name: H1_MSG_HDR_L2_LWS
        value: '24'
      - name: H1_MSG_RQBEFORE_CR
        value: '1'
      - name: H1_MSG_HDR_VAL
        value: '22'
      - name: H1_MSG_HDR_L1_LF
        value: '20'
      - name: H1_MSG_TUNNEL
        value: '31'
      - name: H1_MSG_RQMETH_SP
        value: '3'
      - name: H1_MSG_RQURI_SP
        value: '5'
      - name: H1_MSG_RQLINE_END
        value: '7'
      - name: H1_MSG_RPBEFORE_CR
        value: '9'
      - name: H1_MSG_RPCODE_SP
        value: '13'
      - name: H1_MSG_RPVER_SP
        value: '11'
      - name: H1_MSG_HDR_NAME
        value: '17'
      - name: H1_MSG_RPLINE_END
        value: '15'
      - name: H1_MSG_HDR_L1_SP
        value: '19'
      - name: H1_MSG_HDR_L1_LWS
        value: '21'
      - name: H1_MSG_TRAILERS
        value: '29'
      - name: H1_MSG_DATA
        value: '27'
      item_type: enum
      name: h1m_state
      pos:
        line_end: 77
        line_start: 33
        source_file: /src/haproxy/include/haproxy/h1.h
    preproc_defs:
    - item_type: preproc_def
      name: H1_MF_NONE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: H1_MF_CLEN
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00000001 // content-length present
    - item_type: preproc_def
      name: H1_MF_CHNK
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00000002 // chunk present (as last encoding), exclusive with
        c-l
    - item_type: preproc_def
      name: H1_MF_RESP
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00000004 // this message is the response message
    - item_type: preproc_def
      name: H1_MF_TOLOWER
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00000008 // turn the header names to lower case
    - item_type: preproc_def
      name: H1_MF_VER_11
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00000010 // message indicates version 1.1 or above
    - item_type: preproc_def
      name: H1_MF_CONN_CLO
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: '0x00000020 // message contains "connection: close"'
    - item_type: preproc_def
      name: H1_MF_CONN_KAL
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: '0x00000040 // message contains "connection: keep-alive"'
    - item_type: preproc_def
      name: H1_MF_CONN_UPG
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: '0x00000080 // message contains "connection: upgrade"'
    - item_type: preproc_def
      name: H1_MF_XFER_LEN
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00000100 // message xfer size can be determined
    - item_type: preproc_def
      name: H1_MF_XFER_ENC
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00000200 // transfer-encoding is present
    - item_type: preproc_def
      name: H1_MF_NO_PHDR
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00000400 // don't add pseudo-headers in the header list
    - item_type: preproc_def
      name: H1_MF_HDRS_ONLY
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00000800 // parse headers only
    - item_type: preproc_def
      name: H1_MF_CLEAN_CONN_HDR
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00001000 // skip close/keep-alive values of connection headers
        during parsing
    - item_type: preproc_def
      name: H1_MF_METH_CONNECT
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00002000 // Set for a response to a CONNECT request
    - item_type: preproc_def
      name: H1_MF_METH_HEAD
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00004000 // Set for a response to a HEAD request
    - item_type: preproc_def
      name: H1_MF_UPG_WEBSOCKET
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00008000 // Set for a Websocket upgrade handshake
    - item_type: preproc_def
      name: H1_MF_TE_CHUNKED
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00010000 // T-E "chunked"
    - item_type: preproc_def
      name: H1_MF_TE_OTHER
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00020000 // T-E other than supported ones found (only "chunked"
        is supported for now)
    - item_type: preproc_def
      name: H1_MF_UPG_HDR
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00040000 // non-empty Upgrapde header found
    - item_type: preproc_def
      name: H1_MF_NOT_HTTP
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00080000 // Not an HTTP message (e.g "RTSP", only possible
        if invalid message are accepted)
    - item_type: preproc_def
      name: H1_MF_RESTART_MASK
      pos:
        line_end: 109
        line_start: 107
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: "(H1_MF_RESP|H1_MF_TOLOWER|H1_MF_NO_PHDR|H1_MF_HDRS_ONLY| \\\n\t\t\t
        \      H1_MF_CLEAN_CONN_HDR|H1_MF_METH_CONNECT|H1_MF_METH_HEAD)"
    structs:
    - fields:
      - name: state
        type: enum h1m_state
      - name: flags
        type: uint32_t
      - name: curr_len
        type: uint64_t
      - name: body_len
        type: uint64_t
      - name: next
        type: uint32_t
      - name: err_code
        type: unsigned int
      - name: err_pos
        type: int
      - name: err_state
        type: int
      item_type: struct
      name: h1m
      pos:
        line_end: 136
        line_start: 126
        source_file: /src/haproxy/include/haproxy/h1.h
    typedefs: []
    union:
    - fields:
      - name: rq
        type: "struct {\n\t\tstruct ist m;          /* METHOD */\n\t\tstruct ist u;
          \         /* URI */\n\t\tstruct ist v;          /* VERSION */\n\t\tenum
          http_meth_t meth; /* method */\n\t}"
      - name: st
        type: "struct {\n\t\tstruct ist v;          /* VERSION */\n\t\tstruct ist
          c;          /* CODE */\n\t\tstruct ist r;          /* REASON */\n\t\tuint16_t
          status;       /* status code */\n\t}"
      item_type: union
      name: h1_sl
      pos:
        line_end: 152
        line_start: 139
        source_file: /src/haproxy/include/haproxy/h1.h
- function_names:
  - GET_NEXT_OFF
  - port_range_alloc_port
  - port_range_release_port
  - port_range_alloc_range
  source_file: /src/haproxy/include/haproxy/port_range.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
  types:
    enum:
    - enumerators:
      - name: CAFILE_CERT
      - name: CAFILE_CRL
      item_type: enum
      name: cafile_type
      pos:
        line_end: 157
        line_start: 154
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    - enumerators:
      - name: PARSE_TYPE_NONE
        value: '0'
      - name: PARSE_TYPE_STR
      - name: PARSE_TYPE_ARRAY_SUBSTR
      - name: PARSE_TYPE_INT
      - name: PARSE_TYPE_ONOFF
      item_type: enum
      name: parse_type_t
      pos:
        line_end: 208
        line_start: 202
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    preproc_defs:
    - item_type: preproc_def
      name: CKCH_INST_NO_DEFAULT
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
      type_or_value: '0   '
    - item_type: preproc_def
      name: CKCH_INST_IMPL_DEFAULT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
      type_or_value: '1   '
    - item_type: preproc_def
      name: CKCH_INST_EXPL_DEFAULT
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
      type_or_value: '2   '
    structs:
    - fields:
      - name: '*cert'
        type: X509
      - name: '*key'
        type: EVP_PKEY
      - name: '*chain'
        type: STACK_OF
      - name: '*dh'
        type: HASSL_DH
      - name: '*sctl'
        type: struct buffer
      - name: '*ocsp_response'
        type: struct buffer
      - name: '*ocsp_issuer'
        type: X509
      - name: '*ocsp_cid'
        type: OCSP_CERTID
      - name: '*extra_chain'
        type: struct issuer_chain
      - name: encrypted_privkey
        type: int
      item_type: struct
      name: ckch_data
      pos:
        line_end: 59
        line_start: 48
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    - fields:
      - name: used
        type: int
      - name: '*crt'
        type: char
      - name: '*key'
        type: char
      - name: '*ocsp'
        type: char
      - name: '*issuer'
        type: char
      - name: '*sctl'
        type: char
      - name: ocsp_update_mode
        type: int
      - name: jwt
        type: int
      - name: acme
        type: "struct {\n\t\tchar *id;\n\t\tchar **domains;\n\t\tchar **ips;\n\t}"
      - name: gencrt
        type: "struct {\n\t\tstruct {\n\t\t\tchar *type;   /* \"RSA\" or \"ECDSA\"
          */\n\t\t\tint bits;     /* bits for RSA */\n\t\t\tchar *curves; /* NID of
          curves for ECDSA*/\n\t\t} key;\n\t\tint on;\n\t}"
      item_type: struct
      name: ckch_conf
      pos:
        line_end: 84
        line_start: 62
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    - fields:
      - name: '*data'
        type: struct ckch_data
      - name: ckch_inst
        type: struct list
      - name: crtlist_entry
        type: struct list
      - name: conf
        type: struct ckch_conf
      - name: node
        type: struct ebmb_node
      - name: path[VAR_ARRAY]
        type: char
      item_type: struct
      name: ckch_store
      pos:
        line_end: 102
        line_start: 95
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    - fields:
      - name: '*ckch_inst'
        type: struct ckch_inst
      - name: list
        type: struct list
      item_type: struct
      name: ckch_inst_link
      pos:
        line_end: 115
        line_start: 112
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    - fields:
      - name: '*link'
        type: struct ckch_inst_link
      - name: list
        type: struct list
      item_type: struct
      name: ckch_inst_link_ref
      pos:
        line_end: 123
        line_start: 120
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    - fields:
      - name: '*bind_conf'
        type: struct bind_conf
      - name: '*ssl_conf'
        type: struct ssl_bind_conf
      - name: '*ckch_store'
        type: struct ckch_store
      - name: '*crtlist_entry'
        type: struct crtlist_entry
      - name: '*server'
        type: struct server
      - name: '*ctx'
        type: SSL_CTX
      - name: is_default
        type: unsigned int
      - name: is_server_instance
        type: unsigned int
      - name: sni_ctx
        type: struct list
      - name: by_ckchs
        type: struct list
      - name: by_crtlist_entry
        type: struct list
      - name: cafile_link_refs
        type: struct list
      item_type: struct
      name: ckch_inst
      pos:
        line_end: 149
        line_start: 135
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    - fields:
      - name: '*ca_store'
        type: X509_STORE
      - name: '*ca_list'
        type: STACK_OF
      - name: ckch_inst_link
        type: struct list
      - name: type
        type: enum cafile_type
      - name: node
        type: struct ebmb_node
      - name: path[0]
        type: char
      item_type: struct
      name: cafile_entry
      pos:
        line_end: 169
        line_start: 162
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    - fields:
      - name: '*ext'
        type: char
      - name: type
        type: int
      - name: (*load)(const char *path, char *payload, struct ckch_data *data, char
          **err)
        type: int
      item_type: struct
      name: cert_exts
      pos:
        line_end: 199
        line_start: 194
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    - fields:
      - name: '*name'
        type: char
      - name: offset
        type: ssize_t
      - name: type
        type: enum parse_type_t
      - name: (*func)(void *value, char *buf, struct ckch_store *s, int cli, const
          char *filename, int linenum, char **err)
        type: int
      item_type: struct
      name: ckch_conf_kws
      pos:
        line_end: 215
        line_start: 210
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/listener-t.h
  types:
    enum:
    - enumerators:
      - name: LI_NEW
        value: '0'
      - name: LI_PAUSED
      - name: LI_ASSIGNED
      - name: LI_INIT
      - name: LI_LISTEN
      - name: LI_READY
      - name: LI_FULL
      - name: LI_LIMITED
      item_type: enum
      name: li_state
      pos:
        line_end: 57
        line_start: 48
        source_file: /src/haproxy/include/haproxy/listener-t.h
    - enumerators:
      - name: LI_STATUS_WAITING
        value: '0'
      - name: LI_STATUS_OPEN
      - name: LI_STATUS_FULL
      - name: LI_STATE_COUNT
      item_type: enum
      name: li_status
      pos:
        line_end: 92
        line_start: 86
        source_file: /src/haproxy/include/haproxy/listener-t.h
    preproc_defs:
    - item_type: preproc_def
      name: BC_O_USE_SSL
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: BC_O_GENERATE_CERTS
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: BC_O_QUIC_FORCE_RETRY
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: BC_O_USE_SOCK_DGRAM
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: BC_O_USE_SOCK_STREAM
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: BC_O_USE_XPRT_DGRAM
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: BC_O_USE_XPRT_STREAM
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000040 '
    - item_type: preproc_def
      name: BC_O_NOLINGER
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000080 '
    - item_type: preproc_def
      name: BC_O_NOQUICKACK
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000100 '
    - item_type: preproc_def
      name: BC_O_DEF_ACCEPT
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: BC_O_TCP_FO
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000400 '
    - item_type: preproc_def
      name: BC_O_ACC_PROXY
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00000800 '
    - item_type: preproc_def
      name: BC_O_ACC_CIP
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00001000 '
    - item_type: preproc_def
      name: BC_O_UNLIMITED
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00002000 '
    - item_type: preproc_def
      name: BC_O_NOSTOP
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00004000 '
    - item_type: preproc_def
      name: BC_O_REVERSE_HTTP
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00008000 '
    - item_type: preproc_def
      name: BC_O_XPRT_MAXCONN
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: BC_SSL_O_NONE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: BC_SSL_O_NO_TLS_TICKETS
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: "0x0100\t"
    - item_type: preproc_def
      name: BC_SSL_O_PREF_CLIE_CIPH
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x0200  '
    - item_type: preproc_def
      name: BC_SSL_O_STRICT_SNI
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x0400  '
    - item_type: preproc_def
      name: SSL_MAX_VFY_ERROR_CODE
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '94'
    - item_type: preproc_def
      name: IGNERR_BF_SIZE
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: ((SSL_MAX_VFY_ERROR_CODE >> 6) + 1)
    - item_type: preproc_def
      name: LI_F_FINALIZED
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: LI_F_SUSPENDED
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: LI_F_UDP_GSO_NOTSUPP
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: ACCEPT_QUEUE_SIZE
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: ((1<<10) - 1)
    structs:
    - fields:
      - name: flags
        type: uint16_t
      - name: min
        type: uint8_t
      - name: max
        type: uint8_t
      item_type: struct
      name: tls_version_filter
      pos:
        line_end: 130
        line_start: 126
        source_file: /src/haproxy/include/haproxy/listener-t.h
    - fields: []
      item_type: struct
      name: ssl_bind_conf
      pos:
        line_end: 158
        line_start: 133
        source_file: /src/haproxy/include/haproxy/listener-t.h
    - fields:
      - name: '*frontend'
        type: struct proxy
      - name: '*mux_proto'
        type: struct mux_proto_list
      - name: '*xprt'
        type: struct xprt_ops
      - name: options
        type: uint
      - name: analysers
        type: unsigned int
      - name: maxseg
        type: int
      - name: tcp_ut
        type: int
      - name: '*tcp_md5sig'
        type: char
      - name: '*cc_algo'
        type: char
      - name: idle_ping
        type: int
      - name: maxaccept
        type: int
      - name: backlog
        type: unsigned int
      - name: maxconn
        type: int
      - name: (*accept)(struct connection *conn)
        type: int
      - name: tcp_ss
        type: int
      - name: level
        type: int
      - name: severity_output
        type: int
      - name: nice
        type: short int
      - name: listeners
        type: struct list
      - name: ns_cip_magic
        type: uint32_t
      - name: by_fe
        type: struct list
      - name: '*arg'
        type: char
      - name: '*file'
        type: char
      - name: line
        type: int
      - name: '*guid_prefix'
        type: char
      - name: guid_idx
        type: size_t
      - name: '*rhttp_srvname'
        type: char
      - name: rhttp_nbconn
        type: int
      - name: thread_set
        type: struct thread_set
      - name: settings
        type: struct rx_settings
      item_type: struct
      name: bind_conf
      pos:
        line_end: 224
        line_start: 170
        source_file: /src/haproxy/include/haproxy/listener-t.h
    - fields:
      - name: quic_accept
        type: "struct {\n\t\tstruct mt_list list;  /* list element in the QUIC accept
          queue */\n\t\tstruct mt_list conns; /* list of QUIC connections from this
          listener ready to be accepted */\n\t}"
      - name: '*li'
        type: struct listener
      item_type: struct
      name: li_per_thread
      pos:
        line_end: 234
        line_start: 227
        source_file: /src/haproxy/include/haproxy/listener-t.h
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: state
        type: enum li_state
      - name: flags
        type: uint16_t
      - name: luid
        type: int
      - name: nbconn
        type: int
      - name: thr_idx
        type: unsigned long
      - name: '*counters'
        type: struct fe_counters
      - name: wait_queue
        type: struct mt_list
      - name: '*name'
        type: char
      - name: '*label'
        type: char
      - name: thr_conn[MAX_THREADS_PER_GROUP]
        type: unsigned int
      - name: by_fe
        type: struct list
      - name: by_bind
        type: struct list
      - name: '*bind_conf'
        type: struct bind_conf
      - name: rx
        type: struct receiver
      - name: luid_node
        type: struct ceb_node
      - name: guid
        type: struct guid_node
      - name: '*per_thr'
        type: struct li_per_thread
      - name: '*extra_counters_storage'
        type: char
      item_type: struct
      name: listener
      pos:
        line_end: 267
        line_start: 241
        source_file: /src/haproxy/include/haproxy/listener-t.h
    - fields:
      - name: '*kw'
        type: char
      - name: (*parse)(char **args, int cur_arg, struct proxy *px, struct bind_conf
          *conf, char **err)
        type: int
      - name: skip
        type: int
      - name: rhttp_ok
        type: int
      item_type: struct
      name: bind_kw
      pos:
        line_end: 285
        line_start: 280
        source_file: /src/haproxy/include/haproxy/listener-t.h
    - fields:
      - name: '*kw'
        type: char
      - name: (*parse)(char **args, int cur_arg, struct proxy *px, struct ssl_bind_conf
          *conf, int from_cli, char **err)
        type: int
      - name: skip
        type: int
      item_type: struct
      name: ssl_crtlist_kw
      pos:
        line_end: 292
        line_start: 288
        source_file: /src/haproxy/include/haproxy/listener-t.h
    - fields:
      - name: '*scope'
        type: char
      - name: list
        type: struct list
      - name: kw[VAR_ARRAY]
        type: struct bind_kw
      item_type: struct
      name: bind_kw_list
      pos:
        line_end: 304
        line_start: 300
        source_file: /src/haproxy/include/haproxy/listener-t.h
    - fields:
      - name: idx
        type: uint32_t
      - name: '*tasklet'
        type: struct tasklet
      - name: '*entry[ACCEPT_QUEUE_SIZE]'
        type: struct connection
      item_type: struct
      name: accept_queue_ring
      pos:
        line_end: 314
        line_start: 310
        source_file: /src/haproxy/include/haproxy/listener-t.h
    typedefs: []
    union: []
- function_names:
  - peers_show_flags
  - _
  - peer_show_flags
  - _
  source_file: /src/haproxy/include/haproxy/peers-t.h
  types:
    enum:
    - enumerators:
      - name: PEER_APP_ST_STOPPED
        value: '0'
      - name: PEER_APP_ST_RUNNING
      - name: PEER_APP_ST_STARTING
      - name: PEER_APP_ST_STOPPING
      item_type: enum
      name: peer_app_state
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/haproxy/include/haproxy/peers-t.h
    - enumerators:
      - name: PEER_LR_ST_NOTASSIGNED
        value: '0'
      - name: PEER_LR_ST_PROCESSING
      - name: PEER_LR_ST_FINISHED
      - name: PEER_LR_ST_ASSIGNED
      item_type: enum
      name: peer_learn_state
      pos:
        line_end: 50
        line_start: 45
        source_file: /src/haproxy/include/haproxy/peers-t.h
    preproc_defs:
    - item_type: preproc_def
      name: PEERS_F_RESYNC_LOCAL_FINISHED
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: PEERS_F_RESYNC_REMOTE_FINISHED
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: PEERS_F_RESYNC_ASSIGN
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: PEERS_F_DBG_RESYNC_LOCALTIMEOUT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00100000 '
    - item_type: preproc_def
      name: PEERS_F_DBG_RESYNC_REMOTETIMEOUT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00200000 '
    - item_type: preproc_def
      name: PEERS_F_DBG_RESYNC_LOCALABORT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00400000 '
    - item_type: preproc_def
      name: PEERS_F_DBG_RESYNC_REMOTEABORT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00800000 '
    - item_type: preproc_def
      name: PEERS_F_DBG_RESYNC_LOCALFINISHED
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x01000000 '
    - item_type: preproc_def
      name: PEERS_F_DBG_RESYNC_REMOTEFINISHED
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x02000000 '
    - item_type: preproc_def
      name: PEERS_F_DBG_RESYNC_LOCALPARTIAL
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x04000000 '
    - item_type: preproc_def
      name: PEERS_F_DBG_RESYNC_REMOTEPARTIAL
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x08000000 '
    - item_type: preproc_def
      name: PEERS_F_DBG_RESYNC_LOCALASSIGN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x10000000 '
    - item_type: preproc_def
      name: PEERS_F_DBG_RESYNC_REMOTEASSIGN
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x20000000 '
    - item_type: preproc_def
      name: PEERS_RESYNC_FROMLOCAL
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000000                     '
    - item_type: preproc_def
      name: PEERS_RESYNC_FROMREMOTE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: 'PEERS_F_RESYNC_LOCAL_FINISHED  '
    - item_type: preproc_def
      name: PEERS_RESYNC_STATEMASK
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: (PEERS_F_RESYNC_LOCAL_FINISHED|PEERS_F_RESYNC_REMOTE_FINISHED)
    - item_type: preproc_def
      name: PEERS_RESYNC_FINISHED
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: (PEERS_F_RESYNC_LOCAL_FINISHED|PEERS_F_RESYNC_REMOTE_FINISHED)
    - item_type: preproc_def
      name: PEER_F_TEACH_PROCESS
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: PEER_F_TEACH_FINISHED
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: PEER_F_LOCAL_TEACH_COMPLETE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: PEER_F_LEARN_NOTUP2DATE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: PEER_F_WAIT_SYNCTASK_ACK
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: PEER_F_ALIVE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: PEER_F_HEARTBEAT
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000040 '
    - item_type: preproc_def
      name: PEER_F_DWNGRD
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00000080 '
    - item_type: preproc_def
      name: PEER_F_DBG_RESYNC_REQUESTED
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: '0x00100000 '
    - item_type: preproc_def
      name: PEER_TEACH_FLAGS
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/include/haproxy/peers-t.h
      type_or_value: (PEER_F_TEACH_PROCESS|PEER_F_TEACH_FINISHED)
    structs:
    - fields:
      - name: '*table'
        type: struct stktable
      - name: local_id
        type: int
      - name: remote_id
        type: int
      - name: flags
        type: int
      - name: remote_data
        type: uint64_t
      - name: remote_data_nbelem[STKTABLE_DATA_TYPES]
        type: unsigned int
      - name: last_acked
        type: unsigned int
      - name: last_pushed
        type: unsigned int
      - name: last_get
        type: unsigned int
      - name: teaching_origin
        type: unsigned int
      - name: update
        type: unsigned int
      - name: '*next'
        type: struct shared_table
      item_type: struct
      name: shared_table
      pos:
        line_end: 146
        line_start: 133
        source_file: /src/haproxy/include/haproxy/peers-t.h
    - fields:
      - name: local
        type: int
      - name: appstate
        type: enum peer_app_state
      - name: learnstate
        type: enum peer_learn_state
      - name: '*id'
        type: char
      - name: conf
        type: "struct {\n\t\tconst char *file;         /* file where the section appears
          */\n\t\tint line;                 /* line where the section appears */\n\t}"
      - name: last_change
        type: time_t
      - name: flags
        type: unsigned int
      - name: statuscode
        type: unsigned int
      - name: reconnect
        type: unsigned int
      - name: heartbeat
        type: unsigned int
      - name: confirm
        type: unsigned int
      - name: last_hdshk
        type: unsigned int
      - name: rx_hbt
        type: uint32_t
      - name: tx_hbt
        type: uint32_t
      - name: no_hbt
        type: uint32_t
      - name: new_conn
        type: uint32_t
      - name: proto_err
        type: uint32_t
      - name: coll
        type: uint32_t
      - name: '*appctx'
        type: struct appctx
      - name: '*remote_table'
        type: struct shared_table
      - name: '*last_local_table'
        type: struct shared_table
      - name: '*stop_local_table'
        type: struct shared_table
      - name: '*tables'
        type: struct shared_table
      - name: '*srv'
        type: struct server
      - name: '*dcache'
        type: struct dcache
      - name: '*peers'
        type: struct peers
      - name: '*next'
        type: struct peer
      item_type: struct
      name: peer
      pos:
        line_end: 180
        line_start: 148
        source_file: /src/haproxy/include/haproxy/peers-t.h
    - fields:
      - name: '*id'
        type: char
      - name: '*sync_task'
        type: struct task
      - name: '*sighandler'
        type: struct sig_handler
      - name: '*remote'
        type: struct peer
      - name: '*local'
        type: struct peer
      - name: '*peers_fe'
        type: struct proxy
      - name: conf
        type: "struct {\n\t\tconst char *file;           /* file where the section
          appears */\n\t\tint line;                   /* line where the section appears
          */\n\t}"
      - name: last_change
        type: time_t
      - name: '*next'
        type: struct peers
      - name: flags
        type: unsigned int
      - name: resync_timeout
        type: unsigned int
      - name: count
        type: int
      - name: nb_shards
        type: int
      - name: disabled
        type: int
      - name: applet_count[MAX_THREADS]
        type: int
      item_type: struct
      name: peers
      pos:
        line_end: 202
        line_start: 183
        source_file: /src/haproxy/include/haproxy/peers-t.h
    - fields:
      - name: lru_key
        type: unsigned int
      - name: '*entries'
        type: struct ebpt_node
      - name: '*prev_lookup'
        type: struct ebpt_node
      - name: cached_entries
        type: struct eb_root
      item_type: struct
      name: dcache_tx
      pos:
        line_end: 214
        line_start: 205
        source_file: /src/haproxy/include/haproxy/peers-t.h
    - fields:
      - name: id
        type: unsigned int
      - name: '*de'
        type: struct dict_entry
      item_type: struct
      name: dcache_rx
      pos:
        line_end: 219
        line_start: 216
        source_file: /src/haproxy/include/haproxy/peers-t.h
    - fields:
      - name: id
        type: unsigned int
      - name: entry
        type: struct ebpt_node
      item_type: struct
      name: dcache_tx_entry
      pos:
        line_end: 224
        line_start: 221
        source_file: /src/haproxy/include/haproxy/peers-t.h
    - fields:
      - name: '*tx'
        type: struct dcache_tx
      - name: '*rx'
        type: struct dcache_rx
      - name: max_entries
        type: size_t
      item_type: struct
      name: dcache
      pos:
        line_end: 234
        line_start: 227
        source_file: /src/haproxy/include/haproxy/peers-t.h
    - fields:
      - name: '*kw'
        type: char
      - name: "(*parse)(\n\t\tchar **args,\n\t\tstruct peers *curpeer,\n\t\tconst
          char *file,\n\t\tint line,\n\t\tchar **err)"
        type: int
      - name: flags
        type: int
      item_type: struct
      name: peers_keyword
      pos:
        line_end: 245
        line_start: 236
        source_file: /src/haproxy/include/haproxy/peers-t.h
    - fields:
      - name: list
        type: struct list
      - name: kw[VAR_ARRAY]
        type: struct peers_keyword
      item_type: struct
      name: peers_kw_list
      pos:
        line_end: 250
        line_start: 247
        source_file: /src/haproxy/include/haproxy/peers-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_ss.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tv_eternity
  - tv_zero
  - tv_iseternity
  - tv_isset
  - tv_iszero
  - __tv_to_ms
  - __tv_from_ms
  - tv_to_ns
  - ns_to_sec
  - ns_to_ms
  - sec_to_ns
  - ms_to_ns
  - us_to_ns
  - NS_TO_TV
  - __usec_to_1024th
  - __tv_cmp
  - __tv_iseq
  - __tv_isgt
  - __tv_isge
  - __tv_islt
  - __tv_isle
  - __tv_ms_cmp
  - __tv_ms_cmp2
  - __tv_ms_le2
  - __tv_ms_elapsed
  - __tv_ms_remain
  - __tv_ms_remain2
  - __tv_add
  - __tv_add_ifset
  - __tv_add2
  - __tv_remain
  - __tv_remain2
  - __tv_ms_add
  - tv_isbefore
  - tv_min
  - tv_bound
  - tot_time_reset
  - tot_time_start
  - tot_time_stop
  - tot_time_read
  source_file: /src/haproxy/include/haproxy/time.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TIME_ETERNITY
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: (TV_ETERNITY_MS)
    - item_type: preproc_def
      name: tv_iseq
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: __tv_iseq
    - item_type: preproc_def
      name: tv_isgt
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: _tv_isgt
    - item_type: preproc_def
      name: tv_isge
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: __tv_isge
    - item_type: preproc_def
      name: tv_islt
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: __tv_islt
    - item_type: preproc_def
      name: tv_isle
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: _tv_isle
    - item_type: preproc_def
      name: tv_ms_cmp
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: _tv_ms_cmp
    - item_type: preproc_def
      name: tv_ms_cmp2
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: _tv_ms_cmp2
    - item_type: preproc_def
      name: tv_ms_le2
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: _tv_ms_le2
    - item_type: preproc_def
      name: tv_ms_elapsed
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: __tv_ms_elapsed
    - item_type: preproc_def
      name: tv_ms_remain
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: __tv_ms_remain
    - item_type: preproc_def
      name: tv_ms_remain2
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: _tv_ms_remain2
    - item_type: preproc_def
      name: tv_add
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: _tv_add
    - item_type: preproc_def
      name: tv_add_ifset
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: _tv_add_ifset
    - item_type: preproc_def
      name: tv_remain
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: _tv_remain
    - item_type: preproc_def
      name: tv_remain2
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: _tv_remain2
    - item_type: preproc_def
      name: tv_ms_add
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/haproxy/include/haproxy/time.h
      type_or_value: _tv_ms_add
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/frontend.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - qcc_report_glitch
  - qcm_stream_rx_bufsz
  - qcs_id_type
  - quic_stream_is_local
  - quic_stream_is_remote
  - qcs_st_to_str
  - qcs_wait_http_req
  - quic_alpn_to_app_ops
  source_file: /src/haproxy/include/haproxy/mux_quic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QCS_ID_TYPE_MASK
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/mux_quic.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: QCS_ID_SRV_INTIATOR_BIT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/mux_quic.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: QCS_ID_DIR_BIT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/mux_quic.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: QCS_ID_MAX_STRM_CL_BIDI
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/mux_quic.h
      type_or_value: (QUIC_VARINT_8_BYTE_MAX - 3)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/uri_normalizer-t.h
  types:
    enum:
    - enumerators:
      - name: URI_NORMALIZER_ERR_NONE
        value: '0'
      - name: URI_NORMALIZER_ERR_INVALID_INPUT
      - name: URI_NORMALIZER_ERR_INTERNAL_ERROR
        value: '0xdead'
      - name: URI_NORMALIZER_ERR_ALLOC
      item_type: enum
      name: uri_normalizer_err
      pos:
        line_end: 21
        line_start: 16
        source_file: /src/haproxy/include/haproxy/uri_normalizer-t.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/trace-t.h
  types:
    enum:
    - enumerators:
      - name: TRACE_STATE_STOPPED
        value: '0'
      - name: TRACE_STATE_WAITING
      - name: TRACE_STATE_RUNNING
      item_type: enum
      name: trace_state
      pos:
        line_end: 99
        line_start: 95
        source_file: /src/haproxy/include/haproxy/trace-t.h
    - enumerators:
      - name: TRACE_LEVEL_ERROR
        value: '0'
      - name: TRACE_LEVEL_USER
      - name: TRACE_LEVEL_PROTO
      - name: TRACE_LEVEL_DATA
      - name: TRACE_LEVEL_STATE
      - name: TRACE_LEVEL_DEVELOPER
      item_type: enum
      name: trace_level
      pos:
        line_end: 111
        line_start: 104
        source_file: /src/haproxy/include/haproxy/trace-t.h
    - enumerators:
      - name: TRACE_LOCKON_NOTHING
        value: '0'
      - name: TRACE_LOCKON_THREAD
      - name: TRACE_LOCKON_LISTENER
      - name: TRACE_LOCKON_FRONTEND
      - name: TRACE_LOCKON_BACKEND
      - name: TRACE_LOCKON_SERVER
      - name: TRACE_LOCKON_CONNECTION
      - name: TRACE_LOCKON_SESSION
      - name: TRACE_LOCKON_STREAM
      - name: TRACE_LOCKON_CHECK
      - name: TRACE_LOCKON_ARG1
      - name: TRACE_LOCKON_QCON
      - name: TRACE_LOCKON_ARG4
      - name: TRACE_LOCKON_APPCTX
      - name: TRACE_LOCKON_ARG3
      - name: TRACE_LOCKON_ARG2
      item_type: enum
      name: trace_lockon
      pos:
        line_end: 130
        line_start: 113
        source_file: /src/haproxy/include/haproxy/trace-t.h
    preproc_defs:
    - item_type: preproc_def
      name: TRC_ARG_PRIV
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (0)
    - item_type: preproc_def
      name: TRC_ARG_CONN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: TRC_ARG_SESS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: TRC_ARG_STRM
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: TRC_ARG_CHK
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: TRC_ARG_QCON
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: TRC_ARG_APPCTX
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: TRC_ARG_HSTRM
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: TRC_ARG1_PRIV
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_PRIV << 0)
    - item_type: preproc_def
      name: TRC_ARG1_CONN
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_CONN << 0)
    - item_type: preproc_def
      name: TRC_ARG1_SESS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_SESS << 0)
    - item_type: preproc_def
      name: TRC_ARG1_STRM
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_STRM << 0)
    - item_type: preproc_def
      name: TRC_ARG1_CHK
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_CHK  << 0)
    - item_type: preproc_def
      name: TRC_ARG1_QCON
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_QCON << 0)
    - item_type: preproc_def
      name: TRC_ARG1_APPCTX
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_APPCTX << 0)
    - item_type: preproc_def
      name: TRC_ARG1_HSTRM
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_HSTRM << 0)
    - item_type: preproc_def
      name: TRC_ARG2_PRIV
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_PRIV << 8)
    - item_type: preproc_def
      name: TRC_ARG2_CONN
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_CONN << 8)
    - item_type: preproc_def
      name: TRC_ARG2_SESS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_SESS << 8)
    - item_type: preproc_def
      name: TRC_ARG2_STRM
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_STRM << 8)
    - item_type: preproc_def
      name: TRC_ARG2_CHK
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_CHK  << 8)
    - item_type: preproc_def
      name: TRC_ARG2_QCON
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_QCON << 8)
    - item_type: preproc_def
      name: TRC_ARG2_APPCTX
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_APPCTX << 8)
    - item_type: preproc_def
      name: TRC_ARG2_HSTRM
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_HSTRM << 8)
    - item_type: preproc_def
      name: TRC_ARG3_PRIV
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_PRIV << 16)
    - item_type: preproc_def
      name: TRC_ARG3_CONN
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_CONN << 16)
    - item_type: preproc_def
      name: TRC_ARG3_SESS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_SESS << 16)
    - item_type: preproc_def
      name: TRC_ARG3_STRM
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_STRM << 16)
    - item_type: preproc_def
      name: TRC_ARG3_CHK
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_CHK  << 16)
    - item_type: preproc_def
      name: TRC_ARG3_QCON
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_QCON << 16)
    - item_type: preproc_def
      name: TRC_ARG3_APPCTX
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_APPCTX << 16)
    - item_type: preproc_def
      name: TRC_ARG3_HSTRM
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_HSTRM << 16)
    - item_type: preproc_def
      name: TRC_ARG4_PRIV
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_PRIV << 24)
    - item_type: preproc_def
      name: TRC_ARG4_CONN
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_CONN << 24)
    - item_type: preproc_def
      name: TRC_ARG4_SESS
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_SESS << 24)
    - item_type: preproc_def
      name: TRC_ARG4_STRM
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_STRM << 24)
    - item_type: preproc_def
      name: TRC_ARG4_CHK
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_CHK  << 24)
    - item_type: preproc_def
      name: TRC_ARG4_QCON
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_QCON << 24)
    - item_type: preproc_def
      name: TRC_ARG4_APPCTX
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_APPCTX << 24)
    - item_type: preproc_def
      name: TRC_ARG4_HSTRM
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_HSTRM << 24)
    - item_type: preproc_def
      name: TRC_ARGS_CONN
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_CONN * 0x01010101U)
    - item_type: preproc_def
      name: TRC_ARGS_SESS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_SESS * 0x01010101U)
    - item_type: preproc_def
      name: TRC_ARGS_STRM
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_STRM * 0x01010101U)
    - item_type: preproc_def
      name: TRC_ARGS_CHK
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_CHK  * 0x01010101U)
    - item_type: preproc_def
      name: TRC_ARGS_QCON
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_QCON * 0x01010101U)
    - item_type: preproc_def
      name: TRC_ARGS_APPCTX
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_APPCTX * 0x01010101U)
    - item_type: preproc_def
      name: TRC_ARGS_HSTRM
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_HSTRM * 0x01010101U)
    structs:
    - fields:
      - name: mask
        type: uint64_t
      - name: '*name'
        type: char
      - name: '*desc'
        type: char
      item_type: struct
      name: trace_event
      pos:
        line_end: 142
        line_start: 138
        source_file: /src/haproxy/include/haproxy/trace-t.h
    - fields:
      - name: '*li'
        type: struct listener
      - name: '*fe'
        type: struct proxy
      - name: '*be'
        type: struct proxy
      - name: '*srv'
        type: struct server
      - name: '*sess'
        type: struct session
      - name: '*strm'
        type: struct stream
      - name: '*conn'
        type: struct connection
      - name: '*check'
        type: struct check
      - name: '*qc'
        type: struct quic_conn
      - name: '*appctx'
        type: struct appctx
      - name: '*hs'
        type: struct hstream
      item_type: struct
      name: trace_ctx
      pos:
        line_end: 157
        line_start: 145
        source_file: /src/haproxy/include/haproxy/trace-t.h
    - fields:
      - name: name
        type: struct ist
      - name: alias
        type: struct ist
      - name: '*desc'
        type: char
      - name: '*known_events'
        type: struct trace_event
      - name: source_link
        type: struct list
      - name: "(*default_cb)(enum trace_level level, uint64_t mask,\n\t                   const
          struct trace_source *src,\n\t                   const struct ist where,
          const struct ist func,\n\t                   const void *a1, const void
          *a2, const void *a3, const void *a4)"
        type: void
      - name: "(*fill_ctx)(struct trace_ctx *ctx, const struct trace_source *src,\n\t
          \                const void *a1, const void *a2, const void *a3, const void
          *a4)"
        type: void
      - name: arg_def
        type: uint32_t
      - name: '*lockon_args'
        type: struct name_desc
      - name: '*decoding'
        type: struct name_desc
      - name: lockon
        type: enum trace_lockon
      - name: start_events
        type: uint64_t
      - name: pause_events
        type: uint64_t
      - name: stop_events
        type: uint64_t
      - name: report_events
        type: uint64_t
      - name: level
        type: enum trace_level
      - name: verbosity
        type: unsigned int
      - name: '*sink'
        type: struct sink
      - name: state
        type: enum trace_state
      - name: '*lockon_ptr'
        type: void
      - name: '*follow'
        type: struct trace_source
      - name: cmdline
        type: int
      item_type: struct
      name: trace_source
      pos:
        line_end: 195
        line_start: 165
        source_file: /src/haproxy/include/haproxy/trace-t.h
    typedefs: []
    union: []
- function_names:
  - chn_show_flags
  - _
  - chn_show_analysers
  - _
  source_file: /src/haproxy/include/haproxy/channel-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_READ_EVENT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: CF_READ_TIMEOUT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: CF_WRITE_EVENT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: CF_WRITE_TIMEOUT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: CF_WAKE_WRITE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: CF_AUTO_CLOSE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00008000  '
    - item_type: preproc_def
      name: CF_STREAMER
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00010000  '
    - item_type: preproc_def
      name: CF_STREAMER_FAST
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00020000  '
    - item_type: preproc_def
      name: CF_WROTE_DATA
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00040000  '
    - item_type: preproc_def
      name: CF_AUTO_CONNECT
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00800000  '
    - item_type: preproc_def
      name: CF_DONT_READ
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x01000000  '
    - item_type: preproc_def
      name: CF_WAKE_ONCE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x10000000  '
    - item_type: preproc_def
      name: CF_FLT_ANALYZE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x20000000  '
    - item_type: preproc_def
      name: CF_ISRESP
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x80000000  '
    - item_type: preproc_def
      name: CF_MASK_ANALYSER
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: (CF_READ_EVENT|CF_READ_TIMEOUT|CF_WRITE_EVENT|CF_WAKE_ONCE)
    - item_type: preproc_def
      name: AN_REQ_INSPECT_FE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: AN_REQ_WAIT_HTTP
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: AN_REQ_HTTP_BODY
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: AN_REQ_HTTP_PROCESS_FE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: AN_REQ_SWITCHING_RULES
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: AN_REQ_INSPECT_BE
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: AN_REQ_HTTP_PROCESS_BE
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: AN_REQ_HTTP_TARPIT
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: AN_REQ_SRV_RULES
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: AN_REQ_HTTP_INNER
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: AN_REQ_PRST_RDP_COOKIE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: AN_REQ_STICKING_RULES
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00002000  '
    - item_type: preproc_def
      name: AN_REQ_HTTP_XFER_BODY
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00008000  '
    - item_type: preproc_def
      name: AN_REQ_WAIT_CLI
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: AN_REQ_ALL
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x0001bfbe  '
    - item_type: preproc_def
      name: AN_RES_INSPECT
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00200000  '
    - item_type: preproc_def
      name: AN_RES_WAIT_HTTP
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00400000  '
    - item_type: preproc_def
      name: AN_RES_STORE_RULES
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00800000  '
    - item_type: preproc_def
      name: AN_RES_HTTP_PROCESS_BE
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x01000000  '
    - item_type: preproc_def
      name: AN_RES_HTTP_PROCESS_FE
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x01000000  '
    - item_type: preproc_def
      name: AN_RES_HTTP_XFER_BODY
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x04000000  '
    - item_type: preproc_def
      name: AN_RES_WAIT_CLI
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x08000000'
    - item_type: preproc_def
      name: AN_RES_ALL
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x0de00000  '
    - item_type: preproc_def
      name: AN_REQ_FLT_START_FE
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: AN_REQ_FLT_START_BE
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: AN_REQ_FLT_HTTP_HDRS
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: AN_REQ_FLT_XFER_DATA
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00020000'
    - item_type: preproc_def
      name: AN_REQ_FLT_END
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00040000'
    - item_type: preproc_def
      name: AN_RES_FLT_START_FE
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00080000'
    - item_type: preproc_def
      name: AN_RES_FLT_START_BE
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00100000'
    - item_type: preproc_def
      name: AN_RES_FLT_HTTP_HDRS
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x02000000'
    - item_type: preproc_def
      name: AN_RES_FLT_XFER_DATA
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x10000000'
    - item_type: preproc_def
      name: AN_RES_FLT_END
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x20000000'
    - item_type: preproc_def
      name: CHN_INFINITE_FORWARD
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: MAX_RANGE(unsigned int)
    structs:
    - fields:
      - name: flags
        type: unsigned int
      - name: analysers
        type: unsigned int
      - name: buf
        type: struct buffer
      - name: output
        type: size_t
      - name: to_forward
        type: unsigned int
      - name: last_read
        type: unsigned short
      - name: xfer_large
        type: unsigned char
      - name: xfer_small
        type: unsigned char
      - name: analyse_exp
        type: int
      - name: flt
        type: struct chn_flt
      item_type: struct
      name: channel
      pos:
        line_end: 209
        line_start: 198
        source_file: /src/haproxy/include/haproxy/channel-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/namespace-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: netns_entry
      pos:
        line_end: 36
        line_start: 29
        source_file: /src/haproxy/include/haproxy/namespace-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_sock-t.h
  types:
    enum:
    - enumerators:
      - name: QUIC_SOCK_MODE_CONN
      - name: QUIC_SOCK_MODE_LSTNR
      item_type: enum
      name: quic_sock_mode
      pos:
        line_end: 12
        line_start: 9
        source_file: /src/haproxy/include/haproxy/quic_sock-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_DGRAM_FL_REJECT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/include/haproxy/quic_sock-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: QUIC_DGRAM_FL_SEND_RETRY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/include/haproxy/quic_sock-t.h
      type_or_value: '0x00000002'
    structs:
    - fields:
      - name: listeners
        type: struct mt_list
      - name: '*tasklet'
        type: struct tasklet
      item_type: struct
      name: quic_accept_queue
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/haproxy/include/haproxy/quic_sock-t.h
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: '*owner'
        type: void
      - name: '*buf'
        type: unsigned char
      - name: len
        type: size_t
      - name: dcid_off
        type: size_t
      - name: dcid_len
        type: size_t
      - name: saddr
        type: union sockaddr_in46
      - name: daddr
        type: union sockaddr_in46
      - name: '*qc'
        type: struct quic_conn
      - name: flags
        type: int
      item_type: struct
      name: quic_dgram
      pos:
        line_end: 41
        line_start: 29
        source_file: /src/haproxy/include/haproxy/quic_sock-t.h
    - fields:
      - name: buf
        type: struct mpring
      - name: '*task'
        type: struct tasklet
      item_type: struct
      name: quic_dghdlr
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/haproxy/include/haproxy/quic_sock-t.h
    typedefs: []
    union:
    - fields:
      - name: in4
        type: struct sockaddr_in
      - name: in6
        type: struct sockaddr_in6
      item_type: union
      name: sockaddr_in46
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/haproxy/include/haproxy/quic_sock-t.h
- function_names:
  - regex_exec
  - regex_exec2
  - regex_free
  source_file: /src/haproxy/include/haproxy/regex.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/base64.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/jws.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clock_update_date
  source_file: /src/haproxy/include/haproxy/clock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/qpack-dec.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ic
        type: uint64_t
      - name: krc
        type: uint64_t
      item_type: struct
      name: qpack_dec
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/haproxy/include/haproxy/qpack-dec.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/ssl_trace.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSL_EV_CONN_NEW
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL <<  0)
    - item_type: preproc_def
      name: SSL_EV_CONN_CLOSE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL <<  1)
    - item_type: preproc_def
      name: SSL_EV_CONN_END
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL <<  2)
    - item_type: preproc_def
      name: SSL_EV_CONN_ERR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL <<  3)
    - item_type: preproc_def
      name: SSL_EV_CONN_SEND
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL <<  4)
    - item_type: preproc_def
      name: SSL_EV_CONN_SEND_EARLY
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL <<  5)
    - item_type: preproc_def
      name: SSL_EV_CONN_RECV
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL <<  6)
    - item_type: preproc_def
      name: SSL_EV_CONN_RECV_EARLY
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL <<  7)
    - item_type: preproc_def
      name: SSL_EV_CONN_IO_CB
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL <<  8)
    - item_type: preproc_def
      name: SSL_EV_CONN_HNDSHK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL <<  9)
    - item_type: preproc_def
      name: SSL_EV_CONN_VFY_CB
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL << 10)
    - item_type: preproc_def
      name: SSL_EV_CONN_STAPLING
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL << 11)
    - item_type: preproc_def
      name: SSL_EV_CONN_SWITCHCTX_CB
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL << 12)
    - item_type: preproc_def
      name: SSL_EV_CONN_CHOOSE_SNI_CTX
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL << 13)
    - item_type: preproc_def
      name: SSL_EV_CONN_SIGALG_EXT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL << 14)
    - item_type: preproc_def
      name: SSL_EV_CONN_CIPHERS_EXT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL << 15)
    - item_type: preproc_def
      name: SSL_EV_CONN_CURVES_EXT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: (1ULL << 16)
    - item_type: preproc_def
      name: SSL_VERB_CLEAN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SSL_VERB_MINIMAL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SSL_VERB_SIMPLE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SSL_VERB_ADVANCED
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SSL_VERB_COMPLETE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/ssl_trace.h
      type_or_value: '&trace_ssl'
    structs: []
    typedefs: []
    union: []
- function_names:
  - EXTRA_COUNTERS
  source_file: /src/haproxy/include/haproxy/counters-t.h
  types:
    enum:
    - enumerators:
      - name: COUNTERS_FE
        value: '0'
      - name: COUNTERS_RSLV
      - name: COUNTERS_BE
      - name: COUNTERS_SV
      - name: COUNTERS_LI
      - name: COUNTERS_OFF_END
      item_type: enum
      name: counters_type
      pos:
        line_end: 196
        line_start: 188
        source_file: /src/haproxy/include/haproxy/counters-t.h
    preproc_defs:
    - item_type: preproc_def
      name: COUNTERS_SHARED_F_NONE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/include/haproxy/counters-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: COUNTERS_SHARED_F_LOCAL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/include/haproxy/counters-t.h
      type_or_value: 0x0001 // shared counter struct is actually process-local
    - item_type: preproc_def
      name: COUNTERS_SHARED_TG
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/haproxy/include/haproxy/counters-t.h
      type_or_value: "struct {                                                                     \\\n\t\tlong
        long srv_aborts;                   "
    structs:
    - fields:
      - name: '**tg'
        type: "struct {\n\t\tCOUNTERS_SHARED_TG;\n\t}"
      item_type: struct
      name: counters_shared
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/haproxy/include/haproxy/counters-t.h
    - fields:
      - name: denied_sess
        type: long long
      - name: denied_conn
        type: long long
      - name: intercepted_req
        type: long long
      - name: cum_conn
        type: long long
      - name: conn_per_sec
        type: struct freq_ctr
      - name: req_per_sec
        type: struct freq_ctr
      - name: cum_sess_ver[3]
        type: long long
      - name: p
        type: "union {\n\t\tstruct {\n\t\t\tlong long cum_req[4];   /* cumulated number
          of processed other/h1/h2/h3 requests */\n\t\t\tlong long cache_hits;   /*
          cache hits */\n\t\t\tlong long cache_lookups;/* cache lookups */\n\t\t\tlong
          long comp_rsp;     /* number of compressed responses */\n\t\t\tlong long
          rsp[6];       /* http response codes */\n\t\t} http;\n\t}"
      - name: failed_req
        type: long long
      item_type: struct
      name: fe_counters_shared_tg
      pos:
        line_end: 99
        line_start: 76
        source_file: /src/haproxy/include/haproxy/counters-t.h
    - fields:
      - name: '**tg'
        type: struct fe_counters_shared_tg
      item_type: struct
      name: fe_counters_shared
      pos:
        line_end: 104
        line_start: 101
        source_file: /src/haproxy/include/haproxy/counters-t.h
    - fields:
      - name: shared
        type: struct fe_counters_shared
      - name: conn_max
        type: unsigned int
      - name: cps_max
        type: unsigned int
      - name: sps_max
        type: unsigned int
      - name: _sess_per_sec
        type: struct freq_ctr
      - name: _conn_per_sec
        type: struct freq_ctr
      - name: p
        type: "union {\n\t\tstruct {\n\t\t\tunsigned int rps_max;   /* maximum of
          new HTTP requests second observed */\n\t\t\tstruct freq_ctr _req_per_sec;
          /* HTTP requests per second on the frontend, only used to compute rps_max
          */\n\t\t} http;\n\t}"
      item_type: struct
      name: fe_counters
      pos:
        line_end: 122
        line_start: 107
        source_file: /src/haproxy/include/haproxy/counters-t.h
    - fields:
      - name: cum_lbconn
        type: long long
      - name: connect
        type: long long
      - name: reuse
        type: long long
      - name: failed_checks
        type: long long
      - name: down_trans
        type: long long
      - name: p
        type: "union {\n\t\tstruct {\n\t\t\tlong long cum_req;      /* cumulated number
          of processed HTTP requests */\n\n\t\t\tlong long cache_hits;   /* cache
          hits */\n\t\t\tlong long cache_lookups;/* cache lookups */\n\t\t\tlong long
          comp_rsp;     /* number of compressed responses */\n\t\t\tlong long rsp[6];
          \      /* http response codes */\n\n\t\t} http;\n\t}"
      - name: redispatches
        type: long long
      - name: retries
        type: long long
      - name: failed_resp
        type: long long
      - name: failed_conns
        type: long long
      - name: last_sess
        type: unsigned int
      item_type: struct
      name: be_counters_shared_tg
      pos:
        line_end: 158
        line_start: 129
        source_file: /src/haproxy/include/haproxy/counters-t.h
    - fields:
      - name: '**tg'
        type: struct be_counters_shared_tg
      item_type: struct
      name: be_counters_shared
      pos:
        line_end: 163
        line_start: 160
        source_file: /src/haproxy/include/haproxy/counters-t.h
    - fields:
      - name: shared
        type: struct be_counters_shared
      - name: conn_max
        type: unsigned int
      - name: cps_max
        type: unsigned int
      - name: sps_max
        type: unsigned int
      - name: nbpend_max
        type: unsigned int
      - name: cur_sess_max
        type: unsigned int
      - name: _sess_per_sec
        type: struct freq_ctr
      - name: q_time
        type: unsigned int
      - name: qtime_max
        type: unsigned int
      - name: p
        type: "union {\n\t\tstruct {\n\t\t\tunsigned int rps_max;   /* maximum of
          new HTTP requests second observed */\n\t\t} http;\n\t}"
      item_type: struct
      name: be_counters
      pos:
        line_end: 185
        line_start: 166
        source_file: /src/haproxy/include/haproxy/counters-t.h
    - fields:
      - name: '**datap'
        type: char
      - name: size
        type: size_t
      - name: tgrp_step
        type: size_t
      - name: nbtgrp
        type: uint
      - name: type
        type: enum counters_type
      item_type: struct
      name: extra_counters
      pos:
        line_end: 204
        line_start: 198
        source_file: /src/haproxy/include/haproxy/counters-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/proxy-t.h
  types:
    enum:
    - enumerators:
      - name: PR_MODES
        value: '0x00'
      - name: PR_MODE_CLI
        value: '0x04'
      - name: PR_MODE_SYSLOG
        value: '0x08'
      - name: PR_MODE_HTTP
        value: '0x02'
      - name: PR_MODE_TCP
        value: '0x01'
      - name: PR_MODE_PEERS
        value: '0x10'
      - name: PR_MODE_SPOP
        value: '0x20'
      item_type: enum
      name: pr_mode
      pos:
        line_end: 59
        line_start: 51
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - enumerators:
      - name: PR_SRV_STATE_FILE_UNSPEC
        value: '0'
      - name: PR_SRV_STATE_FILE_LOCAL
      - name: PR_SRV_STATE_FILE_GLOBAL
      - name: PR_SRV_STATE_FILE_NONE
      item_type: enum
      name: PR_SRV_STATE_FILE
      pos:
        line_end: 66
        line_start: 61
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    preproc_defs:
    - item_type: preproc_def
      name: PR_CAP_NONE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: PR_CAP_FE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: PR_CAP_BE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: PR_CAP_LISTEN
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: (PR_CAP_FE|PR_CAP_BE)
    - item_type: preproc_def
      name: PR_CAP_DEF
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0004      '
    - item_type: preproc_def
      name: PR_CAP_INT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0008      '
    - item_type: preproc_def
      name: PR_CAP_LB
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0010      '
    - item_type: preproc_def
      name: PR_CAP_HTTPCLIENT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0020      '
    - item_type: preproc_def
      name: PR_O_REDISP
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: PR_O_TRANSP
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000002      '
    - item_type: preproc_def
      name: PR_O_REUSE_NEVR
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000000      '
    - item_type: preproc_def
      name: PR_O_REUSE_SAFE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000004      '
    - item_type: preproc_def
      name: PR_O_REUSE_AGGR
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000008      '
    - item_type: preproc_def
      name: PR_O_REUSE_ALWS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0000000C      '
    - item_type: preproc_def
      name: PR_O_REUSE_MASK
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0000000C      '
    - item_type: preproc_def
      name: PR_O_IDLE_CLOSE_RESP
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: PR_O_PREF_LAST
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000020      '
    - item_type: preproc_def
      name: PR_O_DISPATCH
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000040      '
    - item_type: preproc_def
      name: PR_O_FORCED_ID
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000080      '
    - item_type: preproc_def
      name: PR_O_IGNORE_PRB
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000200      '
    - item_type: preproc_def
      name: PR_O_NULLNOLOG
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000400      '
    - item_type: preproc_def
      name: PR_O_WREQ_BODY
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000800      '
    - item_type: preproc_def
      name: PR_O_HTTP_UPG
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00001000      '
    - item_type: preproc_def
      name: PR_O_PERSIST
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00004000      '
    - item_type: preproc_def
      name: PR_O_LOGASAP
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00008000      '
    - item_type: preproc_def
      name: PR_O_CHK_CACHE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00020000      '
    - item_type: preproc_def
      name: PR_O_TCP_CLI_KA
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00040000      '
    - item_type: preproc_def
      name: PR_O_TCP_SRV_KA
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00080000      '
    - item_type: preproc_def
      name: PR_O_USE_ALL_BK
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00100000      '
    - item_type: preproc_def
      name: PR_O_TCP_NOLING
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00400000      '
    - item_type: preproc_def
      name: PR_O_ABRT_CLOSE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00800000      '
    - item_type: preproc_def
      name: PR_O_HTTP_KAL
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000000      '
    - item_type: preproc_def
      name: PR_O_HTTP_CLO
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x01000000      '
    - item_type: preproc_def
      name: PR_O_HTTP_SCL
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x02000000      '
    - item_type: preproc_def
      name: PR_O_HTTP_MODE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x03000000      '
    - item_type: preproc_def
      name: PR_O_HTTP_DROP_REQ_TRLS
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x04000000 '
    - item_type: preproc_def
      name: PR_O_HTTP_DROP_RES_TRLS
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x08000000 '
    - item_type: preproc_def
      name: PR_O_CONTSTATS
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x20000000      '
    - item_type: preproc_def
      name: PR_O2_SPLIC_REQ
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: PR_O2_SPLIC_RTR
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000002      '
    - item_type: preproc_def
      name: PR_O2_SPLIC_AUT
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000004      '
    - item_type: preproc_def
      name: PR_O2_SPLIC_ANY
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: (PR_O2_SPLIC_REQ|PR_O2_SPLIC_RTR|PR_O2_SPLIC_AUT)
    - item_type: preproc_def
      name: PR_O2_REQBUG_OK
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000008      '
    - item_type: preproc_def
      name: PR_O2_RSPBUG_OK
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000010      '
    - item_type: preproc_def
      name: PR_O2_NOLOGNORM
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000020      '
    - item_type: preproc_def
      name: PR_O2_LOGERRORS
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000040      '
    - item_type: preproc_def
      name: PR_O2_SMARTACC
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000080      '
    - item_type: preproc_def
      name: PR_O2_SMARTCON
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000100      '
    - item_type: preproc_def
      name: PR_O2_RDPC_PRST
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000200      '
    - item_type: preproc_def
      name: PR_O2_CLFLOG
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000400      '
    - item_type: preproc_def
      name: PR_O2_LOGHCHKS
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: "0x00000800\t"
    - item_type: preproc_def
      name: PR_O2_INDEPSTR
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: "0x00001000\t"
    - item_type: preproc_def
      name: PR_O2_SOCKSTAT
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: "0x00002000\t"
    - item_type: preproc_def
      name: PR_O2_H1_ADJ_BUGCLI
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00008000 '
    - item_type: preproc_def
      name: PR_O2_H1_ADJ_BUGSRV
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00004000 '
    - item_type: preproc_def
      name: PR_O2_NO_H2_UPGRADE
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: PR_O2_NODELAY
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00020000      '
    - item_type: preproc_def
      name: PR_O2_USE_PXHDR
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00040000      '
    - item_type: preproc_def
      name: PR_O2_SRC_ADDR
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: "0x00100000\t"
    - item_type: preproc_def
      name: PR_O2_FAKE_KA
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00200000      '
    - item_type: preproc_def
      name: PR_O2_RSTRICT_REQ_HDR_NAMES_BLK
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00400000 '
    - item_type: preproc_def
      name: PR_O2_RSTRICT_REQ_HDR_NAMES_DEL
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00800000 '
    - item_type: preproc_def
      name: PR_O2_RSTRICT_REQ_HDR_NAMES_NOOP
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x01000000 '
    - item_type: preproc_def
      name: PR_O2_RSTRICT_REQ_HDR_NAMES_MASK
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x01c00000 '
    - item_type: preproc_def
      name: PR_O2_CHK_NONE
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000000    '
    - item_type: preproc_def
      name: PR_O2_TCPCHK_CHK
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x02000000    '
    - item_type: preproc_def
      name: PR_O2_EXT_CHK
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x04000000    '
    - item_type: preproc_def
      name: PR_O2_CHK_ANY
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x06000000    '
    - item_type: preproc_def
      name: PR_O2_USE_SBUF_QUEUE
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x08000000 '
    - item_type: preproc_def
      name: PR_O2_USE_SBUF_L7_RETRY
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x10000000 '
    - item_type: preproc_def
      name: PR_O2_USE_SBUF_CHECK
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x20000000 '
    - item_type: preproc_def
      name: PR_O2_USE_SBUF_ALL
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x38000000 '
    - item_type: preproc_def
      name: PR_O3_DONTPARSELOG
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: PR_O3_ASSUME_RFC6587_NTF
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: PR_O3_LOGF_HOST_REPLACE
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: PR_O3_LOGF_HOST_FILL
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: PR_O3_LOGF_HOST_KEEP
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: PR_O3_LOGF_HOST_APPEND
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: PR_O3_LOGF_HOST
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x000000F0'
    - item_type: preproc_def
      name: PR_O3_HASHAFNTY_ALWS
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000000 '
    - item_type: preproc_def
      name: PR_O3_HASHAFNTY_MAXCONN
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000100 '
    - item_type: preproc_def
      name: PR_O3_HASHAFNTY_MAXQUEUE
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: PR_O3_HASHAFNTY_MASK
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000300 '
    - item_type: preproc_def
      name: PR_CK_RW
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: PR_CK_IND
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000002      '
    - item_type: preproc_def
      name: PR_CK_INS
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000004      '
    - item_type: preproc_def
      name: PR_CK_PFX
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000008      '
    - item_type: preproc_def
      name: PR_CK_ANY
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: (PR_CK_RW | PR_CK_IND | PR_CK_INS | PR_CK_PFX)
    - item_type: preproc_def
      name: PR_CK_NOC
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000010      '
    - item_type: preproc_def
      name: PR_CK_POST
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000020      '
    - item_type: preproc_def
      name: PR_CK_PSV
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000040      '
    - item_type: preproc_def
      name: PR_CK_HTTPONLY
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000080      '
    - item_type: preproc_def
      name: PR_CK_SECURE
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000100      '
    - item_type: preproc_def
      name: PR_CK_DYNAMIC
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: "0x00000200\t"
    - item_type: preproc_def
      name: STK_IS_MATCH
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: "0x00000001\t"
    - item_type: preproc_def
      name: STK_IS_STORE
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: "0x00000002\t"
    - item_type: preproc_def
      name: STK_ON_RSP
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: "0x00000004\t"
    - item_type: preproc_def
      name: PR_FBM_MISMATCH_ID
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PR_FBM_MISMATCH_NAME
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PR_FBM_MISMATCH_PROXYTYPE
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: PR_RE_CONN_FAILED
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: PR_RE_DISCONNECTED
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: PR_RE_TIMEOUT
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: PR_RE_401
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: PR_RE_403
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: PR_RE_404
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: PR_RE_408
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000040 '
    - item_type: preproc_def
      name: PR_RE_421
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000080 '
    - item_type: preproc_def
      name: PR_RE_425
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000100 '
    - item_type: preproc_def
      name: PR_RE_429
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: PR_RE_500
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000400 '
    - item_type: preproc_def
      name: PR_RE_501
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000800 '
    - item_type: preproc_def
      name: PR_RE_502
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00001000 '
    - item_type: preproc_def
      name: PR_RE_503
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00002000 '
    - item_type: preproc_def
      name: PR_RE_504
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00004000 '
    - item_type: preproc_def
      name: PR_RE_STATUS_MASK
      pos:
        line_end: 236
        line_start: 232
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: "(PR_RE_401 | PR_RE_403 | PR_RE_404 | \\\n                                   PR_RE_408
        | PR_RE_421 | PR_RE_425 | \\\n                                   PR_RE_429
        | PR_RE_500 | PR_RE_501 | \\\n                                   PR_RE_502
        | PR_RE_503 | PR_RE_504)"
    - item_type: preproc_def
      name: PR_RE_EARLY_ERROR
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: PR_RE_JUNK_REQUEST
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00020000 '
    - item_type: preproc_def
      name: PR_FL_DISABLED
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: PR_FL_STOPPED
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: PR_FL_DEF_EXPLICIT_MODE
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: PR_FL_EXPLICIT_REF
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: PR_FL_IMPLICIT_REF
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: PR_FL_PAUSED
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: PR_FL_CHECKED
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: PR_FL_BE_UNPUBLISHED
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: PR_FL_DELETED
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: PR_FL_NON_PURGEABLE
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000200  '
    structs:
    - fields:
      - name: sid
        type: unsigned int
      - name: state
        type: unsigned int
      - name: b_flags
        type: unsigned int
      - name: s_flags
        type: unsigned int
      - name: t_flags
        type: unsigned int
      - name: m_flags
        type: unsigned int
      - name: m_clen
        type: unsigned long long
      - name: m_blen
        type: unsigned long long
      item_type: struct
      name: http_snapshot
      pos:
        line_end: 266
        line_start: 256
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: state
        type: unsigned int
      - name: c_flags
        type: unsigned int
      - name: s_flags
        type: unsigned int
      - name: m_flags
        type: unsigned int
      - name: m_clen
        type: unsigned long long
      - name: m_blen
        type: unsigned long long
      item_type: struct
      name: h1_snapshot
      pos:
        line_end: 275
        line_start: 268
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: when
        type: struct timeval
      - name: (*show)(struct buffer *, const struct error_snapshot *)
        type: void
      - name: buf_ofs
        type: unsigned long long
      - name: buf_out
        type: unsigned int
      - name: buf_len
        type: unsigned int
      - name: buf_err
        type: unsigned int
      - name: buf_wrap
        type: unsigned int
      - name: '*oe'
        type: struct proxy
      - name: '*srv'
        type: struct server
      - name: ev_id
        type: unsigned int
      - name: buf_size
        type: unsigned int
      - name: src
        type: struct sockaddr_storage
      - name: ctx
        type: union error_snapshot_ctx
      - name: buf[VAR_ARRAY]
        type: char
      item_type: struct
      name: error_snapshot
      pos:
        line_end: 305
        line_start: 282
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: queue
        type: struct queue
      - name: lbprm
        type: struct lbprm_per_tgrp
      - name: '*extra_counters_fe_storage'
        type: char
      - name: '*extra_counters_be_storage'
        type: char
      item_type: struct
      name: proxy_per_tgroup
      pos:
        line_end: 313
        line_start: 308
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: mode
        type: enum pr_mode
      - name: cap
        type: char
      - name: flags
        type: unsigned int
      - name: to_log
        type: int
      - name: last_change
        type: unsigned long
      - name: global_list
        type: struct list
      - name: el
        type: struct list
      - name: maxconn
        type: unsigned int
      - name: options
        type: int
      - name: options2
        type: int
      - name: options3
        type: int
      - name: ck_opts
        type: unsigned int
      - name: fe_req_ana
        type: unsigned int
      - name: fe_rsp_ana
        type: unsigned int
      - name: http_needed
        type: unsigned int
      - name: defbe
        type: "union {\n\t\tstruct proxy *be;\t\t/* default backend, or NULL if none
          set */\n\t\tchar *name;\t\t\t/* default backend name during config parse
          */\n\t}"
      - name: '*defpx'
        type: struct proxy
      - name: acl
        type: struct list
      - name: http_req_rules
        type: struct list
      - name: http_res_rules
        type: struct list
      - name: http_after_res_rules
        type: struct list
      - name: redirect_rules
        type: struct list
      - name: switching_rules
        type: struct list
      - name: persist_rules
        type: struct list
      - name: sticking_rules
        type: struct list
      - name: storersp_rules
        type: struct list
      - name: server_rules
        type: struct list
      - name: tcp_req
        type: "struct {                                /* TCP request processing */\n\t\tunsigned
          int inspect_delay;     /* inspection delay */\n\t\tstruct list inspect_rules;
          \     /* inspection rules */\n\t\tstruct list l4_rules;           /* layer4
          rules */\n\t\tstruct list l5_rules;           /* layer5 rules */\n\t}"
      - name: tcp_rep
        type: "struct {                                /* TCP request processing */\n\t\tunsigned
          int inspect_delay;     /* inspection delay */\n\t\tstruct list inspect_rules;
          \     /* inspection rules */\n\t}"
      - name: '*srv'
        type: struct server
      - name: lbprm
        type: struct lbprm
      - name: srv_act
        type: int
      - name: load_server_state_from_file
        type: int
      - name: cookie_len
        type: int
      - name: '*ready_srv'
        type: struct server
      - name: '*cookie_domain'
        type: char
      - name: '*cookie_name'
        type: char
      - name: '*cookie_attrs'
        type: char
      - name: '*dyncookie_key'
        type: char
      - name: cookie_maxidle
        type: unsigned int
      - name: cookie_maxlife
        type: unsigned int
      - name: '*rdp_cookie_name'
        type: char
      - name: '*capture_name'
        type: char
      - name: rdp_cookie_len
        type: int
      - name: capture_namelen
        type: int
      - name: '*uri_auth'
        type: struct uri_auth
      - name: capture_len
        type: int
      - name: max_out_conns
        type: int
      - name: max_ka_queue
        type: int
      - name: clitcpka_cnt
        type: int
      - name: clitcpka_idle
        type: int
      - name: clitcpka_intvl
        type: int
      - name: srvtcpka_cnt
        type: int
      - name: srvtcpka_idle
        type: int
      - name: srvtcpka_intvl
        type: int
      - name: tot_fe_maxconn
        type: unsigned int
      - name: monitor_uri
        type: struct ist
      - name: mon_fail_cond
        type: struct list
      - name: timeout
        type: "struct {\t\t\t\t/* WARNING! check proxy_reset_timeouts() in proxy.h
          !!! */\n\t\tint client;                     /* client I/O timeout (in ticks)
          */\n\t\tint tarpit;                     /* tarpit timeout, defaults to connect
          if unspecified */\n\t\tint queue;                      /* queue timeout,
          defaults to connect if unspecified */\n\t\tint connect;                    /*
          connect timeout (in ticks) */\n\t\tint server;                     /* server
          I/O timeout (in ticks) */\n\t\tint client_hs;                  /* maximum
          time for client handshake completion */\n\t\tint httpreq;                    /*
          maximum time for complete HTTP request */\n\t\tint httpka;                     /*
          maximum time for a new HTTP request when using keep-alive */\n\t\tint check;
          \                     /* maximum time for complete check */\n\t\tint tunnel;
          \                    /* I/O timeout to use in tunnel mode (in ticks) */\n\t\tint
          clientfin;                  /* timeout to apply to client half-closed connections
          */\n\t\tint serverfin;                  /* timeout to apply to server half-closed
          connections */\n\t}"
      - name: '*id'
        type: char
      - name: '*desc'
        type: char
      - name: '*per_tgrp'
        type: struct proxy_per_tgroup
      - name: fe_sps_lim
        type: unsigned int
      - name: fullconn
        type: unsigned int
      - name: server_id_hdr_name
        type: struct ist
      - name: conn_retries
        type: int
      - name: retry_type
        type: unsigned int
      - name: redispatch_after
        type: int
      - name: down_time
        type: unsigned
      - name: (*accept)(struct stream *s)
        type: int
      - name: '*(*stream_new_from_sc)(struct session *sess, struct stconn *sc, struct
          buffer *in)'
        type: void
      - name: conn_src
        type: struct conn_src
      - name: '*default_target'
        type: enum obj_type
      - name: '*next'
        type: struct proxy
      - name: '*next_stkt_ref'
        type: struct proxy
      - name: loggers
        type: struct list
      - name: logformat
        type: struct lf_expr
      - name: logformat_sd
        type: struct lf_expr
      - name: logformat_error
        type: struct lf_expr
      - name: log_tag
        type: struct buffer
      - name: header_unique_id
        type: struct ist
      - name: format_unique_id
        type: struct lf_expr
      - name: nb_req_cap
        type: int
      - name: '*req_cap'
        type: struct cap_hdr
      - name: '*rsp_cap'
        type: struct cap_hdr
      - name: '*req_cap_pool'
        type: struct pool_head
      - name: be_counters
        type: struct be_counters
      - name: fe_counters
        type: struct fe_counters
      - name: listener_queue
        type: struct mt_list
      - name: '*table'
        type: struct stktable
      - name: '*task'
        type: struct task
      - name: tcpcheck
        type: struct tcpcheck
      - name: '*check_command'
        type: char
      - name: '*check_path'
        type: char
      - name: '*replies[HTTP_ERR_SIZE]'
        type: struct http_reply
      - name: log_count
        type: unsigned int
      - name: uuid
        type: int
      - name: backlog
        type: unsigned int
      - name: li_all
        type: unsigned int
      - name: li_paused
        type: unsigned int
      - name: li_bound
        type: unsigned int
      - name: li_ready
        type: unsigned int
      - name: li_suspended
        type: unsigned int
      - name: dispatch_addr
        type: struct sockaddr_storage
      - name: '*invalid_req'
        type: struct error_snapshot
      - name: no_options
        type: int
      - name: no_options2
        type: int
      - name: no_options3
        type: int
      - name: conf
        type: "struct {\n\t\tconst char *file;\t\t/* file where the section appears
          */\n\t\tstruct ceb_node uuid_node;\t/* place in the tree of used IDs, indexes
          <uuid> above */\n\t\tint line;\t\t\t/* line where the section appears */\n\t\tstruct
          ceb_root *used_listener_id; /* list of listener IDs in use */\n\t\tstruct
          ceb_root *used_server_id;   /* list of server IDs in use */\n\t\tstruct
          ceb_root *used_server_name; /* list of server names in use */\n\t\tstruct
          list bind;\t\t/* list of bind settings */\n\t\tstruct list listeners;\t\t/*
          list of listeners belonging to this frontend */\n\t\tstruct list errors;
          \            /* list of all custom error files */\n\t\tstruct arg_list args;
          \          /* sample arg list that need to be resolved */\n\t\tstruct ceb_node
          name_node;\t/* proxies are stored sorted by name here; indexes <id> below
          */\n\t\tstruct list lf_checks;          /* list of logformats found in the
          proxy section that needs to be checked during postparse */\n\t\tstruct log_steps
          log_steps;     /* bitfield of log origins where log should be generated
          during request handling */\n\t\tconst char *file_prev;          /* file
          of the previous instance found with the same name, or NULL */\n\t\tint line_prev;
          \                 /* line of the previous instance found with the same name,
          or 0 */\n\t\tunsigned int def_ref;           /* default proxy only refcount
          */\n\t}"
      - name: '*http_ext'
        type: struct http_ext
      - name: '*used_server_addr'
        type: struct ceb_root
      - name: '*parent'
        type: void
      - name: '*comp'
        type: struct comp
      - name: email_alert
        type: "struct {\n\t\tunion {\n\t\t\tstruct mailers *m;\t/* Mailer to send
          email alerts via */\n\t\t\tchar *name;\n\t\t} mailers;\n\t\tchar *from;\t\t\t/*
          Address to send email alerts from */\n\t\tchar *to;\t\t\t/* Address(es)
          to send email alerts to */\n\t\tchar *myhostname;\t\t/* Identity to use
          in HELO command sent to mailer */\n\t\tint level;\t\t\t/* Maximum syslog
          level of messages to send\n\t\t\t\t\t\t * email alerts for */\n\t\tint flags;
          \                     /* check mailers.h for available flags */\n\t\tstruct
          email_alertq *queues;\t/* per-mailer alerts queues */\n\t}"
      - name: '*server_state_file_name'
        type: char
      - name: filter_configs
        type: struct list
      - name: filter_sequence
        type: "struct {                                /* sequence in which declared
          filters on the proxy should be executed\n\t                                         *
          (list of filter_sequence_elt)\n\t\t\t\t\t\t */\n\t\tstruct list req;                /*
          during request handling */\n\t\tstruct list res;                /* during
          response handling */\n\t}"
      - name: guid
        type: struct guid_node
      - name: watcher_list
        type: struct mt_list
      - name: refcount
        type: uint
      - name: served
        type: int
      - name: feconn
        type: unsigned int
      - name: queueslength
        type: unsigned int
      - name: totpend
        type: int
      item_type: struct
      name: proxy
      pos:
        line_end: 536
        line_start: 315
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*cond'
        type: struct acl_cond
      - name: dynamic
        type: int
      - name: be
        type: "union {\n\t\tstruct proxy *backend;\t\t/* target backend */\n\t\tchar
          *name;\t\t\t/* target backend name during config parsing */\n\t\tstruct
          lf_expr expr;\t        /* logformat expression to use for dynamic rules
          */\n\t}"
      - name: '*file'
        type: char
      - name: line
        type: int
      item_type: struct
      name: switching_rule
      pos:
        line_end: 549
        line_start: 538
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*cond'
        type: struct acl_cond
      - name: dynamic
        type: int
      - name: srv
        type: "union {\n\t\tstruct server *ptr;\t\t/* target server */\n\t\tchar *name;\t\t\t/*
          target server name during config parsing */\n\t}"
      - name: expr
        type: struct lf_expr
      - name: '*file'
        type: char
      - name: line
        type: int
      item_type: struct
      name: server_rule
      pos:
        line_end: 562
        line_start: 551
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*cond'
        type: struct acl_cond
      - name: type
        type: int
      item_type: struct
      name: persist_rule
      pos:
        line_end: 568
        line_start: 564
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*cond'
        type: struct acl_cond
      - name: '*expr'
        type: struct sample_expr
      - name: flags
        type: int
      - name: table
        type: "union {\n\t\tstruct stktable *t;\t        /* target table */\n\t\tchar
          *name;                     /* target table name during config parsing */\n\t}"
      item_type: struct
      name: sticking_rule
      pos:
        line_end: 579
        line_start: 570
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*cond'
        type: struct acl_cond
      - name: type
        type: int
      - name: rdr_len
        type: int
      - name: '*rdr_str'
        type: char
      - name: rdr_fmt
        type: struct lf_expr
      - name: code
        type: int
      - name: flags
        type: unsigned int
      - name: cookie
        type: "union {\n\t\tstruct ist str;     /* the cookie is a string  */\n\t\tstruct
          lf_expr fmt; /* or a log-format string (possible for set-cookie only) */\n\t}"
      item_type: struct
      name: redirect_rule
      pos:
        line_end: 595
        line_start: 582
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: '*name'
        type: char
      - name: val
        type: unsigned int
      - name: cap
        type: unsigned int
      - name: checks
        type: unsigned int
      - name: mode
        type: unsigned int
      item_type: struct
      name: cfg_opt
      pos:
        line_end: 604
        line_start: 598
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    typedefs: []
    union:
    - fields:
      - name: http
        type: struct http_snapshot
      - name: h1
        type: struct h1_snapshot
      item_type: union
      name: error_snapshot_ctx
      pos:
        line_end: 280
        line_start: 277
        source_file: /src/haproxy/include/haproxy/proxy-t.h
- function_names: []
  source_file: /src/haproxy/include/haproxy/hlua-t.h
  types:
    enum:
    - enumerators:
      - name: HLUA_E_OK
        value: '0'
      - name: HLUA_E_BTMOUT
      - name: HLUA_E_AGAIN
      - name: HLUA_E_NOMEM
      - name: HLUA_E_ETMOUT
      - name: HLUA_E_YIELD
      - name: HLUA_E_ERRMSG
      - name: HLUA_E_ERR
      item_type: enum
      name: hlua_exec
      pos:
        line_end: 105
        line_start: 94
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    preproc_defs:
    - item_type: preproc_def
      name: CLASS_CORE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Core"'
    - item_type: preproc_def
      name: CLASS_TXN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"TXN"'
    - item_type: preproc_def
      name: CLASS_FETCHES
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Fetches"'
    - item_type: preproc_def
      name: CLASS_CONVERTERS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Converters"'
    - item_type: preproc_def
      name: CLASS_SOCKET
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Socket"'
    - item_type: preproc_def
      name: CLASS_CHANNEL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Channel"'
    - item_type: preproc_def
      name: CLASS_HTTP
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"HTTP"'
    - item_type: preproc_def
      name: CLASS_HTTP_MSG
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"HTTPMessage"'
    - item_type: preproc_def
      name: CLASS_HTTPCLIENT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"HTTPClient"'
    - item_type: preproc_def
      name: CLASS_MAP
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Map"'
    - item_type: preproc_def
      name: CLASS_APPLET_TCP
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"AppletTCP"'
    - item_type: preproc_def
      name: CLASS_APPLET_HTTP
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"AppletHTTP"'
    - item_type: preproc_def
      name: CLASS_PROXY
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Proxy"'
    - item_type: preproc_def
      name: CLASS_SERVER
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Server"'
    - item_type: preproc_def
      name: CLASS_LISTENER
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Listener"'
    - item_type: preproc_def
      name: CLASS_EVENT_SUB
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"EventSub"'
    - item_type: preproc_def
      name: CLASS_PATREF
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Patref"'
    - item_type: preproc_def
      name: CLASS_REGEX
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Regex"'
    - item_type: preproc_def
      name: CLASS_STKTABLE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"StickTable"'
    - item_type: preproc_def
      name: CLASS_CERTCACHE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"CertCache"'
    - item_type: preproc_def
      name: CLASS_PROXY_LIST
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"ProxyList"'
    - item_type: preproc_def
      name: CLASS_SERVER_LIST
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"ServerList"'
    - item_type: preproc_def
      name: CLASS_QUEUE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '"Queue"'
    - item_type: preproc_def
      name: HLUA_RUN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: HLUA_CTRLYIELD
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: HLUA_WAKERESWR
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: HLUA_WAKEREQWR
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: HLUA_EXIT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: HLUA_NOYIELD
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: HLUA_BUSY
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: HLUA_F_AS_STRING
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HLUA_F_MAY_USE_CHANNELS_DATA
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: HLUA_TXN_NOTERM
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: HLUA_TXN_SMP_NONE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000000 '
    - item_type: preproc_def
      name: HLUA_TXN_SMP_CTX
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: HLUA_TXN_ACT_CTX
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: HLUA_TXN_FLT_CTX
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000030 '
    - item_type: preproc_def
      name: HLUA_TXN_CTX_MASK
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00000030 '
    - item_type: preproc_def
      name: HLUA_CONCAT_BLOCSZ
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: HLUA_PATREF_FL_NONE
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: HLUA_PATREF_FL_GEN
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/haproxy/include/haproxy/hlua-t.h
      type_or_value: '0x01 '
    structs:
    - fields:
      - name: start
        type: uint32_t
      - name: burst
        type: uint32_t
      - name: cumulative
        type: uint32_t
      - name: max
        type: uint32_t
      item_type: struct
      name: hlua_timer
      pos:
        line_end: 112
        line_start: 107
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: '*T'
        type: lua_State
      - name: state_id
        type: int
      - name: Tref
        type: int
      - name: Mref
        type: int
      - name: nargs
        type: int
      - name: flags
        type: unsigned int
      - name: wake_time
        type: int
      - name: timer
        type: struct hlua_timer
      - name: '*task'
        type: struct task
      - name: com
        type: struct list
      - name: hc_list
        type: struct mt_list
      - name: node
        type: struct ebpt_node
      - name: gc_count
        type: int
      item_type: struct
      name: hlua
      pos:
        line_end: 131
        line_start: 114
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: l
        type: struct list
      - name: function_ref
        type: int
      item_type: struct
      name: hlua_init_function
      pos:
        line_end: 139
        line_start: 136
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: l
        type: struct list
      - name: '*name'
        type: char
      - name: function_ref[MAX_THREADS + 1]
        type: int
      - name: nargs
        type: int
      item_type: struct
      name: hlua_function
      pos:
        line_end: 150
        line_start: 145
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: '*fcn'
        type: struct hlua_function
      - name: '**args'
        type: char
      item_type: struct
      name: hlua_rule
      pos:
        line_end: 161
        line_start: 158
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: '*s'
        type: struct stream
      - name: '*p'
        type: struct proxy
      - name: dir
        type: int
      - name: flags
        type: int
      item_type: struct
      name: hlua_txn
      pos:
        line_end: 173
        line_start: 168
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: '*appctx'
        type: struct appctx
      - name: b
        type: luaL_Buffer
      - name: htxn
        type: struct hlua_txn
      item_type: struct
      name: hlua_appctx
      pos:
        line_end: 180
        line_start: 176
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: '*s'
        type: struct stream
      - name: '*p'
        type: struct proxy
      - name: flags
        type: unsigned int
      - name: dir
        type: int
      item_type: struct
      name: hlua_smp
      pos:
        line_end: 188
        line_start: 183
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: '*task'
        type: struct task
      - name: com
        type: struct list
      - name: wakeup_ms
        type: unsigned int
      item_type: struct
      name: hlua_sleep
      pos:
        line_end: 195
        line_start: 191
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: xref
        type: struct xref
      - name: b
        type: luaL_Buffer
      - name: tid
        type: unsigned long
      item_type: struct
      name: hlua_socket
      pos:
        line_end: 204
        line_start: 200
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: size
        type: int
      - name: len
        type: int
      item_type: struct
      name: hlua_concat
      pos:
        line_end: 209
        line_start: 206
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: '*hc'
        type: struct httpclient
      - name: sent
        type: size_t
      - name: b
        type: luaL_Buffer
      - name: by_hlua
        type: struct mt_list
      item_type: struct
      name: hlua_httpclient
      pos:
        line_end: 217
        line_start: 212
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: capabilities
        type: char
      item_type: struct
      name: hlua_proxy_list
      pos:
        line_end: 221
        line_start: 219
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: px_watch
        type: struct watcher
      - name: '*next'
        type: struct proxy
      - name: capabilities
        type: char
      item_type: struct
      name: hlua_proxy_list_iterator_context
      pos:
        line_end: 227
        line_start: 223
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: '*px'
        type: struct proxy
      item_type: struct
      name: hlua_server_list
      pos:
        line_end: 231
        line_start: 229
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: srv_watch
        type: struct watcher
      - name: '*next'
        type: struct server
      - name: '*px'
        type: struct proxy
      item_type: struct
      name: hlua_server_list_iterator_context
      pos:
        line_end: 239
        line_start: 233
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: '*ptr'
        type: struct pat_ref
      - name: flags
        type: uint16_t
      - name: curr_gen
        type: unsigned int
      item_type: struct
      name: hlua_patref
      pos:
        line_end: 252
        line_start: 245
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: '*ref'
        type: struct hlua_patref
      - name: bref
        type: struct bref
      - name: '*gen'
        type: struct pat_ref_gen
      item_type: struct
      name: hlua_patref_iterator_context
      pos:
        line_end: 259
        line_start: 254
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields: []
      item_type: struct
      name: hlua
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields: []
      item_type: struct
      name: hlua_socket
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields: []
      item_type: struct
      name: hlua_rule
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    typedefs: []
    union: []
- function_names:
  - ncb_is_null
  - ncb_orig
  - ncb_head
  - ncb_wrap
  - ncb_size
  source_file: /src/haproxy/include/haproxy/ncbuf.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CAPS_TO_ULLONG
  - capget
  source_file: /src/haproxy/include/haproxy/linuxcap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/hpack-huff.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/obj_type-t.h
  types:
    enum:
    - enumerators:
      - name: OBJ_TYPE_NONE
        value: '0'
      - name: OBJ_TYPE_LISTENER
      - name: OBJ_TYPE_PROXY
      - name: OBJ_TYPE_APPLET
      - name: OBJ_TYPE_SERVER
      - name: OBJ_TYPE_APPCTX
      - name: OBJ_TYPE_CONN
      - name: OBJ_TYPE_SRVRQ
      - name: OBJ_TYPE_SC
      - name: OBJ_TYPE_STREAM
      - name: OBJ_TYPE_HATERM
      - name: OBJ_TYPE_ACME_RSLV
      - name: OBJ_TYPE_CHECK
      - name: OBJ_TYPE_ENTRIES
      - name: OBJ_TYPE_DGRAM
      item_type: enum
      name: obj_type
      pos:
        line_end: 51
        line_start: 33
        source_file: /src/haproxy/include/haproxy/obj_type-t.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/spoe-t.h
  types:
    enum:
    - enumerators:
      - name: SPOP_ACT_T_NOOP
        value: '0'
      - name: SPOP_ACT_T_SET_VAR
        value: '1'
      - name: SPOP_ACT_TYPES
      - name: SPOP_ACT_T_UNSET_VAR
      item_type: enum
      name: spoe_action_type
      pos:
        line_end: 58
        line_start: 53
        source_file: /src/haproxy/include/haproxy/spoe-t.h
    - enumerators:
      - name: SPOP_ERR_NONE
        value: '0x00'
      - name: SPOP_ERR_INVALID
        value: '0x04'
      - name: SPOP_ERR_IO
        value: '0x01'
      - name: SPOP_ERR_TOUT
        value: '0x02'
      - name: SPOP_ERR_TOO_BIG
        value: '0x03'
      - name: SPOP_ERR_NO_VSN
        value: '0x05'
      - name: SPOP_ERR_NO_FRAME_SIZE
        value: '0x06'
      - name: SPOP_ERR_NO_CAP
        value: '0x07'
      - name: SPOP_ERR_BAD_VSN
        value: '0x08'
      - name: SPOP_ERR_BAD_FRAME_SIZE
        value: '0x09'
      - name: SPOP_ERR_INTERLACED_FRAMES
        value: '0x0b'
      - name: SPOP_ERR_FRAG_NOT_SUPPORTED
        value: '0x0a'
      - name: SPOP_ERR_UNKNOWN
        value: '0x63'
      - name: SPOP_ERR_ENTRIES
      - name: SPOP_ERR_RES
        value: '0x0d'
      - name: SPOP_ERR_FRAMEID_NOTFOUND
        value: '0x0c'
      item_type: enum
      name: spop_error
      pos:
        line_end: 78
        line_start: 61
        source_file: /src/haproxy/include/haproxy/spoe-t.h
    - enumerators:
      - name: SPOP_SCOPE_PROC
        value: '0'
      - name: SPOP_SCOPE_RES
      - name: SPOP_SCOPE_TXN
      - name: SPOP_SCOPE_SESS
      - name: SPOP_SCOPE_REQ
      item_type: enum
      name: spop_vars_scope
      pos:
        line_end: 88
        line_start: 82
        source_file: /src/haproxy/include/haproxy/spoe-t.h
    - enumerators:
      - name: SPOP_DATA_T_NULL
        value: '0'
      - name: SPOP_DATA_T_UINT32
      - name: SPOP_DATA_T_INT64
      - name: SPOP_DATA_T_BOOL
      - name: SPOP_DATA_T_INT32
      - name: SPOP_DATA_T_UINT64
      - name: SPOP_DATA_T_IPV4
      - name: SPOP_DATA_T_IPV6
      - name: SPOP_DATA_T_STR
      - name: SPOP_DATA_T_BIN
      - name: SPOP_DATA_TYPES
      item_type: enum
      name: spop_data_type
      pos:
        line_end: 117
        line_start: 105
        source_file: /src/haproxy/include/haproxy/spoe-t.h
    - enumerators:
      - name: SPOP_FRM_T_UNSET
        value: '0'
      - name: SPOP_FRM_T_HAPROXY_NOTIFY
      - name: SPOP_FRM_T_HAPROXY_HELLO
        value: '1'
      - name: SPOP_FRM_T_AGENT_HELLO
        value: '101'
      - name: SPOP_FRM_T_HAPROXY_DISCON
      - name: SPOP_FRM_T_AGENT_DISCON
      - name: SPOP_FRM_T_AGENT_ACK
      item_type: enum
      name: spop_frame_type
      pos:
        line_end: 132
        line_start: 120
        source_file: /src/haproxy/include/haproxy/spoe-t.h
    preproc_defs:
    - item_type: preproc_def
      name: SPOP_MAX_FRAME_SIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: global.tune.bufsize - 4
    - item_type: preproc_def
      name: SPOP_MIN_FRAME_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: '256'
    - item_type: preproc_def
      name: SPOP_FRAME_HDR_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SPOP_FRM_FL_FIN
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: SPOP_FRM_FL_ABRT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: SPOP_DATA_T_MASK
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: SPOP_DATA_FL_MASK
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: '0xF0'
    - item_type: preproc_def
      name: SPOP_DATA_FL_FALSE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: SPOP_DATA_FL_TRUE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: SPOE_FL_CONT_ON_ERR
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: SPOE_FL_PIPELINING
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: SPOE_FL_FORCE_SET_VAR
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/haproxy/include/haproxy/spoe-t.h
      type_or_value: '0x00000020 '
    structs:
    - fields:
      - name: '*str'
        type: char
      - name: min
        type: int
      - name: max
        type: int
      item_type: struct
      name: spop_version
      pos:
        line_end: 102
        line_start: 98
        source_file: /src/haproxy/include/haproxy/spoe-t.h
    - fields:
      - name: '*id'
        type: char
      - name: conf
        type: "struct {\n                char         *file;           /* file where
          the SPOE agent appears */\n                int           line;           /*
          line where the SPOE agent appears */\n        }"
      - name: fe
        type: struct proxy
      - name: b
        type: "union {\n\t\tstruct proxy *be;             /* Backend used by this
          agent */\n\t\tchar         *name;           /* Backend name used during
          conf parsing */\n\t}"
      - name: timeout
        type: "struct {\n\t\tunsigned int  processing;     /* Max time to process
          an event (in the main stream) */\n\t}"
      - name: '*spoe_conf'
        type: struct spoe_config
      - name: '*var_pfx'
        type: char
      - name: '*var_on_error'
        type: char
      - name: '*var_t_process'
        type: char
      - name: '*var_t_total'
        type: char
      - name: flags
        type: unsigned int
      - name: max_frame_size
        type: unsigned int
      - name: '*events'
        type: struct list
      - name: groups
        type: struct list
      - name: messages
        type: struct list
      - name: '*engine_id'
        type: char
      - name: counters
        type: "struct {\n\t\tunsigned long long nb_processed; /* # of frames processed
          by the SPOE */\n\t\tunsigned long long nb_errors;    /* # of errors during
          the processing */\n\t}"
      item_type: struct
      name: spoe_agent
      pos:
        line_end: 178
        line_start: 141
        source_file: /src/haproxy/include/haproxy/spoe-t.h
    typedefs: []
    union: []
- function_names:
  - stcol_is_generic
  - stcol_format
  - stcol_nature
  - field_format
  - field_origin
  - field_scope
  - field_nature
  - field_str
  - mkf_s32
  - mkf_u32
  - mkf_s64
  - mkf_u64
  - mkf_str
  - mkf_flt
  - MK_STATS_PROXY_DOMAIN
  - stats_get_domain
  - stats_px_get_cap
  source_file: /src/haproxy/include/haproxy/stats.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _TRC_LOC
  - __TRC_LOC
  - TRC_5ARGS
  - _trace_enabled
  - _trace
  - TRACE_ENABLED
  - TRACE
  - TRACE_ERROR
  - TRACE_USER
  - TRACE_DATA
  - TRACE_PROTO
  - TRACE_STATE
  - TRACE_DEVEL
  - TRACE_ENTER
  - TRACE_LEAVE
  - TRACE_POINT
  - TRACE_PRINTF
  - TRACE_PRINTF_LOC
  - TRACE_ENABLED
  - DBG_TRACE
  - DBG_TRACE_ERROR
  - DBG_TRACE_USER
  - DBG_TRACE_DATA
  - DBG_TRACE_PROTO
  - DBG_TRACE_STATE
  - DBG_TRACE_DEVEL
  - DBG_TRACE_ENTER
  - DBG_TRACE_LEAVE
  - DBG_TRACE_POINT
  - DBG_TRACE_PRINTF
  - DBG_TRACE_PRINTF_LOC
  - trace_state_char
  - trace_event_char
  - trace_disable
  - trace_resume
  - trace_force_resume
  - trace_reset_disable
  source_file: /src/haproxy/include/haproxy/trace.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRC_LOC
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/trace.h
      type_or_value: _TRC_LOC(__FILE__, __LINE__)
    structs: []
    typedefs: []
    union: []
- function_names:
  - mul32hi
  - div64_32
  - mulul_overflow
  - mulsz_overflow
  - array_size_or_fail
  - rotl64
  - rotr64
  - is_char4_below_opt
  - is_char4_above_opt
  - is_char4_outside
  - is_char8_below_opt
  - is_char8_above_opt
  - is_char8_outside
  - my_popcountl
  - atleast2
  - my_ffsl
  - my_flsl
  - nbits
  - my_htonll
  - my_ntohll
  - ha_bit_set
  - ha_bit_clr
  - ha_bit_flip
  - ha_bit_test
  - __full_hash
  - hex2i
  - __str2ui
  - __str2uic
  - __strl2ui
  - __strl2uic
  - __read_uint
  - __varint_bytes
  - encode_varint
  - decode_varint
  source_file: /src/haproxy/include/haproxy/intops.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: by32
        type: "struct {\n\t\t\tunsigned int w1;\n\t\t\tunsigned int w2;\n\t\t}"
      - name: by64
        type: unsigned long long
      item_type: union
      name: w = { .by64 = a }
      pos:
        line_end: 408
        line_start: 402
        source_file: /src/haproxy/include/haproxy/intops.h
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_pacing-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cc'
        type: struct quic_cc
      - name: cur
        type: ullong
      - name: credit
        type: uint
      - name: last_sent
        type: int
      item_type: struct
      name: quic_pacer
      pos:
        line_end: 12
        line_start: 6
        source_file: /src/haproxy/include/haproxy/quic_pacing-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/hpack-dec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/shctx-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHSESS_BLOCK_MIN_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/include/haproxy/shctx-t.h
      type_or_value: '128'
    - item_type: preproc_def
      name: SHSESS_MAX_DATA_LEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/include/haproxy/shctx-t.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: SHCTX_APPNAME
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/include/haproxy/shctx-t.h
      type_or_value: '"haproxy"'
    - item_type: preproc_def
      name: SHCTX_E_ALLOC_CACHE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/shctx-t.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: SHCTX_E_INIT_LOCK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/shctx-t.h
      type_or_value: '-2'
    - item_type: preproc_def
      name: SHCTX_F_REMOVING
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/shctx-t.h
      type_or_value: '0x1      '
    structs:
    - fields:
      - name: list
        type: struct list
      - name: len
        type: unsigned int
      - name: block_count
        type: unsigned int
      - name: refcount
        type: unsigned int
      - name: '*last_reserved'
        type: struct shared_block
      - name: '*last_append'
        type: struct shared_block
      - name: data[VAR_ARRAY]
        type: unsigned char
      item_type: struct
      name: shared_block
      pos:
        line_end: 45
        line_start: 37
        source_file: /src/haproxy/include/haproxy/shctx-t.h
    - fields:
      - name: avail
        type: struct list
      - name: nbav
        type: unsigned int
      - name: max_obj_size
        type: unsigned int
      - name: (*free_block)(struct shared_block *first, void *data)
        type: void
      - name: (*reserve_finish)(struct shared_context *shctx)
        type: void
      - name: '*cb_data'
        type: void
      - name: block_size
        type: short int
      - name: data[VAR_ARRAY]
        type: unsigned char
      item_type: struct
      name: shared_context
      pos:
        line_end: 60
        line_start: 47
        source_file: /src/haproxy/include/haproxy/shctx-t.h
    typedefs: []
    union: []
- function_names:
  - protocol_lookup
  - proto_fam_lookup
  - real_family
  - proto_is_quic
  source_file: /src/haproxy/include/haproxy/protocol.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HTTP_IS_CTL
  - HTTP_IS_SEP
  - HTTP_IS_LWS
  - HTTP_IS_SPHT
  - HTTP_IS_CRLF
  - HTTP_IS_TOKEN
  - HTTP_IS_VER_TOKEN
  - HTTP_IS_DIGIT
  source_file: /src/haproxy/include/haproxy/http-t.h
  types:
    enum:
    - enumerators:
      - name: HTTP_METH_OPTIONS
      - name: HTTP_METH_POST
      - name: HTTP_METH_GET
      - name: HTTP_METH_PUT
      - name: HTTP_METH_HEAD
      - name: HTTP_METH_DELETE
      - name: HTTP_METH_TRACE
      - name: HTTP_METH_CONNECT
      - name: HTTP_METH_OTHER
      item_type: enum
      name: http_meth_t
      pos:
        line_end: 71
        line_start: 61
        source_file: /src/haproxy/include/haproxy/http-t.h
    - enumerators:
      - name: HTTP_AUTH_WRONG
        value: '-1'
      - name: HTTP_AUTH_BASIC
      - name: HTTP_AUTH_UNKNOWN
        value: '0'
      - name: HTTP_AUTH_BEARER
      - name: HTTP_AUTH_DIGEST
      item_type: enum
      name: ht_auth_m
      pos:
        line_end: 80
        line_start: 74
        source_file: /src/haproxy/include/haproxy/http-t.h
    - enumerators:
      - name: ETAG_INVALID
        value: '0'
      - name: ETAG_WEAK
      - name: ETAG_STRONG
      item_type: enum
      name: http_etag_type
      pos:
        line_end: 135
        line_start: 131
        source_file: /src/haproxy/include/haproxy/http-t.h
    - enumerators:
      - name: URI_PARSER_STATE_BEFORE
        value: '0'
      - name: URI_PARSER_STATE_SCHEME_DONE
      - name: URI_PARSER_STATE_AUTHORITY_DONE
      - name: URI_PARSER_STATE_PATH_DONE
      item_type: enum
      name: http_uri_parser_state
      pos:
        line_end: 143
        line_start: 138
        source_file: /src/haproxy/include/haproxy/http-t.h
    - enumerators:
      - name: URI_PARSER_FORMAT_EMPTY
      - name: URI_PARSER_FORMAT_ABSPATH
      - name: URI_PARSER_FORMAT_ABSURI_OR_AUTHORITY
      - name: URI_PARSER_FORMAT_ASTERISK
      item_type: enum
      name: http_uri_parser_format
      pos:
        line_end: 154
        line_start: 149
        source_file: /src/haproxy/include/haproxy/http-t.h
    preproc_defs:
    - item_type: preproc_def
      name: HTTP_FLG_CTL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/http-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HTTP_FLG_SEP
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/http-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: HTTP_FLG_LWS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/http-t.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: HTTP_FLG_SPHT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/http-t.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: HTTP_FLG_CRLF
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/http-t.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: HTTP_FLG_TOK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/http-t.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: HTTP_FLG_VER
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/http-t.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: HTTP_FLG_DIG
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/http-t.h
      type_or_value: '0x80'
    structs:
    - fields:
      - name: meth
        type: enum http_meth_t
      - name: str
        type: struct buffer
      item_type: struct
      name: http_meth
      pos:
        line_end: 117
        line_start: 114
        source_file: /src/haproxy/include/haproxy/http-t.h
    - fields:
      - name: method
        type: enum ht_auth_m
      - name: method_data
        type: struct buffer
      - name: '*user'
        type: char
      item_type: struct
      name: http_auth_data
      pos:
        line_end: 124
        line_start: 119
        source_file: /src/haproxy/include/haproxy/http-t.h
    - fields:
      - name: meth
        type: enum http_meth_t
      - name: text
        type: struct ist
      item_type: struct
      name: http_method_desc
      pos:
        line_end: 129
        line_start: 126
        source_file: /src/haproxy/include/haproxy/http-t.h
    - fields:
      - name: uri
        type: struct ist
      - name: state
        type: enum http_uri_parser_state
      - name: format
        type: enum http_uri_parser_format
      item_type: struct
      name: http_uri_parser
      pos:
        line_end: 176
        line_start: 172
        source_file: /src/haproxy/include/haproxy/http-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/sample-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: flags
        type: unsigned int
      - name: data
        type: struct sample_data
      - name: ctx
        type: union smp_ctx
      - name: '*px'
        type: struct proxy
      - name: '*sess'
        type: struct session
      - name: '*strm'
        type: struct stream
      - name: opt
        type: unsigned int
      item_type: struct
      name: sample
      pos:
        line_end: 252
        line_start: 238
        source_file: /src/haproxy/include/haproxy/sample-t.h
    - fields:
      - name: '*kw'
        type: char
      - name: "(*process)(const struct arg *arg_p,\n\t               struct sample
          *smp,\n\t               void *private)"
        type: int
      - name: arg_mask
        type: uint64_t
      - name: "(*val_args)(struct arg *arg_p,\n\t                struct sample_conv
          *smp_conv,\n\t                const char *file, int line,\n\t\t\tchar **err_msg)"
        type: int
      - name: in_type
        type: unsigned int
      - name: out_type
        type: unsigned int
      - name: '*private'
        type: void
      - name: exec_ctx
        type: struct thread_exec_ctx
      item_type: struct
      name: sample_conv
      pos:
        line_end: 269
        line_start: 255
        source_file: /src/haproxy/include/haproxy/sample-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*conv'
        type: struct sample_conv
      - name: '*arg_p'
        type: struct arg
      item_type: struct
      name: sample_conv_expr
      pos:
        line_end: 276
        line_start: 272
        source_file: /src/haproxy/include/haproxy/sample-t.h
    - fields:
      - name: '*kw'
        type: char
      - name: "(*process)(const struct arg *arg_p,\n\t               struct sample
          *smp,\n\t               const char *kw,            /* fetch processing function
          */\n\t               void *private)"
        type: int
      - name: arg_mask
        type: uint64_t
      - name: "(*val_args)(struct arg *arg_p,\n\t\t\tchar **err_msg)"
        type: int
      - name: out_type
        type: unsigned long
      - name: use
        type: unsigned int
      - name: val
        type: unsigned int
      - name: '*private'
        type: void
      - name: exec_ctx
        type: struct thread_exec_ctx
      item_type: struct
      name: sample_fetch
      pos:
        line_end: 293
        line_start: 279
        source_file: /src/haproxy/include/haproxy/sample-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*fetch'
        type: struct sample_fetch
      - name: '*arg_p'
        type: struct arg
      - name: conv_exprs
        type: struct list
      item_type: struct
      name: sample_expr
      pos:
        line_end: 301
        line_start: 296
        source_file: /src/haproxy/include/haproxy/sample-t.h
    - fields:
      - name: list
        type: struct list
      - name: kw[VAR_ARRAY]
        type: struct sample_fetch
      item_type: struct
      name: sample_fetch_kw_list
      pos:
        line_end: 307
        line_start: 304
        source_file: /src/haproxy/include/haproxy/sample-t.h
    - fields:
      - name: list
        type: struct list
      - name: kw[VAR_ARRAY]
        type: struct sample_conv
      item_type: struct
      name: sample_conv_kw_list
      pos:
        line_end: 313
        line_start: 310
        source_file: /src/haproxy/include/haproxy/sample-t.h
    typedefs:
    - item_type: typedef
      name: (*sample_cast_fct)(struct sample *smp)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/haproxy/include/haproxy/sample-t.h
      type: int
    union:
    - fields:
      - name: '*p'
        type: void
      - name: i
        type: int
      - name: ll
        type: long long
      - name: d
        type: double
      - name: '*a[8]'
        type: void
      item_type: union
      name: smp_ctx
      pos:
        line_end: 233
        line_start: 227
        source_file: /src/haproxy/include/haproxy/sample-t.h
- function_names:
  - quic_tp_cid_dump
  - quic_tp_version_info_dump
  - quic_transport_params_dump
  - quic_early_transport_params_dump
  source_file: /src/haproxy/include/haproxy/quic_tp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/lb_fas.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/cfgdiag.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/queue-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: strm_flags
        type: int
      - name: queue_idx
        type: unsigned int
      - name: '*strm'
        type: struct stream
      - name: '*queue'
        type: struct queue
      - name: '*target'
        type: struct server
      - name: node
        type: struct eb32_node
      item_type: struct
      name: pendconn
      pos:
        line_end: 41
        line_start: 33
        source_file: /src/haproxy/include/haproxy/queue-t.h
    - fields:
      - name: head
        type: struct eb_root
      - name: '*px'
        type: struct proxy
      - name: '*sv'
        type: struct server
      - name: idx
        type: unsigned int
      - name: length
        type: unsigned int
      item_type: struct
      name: queue
      pos:
        line_end: 50
        line_start: 43
        source_file: /src/haproxy/include/haproxy/queue-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/http_htx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/global-t.h
  types:
    enum:
    - enumerators:
      - name: NO_THREADGROUP_TAKEOVER
        value: '0'
      - name: FULL_THREADGROUP_TAKEOVER
        value: '2'
      - name: RESTRICTED_THREADGROUP_TAKEOVER
        value: '1'
      item_type: enum
      name: threadgroup_takeover
      pos:
        line_end: 119
        line_start: 115
        source_file: /src/haproxy/include/haproxy/global-t.h
    preproc_defs:
    - item_type: preproc_def
      name: MODE_DEBUG
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: MODE_DAEMON
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: MODE_QUIET
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: MODE_CHECK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: MODE_VERBOSE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: MODE_STARTING
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: MODE_FOREGROUND
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: MODE_MWORKER
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x80    '
    - item_type: preproc_def
      name: MODE_ZERO_WARNING
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x200    '
    - item_type: preproc_def
      name: MODE_DIAG
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x400   '
    - item_type: preproc_def
      name: MODE_CHECK_CONDITION
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x800    '
    - item_type: preproc_def
      name: MODE_STOPPING
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x1000  '
    - item_type: preproc_def
      name: MODE_DUMP_LIBS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x2000  '
    - item_type: preproc_def
      name: MODE_DUMP_KWD
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x4000  '
    - item_type: preproc_def
      name: MODE_DUMP_CFG
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x8000  '
    - item_type: preproc_def
      name: MODE_DUMP_NB_L
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x10000 '
    - item_type: preproc_def
      name: MODE_DISCOVERY
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x20000 '
    - item_type: preproc_def
      name: LSTCHK_SYSADM
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: "0x00000001\t"
    - item_type: preproc_def
      name: LSTCHK_NETADM
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: "0x00000002\t"
    - item_type: preproc_def
      name: GTUNE_USE_SELECT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: GTUNE_USE_POLL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: GTUNE_USE_EPOLL
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: GTUNE_USE_KQUEUE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: GTUNE_USE_SPLICE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: GTUNE_USE_GAI
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: GTUNE_LIMITED_QUIC
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<6)
    - item_type: preproc_def
      name: GTUNE_RESOLVE_DONTFAIL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<7)
    - item_type: preproc_def
      name: GTUNE_SOCKET_TRANSFER
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<8)
    - item_type: preproc_def
      name: GTUNE_NOEXIT_ONFAILURE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<9)
    - item_type: preproc_def
      name: GTUNE_USE_SYSTEMD
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<10)
    - item_type: preproc_def
      name: GTUNE_BUSY_POLLING
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<11)
    - item_type: preproc_def
      name: GTUNE_PURGE_DEFAULTS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: GTUNE_SET_DUMPABLE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<13)
    - item_type: preproc_def
      name: GTUNE_USE_EVPORTS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<14)
    - item_type: preproc_def
      name: GTUNE_STRICT_LIMITS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<15)
    - item_type: preproc_def
      name: GTUNE_INSECURE_FORK
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<16)
    - item_type: preproc_def
      name: GTUNE_INSECURE_SETUID
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<17)
    - item_type: preproc_def
      name: GTUNE_FD_ET
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<18)
    - item_type: preproc_def
      name: GTUNE_SCHED_LOW_LATENCY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<19)
    - item_type: preproc_def
      name: GTUNE_IDLE_POOL_SHARED
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<20)
    - item_type: preproc_def
      name: GTUNE_DISABLE_H2_WEBSOCKET
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<21)
    - item_type: preproc_def
      name: GTUNE_DISABLE_ACTIVE_CLOSE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<22)
    - item_type: preproc_def
      name: GTUNE_QUICK_EXIT
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<23)
    - item_type: preproc_def
      name: GTUNE_COLLECT_LIBS
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<24)
    - item_type: preproc_def
      name: GTUNE_USE_FAST_FWD
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<26)
    - item_type: preproc_def
      name: GTUNE_LISTENER_MQ_FAIR
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<27)
    - item_type: preproc_def
      name: GTUNE_LISTENER_MQ_OPT
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<28)
    - item_type: preproc_def
      name: GTUNE_LISTENER_MQ_ANY
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (GTUNE_LISTENER_MQ_FAIR | GTUNE_LISTENER_MQ_OPT)
    - item_type: preproc_def
      name: GTUNE_NO_KTLS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<29)
    - item_type: preproc_def
      name: GTUNE_NO_MAX_COUNTER
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1<<30)
    - item_type: preproc_def
      name: GDBG_CPU_AFFINITY
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: (1U<< 0)
    - item_type: preproc_def
      name: NO_ZERO_COPY_FWD
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: NO_ZERO_COPY_FWD_PT
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: NO_ZERO_COPY_FWD_H1_RCV
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0004 '
    - item_type: preproc_def
      name: NO_ZERO_COPY_FWD_H1_SND
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0008 '
    - item_type: preproc_def
      name: NO_ZERO_COPY_FWD_H2_RCV
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0010 '
    - item_type: preproc_def
      name: NO_ZERO_COPY_FWD_H2_SND
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0020 '
    - item_type: preproc_def
      name: NO_ZERO_COPY_FWD_QUIC_RCV
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0040 '
    - item_type: preproc_def
      name: NO_ZERO_COPY_FWD_QUIC_SND
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0080 '
    - item_type: preproc_def
      name: NO_ZERO_COPY_FWD_FCGI_RCV
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0100 '
    - item_type: preproc_def
      name: NO_ZERO_COPY_FWD_FCGI_SND
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0200 '
    - item_type: preproc_def
      name: NO_ZERO_COPY_FWD_APPLET
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0400 '
    - item_type: preproc_def
      name: WARN_ANY
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: WARN_FORCECLOSE_DEPRECATED
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: WARN_EXEC_PATH
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x00000004 '
    structs:
    - fields:
      - name: uid
        type: int
      - name: gid
        type: int
      - name: external_check
        type: int
      - name: nbthread
        type: int
      - name: mode
        type: int
      - name: hard_stop_after
        type: unsigned int
      - name: grace_delay
        type: unsigned int
      - name: close_spread_time
        type: unsigned int
      - name: close_spread_end
        type: unsigned int
      - name: maxconn
        type: int
      - name: maxsslconn
        type: int
      - name: ssl_session_max_cost
        type: int
      - name: ssl_handshake_max_cost
        type: int
      - name: ssl_used_frontend
        type: int
      - name: ssl_used_backend
        type: int
      - name: ssl_used_async_engines
        type: int
      - name: ssl_server_verify
        type: unsigned int
      - name: comp_rate_lim
        type: int
      - name: maxpipes
        type: int
      - name: maxsock
        type: int
      - name: rlimit_nofile
        type: int
      - name: rlimit_memmax_all
        type: int
      - name: rlimit_memmax
        type: int
      - name: maxzlibmem
        type: long
      - name: nbtgroups
        type: int
      - name: spread_checks
        type: int
      - name: max_spread_checks
        type: int
      - name: max_syslog_len
        type: int
      - name: '*chroot'
        type: char
      - name: '*pidfile'
        type: char
      - name: '*node'
        type: char
      - name: localpeer_cmdline
        type: int
      - name: fd_hard_limit
        type: int
      - name: log_tag
        type: struct buffer
      - name: loggers
        type: struct list
      - name: '*log_send_hostname'
        type: char
      - name: '*server_state_base'
        type: char
      - name: '*server_state_file'
        type: char
      - name: '*stats_file'
        type: char
      - name: '*shm_stats_file'
        type: char
      - name: cluster_secret[16]
        type: unsigned char
      - name: tune
        type: "struct {\n\t\tint maxpollevents; /* max number of poll events at once
          */\n\t\tint max_rules_at_once; /* max number of rules executed in a single
          evaluation loop */\n\t\tint maxaccept;     /* max number of consecutive
          accept() */\n\t\tint options;       /* various tuning options */\n\t\tuint
          debug;        /* various debugging options (GDBG_*) */\n\t\tint runqueue_depth;/*
          max number of tasks to run at once */\n\t\tuint recv_enough;  /* how many
          input bytes at once are \"enough\" */\n\t\tuint bufsize;      /* buffer
          size in bytes, defaults to BUFSIZE */\n\t\tuint bufsize_small;/* small buffer
          size in bytes */\n\t\tuint bufsize_large;/* large buffer size in bytes */\n\t\tint
          maxrewrite;    /* buffer max rewrite size in bytes, defaults to MAXREWRITE
          */\n\t\tint reserved_bufs; /* how many buffers can only be allocated for
          response */\n\t\tint buf_limit;     /* if not null, how many total buffers
          may only be allocated */\n\t\tuint client_sndbuf;   /* set client sndbuf
          to this value if not null */\n\t\tuint client_rcvbuf;   /* set client rcvbuf
          to this value if not null */\n\t\tuint server_sndbuf;   /* set server sndbuf
          to this value if not null */\n\t\tuint server_rcvbuf;   /* set server rcvbuf
          to this value if not null */\n\t\tuint client_notsent_lowat;   /* set client
          tcp_notsent_lowat to this value if not null */\n\t\tuint server_notsent_lowat;
          \  /* set client tcp_notsent_lowat to this value if not null */\n\t\tuint
          frontend_sndbuf; /* set frontend dgram sndbuf to this value if not null
          */\n\t\tuint frontend_rcvbuf; /* set frontend dgram rcvbuf to this value
          if not null */\n\t\tuint backend_sndbuf;  /* set backend dgram sndbuf to
          this value if not null */\n\t\tuint backend_rcvbuf;  /* set backend dgram
          rcvbuf to this value if not null */\n\t\tuint pipesize;     /* pipe size
          in bytes, system defaults if zero */\n\t\tint max_http_hdr;  /* max number
          of HTTP headers, use MAX_HTTP_HDR if zero */\n\t\tint requri_len;    /*
          max len of request URI, use REQURI_LEN if zero */\n\t\tint cookie_len;    /*
          max length of cookie captures */\n\t\tint pattern_cache; /* max number of
          entries in the pattern cache. */\n\t\tint sslcachesize;  /* SSL cache size
          in session, defaults to 20000 */\n\t\tint comp_maxlevel;    /* max HTTP
          compression level */\n\t\tuint glitch_kill_maxidle; /* have glitches kill
          only below this level of idle */\n\t\tint pool_low_ratio;   /* max ratio
          of FDs used before we stop using new idle connections */\n\t\tint pool_high_ratio;
          \ /* max ratio of FDs used before we start killing idle connections when
          creating new connections */\n\t\tint pool_low_count;   /* max number of
          opened fd before we stop using new idle connections */\n\t\tint pool_high_count;
          \ /* max number of opened fd before we start killing idle connections when
          creating new connections */\n\t\tsize_t pool_cache_size;    /* per-thread
          cache size per pool (defaults to CONFIG_HAP_POOL_CACHE_SIZE) */\n\t\tint
          renice_startup;     /* startup nice()+100 value during startup; 0 = unset
          */\n\t\tint renice_runtime;     /* startup nice()+100 value during runtime;
          0 = unset */\n\t\tunsigned short idle_timer; /* how long before an empty
          buffer is considered idle (ms) */\n\t\tunsigned short no_zero_copy_fwd;
          /* Flags to disable zero-copy fast-forwarding (global & per-protocols) */\n\t\tint
          nb_stk_ctr;       /* number of stick counters, defaults to MAX_SESS_STKCTR
          */\n\t\tint default_shards; /* default shards for listeners, or -1 (by-thread)
          or -2 (by-group) */\n\t\tuint max_checks_per_thread; /* if >0, no more than
          this concurrent checks per thread */\n\t\tuint ring_queues;   /* if >0,
          #ring queues, otherwise equals #thread groups */\n\t\tuint cli_max_payload_sz;
          /* The max payload size for the CLI */\n\t\tint streams_elasticity;  /*
          percent of advertised streams to connection; 0=no limit */\n\t\tenum threadgroup_takeover
          tg_takeover; /* Policy for threadgroup takeover */\n\t}"
      - name: unix_bind
        type: "struct {\n\t\tchar *prefix;           /* path prefix of unix bind socket
          */\n\t\tstruct {                /* UNIX socket permissions */\n\t\t\tuid_t
          uid;      /* -1 to leave unchanged */\n\t\t\tgid_t gid;      /* -1 to leave
          unchanged */\n\t\t\tmode_t mode;    /* 0 to leave unchanged */\n\t\t} ux;\n\t}"
      - name: '*cli_fe'
        type: struct proxy
      - name: numa_cpu_mapping
        type: int
      - name: thread_limit
        type: int
      - name: prealloc_fd
        type: int
      - name: clt_privileged_ports
        type: uchar
      - name: argc
        type: unsigned char
      - name: est_fd_usage
        type: int
      - name: cfg_curr_line
        type: int
      - name: '*cfg_curr_file'
        type: char
      - name: '*cfg_curr_section'
        type: char
      - name: '**argv'
        type: char
      - name: conn_per_sec
        type: struct freq_ctr
      - name: sess_per_sec
        type: struct freq_ctr
      - name: ssl_per_sec
        type: struct freq_ctr
      - name: ssl_fe_keys_per_sec
        type: struct freq_ctr
      - name: ssl_be_keys_per_sec
        type: struct freq_ctr
      - name: comp_bps_in
        type: struct freq_ctr
      - name: comp_bps_out
        type: struct freq_ctr
      - name: sslconns
        type: uint
      - name: cps_lim
        type: int
      - name: sps_lim
        type: int
      - name: ssl_lim
        type: int
      - name: ssl_fe_keys_max
        type: int
      - name: shctx_lookups
        type: unsigned int
      - name: req_count
        type: unsigned int
      - name: last_checks
        type: int
      - name: anon_key
        type: uint32_t
      - name: maxthrpertgroup
        type: int
      item_type: struct
      name: global
      pos:
        line_end: 271
        line_start: 130
        source_file: /src/haproxy/include/haproxy/global-t.h
    typedefs: []
    union: []
- function_names:
  - sc_ic
  - sc_oc
  - sc_ib
  - sc_ob
  - sc_have_buff
  - sc_need_buff
  - sc_used_buff
  - sc_have_room
  - sc_need_room
  - sc_strm_task
  - sc_opposite
  - sc_set_state
  - sc_state_bit
  - sc_state_in
  - sc_conn_ready
  - sc_is_conn_error
  - sc_alloc_ibuf
  - sc_src
  - sc_dst
  - sc_get_src
  - sc_get_dst
  - sc_must_kill_conn
  - sc_is_recv_allowed
  - sc_sync_recv
  - sc_sync_send
  - sc_update
  - sc_state_str
  - sc_is_send_allowed
  - sc_rcv_may_expire
  - sc_snd_may_expire
  - sc_ep_rcv_ex
  - sc_ep_snd_ex
  - sc_check_timeouts
  - sc_set_hcto
  - sc_schedule_abort
  - sc_schedule_shutdown
  source_file: /src/haproxy/include/haproxy/sc_strm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/hstream.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/dgram-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: struct dgram_data_cb
      - name: '*owner'
        type: void
      - name: t
        type: "union {\t\t\t\t\t/* definitions which depend on connection type */\n\t\tstruct
          {\t\t\t/*** information used by socket-based dgram ***/\n\t\t\tint fd;\t\t\t/*
          file descriptor */\n\t\t} sock;\n\t}"
      - name: addr
        type: "struct {\n\t\tstruct sockaddr_storage from;\t/* client address, or
          address to spoof when connecting to the server */\n\t\tstruct sockaddr_storage
          to;\t/* address reached by the client, or address to connect to */\n\t}"
      item_type: struct
      name: dgram_conn
      pos:
        line_end: 44
        line_start: 31
        source_file: /src/haproxy/include/haproxy/dgram-t.h
    - fields:
      - name: (*recv)(struct dgram_conn *dgram)
        type: void
      - name: (*send)(struct dgram_conn *dgram)
        type: void
      item_type: struct
      name: dgram_data_cb
      pos:
        line_end: 52
        line_start: 49
        source_file: /src/haproxy/include/haproxy/dgram-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/http_client-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HTTPCLIENT_FA_STOP
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/http_client-t.h
      type_or_value: '0x00000001   '
    - item_type: preproc_def
      name: HTTPCLIENT_FA_AUTOKILL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/http_client-t.h
      type_or_value: '0x00000002   '
    - item_type: preproc_def
      name: HTTPCLIENT_FA_DRAIN_REQ
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/http_client-t.h
      type_or_value: '0x00000004   '
    - item_type: preproc_def
      name: HTTPCLIENT_FS_STARTED
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/http_client-t.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: HTTPCLIENT_FS_ENDED
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/http_client-t.h
      type_or_value: '0x00020000 '
    - item_type: preproc_def
      name: HTTPCLIENT_O_HTTPPROXY
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/http_client-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: HTTPCLIENT_O_RES_HTX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/http_client-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: HTTPCLIENT_USERAGENT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/http_client-t.h
      type_or_value: '"HAProxy"'
    structs:
    - fields:
      - name: req
        type: "struct {\n\t\tstruct ist url;                /* URL of the request
          */\n\t\tenum http_meth_t meth;       /* method of the request */\n\t\tstruct
          buffer buf;             /* output buffer, HTX */\n\t}"
      - name: res
        type: "struct {\n\t\tstruct ist vsn;\n\t\tuint16_t status;\n\t\tstruct ist
          reason;\n\t\tstruct http_hdr *hdrs;         /* headers */\n\t\tstruct buffer
          buf;             /* input buffer, raw HTTP */\n\t}"
      - name: ops
        type: "struct {\n\t\t/* callbacks used to send the request, */\n\t\tvoid (*req_payload)(struct
          httpclient *hc);          /* send a payload */\n\n\t\t/* callbacks used
          to receive the response, if not set, the IO\n\t\t * handler will consume
          the data without doing anything */\n\t\tvoid (*res_stline)(struct httpclient
          *hc);          /* start line received */\n\t\tvoid (*res_headers)(struct
          httpclient *hc);         /* headers received */\n\t\tvoid (*res_payload)(struct
          httpclient *hc);         /* payload received */\n\t\tvoid (*res_end)(struct
          httpclient *hc);             /* end of the response */\n\t}"
      - name: '*dst'
        type: struct sockaddr_storage
      - name: '*appctx'
        type: struct appctx
      - name: timeout_server
        type: int
      - name: '*caller'
        type: void
      - name: flags
        type: unsigned int
      - name: options
        type: unsigned int
      - name: '*px'
        type: struct proxy
      - name: '*srv_raw'
        type: struct server
      item_type: struct
      name: httpclient
      pos:
        line_end: 40
        line_start: 5
        source_file: /src/haproxy/include/haproxy/http_client-t.h
    typedefs: []
    union: []
- function_names:
  - fix_version
  - fix_tagid
  source_file: /src/haproxy/include/haproxy/fix.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - b_is_null
  - b_orig
  - b_size
  - b_wrap
  - b_data
  - b_room
  - b_full
  - b_add_ofs
  - b_rel_ofs
  - __b_stop_ofs
  - __b_stop
  - b_stop_ofs
  - b_stop
  - __b_peek_ofs
  - __b_peek
  - b_peek_ofs
  - b_peek
  - __b_head_ofs
  - __b_head
  - b_head_ofs
  - b_head
  - __b_tail_ofs
  - __b_tail
  - b_tail_ofs
  - b_tail
  - b_next_ofs
  - b_next
  - b_dist
  - b_almost_full
  - b_space_wraps
  - b_contig_data
  - b_contig_space
  - b_reset
  - b_make
  - b_sub
  - b_add
  - b_set_data
  - b_del
  - b_realign_if_empty
  - b_putchr
  - b_putblk
  - b_force_xfer
  - b_getblk_nc
  - b_peek_varint
  - br_init
  - br_size
  - br_full
  - br_count
  - br_single
  - br_head_idx
  - br_tail_idx
  - br_head
  - br_tail
  - br_data
  - br_has_room
  - br_tail_add
  - br_head_pick
  - br_del_head
  - bl_users
  - bl_size
  - bl_used
  - bl_avail
  - bl_init
  - bl_put
  source_file: /src/haproxy/include/haproxy/buf.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_frame-t.h
  types:
    enum:
    - enumerators:
      - name: QUIC_FT_PADDING
        value: '0x00'
      - name: QUIC_FT_ACK_ECN
        value: '0x03'
      - name: QUIC_FT_NEW_TOKEN
        value: '0x07'
      - name: QUIC_FT_STREAM_F
        value: '0x0f'
      - name: QUIC_FT_STREAM_B
        value: '0x0b'
      - name: QUIC_FT_MAX_STREAMS_UNI
        value: '0x13'
      - name: QUIC_FT_STREAMS_BLOCKED_UNI
        value: '0x17'
      - name: QUIC_FT_PATH_RESPONSE
        value: '0x1b'
      - name: QUIC_FT_ACK
        value: '0x02'
      - name: QUIC_FT_CRYPTO
        value: '0x06'
      - name: QUIC_FT_STREAM_E
        value: '0x0e'
      - name: QUIC_FT_STREAM_A
        value: '0x0a'
      - name: QUIC_FT_MAX_STREAMS_BIDI
        value: '0x12'
      - name: QUIC_FT_STREAMS_BLOCKED_BIDI
        value: '0x16'
      - name: QUIC_FT_PATH_CHALLENGE
        value: '0x1a'
      - name: QUIC_FT_HANDSHAKE_DONE
        value: '0x1e'
      - name: QUIC_FT_MAX
      - name: QUIC_FT_PING
        value: '0x01'
      - name: QUIC_FT_STOP_SENDING
        value: '0x05'
      - name: QUIC_FT_STREAM_9
        value: '0x09'
      - name: QUIC_FT_STREAM_D
        value: '0x0d'
      - name: QUIC_FT_MAX_STREAM_DATA
        value: '0x11'
      - name: QUIC_FT_STREAM_DATA_BLOCKED
        value: '0x15'
      - name: QUIC_FT_RETIRE_CONNECTION_ID
        value: '0x19'
      - name: QUIC_FT_CONNECTION_CLOSE_APP
        value: '0x1d'
      - name: QUIC_FT_RESET_STREAM
        value: '0x04'
      - name: QUIC_FT_STREAM_8
        value: '0x08'
      - name: QUIC_FT_MAX_DATA
        value: '0x10'
      - name: QUIC_FT_STREAM_C
        value: '0x0c'
      - name: QUIC_FT_DATA_BLOCKED
        value: '0x14'
      - name: QUIC_FT_NEW_CONNECTION_ID
        value: '0x18'
      - name: QUIC_FT_CONNECTION_CLOSE
        value: '0x1c'
      item_type: enum
      name: quic_frame_type
      pos:
        line_end: 81
        line_start: 45
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_FT_PKT_TYPE_I_BITMASK
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: (1 << QUIC_PACKET_TYPE_INITIAL)
    - item_type: preproc_def
      name: QUIC_FT_PKT_TYPE_0_BITMASK
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: (1 << QUIC_PACKET_TYPE_0RTT)
    - item_type: preproc_def
      name: QUIC_FT_PKT_TYPE_H_BITMASK
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: (1 << QUIC_PACKET_TYPE_HANDSHAKE)
    - item_type: preproc_def
      name: QUIC_FT_PKT_TYPE_1_BITMASK
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: (1 << QUIC_PACKET_TYPE_SHORT)
    - item_type: preproc_def
      name: QUIC_FT_PKT_TYPE_IH01_BITMASK
      pos:
        line_end: 98
        line_start: 95
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: "(QUIC_FT_PKT_TYPE_I_BITMASK | QUIC_FT_PKT_TYPE_H_BITMASK | \\\n\t
        QUIC_FT_PKT_TYPE_0_BITMASK | QUIC_FT_PKT_TYPE_1_BITMASK)"
    - item_type: preproc_def
      name: QUIC_FT_PKT_TYPE_IH_1_BITMASK
      pos:
        line_end: 102
        line_start: 99
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: "(QUIC_FT_PKT_TYPE_I_BITMASK | QUIC_FT_PKT_TYPE_H_BITMASK | \\\n\t
        QUIC_FT_PKT_TYPE_1_BITMASK)"
    - item_type: preproc_def
      name: QUIC_FT_PKT_TYPE___01_BITMASK
      pos:
        line_end: 105
        line_start: 103
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: (QUIC_FT_PKT_TYPE_0_BITMASK | QUIC_FT_PKT_TYPE_1_BITMASK)
    - item_type: preproc_def
      name: QUIC_FT_PKT_TYPE____1_BITMASK
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: QUIC_FT_PKT_TYPE_1_BITMASK
    - item_type: preproc_def
      name: QUIC_FL_TX_FRAME_ACKED
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: QUIC_STREAM_FRAME_TYPE_FIN_BIT
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: QUIC_STREAM_FRAME_TYPE_LEN_BIT
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: QUIC_STREAM_FRAME_TYPE_OFF_BIT
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: QUIC_STREAM_FRAME_ID_INITIATOR_BIT
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: QUIC_STREAM_FRAME_ID_DIR_BIT
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: QUIC_PATH_CHALLENGE_LEN
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '8'
    - item_type: preproc_def
      name: QUIC_CC_REASON_PHRASE_MAXLEN
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '64'
    - item_type: preproc_def
      name: QC_ERR_NO_ERROR
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: QC_ERR_INTERNAL_ERROR
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: QC_ERR_CONNECTION_REFUSED
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: QC_ERR_FLOW_CONTROL_ERROR
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: QC_ERR_STREAM_LIMIT_ERROR
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: QC_ERR_STREAM_STATE_ERROR
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: QC_ERR_FINAL_SIZE_ERROR
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: QC_ERR_FRAME_ENCODING_ERROR
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: QC_ERR_TRANSPORT_PARAMETER_ERROR
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: QC_ERR_CONNECTION_ID_LIMIT_ERROR
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: QC_ERR_PROTOCOL_VIOLATION
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x0a'
    - item_type: preproc_def
      name: QC_ERR_INVALID_TOKEN
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x0b'
    - item_type: preproc_def
      name: QC_ERR_APPLICATION_ERROR
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x0c'
    - item_type: preproc_def
      name: QC_ERR_CRYPTO_BUFFER_EXCEEDED
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x0d'
    - item_type: preproc_def
      name: QC_ERR_KEY_UPDATE_ERROR
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x0e'
    - item_type: preproc_def
      name: QC_ERR_AEAD_LIMIT_REACHED
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: QC_ERR_NO_VIABLE_PATH
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: QC_ERR_CRYPTO_ERROR
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
      type_or_value: '0x100'
    structs:
    - fields:
      - name: len
        type: size_t
      item_type: struct
      name: qf_padding
      pos:
        line_end: 127
        line_start: 125
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: largest_ack
        type: uint64_t
      - name: ack_delay
        type: uint64_t
      - name: ack_range_num
        type: uint64_t
      - name: first_ack_range
        type: uint64_t
      item_type: struct
      name: qf_ack
      pos:
        line_end: 134
        line_start: 129
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: ack_delay
        type: uint64_t
      - name: '*arngs'
        type: struct quic_arngs
      item_type: struct
      name: qf_tx_ack
      pos:
        line_end: 140
        line_start: 137
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: id
        type: uint64_t
      - name: app_error_code
        type: uint64_t
      - name: final_size
        type: uint64_t
      item_type: struct
      name: qf_reset_stream
      pos:
        line_end: 146
        line_start: 142
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: id
        type: uint64_t
      - name: app_error_code
        type: uint64_t
      item_type: struct
      name: qf_stop_sending
      pos:
        line_end: 151
        line_start: 148
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: list
        type: struct list
      - name: offset_node
        type: struct eb64_node
      - name: len
        type: uint64_t
      - name: '*qel'
        type: struct quic_enc_level
      - name: '*data'
        type: unsigned char
      item_type: struct
      name: qf_crypto
      pos:
        line_end: 159
        line_start: 153
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: len
        type: uint64_t
      - name: w_data[QUIC_TOKEN_LEN]
        type: unsigned char
      - name: '*r_data'
        type: unsigned char
      item_type: struct
      name: qf_new_token
      pos:
        line_end: 167
        line_start: 161
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: id
        type: uint64_t
      - name: '*stream'
        type: void
      - name: '*buf'
        type: struct buffer
      - name: offset
        type: uint64_t
      - name: len
        type: uint64_t
      - name: '*data'
        type: unsigned char
      - name: dup
        type: char
      item_type: struct
      name: qf_stream
      pos:
        line_end: 191
        line_start: 169
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: max_data
        type: uint64_t
      item_type: struct
      name: qf_max_data
      pos:
        line_end: 195
        line_start: 193
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: id
        type: uint64_t
      - name: max_stream_data
        type: uint64_t
      item_type: struct
      name: qf_max_stream_data
      pos:
        line_end: 200
        line_start: 197
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: max_streams
        type: uint64_t
      item_type: struct
      name: qf_max_streams
      pos:
        line_end: 204
        line_start: 202
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: limit
        type: uint64_t
      item_type: struct
      name: qf_data_blocked
      pos:
        line_end: 208
        line_start: 206
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: id
        type: uint64_t
      - name: limit
        type: uint64_t
      item_type: struct
      name: qf_stream_data_blocked
      pos:
        line_end: 213
        line_start: 210
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: limit
        type: uint64_t
      item_type: struct
      name: qf_streams_blocked
      pos:
        line_end: 217
        line_start: 215
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: seq_num
        type: uint64_t
      - name: retire_prior_to
        type: uint64_t
      - name: cid
        type: "struct {\n\t\tunsigned char len;\n\t\tconst unsigned char *data;\n\t}"
      - name: '*stateless_reset_token'
        type: unsigned char
      item_type: struct
      name: qf_new_connection_id
      pos:
        line_end: 227
        line_start: 219
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: seq_num
        type: uint64_t
      item_type: struct
      name: qf_retire_connection_id
      pos:
        line_end: 231
        line_start: 229
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: data[QUIC_PATH_CHALLENGE_LEN]
        type: unsigned char
      item_type: struct
      name: qf_path_challenge
      pos:
        line_end: 235
        line_start: 233
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: data[QUIC_PATH_CHALLENGE_LEN]
        type: unsigned char
      item_type: struct
      name: qf_path_challenge_response
      pos:
        line_end: 239
        line_start: 237
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: error_code
        type: uint64_t
      - name: frame_type
        type: uint64_t
      - name: reason_phrase_len
        type: uint64_t
      - name: reason_phrase[QUIC_CC_REASON_PHRASE_MAXLEN]
        type: unsigned char
      item_type: struct
      name: qf_connection_close
      pos:
        line_end: 246
        line_start: 241
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: error_code
        type: uint64_t
      - name: reason_phrase_len
        type: uint64_t
      - name: reason_phrase[QUIC_CC_REASON_PHRASE_MAXLEN]
        type: unsigned char
      item_type: struct
      name: qf_connection_close_app
      pos:
        line_end: 252
        line_start: 248
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: params
        type: struct quic_transport_params
      item_type: struct
      name: qf_qx_transport_parameters
      pos:
        line_end: 256
        line_start: 254
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*pkt'
        type: struct quic_tx_packet
      - name: type
        type: uint64_t
      - name: '*origin'
        type: struct quic_frame
      - name: reflist
        type: struct list
      - name: ref
        type: struct list
      - name: flags
        type: unsigned int
      - name: loss_count
        type: unsigned int
      item_type: struct
      name: quic_frame
      pos:
        line_end: 292
        line_start: 258
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: code
        type: uint64_t
      - name: app
        type: int
      item_type: struct
      name: quic_err
      pos:
        line_end: 299
        line_start: 296
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/protocol-t.h
  types:
    enum:
    - enumerators:
      - name: PROTO_TYPE_STREAM
      - name: PROTO_TYPE_DGRAM
      - name: PROTO_NUM_TYPES
      item_type: enum
      name: proto_type
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/haproxy/include/haproxy/protocol-t.h
    - enumerators:
      - name: HA_PROTO_NONE
        value: '0x00'
      - name: HA_PROTO_QUIC
        value: '0x04'
      - name: HA_PROTO_UDP
        value: '0x02'
      - name: HA_PROTO_TCP
        value: '0x01'
      - name: HA_PROTO_ANY
        value: '0xff'
      item_type: enum
      name: ha_proto
      pos:
        line_end: 179
        line_start: 171
        source_file: /src/haproxy/include/haproxy/protocol-t.h
    preproc_defs:
    - item_type: preproc_def
      name: AF_CUST_EXISTING_FD
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: (AF_MAX + 1)
    - item_type: preproc_def
      name: AF_CUST_SOCKPAIR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: (AF_MAX + 2)
    - item_type: preproc_def
      name: AF_CUST_RHTTP_SRV
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: (AF_MAX + 3)
    - item_type: preproc_def
      name: AF_CUST_ABNS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: (AF_MAX + 4)
    - item_type: preproc_def
      name: AF_CUST_ABNSZ
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: (AF_MAX + 5)
    - item_type: preproc_def
      name: AF_CUST_MAX
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: (AF_MAX + 6)
    - item_type: preproc_def
      name: PROTO_NAME_LEN
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: '16'
    - item_type: preproc_def
      name: CONNECT_HAS_DATA
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: CONNECT_DELACK_SMART_CONNECT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: CONNECT_DELACK_ALWAYS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: CONNECT_CAN_USE_TFO
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: PROTO_F_REUSEPORT_SUPPORTED
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: PROTO_F_REUSEPORT_TESTED
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/protocol-t.h
      type_or_value: '0x00000002 '
    structs:
    - fields:
      - name: name[PROTO_NAME_LEN]
        type: char
      - name: sock_domain
        type: int
      - name: sock_family
        type: sa_family_t
      - name: real_family
        type: sa_family_t
      - name: l3_addrlen
        type: ushort
      - name: sock_addrlen
        type: socklen_t
      - name: (*addrcmp)(const struct sockaddr_storage *, const struct sockaddr_storage
          *)
        type: int
      - name: (*bind)(struct receiver *rx, char **errmsg)
        type: int
      - name: (*get_src)(int fd, struct sockaddr *, socklen_t, int dir)
        type: int
      - name: (*get_dst)(int fd, struct sockaddr *, socklen_t, int dir)
        type: int
      - name: (*set_port)(struct sockaddr_storage *, int port)
        type: void
      item_type: struct
      name: proto_fam
      pos:
        line_end: 103
        line_start: 90
        source_file: /src/haproxy/include/haproxy/protocol-t.h
    - fields:
      - name: name[PROTO_NAME_LEN]
        type: char
      - name: '*fam'
        type: struct proto_fam
      - name: xprt_type
        type: int
      - name: proto_type
        type: enum proto_type
      - name: sock_type
        type: int
      - name: sock_prot
        type: int
      - name: (*add)(struct protocol *p, struct listener *l)
        type: void
      - name: (*listen)(struct listener *l, char *errmsg, int errlen)
        type: int
      - name: (*enable)(struct listener *l)
        type: void
      - name: (*disable)(struct listener *l)
        type: void
      - name: (*unbind)(struct listener *l)
        type: void
      - name: (*suspend)(struct listener *l)
        type: int
      - name: (*resume)(struct listener *l)
        type: int
      - name: '*(*accept_conn)(struct listener *l, int *status)'
        type: struct connection
      - name: (*ctrl_init)(struct connection *)
        type: void
      - name: (*ctrl_close)(struct connection *)
        type: void
      - name: (*connect)(struct connection *, int flags)
        type: int
      - name: (*drain)(struct connection *)
        type: int
      - name: (*check_events)(struct connection *conn, int event_type)
        type: int
      - name: (*ignore_events)(struct connection *conn, int event_type)
        type: void
      - name: (*get_src)(struct connection *conn, struct sockaddr *, socklen_t)
        type: int
      - name: (*get_dst)(struct connection *conn, struct sockaddr *, socklen_t)
        type: int
      - name: (*bind_tid_prep)(struct connection *conn, int new_tid)
        type: int
      - name: (*bind_tid_commit)(struct connection *conn)
        type: void
      - name: (*bind_tid_reset)(struct connection *conn)
        type: void
      - name: (*rx_suspend)(struct receiver *rx)
        type: int
      - name: (*rx_resume)(struct receiver *rx)
        type: int
      - name: (*rx_enable)(struct receiver *rx)
        type: void
      - name: (*rx_disable)(struct receiver *rx)
        type: void
      - name: (*rx_unbind)(struct receiver *rx)
        type: void
      - name: (*rx_listening)(const struct receiver *rx)
        type: int
      - name: (*default_iocb)(int fd)
        type: void
      - name: (*get_info)(struct connection *conn, long long int *info, int info_num)
        type: int
      - name: (*get_opt)(const struct connection *conn, int level, int optname, void
          *buf, int size)
        type: int
      - name: flags
        type: uint
      - name: nb_receivers
        type: uint
      - name: receivers
        type: struct list
      - name: list
        type: struct list
      item_type: struct
      name: protocol
      pos:
        line_end: 168
        line_start: 111
        source_file: /src/haproxy/include/haproxy/protocol-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_ack.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - chunk_reset
  - chunk_init
  - chunk_initlen
  - chunk_initstr
  - alloc_trash_chunk
  - alloc_large_trash_chunk
  - alloc_small_trash_chunk
  - alloc_trash_chunk_sz
  - free_trash_chunk
  - chunk_cpy
  - chunk_memcpy
  - chunk_memcat
  - chunk_istcat
  - chunk_cat
  - chunk_strcpy
  - chunk_strncpy
  - chunk_strcat
  - chunk_newstr
  - chunk_drop
  - chunk_destroy
  - chunk_dup
  source_file: /src/haproxy/include/haproxy/chunk.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/pool-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MEM_F_SHARED
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: MEM_F_EXACT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: MEM_F_UAF
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: MEM_F_STATREG
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: '0x8 '
    - item_type: preproc_def
      name: POOL_BUSY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: ((void *)1)
    - item_type: preproc_def
      name: POOL_AVG_SAMPLES
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: POOL_F_NO_POISON
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000001  // do not poison the area
    - item_type: preproc_def
      name: POOL_F_MUST_ZERO
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000002  // zero the returned area
    - item_type: preproc_def
      name: POOL_F_NO_FAIL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000004  // do not randomly fail
    - item_type: preproc_def
      name: POOL_DBG_FAIL_ALLOC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000001  // randomly fail memory allocations
    - item_type: preproc_def
      name: POOL_DBG_DONT_MERGE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000002  // do not merge same-size pools
    - item_type: preproc_def
      name: POOL_DBG_COLD_FIRST
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000004  // pick cold objects first
    - item_type: preproc_def
      name: POOL_DBG_INTEGRITY
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000008  // perform integrity checks on cache
    - item_type: preproc_def
      name: POOL_DBG_NO_GLOBAL
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000010  // disable global pools
    - item_type: preproc_def
      name: POOL_DBG_NO_CACHE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000020  // disable thread-local pool caches
    - item_type: preproc_def
      name: POOL_DBG_CALLER
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000040  // trace last caller's location
    - item_type: preproc_def
      name: POOL_DBG_TAG
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000080  // place a tag at the end of the area
    - item_type: preproc_def
      name: POOL_DBG_POISON
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000100  // poison memory area on pool_alloc()
    - item_type: preproc_def
      name: POOL_DBG_UAF
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000200  // enable use-after-free protection
    - item_type: preproc_def
      name: POOL_DBG_BACKUP
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/pool-t.h
      type_or_value: 0x00000400  // backup the object contents on free()
    structs:
    - fields:
      - name: list
        type: struct list
      - name: count
        type: unsigned int
      - name: tid
        type: unsigned int
      - name: '*pool'
        type: struct pool_head
      - name: fill_pattern
        type: ulong
      item_type: struct
      name: pool_cache_head
      pos:
        line_end: 65
        line_start: 59
        source_file: /src/haproxy/include/haproxy/pool-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*name'
        type: char
      - name: '*file'
        type: char
      - name: size
        type: ullong
      - name: line
        type: unsigned int
      - name: flags
        type: unsigned int
      - name: type_align
        type: unsigned int
      - name: align
        type: unsigned int
      item_type: struct
      name: pool_registration
      pos:
        line_end: 79
        line_start: 70
        source_file: /src/haproxy/include/haproxy/pool-t.h
    - fields:
      - name: by_pool
        type: struct list
      - name: by_lru
        type: struct list
      item_type: struct
      name: pool_cache_item
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/haproxy/include/haproxy/pool-t.h
    - fields:
      - name: '*next'
        type: struct pool_item
      - name: '*down'
        type: struct pool_item
      item_type: struct
      name: pool_item
      pos:
        line_end: 117
        line_start: 114
        source_file: /src/haproxy/include/haproxy/pool-t.h
    - fields:
      - name: limit
        type: unsigned int
      - name: minavail
        type: unsigned int
      - name: size
        type: unsigned int
      - name: flags
        type: unsigned int
      - name: align
        type: unsigned int
      - name: users
        type: unsigned int
      - name: alloc_sz
        type: unsigned int
      - name: sum_size
        type: unsigned int
      - name: list
        type: struct list
      - name: '*base_addr'
        type: void
      - name: name[12]
        type: char
      - name: regs
        type: struct list
      - name: buckets[CONFIG_HAP_POOL_BUCKETS]
        type: "struct {\n\t\tTHREAD_ALIGN();\n\t\tstruct pool_item *free_list; /*
          list of free shared objects */\n\t\tunsigned int allocated;\t/* how many
          chunks have been allocated */\n\t\tunsigned int used;\t/* how many chunks
          are currently in use */\n\t\tunsigned int needed_avg;/* floating indicator
          between used and allocated */\n\t\tunsigned int failed;\t/* failed allocations
          (indexed by hash of TID) */\n\t}"
      - name: cache[MAX_THREADS]
        type: struct pool_cache_head
      item_type: struct
      name: pool_head
      pos:
        line_end: 159
        line_start: 125
        source_file: /src/haproxy/include/haproxy/pool-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/init-t.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: list
        type: struct list
      - name: (*fct)()
        type: int
      item_type: struct
      name: pre_check_fct
      pos:
        line_end: 11
        line_start: 8
        source_file: /src/haproxy/include/haproxy/init-t.h
    - fields:
      - name: list
        type: struct list
      - name: (*fct)()
        type: int
      item_type: struct
      name: post_check_fct
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/haproxy/include/haproxy/init-t.h
    - fields:
      - name: list
        type: struct list
      - name: (*fct)(struct proxy *)
        type: int
      item_type: struct
      name: post_proxy_check_fct
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/haproxy/include/haproxy/init-t.h
    - fields:
      - name: list
        type: struct list
      - name: (*fct)(struct server *)
        type: int
      item_type: struct
      name: post_server_check_fct
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/haproxy/include/haproxy/init-t.h
    - fields:
      - name: list
        type: struct list
      - name: (*fct)()
        type: int
      item_type: struct
      name: per_thread_alloc_fct
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/haproxy/include/haproxy/init-t.h
    - fields:
      - name: list
        type: struct list
      - name: (*fct)()
        type: int
      item_type: struct
      name: per_thread_init_fct
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/haproxy/include/haproxy/init-t.h
    - fields:
      - name: list
        type: struct list
      - name: (*fct)()
        type: void
      item_type: struct
      name: post_deinit_fct
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/haproxy/include/haproxy/init-t.h
    - fields:
      - name: list
        type: struct list
      - name: (*fct)(struct proxy *)
        type: void
      item_type: struct
      name: proxy_deinit_fct
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/haproxy/include/haproxy/init-t.h
    - fields:
      - name: list
        type: struct list
      - name: (*fct)(struct server *)
        type: void
      item_type: struct
      name: server_deinit_fct
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/haproxy/include/haproxy/init-t.h
    - fields:
      - name: list
        type: struct list
      - name: (*fct)()
        type: void
      item_type: struct
      name: per_thread_free_fct
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/haproxy/include/haproxy/init-t.h
    - fields:
      - name: list
        type: struct list
      - name: (*fct)()
        type: void
      item_type: struct
      name: per_thread_deinit_fct
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/haproxy/include/haproxy/init-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*name'
        type: char
      - name: (*fct)(int argc, char **argv)
        type: int
      item_type: struct
      name: unittest_fct
      pos:
        line_end: 67
        line_start: 63
        source_file: /src/haproxy/include/haproxy/init-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/quic_cc_drs.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: delivered
        type: uint64_t
      - name: prior_delivered
        type: uint64_t
      - name: tx_in_flight
        type: uint64_t
      - name: lost
        type: uint64_t
      - name: prior_lost
        type: uint64_t
      - name: last_end_seq
        type: int64_t
      - name: prior_time_ns
        type: uint64_t
      - name: interval_us
        type: uint32_t
      - name: send_elapsed_us
        type: uint32_t
      - name: ack_elapsed_us
        type: uint32_t
      - name: is_app_limited
        type: uint32_t
      item_type: struct
      name: quic_cc_rs
      pos:
        line_end: 17
        line_start: 5
        source_file: /src/haproxy/include/haproxy/quic_cc_drs.h
    - fields:
      - name: rs
        type: struct quic_cc_rs
      - name: round_count
        type: uint64_t
      - name: next_round_delivered
        type: uint64_t
      - name: delivered
        type: uint64_t
      - name: lost
        type: uint64_t
      - name: last_seq
        type: int64_t
      - name: delivered_time_ns
        type: uint64_t
      - name: first_sent_time_ns
        type: uint64_t
      - name: is_cwnd_limited
        type: int
      - name: app_limited
        type: int
      item_type: struct
      name: quic_cc_drs
      pos:
        line_end: 31
        line_start: 20
        source_file: /src/haproxy/include/haproxy/quic_cc_drs.h
    typedefs: []
    union: []
- function_names:
  - __slz_make_crc_table
  - dist_to_code
  - __slz_prepare_dist_table
  source_file: /src/haproxy/include/import/slz-tables.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __fallthrough
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/haproxy/include/import/slz-tables.h
      type_or_value: __attribute__((fallthrough))
    - item_type: preproc_def
      name: __fallthrough
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/haproxy/include/import/slz-tables.h
      type_or_value: do { } while (0)
    - item_type: preproc_def
      name: __fallthrough
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/haproxy/include/import/slz-tables.h
      type_or_value: do { } while (0)
    structs: []
    typedefs: []
    union: []
- function_names:
  - _____equals_1
  - ____equals_1
  - ___equals_1
  - __equals_1
  - __has_attribute
  - __has_builtin
  - __attribute__
  - __builtin_prefetch
  - __builtin_unreachable
  - flsnz8
  - flsnz32
  - flsnz64
  - flsnz8
  - flsnz32
  - flsnz64
  - flsnz64
  - flsnz8
  - flsnz32
  - flsnz64
  - flsnz_long
  - flsnz
  - equal_bits
  - string_equal_bits
  - _ceb_dotag
  - _ceb_untag
  - _ceb_clrtag
  - _ceb_gettag
  - _CEB_DEF_BASE
  - _CEB_DEF_OFST
  - CEB_FDECL2
  - _CEB_FDECL2
  - CEB_FDECL3
  - _CEB_FDECL3
  - CEB_FDECL4
  - _CEB_FDECL4
  - CEB_FDECL5
  - _CEB_FDECL5
  - NODEK
  - _ceb_descend
  - _ceb_insert
  - _ceb_first
  - _ceb_last
  - _ceb_next_unique
  - _ceb_prev_unique
  - _ceb_next_dup
  - _ceb_prev_dup
  - _ceb_next
  - _ceb_prev
  - _ceb_lookup
  - _ceb_lookup_le
  - _ceb_lookup_lt
  - _ceb_lookup_ge
  - _ceb_lookup_gt
  - _ceb_delete
  source_file: /src/haproxy/include/import/cebtree-prv.h
  types:
    enum:
    - enumerators:
      - name: CEB_WM_FST
      - name: CEB_WM_KEQ
      - name: CEB_WM_NXT
      - name: CEB_WM_LST
      - name: CEB_WM_PRV
      - name: CEB_WM_KGE
      - name: CEB_WM_KGT
      - name: CEB_WM_KLE
      - name: CEB_WM_KLT
      - name: CEB_WM_KNX
      - name: CEB_WM_KPR
      item_type: enum
      name: ceb_walk_meth
      pos:
        line_end: 473
        line_start: 460
        source_file: /src/haproxy/include/import/cebtree-prv.h
    - enumerators:
      - name: CEB_KT_ADDR
      - name: CEB_KT_MB
      - name: CEB_KT_IM
      - name: CEB_KT_U32
      - name: CEB_KT_U64
      - name: CEB_KT_ST
      - name: CEB_KT_IS
      item_type: enum
      name: ceb_key_type
      pos:
        line_end: 483
        line_start: 475
        source_file: /src/haproxy/include/import/cebtree-prv.h
    preproc_defs:
    - item_type: preproc_def
      name: comma_for_one1
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/import/cebtree-prv.h
      type_or_value: ','
    - item_type: preproc_def
      name: __has_builtin___builtin_unreachable
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/haproxy/include/import/cebtree-prv.h
      type_or_value: '1  '
    structs: []
    typedefs: []
    union:
    - fields:
      - name: u32
        type: uint32_t
      - name: u64
        type: uint64_t
      - name: ul
        type: unsigned long
      - name: mb[0]
        type: unsigned char
      - name: str[0]
        type: unsigned char
      - name: '*ptr'
        type: unsigned char
      item_type: union
      name: ceb_key_storage
      pos:
        line_end: 492
        line_start: 485
        source_file: /src/haproxy/include/import/cebtree-prv.h
- function_names:
  - EB_TREE_HEAD
  source_file: /src/haproxy/include/import/ebtree-t.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EB_NODE_BITS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EB_NODE_BRANCHES
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: (1 << EB_NODE_BITS)
    - item_type: preproc_def
      name: EB_NODE_BRANCH_MASK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: (EB_NODE_BRANCHES - 1)
    - item_type: preproc_def
      name: EB_LEFT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EB_RGHT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EB_LEAF
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EB_NODE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EB_NORMAL
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EB_UNIQUE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EB_ROOT
      pos:
        line_end: 88
        line_start: 84
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: "(struct eb_root) {\t\t\t\t\\\n\t\t.b = {[0] = NULL, [1] = NULL
        },\t\t\\\n\t}"
    - item_type: preproc_def
      name: EB_ROOT_UNIQUE
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: "(struct eb_root) {\t\t\t\t\\\n\t\t.b = {[0] = NULL, [1] = (void
        *)1 },\t\\\n\t}"
    - item_type: preproc_def
      name: EB32_ROOT
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: EB_ROOT
    - item_type: preproc_def
      name: EB32_TREE_HEAD
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: EB_TREE_HEAD
    - item_type: preproc_def
      name: EB64_ROOT
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: EB_ROOT
    - item_type: preproc_def
      name: EB64_TREE_HEAD
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: EB_TREE_HEAD
    - item_type: preproc_def
      name: EBPT_ROOT
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: EB_ROOT
    - item_type: preproc_def
      name: EBPT_TREE_HEAD
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: EB_TREE_HEAD
    - item_type: preproc_def
      name: PTR_INT_TYPE
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: size_t
    - item_type: preproc_def
      name: EBMB_ROOT
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: EB_ROOT
    - item_type: preproc_def
      name: EBMB_TREE_HEAD
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/haproxy/include/import/ebtree-t.h
      type_or_value: EB_TREE_HEAD
    structs:
    - fields:
      - name: '*b[EB_NODE_BRANCHES]'
        type: eb_troot_t
      item_type: struct
      name: eb_root
      pos:
        line_end: 62
        line_start: 60
        source_file: /src/haproxy/include/import/ebtree-t.h
    - fields:
      - name: branches
        type: struct eb_root
      - name: '*node_p'
        type: eb_troot_t
      - name: '*leaf_p'
        type: eb_troot_t
      - name: bit
        type: short int
      - name: pfx
        type: short unsigned int
      item_type: struct
      name: eb_node
      pos:
        line_end: 77
        line_start: 71
        source_file: /src/haproxy/include/import/ebtree-t.h
    - fields:
      - name: node
        type: struct eb_node
      - name: key
        type: u32
      item_type: struct
      name: eb32_node
      pos:
        line_end: 118
        line_start: 114
        source_file: /src/haproxy/include/import/ebtree-t.h
    - fields:
      - name: node
        type: struct eb_node
      - name: key
        type: u32
      - name: node_s
        type: unsigned long
      - name: leaf_s
        type: unsigned long
      item_type: struct
      name: eb32sc_node
      pos:
        line_end: 136
        line_start: 129
        source_file: /src/haproxy/include/import/ebtree-t.h
    - fields:
      - name: node
        type: struct eb_node
      - name: key
        type: u64
      item_type: struct
      name: eb64_node
      pos:
        line_end: 162
        line_start: 157
        source_file: /src/haproxy/include/import/ebtree-t.h
    - fields:
      - name: node
        type: struct eb_node
      - name: '*key'
        type: void
      item_type: struct
      name: ebpt_node
      pos:
        line_end: 190
        line_start: 186
        source_file: /src/haproxy/include/import/ebtree-t.h
    - fields:
      - name: node
        type: struct eb_node
      - name: key[0]
        type: unsigned char
      item_type: struct
      name: ebmb_node
      pos:
        line_end: 214
        line_start: 210
        source_file: /src/haproxy/include/import/ebtree-t.h
    typedefs:
    - item_type: typedef
      name: eb_troot_t
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/haproxy/include/import/ebtree-t.h
      type: void
    - item_type: typedef
      name: u32
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/haproxy/include/import/ebtree-t.h
      type: unsigned int
    - item_type: typedef
      name: s32
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/haproxy/include/import/ebtree-t.h
      type: signed int
    - item_type: typedef
      name: u64
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/haproxy/include/import/ebtree-t.h
      type: unsigned long long
    - item_type: typedef
      name: s64
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/haproxy/include/import/ebtree-t.h
      type: signed long long
    - item_type: typedef
      name: ptr_t
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/haproxy/include/import/ebtree-t.h
      type: PTR_INT_TYPE
    union: []
- function_names:
  - X86_COND_C_TO_REG
  - X86_COND_Z_TO_REG
  - X86_COND_NZ_TO_REG
  - X86_COND_C_RESULT
  - X86_COND_Z_RESULT
  - X86_COND_NZ_RESULT
  - X86_COND_C_TO_REG
  - X86_COND_Z_TO_REG
  - X86_COND_NZ_TO_REG
  - X86_COND_C_RESULT
  - X86_COND_Z_RESULT
  - X86_COND_NZ_RESULT
  - pl_cpu_relax
  - _pl_mb
  - _pl_mb
  - _pl_mb
  - _pl_mb_load
  - _pl_mb_store
  - _pl_mb_ato
  - _pl_mb_ato_load
  - _pl_mb_ato_store
  - _pl_load_lax
  - _pl_load
  - _pl_store_lax
  - _pl_store
  - _pl_inc_lax
  - _pl_inc_acq
  - _pl_inc_rel
  - _pl_dec_lax
  - _pl_dec_acq
  - _pl_dec_rel
  - _pl_dec
  - pl_inc_noret_lax
  - pl_inc_noret_acq
  - pl_inc_noret_rel
  - pl_inc_noret
  - pl_dec_noret_lax
  - pl_dec_noret_acq
  - pl_dec_noret_rel
  - pl_dec_noret
  - _pl_add_noret_lax
  - _pl_add_noret_acq
  - _pl_add_noret_rel
  - _pl_add_noret
  - _pl_sub_noret_lax
  - _pl_sub_noret_acq
  - _pl_sub_noret_rel
  - _pl_sub_noret
  - _pl_and_noret_lax
  - _pl_and_noret_acq
  - _pl_and_noret_rel
  - _pl_and_noret
  - _pl_or_noret_lax
  - _pl_or_noret_acq
  - _pl_or_noret_rel
  - _pl_or_noret
  - _pl_xor_noret_lax
  - _pl_xor_noret_acq
  - _pl_xor_noret_rel
  - _pl_xor_noret
  - pl_btr_lax
  - pl_btr_acq
  - pl_btr_rel
  - pl_btr
  - pl_bts_lax
  - pl_bts_acq
  - pl_bts_rel
  - pl_bts
  - _pl_xadd
  - _pl_ldsub_acq
  - _pl_ldsub_rel
  - pl_cpu_relax
  - _pl_mb
  - _pl_mb_load
  - _pl_mb_store
  - _pl_mb_ato
  - _pl_mb_ato_load
  - _pl_mb_ato_store
  - pl_barrier
  - pl_mb
  - pl_load_lax
  - pl_load
  - pl_store_lax
  - pl_store
  - pl_inc_lax
  - pl_inc_acq
  - pl_inc_rel
  - pl_inc
  - pl_dec_lax
  - pl_dec_acq
  - pl_dec_rel
  - pl_dec
  - pl_inc_noret_lax
  - pl_inc_noret_acq
  - pl_inc_noret_relc
  - pl_inc_noret
  - pl_dec_noret_lax
  - pl_dec_noret_acq
  - pl_dec_noret_relc
  - pl_dec_noret
  - pl_add_lax
  - pl_add_acq
  - pl_add_relc
  - pl_add
  - pl_sub_lax
  - pl_sub_acq
  - pl_sub_relc
  - pl_sub
  - pl_and_lax
  - pl_and_acq
  - pl_and_relc
  - pl_and
  - pl_or_lax
  - pl_or_acq
  - pl_or_relc
  - pl_or
  - pl_xor_lax
  - pl_xor_acq
  - pl_xor_relc
  - pl_xor
  - pl_xadd
  - pl_xchg
  - pl_cmpxchg
  - pl_ldadd_lax
  - pl_ldadd_acq
  - pl_ldadd_relc
  - pl_ldadd
  - pl_ldand_lax
  - pl_ldand_acq
  - pl_ldand_relc
  - pl_ldand
  - pl_ldor_lax
  - pl_ldor_acq
  - pl_ldor_relc
  - pl_ldor
  - pl_ldsub_lax
  - pl_ldsub_acq
  - pl_ldsub_relc
  - pl_ldsub
  - pl_ldxor_lax
  - pl_ldxor_acq
  - pl_ldxor_relc
  - pl_ldxor
  - pl_cpu_relax
  - pl_barrier
  - pl_mb
  - pl_mb_load
  - pl_mb_store
  - pl_mb_ato
  - pl_mb_ato_load
  - pl_mb_ato_store
  - pl_load
  - pl_store
  - pl_inc_noret
  - pl_dec_noret
  - pl_inc
  - pl_dec
  - pl_add
  - pl_and
  - pl_or
  - pl_xor
  - pl_sub
  - pl_btr
  - pl_bts
  - pl_xadd
  - pl_cmpxchg
  - pl_xchg
  - pl_ldadd
  - pl_ldand
  - pl_ldor
  - pl_ldxor
  - pl_ldsub
  - pl_inc_noret
  - pl_dec_noret
  - pl_add_noret
  - pl_sub_noret
  - pl_or_noret
  - pl_and_noret
  - pl_xor_noret
  source_file: /src/haproxy/include/import/atomic-ops.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: pl_cpu_relax
      pos:
        line_end: 1105
        line_start: 1104
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_cpu_relax
    - item_type: preproc_def
      name: pl_barrier
      pos:
        line_end: 1109
        line_start: 1108
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_barrier
    - item_type: preproc_def
      name: pl_mb
      pos:
        line_end: 1113
        line_start: 1112
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_mb
    - item_type: preproc_def
      name: pl_mb_load
      pos:
        line_end: 1117
        line_start: 1116
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_mb_load
    - item_type: preproc_def
      name: pl_mb_store
      pos:
        line_end: 1121
        line_start: 1120
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_mb_store
    - item_type: preproc_def
      name: pl_mb_ato
      pos:
        line_end: 1125
        line_start: 1124
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_mb_ato
    - item_type: preproc_def
      name: pl_mb_ato_load
      pos:
        line_end: 1129
        line_start: 1128
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_mb_ato_load
    - item_type: preproc_def
      name: pl_mb_ato_store
      pos:
        line_end: 1133
        line_start: 1132
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_mb_ato_store
    - item_type: preproc_def
      name: pl_load
      pos:
        line_end: 1138
        line_start: 1137
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_load
    - item_type: preproc_def
      name: pl_load_lax
      pos:
        line_end: 1142
        line_start: 1141
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_load_lax
    - item_type: preproc_def
      name: pl_store
      pos:
        line_end: 1146
        line_start: 1145
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_store
    - item_type: preproc_def
      name: pl_store_lax
      pos:
        line_end: 1150
        line_start: 1149
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_store_lax
    - item_type: preproc_def
      name: pl_inc_noret_lax
      pos:
        line_end: 1155
        line_start: 1154
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_inc_noret_lax
    - item_type: preproc_def
      name: pl_inc_noret_acq
      pos:
        line_end: 1159
        line_start: 1158
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_inc_noret_acq
    - item_type: preproc_def
      name: pl_inc_noret_rel
      pos:
        line_end: 1163
        line_start: 1162
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_inc_noret_rel
    - item_type: preproc_def
      name: pl_inc_noret
      pos:
        line_end: 1167
        line_start: 1166
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_inc_noret
    - item_type: preproc_def
      name: pl_dec_noret_lax
      pos:
        line_end: 1172
        line_start: 1171
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_dec_noret_lax
    - item_type: preproc_def
      name: pl_dec_noret_acq
      pos:
        line_end: 1176
        line_start: 1175
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_dec_noret_acq
    - item_type: preproc_def
      name: pl_dec_noret_rel
      pos:
        line_end: 1180
        line_start: 1179
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_dec_noret_rel
    - item_type: preproc_def
      name: pl_dec_noret
      pos:
        line_end: 1184
        line_start: 1183
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_dec_noret
    - item_type: preproc_def
      name: pl_inc_lax
      pos:
        line_end: 1189
        line_start: 1188
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_inc_lax
    - item_type: preproc_def
      name: pl_inc_acq
      pos:
        line_end: 1193
        line_start: 1192
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_inc_acq
    - item_type: preproc_def
      name: pl_inc_rel
      pos:
        line_end: 1197
        line_start: 1196
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_inc_rel
    - item_type: preproc_def
      name: pl_inc
      pos:
        line_end: 1201
        line_start: 1200
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_inc
    - item_type: preproc_def
      name: pl_dec_lax
      pos:
        line_end: 1206
        line_start: 1205
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_dec_lax
    - item_type: preproc_def
      name: pl_dec_acq
      pos:
        line_end: 1210
        line_start: 1209
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_dec_acq
    - item_type: preproc_def
      name: pl_dec_rel
      pos:
        line_end: 1214
        line_start: 1213
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_dec_rel
    - item_type: preproc_def
      name: pl_dec
      pos:
        line_end: 1218
        line_start: 1217
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_dec
    - item_type: preproc_def
      name: pl_add_lax
      pos:
        line_end: 1223
        line_start: 1222
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_add_lax
    - item_type: preproc_def
      name: pl_add_acq
      pos:
        line_end: 1227
        line_start: 1226
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_add_acq
    - item_type: preproc_def
      name: pl_add_rel
      pos:
        line_end: 1231
        line_start: 1230
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_add_rel
    - item_type: preproc_def
      name: pl_add
      pos:
        line_end: 1235
        line_start: 1234
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_add
    - item_type: preproc_def
      name: pl_add_noret_lax
      pos:
        line_end: 1240
        line_start: 1239
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_add_noret_lax
    - item_type: preproc_def
      name: pl_add_noret_acq
      pos:
        line_end: 1244
        line_start: 1243
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_add_noret_acq
    - item_type: preproc_def
      name: pl_add_noret_rel
      pos:
        line_end: 1248
        line_start: 1247
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_add_noret_rel
    - item_type: preproc_def
      name: pl_add_noret
      pos:
        line_end: 1252
        line_start: 1251
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_add_noret
    - item_type: preproc_def
      name: pl_and_lax
      pos:
        line_end: 1256
        line_start: 1255
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_and_lax
    - item_type: preproc_def
      name: pl_and_acq
      pos:
        line_end: 1260
        line_start: 1259
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_and_acq
    - item_type: preproc_def
      name: pl_and_rel
      pos:
        line_end: 1264
        line_start: 1263
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_and_rel
    - item_type: preproc_def
      name: pl_and
      pos:
        line_end: 1268
        line_start: 1267
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_and
    - item_type: preproc_def
      name: pl_and_noret_lax
      pos:
        line_end: 1273
        line_start: 1272
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_and_noret_lax
    - item_type: preproc_def
      name: pl_and_noret_acq
      pos:
        line_end: 1277
        line_start: 1276
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_and_noret_acq
    - item_type: preproc_def
      name: pl_and_noret_rel
      pos:
        line_end: 1281
        line_start: 1280
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_and_noret_rel
    - item_type: preproc_def
      name: pl_and_noret
      pos:
        line_end: 1285
        line_start: 1284
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_and_noret
    - item_type: preproc_def
      name: pl_or_lax
      pos:
        line_end: 1290
        line_start: 1289
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_or_lax
    - item_type: preproc_def
      name: pl_or_acq
      pos:
        line_end: 1294
        line_start: 1293
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_or_acq
    - item_type: preproc_def
      name: pl_or_rel
      pos:
        line_end: 1298
        line_start: 1297
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_or_rel
    - item_type: preproc_def
      name: pl_or
      pos:
        line_end: 1302
        line_start: 1301
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_or
    - item_type: preproc_def
      name: pl_or_noret_lax
      pos:
        line_end: 1307
        line_start: 1306
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_or_noret_lax
    - item_type: preproc_def
      name: pl_or_noret_acq
      pos:
        line_end: 1311
        line_start: 1310
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_or_noret_acq
    - item_type: preproc_def
      name: pl_or_noret_rel
      pos:
        line_end: 1315
        line_start: 1314
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_or_noret_rel
    - item_type: preproc_def
      name: pl_or_noret
      pos:
        line_end: 1319
        line_start: 1318
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_or_noret
    - item_type: preproc_def
      name: pl_xor_lax
      pos:
        line_end: 1324
        line_start: 1323
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_xor_lax
    - item_type: preproc_def
      name: pl_xor_acq
      pos:
        line_end: 1328
        line_start: 1327
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_xor_acq
    - item_type: preproc_def
      name: pl_xor_rel
      pos:
        line_end: 1332
        line_start: 1331
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_xor_rel
    - item_type: preproc_def
      name: pl_xor
      pos:
        line_end: 1336
        line_start: 1335
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_xor
    - item_type: preproc_def
      name: pl_xor_noret_lax
      pos:
        line_end: 1341
        line_start: 1340
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_xor_noret_lax
    - item_type: preproc_def
      name: pl_xor_noret_acq
      pos:
        line_end: 1345
        line_start: 1344
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_xor_noret_acq
    - item_type: preproc_def
      name: pl_xor_noret_rel
      pos:
        line_end: 1349
        line_start: 1348
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_xor_noret_rel
    - item_type: preproc_def
      name: pl_xor_noret
      pos:
        line_end: 1353
        line_start: 1352
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_xor_noret
    - item_type: preproc_def
      name: pl_sub_lax
      pos:
        line_end: 1358
        line_start: 1357
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_sub_lax
    - item_type: preproc_def
      name: pl_sub_acq
      pos:
        line_end: 1362
        line_start: 1361
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_sub_acq
    - item_type: preproc_def
      name: pl_sub_rel
      pos:
        line_end: 1366
        line_start: 1365
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_sub_rel
    - item_type: preproc_def
      name: pl_sub
      pos:
        line_end: 1370
        line_start: 1369
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_sub
    - item_type: preproc_def
      name: pl_sub_noret_lax
      pos:
        line_end: 1375
        line_start: 1374
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_sub_noret_lax
    - item_type: preproc_def
      name: pl_sub_noret_acq
      pos:
        line_end: 1379
        line_start: 1378
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_sub_noret_acq
    - item_type: preproc_def
      name: pl_sub_noret_rel
      pos:
        line_end: 1383
        line_start: 1382
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_sub_noret_rel
    - item_type: preproc_def
      name: pl_sub_noret
      pos:
        line_end: 1387
        line_start: 1386
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_sub_noret
    - item_type: preproc_def
      name: pl_btr_lax
      pos:
        line_end: 1392
        line_start: 1391
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_btr_lax
    - item_type: preproc_def
      name: pl_btr_acq
      pos:
        line_end: 1396
        line_start: 1395
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_btr_acq
    - item_type: preproc_def
      name: pl_btr_rel
      pos:
        line_end: 1400
        line_start: 1399
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_btr_rel
    - item_type: preproc_def
      name: pl_btr
      pos:
        line_end: 1404
        line_start: 1403
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_btr
    - item_type: preproc_def
      name: pl_bts_lax
      pos:
        line_end: 1409
        line_start: 1408
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_bts_lax
    - item_type: preproc_def
      name: pl_bts_acq
      pos:
        line_end: 1413
        line_start: 1412
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_bts_acq
    - item_type: preproc_def
      name: pl_bts_rel
      pos:
        line_end: 1417
        line_start: 1416
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_bts_rel
    - item_type: preproc_def
      name: pl_bts
      pos:
        line_end: 1421
        line_start: 1420
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_bts
    - item_type: preproc_def
      name: pl_xadd
      pos:
        line_end: 1426
        line_start: 1425
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_xadd
    - item_type: preproc_def
      name: pl_cmpxchg
      pos:
        line_end: 1430
        line_start: 1429
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_cmpxchg
    - item_type: preproc_def
      name: pl_xchg
      pos:
        line_end: 1434
        line_start: 1433
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_xchg
    - item_type: preproc_def
      name: pl_ldadd_lax
      pos:
        line_end: 1439
        line_start: 1438
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldadd_lax
    - item_type: preproc_def
      name: pl_ldadd_acq
      pos:
        line_end: 1443
        line_start: 1442
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldadd_acq
    - item_type: preproc_def
      name: pl_ldadd_rel
      pos:
        line_end: 1447
        line_start: 1446
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldadd_rel
    - item_type: preproc_def
      name: pl_ldadd
      pos:
        line_end: 1451
        line_start: 1450
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldadd
    - item_type: preproc_def
      name: pl_ldand_lax
      pos:
        line_end: 1456
        line_start: 1455
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldand_lax
    - item_type: preproc_def
      name: pl_ldand_acq
      pos:
        line_end: 1460
        line_start: 1459
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldand_acq
    - item_type: preproc_def
      name: pl_ldand_rel
      pos:
        line_end: 1464
        line_start: 1463
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldand_rel
    - item_type: preproc_def
      name: pl_ldand
      pos:
        line_end: 1468
        line_start: 1467
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldand
    - item_type: preproc_def
      name: pl_ldor_lax
      pos:
        line_end: 1473
        line_start: 1472
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldor_lax
    - item_type: preproc_def
      name: pl_ldor_acq
      pos:
        line_end: 1477
        line_start: 1476
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldor_acq
    - item_type: preproc_def
      name: pl_ldor_rel
      pos:
        line_end: 1481
        line_start: 1480
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldor_rel
    - item_type: preproc_def
      name: pl_ldor
      pos:
        line_end: 1485
        line_start: 1484
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldor
    - item_type: preproc_def
      name: pl_ldxor_lax
      pos:
        line_end: 1490
        line_start: 1489
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldxor_lax
    - item_type: preproc_def
      name: pl_ldxor_acq
      pos:
        line_end: 1494
        line_start: 1493
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldxor_acq
    - item_type: preproc_def
      name: pl_ldxor_rel
      pos:
        line_end: 1498
        line_start: 1497
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldxor_rel
    - item_type: preproc_def
      name: pl_ldxor
      pos:
        line_end: 1502
        line_start: 1501
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldxor
    - item_type: preproc_def
      name: pl_ldsub_lax
      pos:
        line_end: 1507
        line_start: 1506
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldsub_lax
    - item_type: preproc_def
      name: pl_ldsub_acq
      pos:
        line_end: 1511
        line_start: 1510
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldsub_acq
    - item_type: preproc_def
      name: pl_ldsub_rel
      pos:
        line_end: 1515
        line_start: 1514
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldsub_rel
    - item_type: preproc_def
      name: pl_ldsub
      pos:
        line_end: 1519
        line_start: 1518
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: _pl_ldsub
    - item_type: preproc_def
      name: pl_load_lax
      pos:
        line_end: 1712
        line_start: 1711
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_load
    - item_type: preproc_def
      name: pl_store_lax
      pos:
        line_end: 1717
        line_start: 1716
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_store
    - item_type: preproc_def
      name: pl_inc_lax
      pos:
        line_end: 1722
        line_start: 1721
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_inc
    - item_type: preproc_def
      name: pl_inc_acq
      pos:
        line_end: 1725
        line_start: 1724
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_inc
    - item_type: preproc_def
      name: pl_inc_rel
      pos:
        line_end: 1728
        line_start: 1727
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_inc
    - item_type: preproc_def
      name: pl_dec_lax
      pos:
        line_end: 1733
        line_start: 1732
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_dec
    - item_type: preproc_def
      name: pl_dec_acq
      pos:
        line_end: 1736
        line_start: 1735
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_dec
    - item_type: preproc_def
      name: pl_dec_rel
      pos:
        line_end: 1740
        line_start: 1739
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_dec
    - item_type: preproc_def
      name: pl_inc_noret_lax
      pos:
        line_end: 1745
        line_start: 1744
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_inc_noret
    - item_type: preproc_def
      name: pl_inc_noret_acq
      pos:
        line_end: 1749
        line_start: 1748
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_inc_noret
    - item_type: preproc_def
      name: pl_inc_noret_rel
      pos:
        line_end: 1753
        line_start: 1752
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_inc_noret
    - item_type: preproc_def
      name: pl_dec_noret_lax
      pos:
        line_end: 1758
        line_start: 1757
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_dec_noret
    - item_type: preproc_def
      name: pl_dec_noret_acq
      pos:
        line_end: 1762
        line_start: 1761
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_dec_noret
    - item_type: preproc_def
      name: pl_dec_noret_rel
      pos:
        line_end: 1766
        line_start: 1765
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_dec_noret
    - item_type: preproc_def
      name: pl_add_lax
      pos:
        line_end: 1771
        line_start: 1770
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_add
    - item_type: preproc_def
      name: pl_add_acq
      pos:
        line_end: 1775
        line_start: 1774
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_add
    - item_type: preproc_def
      name: pl_add_rel
      pos:
        line_end: 1779
        line_start: 1778
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_add
    - item_type: preproc_def
      name: pl_sub_lax
      pos:
        line_end: 1784
        line_start: 1783
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_sub
    - item_type: preproc_def
      name: pl_sub_acq
      pos:
        line_end: 1788
        line_start: 1787
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_sub
    - item_type: preproc_def
      name: pl_sub_rel
      pos:
        line_end: 1792
        line_start: 1791
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_sub
    - item_type: preproc_def
      name: pl_and_lax
      pos:
        line_end: 1797
        line_start: 1796
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_and
    - item_type: preproc_def
      name: pl_and_acq
      pos:
        line_end: 1801
        line_start: 1800
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_and
    - item_type: preproc_def
      name: pl_and_rel
      pos:
        line_end: 1805
        line_start: 1804
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_and
    - item_type: preproc_def
      name: pl_or_lax
      pos:
        line_end: 1810
        line_start: 1809
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_or
    - item_type: preproc_def
      name: pl_or_acq
      pos:
        line_end: 1814
        line_start: 1813
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_or
    - item_type: preproc_def
      name: pl_or_rel
      pos:
        line_end: 1818
        line_start: 1817
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_or
    - item_type: preproc_def
      name: pl_xor_lax
      pos:
        line_end: 1823
        line_start: 1822
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_xor
    - item_type: preproc_def
      name: pl_xor_acq
      pos:
        line_end: 1827
        line_start: 1826
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_xor
    - item_type: preproc_def
      name: pl_xor_rel
      pos:
        line_end: 1831
        line_start: 1830
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_xor
    - item_type: preproc_def
      name: pl_add_noret_lax
      pos:
        line_end: 1836
        line_start: 1835
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_add_noret
    - item_type: preproc_def
      name: pl_add_noret_acq
      pos:
        line_end: 1840
        line_start: 1839
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_add_noret
    - item_type: preproc_def
      name: pl_add_noret_rel
      pos:
        line_end: 1844
        line_start: 1843
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_add_noret
    - item_type: preproc_def
      name: pl_sub_noret_lax
      pos:
        line_end: 1849
        line_start: 1848
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_sub_noret
    - item_type: preproc_def
      name: pl_sub_noret_acq
      pos:
        line_end: 1853
        line_start: 1852
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_sub_noret
    - item_type: preproc_def
      name: pl_sub_noret_rel
      pos:
        line_end: 1857
        line_start: 1856
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_sub_noret
    - item_type: preproc_def
      name: pl_and_noret_lax
      pos:
        line_end: 1862
        line_start: 1861
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_and_noret
    - item_type: preproc_def
      name: pl_and_noret_acq
      pos:
        line_end: 1866
        line_start: 1865
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_and_noret
    - item_type: preproc_def
      name: pl_and_noret_rel
      pos:
        line_end: 1870
        line_start: 1869
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_and_noret
    - item_type: preproc_def
      name: pl_or_noret_lax
      pos:
        line_end: 1875
        line_start: 1874
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_or_noret
    - item_type: preproc_def
      name: pl_or_noret_acq
      pos:
        line_end: 1879
        line_start: 1878
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_or_noret
    - item_type: preproc_def
      name: pl_or_noret_rel
      pos:
        line_end: 1883
        line_start: 1882
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_or_noret
    - item_type: preproc_def
      name: pl_xor_noret_lax
      pos:
        line_end: 1888
        line_start: 1887
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_xor_noret
    - item_type: preproc_def
      name: pl_xor_noret_acq
      pos:
        line_end: 1892
        line_start: 1891
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_xor_noret
    - item_type: preproc_def
      name: pl_xor_noret_rel
      pos:
        line_end: 1896
        line_start: 1895
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_xor_noret
    - item_type: preproc_def
      name: pl_btr_lax
      pos:
        line_end: 1901
        line_start: 1900
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_btr
    - item_type: preproc_def
      name: pl_btr_acq
      pos:
        line_end: 1905
        line_start: 1904
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_btr
    - item_type: preproc_def
      name: pl_btr_rel
      pos:
        line_end: 1909
        line_start: 1908
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_btr
    - item_type: preproc_def
      name: pl_bts_lax
      pos:
        line_end: 1914
        line_start: 1913
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_bts
    - item_type: preproc_def
      name: pl_bts_acq
      pos:
        line_end: 1918
        line_start: 1917
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_bts
    - item_type: preproc_def
      name: pl_bts_rel
      pos:
        line_end: 1922
        line_start: 1921
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_bts
    - item_type: preproc_def
      name: pl_ldadd_lax
      pos:
        line_end: 1927
        line_start: 1926
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldadd
    - item_type: preproc_def
      name: pl_ldadd_acq
      pos:
        line_end: 1931
        line_start: 1930
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldadd
    - item_type: preproc_def
      name: pl_ldadd_rel
      pos:
        line_end: 1935
        line_start: 1934
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldadd
    - item_type: preproc_def
      name: pl_ldsub_lax
      pos:
        line_end: 1940
        line_start: 1939
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldsub
    - item_type: preproc_def
      name: pl_ldsub_acq
      pos:
        line_end: 1944
        line_start: 1943
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldsub
    - item_type: preproc_def
      name: pl_ldsub_rel
      pos:
        line_end: 1948
        line_start: 1947
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldsub
    - item_type: preproc_def
      name: pl_ldand_lax
      pos:
        line_end: 1953
        line_start: 1952
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldand
    - item_type: preproc_def
      name: pl_ldand_acq
      pos:
        line_end: 1957
        line_start: 1956
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldand
    - item_type: preproc_def
      name: pl_ldand_rel
      pos:
        line_end: 1961
        line_start: 1960
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldand
    - item_type: preproc_def
      name: pl_ldor_lax
      pos:
        line_end: 1966
        line_start: 1965
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldor
    - item_type: preproc_def
      name: pl_ldor_acq
      pos:
        line_end: 1970
        line_start: 1969
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldor
    - item_type: preproc_def
      name: pl_ldor_rel
      pos:
        line_end: 1974
        line_start: 1973
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldor
    - item_type: preproc_def
      name: pl_ldxor_lax
      pos:
        line_end: 1979
        line_start: 1978
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldxor
    - item_type: preproc_def
      name: pl_ldxor_acq
      pos:
        line_end: 1983
        line_start: 1982
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldxor
    - item_type: preproc_def
      name: pl_ldxor_rel
      pos:
        line_end: 1987
        line_start: 1986
        source_file: /src/haproxy/include/import/atomic-ops.h
      type_or_value: pl_ldxor
    structs: []
    typedefs: []
    union: []
- function_names:
  - ceb64_imm_key
  - ceb64_ofs_key
  - ceb64_item_insert
  - ceb64_item_first
  - ceb64_item_last
  - ceb64_item_lookup
  - ceb64_item_lookup_le
  - ceb64_item_lookup_lt
  - ceb64_item_lookup_ge
  - ceb64_item_lookup_gt
  - ceb64_item_next_unique
  - ceb64_item_prev_unique
  - ceb64_item_next_dup
  - ceb64_item_prev_dup
  - ceb64_item_next
  - ceb64_item_prev
  - ceb64_item_delete
  - ceb64_item_pick
  - cebu64_item_insert
  - cebu64_item_first
  - cebu64_item_last
  - cebu64_item_lookup
  - cebu64_item_lookup_le
  - cebu64_item_lookup_lt
  - cebu64_item_lookup_ge
  - cebu64_item_lookup_gt
  - cebu64_item_next
  - cebu64_item_prev
  - cebu64_item_delete
  - cebu64_item_pick
  source_file: /src/haproxy/include/import/ceb64_tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ebst_lookup_len
  - __ebst_lookup
  - __ebst_insert
  source_file: /src/haproxy/include/import/ebsttree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - offsetof
  - offsetof
  - container_of
  - container_of_safe
  - ceb_init_root
  - ceb_init_node
  - ceb_intree
  - ceb_isempty
  - _ceb_key_ptr
  - ceb_key_ptr
  source_file: /src/haproxy/include/import/cebtree.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*b[2]'
        type: struct ceb_root
      item_type: struct
      name: ceb_node
      pos:
        line_end: 65
        line_start: 63
        source_file: /src/haproxy/include/import/cebtree.h
    typedefs: []
    union: []
- function_names:
  - ceba_imm_key
  source_file: /src/haproxy/include/import/ceba_tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clz8
  - flsnz32
  - flsnz32
  - flsnz64
  - flsnz64
  - flsnz32
  - flsnz32
  - flsnz64
  - flsnz64
  - flsnz8
  - flsnz8
  - flsnz8
  - flsnz32
  - flsnz64
  - flsnz64
  - flsnz_long
  - flsnz
  - fls64
  - fls_auto
  - offsetof
  - offsetof
  - container_of
  - container_of_safe
  - eb_entry
  - eb_dotag
  - eb_untag
  - eb_gettag
  - eb_clrtag
  - eb_root_to_node
  - eb_walk_down
  - __eb_insert_dup
  - eb_prefetch
  - eb_prefetch
  - eb_is_empty
  - eb_is_dup
  - eb_first
  - eb_last
  - eb_prev
  - eb_next
  - eb_prev_dup
  - eb_next_dup
  - eb_prev_unique
  - eb_next_unique
  - __eb_delete
  - equal_bits
  - check_bits
  - string_equal_bits
  - cmp_bits
  - get_bit
  source_file: /src/haproxy/include/import/ebtree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __atomic_exchange_n
  - __atomic_thread_fence
  - MT_LIST_HEAD_INIT
  - MT_LIST_ELEM
  - MT_LIST_NEXT
  - MT_LIST_PREV
  - MT_ALREADY_CHECKED
  - MT_LIST_POP
  - MT_LIST_POP_LOCKED
  - MT_LIST_FOR_EACH_ENTRY_LOCKED
  - MT_LIST_FOR_EACH_ENTRY_UNLOCKED
  - MT_LIST_INIT
  - MT_LIST_ISEMPTY
  - MT_LIST_INLIST
  - MT_LIST_TRY_INSERT
  - MT_LIST_TRY_APPEND
  - MT_LIST_BEHEAD
  - MT_LIST_INSERT
  - MT_LIST_APPEND
  - MT_LIST_DELETE
  - MT_LIST_LOCK_NEXT
  - MT_LIST_LOCK_PREV
  - MT_LIST_LOCK_FULL
  - MT_LIST_UNLOCK_LINK
  - MT_LIST_UNLOCK_FULL
  - mt_list_prng
  - mt_list_wait
  - mt_list_cpu_relax
  - mt_list_init
  - mt_list_isempty
  - mt_list_inlist
  - mt_list_try_insert
  - mt_list_try_append
  - mt_list_behead
  - mt_list_insert
  - mt_list_append
  - mt_list_delete
  - mt_list_pop_locked
  - mt_list_pop
  - mt_list_lock_next
  - mt_list_lock_prev
  - mt_list_try_lock_prev
  - mt_list_lock_elem
  - mt_list_unlock_elem
  - mt_list_unlock_self
  - mt_list_lock_full
  - mt_list_unlock_link
  - mt_list_unlock_full
  - _mt_list_unlock_next
  - _mt_list_unlock_prev
  - _mt_list_lock_next
  - _mt_list_lock_prev
  - _MT_LIST_FOR_EACH_ENTRY_LOCKED_OUTER
  - _MT_LIST_FOR_EACH_ENTRY_LOCKED_INNER
  - _MT_LIST_FOR_EACH_ENTRY_UNLOCKED_OUTER
  - _MT_LIST_FOR_EACH_ENTRY_UNLOCKED_INNER
  source_file: /src/haproxy/include/import/mt_list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MT_INLINE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/import/mt_list.h
      type_or_value: __attribute__((noinline))
    - item_type: preproc_def
      name: MT_INLINE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/include/import/mt_list.h
      type_or_value: inline
    - item_type: preproc_def
      name: MT_LIST_BUSY
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/import/mt_list.h
      type_or_value: ((struct mt_list *)1)
    structs:
    - fields:
      - name: '*next'
        type: struct mt_list
      - name: '*prev'
        type: struct mt_list
      item_type: struct
      name: mt_list
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/haproxy/include/import/mt_list.h
    typedefs: []
    union: []
- function_names:
  - eb32sc_entry
  - eb32sc_walk_down_left
  - eb32sc_next_with_parent
  - eb32sc_next
  - eb32sc_first
  source_file: /src/haproxy/include/import/eb32sctree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pl_deref_long
  - pl_deref_int
  - __pl_wait_unlock_long
  - pl_wait_unlock_long
  - __pl_wait_unlock_int
  - pl_wait_unlock_int
  - pl_wait_new_long
  - pl_wait_new_int
  - pl_take_r
  - pl_drop_r
  - pl_take_s
  - pl_drop_s
  - pl_stor
  - pl_stow
  - pl_wtos
  - pl_wtor
  - pl_try_w
  - pl_drop_w
  - pl_try_rtow
  - __pl_r
  - pl_take_a
  - pl_drop_a
  - pl_ator
  - __pl_r
  - pl_rtoj
  - pl_jtoc
  - pl_rtoc
  - pl_drop_c
  - pl_ctoa
  - pl_atoj
  - pl_last_writer
  - pl_try_j
  - pl_take_j
  - pl_drop_j
  - pl_lorw_rdlock
  - pl_lorw_wrlock
  - pl_lorw_rdunlock
  - pl_lorw_wrunlock
  - pl_lorw_unlock
  source_file: /src/haproxy/include/import/plock.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PLOCK64_RL_1
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: 0x0000000000000004ULL
    - item_type: preproc_def
      name: PLOCK64_RL_2PL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: 0x00000000FFFFFFF8ULL
    - item_type: preproc_def
      name: PLOCK64_RL_ANY
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: 0x00000000FFFFFFFCULL
    - item_type: preproc_def
      name: PLOCK64_SL_1
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: 0x0000000100000000ULL
    - item_type: preproc_def
      name: PLOCK64_SL_ANY
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: 0x0000000300000000ULL
    - item_type: preproc_def
      name: PLOCK64_WL_1
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: 0x0000000400000000ULL
    - item_type: preproc_def
      name: PLOCK64_WL_2PL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: 0xFFFFFFF800000000ULL
    - item_type: preproc_def
      name: PLOCK64_WL_ANY
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: 0xFFFFFFFC00000000ULL
    - item_type: preproc_def
      name: PLOCK32_RL_1
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: PLOCK32_RL_2PL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '0x0000FFF8'
    - item_type: preproc_def
      name: PLOCK32_RL_ANY
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '0x0000FFFC'
    - item_type: preproc_def
      name: PLOCK32_SL_1
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: PLOCK32_SL_ANY
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '0x00030000'
    - item_type: preproc_def
      name: PLOCK32_WL_1
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '0x00040000'
    - item_type: preproc_def
      name: PLOCK32_WL_2PL
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '0xFFF80000'
    - item_type: preproc_def
      name: PLOCK32_WL_ANY
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '0xFFFC0000'
    - item_type: preproc_def
      name: PLOCK_LORW_EXC_BIT
      pos:
        line_end: 1306
        line_start: 1305
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '((sizeof(long) == 8) ?  0 :  0)'
    - item_type: preproc_def
      name: PLOCK_LORW_EXC_SIZE
      pos:
        line_end: 1307
        line_start: 1306
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '((sizeof(long) == 8) ?  1 :  1)'
    - item_type: preproc_def
      name: PLOCK_LORW_EXC_BASE
      pos:
        line_end: 1308
        line_start: 1307
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: (1UL << PLOCK_LORW_EXC_BIT)
    - item_type: preproc_def
      name: PLOCK_LORW_EXC_MASK
      pos:
        line_end: 1309
        line_start: 1308
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: (((1UL << PLOCK_LORW_EXC_SIZE) - 1UL) << PLOCK_LORW_EXC_BIT)
    - item_type: preproc_def
      name: PLOCK_LORW_WRQ_BIT
      pos:
        line_end: 1311
        line_start: 1310
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '((sizeof(long) == 8) ?  1 :  1)'
    - item_type: preproc_def
      name: PLOCK_LORW_WRQ_SIZE
      pos:
        line_end: 1312
        line_start: 1311
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '((sizeof(long) == 8) ?  1 :  1)'
    - item_type: preproc_def
      name: PLOCK_LORW_WRQ_BASE
      pos:
        line_end: 1313
        line_start: 1312
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: (1UL << PLOCK_LORW_WRQ_BIT)
    - item_type: preproc_def
      name: PLOCK_LORW_WRQ_MASK
      pos:
        line_end: 1314
        line_start: 1313
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: (((1UL << PLOCK_LORW_WRQ_SIZE) - 1UL) << PLOCK_LORW_WRQ_BIT)
    - item_type: preproc_def
      name: PLOCK_LORW_SHR_BIT
      pos:
        line_end: 1316
        line_start: 1315
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '((sizeof(long) == 8) ?  2 :  2)'
    - item_type: preproc_def
      name: PLOCK_LORW_SHR_SIZE
      pos:
        line_end: 1317
        line_start: 1316
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: '((sizeof(long) == 8) ? 30 : 30)'
    - item_type: preproc_def
      name: PLOCK_LORW_SHR_BASE
      pos:
        line_end: 1318
        line_start: 1317
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: (1UL << PLOCK_LORW_SHR_BIT)
    - item_type: preproc_def
      name: PLOCK_LORW_SHR_MASK
      pos:
        line_end: 1319
        line_start: 1318
        source_file: /src/haproxy/include/import/plock.h
      type_or_value: (((1UL << PLOCK_LORW_SHR_SIZE) - 1UL) << PLOCK_LORW_SHR_BIT)
    structs: []
    typedefs: []
    union: []
- function_names:
  - slz_init
  - slz_encode
  - slz_finish
  - slz_flush
  source_file: /src/haproxy/include/import/slz.h
  types:
    enum:
    - enumerators:
      - name: SLZ_ST_INIT
      - name: SLZ_ST_DONE
      - name: SLZ_ST_EOB
      - name: SLZ_ST_FIXED
      - name: SLZ_ST_LAST
      - name: SLZ_ST_END
      item_type: enum
      name: slz_state
      pos:
        line_end: 63
        line_start: 56
        source_file: /src/haproxy/include/import/slz.h
    preproc_defs:
    - item_type: preproc_def
      name: HASH_BITS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/import/slz.h
      type_or_value: '13'
    structs:
    - fields:
      - name: qbits
        type: uint32_t
      - name: '*outbuf'
        type: unsigned char
      - name: state
        type: uint16_t
      - name: level
        type: uint8_t
      - name: format
        type: uint8_t
      - name: unused1
        type: uint8_t
      - name: crc32
        type: uint32_t
      - name: ilen
        type: uint32_t
      item_type: struct
      name: slz_stream
      pos:
        line_end: 85
        line_start: 71
        source_file: /src/haproxy/include/import/slz.h
    typedefs: []
    union: []
- function_names:
  - XXH_IPREF
  - XXH_CAT
  - XXH_NAME2
  - XXH_HAS_ATTRIBUTE
  - XXH_HAS_ATTRIBUTE
  - XXH_HAS_C_ATTRIBUTE
  - XXH_HAS_C_ATTRIBUTE
  - XXH_HAS_CPP_ATTRIBUTE
  - XXH_HAS_CPP_ATTRIBUTE
  - XXH_ALIGN
  - XXH_ALIGN
  - XXH_ALIGN
  - XXH_ALIGN
  - XXH_ALIGN_MEMBER
  - XXH_ALIGN_MEMBER
  - XXH3_INITSTATE
  - XXH_malloc
  - XXH_free
  - XXH_malloc
  - XXH_free
  - XXH_memcpy
  - XXH_ASSERT
  - XXH_ASSERT
  - XXH_ASSERT
  - XXH_STATIC_ASSERT_WITH_MESSAGE
  - XXH_STATIC_ASSERT_WITH_MESSAGE
  - XXH_STATIC_ASSERT_WITH_MESSAGE
  - XXH_STATIC_ASSERT
  - XXH_COMPILER_GUARD
  - XXH_COMPILER_GUARD
  - XXH_COMPILER_GUARD_CLANG_NEON
  - XXH_COMPILER_GUARD_CLANG_NEON
  - XXH_read32
  - XXH_read32
  - XXH_read32
  - XXH_isLittleEndian
  - XXH_HAS_BUILTIN
  - XXH_HAS_BUILTIN
  - XXH_UNREACHABLE
  - XXH_UNREACHABLE
  - XXH_ASSUME
  - XXH_ASSUME
  - 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_HAS_INCLUDE
  - XXH_HAS_INCLUDE
  - XXH_vld1q_u64
  - XXH_vld1q_u64
  - XXH_vmlal_low_u32
  - XXH_vmlal_high_u32
  - XXH_vmlal_low_u32
  - XXH_vmlal_high_u32
  - XXH_vec_revb
  - XXH_vec_loadu
  - XXH_vec_mulo
  - XXH_vec_mule
  - ACCRND
  - XXH_PREFETCH
  - XXH_PREFETCH
  - XXH_PREFETCH
  - XXH_PREFETCH
  - XXH_mult32to64
  - XXH_mult32to64
  - XXH_mult32to64
  - XXH_mult64to128
  - XXH3_mul128_fold64
  - XXH_xorshift64
  - XXH3_avalanche
  - XXH3_rrmxmx
  - XXH3_len_1to3_64b
  - XXH3_len_4to8_64b
  - XXH3_len_9to16_64b
  - XXH3_len_0to16_64b
  - XXH3_mix16B
  - XXH3_len_17to128_64b
  - XXH3_len_129to240_64b
  - XXH3_ACCUMULATE_TEMPLATE
  - 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_sve
  - XXH_mult32to64_add64
  - XXH_mult32to64_add64
  - XXH3_scalarRound
  - XXH3_accumulate_512_scalar
  - XXH3_scalarScrambleRound
  - XXH3_scrambleAcc_scalar
  - XXH3_initCustomSecret_scalar
  - XXH3_mix2Accs
  - XXH3_mergeAccs
  - XXH64_hash_t::XXH3_hashLong_64b_internal
  - XXH64_hash_t::XXH3_hashLong_64b_withSecret
  - 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
  - XXH64_hash_t::XXH3_64bits_withSecretandSeed
  - 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_64bits_reset_withSecretandSeed
  - XXH3_consumeStripes
  - XXH_errorcode::XXH3_64bits_update
  - XXH3_digest_long
  - XXH64_hash_t::XXH3_64bits_digest
  - XXH3_len_1to3_128b
  - XXH3_len_4to8_128b
  - XXH3_len_9to16_128b
  - XXH3_len_0to16_128b
  - XXH128_hash_t::XXH128_mix32B
  - XXH3_len_17to128_128b
  - XXH3_len_129to240_128b
  - XXH128_hash_t::XXH3_hashLong_128b_internal
  - 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::XXH3_128bits_withSecretandSeed
  - 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_reset_withSecretandSeed
  - XXH_errorcode::XXH3_128bits_update
  - XXH128_hash_t::XXH3_128bits_digest
  - XXH128_isEqual
  - XXH128_cmp
  - XXH128_canonicalFromHash
  - XXH128_hash_t::XXH128_hashFromCanonical
  - XXH_MIN
  - XXH3_combine16
  - XXH_errorcode::XXH3_generateSecret
  - XXH3_generateSecret_fromSeed
  source_file: /src/haproxy/include/import/xxhash.h
  types:
    enum:
    - enumerators:
      - name: XXH_SCALAR
        value: '0'
      - name: XXH_AVX512
        value: '3'
      - name: XXH_SSE2
        value: '1'
      - name: XXH_AVX2
        value: '2'
      - name: XXH_NEON
        value: '4'
      - name: XXH_VSX
        value: '5'
      - name: XXH_SVE
        value: '6'
      item_type: enum
      name: XXH_VECTOR_TYPE
      pos:
        line_end: 3561
        line_start: 3544
        source_file: /src/haproxy/include/import/xxhash.h
    preproc_defs:
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static __inline __attribute__((unused))
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static inline
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static __inline
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH_NAMESPACE
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_INLINE_
    - item_type: preproc_def
      name: XXH_OK
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH_OK)
    - item_type: preproc_def
      name: XXH_ERROR
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH_ERROR)
    - item_type: preproc_def
      name: XXH_errorcode
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH_errorcode)
    - item_type: preproc_def
      name: XXH32_canonical_t
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH32_canonical_t)
    - item_type: preproc_def
      name: XXH64_canonical_t
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH64_canonical_t)
    - item_type: preproc_def
      name: XXH128_canonical_t
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH128_canonical_t)
    - item_type: preproc_def
      name: XXH32_state_s
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH32_state_s)
    - item_type: preproc_def
      name: XXH32_state_t
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH32_state_t)
    - item_type: preproc_def
      name: XXH64_state_s
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH64_state_s)
    - item_type: preproc_def
      name: XXH64_state_t
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH64_state_t)
    - item_type: preproc_def
      name: XXH3_state_s
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH3_state_s)
    - item_type: preproc_def
      name: XXH3_state_t
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH3_state_t)
    - item_type: preproc_def
      name: XXH128_hash_t
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_IPREF(XXH128_hash_t)
    - item_type: preproc_def
      name: XXHASH_H_5627135585666179
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: XXH_versionNumber
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH_versionNumber)
    - item_type: preproc_def
      name: XXH32
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32)
    - item_type: preproc_def
      name: XXH32_createState
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_createState)
    - item_type: preproc_def
      name: XXH32_freeState
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_freeState)
    - item_type: preproc_def
      name: XXH32_reset
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_reset)
    - item_type: preproc_def
      name: XXH32_update
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_update)
    - item_type: preproc_def
      name: XXH32_digest
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_digest)
    - item_type: preproc_def
      name: XXH32_copyState
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_copyState)
    - item_type: preproc_def
      name: XXH32_canonicalFromHash
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_canonicalFromHash)
    - item_type: preproc_def
      name: XXH32_hashFromCanonical
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_hashFromCanonical)
    - item_type: preproc_def
      name: XXH64
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64)
    - item_type: preproc_def
      name: XXH64_createState
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_createState)
    - item_type: preproc_def
      name: XXH64_freeState
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_freeState)
    - item_type: preproc_def
      name: XXH64_reset
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_reset)
    - item_type: preproc_def
      name: XXH64_update
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_update)
    - item_type: preproc_def
      name: XXH64_digest
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_digest)
    - item_type: preproc_def
      name: XXH64_copyState
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_copyState)
    - item_type: preproc_def
      name: XXH64_canonicalFromHash
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_canonicalFromHash)
    - item_type: preproc_def
      name: XXH64_hashFromCanonical
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_hashFromCanonical)
    - item_type: preproc_def
      name: XXH3_64bits
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits)
    - item_type: preproc_def
      name: XXH3_64bits_withSecret
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecret)
    - item_type: preproc_def
      name: XXH3_64bits_withSeed
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSeed)
    - item_type: preproc_def
      name: XXH3_64bits_withSecretandSeed
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecretandSeed)
    - item_type: preproc_def
      name: XXH3_createState
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_createState)
    - item_type: preproc_def
      name: XXH3_freeState
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_freeState)
    - item_type: preproc_def
      name: XXH3_copyState
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_copyState)
    - item_type: preproc_def
      name: XXH3_64bits_reset
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset)
    - item_type: preproc_def
      name: XXH3_64bits_reset_withSeed
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/haproxy/include/import/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: 421
        line_start: 420
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecret)
    - item_type: preproc_def
      name: XXH3_64bits_reset_withSecretandSeed
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecretandSeed)
    - item_type: preproc_def
      name: XXH3_64bits_update
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_update)
    - item_type: preproc_def
      name: XXH3_64bits_digest
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_digest)
    - item_type: preproc_def
      name: XXH3_generateSecret
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret)
    - item_type: preproc_def
      name: XXH3_generateSecret_fromSeed
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret_fromSeed)
    - item_type: preproc_def
      name: XXH128
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128)
    - item_type: preproc_def
      name: XXH3_128bits
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits)
    - item_type: preproc_def
      name: XXH3_128bits_withSeed
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSeed)
    - item_type: preproc_def
      name: XXH3_128bits_withSecret
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecret)
    - item_type: preproc_def
      name: XXH3_128bits_withSecretandSeed
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecretandSeed)
    - item_type: preproc_def
      name: XXH3_128bits_reset
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset)
    - item_type: preproc_def
      name: XXH3_128bits_reset_withSeed
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/haproxy/include/import/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: 435
        line_start: 434
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecret)
    - item_type: preproc_def
      name: XXH3_128bits_reset_withSecretandSeed
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecretandSeed)
    - item_type: preproc_def
      name: XXH3_128bits_update
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_update)
    - item_type: preproc_def
      name: XXH3_128bits_digest
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_digest)
    - item_type: preproc_def
      name: XXH128_isEqual
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_isEqual)
    - item_type: preproc_def
      name: XXH128_cmp
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_cmp)
    - item_type: preproc_def
      name: XXH128_canonicalFromHash
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_canonicalFromHash)
    - item_type: preproc_def
      name: XXH128_hashFromCanonical
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_hashFromCanonical)
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: XXH_CONSTF
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __attribute__((const))
    - item_type: preproc_def
      name: XXH_PUREF
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __attribute__((pure))
    - item_type: preproc_def
      name: XXH_MALLOCF
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __attribute__((malloc))
    - item_type: preproc_def
      name: XXH_VERSION_MAJOR
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_VERSION_MINOR
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_VERSION_RELEASE
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '2'
    - item_type: preproc_def
      name: XXH_VERSION_NUMBER
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE)
    - item_type: preproc_def
      name: XXH_C23_VN
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: 201711L
    - item_type: preproc_def
      name: XXH_FALLTHROUGH
      pos:
        line_end: 782
        line_start: 781
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '[[fallthrough]]'
    - item_type: preproc_def
      name: XXH_FALLTHROUGH
      pos:
        line_end: 784
        line_start: 783
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __attribute__ ((__fallthrough__))
    - item_type: preproc_def
      name: XXH_NOESCAPE
      pos:
        line_end: 797
        line_start: 796
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __attribute__((noescape))
    - item_type: preproc_def
      name: XXH3_SECRET_SIZE_MIN
      pos:
        line_end: 1093
        line_start: 1092
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '136'
    - item_type: preproc_def
      name: XXH3_INTERNALBUFFER_SIZE
      pos:
        line_end: 1505
        line_start: 1504
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '256'
    - item_type: preproc_def
      name: XXH3_SECRET_DEFAULT_SIZE
      pos:
        line_end: 1515
        line_start: 1514
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '192'
    - item_type: preproc_def
      name: XXH_FORCE_MEMORY_ACCESS
      pos:
        line_end: 1846
        line_start: 1845
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_SIZE_OPT
      pos:
        line_end: 1874
        line_start: 1873
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_ALIGN_CHECK
      pos:
        line_end: 1904
        line_start: 1903
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_NO_INLINE_HINTS
      pos:
        line_end: 1926
        line_start: 1925
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH3_INLINE_SECRET
      pos:
        line_end: 1943
        line_start: 1942
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH32_ENDJMP
      pos:
        line_end: 1955
        line_start: 1954
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_MEMORY_ACCESS
      pos:
        line_end: 1987
        line_start: 1986
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_SIZE_OPT
      pos:
        line_end: 1994
        line_start: 1993
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_SIZE_OPT
      pos:
        line_end: 1996
        line_start: 1995
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_ALIGN_CHECK
      pos:
        line_end: 2005
        line_start: 2004
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_ALIGN_CHECK
      pos:
        line_end: 2007
        line_start: 2006
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_NO_INLINE_HINTS
      pos:
        line_end: 2013
        line_start: 2012
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_NO_INLINE_HINTS
      pos:
        line_end: 2015
        line_start: 2014
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH3_INLINE_SECRET
      pos:
        line_end: 2022
        line_start: 2021
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH3_INLINE_SECRET
      pos:
        line_end: 2024
        line_start: 2023
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH32_ENDJMP
      pos:
        line_end: 2030
        line_start: 2029
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 2103
        line_start: 2102
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static __attribute__((unused))
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 2105
        line_start: 2104
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 2107
        line_start: 2106
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 2110
        line_start: 2109
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static __inline__ __attribute__((always_inline, unused))
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 2111
        line_start: 2110
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static __attribute__((noinline))
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 2113
        line_start: 2112
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static __forceinline
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 2114
        line_start: 2113
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static __declspec(noinline)
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 2117
        line_start: 2116
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static inline
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 2118
        line_start: 2117
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 2120
        line_start: 2119
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 2121
        line_start: 2120
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: static
    - item_type: preproc_def
      name: XXH3_WITH_SECRET_INLINE
      pos:
        line_end: 2125
        line_start: 2124
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_FORCE_INLINE
    - item_type: preproc_def
      name: XXH3_WITH_SECRET_INLINE
      pos:
        line_end: 2127
        line_start: 2126
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NO_INLINE
    - item_type: preproc_def
      name: XXH_DEBUGLEVEL
      pos:
        line_end: 2144
        line_start: 2143
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: DEBUGLEVEL
    - item_type: preproc_def
      name: XXH_DEBUGLEVEL
      pos:
        line_end: 2146
        line_start: 2145
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: BYTE
      pos:
        line_end: 2218
        line_start: 2217
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: xxh_u8
    - item_type: preproc_def
      name: U8
      pos:
        line_end: 2219
        line_start: 2218
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: xxh_u8
    - item_type: preproc_def
      name: U32
      pos:
        line_end: 2220
        line_start: 2219
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: xxh_u32
    - item_type: preproc_def
      name: XXH_CPU_LITTLE_ENDIAN
      pos:
        line_end: 2348
        line_start: 2347
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_CPU_LITTLE_ENDIAN
      pos:
        line_end: 2351
        line_start: 2350
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_CPU_LITTLE_ENDIAN
      pos:
        line_end: 2368
        line_start: 2367
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_isLittleEndian()
    - item_type: preproc_def
      name: XXH_GCC_VERSION
      pos:
        line_end: 2378
        line_start: 2377
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: (__GNUC__ * 100 + __GNUC_MINOR__)
    - item_type: preproc_def
      name: XXH_rotl32
      pos:
        line_end: 2446
        line_start: 2445
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __builtin_rotateleft32
    - item_type: preproc_def
      name: XXH_rotl64
      pos:
        line_end: 2447
        line_start: 2446
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __builtin_rotateleft64
    - item_type: preproc_def
      name: XXH_swap32
      pos:
        line_end: 2466
        line_start: 2465
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: _byteswap_ulong
    - item_type: preproc_def
      name: XXH_swap32
      pos:
        line_end: 2468
        line_start: 2467
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __builtin_bswap32
    - item_type: preproc_def
      name: XXH_PRIME32_1
      pos:
        line_end: 2560
        line_start: 2559
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0x9E3779B1U  '
    - item_type: preproc_def
      name: XXH_PRIME32_2
      pos:
        line_end: 2561
        line_start: 2560
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0x85EBCA77U  '
    - item_type: preproc_def
      name: XXH_PRIME32_3
      pos:
        line_end: 2562
        line_start: 2561
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0xC2B2AE3DU  '
    - item_type: preproc_def
      name: XXH_PRIME32_4
      pos:
        line_end: 2563
        line_start: 2562
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0x27D4EB2FU  '
    - item_type: preproc_def
      name: XXH_PRIME32_5
      pos:
        line_end: 2564
        line_start: 2563
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0x165667B1U  '
    - item_type: preproc_def
      name: PRIME32_1
      pos:
        line_end: 2567
        line_start: 2566
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PRIME32_1
    - item_type: preproc_def
      name: PRIME32_2
      pos:
        line_end: 2568
        line_start: 2567
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PRIME32_2
    - item_type: preproc_def
      name: PRIME32_3
      pos:
        line_end: 2569
        line_start: 2568
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PRIME32_3
    - item_type: preproc_def
      name: PRIME32_4
      pos:
        line_end: 2570
        line_start: 2569
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PRIME32_4
    - item_type: preproc_def
      name: PRIME32_5
      pos:
        line_end: 2571
        line_start: 2570
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PRIME32_5
    - item_type: preproc_def
      name: XXH_PROCESS1
      pos:
        line_end: 2675
        line_start: 2671
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: "do {                             \\\n    hash += (*ptr++) *
        XXH_PRIME32_5;                 \\\n    hash = XXH_rotl32(hash, 11) * XXH_PRIME32_1;
        \     \\\n} while (0)"
    - item_type: preproc_def
      name: XXH_PROCESS4
      pos:
        line_end: 2681
        line_start: 2676
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: "do {                             \\\n    hash += XXH_get32bits(ptr)
        * XXH_PRIME32_3;       \\\n    ptr += 4;                                         \\\n
        \   hash  = XXH_rotl32(hash, 17) * XXH_PRIME32_4;     \\\n} while (0)"
    - item_type: preproc_def
      name: PROCESS1
      pos:
        line_end: 2743
        line_start: 2742
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PROCESS1
    - item_type: preproc_def
      name: PROCESS4
      pos:
        line_end: 2744
        line_start: 2743
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PROCESS4
    - item_type: preproc_def
      name: U64
      pos:
        line_end: 2964
        line_start: 2963
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: xxh_u64
    - item_type: preproc_def
      name: XXH_swap64
      pos:
        line_end: 3014
        line_start: 3013
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: _byteswap_uint64
    - item_type: preproc_def
      name: XXH_swap64
      pos:
        line_end: 3016
        line_start: 3015
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __builtin_bswap64
    - item_type: preproc_def
      name: XXH_PRIME64_1
      pos:
        line_end: 3093
        line_start: 3092
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0x9E3779B185EBCA87ULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_2
      pos:
        line_end: 3094
        line_start: 3093
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0xC2B2AE3D27D4EB4FULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_3
      pos:
        line_end: 3095
        line_start: 3094
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0x165667B19E3779F9ULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_4
      pos:
        line_end: 3096
        line_start: 3095
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0x85EBCA77C2B2AE63ULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_5
      pos:
        line_end: 3097
        line_start: 3096
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0x27D4EB2F165667C5ULL  '
    - item_type: preproc_def
      name: PRIME64_1
      pos:
        line_end: 3100
        line_start: 3099
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PRIME64_1
    - item_type: preproc_def
      name: PRIME64_2
      pos:
        line_end: 3101
        line_start: 3100
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PRIME64_2
    - item_type: preproc_def
      name: PRIME64_3
      pos:
        line_end: 3102
        line_start: 3101
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PRIME64_3
    - item_type: preproc_def
      name: PRIME64_4
      pos:
        line_end: 3103
        line_start: 3102
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PRIME64_4
    - item_type: preproc_def
      name: PRIME64_5
      pos:
        line_end: 3104
        line_start: 3103
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PRIME64_5
    - item_type: preproc_def
      name: PROCESS1_64
      pos:
        line_end: 3180
        line_start: 3179
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PROCESS1_64
    - item_type: preproc_def
      name: PROCESS4_64
      pos:
        line_end: 3181
        line_start: 3180
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PROCESS4_64
    - item_type: preproc_def
      name: PROCESS8_64
      pos:
        line_end: 3182
        line_start: 3181
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_PROCESS8_64
    - item_type: preproc_def
      name: XXH_RESTRICT
      pos:
        line_end: 3393
        line_start: 3392
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: restrict
    - item_type: preproc_def
      name: XXH_RESTRICT
      pos:
        line_end: 3402
        line_start: 3401
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __restrict
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 3433
        line_start: 3432
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '__inline__  '
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 3535
        line_start: 3534
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_SCALAR
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 3572
        line_start: 3571
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_SCALAR
      pos:
        line_end: 3577
        line_start: 3576
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_SSE2
      pos:
        line_end: 3578
        line_start: 3577
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_AVX2
      pos:
        line_end: 3579
        line_start: 3578
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '2'
    - item_type: preproc_def
      name: XXH_AVX512
      pos:
        line_end: 3580
        line_start: 3579
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '3'
    - item_type: preproc_def
      name: XXH_NEON
      pos:
        line_end: 3581
        line_start: 3580
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '4'
    - item_type: preproc_def
      name: XXH_VSX
      pos:
        line_end: 3582
        line_start: 3581
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '5'
    - item_type: preproc_def
      name: XXH_SVE
      pos:
        line_end: 3583
        line_start: 3582
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '6'
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 3588
        line_start: 3587
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_SVE
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 3597
        line_start: 3596
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_NEON
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 3599
        line_start: 3598
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_AVX512
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 3601
        line_start: 3600
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_AVX2
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 3603
        line_start: 3602
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_SSE2
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 3607
        line_start: 3606
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_VSX
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 3609
        line_start: 3608
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_SCALAR
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 3621
        line_start: 3620
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_SCALAR
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 3630
        line_start: 3629
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '64  '
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 3632
        line_start: 3631
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 3634
        line_start: 3633
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '16'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 3636
        line_start: 3635
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '32'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 3638
        line_start: 3637
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '16'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 3640
        line_start: 3639
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '16'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 3642
        line_start: 3641
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '64'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 3644
        line_start: 3643
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '64'
    - item_type: preproc_def
      name: XXH_SEC_ALIGN
      pos:
        line_end: 3650
        line_start: 3649
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_ACC_ALIGN
    - item_type: preproc_def
      name: XXH_SEC_ALIGN
      pos:
        line_end: 3652
        line_start: 3651
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_ACC_ALIGN
    - item_type: preproc_def
      name: XXH_SEC_ALIGN
      pos:
        line_end: 3654
        line_start: 3653
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_ALIASING
      pos:
        line_end: 3658
        line_start: 3657
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __attribute__((may_alias))
    - item_type: preproc_def
      name: XXH3_NEON_LANES
      pos:
        line_end: 3806
        line_start: 3805
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '6'
    - item_type: preproc_def
      name: XXH3_NEON_LANES
      pos:
        line_end: 3808
        line_start: 3807
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_ACC_NB
    - item_type: preproc_def
      name: XXH_VSX_BE
      pos:
        line_end: 3861
        line_start: 3860
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_VSX_BE
      pos:
        line_end: 3864
        line_start: 3863
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_VSX_BE
      pos:
        line_end: 3866
        line_start: 3865
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_vec_revb
      pos:
        line_end: 3872
        line_start: 3871
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: vec_revb
    - item_type: preproc_def
      name: XXH_vec_mulo
      pos:
        line_end: 3907
        line_start: 3906
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: vec_mulo
    - item_type: preproc_def
      name: XXH_vec_mule
      pos:
        line_end: 3908
        line_start: 3907
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: vec_mule
    - item_type: preproc_def
      name: XXH_vec_mulo
      pos:
        line_end: 3912
        line_start: 3911
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __builtin_altivec_vmulouw
    - item_type: preproc_def
      name: XXH_vec_mule
      pos:
        line_end: 3913
        line_start: 3912
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: __builtin_altivec_vmuleuw
    - item_type: preproc_def
      name: XXH_SECRET_DEFAULT_SIZE
      pos:
        line_end: 3968
        line_start: 3967
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '192   '
    - item_type: preproc_def
      name: kSecret
      pos:
        line_end: 3994
        line_start: 3993
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_kSecret
    - item_type: preproc_def
      name: XXH3_MIDSIZE_MAX
      pos:
        line_end: 4411
        line_start: 4410
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '240'
    - item_type: preproc_def
      name: XXH3_MIDSIZE_STARTOFFSET
      pos:
        line_end: 4421
        line_start: 4420
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '3'
    - item_type: preproc_def
      name: XXH3_MIDSIZE_LASTOFFSET
      pos:
        line_end: 4422
        line_start: 4421
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '17'
    - item_type: preproc_def
      name: XXH_STRIPE_LEN
      pos:
        line_end: 4475
        line_start: 4474
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '64'
    - item_type: preproc_def
      name: XXH_SECRET_CONSUME_RATE
      pos:
        line_end: 4476
        line_start: 4475
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '8   '
    - item_type: preproc_def
      name: XXH_ACC_NB
      pos:
        line_end: 4477
        line_start: 4476
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: (XXH_STRIPE_LEN / sizeof(xxh_u64))
    - item_type: preproc_def
      name: STRIPE_LEN
      pos:
        line_end: 4480
        line_start: 4479
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_STRIPE_LEN
    - item_type: preproc_def
      name: ACC_NB
      pos:
        line_end: 4481
        line_start: 4480
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH_ACC_NB
    - item_type: preproc_def
      name: XXH_PREFETCH_DIST
      pos:
        line_end: 4486
        line_start: 4485
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '320'
    - item_type: preproc_def
      name: XXH_PREFETCH_DIST
      pos:
        line_end: 4489
        line_start: 4488
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '512'
    - item_type: preproc_def
      name: XXH_PREFETCH_DIST
      pos:
        line_end: 4491
        line_start: 4490
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '384'
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 5475
        line_start: 5474
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_512_avx512
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 5476
        line_start: 5475
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_avx512
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 5477
        line_start: 5476
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_scrambleAcc_avx512
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 5478
        line_start: 5477
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_initCustomSecret_avx512
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 5482
        line_start: 5481
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_512_avx2
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 5483
        line_start: 5482
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_avx2
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 5484
        line_start: 5483
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_scrambleAcc_avx2
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 5485
        line_start: 5484
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_initCustomSecret_avx2
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 5489
        line_start: 5488
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_512_sse2
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 5490
        line_start: 5489
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_sse2
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 5491
        line_start: 5490
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_scrambleAcc_sse2
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 5492
        line_start: 5491
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_initCustomSecret_sse2
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 5496
        line_start: 5495
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_512_neon
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 5497
        line_start: 5496
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_neon
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 5498
        line_start: 5497
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_scrambleAcc_neon
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 5499
        line_start: 5498
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 5503
        line_start: 5502
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_512_vsx
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 5504
        line_start: 5503
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_vsx
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 5505
        line_start: 5504
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_scrambleAcc_vsx
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 5506
        line_start: 5505
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 5509
        line_start: 5508
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_512_sve
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 5510
        line_start: 5509
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_sve
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 5511
        line_start: 5510
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_scrambleAcc_scalar
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 5512
        line_start: 5511
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 5516
        line_start: 5515
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_512_scalar
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 5517
        line_start: 5516
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_accumulate_scalar
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 5518
        line_start: 5517
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_scrambleAcc_scalar
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 5519
        line_start: 5518
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 5525
        line_start: 5524
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH_SECRET_LASTACC_START
      pos:
        line_end: 5556
        line_start: 5555
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '7  '
    - item_type: preproc_def
      name: XXH3_INIT_ACC
      pos:
        line_end: 5597
        line_start: 5595
        source_file: /src/haproxy/include/import/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: 5612
        line_start: 5611
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '11'
    - item_type: preproc_def
      name: XXH3_STREAM_USE_STACK
      pos:
        line_end: 5976
        line_start: 5975
        source_file: /src/haproxy/include/import/xxhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH3_INTERNALBUFFER_STRIPES
      pos:
        line_end: 6017
        line_start: 6016
        source_file: /src/haproxy/include/import/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: 713
        line_start: 711
        source_file: /src/haproxy/include/import/xxhash.h
    - fields:
      - name: digest[sizeof(XXH64_hash_t)]
        type: unsigned char
      item_type: struct
      name: XXH64_canonical_t
      pos:
        line_end: 967
        line_start: 967
        source_file: /src/haproxy/include/import/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: 1241
        line_start: 1238
        source_file: /src/haproxy/include/import/xxhash.h
    - fields:
      - name: digest[sizeof(XXH128_hash_t)]
        type: unsigned char
      item_type: struct
      name: XXH128_canonical_t
      pos:
        line_end: 1374
        line_start: 1374
        source_file: /src/haproxy/include/import/xxhash.h
    - fields:
      - name: total_len_32
        type: XXH32_hash_t
      - name: large_len
        type: XXH32_hash_t
      - name: v[4]
        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: 1446
        line_start: 1439
        source_file: /src/haproxy/include/import/xxhash.h
    - fields:
      - name: total_len
        type: XXH64_hash_t
      - name: v[4]
        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: 1470
        line_start: 1463
        source_file: /src/haproxy/include/import/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: useSeed
        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: 1565
        line_start: 1538
        source_file: /src/haproxy/include/import/xxhash.h
    typedefs:
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 514
        line_start: 514
        source_file: /src/haproxy/include/import/xxhash.h
      type: uint32_t
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 520
        line_start: 520
        source_file: /src/haproxy/include/import/xxhash.h
      type: uint32_t
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 525
        line_start: 525
        source_file: /src/haproxy/include/import/xxhash.h
      type: unsigned int
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 527
        line_start: 527
        source_file: /src/haproxy/include/import/xxhash.h
      type: unsigned long
    - item_type: typedef
      name: XXH32_state_t
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/haproxy/include/import/xxhash.h
      type: XXH32_state_s
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 819
        line_start: 819
        source_file: /src/haproxy/include/import/xxhash.h
      type: uint64_t
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 824
        line_start: 824
        source_file: /src/haproxy/include/import/xxhash.h
      type: uint64_t
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 829
        line_start: 829
        source_file: /src/haproxy/include/import/xxhash.h
      type: unsigned long
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/haproxy/include/import/xxhash.h
      type: unsigned long long
    - item_type: typedef
      name: XXH64_state_t
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/haproxy/include/import/xxhash.h
      type: XXH64_state_s
    - item_type: typedef
      name: XXH3_state_t
      pos:
        line_end: 1129
        line_start: 1129
        source_file: /src/haproxy/include/import/xxhash.h
      type: XXH3_state_s
    - item_type: typedef
      name: xxh_u8
      pos:
        line_end: 2209
        line_start: 2209
        source_file: /src/haproxy/include/import/xxhash.h
      type: uint8_t
    - item_type: typedef
      name: xxh_u8
      pos:
        line_end: 2211
        line_start: 2211
        source_file: /src/haproxy/include/import/xxhash.h
      type: unsigned char
    - item_type: typedef
      name: xxh_u32
      pos:
        line_end: 2213
        line_start: 2213
        source_file: /src/haproxy/include/import/xxhash.h
      type: XXH32_hash_t
    - item_type: typedef
      name: ((aligned(1)))
      pos:
        line_end: 2301
        line_start: 2301
        source_file: /src/haproxy/include/import/xxhash.h
      type: __attribute__
    - item_type: typedef
      name: xxh_u64
      pos:
        line_end: 2960
        line_start: 2960
        source_file: /src/haproxy/include/import/xxhash.h
      type: XXH64_hash_t
    - item_type: typedef
      name: ((aligned(1)))
      pos:
        line_end: 2993
        line_start: 2993
        source_file: /src/haproxy/include/import/xxhash.h
      type: __attribute__
    - item_type: typedef
      name: xxh_aliasing_uint64x2_t
      pos:
        line_end: 3699
        line_start: 3699
        source_file: /src/haproxy/include/import/xxhash.h
      type: uint64x2_t
    - item_type: typedef
      name: xxh_u64x2
      pos:
        line_end: 3848
        line_start: 3848
        source_file: /src/haproxy/include/import/xxhash.h
      type: __vector unsigned long long
    - item_type: typedef
      name: xxh_u8x16
      pos:
        line_end: 3849
        line_start: 3849
        source_file: /src/haproxy/include/import/xxhash.h
      type: __vector unsigned
    - item_type: typedef
      name: xxh_u32x4
      pos:
        line_end: 3850
        line_start: 3850
        source_file: /src/haproxy/include/import/xxhash.h
      type: __vector unsigned
    - item_type: typedef
      name: xxh_aliasing_u64x2
      pos:
        line_end: 3855
        line_start: 3855
        source_file: /src/haproxy/include/import/xxhash.h
      type: xxh_u64x2
    - item_type: typedef
      name: xxh_i64
      pos:
        line_end: 4538
        line_start: 4538
        source_file: /src/haproxy/include/import/xxhash.h
      type: int64_t
    - item_type: typedef
      name: xxh_i64
      pos:
        line_end: 4541
        line_start: 4541
        source_file: /src/haproxy/include/import/xxhash.h
      type: long long
    - item_type: typedef
      name: (*XXH3_f_accumulate)(xxh_u64* XXH_RESTRICT, const xxh_u8* XXH_RESTRICT,
        const xxh_u8* XXH_RESTRICT, size_t)
      pos:
        line_end: 5467
        line_start: 5467
        source_file: /src/haproxy/include/import/xxhash.h
      type: void
    - item_type: typedef
      name: (*XXH3_f_scrambleAcc)(void* XXH_RESTRICT, const void*)
      pos:
        line_end: 5468
        line_start: 5468
        source_file: /src/haproxy/include/import/xxhash.h
      type: void
    - item_type: typedef
      name: (*XXH3_f_initCustomSecret)(void* XXH_RESTRICT, xxh_u64)
      pos:
        line_end: 5469
        line_start: 5469
        source_file: /src/haproxy/include/import/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: 5690
        line_start: 5689
        source_file: /src/haproxy/include/import/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: 6493
        line_start: 6492
        source_file: /src/haproxy/include/import/xxhash.h
      type: XXH128_hash_t
    union:
    - fields:
      - name: u32
        type: xxh_u32
      item_type: union
      name: unalign
      pos:
        line_end: 2297
        line_start: 2297
        source_file: /src/haproxy/include/import/xxhash.h
    - fields:
      - name: u
        type: xxh_u32
      - name: c[4]
        type: xxh_u8
      item_type: union
      name: one = { 1 }
      pos:
        line_end: 2364
        line_start: 2364
        source_file: /src/haproxy/include/import/xxhash.h
    - fields:
      - name: u32
        type: xxh_u32
      - name: u64
        type: xxh_u64
      item_type: union
      name: unalign64
      pos:
        line_end: 2989
        line_start: 2989
        source_file: /src/haproxy/include/import/xxhash.h
- function_names:
  - cebb_imm_key
  - cebb_ofs_key
  - cebb_item_insert
  - cebb_item_first
  - cebb_item_last
  - cebb_item_lookup
  - cebb_item_lookup_le
  - cebb_item_lookup_lt
  - cebb_item_lookup_ge
  - cebb_item_lookup_gt
  - cebb_item_next_unique
  - cebb_item_prev_unique
  - cebb_item_next_dup
  - cebb_item_prev_dup
  - cebb_item_next
  - cebb_item_prev
  - cebb_item_delete
  - cebb_item_pick
  - cebub_item_insert
  - cebub_item_first
  - cebub_item_last
  - cebub_item_lookup
  - cebub_item_lookup_le
  - cebub_item_lookup_lt
  - cebub_item_lookup_ge
  - cebub_item_lookup_gt
  - cebub_item_next
  - cebub_item_prev
  - cebub_item_delete
  - cebub_item_pick
  source_file: /src/haproxy/include/import/cebb_tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/import/sha1.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: unsigned long long
      - name: H[5]
        type: unsigned int
      - name: W[16]
        type: unsigned int
      item_type: struct
      name: blk_SHA_CTX
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/haproxy/include/import/sha1.h
    typedefs: []
    union: []
- function_names:
  - ebmb_entry
  - ebmb_first
  - ebmb_last
  - ebmb_next
  - ebmb_prev
  - ebmb_next_dup
  - ebmb_prev_dup
  - ebmb_next_unique
  - ebmb_prev_unique
  - ebmb_delete
  - ebmb_lookup_shorter
  - __ebmb_delete
  - __ebmb_lookup
  - __ebmb_insert
  - __ebmb_lookup_longest
  - __ebmb_lookup_prefix
  - __ebmb_insert_prefix
  source_file: /src/haproxy/include/import/ebmbtree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ceb32_imm_key
  - ceb32_ofs_key
  - ceb32_item_insert
  - ceb32_item_first
  - ceb32_item_last
  - ceb32_item_lookup
  - ceb32_item_lookup_le
  - ceb32_item_lookup_lt
  - ceb32_item_lookup_ge
  - ceb32_item_lookup_gt
  - ceb32_item_next_unique
  - ceb32_item_prev_unique
  - ceb32_item_next_dup
  - ceb32_item_prev_dup
  - ceb32_item_next
  - ceb32_item_prev
  - ceb32_item_delete
  - ceb32_item_pick
  - cebu32_item_insert
  - cebu32_item_first
  - cebu32_item_last
  - cebu32_item_lookup
  - cebu32_item_lookup_le
  - cebu32_item_lookup_lt
  - cebu32_item_lookup_ge
  - cebu32_item_lookup_gt
  - cebu32_item_next
  - cebu32_item_prev
  - cebu32_item_delete
  - cebu32_item_pick
  source_file: /src/haproxy/include/import/ceb32_tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IST
  - ist
  - ist
  - ist2
  - isttest
  - ist0
  - istptr
  - istlen
  - istend
  - istnext
  - istshift
  - istpad
  - isttrim
  - istclear
  - istzero
  - iststrip
  - istdiff
  - istmatch
  - istmatchi
  - istnmatch
  - isteq
  - isteqi
  - istneq
  - __istappend
  - istcpy
  - istscpy
  - istcat
  - istscat
  - ist2bin
  - ist2str
  - ist2bin_lc
  - ist2str_lc
  - ist2bin_uc
  - ist2str_uc
  - istchr
  - ist_find_ctl
  - ist_find_range
  - istfind
  - istskip
  - istist
  - iststop
  - istadv
  - istsplit
  - istissame
  - istalloc
  - istfree
  - istdup
  source_file: /src/haproxy/include/import/ist.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _IST_LC
      pos:
        line_end: 74
        line_start: 40
        source_file: /src/haproxy/include/import/ist.h
      type_or_value: "{                                       \\\n\t0x00, 0x01, 0x02,
        0x03, 0x04, 0x05, 0x06, 0x07, \\\n\t0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
        0x0f, \\\n\t0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, \\\n\t0x18, 0x19,
        0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, \\\n\t0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
        0x26, 0x27, \\\n\t0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, \\\n\t0x30,
        0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, \\\n\t0x38, 0x39, 0x3a, 0x3b, 0x3c,
        0x3d, 0x3e, 0x3f, \\\n\t0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, \\\n\t0x68,
        0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, \\\n\t0x70, 0x71, 0x72, 0x73, 0x74,
        0x75, 0x76, 0x77, \\\n\t0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, \\\n\t0x60,
        0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, \\\n\t0x68, 0x69, 0x6a, 0x6b, 0x6c,
        0x6d, 0x6e, 0x6f, \\\n\t0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, \\\n\t0x78,
        0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, \\\n\t0x80, 0x81, 0x82, 0x83, 0x84,
        0x85, 0x86, 0x87, \\\n\t0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, \\\n\t0x90,
        0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, \\\n\t0x98, 0x99, 0x9a, 0x9b, 0x9c,
        0x9d, 0x9e, 0x9f, \\\n\t0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, \\\n\t0xa8,
        0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, \\\n\t0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
        0xb5, 0xb6, 0xb7, \\\n\t0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, \\\n\t0xc0,
        0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, \\\n\t0xc8, 0xc9, 0xca, 0xcb, 0xcc,
        0xcd, 0xce, 0xcf, \\\n\t0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, \\\n\t0xd8,
        0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, \\\n\t0xe0, 0xe1, 0xe2, 0xe3, 0xe4,
        0xe5, 0xe6, 0xe7, \\\n\t0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, \\\n\t0xf0,
        0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, \\\n\t0xf8, 0xf9, 0xfa, 0xfb, 0xfc,
        0xfd, 0xfe, 0xff, \\\n}"
    - item_type: preproc_def
      name: _IST_UC
      pos:
        line_end: 110
        line_start: 76
        source_file: /src/haproxy/include/import/ist.h
      type_or_value: "{                                       \\\n\t0x00, 0x01, 0x02,
        0x03, 0x04, 0x05, 0x06, 0x07, \\\n\t0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
        0x0f, \\\n\t0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, \\\n\t0x18, 0x19,
        0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, \\\n\t0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
        0x26, 0x27, \\\n\t0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, \\\n\t0x30,
        0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, \\\n\t0x38, 0x39, 0x3a, 0x3b, 0x3c,
        0x3d, 0x3e, 0x3f, \\\n\t0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, \\\n\t0x48,
        0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, \\\n\t0x50, 0x51, 0x52, 0x53, 0x54,
        0x55, 0x56, 0x57, \\\n\t0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, \\\n\t0x60,
        0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, \\\n\t0x48, 0x49, 0x4a, 0x4b, 0x4c,
        0x4d, 0x4e, 0x4f, \\\n\t0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, \\\n\t0x58,
        0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, \\\n\t0x80, 0x81, 0x82, 0x83, 0x84,
        0x85, 0x86, 0x87, \\\n\t0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, \\\n\t0x90,
        0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, \\\n\t0x98, 0x99, 0x9a, 0x9b, 0x9c,
        0x9d, 0x9e, 0x9f, \\\n\t0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, \\\n\t0xa8,
        0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, \\\n\t0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
        0xb5, 0xb6, 0xb7, \\\n\t0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, \\\n\t0xc0,
        0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, \\\n\t0xc8, 0xc9, 0xca, 0xcb, 0xcc,
        0xcd, 0xce, 0xcf, \\\n\t0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, \\\n\t0xd8,
        0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, \\\n\t0xe0, 0xe1, 0xe2, 0xe3, 0xe4,
        0xe5, 0xe6, 0xe7, \\\n\t0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, \\\n\t0xf0,
        0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, \\\n\t0xf8, 0xf9, 0xfa, 0xfb, 0xfc,
        0xfd, 0xfe, 0xff, \\\n}"
    - item_type: preproc_def
      name: ist_lc
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/haproxy/include/import/ist.h
      type_or_value: ((const unsigned char[256])_IST_LC)
    - item_type: preproc_def
      name: ist_uc
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/haproxy/include/import/ist.h
      type_or_value: ((const unsigned char[256])_IST_UC)
    - item_type: preproc_def
      name: IST_NULL
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/haproxy/include/import/ist.h
      type_or_value: ((const struct ist){ .ptr = 0, .len = 0 })
    structs:
    - fields:
      - name: '*ptr'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: ist
      pos:
        line_end: 134
        line_start: 131
        source_file: /src/haproxy/include/import/ist.h
    typedefs: []
    union:
    - fields:
      - name: v
        type: unsigned long
      item_type: union
      name: '*u'
      pos:
        line_end: 737
        line_start: 737
        source_file: /src/haproxy/include/import/ist.h
    - fields:
      - name: v
        type: unsigned long
      item_type: union
      name: '*u'
      pos:
        line_end: 779
        line_start: 779
        source_file: /src/haproxy/include/import/ist.h
- function_names: []
  source_file: /src/haproxy/include/import/lru.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*n'
        type: struct lru64_list
      - name: '*p'
        type: struct lru64_list
      item_type: struct
      name: lru64_list
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/haproxy/include/import/lru.h
    - fields:
      - name: list
        type: struct lru64_list
      - name: keys
        type: struct eb_root
      - name: '*spare'
        type: struct lru64
      - name: cache_size
        type: int
      - name: cache_usage
        type: int
      item_type: struct
      name: lru64_head
      pos:
        line_end: 57
        line_start: 51
        source_file: /src/haproxy/include/import/lru.h
    - fields:
      - name: node
        type: struct eb64_node
      - name: lru
        type: struct lru64_list
      - name: '*domain'
        type: void
      - name: revision
        type: unsigned long long
      - name: '*data'
        type: void
      - name: (*free)(void *data)
        type: void
      item_type: struct
      name: lru64
      pos:
        line_end: 66
        line_start: 59
        source_file: /src/haproxy/include/import/lru.h
    typedefs: []
    union: []
- function_names:
  - ebpt_entry
  - ebpt_first
  - ebpt_last
  - ebpt_next
  - ebpt_prev
  - ebpt_next_dup
  - ebpt_prev_dup
  - ebpt_next_unique
  - ebpt_prev_unique
  - ebpt_delete
  - ebpt_lookup
  - ebpt_lookup_le
  - ebpt_lookup_ge
  - ebpt_insert
  - __ebpt_delete
  - __ebpt_lookup
  - __ebpt_insert
  source_file: /src/haproxy/include/import/ebpttree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cebl_imm_key
  - cebl_ofs_key
  - cebl_item_insert
  - cebl_item_first
  - cebl_item_last
  - cebl_item_lookup
  - cebl_item_lookup_le
  - cebl_item_lookup_lt
  - cebl_item_lookup_ge
  - cebl_item_lookup_gt
  - cebl_item_next_unique
  - cebl_item_prev_unique
  - cebl_item_next_dup
  - cebl_item_prev_dup
  - cebl_item_next
  - cebl_item_prev
  - cebl_item_delete
  - cebl_item_pick
  - cebul_item_insert
  - cebul_item_first
  - cebul_item_last
  - cebul_item_lookup
  - cebul_item_lookup_le
  - cebul_item_lookup_lt
  - cebul_item_lookup_ge
  - cebul_item_lookup_gt
  - cebul_item_next
  - cebul_item_prev
  - cebul_item_delete
  - cebul_item_pick
  source_file: /src/haproxy/include/import/cebl_tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cebis_imm_key
  - cebis_ofs_key
  - cebis_item_insert
  - cebis_item_first
  - cebis_item_last
  - cebis_item_lookup
  - cebis_item_lookup_le
  - cebis_item_lookup_lt
  - cebis_item_lookup_ge
  - cebis_item_lookup_gt
  - cebis_item_next_unique
  - cebis_item_prev_unique
  - cebis_item_next_dup
  - cebis_item_prev_dup
  - cebis_item_next
  - cebis_item_prev
  - cebis_item_delete
  - cebis_item_pick
  - cebuis_item_insert
  - cebuis_item_first
  - cebuis_item_last
  - cebuis_item_lookup
  - cebuis_item_lookup_le
  - cebuis_item_lookup_lt
  - cebuis_item_lookup_ge
  - cebuis_item_lookup_gt
  - cebuis_item_next
  - cebuis_item_prev
  - cebuis_item_delete
  - cebuis_item_pick
  source_file: /src/haproxy/include/import/cebis_tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ebis_lookup_len
  - __ebis_lookup
  - __ebis_insert
  source_file: /src/haproxy/include/import/ebistree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - eb32_entry
  - eb32_first
  - eb32_last
  - eb32_next
  - eb32_prev
  - eb32_next_dup
  - eb32_prev_dup
  - eb32_next_unique
  - eb32_prev_unique
  - eb32_delete
  - __eb32_delete
  - __eb32_lookup
  - __eb32i_lookup
  - __eb32_insert
  - __eb32i_insert
  source_file: /src/haproxy/include/import/eb32tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cebib_imm_key
  - cebib_ofs_key
  - cebib_item_insert
  - cebib_item_first
  - cebib_item_last
  - cebib_item_lookup
  - cebib_item_lookup_le
  - cebib_item_lookup_lt
  - cebib_item_lookup_ge
  - cebib_item_lookup_gt
  - cebib_item_next_unique
  - cebib_item_prev_unique
  - cebib_item_next_dup
  - cebib_item_prev_dup
  - cebib_item_next
  - cebib_item_prev
  - cebib_item_delete
  - cebib_item_pick
  - cebuib_item_insert
  - cebuib_item_first
  - cebuib_item_last
  - cebuib_item_lookup
  - cebuib_item_lookup_le
  - cebuib_item_lookup_lt
  - cebuib_item_lookup_ge
  - cebuib_item_lookup_gt
  - cebuib_item_next
  - cebuib_item_prev
  - cebuib_item_delete
  - cebuib_item_pick
  source_file: /src/haproxy/include/import/cebib_tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __ebim_lookup
  - __ebim_insert
  source_file: /src/haproxy/include/import/ebimtree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MJSON_TOK_IS_VALUE
  source_file: /src/haproxy/include/import/mjson.h
  types:
    enum:
    - enumerators:
      - name: MJSON_TOK_INVALID
        value: '0'
      - name: MJSON_TOK_KEY
        value: '1'
      - name: MJSON_TOK_STRING
        value: '11'
      - name: MJSON_TOK_NUMBER
        value: '12'
      - name: MJSON_TOK_TRUE
        value: '13'
      - name: MJSON_TOK_FALSE
        value: '14'
      - name: MJSON_TOK_NULL
        value: '15'
      - name: MJSON_TOK_ARRAY
        value: '91'
      - name: MJSON_TOK_OBJECT
        value: '123'
      item_type: enum
      name: mjson_tok
      pos:
        line_end: 39
        line_start: 29
        source_file: /src/haproxy/include/import/mjson.h
    preproc_defs:
    - item_type: preproc_def
      name: MJSON_MAX_DEPTH
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/include/import/mjson.h
      type_or_value: '20'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*mjson_cb_t)(int ev, const char *s, int off, int len, void *ud)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/haproxy/include/import/mjson.h
      type: int
    union: []
- function_names:
  - eb64_entry
  - eb64_first
  - eb64_last
  - eb64_next
  - eb64_prev
  - eb64_next_dup
  - eb64_prev_dup
  - eb64_next_unique
  - eb64_prev_unique
  - eb64_delete
  - __eb64_delete
  - __eb64_lookup
  - __eb64i_lookup
  - __eb64_insert
  - __eb64i_insert
  source_file: /src/haproxy/include/import/eb64tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cebs_imm_key
  - cebs_ofs_key
  - cebs_item_insert
  - cebs_item_first
  - cebs_item_last
  - cebs_item_lookup
  - cebs_item_lookup_le
  - cebs_item_lookup_lt
  - cebs_item_lookup_ge
  - cebs_item_lookup_gt
  - cebs_item_next_unique
  - cebs_item_prev_unique
  - cebs_item_next_dup
  - cebs_item_prev_dup
  - cebs_item_next
  - cebs_item_prev
  - cebs_item_delete
  - cebs_item_pick
  - cebus_item_insert
  - cebus_item_first
  - cebus_item_last
  - cebus_item_lookup
  - cebus_item_lookup_le
  - cebus_item_lookup_lt
  - cebus_item_lookup_ge
  - cebus_item_lookup_gt
  - cebus_item_next
  - cebus_item_prev
  - cebus_item_delete
  - cebus_item_pick
  source_file: /src/haproxy/include/import/cebs_tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - da_json_file
  - da_log_level
  - da_property_separator
  - da_properties_cookie
  - da_cache_size
  - da_haproxy_read
  - da_haproxy_seek
  - da_haproxy_log
  - init_deviceatlas
  - deinit_deviceatlas
  - da_haproxy_checkinst
  - da_haproxy
  - da_haproxy_conv
  - da_haproxy_fetch
  - da_haproxy_register_build_options
  source_file: /src/haproxy/addons/deviceatlas/da.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ATLASTOKSZ
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/haproxy/addons/deviceatlas/da.c
      type_or_value: PATH_MAX
    - item_type: preproc_def
      name: ATLASMAPNM
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/haproxy/addons/deviceatlas/da.c
      type_or_value: '"/da_map_sch_data"'
    - item_type: preproc_def
      name: DA_COOKIENAME_DEFAULT
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/haproxy/addons/deviceatlas/da.c
      type_or_value: '"DAPROPS"'
    - item_type: preproc_def
      name: DA_MAX_HEADERS
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/haproxy/addons/deviceatlas/da.c
      type_or_value: '32'
    structs:
    - fields:
      - name: '*atlasimgptr'
        type: void
      - name: '*atlasmap'
        type: void
      - name: '*jsonpath'
        type: char
      - name: '*cookiename'
        type: char
      - name: cookienamelen
        type: size_t
      - name: cachesize
        type: size_t
      - name: atlasfd
        type: int
      - name: atlas
        type: da_atlas_t
      - name: useragentid
        type: da_evidence_id_t
      - name: loglevel
        type: da_severity_t
      - name: maxhdrlen
        type: size_t
      - name: separator
        type: char
      - name: daset
        type: unsigned char
      item_type: struct
      name: "global_deviceatlas = {\n\t.loglevel = 0,\n\t.jsonpath = 0,\n\t.cookiename
        = 0,\n\t.cookienamelen = 0,\n\t.cachesize = 0,\n\t.atlasmap = NULL,\n\t.atlasfd
        = -1,\n\t.useragentid = 0,\n\t.maxhdrlen = 0,\n\t.daset = 0,\n\t.separator
        = '|',\n}"
      pos:
        line_end: 36
        line_start: 22
        source_file: /src/haproxy/addons/deviceatlas/da.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/deviceatlas/dummy/dadwarc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
  types:
    enum:
    - enumerators:
      - name: DA_TYPE_NONE
      - name: DA_TYPE_STRING
      - name: DA_TYPE_BOOLEAN
      - name: DA_TYPE_NUMBER
      - name: DA_TYPE_INTEGER
      - name: DA_TYPE_ARRAY
      - name: DA_TYPE_OBJECT
      - name: DA_TYPE_NULL
      item_type: enum
      name: da_type
      pos:
        line_end: 45
        line_start: 36
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
    - enumerators:
      - name: DA_OK
      - name: DA_OVERFLOW
      - name: DA_FORMAT_ERROR
      - name: DA_NOMEM
      - name: DA_INVALID_JSON
      - name: DA_SYS
      - name: DA_NOTIMPL
      - name: DA_NOTFOUND
      - name: DA_REGEXBAD
      - name: DA_NOMORE
      - name: DA_STATUS_LAST
      - name: DA_INVALID_COOKIE
      - name: DA_INVALID_TYPE
      - name: DA_INTERNAL_ERROR
      item_type: enum
      name: da_status
      pos:
        line_end: 66
        line_start: 51
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
    - enumerators:
      - name: DA_SEV_FATAL
      - name: DA_SEV_INFO
      - name: DA_SEV_WARN
      - name: DA_SEV_ERROR
      item_type: enum
      name: da_severity
      pos:
        line_end: 73
        line_start: 68
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
    preproc_defs:
    - item_type: preproc_def
      name: bool
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type_or_value: _Bool
    - item_type: preproc_def
      name: 'true'
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type_or_value: '1'
    - item_type: preproc_def
      name: 'false'
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DATLAS_DA_MAJOR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DATLAS_DA_DUMMY_LIBRARY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type_or_value: '1'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: id
        type: da_evidence_id_t
      item_type: struct
      name: header_evidence_entry
      pos:
        line_end: 146
        line_start: 143
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
    - fields:
      - name: cache_size
        type: unsigned int
      - name: __reserved[15]
        type: unsigned int
      item_type: struct
      name: da_config
      pos:
        line_end: 151
        line_start: 148
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
    - fields:
      - name: '*image'
        type: struct atlas_image
      - name: '*header_priorities'
        type: struct header_evidence_entry
      - name: header_evidence_count
        type: size_t
      - name: '*uar_regexes'
        type: struct pcre_regex_info
      - name: uar_regex_count
        type: size_t
      - name: '*replacement_regexes'
        type: struct pcre_regex_info
      - name: replacement_regex_count
        type: size_t
      - name: user_agent_evidence
        type: da_evidence_id_t
      - name: clientprops_evidence
        type: da_evidence_id_t
      - name: accept_language_evidence
        type: da_evidence_id_t
      - name: next_evidence
        type: da_evidence_id_t
      - name: '*properties'
        type: da_propset_t
      - name: id_propid
        type: da_propid_t
      - name: id_proplang
        type: da_propid_t
      - name: id_proplang_locale
        type: da_propid_t
      - name: config
        type: da_config_t
      - name: '**cpr_props'
        type: da_deviceinfo_t
      - name: cpr_count
        type: size_t
      item_type: struct
      name: da_atlas
      pos:
        line_end: 524
        line_start: 499
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
    - fields:
      - name: '*next'
        type: struct da_buf
      - name: '*cur'
        type: char
      - name: '*limit'
        type: char
      - name: buf[DA_BUFSIZE]
        type: char
      item_type: struct
      name: da_buf
      pos:
        line_end: 541
        line_start: 536
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
    - fields:
      - name: alloc
        type: da_alloc_fn
      - name: free
        type: da_free_fn
      - name: realloc
        type: da_realloc_fn
      - name: '*context'
        type: void
      item_type: struct
      name: da_allocator
      pos:
        line_end: 552
        line_start: 547
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
    - fields:
      - name: allocator
        type: struct da_allocator
      - name: '*atlas'
        type: da_atlas_t
      - name: '*present'
        type: struct da_bitset
      - name: '*localprop'
        type: struct da_bitset
      - name: '*cprprop'
        type: struct da_bitset
      - name: '*properties'
        type: union da_value
      - name: '*proplist'
        type: da_propid_t
      - name: propcount
        type: size_t
      - name: '*local_types'
        type: da_propset_t
      - name: '*heap'
        type: struct da_buf
      - name: initial_heap
        type: struct da_buf
      item_type: struct
      name: da_deviceinfo
      pos:
        line_end: 583
        line_start: 564
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
    - fields:
      - name: key
        type: da_evidence_id_t
      - name: '*value'
        type: char
      item_type: struct
      name: da_evidence
      pos:
        line_end: 591
        line_start: 588
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
    - fields:
      - name: '*name'
        type: char
      - name: type
        type: da_type_t
      item_type: struct
      name: da_property_decl
      pos:
        line_end: 601
        line_start: 598
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
    typedefs:
    - item_type: typedef
      name: _Bool
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: int
    - item_type: typedef
      name: da_severity_t
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_severity
    - item_type: typedef
      name: da_status_t
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_status
    - item_type: typedef
      name: (*da_setpos_fn)(void *ctx, off_t off)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_status_t
    - item_type: typedef
      name: da_type_t
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_type
    - item_type: typedef
      name: da_evidence_id_t
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: int
    - item_type: typedef
      name: da_propid_t
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: int
    - item_type: typedef
      name: (*da_read_fn)(void *ctx, size_t maxlen, char *ptr)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: size_t
    - item_type: typedef
      name: da_atlas_t
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_atlas
    - item_type: typedef
      name: da_deviceinfo_t
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_deviceinfo
    - item_type: typedef
      name: da_evidence_t
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_evidence
    - item_type: typedef
      name: da_jsonparser_t
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_jsonparser
    - item_type: typedef
      name: da_node_t
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_node
    - item_type: typedef
      name: da_property_decl_t
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_property_decl
    - item_type: typedef
      name: da_propset_t
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_propset
    - item_type: typedef
      name: da_config_t
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: da_config
    - item_type: typedef
      name: '*(*da_alloc_fn)(void *ctx, size_t)'
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: void
    - item_type: typedef
      name: (*da_free_fn)(void *ctx, void *)
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: void
    - item_type: typedef
      name: '*(*da_realloc_fn)(void *ctx, void *, size_t)'
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: void
    - item_type: typedef
      name: (*da_errorfunc_t)(da_severity_t severity, da_status_t status, const char
        *msg, va_list args)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.h
      type: void
    union: []
- function_names: []
  source_file: /src/haproxy/addons/deviceatlas/dummy/json.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/deviceatlas/dummy/dasch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - da_atlas_cache_init
  - da_atlas_cache_insert
  - da_atlas_cache_search
  - da_atlas_cache_close
  source_file: /src/haproxy/addons/deviceatlas/dummy/dacache.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/deviceatlas/dummy/dadwcurl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/deviceatlas/dummy/dadwcom.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - da_init
  - da_fini
  - da_seterrorfunc
  - da_typename
  - da_getdataversion
  - da_getdatacreation
  - da_getdatacreationiso8601
  - da_atlas_compile
  - da_atlas_open
  - da_atlas_close
  - da_atlas_clientprop_evidence_id
  - da_atlas_accept_language_evidence_id
  - da_atlas_header_evidence_id
  - da_atlas_getproptype
  - da_atlas_getpropname
  - da_atlas_getpropid
  - da_atlas_getpropcount
  - da_searchv
  - da_search
  - da_getpropcount
  - da_getfirstprop
  - da_getnextprop
  - da_close
  - da_getpropname
  - da_getproptype
  - da_getpropinteger
  - da_getpropstring
  - da_getpropboolean
  - da_get_property_name
  source_file: /src/haproxy/addons/deviceatlas/dummy/dac.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bits[8]
        type: unsigned long
      - name: bit_count
        type: size_t
      item_type: struct
      name: da_bitset
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/haproxy/addons/deviceatlas/dummy/dac.c
    typedefs: []
    union: []
- function_names:
  - da_atlas_read_mapped
  source_file: /src/haproxy/addons/deviceatlas/dummy/Os/daunix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flt_ot_http_headers_dump
  - flt_ot_http_headers_get
  - flt_ot_http_header_set
  - flt_ot_http_headers_remove
  source_file: /src/haproxy/addons/ot/src/http.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flt_ot_vars_scope_dump
  - flt_ot_vars_dump
  - flt_ot_smp_init
  - flt_ot_smp_add
  - flt_ot_normalize_name
  - flt_ot_var_name
  - flt_ot_ctx_loop
  - flt_ot_ctx_set_cb
  - flt_ot_ctx_set
  - flt_ot_var_register
  - flt_ot_var_set
  - flt_ot_vars_unset_cb
  - flt_ot_vars_unset
  - flt_ot_vars_get_cb
  - flt_ot_vars_get
  source_file: /src/haproxy/addons/ot/src/vars.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmn_cli_set_msg
  - flt_ot_cli_parse_debug
  - flt_ot_cli_parse_disabled
  - FLT_OT_PROXIES_LIST_START
  - flt_ot_cli_parse_option
  - FLT_OT_PROXIES_LIST_START
  - flt_ot_cli_parse_logging
  - FLT_OT_PROXIES_LIST_START
  - FLT_OT_PROXIES_LIST_START
  - flt_ot_cli_parse_rate
  - FLT_OT_PROXIES_LIST_START
  - FLT_OT_PROXIES_LIST_START
  - flt_ot_cli_parse_status
  - FLT_OT_PROXIES_LIST_START
  - flt_ot_cli_init
  source_file: /src/haproxy/addons/ot/src/cli.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ot_text_map_show
  - ot_debug
  - ot_mem_malloc
  - ot_mem_free
  - ot_init
  - ot_start
  - ot_close
  - ot_span_init
  - ot_span_init_va
  - ot_span_tag
  - ot_span_tag_va
  - ot_span_log
  - ot_span_log_va
  - ot_span_log_fmt
  - ot_span_set_baggage
  - ot_span_set_baggage_va
  - ot_span_baggage_va
  - ot_inject_text_map
  - ot_inject_http_headers
  - ot_inject_binary
  - ot_extract_text_map
  - ot_extract_http_headers
  - ot_extract_binary
  - ot_span_finish
  source_file: /src/haproxy/addons/ot/src/opentracing.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flt_ot_parse_strdup
  - flt_ot_parse_keyword
  - flt_ot_parse_invalid_char
  - flt_ot_parse_cfg_check
  - flt_ot_parse_cfg_sample_expr
  - flt_ot_parse_cfg_sample
  - flt_ot_parse_cfg_str
  - flt_ot_parse_cfg_file
  - flt_ot_parse_check_scope
  - flt_ot_parse_cfg_tracer
  - FLT_OT_PARSE_TRACER_DEF
  - flt_ot_post_parse_cfg_tracer
  - flt_ot_parse_cfg_group
  - FLT_OT_PARSE_GROUP_DEF
  - flt_ot_post_parse_cfg_group
  - flt_ot_parse_cfg_scope_ctx
  - flt_ot_parse_acl
  - flt_ot_parse_cfg_scope
  - FLT_OT_PARSE_SCOPE_DEF
  - flt_ot_post_parse_cfg_scope
  - flt_ot_parse_cfg
  - flt_ot_parse
  source_file: /src/haproxy/addons/ot/src/parser.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flt_ot_args_dump
  - flt_ot_filters_dump
  - flt_ot_chn_label
  - flt_ot_pr_mode
  - flt_ot_stream_pos
  - flt_ot_type
  - flt_ot_analyzer
  - FLT_OT_AN_DEF
  - flt_ot_str_hex
  - flt_ot_str_ctrl
  - flt_ot_list_debug
  - flt_ot_chunk_add
  - flt_ot_args_count
  - flt_ot_args_to_str
  - flt_ot_strtod
  - flt_ot_strtoll
  - flt_ot_sample_to_str
  - flt_ot_sample_to_value
  - flt_ot_sample_add
  source_file: /src/haproxy/addons/ot/src/util.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: an_bit
        type: uint
      - name: '*str'
        type: char
      item_type: struct
      name: flt_ot_an[] = { FLT_OT_AN_DEFINES }
      pos:
        line_end: 184
        line_start: 181
        source_file: /src/haproxy/addons/ot/src/util.c
    typedefs: []
    union: []
- function_names:
  - FLT_OT_GROUP_DEF
  - FLT_OT_RETURN_EX
  - FLT_OT_RETURN_EX
  - flt_ot_group_check
  - flt_ot_group_release
  source_file: /src/haproxy/addons/ot/src/group.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flt_ot_is_disabled
  - flt_ot_return_int
  - flt_ot_return_void
  - flt_ot_init
  - flt_ot_deinit
  - flt_ot_check
  - flt_ot_init_per_thread
  - flt_ot_deinit_per_thread
  - flt_ot_attach
  - flt_ot_stream_start
  - flt_ot_stream_set_backend
  - flt_ot_stream_stop
  - flt_ot_detach
  - flt_ot_check_timeouts
  - flt_ot_channel_start_analyze
  - flt_ot_channel_pre_analyze
  - flt_ot_channel_post_analyze
  - flt_ot_channel_end_analyze
  - flt_ot_http_headers
  - flt_ot_http_payload
  - flt_ot_http_end
  - flt_ot_http_reset
  - flt_ot_http_reply
  - flt_ot_tcp_payload
  source_file: /src/haproxy/addons/ot/src/filter.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flt_ot_conf_hdr_init
  - flt_ot_conf_ph_init
  - flt_ot_conf_ph_free
  - flt_ot_conf_sample_expr_init
  - flt_ot_conf_sample_expr_free
  - flt_ot_conf_sample_init
  - flt_ot_conf_sample_free
  - flt_ot_conf_str_init
  - flt_ot_conf_str_free
  - flt_ot_conf_context_init
  - flt_ot_conf_context_free
  - flt_ot_conf_span_init
  - flt_ot_conf_span_free
  - flt_ot_conf_scope_init
  - flt_ot_conf_scope_free
  - flt_ot_conf_group_init
  - flt_ot_conf_group_free
  - flt_ot_conf_tracer_init
  - flt_ot_conf_tracer_free
  - flt_ot_conf_init
  - flt_ot_conf_free
  source_file: /src/haproxy/addons/ot/src/conf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FLT_OT_EVENT_DEF
  - flt_ot_scope_run_span
  - flt_ot_scope_run
  - flt_ot_event_run
  source_file: /src/haproxy/addons/ot/src/event.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flt_ot_pool_alloc
  - flt_ot_pool_strndup
  - flt_ot_pool_free
  - flt_ot_trash_alloc
  - flt_ot_trash_free
  source_file: /src/haproxy/addons/ot/src/pool.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flt_ot_pools_info
  - flt_ot_runtime_context_init
  - flt_ot_runtime_context_free
  - flt_ot_scope_span_init
  - flt_ot_scope_span_free
  - flt_ot_scope_context_init
  - flt_ot_scope_context_free
  - flt_ot_scope_data_free
  - flt_ot_scope_finish_mark
  - flt_ot_scope_finish_marked
  - flt_ot_scope_free_unused
  source_file: /src/haproxy/addons/ot/src/scope.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/ot/include/config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLT_OT_ID_MAXLEN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/addons/ot/include/config.h
      type_or_value: '64'
    - item_type: preproc_def
      name: FLT_OT_MAXTAGS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/addons/ot/include/config.h
      type_or_value: '8'
    - item_type: preproc_def
      name: FLT_OT_MAXBAGGAGES
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/addons/ot/include/config.h
      type_or_value: '8'
    - item_type: preproc_def
      name: FLT_OT_RATE_LIMIT_MAX
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/addons/ot/include/config.h
      type_or_value: '100.0'
    - item_type: preproc_def
      name: FLT_OT_DEBUG_LEVEL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/addons/ot/include/config.h
      type_or_value: '0b00001111'
    structs: []
    typedefs: []
    union: []
- function_names:
  - flt_ot_http_headers_dump
  source_file: /src/haproxy/addons/ot/include/http.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/ot/include/include.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FLT_OT_RT_CTX
  - FLT_OT_DBG_SCOPE_SPAN
  - FLT_OT_DBG_SCOPE_CONTEXT
  - FLT_OT_DBG_SCOPE_DATA
  - FLT_OT_DBG_RUNTIME_CONTEXT
  - FLT_OT_CONST_STR_HDR
  - flt_ot_pools_info
  source_file: /src/haproxy/addons/ot/include/scope.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLT_OT_SCOPE_SPAN_FINISH_REQ
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/addons/ot/include/scope.h
      type_or_value: '"*req*"'
    - item_type: preproc_def
      name: FLT_OT_SCOPE_SPAN_FINISH_RES
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/addons/ot/include/scope.h
      type_or_value: '"*res*"'
    - item_type: preproc_def
      name: FLT_OT_SCOPE_SPAN_FINISH_ALL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/addons/ot/include/scope.h
      type_or_value: '"*"'
    structs:
    - fields:
      - name: tags[FLT_OT_MAXTAGS]
        type: struct otc_tag
      - name: num_tags
        type: int
      - name: '*baggage'
        type: struct otc_text_map
      - name: log_fields[OTC_MAXLOGFIELDS]
        type: struct otc_log_field
      - name: num_log_fields
        type: int
      item_type: struct
      name: flt_ot_scope_data
      pos:
        line_end: 61
        line_start: 55
        source_file: /src/haproxy/addons/ot/include/scope.h
    - fields:
      - name: smp_opt_dir
        type: uint
      - name: flag_finish
        type: bool
      - name: '*span'
        type: struct otc_span
      - name: ref_type
        type: otc_span_reference_type_t
      - name: '*ref_span'
        type: struct otc_span
      - name: '*ref_ctx'
        type: struct otc_span_context
      - name: list
        type: struct list
      item_type: struct
      name: flt_ot_scope_span
      pos:
        line_end: 73
        line_start: 64
        source_file: /src/haproxy/addons/ot/include/scope.h
    - fields:
      - name: smp_opt_dir
        type: uint
      - name: flag_finish
        type: bool
      - name: '*context'
        type: struct otc_span_context
      - name: list
        type: struct list
      item_type: struct
      name: flt_ot_scope_context
      pos:
        line_end: 82
        line_start: 76
        source_file: /src/haproxy/addons/ot/include/scope.h
    - fields:
      - name: '*stream'
        type: struct stream
      - name: '*filter'
        type: struct filter
      - name: uuid[40]
        type: char
      - name: flag_harderr
        type: bool
      - name: flag_disabled
        type: bool
      - name: logging
        type: uint8_t
      - name: analyzers
        type: uint
      - name: spans
        type: struct list
      - name: contexts
        type: struct list
      item_type: struct
      name: flt_ot_runtime_context
      pos:
        line_end: 95
        line_start: 85
        source_file: /src/haproxy/addons/ot/include/scope.h
    typedefs: []
    union: []
- function_names:
  - FLT_OT_PARSE_WARNING
  - FLT_OT_PARSE_ALERT
  - FLT_OT_POST_PARSE_ALERT
  - FLT_OT_PARSE_ERR
  - FLT_OT_PARSE_IFERR_ALERT
  source_file: /src/haproxy/addons/ot/include/parser.h
  types:
    enum:
    - enumerators:
      - name: FLT_OT_PARSE_INVALID_NONE
      - name: FLT_OT_PARSE_INVALID_VAR
      - name: FLT_OT_PARSE_INVALID_CTX
      - name: FLT_OT_PARSE_INVALID_DOM
      - name: FLT_OT_PARSE_INVALID_CHAR
      item_type: enum
      name: FLT_OT_PARSE_INVCHAR_enum
      pos:
        line_end: 100
        line_start: 94
        source_file: /src/haproxy/addons/ot/include/parser.h
    - enumerators: []
      item_type: enum
      name: FLT_OT_PARSE_TRACER_enum
      pos:
        line_end: 106
        line_start: 102
        source_file: /src/haproxy/addons/ot/include/parser.h
    - enumerators: []
      item_type: enum
      name: FLT_OT_PARSE_GROUP_enum
      pos:
        line_end: 112
        line_start: 108
        source_file: /src/haproxy/addons/ot/include/parser.h
    - enumerators: []
      item_type: enum
      name: FLT_OT_PARSE_SCOPE_enum
      pos:
        line_end: 118
        line_start: 114
        source_file: /src/haproxy/addons/ot/include/parser.h
    - enumerators:
      - name: FLT_OT_CTX_USE_VARS
        value: 1 << 0
      - name: FLT_OT_CTX_USE_HEADERS
        value: 1 << 1
      item_type: enum
      name: FLT_OT_CTX_USE_enum
      pos:
        line_end: 123
        line_start: 120
        source_file: /src/haproxy/addons/ot/include/parser.h
    preproc_defs:
    - item_type: preproc_def
      name: FLT_OT_SCOPE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"OT"'
    - item_type: preproc_def
      name: FLT_OT_OPT_NAME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"opentracing"'
    - item_type: preproc_def
      name: FLT_OT_OPT_FILTER_ID
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"id"'
    - item_type: preproc_def
      name: FLT_OT_OPT_FILTER_ID_DEFAULT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"ot-filter"'
    - item_type: preproc_def
      name: FLT_OT_OPT_CONFIG
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"config"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_SECTION_TRACER_ID
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"ot-tracer"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_SECTION_GROUP_ID
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"ot-group"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_SECTION_SCOPE_ID
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"ot-scope"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_SPAN_ROOT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"root"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_SPAN_REF_CHILD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"child-of"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_SPAN_REF_FOLLOWS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"follows-from"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_CTX_AUTONAME
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"-"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_CTX_IGNORE_NAME
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '''-'''
    - item_type: preproc_def
      name: FLT_OT_PARSE_CTX_USE_HEADERS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"use-headers"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_CTX_USE_VARS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"use-vars"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_OPTION_HARDERR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"hard-errors"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_OPTION_DISABLED
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"disabled"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_OPTION_NOLOGNORM
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '"dontlog-normal"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_TRACER_DEFINES
      pos:
        line_end: 62
        line_start: 51
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: "FLT_OT_PARSE_TRACER_DEF(         ID, 0, CHAR, 2, 2, \"ot-tracer\",
        \  \" <name>\")                                                                           \\\n\tFLT_OT_PARSE_TRACER_DEF(
        \       ACL, 0, CHAR, 3, 0, \"acl\",         \" <name> <criterion> [flags]
        [operator] <value> ...\")                                \\\n\tFLT_OT_PARSE_TRACER_DEF(
        \       LOG, 0, CHAR, 2, 0, \"log\",         \" { global | <addr> [len <len>]
        [format <fmt>] <facility> [<level> [<minlevel>]] }\") \\\n\tFLT_OT_PARSE_TRACER_DEF(
        \    CONFIG, 0, NONE, 2, 2, \"config\",      \" <file>\")                                                                           \\\n\tFLT_OT_PARSE_TRACER_DEF(
        \    PLUGIN, 0, NONE, 2, 2, \"plugin\",      \" <file>\")                                                                           \\\n\tFLT_OT_PARSE_TRACER_DEF(
        \    GROUPS, 0, NONE, 2, 0, \"groups\",      \" <name> ...\")                                                                       \\\n\tFLT_OT_PARSE_TRACER_DEF(
        \    SCOPES, 0, NONE, 2, 0, \"scopes\",      \" <name> ...\")                                                                       \\\n\tFLT_OT_PARSE_TRACER_DEF(
        RATE_LIMIT, 0, NONE, 2, 2, \"rate-limit\",  \" <value>\")                                                                          \\\n\tFLT_OT_PARSE_TRACER_DEF(
        \    OPTION, 0, NONE, 2, 2, \"option\",      \" { disabled | dontlog-normal
        | hard-errors }\")                                      \\\n\tFLT_OT_PARSE_TRACER_DEF(DEBUG_LEVEL,
        0, NONE, 2, 2, \"debug-level\", \" <value>\")"
    - item_type: preproc_def
      name: FLT_OT_PARSE_GROUP_DEFINES
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: "FLT_OT_PARSE_GROUP_DEF(    ID, 0, CHAR, 2, 2, \"ot-group\",
        \" <name>\") \\\n\tFLT_OT_PARSE_GROUP_DEF(SCOPES, 0, NONE, 2, 0, \"scopes\",
        \  \" <name> ...\")"
    - item_type: preproc_def
      name: FLT_OT_PARSE_SCOPE_INJECT_HELP
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '" <name-prefix> [use-vars] [use-headers]"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_SCOPE_EXTRACT_HELP
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '" <name-prefix> [use-vars | use-headers]"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_SCOPE_INJECT_HELP
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '" <name-prefix> [use-headers]"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_SCOPE_EXTRACT_HELP
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: '" <name-prefix> [use-headers]"'
    - item_type: preproc_def
      name: FLT_OT_PARSE_SCOPE_DEFINES
      pos:
        line_end: 93
        line_start: 82
        source_file: /src/haproxy/addons/ot/include/parser.h
      type_or_value: "FLT_OT_PARSE_SCOPE_DEF(     ID, 0, CHAR, 2, 2, \"ot-scope\",
        \" <name>\")                                            \\\n\tFLT_OT_PARSE_SCOPE_DEF(
        \  SPAN, 0, NONE, 2, 5, \"span\",     \" <name> [<reference>] [root]\")                       \\\n\tFLT_OT_PARSE_SCOPE_DEF(
        \   TAG, 1, NONE, 3, 0, \"tag\",      \" <name> <sample> ...\")                               \\\n\tFLT_OT_PARSE_SCOPE_DEF(
        \   LOG, 1, NONE, 3, 0, \"log\",      \" <name> <sample> ...\")                               \\\n\tFLT_OT_PARSE_SCOPE_DEF(BAGGAGE,
        1,  VAR, 3, 0, \"baggage\",  \" <name> <sample> ...\")                               \\\n\tFLT_OT_PARSE_SCOPE_DEF(
        INJECT, 1,  CTX, 2, 4, \"inject\",   FLT_OT_PARSE_SCOPE_INJECT_HELP)                       \\\n\tFLT_OT_PARSE_SCOPE_DEF(EXTRACT,
        0,  CTX, 2, 3, \"extract\",  FLT_OT_PARSE_SCOPE_EXTRACT_HELP)                      \\\n\tFLT_OT_PARSE_SCOPE_DEF(
        FINISH, 0, NONE, 2, 0, \"finish\",   \" <name> ...\")                                        \\\n\tFLT_OT_PARSE_SCOPE_DEF(
        \   ACL, 0, CHAR, 3, 0, \"acl\",      \" <name> <criterion> [flags] [operator]
        <value> ...\") \\\n\tFLT_OT_PARSE_SCOPE_DEF(  EVENT, 0, NONE, 2, 0, \"event\",
        \   \" <name> [{ if | unless } <condition>]\")"
    structs:
    - fields:
      - name: keyword
        type: int
      - name: flag_check_id
        type: bool
      - name: check_name
        type: int
      - name: args_min
        type: int
      - name: args_max
        type: int
      - name: '*name'
        type: char
      - name: '*usage'
        type: char
      item_type: struct
      name: flt_ot_parse_data
      pos:
        line_end: 133
        line_start: 125
        source_file: /src/haproxy/addons/ot/include/parser.h
    typedefs: []
    union: []
- function_names:
  - FLT_OT_CLI_LOGGING_STATE
  - FLT_OT_CLI_MSG_CAT
  source_file: /src/haproxy/addons/ot/include/cli.h
  types:
    enum:
    - enumerators:
      - name: FLT_OT_LOGGING_OFF
        value: '0'
      - name: FLT_OT_LOGGING_ON
        value: 1 << 0
      - name: FLT_OT_LOGGING_NOLOGNORM
        value: 1 << 1
      item_type: enum
      name: FLT_OT_LOGGING_enum
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/haproxy/addons/ot/include/cli.h
    preproc_defs:
    - item_type: preproc_def
      name: FLT_OT_CLI_CMD
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/addons/ot/include/cli.h
      type_or_value: '"flt-ot"'
    - item_type: preproc_def
      name: FLT_OT_CLI_LOGGING_OFF
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/addons/ot/include/cli.h
      type_or_value: '"off"'
    - item_type: preproc_def
      name: FLT_OT_CLI_LOGGING_ON
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/addons/ot/include/cli.h
      type_or_value: '"on"'
    - item_type: preproc_def
      name: FLT_OT_CLI_LOGGING_NOLOGNORM
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/addons/ot/include/cli.h
      type_or_value: '"dontlog-normal"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - FLT_OT_VSET
  - FLT_OT_DBG_TEXT_MAP
  - FLT_OT_DBG_TEXT_CARRIER
  - FLT_OT_DBG_CUSTOM_CARRIER
  - FLT_OT_DBG_SPAN_CONTEXT
  - ot_debug
  - ot_text_map_show
  source_file: /src/haproxy/addons/ot/include/opentracing.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FLT_OT_PROXIES_LIST_START
  - FLT_OT_PROXIES_LIST_END
  - FLT_OT_ARGS_DUMP
  - FLT_OT_ARGS_DUMP
  - flt_ot_filters_dump
  source_file: /src/haproxy/addons/ot/include/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HTTP_METH_STR_OPTIONS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/addons/ot/include/util.h
      type_or_value: '"OPTIONS"'
    - item_type: preproc_def
      name: HTTP_METH_STR_GET
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/addons/ot/include/util.h
      type_or_value: '"GET"'
    - item_type: preproc_def
      name: HTTP_METH_STR_HEAD
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/addons/ot/include/util.h
      type_or_value: '"HEAD"'
    - item_type: preproc_def
      name: HTTP_METH_STR_POST
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/addons/ot/include/util.h
      type_or_value: '"POST"'
    - item_type: preproc_def
      name: HTTP_METH_STR_PUT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/addons/ot/include/util.h
      type_or_value: '"PUT"'
    - item_type: preproc_def
      name: HTTP_METH_STR_DELETE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/addons/ot/include/util.h
      type_or_value: '"DELETE"'
    - item_type: preproc_def
      name: HTTP_METH_STR_TRACE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/addons/ot/include/util.h
      type_or_value: '"TRACE"'
    - item_type: preproc_def
      name: HTTP_METH_STR_CONNECT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/addons/ot/include/util.h
      type_or_value: '"CONNECT"'
    - item_type: preproc_def
      name: FLT_OT_AN_DEFINES
      pos:
        line_end: 54
        line_start: 32
        source_file: /src/haproxy/addons/ot/include/util.h
      type_or_value: "FLT_OT_AN_DEF(AN_REQ_INSPECT_FE)      \\\n\tFLT_OT_AN_DEF(AN_REQ_WAIT_HTTP)
        \      \\\n\tFLT_OT_AN_DEF(AN_REQ_HTTP_BODY)       \\\n\tFLT_OT_AN_DEF(AN_REQ_HTTP_PROCESS_FE)
        \\\n\tFLT_OT_AN_DEF(AN_REQ_SWITCHING_RULES) \\\n\tFLT_OT_AN_DEF(AN_REQ_INSPECT_BE)
        \     \\\n\tFLT_OT_AN_DEF(AN_REQ_HTTP_PROCESS_BE) \\\n\tFLT_OT_AN_DEF(AN_REQ_HTTP_TARPIT)
        \    \\\n\tFLT_OT_AN_DEF(AN_REQ_SRV_RULES)       \\\n\tFLT_OT_AN_DEF(AN_REQ_HTTP_INNER)
        \     \\\n\tFLT_OT_AN_DEF(AN_REQ_PRST_RDP_COOKIE) \\\n\tFLT_OT_AN_DEF(AN_REQ_STICKING_RULES)
        \ \\\n\tFLT_OT_AN_DEF(AN_REQ_HTTP_XFER_BODY)  \\\n\tFLT_OT_AN_DEF(AN_REQ_WAIT_CLI)
        \       \\\n\tFLT_OT_AN_DEF(AN_RES_INSPECT)         \\\n\tFLT_OT_AN_DEF(AN_RES_WAIT_HTTP)
        \      \\\n\tFLT_OT_AN_DEF(AN_RES_STORE_RULES)     \\\n\tFLT_OT_AN_DEF(AN_RES_HTTP_PROCESS_BE)
        \\\n\tFLT_OT_AN_DEF(AN_RES_HTTP_PROCESS_FE) \\\n\tFLT_OT_AN_DEF(AN_RES_HTTP_XFER_BODY)
        \ \\\n\tFLT_OT_AN_DEF(AN_RES_WAIT_CLI)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - FLT_OT_DBG_FMT
  - FLT_OT_DBG_FMT
  - FLT_OT_DBG
  - FLT_OT_FUNC
  - FLT_OT_RETURN
  - FLT_OT_RETURN_EX
  - FLT_OT_RETURN_INT
  - FLT_OT_RETURN_PTR
  - FLT_OT_DBG_IFDEF
  - FLT_OT_DBG_ARGS
  - FLT_OT_DBG_BUF
  - FLT_OT_DBG
  - FLT_OT_FUNC
  - FLT_OT_RETURN
  - FLT_OT_RETURN_EX
  - FLT_OT_RETURN_INT
  - FLT_OT_RETURN_PTR
  - FLT_OT_DBG_IFDEF
  - FLT_OT_DBG_BUF
  - FLT_OT_LOG
  source_file: /src/haproxy/addons/ot/include/debug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLT_OT_DBG_INDENT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/addons/ot/include/debug.h
      type_or_value: '"                                                                                "'
    structs:
    - fields:
      - name: level
        type: uint8_t
      item_type: struct
      name: flt_ot_debug
      pos:
        line_end: 53
        line_start: 48
        source_file: /src/haproxy/addons/ot/include/debug.h
    typedefs: []
    union: []
- function_names:
  - FLT_OT_DEREF
  - FLT_OT_DDEREF
  - FLT_OT_TABLESIZE
  - FLT_OT_IN_RANGE
  - FLT_OT_DPTR_ARGS
  - FLT_OT_ARG_ISVALID
  - FLT_OT_TV_UDIFF
  - FLT_OT_U32_FLOAT
  - FLT_OT_FLOAT_U32
  - FLT_OT_STR_FLAG_YN
  - FLT_OT_STR_SIZE
  - FLT_OT_STR_ADDRSIZE
  - FLT_OT_STR_ISVALID
  - FLT_OT_STR_CMP
  - FLT_OT_STR_ELLIPSIS
  - FLT_OT_NIBBLE_TO_HEX
  - FLT_OT_FREE
  - FLT_OT_FREE_VOID
  - FLT_OT_FREE_CLEAR
  - FLT_OT_STRDUP
  - FLT_OT_STRNDUP
  - FLT_OT_CALLOC
  - FLT_OT_MALLOC
  - FLT_OT_MEMINFO
  - FLT_OT_RUN_ONCE
  - FLT_OT_LIST_ISVALID
  - FLT_OT_LIST_DEL
  - FLT_OT_LIST_DESTROY
  - FLT_OT_BUFFER_THR
  - FLT_OT_ERR
  - FLT_OT_ERR_APPEND
  - FLT_OT_ERR_FREE
  source_file: /src/haproxy/addons/ot/include/define.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLT_OT_STR_DASH_72
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/addons/ot/include/define.h
      type_or_value: '"------------------------------------------------------------------------"'
    - item_type: preproc_def
      name: FLT_OT_STR_DASH_78
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/addons/ot/include/define.h
      type_or_value: FLT_OT_STR_DASH_72 "------"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/ot/include/pool.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flt_ot_vars_dump
  source_file: /src/haproxy/addons/ot/include/vars.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLT_OT_VARS_SCOPE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/addons/ot/include/vars.h
      type_or_value: '"txn"'
    - item_type: preproc_def
      name: FLT_OT_VAR_CTX_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/addons/ot/include/vars.h
      type_or_value: int8_t
    - item_type: preproc_def
      name: FLT_OT_VAR_CHAR_DASH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/addons/ot/include/vars.h
      type_or_value: '''D'''
    - item_type: preproc_def
      name: FLT_OT_VAR_CHAR_SPACE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/addons/ot/include/vars.h
      type_or_value: '''S'''
    structs:
    - fields:
      - name: value[BUFSIZ]
        type: char
      - name: value_len
        type: int
      item_type: struct
      name: flt_ot_ctx
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/haproxy/addons/ot/include/vars.h
    typedefs:
    - item_type: typedef
      name: (*flt_ot_ctx_loop_cb)(struct sample *, size_t, const char *, const char
        *, const char *, FLT_OT_VAR_CTX_SIZE, char **, void *)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/haproxy/addons/ot/include/vars.h
      type: int
    union: []
- function_names:
  - FLT_OT_ALERT
  - FLT_OT_DBG_LIST
  source_file: /src/haproxy/addons/ot/include/filter.h
  types:
    enum:
    - enumerators:
      - name: FLT_OT_RET_ERROR
        value: '-1'
      - name: FLT_OT_RET_OK
        value: '1'
      - name: FLT_OT_RET_IGNORE
        value: '0'
      - name: FLT_OT_RET_WAIT
        value: '0'
      item_type: enum
      name: FLT_OT_RET_enum
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/haproxy/addons/ot/include/filter.h
    preproc_defs:
    - item_type: preproc_def
      name: FLT_OT_FMT_NAME
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/addons/ot/include/filter.h
      type_or_value: '"''" FLT_OT_OPT_NAME "'' : "'
    - item_type: preproc_def
      name: FLT_OT_FMT_TYPE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/addons/ot/include/filter.h
      type_or_value: '"''filter'' : "'
    - item_type: preproc_def
      name: FLT_OT_VAR_UUID
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/haproxy/addons/ot/include/filter.h
      type_or_value: '"sess", "ot", "uuid"'
    - item_type: preproc_def
      name: FLT_OT_CONDITION_IF
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/addons/ot/include/filter.h
      type_or_value: '"if"'
    - item_type: preproc_def
      name: FLT_OT_CONDITION_UNLESS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/addons/ot/include/filter.h
      type_or_value: '"unless"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/ot/include/event.h
  types:
    enum:
    - enumerators: []
      item_type: enum
      name: FLT_OT_EVENT_enum
      pos:
        line_end: 84
        line_start: 79
        source_file: /src/haproxy/addons/ot/include/event.h
    - enumerators:
      - name: FLT_OT_EVENT_SAMPLE_TAG
        value: '0'
      - name: FLT_OT_EVENT_SAMPLE_BAGGAGE
      - name: FLT_OT_EVENT_SAMPLE_LOG
      item_type: enum
      name: FLT_OT_EVENT_SAMPLE_enum
      pos:
        line_end: 90
        line_start: 86
        source_file: /src/haproxy/addons/ot/include/event.h
    preproc_defs:
    - item_type: preproc_def
      name: AN_REQ_NONE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/addons/ot/include/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: AN_REQ_CLIENT_SESS_START
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/addons/ot/include/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: AN_REQ_SERVER_UNAVAILABLE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/addons/ot/include/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: AN_REQ_CLIENT_SESS_END
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/addons/ot/include/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: AN_RES_SERVER_SESS_START
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/addons/ot/include/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: AN_RES_SERVER_SESS_END
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/addons/ot/include/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SMP_VAL_FE_
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/addons/ot/include/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SMP_VAL_BE_
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/addons/ot/include/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FLT_OT_EVENT_DEFINES
      pos:
        line_end: 64
        line_start: 54
        source_file: /src/haproxy/addons/ot/include/event.h
      type_or_value: "FLT_OT_EVENT_DEF(              NONE, REQ,        ,        ,
        0, \"\")                                  \\\n\tFLT_OT_EVENT_DEF( CLIENT_SESS_START,
        REQ, CON_ACC,        , 1, \"on-client-session-start\")           \\\n\tFLT_OT_EVENT_DEF(
        \       INSPECT_FE, REQ, REQ_CNT,        , 1, \"on-frontend-tcp-request\")
        \          \\\n\tFLT_OT_EVENT_DEF(         WAIT_HTTP, REQ,        ,        ,
        1, \"on-http-wait-request\")              \\\n\tFLT_OT_EVENT_DEF(         HTTP_BODY,
        REQ,        ,        , 1, \"on-http-body-request\")              \\\n\tFLT_OT_EVENT_DEF(
        \  HTTP_PROCESS_FE, REQ, HRQ_HDR,        , 1, \"on-frontend-http-request\")
        \         \\\n\tFLT_OT_EVENT_DEF(   SWITCHING_RULES, REQ,        ,        ,
        1, \"on-switching-rules-request\")        \\\n\tFLT_OT_EVENT_DEF(        INSPECT_BE,
        REQ, REQ_CNT, REQ_CNT, 1, \"on-backend-tcp-request\")            \\\n\tFLT_OT_EVENT_DEF(
        \  HTTP_PROCESS_BE, REQ, HRQ_HDR, HRQ_HDR, 1, \"on-backend-http-request\")
        \          \\\n"
    structs:
    - fields:
      - name: an_bit
        type: uint
      - name: smp_opt_dir
        type: uint
      - name: smp_val_fe
        type: uint
      - name: smp_val_be
        type: uint
      - name: flag_http_inject
        type: bool
      - name: '*name'
        type: char
      item_type: struct
      name: flt_ot_event_data
      pos:
        line_end: 99
        line_start: 92
        source_file: /src/haproxy/addons/ot/include/event.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/ot/include/group.h
  types:
    enum:
    - enumerators:
      - name: FLT_OT_ARG_FILTER_ID
        value: '0'
      - name: FLT_OT_ARG_GROUP
      - name: FLT_OT_ARG_CONF
      - name: FLT_OT_ARG_FLT_CONF
        value: '0'
      - name: FLT_OT_ARG_GROUP_ID
      item_type: enum
      name: FLT_OT_ARG_enum
      pos:
        line_end: 31
        line_start: 24
        source_file: /src/haproxy/addons/ot/include/group.h
    preproc_defs:
    - item_type: preproc_def
      name: FLT_OT_ACTION_GROUP
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/haproxy/addons/ot/include/group.h
      type_or_value: '"ot-group"'
    - item_type: preproc_def
      name: FLT_OT_GROUP_DEFINES
      pos:
        line_end: 44
        line_start: 37
        source_file: /src/haproxy/addons/ot/include/group.h
      type_or_value: "FLT_OT_GROUP_DEF(ACT_F_TCP_REQ_CON, SMP_VAL_FE_CON_ACC, SMP_OPT_DIR_REQ)
        \\\n\tFLT_OT_GROUP_DEF(ACT_F_TCP_REQ_SES, SMP_VAL_FE_SES_ACC, SMP_OPT_DIR_REQ)
        \\\n\tFLT_OT_GROUP_DEF(ACT_F_TCP_REQ_CNT, SMP_VAL_FE_REQ_CNT, SMP_OPT_DIR_REQ)
        \\\n\tFLT_OT_GROUP_DEF(ACT_F_TCP_RES_CNT, SMP_VAL_BE_RES_CNT, SMP_OPT_DIR_RES)
        \\\n\tFLT_OT_GROUP_DEF(ACT_F_HTTP_REQ,    SMP_VAL_FE_HRQ_HDR, SMP_OPT_DIR_REQ)
        \\\n\tFLT_OT_GROUP_DEF(ACT_F_HTTP_RES,    SMP_VAL_BE_HRS_HDR, SMP_OPT_DIR_RES)"
    structs:
    - fields:
      - name: act_from
        type: enum act_from
      - name: smp_val
        type: uint
      - name: smp_opt_dir
        type: uint
      item_type: struct
      name: flt_ot_group_data
      pos:
        line_end: 49
        line_start: 45
        source_file: /src/haproxy/addons/ot/include/group.h
    typedefs: []
    union: []
- function_names:
  - FLT_OT_CONF
  - FLT_OT_CONF_HDR_ARGS
  - FLT_OT_STR_HDR_ARGS
  - FLT_OT_DBG_CONF_SAMPLE_EXPR
  - FLT_OT_DBG_CONF_SAMPLE
  - FLT_OT_DBG_CONF_STR
  - FLT_OT_DBG_CONF_CONTEXT
  - FLT_OT_DBG_CONF_SPAN
  - FLT_OT_DBG_CONF_SCOPE
  - FLT_OT_DBG_CONF_GROUP
  - FLT_OT_DBG_CONF_PH
  - FLT_OT_DBG_CONF_TRACER
  - FLT_OT_DBG_CONF
  - FLT_OT_STR_HDR
  - FLT_OT_CONF_HDR
  source_file: /src/haproxy/addons/ot/include/conf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLT_OT_CONF_HDR_FMT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/haproxy/addons/ot/include/conf.h
      type_or_value: '"%p:{ { ''%.*s'' %zu %d } "'
    - item_type: preproc_def
      name: flt_ot_conf_ph_group
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/haproxy/addons/ot/include/conf.h
      type_or_value: flt_ot_conf_ph
    - item_type: preproc_def
      name: flt_ot_conf_ph_scope
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/haproxy/addons/ot/include/conf.h
      type_or_value: flt_ot_conf_ph
    - item_type: preproc_def
      name: flt_ot_conf_ph_group_free
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/haproxy/addons/ot/include/conf.h
      type_or_value: flt_ot_conf_ph_free
    - item_type: preproc_def
      name: flt_ot_conf_ph_scope_free
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/haproxy/addons/ot/include/conf.h
      type_or_value: flt_ot_conf_ph_free
    structs:
    - fields: []
      item_type: struct
      name: flt_ot_conf_hdr
      pos:
        line_end: 86
        line_start: 84
        source_file: /src/haproxy/addons/ot/include/conf.h
    - fields:
      - name: '*expr'
        type: struct sample_expr
      item_type: struct
      name: flt_ot_conf_sample_expr
      pos:
        line_end: 92
        line_start: 89
        source_file: /src/haproxy/addons/ot/include/conf.h
    - fields:
      - name: '*value'
        type: char
      - name: exprs
        type: struct list
      - name: num_exprs
        type: int
      item_type: struct
      name: flt_ot_conf_sample
      pos:
        line_end: 104
        line_start: 99
        source_file: /src/haproxy/addons/ot/include/conf.h
    - fields: []
      item_type: struct
      name: flt_ot_conf_str
      pos:
        line_end: 109
        line_start: 107
        source_file: /src/haproxy/addons/ot/include/conf.h
    - fields:
      - name: flags
        type: uint8_t
      item_type: struct
      name: flt_ot_conf_context
      pos:
        line_end: 115
        line_start: 112
        source_file: /src/haproxy/addons/ot/include/conf.h
    - fields:
      - name: ref_type
        type: int
      - name: ctx_flags
        type: uint8_t
      - name: flag_root
        type: bool
      - name: tags
        type: struct list
      - name: logs
        type: struct list
      - name: baggages
        type: struct list
      item_type: struct
      name: flt_ot_conf_span
      pos:
        line_end: 128
        line_start: 118
        source_file: /src/haproxy/addons/ot/include/conf.h
    - fields:
      - name: flag_used
        type: bool
      - name: event
        type: int
      - name: acls
        type: struct list
      - name: '*cond'
        type: struct acl_cond
      - name: contexts
        type: struct list
      - name: spans
        type: struct list
      - name: finish
        type: struct list
      item_type: struct
      name: flt_ot_conf_scope
      pos:
        line_end: 139
        line_start: 130
        source_file: /src/haproxy/addons/ot/include/conf.h
    - fields:
      - name: flag_used
        type: bool
      - name: ph_scopes
        type: struct list
      item_type: struct
      name: flt_ot_conf_group
      pos:
        line_end: 145
        line_start: 141
        source_file: /src/haproxy/addons/ot/include/conf.h
    - fields:
      - name: '*ptr'
        type: void
      item_type: struct
      name: flt_ot_conf_ph
      pos:
        line_end: 150
        line_start: 147
        source_file: /src/haproxy/addons/ot/include/conf.h
    - fields:
      - name: '*config'
        type: char
      - name: '*cfgbuf'
        type: char
      - name: '*plugin'
        type: char
      - name: '*tracer'
        type: struct otc_tracer
      - name: rate_limit
        type: uint32_t
      - name: flag_harderr
        type: bool
      - name: flag_disabled
        type: bool
      - name: logging
        type: uint8_t
      - name: proxy_log
        type: struct proxy
      - name: analyzers
        type: uint
      - name: acls
        type: struct list
      - name: ph_groups
        type: struct list
      - name: ph_scopes
        type: struct list
      item_type: struct
      name: flt_ot_conf_tracer
      pos:
        line_end: 169
        line_start: 154
        source_file: /src/haproxy/addons/ot/include/conf.h
    - fields:
      - name: disabled[2]
        type: uint64_t
      item_type: struct
      name: flt_ot_counters
      pos:
        line_end: 180
        line_start: 171
        source_file: /src/haproxy/addons/ot/include/conf.h
    - fields:
      - name: '*proxy'
        type: struct proxy
      - name: '*id'
        type: char
      - name: '*cfg_file'
        type: char
      - name: '*tracer'
        type: struct flt_ot_conf_tracer
      - name: groups
        type: struct list
      - name: scopes
        type: struct list
      - name: cnt
        type: struct flt_ot_counters
      item_type: struct
      name: flt_ot_conf
      pos:
        line_end: 191
        line_start: 183
        source_file: /src/haproxy/addons/ot/include/conf.h
    typedefs: []
    union: []
- function_names:
  - promex_global_gettype
  - promex_st_gettype
  - promex_register_module
  - promex_srv_status
  - promex_ts_val_to_str
  - promex_dump_ts_header
  - promex_dump_ts
  - promex_filter_metric
  - promex_dump_global_metrics
  - promex_dump_front_metrics
  - promex_dump_listener_metrics
  - promex_dump_back_metrics
  - promex_dump_srv_metrics
  - promex_dump_module_metrics
  - promex_dump_ref_modules_metrics
  - promex_dump_all_modules_metrics
  - promex_dump_metrics
  - promex_parse_uri
  - promex_send_headers
  - promex_appctx_init
  - promex_appctx_release
  - promex_appctx_handle_io
  - service_parse_prometheus_exporter
  - promex_register_build_options
  source_file: /src/haproxy/addons/promex/service-prometheus.c
  types:
    enum:
    - enumerators:
      - name: PROMEX_FRONT_STATE_DOWN
        value: '0'
      - name: PROMEX_FRONT_STATE_COUNT
      - name: PROMEX_FRONT_STATE_UP
      item_type: enum
      name: promex_front_state
      pos:
        line_end: 201
        line_start: 196
        source_file: /src/haproxy/addons/promex/service-prometheus.c
    - enumerators:
      - name: PROMEX_BACK_STATE_DOWN
        value: '0'
      - name: PROMEX_BACK_STATE_COUNT
      - name: PROMEX_BACK_STATE_UP
      item_type: enum
      name: promex_back_state
      pos:
        line_end: 213
        line_start: 208
        source_file: /src/haproxy/addons/promex/service-prometheus.c
    - enumerators:
      - name: PROMEX_SRV_STATE_DOWN
        value: '0'
      - name: PROMEX_SRV_STATE_DRAIN
      - name: PROMEX_SRV_STATE_MAINT
      - name: PROMEX_SRV_STATE_UP
      - name: PROMEX_SRV_STATE_NOLB
      - name: PROMEX_SRV_STATE_COUNT
      item_type: enum
      name: promex_srv_state
      pos:
        line_end: 228
        line_start: 220
        source_file: /src/haproxy/addons/promex/service-prometheus.c
    preproc_defs:
    - item_type: preproc_def
      name: PROMEX_MAX_NAME_LEN
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/addons/promex/service-prometheus.c
      type_or_value: '128'
    - item_type: preproc_def
      name: PROMEX_MAX_METRIC_LENGTH
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/addons/promex/service-prometheus.c
      type_or_value: '512'
    structs:
    - fields:
      - name: '*mod'
        type: struct promex_module
      - name: list
        type: struct list
      item_type: struct
      name: promex_module_ref
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/haproxy/addons/promex/service-prometheus.c
    - fields:
      - name: exclude
        type: int
      - name: node
        type: struct eb32_node
      item_type: struct
      name: promex_metric_filter
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/haproxy/addons/promex/service-prometheus.c
    - fields:
      - name: '*p[4]'
        type: void
      - name: flags
        type: unsigned int
      - name: field_num
        type: unsigned
      - name: mod_field_num
        type: unsigned
      - name: obj_state
        type: int
      - name: px_watch
        type: struct watcher
      - name: srv_watch
        type: struct watcher
      - name: modules
        type: struct list
      - name: filters
        type: struct eb_root
      item_type: struct
      name: promex_ctx
      pos:
        line_end: 89
        line_start: 79
        source_file: /src/haproxy/addons/promex/service-prometheus.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/promex/include/promex/promex.h
  types:
    enum:
    - enumerators:
      - name: PROMEX_MT_GAUGE
        value: '1'
      - name: PROMEX_MT_COUNTER
        value: '2'
      item_type: enum
      name: promex_mt_type
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
    preproc_defs:
    - item_type: preproc_def
      name: PROMEX_FL_METRIC_HDR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: PROMEX_FL_BODYLESS_RESP
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: PROMEX_FL_MODULE_METRIC
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: PROMEX_FL_SCOPE_GLOBAL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: PROMEX_FL_SCOPE_FRONT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: PROMEX_FL_SCOPE_BACK
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: PROMEX_FL_SCOPE_SERVER
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: PROMEX_FL_SCOPE_LI
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: PROMEX_FL_SCOPE_MODULE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: PROMEX_FL_NO_MAINT_SRV
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: PROMEX_FL_EXTRA_COUNTERS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: PROMEX_FL_INC_METRIC_BY_DEFAULT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: PROMEX_FL_DESC_LABELS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: PROMEX_FL_SCOPE_ALL
      pos:
        line_end: 54
        line_start: 51
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: "(PROMEX_FL_SCOPE_GLOBAL | PROMEX_FL_SCOPE_FRONT | \\\n\t\t\t
        \    PROMEX_FL_SCOPE_LI | PROMEX_FL_SCOPE_BACK | \\\n\t\t\t     PROMEX_FL_SCOPE_SERVER
        | PROMEX_FL_SCOPE_MODULE)"
    - item_type: preproc_def
      name: PROMEX_MAX_LABELS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
      type_or_value: '8'
    structs:
    - fields:
      - name: n
        type: struct ist
      - name: type
        type: enum promex_mt_type
      - name: flags
        type: unsigned int
      item_type: struct
      name: promex_metric
      pos:
        line_end: 69
        line_start: 65
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
    - fields:
      - name: name
        type: struct ist
      - name: value
        type: struct ist
      item_type: struct
      name: promex_label
      pos:
        line_end: 75
        line_start: 72
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
    - fields:
      - name: list
        type: struct list
      - name: name
        type: struct ist
      - name: "(*metric_info)(unsigned int id,                             /* Return
          info for the given id */\n\t\t\t     struct promex_metric *metric,\n\t\t\t
          \    struct ist *desc)"
        type: int
      - name: '*(*start_metrics_dump)()'
        type: void
      - name: (*stop_metrics_dump)(void *ctx)
        type: void
      - name: '*(*start_ts)(void *ctx, unsigned int id)'
        type: void
      - name: '*(*next_ts)(void *ctx, void *ts_ctx, unsigned int id)'
        type: void
      - name: "(*fill_ts)(void *ctx, void *ts_ctx, unsigned int id,        /* fill
          the time series for the given metric */\n\t\t\t struct promex_label *labels,
          struct field *field)"
        type: int
      - name: nb_metrics
        type: size_t
      item_type: struct
      name: promex_module
      pos:
        line_end: 114
        line_start: 100
        source_file: /src/haproxy/addons/promex/include/promex/promex.h
    typedefs: []
    union: []
- function_names:
  - ha_wurfl_log
  - ha_wurfl_log
  - ha_wurfl_cfg_data_file
  - ha_wurfl_cfg_cache
  - ha_wurfl_cfg_engine_mode
  - ha_wurfl_cfg_information_list_separator
  - ha_wurfl_cfg_information_list
  - ha_wurfl_cfg_patch_file_list
  - ha_wurfl_cfg_useragent_priority
  - ha_wurfl_init
  - ha_wurfl_deinit
  - ha_wurfl_get_all
  - ha_wurfl_get
  - ha_wurfl_get_wurfl_root_id
  - ha_wurfl_get_wurfl_id
  - ha_wurfl_get_wurfl_isdevroot
  - ha_wurfl_get_wurfl_useragent
  - ha_wurfl_get_wurfl_api_version
  - ha_wurfl_get_wurfl_engine_target
  - ha_wurfl_get_wurfl_info
  - ha_wurfl_get_wurfl_last_load_time
  - ha_wurfl_get_wurfl_normalized_useragent
  - ha_wurfl_get_wurfl_useragent_priority
  - '*(*ha_wurfl_get_property_callback(char *name)) (wurfl_handle wHandle, wurfl_device_handle
    dHandle)'
  - ha_wurfl_retrieve_header
  - ha_wurfl_register_build_options
  source_file: /src/haproxy/addons/wurfl/wurfl.c
  types:
    enum:
    - enumerators:
      - name: HA_WURFL_DATA_TYPE_UNKNOWN
        value: '0'
      - name: HA_WURFL_DATA_TYPE_VCAP
        value: '200'
      - name: HA_WURFL_DATA_TYPE_PROPERTY
        value: '300'
      - name: HA_WURFL_DATA_TYPE_CAP
        value: '100'
      item_type: enum
      name: wurfl_data_type
      pos:
        line_end: 65
        line_start: 60
        source_file: /src/haproxy/addons/wurfl/wurfl.c
    preproc_defs:
    - item_type: preproc_def
      name: HA_WURFL_MAX_HEADER_LENGTH
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/addons/wurfl/wurfl.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: '*data_file'
        type: char
      - name: '*cache_size'
        type: char
      - name: patch_file_list
        type: struct list
      - name: information_list_separator
        type: char
      - name: information_list
        type: struct list
      - name: '*handle'
        type: void
      - name: btree
        type: struct eb_root
      item_type: struct
      name: "global_wurfl = {\n\t.data_file = NULL,\n\t.cache_size = NULL,\n\t.information_list_separator
        = ',',\n\t.information_list = LIST_HEAD_INIT(global_wurfl.information_list),\n\t.patch_file_list
        = LIST_HEAD_INIT(global_wurfl.patch_file_list),\n\t.handle = NULL,\n}"
      pos:
        line_end: 30
        line_start: 22
        source_file: /src/haproxy/addons/wurfl/wurfl.c
    - fields:
      - name: '*name'
        type: char
      - name: type
        type: enum wurfl_data_type
      - name: func_callback
        type: PROP_CALLBACK_FUNC
      - name: nd
        type: struct ebmb_node
      item_type: struct
      name: wurfl_data_t
      pos:
        line_end: 72
        line_start: 67
        source_file: /src/haproxy/addons/wurfl/wurfl.c
    - fields:
      - name: '*name'
        type: char
      - name: '*(*func)(wurfl_handle wHandle, wurfl_device_handle dHandle)'
        type: char
      item_type: struct
      name: "wurfl_properties_function_map [] = {\n\t{\"wurfl_api_version\", ha_wurfl_get_wurfl_api_version},\n\t{\"wurfl_engine_target\",
        ha_wurfl_get_wurfl_engine_target}, // kept for backward conf file compat\n\t{\"wurfl_id\",
        ha_wurfl_get_wurfl_id },\n\t{\"wurfl_info\", ha_wurfl_get_wurfl_info },\n\t{\"wurfl_isdevroot\",
        ha_wurfl_get_wurfl_isdevroot},\n\t{\"wurfl_last_load_time\", ha_wurfl_get_wurfl_last_load_time},\n\t{\"wurfl_normalized_useragent\",
        ha_wurfl_get_wurfl_normalized_useragent},\n\t{\"wurfl_root_id\", ha_wurfl_get_wurfl_root_id},\n\t{\"wurfl_useragent\",
        ha_wurfl_get_wurfl_useragent},\n\t{\"wurfl_useragent_priority\", ha_wurfl_get_wurfl_useragent_priority
        }, // kept for backward conf file compat\n}"
      pos:
        line_end: 100
        line_start: 97
        source_file: /src/haproxy/addons/wurfl/wurfl.c
    - fields:
      - name: list
        type: struct list
      - name: data
        type: wurfl_data_t
      item_type: struct
      name: wurfl_information_t
      pos:
        line_end: 117
        line_start: 114
        source_file: /src/haproxy/addons/wurfl/wurfl.c
    - fields:
      - name: list
        type: struct list
      - name: '*patch_file_path'
        type: char
      item_type: struct
      name: wurfl_patches_t
      pos:
        line_end: 122
        line_start: 119
        source_file: /src/haproxy/addons/wurfl/wurfl.c
    - fields:
      - name: '*wsmp'
        type: struct sample
      - name: header_value[HA_WURFL_MAX_HEADER_LENGTH + 1]
        type: char
      item_type: struct
      name: ha_wurfl_header_t
      pos:
        line_end: 127
        line_start: 124
        source_file: /src/haproxy/addons/wurfl/wurfl.c
    typedefs:
    - item_type: typedef
      name: '*(*PROP_CALLBACK_FUNC)(wurfl_handle wHandle, wurfl_device_handle dHandle)'
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/haproxy/addons/wurfl/wurfl.c
      type: char
    union: []
- function_names:
  - wurfl_get_api_version
  - wurfl_create
  - wurfl_destroy
  - wurfl_set_root
  - wurfl_add_patch
  - wurfl_add_requested_capability
  - wurfl_get_error_message
  - wurfl_has_virtual_capability
  - wurfl_set_cache_provider
  - wurfl_load
  - wurfl_lookup
  - wurfl_device_get_capability
  - wurfl_device_get_virtual_capability
  - wurfl_device_destroy
  - wurfl_device_get_id
  - wurfl_device_get_root_id
  - wurfl_device_get_original_useragent
  - wurfl_device_get_normalized_useragent
  - wurfl_device_is_actual_device_root
  - wurfl_get_wurfl_info
  - wurfl_get_last_load_time_as_string
  source_file: /src/haproxy/addons/wurfl/dummy/dummy-wurfl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEPRECATED
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
      type_or_value: __attribute__((deprecated))
    - item_type: preproc_def
      name: DEPRECATED
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
      type_or_value: __declspec(deprecated)
    structs: []
    typedefs:
    - item_type: typedef
      name: '* wurfl_handle'
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
      type: void
    - item_type: typedef
      name: '* wurfl_enum_handle'
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
      type: void
    - item_type: typedef
      name: '* wurfl_device_capability_enumerator_handle'
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
      type: void
    - item_type: typedef
      name: '* wurfl_capability_enumerator_handle'
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
      type: void
    - item_type: typedef
      name: '* wurfl_device_id_enumerator_handle'
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
      type: void
    - item_type: typedef
      name: '* wurfl_device_handle'
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
      type: void
    - item_type: typedef
      name: '*(*wurfl_header_retrieve_callback)(const char *header_name, const void
        *callback_data)'
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
      type: char
    - item_type: typedef
      name: '* wurfl_important_header_handle'
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
      type: _ih_h
    - item_type: typedef
      name: '*wurfl_important_header_enumerator_handle'
      pos:
        line_end: 397
        line_start: 397
        source_file: /src/haproxy/addons/wurfl/dummy/wurfl/wurfl.h
      type: void
    union: []
- function_names:
  - struct
  - _51d_data_file
  - _51d_property_name_list
  - _51d_property_separator
  - _51d_cache_size
  - _51d_fetch_check
  - _51d_conv_check
  - _51d_lru_free
  - _51d_malloc
  - _51d_insert_cache_entry
  - _51d_retrieve_cache_entry
  - _51d_set_headers
  - _51d_init_device_offsets
  - _51d_set_device_offsets
  - _51d_req_hash
  - _51d_use_perf_graph
  - _51d_use_pred_graph
  - _51d_drift
  - _51d_difference
  - _51d_allow_unmatched
  - _51d_init_internal
  - _51d_get_evidence
  - _51d_set_smp
  - _51d_fetch
  - _51d_conv
  - _51d_init_http_headers
  - _51d_init_http_headers
  - init_51degrees
  - deinit_51degrees
  - init_51degrees_per_thread
  - deinit_51degrees_per_thread
  source_file: /src/haproxy/addons/51degrees/51d.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _51D_HEADERS_BUFFER_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/addons/51degrees/51d.c
      type_or_value: BUFSIZE
    structs:
    - fields:
      - name: list
        type: struct list
      - name: '*name'
        type: char
      item_type: struct
      name: _51d_property_names
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/haproxy/addons/51degrees/51d.c
    - fields:
      - name: property_separator
        type: char
      - name: property_names
        type: struct list
      - name: '*data_file_path'
        type: char
      - name: cache_size
        type: int
      item_type: struct
      name: "global_51degrees = {\n\t.property_separator = ',',\n\t.property_names
        = LIST_HEAD_INIT(global_51degrees.property_names),\n\t.data_file_path = NULL,\n#ifdef
        FIFTYONEDEGREES_H_PATTERN_INCLUDED\n\t.data_set = { },\n#endif\n#ifdef FIFTYONE_DEGREES_HASH_INCLUDED\n\t.manager
        = { },\n\t.use_perf_graph = -1,\n\t.use_pred_graph = -1,\n\t.drift = -1,\n\t.difference
        = -1,\n\t.allow_unmatched = -1,\n#endif\n\t.cache_size = 0,\n}"
      pos:
        line_end: 77
        line_start: 51
        source_file: /src/haproxy/addons/51degrees/51d.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/51degrees/dummy/threading.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: fiftyoneDegrees_threading_t
      pos:
        line_end: 3
        line_start: 0
        source_file: /src/haproxy/addons/51degrees/dummy/threading.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/51degrees/dummy/cityhash/city.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: cityhash_t
      pos:
        line_end: 3
        line_start: 0
        source_file: /src/haproxy/addons/51degrees/dummy/cityhash/city.c
    typedefs: []
    union: []
- function_names:
  - FIFTYONE_DEGREES_ARRAY_TYPE
  source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
  types:
    enum:
    - enumerators:
      - name: FIFTYONE_DEGREES_STATUS_SUCCESS
      - name: FIFTYONE_DEGREES_STATUS_NOT_SET
      item_type: enum
      name: e_fiftyone_degrees_status_code
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - enumerators:
      - name: FIFTYONE_DEGREES_EVIDENCE_HTTP_HEADER_STRING
        value: 1 << 0
      - name: FIFTYONE_DEGREES_EVIDENCE_HTTP_HEADER_IP_ADDRESSES
        value: 1 << 1
      - name: FIFTYONE_DEGREES_EVIDENCE_COOKIE
        value: 1 << 4
      - name: FIFTYONE_DEGREES_EVIDENCE_QUERY
        value: 1 << 3
      - name: FIFTYONE_DEGREES_EVIDENCE_SERVER
        value: 1 << 2
      - name: FIFTYONE_DEGREES_EVIDENCE_IGNORE
        value: 1 << 7
      item_type: enum
      name: e_fiftyone_degrees_evidence_prefix
      pos:
        line_end: 158
        line_start: 151
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    preproc_defs:
    - item_type: preproc_def
      name: FIFTYONE_DEGREES_EXCEPTION_CLEAR
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type_or_value: exception->status = FIFTYONE_DEGREES_STATUS_NOT_SET;
    - item_type: preproc_def
      name: FIFTYONE_DEGREES_EXCEPTION_OKAY
      pos:
        line_end: 60
        line_start: 58
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type_or_value: (exception == NULL || exception->status == FIFTYONE_DEGREES_STATUS_NOT_SET)
    - item_type: preproc_def
      name: FIFTYONE_DEGREES_EXCEPTION_FAILED
      pos:
        line_end: 63
        line_start: 61
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type_or_value: (!FIFTYONE_DEGREES_EXCEPTION_OKAY)
    - item_type: preproc_def
      name: FIFTYONE_DEGREES_EXCEPTION_CREATE
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type_or_value: "fiftyoneDegreesException exceptionValue; \\\n\tfiftyoneDegreesException
        *exception = &exceptionValue; \\\n\tFIFTYONE_DEGREES_EXCEPTION_CLEAR"
    - item_type: preproc_def
      name: EVIDENCE_KEY_VALUE_MEMBERS
      pos:
        line_end: 99
        line_start: 97
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type_or_value: struct fiftyone_degrees_array_fiftyoneDegreesEvidenceKeyValuePair_t*
        pseudoEvidence;
    - item_type: preproc_def
      name: FIFTYONE_DEGREES_RESULTS_HASH_MEMBERS
      pos:
        line_end: 109
        line_start: 104
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type_or_value: "fiftyoneDegreesResultsDeviceDetection b; \\\n\tfiftyoneDegreesCollectionItem
        propertyItem; \\\n\tfiftyoneDegreesList values; \\\n\tfiftyoneDegreesEvidenceKeyValuePairArray*
        pseudoEvidence;"
    - item_type: preproc_def
      name: FIFTYONE_DEGREES_HEADERS_MEMBERS
      pos:
        line_end: 132
        line_start: 129
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type_or_value: "bool expectUpperPrefixedHeaders; \\\n\tuint32_t pseudoHeadersCount;"
    structs:
    - fields:
      - name: status
        type: unsigned int
      item_type: struct
      name: fiftyone_degrees_exception_t
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: '*dataSet'
        type: void
      item_type: struct
      name: fiftyone_degrees_results_base_t
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: b
        type: fiftyoneDegreesResultsBase
      item_type: struct
      name: fiftyone_degrees_results_device_detection_t
      pos:
        line_end: 83
        line_start: 81
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields: []
      item_type: struct
      name: fiftyone_degrees_collection_item_t
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields: []
      item_type: struct
      name: fiftyone_degrees_list_t
      pos:
        line_end: 91
        line_start: 89
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields: []
      item_type: struct
      name: fiftyone_degrees_evidence_key_value_pair_t
      pos:
        line_end: 95
        line_start: 93
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields: []
      item_type: struct
      name: fiftyone_degrees_result_hash_t
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields: []
      item_type: struct
      name: fiftyone_degrees_resource_manager_t
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: '* name'
        type: char
      - name: nameLength
        type: size_t
      item_type: struct
      name: fiftyone_degrees_header_t
      pos:
        line_end: 127
        line_start: 124
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: '*uniqueHeaders'
        type: fiftyoneDegreesHeaders
      item_type: struct
      name: fiftyone_degrees_dataset_base_t
      pos:
        line_end: 141
        line_start: 139
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: b
        type: fiftyoneDegreesDataSetBase
      item_type: struct
      name: fiftyone_degrees_dataset_device_detection_t
      pos:
        line_end: 145
        line_start: 143
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: b
        type: fiftyoneDegreesDataSetDeviceDetection
      item_type: struct
      name: fiftyone_degrees_dataset_hash_t
      pos:
        line_end: 149
        line_start: 147
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: freeData
        type: bool
      item_type: struct
      name: fiftyone_degrees_config_base_t
      pos:
        line_end: 162
        line_start: 160
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: b
        type: fiftyoneDegreesConfigBase
      - name: allowUnmatched
        type: bool
      item_type: struct
      name: fiftyone_degrees_config_device_detecton_t
      pos:
        line_end: 167
        line_start: 164
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: concurrency
        type: uint16_t
      item_type: struct
      name: fiftyone_degrees_collection_config_t
      pos:
        line_end: 171
        line_start: 169
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: b
        type: fiftyoneDegreesConfigDeviceDetection
      - name: strings
        type: fiftyoneDegreesCollectionConfig
      - name: components
        type: fiftyoneDegreesCollectionConfig
      - name: maps
        type: fiftyoneDegreesCollectionConfig
      - name: properties
        type: fiftyoneDegreesCollectionConfig
      - name: values
        type: fiftyoneDegreesCollectionConfig
      - name: profiles
        type: fiftyoneDegreesCollectionConfig
      - name: rootNodes
        type: fiftyoneDegreesCollectionConfig
      - name: nodes
        type: fiftyoneDegreesCollectionConfig
      - name: profileOffsets
        type: fiftyoneDegreesCollectionConfig
      - name: difference
        type: int32_t
      - name: drift
        type: int32_t
      - name: usePerformanceGraph
        type: bool
      - name: usePredictiveGraph
        type: bool
      item_type: struct
      name: fiftyone_degrees_config_hash_t
      pos:
        line_end: 188
        line_start: 173
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields: []
      item_type: struct
      name: fiftyone_degrees_property_available_t
      pos:
        line_end: 194
        line_start: 192
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: '**array'
        type: char
      - name: count
        type: int
      - name: '*string'
        type: char
      - name: '*existing'
        type: fiftyoneDegreesPropertiesAvailable
      item_type: struct
      name: fiftyone_degrees_properties_required_t
      pos:
        line_end: 205
        line_start: 200
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields:
      - name: '*startByte'
        type: byte
      - name: '*current'
        type: byte
      - name: '*lastByte'
        type: byte
      - name: length
        type: long
      item_type: struct
      name: fiftyone_degrees_memory_reader_t
      pos:
        line_end: 214
        line_start: 209
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    typedefs:
    - item_type: typedef
      name: byte
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type: unsigned char
    - item_type: typedef
      name: fiftyoneDegreesResultsHash
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type: fiftyoneDegreesResultHashArray
    - item_type: typedef
      name: fiftyoneDegreesHeaders
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type: fiftyoneDegreesHeaderArray
    - item_type: typedef
      name: fiftyoneDegreesPropertiesAvailable
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type: fiftyoneDegreesPropertyAvailableArray
    union: []
- function_names:
  - fiftyoneDegreesDataSetGet
  - fiftyoneDegreesResultsHashFree
  - fiftyoneDegreesResultsHashCreate
  - fiftyoneDegreesDataSetRelease
  - fiftyoneDegreesEvidenceCreate
  - fiftyoneDegreesEvidenceAddString
  - fiftyoneDegreesResultsHashGetValuesString
  - fiftyoneDegreesResultsHashFromEvidence
  - fiftyoneDegreesEvidenceFree
  - fiftyoneDegreesResultsHashFromUserAgent
  - fiftyoneDegreesFileReadToByteArray
  - fiftyoneDegreesHashInitManagerFromMemory
  - fiftyoneDegreesStatusGetMessage
  source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/fiftyone.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.h
  types:
    enum:
    - enumerators:
      - name: DATA_SET_INIT_STATUS_SUCCESS
      - name: DATA_SET_INIT_STATUS_CORRUPT_DATA
      - name: DATA_SET_INIT_STATUS_INCORRECT_VERSION
      - name: DATA_SET_INIT_STATUS_FILE_NOT_FOUND
      - name: DATA_SET_INIT_STATUS_INSUFFICIENT_MEMORY
      - name: DATA_SET_INIT_STATUS_NOT_SET
      - name: DATA_SET_INIT_STATUS_POINTER_OUT_OF_BOUNDS
      - name: DATA_SET_INIT_STATUS_NULL_POINTER
      item_type: enum
      name: e_fiftyoneDegrees_DataSetInitStatus
      pos:
        line_end: 41
        line_start: 32
        source_file: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*firstElement'
        type: int32_t
      - name: count
        type: unsigned int
      - name: freeMemory
        type: int
      item_type: struct
      name: fiftyoneDegrees_integers_t
      pos:
        line_end: 47
        line_start: 43
        source_file: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.h
    - fields:
      - name: uniqueHttpHeaders
        type: fiftyoneDegreesIntegers
      item_type: struct
      name: fiftyoneDegrees_dataset_t
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.h
    - fields: []
      item_type: struct
      name: fiftyoneDegrees_active_dataset_t
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.h
    - fields:
      - name: httpHeaderOffset
        type: int
      - name: deviceOffset
        type: int
      - name: '*userAgent'
        type: char
      item_type: struct
      name: fiftyoneDegrees_device_offset_t
      pos:
        line_end: 61
        line_start: 57
        source_file: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.h
    - fields:
      - name: size
        type: int
      - name: '*firstOffset'
        type: fiftyoneDegreesDeviceOffset
      - name: '*active'
        type: fiftyoneDegreesActiveDataSet
      item_type: struct
      name: fiftyoneDegrees_device_offsets_t
      pos:
        line_end: 67
        line_start: 63
        source_file: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.h
    typedefs: []
    union: []
- function_names:
  - fiftyoneDegreesGetDeviceOffset
  - fiftyoneDegreesGetRequiredPropertiesNames
  - fiftyoneDegreesGetRequiredPropertiesCount
  - fiftyoneDegreesGetValueFromOffsets
  - fiftyoneDegreesCreateDeviceOffsets
  - fiftyoneDegreesFreeDeviceOffsets
  - fiftyoneDegreesGetHttpHeaderCount
  - fiftyoneDegreesGetHttpHeaderNameOffset
  - fiftyoneDegreesGetHttpHeaderNamePointer
  - fiftyoneDegreesInitWithPropertyArray
  - fiftyoneDegreesDataSetFree
  source_file: /src/haproxy/addons/51degrees/dummy/trie/51Degrees.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
  types:
    enum:
    - enumerators:
      - name: NONE
      - name: NUMERIC
      - name: NEAREST
      - name: EXACT
      - name: CLOSEST
      item_type: enum
      name: e_fiftyoneDegrees_MatchMethod
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    - enumerators:
      - name: DATA_SET_INIT_STATUS_SUCCESS
      - name: DATA_SET_INIT_STATUS_INCORRECT_VERSION
      - name: DATA_SET_INIT_STATUS_FILE_NOT_FOUND
      - name: DATA_SET_INIT_STATUS_INSUFFICIENT_MEMORY
      - name: DATA_SET_INIT_STATUS_CORRUPT_DATA
      - name: DATA_SET_INIT_STATUS_NOT_SET
      - name: DATA_SET_INIT_STATUS_POINTER_OUT_OF_BOUNDS
      - name: DATA_SET_INIT_STATUS_NULL_POINTER
      item_type: enum
      name: e_fiftyoneDegrees_DataSetInitStatus
      pos:
        line_end: 49
        line_start: 40
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    preproc_defs: []
    structs:
    - fields:
      - name: length
        type: int16_t
      - name: firstByte
        type: char
      item_type: struct
      name: fiftyoneDegrees_ascii_string_t
      pos:
        line_end: 54
        line_start: 51
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    - fields: []
      item_type: struct
      name: fiftyoneDegrees_dataset_header_t
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    - fields: []
      item_type: struct
      name: fiftyoneDegrees_workset_pool_t
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    - fields: []
      item_type: struct
      name: fiftyoneDegrees_property_t
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    - fields: []
      item_type: struct
      name: fiftyoneDegrees_value_t
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    - fields: []
      item_type: struct
      name: fiftyoneDegrees_resultset_cache_t
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    - fields:
      - name: headerNameOffset
        type: int32_t
      - name: '*headerName'
        type: char
      item_type: struct
      name: fiftyoneDegrees_http_header_t
      pos:
        line_end: 74
        line_start: 71
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    - fields:
      - name: '*header'
        type: fiftyoneDegreesHttpHeader
      - name: '*headerValue'
        type: char
      - name: headerValueLength
        type: int
      item_type: struct
      name: fiftyoneDegrees_http_header_workset_t
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    - fields:
      - name: httpHeadersCount
        type: int32_t
      - name: '*httpHeaders'
        type: fiftyoneDegreesHttpHeader
      - name: requiredPropertyCount
        type: int32_t
      - name: '**requiredProperties'
        type: fiftyoneDegreesProperty
      item_type: struct
      name: fiftyoneDegrees_dataset_t
      pos:
        line_end: 88
        line_start: 83
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    - fields:
      - name: '*dataSet'
        type: fiftyoneDegreesDataSet
      - name: importantHeadersCount
        type: int32_t
      - name: '*importantHeaders'
        type: fiftyoneDegreesHttpHeaderWorkset
      - name: method
        type: fiftyoneDegreesMatchMethod
      - name: difference
        type: int32_t
      - name: '**values'
        type: fiftyoneDegreesValue
      item_type: struct
      name: fiftyoneDegrees_workset_t
      pos:
        line_end: 97
        line_start: 90
        source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.h
    typedefs: []
    union: []
- function_names:
  - fiftyoneDegreesGetSignatureRank
  - fiftyoneDegreesGetPropertyName
  - fiftyoneDegreesSetValues
  - fiftyoneDegreesGetValueName
  - fiftyoneDegreesWorksetPoolGet
  - fiftyoneDegreesWorksetPoolRelease
  - fiftyoneDegreesMatchForHttpHeaders
  - fiftyoneDegreesMatch
  - fiftyoneDegreesInitWithPropertyArray
  - fiftyoneDegreesWorksetPoolCreate
  - fiftyoneDegreesWorksetPoolFree
  - fiftyoneDegreesDataSetFree
  - fiftyoneDegreesGetString
  source_file: /src/haproxy/addons/51degrees/dummy/pattern/51Degrees.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - in6_bswap
  - get_ipv6_addr
  - get_addr
  - a_le_b
  - a_eq_b
  - a_gt_b
  - hmask
  - one_ls_b
  - a_plus_b
  - a_minus_b
  - a_and_b
  - is_set
  - convert_range
  - usage
  - main
  source_file: /src/haproxy/admin/iprange/ip6range.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXLINE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/admin/iprange/ip6range.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_ipv4_addr
  - convert_range
  - usage
  - main
  source_file: /src/haproxy/admin/iprange/iprange.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXLINE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/haproxy/admin/iprange/iprange.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - HAPP_STR
  - HAPP_XSTR
  - hexdump
  - hexdump_tvb
  - control_class_index_from_byte
  - class_str_from_byte
  - control_msg_type_str_from_byte
  - stkt_msg_type_str_from_byte
  - error_msg_type_str_from_byte
  - intdecode
  - dissect_happp_handshake_pdu
  - init_class_def_tab
  - col_info_append_class
  - intdecode_from_tvbuff
  - add_enc_field_to_happp_tree
  - add_int_field_to_happp_tree
  - dissect_happp_stkt_define_msg
  - dissect_happp_stkt_update_msg
  - dissect_happp_stkt_ack_msg
  - dissect_happp_stk_msg
  - dissect_happp_msg
  - dissect_happp_pdu
  - dissect_happp_tcp
  - proto_register_happp
  - dissect_happp_heur_tcp
  - proto_reg_handoff_happp
  - plugin_register
  source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WIRESHARK_VERSION_MAJOR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: VERSION_MAJOR
    - item_type: preproc_def
      name: WIRESHARK_VERSION_MINOR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: VERSION_MINOR
    - item_type: preproc_def
      name: WIRESHARK_VERSION_MICRO
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: VERSION_MICRO
    - item_type: preproc_def
      name: HAPPP_PROTOCOL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: '"HAProxyS"'
    - item_type: preproc_def
      name: HAPPP_MSG_MIN_LEN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: '2'
    - item_type: preproc_def
      name: STATUS_HANDSHAKE_SUCCEEDED
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: '"200"'
    - item_type: preproc_def
      name: STATUS_TRY_AGAIN_LATER
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: '"300"'
    - item_type: preproc_def
      name: STATUS_PROTOCOL_ERROR
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: '"501"'
    - item_type: preproc_def
      name: STATUS_BAD_VERSION
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: '"502"'
    - item_type: preproc_def
      name: STATUS_LOCAL_PEER_NAME_MISMATCH
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: '"503"'
    - item_type: preproc_def
      name: STATUS_REMOTE_PEER_NAME_MISMATCH
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: '"504"'
    - item_type: preproc_def
      name: MAX_ENC_LEN
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
      type_or_value: '10'
    structs:
    - fields:
      - name: stkt_key_type
        type: uint64_t
      - name: stkt_key_len
        type: uint64_t
      - name: stkt_data_types
        type: uint64_t
      - name: '*data'
        type: void
      item_type: struct
      name: happp_cv_data_t
      pos:
        line_end: 296
        line_start: 283
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    - fields:
      - name: '*name'
        type: char
      - name: type
        type: unsigned int
      - name: '*hf_ids[3]'
        type: int
      - name: hf_ids_len
        type: size_t
      item_type: struct
      name: hf_stkt_data_type
      pos:
        line_end: 303
        line_start: 298
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    - fields:
      - name: '*class_str'
        type: char
      - name: '*col_info_str'
        type: char
      - name: '*(*msg_type_str_func)(guint8 c)'
        type: char
      - name: count
        type: unsigned int
      item_type: struct
      name: class_def_t
      pos:
        line_end: 474
        line_start: 469
        source_file: /src/haproxy/admin/wireshark-dissectors/peers/packet-happp.c
    typedefs: []
    union: []
- function_names:
  - has_zero32
  - has_zero64
  - has_zero
  - find_lf
  - fgets2
  - main
  source_file: /src/haproxy/admin/halog/fgets2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FGETS2_BUFSIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/admin/halog/fgets2.c
      type_or_value: (256*1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - SEP
  - SKIP_CHAR
  - usage
  - die
  - help
  - field_stop
  - field_stop
  - has_zero64
  - field_start
  - quantify_u32
  - quantify
  - insert_timer
  - insert_value
  - str2ic
  - convert_date
  - convert_date_to_timestamp
  - truncated_line
  - main
  - filter_output_line
  - filter_extract_capture
  - filter_accept_holes
  - filter_count_status
  - filter_count_cook_codes
  - filter_count_term_codes
  - filter_count_srv_status
  - filter_count_url
  - filter_count_ip
  - filter_graphs
  source_file: /src/haproxy/admin/halog/halog.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SOURCE_FIELD
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '5'
    - item_type: preproc_def
      name: ACCEPT_FIELD
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '6'
    - item_type: preproc_def
      name: SERVER_FIELD
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '8'
    - item_type: preproc_def
      name: TIME_FIELD
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '9'
    - item_type: preproc_def
      name: STATUS_FIELD
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '10'
    - item_type: preproc_def
      name: BYTES_SENT_FIELD
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '11'
    - item_type: preproc_def
      name: TERM_CODES_FIELD
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '14'
    - item_type: preproc_def
      name: CONN_FIELD
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '15'
    - item_type: preproc_def
      name: QUEUE_LEN_FIELD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '16'
    - item_type: preproc_def
      name: METH_FIELD
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '17'
    - item_type: preproc_def
      name: URL_FIELD
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '18'
    - item_type: preproc_def
      name: MAXLINE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: QBITS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FILT_COUNT_ONLY
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FILT_INVERT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FILT_QUIET
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FILT_ERRORS_ONLY
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: FILT_ACC_DELAY
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: FILT_ACC_COUNT
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: FILT_GRAPH_TIMERS
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: FILT_PERCENTILE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: FILT_TIME_RESP
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x100'
    - item_type: preproc_def
      name: FILT_INVERT_ERRORS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x200'
    - item_type: preproc_def
      name: FILT_INVERT_TIME_RESP
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x400'
    - item_type: preproc_def
      name: FILT_COUNT_STATUS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x800'
    - item_type: preproc_def
      name: FILT_COUNT_SRV_STATUS
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: FILT_COUNT_TERM_CODES
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: FILT_COUNT_URL_ONLY
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x004000'
    - item_type: preproc_def
      name: FILT_COUNT_URL_COUNT
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x008000'
    - item_type: preproc_def
      name: FILT_COUNT_URL_ERR
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x010000'
    - item_type: preproc_def
      name: FILT_COUNT_URL_TTOT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x020000'
    - item_type: preproc_def
      name: FILT_COUNT_URL_TAVG
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x040000'
    - item_type: preproc_def
      name: FILT_COUNT_URL_TTOTO
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x080000'
    - item_type: preproc_def
      name: FILT_COUNT_URL_TAVGO
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: FILT_HTTP_ONLY
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x200000'
    - item_type: preproc_def
      name: FILT_TERM_CODE_NAME
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x400000'
    - item_type: preproc_def
      name: FILT_INVERT_TERM_CODE_NAME
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x800000'
    - item_type: preproc_def
      name: FILT_HTTP_STATUS
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x1000000'
    - item_type: preproc_def
      name: FILT_INVERT_HTTP_STATUS
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x2000000'
    - item_type: preproc_def
      name: FILT_QUEUE_ONLY
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x4000000'
    - item_type: preproc_def
      name: FILT_QUEUE_SRV_ONLY
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x8000000'
    - item_type: preproc_def
      name: FILT_COUNT_URL_BAVG
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x10000000'
    - item_type: preproc_def
      name: FILT_COUNT_URL_BTOT
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x20000000'
    - item_type: preproc_def
      name: FILT_COUNT_URL_ANY
      pos:
        line_end: 117
        line_start: 114
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: "(FILT_COUNT_URL_ONLY|FILT_COUNT_URL_COUNT|FILT_COUNT_URL_ERR|
        \\\n\t\t\t      FILT_COUNT_URL_TTOT|FILT_COUNT_URL_TAVG|FILT_COUNT_URL_TTOTO|FILT_COUNT_URL_TAVGO|
        \\\n\t\t\t      FILT_COUNT_URL_BAVG|FILT_COUNT_URL_BTOT)"
    - item_type: preproc_def
      name: FILT_COUNT_COOK_CODES
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x40000000'
    - item_type: preproc_def
      name: FILT_COUNT_IP_COUNT
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: FILT2_TIMESTAMP
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: FILT2_PRESERVE_QUERY
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: FILT2_EXTRACT_CAPTURE
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: FILT_OUTPUT_FMT
      pos:
        line_end: 140
        line_start: 125
        source_file: /src/haproxy/admin/halog/halog.c
      type_or_value: "(FILT_COUNT_ONLY| \\\n\t\t\t   FILT_COUNT_STATUS| \\\n\t\t\t
        \  FILT_COUNT_SRV_STATUS| \\\n\t\t\t   FILT_COUNT_COOK_CODES| \\\n\t\t\t   FILT_COUNT_TERM_CODES|
        \\\n\t\t\t   FILT_COUNT_URL_ONLY| \\\n\t\t\t   FILT_COUNT_URL_COUNT| \\\n\t\t\t
        \  FILT_COUNT_URL_ERR| \\\n\t\t\t   FILT_COUNT_URL_TAVG| \\\n\t\t\t   FILT_COUNT_URL_TTOT|
        \\\n\t\t\t   FILT_COUNT_URL_TAVGO| \\\n\t\t\t   FILT_COUNT_URL_TTOTO| \\\n\t\t\t
        \  FILT_COUNT_URL_BAVG| \\\n\t\t\t   FILT_COUNT_URL_BTOT| \\\n\t\t\t   FILT_COUNT_IP_COUNT)"
    structs:
    - fields:
      - name: node
        type: struct eb32_node
      - name: count
        type: unsigned int
      item_type: struct
      name: timer
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/haproxy/admin/halog/halog.c
    - fields:
      - name: st_cnt[6]
        type: unsigned int
      - name: nb_ct
        type: unsigned int
      - name: cum_ct
        type: unsigned long long
      - name: node
        type: struct ebmb_node
      item_type: struct
      name: srv_st
      pos:
        line_end: 63
        line_start: 57
        source_file: /src/haproxy/admin/halog/halog.c
    - fields:
      - name: node
        type: "union {\n\t\tstruct ebpt_node url;\n\t\tstruct eb64_node val;\n\t}"
      - name: '*url'
        type: char
      - name: total_time
        type: unsigned long long
      - name: total_time_ok
        type: unsigned long long
      - name: total_bytes_sent
        type: unsigned long long
      - name: nb_err
        type: unsigned int
      item_type: struct
      name: url_stat
      pos:
        line_end: 75
        line_start: 65
        source_file: /src/haproxy/admin/halog/halog.c
    typedefs: []
    union: []
- function_names:
  - die
  - main
  source_file: /src/haproxy/admin/dyncookie/dyncookie.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
